Our PCIe card, running Sigmix-authored firmware — scrubbing & audit, in dedicated silicon.
Explore Sigmix Guard
Every request served on-box, sealed from the internet.
See your postureThe Sigmix API follows the request and response shapes your team already writes against, so most integrations are a base-URL change. What differs is where the call lands — your own sealed appliance, or in-Kingdom cloud that never leaves Saudi Arabia.
// self-serve keys from the dashboard · same surface on every posture
# the only thing that changes between postures is the base URL curl https://api.sigmix.ai/v1/chat/completions \ -H "Authorization: Bearer $SIGMIX_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "sigmix-chat-standard", "messages": [ {"role": "user", "content": "لخّص هذا التقرير"} ] }'
One API surface across all deployments. Your code does not change when you move from a cloud trial to a sealed appliance — the base URL does, and that is the whole migration.
https://api.sigmix.ai/v1
Oracle in-Kingdom regions. Elastic, managed, nothing crossing the border.
https://sigmix.internal/v1
Resolves inside your own network. No outbound path exists to leave it.
http://localhost:8443/v1
The device serves its own loopback endpoint. Works with the network unplugged.
https://api.sigmix.ai/v1
The only tier reaching frontier models — and the only one that is not sovereign. Labelled everywhere.
Create keys yourself from the dashboard — no ticket, no sales call. Each key is scoped to a project, carries its own rate limit, and can be rotated or revoked without touching the others. Every call it makes is attributed to it in the audit log.
import os from sigmix import Sigmix client = Sigmix( api_key=os.environ["SIGMIX_API_KEY"], # swap this one line to move posture base_url="https://sigmix.internal/v1", ) resp = client.chat.completions.create( model="sigmix-chat-standard", messages=[{"role": "user", "content": "Summarise Q3 revenue"}], stream=True, ) for chunk in resp: print(chunk.choices[0].delta.content or "", end="")
The core surface. Availability varies by posture — a sealed device reaches lower model tiers than a GPU rack, and the API reports what it can actually serve.
| Method | Path | What it does |
|---|---|---|
| POST | /v1/chat/completions | Chat and completion, streaming or buffered. Arabic and English. |
| POST | /v1/embeddings | Vector embeddings for your own retrieval pipelines. |
| POST | /v1/documents | Ingest a document into a knowledge base. Guard scrubs PII before indexing. |
| POST | /v1/documents/query | Retrieval-augmented query against an indexed knowledge base. |
| POST | /v1/images/generations | Image generation, where the posture has the compute for it. |
| POST | /v1/audio/transcriptions | Speech to text, Arabic and English. |
| GET | /v1/models | What this deployment can actually serve — not a global catalogue. |
| GET | /v1/audit/anchors | Retrieve TPM-signed audit anchors for independent verification. |
| GET | /v1/health | Liveness, model readiness and — on sealed postures — the egress counter. |
// full reference, schemas and error codes live in the developer docs — link from your dashboard once you have a key
Every call is hashed into a chained anchor and TPM-signed. Pull them from /v1/audit/anchors and verify them yourself, off-box.
National ID, Iqama, IBAN and card patterns are redacted before the model sees them — including through the API, not just the app.
Every response carries the region it was served from. Your own logs can prove residency without taking our word for it.
/v1/models returns what this deployment can serve. A sealed device will not advertise a frontier model it cannot run.
API traffic is never used to train any model. On sealed postures the question is moot — nothing leaves to be trained on.
No proprietary lock-in in the wire format. If you outgrow us, your integration is a base URL away from something else.
Because the surface is compatible, most existing clients work by pointing them at a Sigmix base URL. We also ship first-party SDKs where it saves you the boilerplate.
On the cloud, limits are per key and per plan. On an appliance you own the compute, so the only ceiling is the box — we do not meter what is already yours.
Retry-After./v1/models against the deployment you are pointed at. It returns what that box or region can actually serve rather than a global catalogue, so you never get a runtime failure from requesting something the hardware cannot run./v1/audit/anchors, check the chain, and verify the TPM signature against the appliance's public key. The specification is in the evidence pack — see the Trust Center.Start on the KSA Cloud during the trial, write your integration against it, then repoint the base URL when your appliance is racked. Same code, different building.