OpenBot
API overview

API REFERENCE

Use the deployed contract.

OpenAPI defines the currently supported routes, authentication rules, and response shapes.

Base URL

https://api.openbot.ai

15

Selected routes

OpenAPI

3.1

Quickstart

Start with a key, inspect the deployed OpenAPI contract, then call only the platform routes your integration needs.

1. Create a key

Use the console to create an organization-scoped API key.

2. Read OpenAPI

Treat the deployed OpenAPI document as the source of truth for supported routes.

3. Call the platform

Use curl or openbot-sdk as a thin authenticated HTTP client.

Agent contract

Agents should use OpenAPI for discovery, bearer keys for organization-scoped calls, and idempotency keys for mutating requests.

agent-contract.json
{
  "base_url": "https://api.openbot.ai",
  "openapi": "https://api.openbot.ai/openapi.json",
  "auth": "Authorization: Bearer ob_live_...",
  "content_type": "application/json",
  "idempotency_header": "Idempotency-Key",
  "error_shape": { "error": { "type": "string", "code": "string", "message": "string" } }
}
agent-minimal-flow.sh
OPENBOT_API_KEY="ob_live_..."
BASE="https://api.openbot.ai"

curl "$BASE/openapi.json"

curl "$BASE/health"

Bearer-key API calls are org-scoped. Console-only endpoints use the signed browser session and should not be used by autonomous agents unless the agent is explicitly operating a user console.

Platform Playground

Read the contract here. Run authenticated requests in the selected Platform workspace.

  • API reference and OpenAPI remain public for contract discovery.
  • Bearer templates reference $OPENBOT_API_KEY instead of exposing a secret.
  • Platform Playground validates the workspace key and sends released operations.

Selected endpoint index

These examples are grouped by method, auth, deployment state, and execution type; the deployed OpenAPI document is the complete route inventory.

This table reports current availability. Version 0.2.0 provides the configurable invocation, metering, and settlement layer; it does not implement Ego or another business API. Active APIs are added dynamically to the deployed OpenAPI contract after operator review. See the repository version roadmap.

Core

MethodPathAuthStatusUse
GET/Public
deployed route
Service metadata.
GET/healthPublic
deployed route
Dependency-aware health probe.
GET/openapi.jsonPublic
deployed route
Machine-readable OpenAPI 3.1 spec.

Keys

MethodPathAuthStatusUse
GET/v1/meBearer
deployed route
Validate a Bearer key and inspect workspace, scopes, expiry, and rate limit.
GET/v1/access/manifestConsole
deployed route
Read the released key-scope and operation contract.
GET/v1/keysConsole
deployed route
List API keys for the signed-in console user.
POST/v1/keysConsole
deployed route
Create a uniquely named API key; no expiry by default.
POST/v1/keys/{id}/rotateConsole
deployed route
Revoke an active key and return a replacement secret once.
DELETE/v1/keys/{id}Console
deployed route
Revoke an API key.
DELETE/v1/keys/{id}/recordConsole
deployed route
Remove a revoked key from Console listings while retaining audit history.

APIs

MethodPathAuthStatusUse
POST/v1/invoke/{slug}Bearer
deployed route
Invoke an active configured API with metering and settlement.

Billing

MethodPathAuthStatusUse
GET/v1/billing/creditsConsole
deployed route
Read org credit balance.
POST/v1/billing/bootstrapConsole
deployed route
Idempotently initialize Free Beta credits.
GET/v1/billing/packagesConsole
deployed route
List credit packages.
POST/v1/billing/checkoutConsole
deployed · disabled
Deployed but disabled during current validation; the server rejects Checkout and payment fulfillment.

Errors

Error responses are JSON. Agents should branch on `error.code`, not prose text.

CodeNameDescription
400Bad RequestMalformed JSON or a failed validation. Check error.details.
401UnauthorizedMissing, invalid, expired, or revoked API key.
403ForbiddenThe key lacks the required scope or the account cannot use this operation.
404Not FoundThe resource does not exist or belongs to another organization.
409ConflictIdempotency key already resolved to an existing resource.
429Rate LimitedToo many requests. Respect Retry-After.
500Internal ErrorServer error. Retry with exponential backoff.
error.json
{
  "error": {
    "type": "validation_error",
    "code": "invalid_input",
    "message": "Invalid request body.",
    "details": [
      { "path": ["dataset_id"], "message": "Required" }
    ]
  }
}