Ivy Biosciences Harness API (v1.0.0)
Session-based agent runtime for multi-turn AI orchestration with tool execution, checkpointing, and real-time streaming. ## Authentication All endpoints accept three auth methods (tried in order): 1. **Clerk JWT** — `Authorization: Bearer <clerk_session_token>` or `__session` cookie (browser sessions) 2. **ivy_ API key via Bearer** — `Authorization: Bearer ivy_xxx` (CLI / SDK — primary programmatic method) 3. **ivy_ API key via custom header** — `X-Ivy-Api-Key: ivy_xxx` (useful when Bearer is reserved for other tokens) The two `ivy_` methods are equivalent. Generate API keys in the .bloom* dashboard under Settings → API Keys.
Every public endpoint, grouped by lifecycle. Internal routes are not published here.
Pages are regenerated from content/docs/api/openapi.json on every build.
Total: 97 operations across 16 groups.
Sessions
GET /harness/sessions/{sessionId}/assets— List session assetsGET /harness/sessions— List sessionsGET /harness/sessions/{sessionId}— Get a sessionGET /harness/sessions/{sessionId}/workspace— Get a session's workspaceGET /harness/sessions/{sessionId}/transcript— Export session transcriptPOST /harness/sessions— Create a sessionPUT /harness/sessions/{sessionId}— Update a sessionDELETE /harness/sessions/{sessionId}— Delete a session
Execution
GET /harness/sessions/{sessionId}/events— Stream session events (SSE)POST /harness/sessions/{sessionId}/messages/sync— Send a message and wait for the full replyPOST /harness/sessions/{sessionId}/execute— Execute a turn
Sync
POST /harness/sessions/{sessionId}/sync— Sync session state
Checkpoints
GET /harness/sessions/{sessionId}/checkpoints— List checkpointsPOST /harness/sessions/{sessionId}/rollback— Rollback to checkpoint
Interrupts
GET /harness/sessions/{sessionId}/interrupts— List pending interruptsPOST /harness/sessions/{sessionId}/interrupt/{interruptId}/resolve— Resolve an interrupt
Tools
GET /harness/tools— List available toolsGET /v1/tools— List tools (public catalogue)GET /harness/tools/{name}— Get a tool by name
Jobs
GET /api/v1/jobs— List your jobsGET /v1/jobs/{jobId}/artifacts— Download a job's output filesGET /v1/jobs/{jobId}/artifacts/list-verifications— List a job's file verification recordsGET /v1/jobs/{jobId}/candidates— Read a job's study candidatesGET /v1/jobs/{jobId}/checkpoints— Read a job's checkpointsGET /v1/jobs/{jobId}/curve-fits— Read a job's stored curve fitsGET /v1/jobs/{jobId}/extractions— List a job's extracted filesGET /v1/jobs/pricing— List job pricingGET /v1/jobs/{jobId}/readouts— Read a job's readoutsGET /v1/jobs/{jobId}/snapshots/list— List a job's snapshotsGET /v1/jobs/{jobId}/download/{artifactType}— Get a download link for one of a job's files by typeGET /v1/jobs/{jobId}/download/plate-map— Download a job's plate map as CSVGET /v1/jobs/{jobId}/extract/pdb— Read a PDB file from a job's ZIP outputGET /v1/jobs/{jobId}/extract/sdf— Read an SDF file from a job's ZIP outputGET /v1/jobs/{jobId}/artifact-content— Read a job's result contentGET /v1/jobs/{jobId}/context— Read a job's context countsGET /v1/jobs/{jobId}/manifest/latest— Find a job's latest manifestGET /v1/jobs/{jobId}/lineage— Read a job's lineageGET /v1/jobs/{jobId}/manifest/fetch— Read a job's latest manifestGET /v1/jobs/{jobId}/plate— Read a job's plate layoutGET /v1/jobs/{jobId}/plate-types— List plate types and suggestionsGET /v1/jobs/{jobId}/procurement— Read a job's procurement itemsGET /v1/jobs/{jobId}/qc— Read a job's plate QC badgeGET /v1/jobs/{jobId}/qc/metrics— Read a job's plate QC metricsGET /v1/jobs/batch— Get several jobs by idGET /api/v1/jobs/{job_id}— Get job detailsGET /v1/jobs/{jobId}/events— Stream job eventsPOST /v1/jobs/{jobId}/cancel— Cancel a jobPOST /api/v1/jobs— Submit a computation jobPOST /v1/jobs/{jobId}/fit-curves— Fit dose-response curves for a jobPOST /v1/jobs/{jobId}/lineage— Record a job's lineagePOST /v1/jobs/{jobId}/resubmit— Resubmit a jobPOST /v1/jobs/{jobId}/plate-config— Save a job's plate typePOST /v1/jobs/{jobId}/readouts— Save readouts for a jobPOST /v1/jobs/batch— Submit a batch of jobsPOST /v1/jobs/{jobId}/undo— Undo a job's last plate updatePOST /v1/jobs/{jobId}/plate— Save wells on a job's platePOST /v1/jobs/{jobId}/readouts/upload— Upload a readout file to a jobPOST /v1/jobs/{jobId}/candidates— Record study candidates for a jobPOST /v1/jobs/{jobId}/artifacts/verify— Check output files against their SHA-256PATCH /v1/jobs/{jobId}/plate— Save wells on a job's plate (PATCH)PATCH /v1/jobs/{jobId}/fit-curves— Refit curves with exclusions and decisionsDELETE /v1/jobs/{jobId}/candidates— Remove study candidates from a job
Agent
GET /agent/runs/{id}— Fetch a previous run's execution traceGET /agent/health— Operational health for agent retry/backoff decisionsGET /agent/whoami— Identify the caller, tier, and quotaGET /orchestrate/{sessionId}— Read a session's background-job follow-upPOST /agent/estimate— Preview cost + tool plan without executingPOST /agent/feedback— Report the outcome of a previous runPOST /orchestrate— Execute the biomedical agent
Benchmarking
POST /bench— Benchmark the orchestrator (stateless)
Lookup
GET /v1/lookup/molecule/enhanced— Analyze one moleculeGET /v1/lookup/pubchem— Search PubChem by compound nameGET /v1/lookup/uniprot— Search UniProt by protein name
API Keys
GET /user/api-keys— List your API keys, or read one key's usagePOST /user/api-keys— Create an API keyPUT /user/api-keys— Update an API keyPATCH /user/api-keys— Revoke, archive or move several API keysDELETE /user/api-keys— Revoke an API key
Audit
GET /audit/chat-chain— List your chats for record verificationGET /audit/manifest-feed— List a project's manifest eventsGET /audit/chat-chain/{chatId}— Verify a chat's record chainGET /audit/session-chain/{sessionId}— Verify a session's record chainPOST /audit/feed— Query the audit activity feed
Chat Completions
POST /v1/chat/completions— Create a chat completion
Compute
POST /v1/sync/admet-quick— Quick ADMET estimatePOST /v1/sync/molecular-properties— Calculate molecular propertiesPOST /v1/sync/similarity— Compare two moleculesPOST /v1/sync/validate-smiles— Validate SMILES strings
Payments
GET /x402/ping— Paid x402 service probe
Sandbox
GET /harness/sandbox/list— List your sandboxesGET /harness/sandbox/{chatId}/export/{assetId}/download— Get a download link for an exported fileGET /harness/sandbox/{chatId}/manifest— Get the sandbox file manifestGET /harness/sandbox/{chatId}/status— Get sandbox statusPOST /harness/sandbox/create— Create a sandbox for a chatPOST /harness/sandbox/{chatId}/exec— Run a shell commandPOST /harness/sandbox/{chatId}/tool/{toolName}— Run a sandbox toolPOST /harness/sandbox/{chatId}/terminate— Terminate the sandbox
Was this page helpful?