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.

Skills are tools. Like function calling, a skill-capable model picks the right skill from your request and calls it — or you can invoke a skill directly by name. Skills are managed by admins and can be backed by a hosted service, an in-process Python module, or a chain of other skills.

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
PrefixEnvironment
mx_live_Live traffic — counts against your quota.
mx_test_Test/development — same API, sandboxed usage.
Keep keys secret. Treat them like passwords. Never embed a live key in client-side code — proxy calls through your own backend.

Models

ModelCapabilitiesUse 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

FieldTypeDescription
promptstringRequired. The user message.
modelstring"Darwin" or "Nova". Default Darwin.
streamboolStream tokens as SSE. Default false.
messagesarrayPrior turns [{role, content}] for multi-turn context.
system_promptstringOptional system instruction.
image_b64stringBase64 image for vision / biometric / image-edit requests.
temperaturenumberSampling temperature. Default 0.7.
max_tokensintMax 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 typePayload field
imageimage_b64 (PNG)
videovideo_b64 (MP4)
model3dmodel_b64 or model_url (GLB)
audioaudio_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.

BackendWhat it is
HostedAn HTTP service (e.g. an image generator).
PythonAn in-process module — runs with no network hop.
ChainAn 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..."}'
SkillTask
biometrix_enrollRegister a person's face under a user_id
biometrix_identifyMatch a face against enrolled users
biometrix_faceFace detection, recognition & matching
biometrix_irisIris detection & recognition
biometrix_livenessPresentation-attack / liveness
biometrix_gaitGait recognition
biometrix_person_reidCross-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.

ArgRequiredNotes
actionyesenroll · identify · list_enrolled · delete_enrolled
taskyesBiometric modality, e.g. face
user_idenroll/deleteUnique identifier for the person
image_b64enroll/identifyBase64 sample (no data: prefix)
thresholdnoMatch cutoff for identify (default 0.5)
metadatanoOptional 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.

SkillInput
emoticore_textText sentiment & emotion
emoticore_faceFacial-expression emotion
emoticore_voiceVoice-tone emotion
emoticore_multimodalFused text + face + voice

Endpoint reference

MethodPathDescription
POST/api/v1/agentUnified chat / media / skill entry point.
GET/api/v1/skillsList available skills.
POST/api/v1/skills/{name}/invokeInvoke a skill directly.
POST/api/v1/transcribeSpeech-to-text.
POST/api/v1/synthesizeText-to-speech.
POST/api/v1/translateTranslation.
POST/api/v1/voice/analyzeVoice characteristics & biometrics.
POST/api/v1/tracking/analyzeObject detection & tracking.
POST/api/v1/depth-estimateMonocular depth & 3D enrichment.
GET/api/v1/healthService 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.

StatusMeaning
400Bad request — missing or malformed prompt.
401Invalid or missing API key.
403Key valid but not permitted for this model / skill.
404Unknown skill.
429Rate limit exceeded — back off and retry.
502Upstream 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