Documentation
Everything, written down
The table of contents below is the real structure. In this build the articles themselves are not written out — the pages that are complete are the product tour, privacy, pricing and the router post.
Getting started
- Create an account and a workspace
- Your first thread
- Picking a model
- Understanding credits
Privacy modes
- The five modes in detail
- Setting an organisation floor
- Reading the route log
- Exporting the route log
API
- Authentication
- POST /v1/chat/completions
- The privacy_mode field
- 422 privacy_contract_unsatisfiable
- Streaming with SSE
Self-hosting
- Requirements and sizing
- docker compose up -d
- TLS with Caddy
- Bringing your own provider keys
- Pointing Local mode at your GPU box
Modules
- Chat
- Image Studio
- Characters
- Research
- Documents
Administration
- Roles and permissions
- SAML SSO
- SCIM provisioning
- Billing and caps
route_check.pypython
from openai import OpenAI
client = OpenAI(
base_url="https://api.fixmyai.os/v1",
api_key=os.environ["FIXMYAI_KEY"],
)
r = client.chat.completions.with_raw_response.create(
model="mistral-large-3",
messages=[{"role": "user", "content": "Summarise clause 7."}],
# the only line that is not stock OpenAI
extra_headers={"X-Privacy-Mode": "private"},
)
print(r.headers["x-route-provider"]) # Mistral AI SAS
print(r.headers["x-route-region"]) # eu-west-3
print(r.headers["x-route-retention"]) # nonerouteCheck.tstypescript
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://api.fixmyai.os/v1",
apiKey: process.env.FIXMYAI_KEY,
});
const res = await client.chat.completions.create(
{
model: "mistral-large-3",
messages: [{ role: "user", content: "Summarise clause 7." }],
},
// the only line that is not stock OpenAI
{ headers: { "X-Privacy-Mode": "private" } },
).withResponse();
console.log(res.response.headers.get("x-route-provider"));
// Mistral AI SASterminalcurl
curl -sS -D - https://api.fixmyai.os/v1/chat/completions \
-H "Authorization: Bearer $FIXMYAI_KEY" \
-H "Content-Type: application/json" \
-H "X-Privacy-Mode: private" \
-d '{"model":"mistral-large-3",
"messages":[{"role":"user","content":"Summarise clause 7."}]}'
HTTP/2 200
x-route-provider: Mistral AI SAS
x-route-region: eu-west-3
x-route-retention: none
x-route-verified-at: 2026-07-21
x-usage-credits: 3Try it, then go and check the route log.
Free plan, 200 credits a month, no card. Every answer you get will tell you which company processed it — including the ones on the free plan.