Skip to waitlist
FleetWarrant
DOCUMENTATION

Quickstart

Everything a design partner needs to point an Agent at FleetWarrant and start sending real traffic: the base URL, how to authenticate, a copy-pasteable request, and exactly what the Gateway does and doesn't redact along the way.

01

Base URL & authentication

Every Agent talks to FleetWarrant through one endpoint — an OpenAI-compatible Gateway, not a new SDK to install:

Base URL
<staging Gateway base URL — set NEXT_PUBLIC_GATEWAY_BASE_URL>

Authenticate every request with the Agent API key issued when your onboarding contact created your Agent — a bearer token that starts with fwk_:

Header
Authorization: Bearer fwk_...
Your Agent API key is shown exactly once, at creation, and is never re-servable — store it in your own secrets manager or environment variables the moment you get it. Never paste it into email, chat, or a support ticket; if it leaks, ask us to revoke it and issue a new one.

Onboarding is hands-on while FleetWarrant is this early — there is no self-serve signup yet. The base URL above is the same for every design partner; what’s specific to you is the Agent API key, issued on your onboarding call. If you don’t have one yet, see Support below to get started.

02

Your first request

POST /v1/chat/completions takes the same shape as OpenAI’s Chat Completions API — model and messages are the only required fields. Use whichever model id your Connector allows — check with whoever set up your Tenant if you’re not sure which ones those are.

curl · /v1/chat/completions
curl -sS "<staging Gateway base URL — set NEXT_PUBLIC_GATEWAY_BASE_URL>/v1/chat/completions" \
  -H "Authorization: Bearer fwk_..." \
  -H "Content-Type: application/json" \
  -d '{
  "model": "<model id from your Connector'\''s allow-list>",
  "messages": [
    {
      "role": "user",
      "content": "Summarize this week'\''s open invoices."
    }
  ]
}'

A successful call returns:

200 response
{
  "id": "chatcmpl-01jazyb3x8k9q2m4n5p6r7s8t9",
  "object": "chat.completion",
  "created": 1758500000,
  "model": "<model id from your Connector's allow-list>",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "..."
      },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 24,
    "completion_tokens": 96,
    "total_tokens": 120
  }
}

A few request fields OpenAI’s API accepts aren’t supported yet and are rejected by name with a 400 rather than silently ignored — tools, tool_choice, response_format, n, stop, top_p, seed, logprobs, presence_penalty and frequency_penalty. Message content also has to be plain text — an image or file content part is rejected the same way, rather than silently dropped from the request that gets audited.

03

Streaming responses

Add "stream": true to the same request and, once your Agent’s Connector supports it, the Gateway responds with Server-Sent Events instead of one JSON body — the same chat.completion.chunk shape the OpenAI SDK already knows how to consume, one data: {...} frame per chunk, closed by a literal data: [DONE]:

curl · /v1/chat/completions (stream)
curl -sS -N "<staging Gateway base URL — set NEXT_PUBLIC_GATEWAY_BASE_URL>/v1/chat/completions" \
  -H "Authorization: Bearer fwk_..." \
  -H "Content-Type: application/json" \
  -d '{
  "model": "<model id from your Connector'\''s allow-list>",
  "messages": [
    {
      "role": "user",
      "content": "Summarize this week'\''s open invoices."
    }
  ],
  "stream": true
}'
text/event-stream
data: {"id":"chatcmpl-01jazyb3x8k9q2m4n5p6r7s8t9","object":"chat.completion.chunk","created":1758500000,"model":"<model id from your Connector's allow-list>","choices":[{"index":0,"delta":{"content":"Sum"},"finish_reason":null}]}

data: ...

data: [DONE]
Streaming is only live for Agents whose Connector runs on Amazon Bedrock today. An Agent connected directly to Anthropic or OpenAI gets a plain 400 for "stream": true right now: “streaming is only implemented for Bedrock connectors today (fleetwarrant#76). Retry with "stream": false, or use a Bedrock connector.” — use the non-streaming request above for those Connectors until direct- provider streaming ships.
04

What gets redacted

The Gateway strips two categories of value out of every call before it’s written to storage — automatically, on every Tenant, with nothing for you to configure today:

  • Sensitive-looking field names. Any JSON key containing (case-insensitively, at any depth, in either the request or the response) one of: password, passwd, secret, api_key, apikey, authorization, access_token, refresh_token, private_key, ssn, social_security, credit_card, card_number, cvv, client_secret. The value is replaced with [REDACTED] — useful for a stray credential riding along in a tool-call argument or a metadata field, whatever it’s called.
  • Secret-shaped text inside a message. Free-text prompt or completion content is scanned for a small set of high-confidence credential shapes and those substrings are replaced in place, without touching the surrounding prose: AWS access key IDs, FleetWarrant Agent API keys and registration secrets, OpenAI API keys, Anthropic API keys, Generic bearer tokens.
This is not a general PII or secrets scanner. Names, addresses, tax IDs, and other business or personal data your Agents’ prompts carry are not detected or masked — only the specific field names and secret shapes above are. Don’t rely on this to keep sensitive personal data out of your audit trail; keep it out of the prompt in the first place if that matters for your traffic.
05

Support

Something not working, a question about a request, or you need credentials to get started in the first place — email hello@fleetwarrant.com. Onboarding is hands-on at this stage, so that’s a direct line to the team that set your Tenant up, not a ticket queue.