Public API
Free and open. No authentication required. Built for developers, researchers, and analysts who want to query machine economy data programmatically. Reports and analysis are also available via RSS at /feed.xml. Index endpoints return snake_case JSON in a top-level { data, meta } envelope.
Base URL
https://machineeconomy.ai/api/v1OpenAPI specification
Machine-readable OpenAPI 3.1 spec for all public routes — schemas, query parameters, rate-limit responses, and caching notes. Use this for codegen, Postman import, or contract testing.
GET /api/openapi.json
curl https://machineeconomy.ai/api/openapi.jsonEndpoints
Response examples below are live serialized payloads from the same builders the API routes use. Values refresh daily after the cron run; this page revalidates every 900s (aligned with /api/v1/metrics).
GET /api/v1/mei
Returns the latest Machine Economy Index (v1.0). score_geometric is the headline composite (weighted geometric mean of four components). score_arithmetic and balance_gap provide the arithmetic composite and their difference. Component scores are integers; composites are stored to one decimal place. score_low and score_high carry the robustness band — the 5th–95th percentile range from the §6.7 sensitivity analysis (10,000 Monte Carlo draws over component weights and normalization goalposts; not measurement uncertainty). Null until the first post-ship calculate-mei run populates them. Returns 503 if no score has been calculated yet.
{
"data": {
"score_geometric": 32.6,
"score_arithmetic": 37,
"balance_gap": 4.5,
"components": {
"payment": 43,
"physical": 51,
"legal": 12,
"macro": 42
},
"score_low": 29,
"score_high": 37,
"methodology_version": "1.0",
"calculated_at": "2026-07-15T21:19:15.049Z"
},
"meta": {
"source": "MachineEconomy.ai",
"docs": "https://machineeconomy.ai/methodology",
"methodology_version": "1.0"
}
}GET /api/v1/widget
Reduced MEI payload for embeds — geometric score and component scores only (no arithmetic composite or balance gap). Returns 503 if no score has been calculated yet. Used by the /widget/mei embed.
{
"data": {
"score_geometric": 32.6,
"components": {
"payment": 43,
"physical": 51,
"legal": 12,
"macro": 42
},
"methodology_version": "1.0",
"calculated_at": "2026-07-15T21:19:15.049Z"
},
"meta": {
"source": "MachineEconomy.ai",
"docs": "https://machineeconomy.ai/methodology",
"methodology_version": "1.0"
}
}GET /widget/mei
Embeddable HTML widget — live MEI headline score and four rail components in a 300×200 iframe. Copy the snippet below into any page; no API key required.
<iframe
src="https://machineeconomy.ai/widget/mei"
width="300"
height="200"
frameborder="0"
style="border-radius:8px"
></iframe>GET /api/v1/metrics
Returns all 14 tracked v1.0 machine economy metrics. Filter by rail using the ?rail= parameter. Legal coverage is not a metric rail — use /api/v1/lrrs for the Legal Rail Readiness Score. Unknown ?rail= values are silently ignored — the response returns all metrics with no error, as if the parameter were omitted.
| Parameter | Type | Values | Description |
|---|---|---|---|
| rail | string | payment, physical, macro | Filter metrics by rail. Omit to return all metrics. Values outside this set are ignored. |
{
"data": [
{
"key": "akash_created_leases_30d",
"label": "Akash compute leases created (30d)",
"value": 23883,
"unit": "count",
"rail": "physical",
"category": "compute_utilization",
"source": "akash",
"source_url": "https://stats.akash.network",
"is_stale": false,
"is_provisional": false,
"is_mei_input": true,
"fetched_at": "2026-07-15T18:42:56.141Z"
},
{
"key": "akash_compute_spend_30d",
"label": "Akash compute spend (30d)",
"value": 230171.15106410938,
"unit": "USD",
"rail": "physical",
"category": "compute_utilization",
"source": "akash",
"source_url": "https://stats.akash.network",
"is_stale": false,
"is_provisional": false,
"is_mei_input": true,
"fetched_at": "2026-07-15T18:42:56.141Z"
},
{
"key": "filecoin_raw_power",
"label": "Filecoin raw storage power",
"value": 1620.3268127441406,
"unit": "PiB",
"rail": "physical",
"category": "storage_capacity",
"source": "spacescope",
"source_url": "https://spacescope.io",
"is_stale": false,
"is_provisional": false,
"is_mei_input": true,
"fetched_at": "2026-07-15T18:42:58.183Z"
},
{
"key": "filecoin_utilization",
"label": "Filecoin storage utilization",
"value": 0.40520716971487086,
"unit": "ratio",
"rail": "physical",
"category": "storage_utilization",
"source": "spacescope",
"source_url": "https://spacescope.io",
"is_stale": false,
"is_provisional": false,
"is_mei_input": true,
"fetched_at": "2026-07-15T18:42:58.183Z"
},
{
"key": "oecd_m2m_subscriptions",
"label": "OECD M2M/IoT subscriptions",
"value": 579039858,
"unit": "count",
"rail": "physical",
"category": "machine_connectivity",
"source": "oecd",
"source_url": "https://www.oecd.org",
"is_stale": false,
"is_provisional": false,
"is_mei_input": true,
"fetched_at": "2026-07-15T18:43:01.634Z"
},
{
"key": "census_btos_ai_use",
"label": "US enterprise AI use (Census BTOS)",
"value": 20.6,
"unit": "%",
"rail": "macro",
"category": "enterprise_adoption",
"source": "census-btos",
"source_url": "https://www.census.gov",
"is_stale": false,
"is_provisional": false,
"is_mei_input": true,
"fetched_at": "2026-07-15T18:43:07.308Z"
},
{
"key": "eurostat_ai_use",
"label": "EU enterprise AI use (Eurostat)",
"value": 19.95,
"unit": "%",
"rail": "macro",
"category": "enterprise_adoption",
"source": "eurostat",
"source_url": "https://ec.europa.eu/eurostat",
"is_stale": false,
"is_provisional": false,
"is_mei_input": true,
"fetched_at": "2026-07-15T18:43:08.581Z"
},
{
"key": "mcp_downloads_30d",
"label": "MCP SDK downloads (30d)",
"value": 169915530,
"unit": "count",
"rail": "macro",
"category": "developer_adoption",
"source": "npm",
"source_url": "https://www.npmjs.com",
"is_stale": false,
"is_provisional": false,
"is_mei_input": true,
"fetched_at": "2026-07-15T18:43:09.797Z"
},
{
"key": "pypi_agent_framework_30d",
"label": "Python agent-framework downloads (30d)",
"value": 129221531,
"unit": "count",
"rail": "macro",
"category": "developer_adoption",
"source": "pypi",
"source_url": "https://pypistats.org",
"is_stale": false,
"is_provisional": false,
"is_mei_input": true,
"fetched_at": "2026-07-15T18:44:01.515Z"
},
{
"key": "x402_tx_count_30d",
"label": "x402 transactions (30d)",
"value": 18683366,
"unit": "count",
"rail": "payment",
"category": "transaction_activity",
"source": "x402-scan",
"source_url": "https://x402scan.com",
"is_stale": false,
"is_provisional": false,
"is_mei_input": true,
"fetched_at": "2026-07-15T18:42:36.878Z"
},
{
"key": "x402_active_agent_roles_30d",
"label": "x402 active agent roles (30d)",
"value": 107398,
"unit": "count",
"rail": "payment",
"category": "agent_participation",
"source": "x402-scan",
"source_url": "https://x402scan.com",
"is_stale": false,
"is_provisional": false,
"is_mei_input": true,
"fetched_at": "2026-07-15T18:42:36.878Z"
},
{
"key": "x402_volume_onchain_usdc_30d",
"label": "x402 on-chain USDC volume (30d)",
"value": 871415.551499,
"unit": "USD",
"rail": "payment",
"category": "transaction_activity",
"source": "x402-scan",
"source_url": "https://x402scan.com",
"is_stale": false,
"is_provisional": false,
"is_mei_input": true,
"fetched_at": "2026-07-15T18:42:36.878Z"
},
{
"key": "erc8004_registry_activity_30d",
"label": "ERC-8004 agent registry activity (30d)",
"value": 1861,
"unit": "count",
"rail": "payment",
"category": "identity_usage",
"source": "erc8004",
"source_url": "https://etherscan.io/address/0x8004A169FB4a3325136EB29fA0ceB6D2e539a432",
"is_stale": false,
"is_provisional": false,
"is_mei_input": true,
"fetched_at": "2026-07-15T18:42:53.028Z"
},
{
"key": "nvidia_dc_revenue",
"label": "Nvidia Data Center revenue (quarterly)",
"value": 75246000000,
"unit": "USD",
"rail": "physical",
"category": "compute_capacity_formation",
"source": "nvidia-edgar",
"source_url": "https://www.sec.gov/Archives/edgar/data/1045810/000104581026000052/nvda-20260426_htm.xml",
"is_stale": false,
"is_provisional": false,
"is_mei_input": true,
"fetched_at": "2026-07-15T18:42:54.481Z"
}
],
"meta": {
"count": 14,
"source": "MachineEconomy.ai",
"docs": "https://machineeconomy.ai/methodology"
}
}GET /api/v1/lrrs
Returns the Legal Rail Readiness Score (LRRS) — GDP-weighted coverage across five legal categories. score is the reported integer headline; underlying is the unrounded value fed into the MEI Legal component. jurisdictions lists per-country cell statuses and backing instruments with citations (33 in the live response; one shown below).
{
"data": {
"score": 12,
"underlying": 12.27288334519352,
"coverage_by_category": {
"legal_identity": 0.0000013031467567067739,
"stablecoin": 0.35582018977963153,
"sandbox": 0.09589431344411235,
"free_zone": 0,
"multilateral": 0
},
"category_weights": {
"legal_identity": 0.3,
"stablecoin": 0.3,
"sandbox": 0.16666666666666666,
"free_zone": 0.16666666666666666,
"multilateral": 0.06666666666666667
},
"jurisdictions": [
{
"iso3": "ARE",
"statuses": {
"legal_identity": "none",
"stablecoin": "operational",
"sandbox": "none",
"free_zone": "none",
"multilateral": "none"
},
"instruments": [
{
"category": "stablecoin",
"status": "operational",
"name": "CBUAE Payment Token Services Regulation (PTSR)",
"citation_url": "https://rulebook.centralbank.ae/en/rulebook/payment-token-services-regulation",
"citation_title": "Payment Token Services Regulation — Central Bank of the UAE (CBUAE) Rulebook"
}
]
}
],
"surveyed_gdp_ceiling": 0.8908803547537798
},
"meta": {
"source": "MachineEconomy.ai",
"docs": "https://machineeconomy.ai/methodology",
"methodology_version": "1.0",
"gdp_vintage": "WEO-2026-04"
}
}Request behavior
Rate limiting
All /api/v1/* routes are rate-limited to 100 requests per IP per 1-minute sliding window (GET and POST). When exceeded, the API returns HTTP 429 with a Retry-After header (seconds until retry). The limit is shared across all /api/v1/* endpoints for a given IP — not per-route. No X-RateLimit-* headers are returned. Data updates daily; polling more frequently than that provides no additional value.
{
"error": "Rate limit exceeded. Please retry later."
}CORS
All /api/* responses include Access-Control-Allow-Origin: *, with GET, POST, and OPTIONS allowed.
Caching
Responses are cached at two layers. Next.js ISR revalidation: /api/v1/mei, /api/v1/lrrs, and /api/v1/widget at 3600s; /api/v1/metrics at 900s. An Upstash read-through cache mirrors those TTLs on the database read path.
Data quality
Each metric includes is_stale (data exceeds its cadence threshold) and is_provisional (pending verification — excluded from the MEI composite until verified). is_mei_input indicates whether the metric is a v1.0 index input (registry member). See the full methodology for details on each metric's source and update frequency.
Try it
curl https://machineeconomy.ai/api/openapi.jsoncurl https://machineeconomy.ai/api/v1/meicurl https://machineeconomy.ai/api/v1/widgetcurl https://machineeconomy.ai/api/v1/metricscurl "https://machineeconomy.ai/api/v1/metrics?rail=payment"curl https://machineeconomy.ai/api/v1/lrrs