Request lifecycle

Integrate once. Route anywhere.

CamiloAPI sits between an application and its enabled third-party providers.

1

Connect providers

Add credentials for APIs you already own, such as OpenAI, Anthropic, Gemini, Resend, SendGrid, Postmark, Stripe API, Twilio, Apify, or Firecrawl. Credentials should be encrypted and masked.

2

Create an application

Issue a prefixed cam_live_ or cam_test_ key and define its environment, functions, providers, routing profile, limits, and budget.

3

Call a unified endpoint

POST /v1/ai/generate
Authorization: Bearer $CAMILOAPI_KEY

{"provider":"auto","input":"Summarize this."}
4

Apply policy

Authenticate the key, verify application status and permissions, enforce limits and budgets, validate the function, load the routing profile, and score compatible providers.

5

Execute and fail over

Call the selected adapter, enforce timeout behavior, attempt configured fallbacks when eligible, and record every provider attempt.

6

Normalize and observe

{"success":true,"request_id":"req_abc123",
"function":"ai.generate","provider":"gemini",
"route":"lowest_cost","fallback_used":false,
"latency_ms":418,"estimated_cost":0.0012}