GET /prices/latest
Live price
Current USD price, with the time, age, and health.
Price & Settlement API
Real-time crypto price indices and reliable settlement data for prediction markets.
Go beyond settlement with historical prices, OHLC charts, and market data from the same index.
Up to 3 active keys. Calls come from your server.
90-day free trial
Starts when you create your first API key · One trial per account
During your trial
90 days free
All endpoints included · 60 requests per minute
After your trial
$49 / month
Pay in USDC · No automatic renewal
Sign up or log in to get started.
GET /prices/latest
Current USD price, with the time, age, and health.
GET /prices/history
Up to 60 minutes per request, kept 30 days.
GET /prices/ohlc
1m, 5m, 15m, 1h bars from those same seconds. Completed bars only.
GET /settlement
Up to 60 seconds. Ready 20 seconds after the window closes.
Call https://www.minememes.ai/api/v1 from your server.
Authorization: Bearer <key> (X-API-Key also works).MINEMEMES_API_KEY.curl -H "Authorization: Bearer $MINEMEMES_API_KEY" \
"https://www.minememes.ai/api/v1/prices/latest?assets=BTC,ETH"const res = await fetch(
"https://www.minememes.ai/api/v1/settlement?asset=BTC&end=2026-10-01T12:00:00Z&seconds=60",
{ headers: { Authorization: `Bearer ${process.env.MINEMEMES_API_KEY}` } },
);
const body = await res.json();
if (!res.ok) throw new Error(`${body.code}: ${body.error}`);
console.log(body.price, body.validSeconds);import os, time, requests
now = int(time.time())
r = requests.get(
"https://www.minememes.ai/api/v1/prices/history",
params={"asset": "SOL", "from": now - 300, "to": now},
headers={"Authorization": f"Bearer {os.environ['MINEMEMES_API_KEY']}"},
timeout=10,
)
r.raise_for_status()
for point in r.json()["points"]:
print(point["t"], point["price"])Times are unix seconds or ISO 8601 (for example 2026-10-01T12:00:00Z). MineMemes prediction markets cover BTC, ETH, SOL and XRP; the other assets are API only. GET /assets returns the current symbol list and limits.
| Request | Parameters | Returns |
|---|---|---|
GET /prices/latest | assets (optional, e.g. BTC,ETH; default all) | Live index price per asset, its time, age in milliseconds and health: HEALTHY, DEGRADED or STALE. Assets with no price are listed in missing. |
GET /prices/history | asset, from, to. Up to 60 minutes per request, within the last 30 days. | One point per recorded second in [from, to): t, price, sources, valid. |
GET /prices/ohlc | asset, from, to, interval (1m, 5m, 15m, 1h; default 1m). Up to 24 hours per request. | Open, high, low and close of the per-second index for each completed bar. t is the bar's start; samples counts the seconds behind it. |
GET /settlement | asset, end, seconds (1–60, default 60), include=observations (optional) | The settlement price for [end − seconds, end), as a decimal and as an integer with exponent −8. Available 20 seconds after end; final 5 minutes after it, and never changes once finalized is true. |
GET /assets | None. No key needed. | Supported assets, what each supports, and the current limits. |
GET /status | None. No key needed. | Whether each asset's live price and history are current. Returns 503 when one is behind. |
GET /openapi.json | None. No key needed. | OpenAPI 3.1 description of every endpoint, parameter, response and error code. |
{
"methodology": "exchange-median-v1",
"prices": [
{
"asset": "BTC",
"price": 83611.06,
"asOf": "2026-10-01T12:00:00.412Z",
"status": "HEALTHY",
"ageMs": 588,
"sources": 5
}
],
"missing": []
}{
"asset": "BTC",
"methodology": "exchange-median-v1",
"price": "83673.80000000",
"priceInt": "8367380000000",
"exponent": -8,
"windowStart": "2026-10-01T11:59:00.000Z",
"windowEnd": "2026-10-01T12:00:00.000Z",
"seconds": 60,
"validSeconds": 60,
"invalidSeconds": 0,
"finalized": true,
"finalizedAt": "2026-10-01T12:05:02.118Z"
}Settled MineMemes markets also publish their own proof, with no key needed: GET https://www.minememes.ai/api/crypto-predictions/markets/{slug}/settlement.
Point an assistant, agent, or API client at https://www.minememes.ai/api/v1/openapi.json. Import it as a custom GPT action, an agent tool, or into Postman or a client generator. A site overview for language models is at /llms.txt.
Use the MineMemes Price API to show crypto prices on a website at 60 updates a minute. Spec: https://www.minememes.ai/api/v1/openapi.json
Call https://www.minememes.ai/api/v1/prices/latest from server code only, once a second. Settlement is https://www.minememes.ai/api/v1/settlement.
Read the key from MINEMEMES_API_KEY and send it as "Authorization: Bearer <key>".
Read GET /assets first for symbols and limits. Branch on the error "code" and honor Retry-After on 425, 429 and 503.To show crypto prices on a website, call https://www.minememes.ai/api/v1/prices/latest from your server once a second (60 requests per minute on the default key). Settlement prices: https://www.minememes.ai/api/v1/settlement. Spec: https://www.minememes.ai/api/v1/openapi.json. Up to 3 keys on one account share one subscription; revoke a key here at any time. Errors are JSON with a stable code. On 429 and 425, wait for the Retry-After header.
{ "error": "Rate limit exceeded for this API key.", "code": "rate_limited" }| Status | Code | Meaning |
|---|---|---|
| 400 | bad_request | A parameter is missing or out of range. The message says which. |
| 400 | key_in_url | The key was sent in the URL. Send it in the Authorization header, and rotate that key. |
| 401 | missing_api_key, invalid_api_key | No key sent, or the key is wrong or revoked. |
| 402 | access_expired | The free trial or paid period has ended. |
| 403 | not_open | The API is not open to this account yet. |
| 403 | browser_not_allowed, ip_not_allowed | The request came from a web browser, or from an IP address that is not on the key's allowlist. |
| 404 | no_data, not_found | Outside the recorded history, too few seconds recorded to price the window, or no such endpoint. |
| 425 | too_early | The settlement window is not complete yet. |
| 429 | rate_limited | Over 60 requests in a minute. |
| 503 | unavailable | Temporarily unable to answer. Retry with backoff. |
Each second is one USD price: the median of exchange prices that second (exchange-median-v1). A second without enough agreement is omitted, and no earlier price is filled in. Venue names and filter settings are not included in the response.
A window without enough recorded seconds returns no price.
Every response names the methodology version. That name changes when the methodology changes.
Beta, with no uptime guarantee; live data status at GET /api/v1/status. Prices are for informational purposes only and are not investment advice. When displaying prices, identify them as "MineMemes Index." Raw feed data may not be resold. Use of the API is subject to our Terms.