API Reference
The public, read-only endpoints that power the Prexora dashboard. All return JSON over HTTPS and need no API key for read access.
Replace <host> with the host serving the public Prexora app. Schemas below show field shapes, not live values — the live response is always authoritative, and fields may be added over time.
Endpoints
| Method | Path | Returns |
|---|---|---|
GET | /export/signals | Current open signals (funded and display-only) with city, market, side/bracket, strength tier and rationale. |
GET | /export/recent | Recent engine activity — newly published and recently resolved picks. Accepts ?date=YYYY-MM-DD. |
GET | /export/track-record | Aggregate performance on funded signals, with per-bracket-kind and trailing-30-day breakdowns. |
GET | /export/lessons | The lesson stream — the agent’s reflection on resolved bets. |
GET | /export/onchain-commits | Daily on-chain commitment hashes + Solana memo references. Accepts ?date=. |
GET | /healthz | Engine and per-source health status. |
GET /export/track-record
The headline performance object. Schema (values shown as <type> — pull the live endpoint for current numbers):
{
"total": <int>, // resolved funded bets
"wins": <int>,
"losses": <int>,
"win_rate": <float>, // funded signals only
"pnl_usd": <float>, // realized, at reference scale
"by_kind": {
"ceiling": { "total": <int>, "wins": <int>, "win_rate": <float> },
"floor": { "total": <int>, "wins": <int>, "win_rate": <float> },
"range": { "total": <int>, "wins": <int>, "win_rate": <float> },
"single": { "total": <int>, "wins": <int>, "win_rate": <float> }
},
"last_30d": { "total": <int>, "wins": <int>, "win_rate": <float> }
}
Performance is computed on funded signals only. The by_kind block exposes per-bracket-type win rates so weakness in one market type cannot hide in the aggregate.
GET /export/signals
An array of current signals:
[{
"city": "<string>", // e.g. "paris"
"event": "<slug>", // Polymarket event slug
"side": "YES" | "NO",
"bracket": { "kind": "<ceiling|floor|range|single>", "lo": <num|null>, "hi": <num|null> },
"strength": "strong" | "moderate" | "soft",
"rationale": "<string>",
"funded": true | false, // false = display-only, never scored
"signature": "<ed25519>",
"ts": "<iso8601>"
}]
GET /export/onchain-commits
Daily commitment records for verification:
[{
"date": "<YYYY-MM-DD>",
"hash": "<sha256-hex>", // canonical hash of that day's data
"memo": "prexora:commit:<date>:<sha256-hex>",
"tx": "<solana-signature>"
}]
Combine with the signed /export/signals payload to verify a set of picks existed at a given time and was not back-dated.
Notes
- Auth: none required for these read endpoints. Administrative routes are private and not documented here.
- Polling: prices refresh ~every 60s; resolutions ~every 15m. Poll accordingly.
- Rate limits & CORS are environment-specific.
- Stability: fields may be added; treat unknown fields as forward-compatible. Model internals and the edge formula are never exposed.