Put live market impact inside your product.
Send an economic release, policy decision, geopolitical development, company update, or your own event payload together with holdings. Receive affected assets, direct and second-order exposure, causal paths, timing, confidence, scenario conditions, and source evidence.
Request and rendered output.
POST /v1/portfolio/impact
Authorization: Bearer mo_live_…
Idempotency-Key: sample-001
{
"event_id": "<latest canonical event>",
"holdings": [
{ "symbol": "XOM", "weight": 0.08 },
{ "symbol": "CVX", "weight": 0.06 },
{ "symbol": "DAL", "weight": 0.04 }
]
}Run the sample to execute a cached public request against the most recent canonical event. The response is real output from the same ontology the Desk uses - not a mock.
Every response carries the same fields.
- direct_exposures[]
- second_order_exposures[]
- related_opportunities[]
- mechanism_paths[]
- time_horizons[]
- confidence
- conditions_to_monitor[]
- invalidation_conditions[]
- evidence[]
- inference_metadata
- schema_version
- - Stable identifiers on every analysis, evidence record, and monitor.
- - Idempotency via Idempotency-Key, with conflict detection on body mismatch.
- - Evidence and inference are separate fields; inference_metadata states which fields are modelled.
- - Signed webhooks (MO-Signature), retry with exponential backoff, deduplication on MO-Event-Id.
Endpoints.
| Endpoint | Purpose |
|---|---|
| POST /v1/impact/analyze | Map any event payload to affected assets, mechanism, timing, and evidence. |
| POST /v1/portfolio/impact | Send holdings with the event. Get direct and second-order exposure across the book. |
| POST /v1/scenarios/compare | Compare two to four scenarios against the same holdings. |
| POST /v1/monitors | Turn conditions into a monitor the API keeps watching. |
| GET /v1/monitors/{id}/updates | Poll a monitor for matched developments since a cursor. |
| POST /v1/widgets/sessions | Mint a short-lived session for the embeddable impact widget. |
| GET /v1/analyses/{id} | Retrieve a stored analysis by its stable identifier. |
| GET /v1/evidence/{id} | Retrieve a source-linked evidence record, marked evidence not inference. |
| POST /v1/webhooks/test | Register and verify a signed webhook endpoint. |
Developer access - $399/month.
- - Account and sandbox key provisioned the moment payment clears.
- - All nine v1 endpoints, 25,000 requests per 30 days.
- - Widget sessions and signed webhook testing.
- - Send your own permissible payload against your own holdings structure.
Billed monthly. Cancel anytime. The key is shown once, immediately after payment.
Customer-facing deployment.
Internal evaluation and prototyping. Not licensed for customer-facing display or redistribution.
- - $25,000 at signature, $25,000 at objective acceptance.
- - Full credit to the annual license if signed within 15 days.
- - One product surface, one workflow, one agreed universe.
- - Staging plus bounded production, standard security package.
Embedded for customer-facing display and redistribution. Scale for multiple regions, products, legal entities, or more than 100,000 portfolios.
- - Schema-valid responses for at least 95% of valid agreed payloads.
- - Evidence and inference clearly distinguished.
- - Versioning and idempotency work.
- - Signed, retried, deduplicated webhooks.
- - All widget states operate.
- - No unresolved severity-one defect.
- - Fifty historical and twenty live or developing cases.
- - You score direct coverage, second-order relevance, mechanism, sources, timing, and conditions.
- - Target: at least 80% of scored cases at 4/5 or better.
- - Zero unresolved high-severity unsupported factual assertions.
No private schema mapping, new ontology coverage, custom UI, connector, or bespoke demo is built before payment.