Multipolarity AI
Public API · /v1 · Licensed access

Calibrated foresight, over HTTP.

Forward probabilities from the same engine the platform runs on, delivered as versioned, tenant-scoped JSON. The public reference covers Core Intelligence, Deep Foresight, Responses, Calibration, Webhooks and Discovery. The public calibration ledger records each scored resolution; it held 3 on 2026-10-02.

Quickstart

Three facts get you productive: keys come from the platform, every request is bearer-authenticated, and the two paid inference doors require an idempotency key.

1 · Get a key

Keys are workspace-owned and member-attributed: in the platform open Settings → API Keys and create one. Keys are shown once and start with mp_live_. Usage draws on your workspace's prepaid credit wallet; a request the wallet cannot cover answers 402. To ask for more credits, write to support (below).

No account yet? Request access at platform.multipolarity.ai.

2 · First request

# Liveness (no auth)
curl https://api.multipolarity.ai/v1/health

# Your first authenticated call
curl https://api.multipolarity.ai/v1/models \
  -H "Authorization: Bearer mp_live_…"

3 · The contract

Idempotency: an Idempotency-Key header is required on POST /v1/inference and POST /v1/responses; a retry with the same key returns the first result. Tracing: every response carries X-MP-Request-ID (and X-MP-Run-ID on runs). Backoff: 429s include Retry-After. Versioning: response schemas carry explicit schema_version constants — parse against those, not the URL.

Versioning & changelog

The contract is pre-stable (0.4.1). What that means in practice, and where change lands, is stated here — not implied.

Where the version lives

Three layers, three jobs. The URL prefix /v1 names the API generation and does not churn. The spec's info.version (0.4.1) tracks the contract document itself. Each response payload carries an explicit schema_version constant — that is the unit your parser should pin against.

Pre-stable posture

While info.version is below 1.0.0: additive evolution (new endpoints, new optional fields) is routine and unannounced; a breaking change to a payload bumps that payload's schema_version and is listed in the changelog. A newly required request field or header moves the minor version of info.version, with notice when an outside caller exists. Parse against schema_version, never against field presence.

Changelog

The contract file is the source of truth; its history is the complete changelog. Notable entries:

0.4.1 — terminal Deep failures and cancellations return 200 with a null result; unfinished campaigns return 202. Owned partial Research and child-attempt links remain readable. Native completion reasons and method verification are separate from delivery. Integrity errors are non-retryable; genuine infrastructure outages remain retryable.

0.4.0 — the published contract now reflects the October 6, 2026 IA cutover: refinement requires a target Scenario Asset, an objective and explicit assignments. New Foresight requests use Low or High effort. Archived Extra High results remain readable with their original effort and payload schema_version.

0.3.0 — Idempotency-Key is required on POST /v1/inference and POST /v1/responses; a request without it answers 400 idempotency_key_required before any run is created or any credit reserved.

0.2.0 — the public surface was consolidated (2026-09-14): retired compatibility operations were removed and answer 404 not_found, and explanations are embedded in inference results.

0.1.1 — this reference now serves the public evaluation contract (deprecated endpoints and those reserved for licensed workspaces omitted). Licensed tenants retrieve the broader licensed reference at /v1/openapi/full.yaml with their API key.

0.1.0 — initial public contract: idempotency keys and request tracing.

Generate your client

There is no house SDK by design — the OpenAPI 3.1 contract below is machine-readable, and a generated client is always in sync with what you licensed. Two commands get you a typed client.

TypeScript

# Types only (zero runtime)
npx openapi-typescript \
  https://docs.multipolarity.ai/openapi.yaml \
  -o multipolarity.d.ts

# Or a full typed fetch client
npx orval --input \
  https://docs.multipolarity.ai/openapi.yaml

Python

pipx run openapi-python-client generate \
  --url https://docs.multipolarity.ai/openapi.yaml

Any OpenAPI-3.1-capable generator works; the contract carries complete schemas.

What your client must keep

Whatever generates it: send Idempotency-Key on writes, authenticate with the bearer key, honor Retry-After on 429s, and dispatch on schema_version. Those four habits are the whole house style — see The contract above.

Licensed access

This page documents the public surface. Workspaces whose plan includes the licensed reference fetch the broader contract with their API key, from their own terminal, and open it in any OpenAPI viewer or generator. This page never asks for a key.

Fetch the licensed reference

curl https://api.multipolarity.ai/api/v1/openapi/full.yaml \
  -H "Authorization: Bearer $MP_API_KEY" \
  -o multipolarity-licensed.yaml

Support

Support: support@multipolarity.ai, on business days. Include the X-MP-Request-ID of the request.

The interactive reference could not load its viewer from the CDN. The raw contract is always available at /openapi.yaml.
Public reference — generated from the OpenAPI 3.1 contract below