Documentation
One endpoint for chat, reasoning, image / video / 3D generation, and every registered skill — biometrics, emotion AI, vision, speech, and deep search. Pick a model, send a prompt, get a result.
Quick start v1
Create an API key in the dashboard, then call the agent endpoint.
Darwin answers with text; Nova also invokes skills.
$ curl -X POST "https://model.mimicx.ai/api/v1/agent" \
-H "Authorization: Bearer mx_live_..." \
-H "Content-Type: application/json" \
-d '{"model":"Nova","prompt":"generate a red tomato"}'
What's included
- Chat & reasoning (Darwin)
- Image / video / 3D (Nova)
- Streaming responses (SSE)
- Face, iris & liveness
- Emotion AI
- Speech-to-text & TTS
- Deep web search
- Long-running jobs
Introduction
The mimicx Model API is a single, unified endpoint. Instead of learning a
different route for every capability, you send a prompt to /api/v1/agent
and select a model. The model decides what to do:
- Darwin — a chat & reasoning LLM. Text conversation, planning, and text-based skills. Never generates media.
- Nova — everything Darwin does, plus automatic skill use: image, video & 3D generation, biometrics, emotion AI, vision, speech, deep search, and any skill your organization registers.
All traffic goes through https://model.mimicx.ai and is authenticated
with a Bearer API key. Responses are JSON; add "stream": true for
Server-Sent Events.
Authentication
Every request needs an API key in the Authorization header.
Create and manage keys from the dashboard.
Authorization: Bearer mx_live_your_api_key
| Prefix | Environment |
|---|---|
mx_live_ | Live traffic — counts against your quota. |
mx_test_ | Test/development — same API, sandboxed usage. |
Models
| Model | Capabilities | Use for |
|---|---|---|
| Darwin | chat, reasoning, code, text skills | Q&A, drafting, planning, code — anything text. |
| Nova | chat + image, video, 3D, vision, speech, biometrics, emotion, search | Anything that needs a tool or produces media. |
List the live model catalog any time:
$ curl "https://model.mimicx.ai/api/v1" \
-H "Authorization: Bearer mx_live_..."
Chat & agent POST
POST /api/v1/agent — the primary endpoint. One prompt in, one combined
result out. The response type tells you what came back.
$ curl -X POST "https://model.mimicx.ai/api/v1/agent" \
-H "Authorization: Bearer mx_live_..." \
-H "Content-Type: application/json" \
-d '{
"model": "Darwin",
"prompt": "Explain quantum tunnelling in two sentences."
}'
Response:
{
"type": "text",
"text": "Quantum tunnelling is...",
"model": "Darwin"
}
Request body
| Field | Type | Description |
|---|---|---|
prompt | string | Required. The user message. |
model | string | "Darwin" or "Nova". Default Darwin. |
stream | bool | Stream tokens as SSE. Default false. |
messages | array | Prior turns [{role, content}] for multi-turn context. |
system_prompt | string | Optional system instruction. |
image_b64 | string | Base64 image for vision / biometric / image-edit requests. |
temperature | number | Sampling temperature. Default 0.7. |
max_tokens | int | Max output tokens. Default 2048. |
Streaming SSE
Set "stream": true to receive Server-Sent Events. Text arrives as
delta events; the stream ends with [DONE].
$ curl -N -X POST "https://model.mimicx.ai/api/v1/agent" \
-H "Authorization: Bearer mx_live_..." \
-H "Content-Type: application/json" \
-d '{"model":"Darwin","prompt":"Write a haiku","stream":true}'
data: {"type":"delta","text":"Silent"}
data: {"type":"delta","text":" code..."}
data: [DONE]
Media and skill results can't stream token-by-token — they arrive as a
single final event (an image, a job reference, etc.) before [DONE].
Images, video & 3D Nova
With model: "Nova", a generation request returns base64 media.
$ curl -X POST "https://model.mimicx.ai/api/v1/agent" \
-H "Authorization: Bearer mx_live_..." \
-H "Content-Type: application/json" \
-d '{"model":"Nova","prompt":"a watercolor fox, side profile"}'
Response type | Payload field |
|---|---|
image | image_b64 (PNG) |
video | video_b64 (MP4) |
model3d | model_b64 or model_url (GLB) |
audio | audio_b64 (MP3) |
Long-running jobs beta
Some skills — builds, large renders, training — can't finish inside a request. They return a job reference; subscribe to its stream for progress.
{
"type": "job",
"skill": "firmware_build",
"job": {
"id": "bld_7f3a",
"status": "queued",
"stream": "/api/v1/firmware/jobs/bld_7f3a"
}
}
The stream emits status, progress,
diagnostic, and a final done (with the artifact) or
error event.
Skills & tools
A skill is a callable capability. Skill-capable models (Nova) invoke them automatically from your prompt, and you can always call one directly by name.
| Backend | What it is |
|---|---|
| Hosted | An HTTP service (e.g. an image generator). |
| Python | An in-process module — runs with no network hop. |
| Chain | An ordered composition of other skills. |
List skills GET
$ curl "https://model.mimicx.ai/api/v1/skills" \
-H "Authorization: Bearer mx_live_..."
Invoke a skill POST
POST /api/v1/skills/{name}/invoke — call a skill directly, bypassing
model routing. Pass inputs under args.
$ curl -X POST "https://model.mimicx.ai/api/v1/skills/create_pdf/invoke" \
-H "Authorization: Bearer mx_live_..." \
-H "Content-Type: application/json" \
-d '{"args":{"title":"Report","sections":[]}}'
Biometrics
Face, iris, liveness, gait, footprint, person re-identification and object signatures. Send an image with the request; the router selects the right skill, or target one directly.
$ curl -X POST "https://model.mimicx.ai/api/v1/agent" \
-H "Authorization: Bearer mx_live_..." \
-H "Content-Type: application/json" \
-d '{"prompt":"detect the face in this image","image_b64":"iVBOR..."}'
| Skill | Task |
|---|---|
biometrix_enroll | Register a person's face under a user_id |
biometrix_identify | Match a face against enrolled users |
biometrix_face | Face detection, recognition & matching |
biometrix_iris | Iris detection & recognition |
biometrix_liveness | Presentation-attack / liveness |
biometrix_gait | Gait recognition |
biometrix_person_reid | Cross-modal re-identification |
Enrollment & identification POST
Register people, then recognize them later. Enrollment stores a biometric
template under a user_id; identification matches a new sample against
everyone enrolled and returns the best match with a similarity score.
Enroll a face — call the skill directly for deterministic results.
A user_id is required; multiple enroll calls for the same id refine
the template (running average).
$ curl -X POST "https://model.mimicx.ai/api/v1/skills/biometrix_enroll/invoke" \
-H "Authorization: Bearer mx_live_..." \
-H "Content-Type: application/json" \
-d '{"args":{"action":"enroll","task":"face","user_id":"maria_02","image_b64":"iVBOR..."}}'
# → {"status":"ok","enrolled":"maria_02","task":"face","samples":1,"dim":512}
Identify a face — returns the matched user_id and a
cosine similarity score (0–1). Pass an optional threshold
(default 0.5); below it the result is no_match.
$ curl -X POST "https://model.mimicx.ai/api/v1/skills/biometrix_identify/invoke" \
-H "Authorization: Bearer mx_live_..." \
-H "Content-Type: application/json" \
-d '{"args":{"action":"identify","task":"face","image_b64":"iVBOR...","threshold":0.5}}'
# → {"status":"match","user_id":"maria_02","score":0.87,"threshold":0.5}
Two management actions are also available on biometrix_enroll:
{"action":"list_enrolled"} returns enrolled ids, and
{"action":"delete_enrolled","user_id":"..."} removes one.
| Arg | Required | Notes |
|---|---|---|
action | yes | enroll · identify · list_enrolled · delete_enrolled |
task | yes | Biometric modality, e.g. face |
user_id | enroll/delete | Unique identifier for the person |
image_b64 | enroll/identify | Base64 sample (no data: prefix) |
threshold | no | Match cutoff for identify (default 0.5) |
metadata | no | Optional object stored with the enrollment |
Consent & privacy. Only enroll biometrics with the person's consent and a lawful basis. Templates are personal data and cannot be reset like a password — store and transmit them securely, and delete on request.
Emotion AI
Text sentiment, facial expression, voice tone, and multimodal fusion.
| Skill | Input |
|---|---|
emoticore_text | Text sentiment & emotion |
emoticore_face | Facial-expression emotion |
emoticore_voice | Voice-tone emotion |
emoticore_multimodal | Fused text + face + voice |
Endpoint reference
| Method | Path | Description |
|---|---|---|
| POST | /api/v1/agent | Unified chat / media / skill entry point. |
| GET | /api/v1/skills | List available skills. |
| POST | /api/v1/skills/{name}/invoke | Invoke a skill directly. |
| POST | /api/v1/transcribe | Speech-to-text. |
| POST | /api/v1/synthesize | Text-to-speech. |
| POST | /api/v1/translate | Translation. |
| POST | /api/v1/voice/analyze | Voice characteristics & biometrics. |
| POST | /api/v1/tracking/analyze | Object detection & tracking. |
| POST | /api/v1/depth-estimate | Monocular depth & 3D enrichment. |
| GET | /api/v1/health | Service health. |
The full machine-readable spec is at /dev/openapi, with an interactive explorer at Swagger UI.
Errors
Errors return a JSON body with a detail message and a standard HTTP status.
| Status | Meaning |
|---|---|
400 | Bad request — missing or malformed prompt. |
401 | Invalid or missing API key. |
403 | Key valid but not permitted for this model / skill. |
404 | Unknown skill. |
429 | Rate limit exceeded — back off and retry. |
502 | Upstream model/skill unreachable. |
Rate limits
Limits depend on your plan and are enforced per API key. A 429 means
you've exceeded your current rate — retry with exponential backoff. See your
plan & usage in the dashboard.
mimicx Model API · Built for developers · Dashboard · mimicx.ai