Built for autonomous callers

One key. A self-describing API. No secrets in the agent.

Fire was built to be called by software that has to work out the rules for itself. Discovery is public, the request shape is the one your agent already knows, every answer comes back priced and addressable, and the credentials for anything downstream stay in Fire's vault.

A torch whose flame flows into many glowing screens — one source feeding every model
Discovery

Bootstrap from a single unauthenticated GET.

Fire is a partial reference implementation of the AIGCSEP protocol: three planes — governance, telemetry, data — and a service-discovery document any client can read before it has credentials.

The capabilities document lists every endpoint with its JSON schema and required ability, the catalog of onboarded models with published prices, how to get an account, and the data-logging policy. Your agent can select a model by functions, tier or modality without a human reading a page.

AIGCSEP covenant_level: 0 no auth required JSON Schema per endpoint
# what an agent sees first
curl -s https://fire.prosaga.net/v1/capabilities \
  | jq '.planes.data.endpoints | keys'

# [ "POST /v1/chat", "POST /v1/chat/parallel",
# "POST /v1/chat/stream", "POST /v1/image",
# "POST /v1/image/upscale", "POST /v1/speech",
# "POST /v1/transcribe", "POST /v1/decide",
# "POST /v1/calls/{call_id}/report", ... ]

# and the policy it will be held to
curl -s …/v1/capabilities | jq '.guarantees, .privacy'
The request shape

If your agent can call a chat completion, it can call Fire.

Messages are the familiar role/content array. Swap the model with species_name; everything else — streaming, parallel fan-out, tool calls, reasoning-budget floors — is the same request against a different provider.

⇄

Same body, every provider

Anthropic, OpenAI, Google, Mistral, DeepSeek, xAI, Venice and more behind one shape. A model that needs a hidden reasoning budget gets its max_tokens floor raised for you rather than returning an empty, billed response.

∥

Fan-out in one call

POST /v1/chat/parallel runs independent requests concurrently and returns them together — the cheapest way to get a second opinion from a different model family.

≋

Streaming with usage

POST /v1/chat/stream sends server-sent events and closes with a final usage-and-price chunk, so the agent knows what the turn cost before it decides on the next one.

Credentials

The agent holds a badge, never a key.

Provider credentials for every model live in Fire's vault. Your token authorises the call; the upstream key is injected server-side and never appears in a response, log or error message.

The same broker extends to third-party services. ANY /v1/vault/{service}/{path} forwards the request verbatim with the service credential added, returns the upstream response with an X-Vault-Brokered: 1 header, and audit-logs the call. Per AIGCSEP: agents never hold secrets.

How Fire handles data →
A vault door with a flame mark and a key floating safely outside it
Accountability

Every answer is priced and addressable.

Agents need to know what a turn cost and need somewhere to send a complaint. Both ride on the response.

# every response
{ "content": "…",
  "model": "Claude Sonnet 4.5",
  "meta": { "price": { "usd": 0.00033 },
           "call_id": "c51e43de…",
           "content_logged": false } }

# the agent relays a problem its user raised
curl -X POST …/v1/calls/$CALL_ID/report \
  -d '{"issue_type":"hallucination",
      "reporter_type":"agent",
      "description":"Cited a paper that does not exist."}'

Price, inline

meta.price.usd is the amount actually charged to your account for that call — never an estimate, never a provider list price with a hidden multiplier. Budget-aware agents can stop a loop on real numbers.

Report or rate by call_id

Reports (hallucination, refusal, wrong_format, off_topic, slow…) land in front of a human as a real ticket. Ratings (1–5, optional dimension) feed GET /v1/models/rankings, which your agent can read to pick the best-rated model for the job — sample counts always ride along with scores.

reporter_type: agent

An agent relaying its user's dissatisfaction is tagged distinctly from a report a human filed, so the evidence stays honest.

Orchestration

Multi-agent flows with a human in the loop.

Define a DAG of named agents — each a model, temperature and system prompt — with depends_on edges, parallel branches, repeat macros and web-search budgets. Insert a human_gate step and the run pauses as awaiting_human until someone resumes it.

Runs are queued and polled, billed per step, and every step's model call has its own call_id. Design them in the portal's visual editor or post the JSON directly.

Flows in depth →
A network of glowing nodes connected by flowing lines, a hand reaching in at a checkpoint
Questions

Agent builders ask

Can an agent discover Fire without a human reading docs first?

Yes. GET /v1/capabilities needs no token and returns every endpoint with request and response schemas, the full model catalog with prices, the account-setup URL and the privacy policy — the AIGCSEP service-discovery pattern. An agent can bootstrap from that one document.

Does my agent need a different key per provider?

No. One Fire key covers 53+ models across 19 providers. The agent changes species_name in the request body; the provider credential never leaves Fire.

What happens when a model gives a bad answer?

Every response carries a call_id. The agent (or the user) posts to /v1/calls/{call_id}/report with an issue_type such as hallucination or refusal, or to /rate with a 1–5 score. Reports become model evidence and a real ticket; ratings feed the public rankings.

Are my agent's prompts stored?

Only if the account opts in. By default Fire keeps metadata — model, tokens, price, duration, call_id — and discards prompt and response content after the call. An opted-in account can still withhold a single call with the X-Fire-Content-Logging: off header.

Can an agent reach third-party services through Fire?

Through the vault broker: ANY /v1/vault/{service}/{path} forwards the request with the service credential injected server-side. The agent's token is the badge; it never holds the key. Each service needs a token ability such as vault:forwardemail.

A raised hand holding a burning torch — the Fire brand emblem
Ready when you are

Point your agent at one URL.

Create a free account, mint a key, and let the agent read /v1/capabilities. Pay only when you top up.