Conventions
| Base URL | https://pantheon-todo.alethiconsulting.com/pantheon-api |
|---|---|
| Authentication | Authorization: Bearer PANTHEON_API_KEY |
| JSON | Send Content-Type: application/json. |
| Streaming | Request text/event-stream. |
| Idempotency | Use an 8 to 255 character key where required. |
Endpoints
| Method | Path | Purpose | Success | Errors |
|---|---|---|---|---|
POST | /v1/auth/signup | Signup | 201 | 422 |
POST | /v1/auth/login | Login | 200 | 422 |
POST | /v1/auth/logout | Logout | 204 | None |
GET | /v1/auth/me | Me | 200 | None |
GET | /v1/auth/keys | List Keys | 200 | None |
POST | /v1/auth/keys | Create Key | 201 | 422 |
DELETE | /v1/auth/keys/{key_id} | Revoke Key | 204 | 422 |
POST | /v1/auth/password/change | Change Password | 204 | 422 |
POST | /v1/auth/email/verify/request | Request Verification | 202 | 401, 409, 429 |
POST | /v1/auth/email/verify/confirm | Confirm Verification | 200 | 400, 422 |
POST | /v1/auth/password/reset/request | Request Password Reset | 202 | 422, 429 |
POST | /v1/auth/password/reset/confirm | Confirm Password Reset | 204 | 400, 422 |
POST | /v1/admin/users/{user_id}/password | Admin Reset Password | 204 | 422 |
GET | /v1/admin/api-keys | List Admin Api Keys | 200 | None |
POST | /v1/admin/api-keys | Create Admin Api Key | 201 | 422 |
DELETE | /v1/admin/api-keys/{key_id} | Delete Admin Api Key | 204 | 422 |
POST | /v1/agents | Create Agent | 201 | 422 |
GET | /v1/agents | List Agents | 200 | 422 |
GET | /v1/agents/{agent_id} | Get Agent | 200 | 422 |
PUT | /v1/agents/{agent_id} | Update Agent | 200 | 422 |
DELETE | /v1/agents/{agent_id} | Delete Agent | 204 | 422 |
GET | /v1/agents/slug/{slug} | Get Agent By Slug | 200 | 422 |
GET | /v1/audit/records | List Audit Records | 200 | 422 |
POST | /v1/deployments | Create a deployment | 201 | 422, 401, 403, 404 |
GET | /v1/deployments | List deployments | 200 | 422, 401, 403 |
GET | /v1/deployments/{deployment_id} | Get a deployment | 200 | 422, 401, 403, 404 |
POST | /v1/deployments/{deployment_id}/activate | Activate Deployment | 200 | 404, 409, 422 |
POST | /v1/admin/environments | Create Environment | 201 | 422 |
GET | /v1/admin/environments | List Environments Admin | 200 | 422 |
GET | /v1/admin/environments/{env_id} | Get Environment Admin | 200 | 422 |
PUT | /v1/admin/environments/{env_id} | Update Environment | 200 | 422 |
DELETE | /v1/admin/environments/{env_id} | Delete Environment | 204 | 422 |
GET | /v1/environments | List Environments | 200 | 422 |
GET | /v1/environments/{env_id} | Get Environment | 200 | 422 |
POST | /v1/sessions/{session_id}/events | Append session events | 200 | 429, 422, 401, 403, 404 |
GET | /v1/sessions/{session_id}/events | List session events | 200 | 422, 400, 401, 403, 404 |
GET | /v1/sessions/{session_id}/events/stream | Stream session events | 200 | 422, 400, 401, 403, 404 |
GET | /health/components | Component health | 200 | None |
GET | /v1/sessions/{session_id}/messages | List Messages | 200 | 422 |
GET | /v1/models | List Models | 200 | None |
POST | /v1/sessions/{session_id}/runs/{run_id}/resume | Resume a run | 202 | 429, 422, 400, 401, 403, 404, 409, 503 |
POST | /v1/sessions/{session_id}/runs | Start a run | 200 | 409, 429, 422, 400, 401, 403, 404, 503 |
GET | /v1/sessions/{session_id}/runs/{run_id}/stream | Stream run events | 200 | 422, 401, 403, 404 |
POST | /v1/sessions/{session_id}/runs/wait | Start a run and wait | 200 | 409, 429, 422, 401, 403, 404, 503 |
POST | /v1/sessions/{session_id}/runs/{run_id}/stop | Stop a run | 200 | 422, 401, 403, 404 |
POST | /v1/sessions/{session_id}/runs/{run_id}/cancel | Cancel a run | 202 | 409, 422, 401, 403, 404 |
POST | /v1/sessions/{session_id}/sandbox | Provision Sandbox | 201 | 422 |
DELETE | /v1/sessions/{session_id}/sandbox | Destroy Sandbox | 204 | 422 |
POST | /v1/sessions/{session_id}/sandbox/sync | Sync Sandbox | 200 | 422 |
POST | /v1/sessions/{session_id}/sandbox/extend-ttl | Extend Sandbox Ttl | 200 | 422 |
POST | /v1/sessions/{session_id}/files/upload | Upload File | 200 | 422 |
GET | /v1/sessions/{session_id}/files/{path} | Download File | 200 | 422 |
GET | /v1/sessions/{session_id}/files | List Files | 200 | 422 |
POST | /v1/sessions | Create Session | 201 | 429, 422 |
GET | /v1/sessions | List Sessions | 200 | 422 |
GET | /v1/sessions/{session_id} | Get Session | 200 | 422 |
POST | /v1/sessions/{session_id} | Update Session | 200 | 422 |
DELETE | /v1/sessions/{session_id} | Delete Session | 204 | 422 |
POST | /v1/sessions/{session_id}/archive | Archive Session | 200 | 422 |
GET | /v1/skills | List Tenant Skills | 200 | None |
POST | /v1/skills | Create Tenant Skill | 201 | 422 |
GET | /v1/skills/{name} | Get Tenant Skill | 200 | 422 |
PUT | /v1/skills/{name} | Update Tenant Skill | 200 | 422 |
DELETE | /v1/skills/{name} | Delete Tenant Skill | 204 | 422 |
POST | /v1/skills/import | Import Tenant Skill Md | 201 | 422 |
POST | /v1/skills/validate | Validate Skill | 200 | 422 |
POST | /v1/skills/upload | Import Tenant Skill File | 201 | 422 |
GET | /v1/skills/{name}/download | Download Tenant Skill | 200 | 422 |
GET | /v1/skills/{name}/files/content | Get Tenant Skill File Content | 200 | 422 |
POST | /v1/skills/{name}/files | Upload Tenant Skill File | 200 | 422 |
POST | /v1/admin/tenants/{tenant_id}/skills | Create Org Skill | 201 | 422 |
POST | /v1/admin/skills/builtin | Create Builtin Skill | 201 | 422 |
GET | /v1/sessions/{session_id}/skills/catalog | Get Skill Catalog | 200 | 422 |
PUT | /v1/sessions/{session_id}/skills/enabled | Set Enabled Skills | 200 | 422 |
GET | /v1/sessions/{session_id}/artifacts | List Artifacts | 200 | 422 |
GET | /v1/sessions/{session_id}/artifacts/{artifact_id} | Get Artifact | 200 | 422 |
DELETE | /v1/sessions/{session_id}/artifacts/{artifact_id} | Delete Artifact | 200 | 422 |
GET | /v1/sessions/{session_id}/artifacts/{artifact_id}/download | Download Artifact | 200 | 422 |
GET | /v1/sessions/{session_id}/artifacts/{artifact_id}/files/{path} | Serve Artifact Subfile | 200 | 422 |
GET | /v1/api-keys | List Tenant Api Keys | 200 | None |
POST | /v1/api-keys | Create Tenant Api Key | 201 | 422 |
DELETE | /v1/api-keys/{key_id} | Delete Tenant Api Key | 204 | 422 |
POST | /v1/admin/tenants/{tenant_id}/api-keys | Admin Create Tenant Api Key | 201 | 422 |
GET | /v1/admin/tenants/{tenant_id}/api-keys | Admin List Tenant Api Keys | 200 | 422 |
DELETE | /v1/admin/tenants/{tenant_id}/api-keys/{key_id} | Admin Delete Tenant Api Key | 204 | 422 |
POST | /v1/users | Create User | 201 | 422 |
GET | /v1/users | List Users | 200 | 422 |
GET | /v1/users/{user_id} | Get User | 200 | 422 |
PUT | /v1/users/{user_id} | Update User | 200 | 422 |
DELETE | /v1/users/{user_id} | Delete User | 204 | 422 |
GET | /v1/admin/users | Admin List Users | 200 | 422 |
GET | /v1/admin/users/{user_id} | Admin Get User | 200 | 422 |
PUT | /v1/admin/users/{user_id} | Admin Update User | 200 | 422 |
POST | /v1/admin/tenants | Create Tenant | 201 | 422 |
GET | /v1/admin/tenants | List Tenants | 200 | 422 |
GET | /v1/admin/tenants/{tenant_id} | Get Tenant | 200 | 422 |
PUT | /v1/admin/tenants/{tenant_id} | Update Tenant | 200 | 422 |
PATCH | /v1/admin/tenants/{tenant_id} | Update Tenant | 200 | 422 |
DELETE | /v1/admin/tenants/{tenant_id} | Delete Tenant | 204 | 422 |
POST | /v1/tools | Create a tool | 201 | 422, 400, 401, 403, 409 |
GET | /v1/tools | List tools | 200 | 422, 401, 403 |
GET | /v1/tools/{tool_id} | Get tool by ID | 200 | 422, 401, 403, 404 |
POST | /v1/tools/{tool_id}/versions | Create new tool definition version | 201 | 422, 400, 401, 403, 404, 409 |
GET | /v1/tools/{tool_id}/versions | List tool definition versions | 200 | 422, 401, 403, 404 |
GET | /v1/tools/{tool_id}/versions/{version} | Get specific tool definition version | 200 | 422, 401, 403, 404 |
POST | /v1/tools/{tool_id}/versions/{version}/deprecate | Deprecate a tool definition version | 200 | 422, 401, 403, 404 |
GET | /v1/usage | Get Usage | 200 | 422 |
GET | /v1/admin/tenants/{tenant_id}/usage | Get Admin Usage | 200 | 422 |
GET | /health | Healthcheck | 200 | None |
GET | / | Root Healthcheck | 200 | None |
Schemas
The checked-in OpenAPI file is the field-level source of truth.
| Schema | Required fields | Properties |
|---|---|---|
CreateToolRequest | description, | description, |
ToolDetail | tool, | tool, |
CreateAgentRequest | name, | name, |
AgentResponse | id, | id, |
CreateDeploymentRequest | agent_ | agent_ |
DeploymentResponse | id, | id, |
CreateSessionRequest | None | agent_ |
SessionResponse | id, | id, |
CreateRunRequest | None | events, |
RunResponse | run_ | run_ |
ResumeRequest | events | events |
ResumeAccepted | run_ | run_ |
EventResponse | id, | id, |
ErrorEnvelope | error | error |
SessionBusyErrorEnvelope | error | error |
UsageResponse | from, | sandbox_ |
UsageTotals | None | sessions_ |
DailyUsage | date | sessions_ |
TenantRateLimitEnvelope | error | error |
TenantRateLimitDetails | limit, | limit, |
Use the contract
Generate clients from api/openapi/openapi.yaml.
Read Get an API key for account setup and Usage and limits for tenant reporting.
Use the Quickstart to test the generated client against a complete flow.
Pitfalls
- New route examples are thin: Read Events, Errors, and Sessions and runs.
- A schema changes: Regenerate both SDKs from the same checked-in OpenAPI contract.