Understand the system before you trust the result.
Deep guides explain how investigations move from scope through durable execution, review, billing, and reproducible delivery.
How ApolloBot works
ApolloBot turns a research question into a bounded investigation whose protocol, evidence, computation, decisions, and outputs remain connected throughout the run.
Read guide →Design an investigation
A strong ApolloBot investigation names the decision, evidence boundary, success criteria, and stopping conditions before expensive work begins.
Read guide →Approvals and budgets
ApolloBot binds every consequential action to the current resource state, the authorized role, and a hard financial or capacity boundary.
Read guide →Artifacts and provenance
ApolloBot treats papers, figures, datasets, code, environments, and decision logs as connected evidence rather than unrelated downloads.
Read guide →Cloud and security
ApolloBot Cloud separates identity, durable control state, artifact storage, workflow coordination, and isolated execution so each boundary can fail safely.
Read guide →Billing and capacity
Cloud plans combine a private workspace, dedicated compute, governed execution, and a defined amount of GPT-5.6 Luna research capacity.
Read guide →Every investigation follows the same six governed steps.
- 01Question screened
Scope and success criteria are frozen.
- 02Protocol prepared
Sources, methods, and caps are declared.
- 03Human approval
An authorized role signs the exact protocol.
- 04Bounded execution
Analyses run in checkpointed stages.
- 05Evidence review
Claims, nulls, and limitations are examined.
- 06Private export
Only approved artifacts leave the boundary.
Connect the SDK to a local or hosted endpoint.
The same typed client creates projects and investigations, records approvals, follows progress, and retrieves artifacts.
npm install @apollobot/sdkimport { ApolloBot } from "@apollobot/sdk";
const apollo = new ApolloBot({
baseUrl,
token,
organizationId,
});
const investigation = await apollo.investigations.create({
projectId: "prj_...",
title: "Catalyst geometry robustness",
question: "Which geometry remains robust?",
hardCapMicros: 500_000_000,
privacy: "private",
idempotencyKey: crypto.randomUUID(),
});