Once created, a twin completes unless its input causes a failure, such as a trace that is not text. Errors on our side are retried automatically. If the organization’s balance runs out, the twin or batch pauses and resumes once credit is added. Only completed twins are charged.
Quickstart
Create a twin, wait forstatus: completed, and download its content.
Base URL
multipart/form-data) and twin content (the file). The OpenAPI document is at https://api.metaphi.ai/v1/kennet/openapi.json, with no authentication.
Authentication
Authenticate with your secret key as a bearer token:
Owners and admins create organization keys in the console, or with
kennet keys create. A key without twin access gets 403 insufficient_scope. Keys with delivery access also call the deliveries endpoints.
Versioning
The current version is2026-10-11. Responses include the Metaphi-Version header, and events include api_version. To pin a version, send the Metaphi-Version header; an unknown value returns 400 unknown_api_version. Without the header, requests use the current version.
Test mode
Test keys create real twins at no charge, with these limits:- Files up to 2 MiB.
- 5 twins per organization per 24 hours. Further creates return
403 test_quota_exhausted. - Objects have
"livemode": false. - Test and live objects (twins, files, batches, webhook endpoints, idempotency keys) are separate.
Limits
There is no limit on concurrent twins. Each twin is queued and starts as capacity allows.
Going to production
- Batch many traces. A batch takes up to 10,000 traces with no pacing required.
- Use webhooks. Events report each twin and batch status change. If you poll, poll batches, not twins.
- Send an
Idempotency-Keyon every create. Reuse it on retries. See Idempotency. - Handle errors by
code. Retry onlyretryableerrors, afterRetry-After. See Errors.