Skip to main content
Mint a key and send a prompt. You get an answer from an Apple-attested Mac. If you already speak Chat Completions, that is a base URL and an API key. Mifr will support many models. In this alpha the first ones are qwen3-4b and qwen3-8b. The examples on this page use qwen3-4b.

1. Get your API key

Sign in with Google at Settings and create an API key. The secret is shown once and starts with sk-mifr_. Operator env keys (MIFR_GATEWAY_KEYS) are a different product; they are not minted here.

2. Make a request

Point the SDK you already use at the gateway. Origin:
SDKs want that origin plus /v1.
A 200 body is a chat.completion with usage and mifr_receipt. Verdict headers such as x-mifr-trust ride on the HTTP response; those headers are the gateway’s report, and mifr_receipt is the proof. Streaming (stream=true) sends tokens as they arrive. The receipt and x_mifr_* verdicts land on the final chunk, not on the SSE HTTP head, because that head is flushed before a Mac is chosen. If the stream dies after the first token, there is no [DONE] and no receipt; start a new request instead of splicing onto those bytes. A wrong key is HTTP 401:
mifr_action is the next step (fix_key, retry, wait, fix_request, pick_model). OpenAI SDKs ignore extra keys, so read status_code and the envelope.

Next steps

  • Authentication covers how keys are minted, hashed, and rejected.
  • Models covers aliases, the live list, and pinning a Mac.
  • Chat completions is the live playground for POST /v1/chat/completions.