Skip to main content
The Theo API is a RESTful JSON API served at https://hitheo.ai/api/v1/. All endpoints require authentication via Bearer token except /health.

Base URL

https://hitheo.ai/api/v1/

Authentication

All requests must include your API key in the Authorization header:
Authorization: Bearer theo_sk_...
See Authentication for details.

OpenAPI Spec

The full OpenAPI 3.1 specification is available at:
https://hitheo.ai/api/v1/openapi.json
You can import this into Postman, Insomnia, or any OpenAPI-compatible tool.

Endpoints at a Glance

CategoryEndpointsDescription
CompletionsPOST /completionsCore AI completions with orchestration pipeline
ImagesPOST /imagesImage generation (Theo Create)
VideoPOST /videoVideo generation (async)
CodePOST /codeCode generation (Theo Code)
ResearchPOST /researchDeep web research (async)
DocumentsPOST /documentsPDF, DOCX, PPTX, XLSX, CSV generation
AudioPOST /audio/tts, POST /audio/sttText-to-speech and speech-to-text
SkillsGET/POST /skills, POST /skills/create, POST /skills/submitMarketplace and skill management
WorkflowsGET/POST /workflows, POST /workflows/{id}/runAutomation workflows
ModelsGET /modelsAvailable engine registry
ToolsGET /toolsAvailable tool definitions
ConversationsGET /conversationsConversation history
ChannelsGET /channelsConnected channel adapters
JobsGET /jobs/{id}Async job status polling
UsageGET /usageUsage analytics and cost tracking
KeysPOST /keysAPI key management
HealthGET /healthSystem status (public, no auth)

Response Format

All responses follow a consistent JSON structure:
{
  "id": "resource_id",
  "object": "resource_type",
  "created": "2026-04-10T12:00:00Z",
  ...resource-specific fields
}

Errors

Errors return a structured JSON body:
{
  "error": {
    "message": "Invalid API key",
    "type": "authentication_error",
    "code": "invalid_api_key",
    "request_id": "req_abc123"
  }
}
StatusMeaning
400Bad request — invalid parameters
401Unauthorized — missing or invalid API key
403Forbidden — insufficient permissions
404Not found
429Rate limited — check Retry-After header
500Internal server error
503Service unavailable — check Retry-After header