API
The record, as data.
Cases, verdicts, settlements and the attention index, as JSON. An allowance is per account per UTC day, so a nightly job can be pointed at a fixed instant rather than at a rolling window nobody can predict.
Plans
Explorer
Free
Needs no payment.
Trying the API out.
50 requests a day
Builder
$49
30-day validity
A bot or a small terminal.
3,500 requests a day
or lock 25,000 PRECRIME
Research
$249
90-day validity
Analysis and backtesting.
12,000 requests a day
or lock 100,000 PRECRIME
Not on sale yet. A PRECRIME lock still reaches this tier.
Desk
$1,000
90-day validity
A trading desk or a fund.
120,000 requests a day
or lock 500,000 PRECRIME
Not on sale yet. A PRECRIME lock still reaches this tier.
A plan is the account’s for its validity, and buying it again extends it from where it ends. The allowance belongs to the account and is shared by every key it has minted: a second key adds credentials, never capacity. A PRECRIME lock reaches the same tier and the same allowance, without a payment.
Buy a plan
A quote holds its price for 15 minutes and can be paid only from the wallet this session signed in with.
Authentication
Public endpoints need no credential. Authenticated ones take a bearer API key, which you create from a signed-in session.
Without a key, the public reads are limited per address. Send your key on the case, market, feed and search reads and they are limited at your tier’s rate instead, counted against your daily allowance; once that is spent they fall back to the per-address limit.
curl https://api.precrime.bot/v1/cases curl https://api.precrime.bot/v1/private/positions \ -H "Authorization: Bearer pc_…"
A key is shown once at creation and stored only as a hash. A key can never create another key: if it could, a leaked read-only key could escalate itself and revoking the original would not contain it.
Money in responses
Token amounts are decimal strings of integer base units, never JSON numbers.
"grossPoolBaseUnits": "100000000000000000000000"
A JSON number is an IEEE-754 double. One PRECRIME at 18 decimals already exceeds what a double can hold exactly, so a number would silently round someone’s stake in transit. Parse these with a big-integer type.
Endpoints
Reported by the running service, so this list cannot drift from what is actually served.
All 122 endpoints
| Method | Path | Access |
|---|---|---|
| GET | /healthpublic | public |
| GET | /v1/access/tierspublic | public |
| POST | /v1/auth/challengepublic | public |
| POST | /v1/auth/telegrampublic | public |
| POST | /v1/auth/verifypublic | public |
| GET | /v1/backerspublic | public |
| GET | /v1/backstoppublic | public |
| GET | /v1/backstop/:incidentIdpublic | public |
| GET | /v1/case-factorypublic | public |
| GET | /v1/case-templatespublic | public |
| GET | /v1/casespublic | public |
| GET | /v1/cases/:idpublic | public |
| GET | /v1/cases/:id/evidencepublic | public |
| GET | /v1/cases/:id/recordingpublic | public |
| GET | /v1/cases/:id/resolutionpublic | public |
| GET | /v1/cases/:id/stake-checkpublic | public |
| GET | /v1/context/hyperliquidpublic | public |
| GET | /v1/endpointspublic | public |
| GET | /v1/feed/casespublic | public |
| GET | /v1/feed/token/:addresspublic | public |
| GET | /v1/grants/bondpublic | public |
| GET | /v1/jarpublic | public |
| GET | /v1/jar/releasespublic | public |
| GET | /v1/launchpublic | public |
| GET | /v1/launchespublic | public |
| GET | /v1/leaderboardpublic | public |
| GET | /v1/market-calendarpublic | public |
| GET | /v1/marketspublic | public |
| GET | /v1/markets/featuredpublic | public |
| GET | /v1/markets/relatedpublic | public |
| GET | /v1/most-wantedpublic | public |
| GET | /v1/openapi.jsonpublic | public |
| GET | /v1/payments/cataloguepublic | public |
| GET | /v1/points/:addresspublic | public |
| GET | /v1/points/leaderboardpublic | public |
| GET | /v1/pricespublic | public |
| GET | /v1/private/api-keysauthenticated | authenticated |
| POST | /v1/private/api-keysauthenticated | authenticated |
| DELETE | /v1/private/api-keys/:idauthenticated | authenticated |
| POST | /v1/private/auth/logoutauthenticated | authenticated |
| GET | /v1/private/backers/meauthenticated | authenticated |
| POST | /v1/private/casesauthenticated | authenticated |
| GET | /v1/private/cases/:idauthenticated | authenticated |
| GET | /v1/private/cases/:id/evidenceauthenticated | authenticated |
| POST | /v1/private/cases/:id/evidenceauthenticated | authenticated |
| POST | /v1/private/cases/:id/evidence/fileauthenticated | authenticated |
| POST | /v1/private/cases/:id/publishauthenticated | authenticated |
| POST | /v1/private/cases/:id/report-verdictauthenticated | authenticated |
| GET | /v1/private/cases/mineauthenticated | authenticated |
| POST | /v1/private/cases/previewauthenticated | authenticated |
| GET | /v1/private/entitlementauthenticated | authenticated |
| POST | /v1/private/grants/bondauthenticated | authenticated |
| POST | /v1/private/hyperliquid/precheckauthenticated | authenticated |
| GET | /v1/private/meauthenticated | authenticated |
| GET | /v1/private/moderation/cases/:caseIdOPERATOR | OPERATOR |
| POST | /v1/private/moderation/cases/:caseId/escalateOPERATOR | OPERATOR |
| POST | /v1/private/moderation/cases/:caseId/removeOPERATOR | OPERATOR |
| GET | /v1/private/moderation/disputes/:disputeIdOPERATOR | OPERATOR |
| GET | /v1/private/moderation/disputes/:disputeId/packetOPERATOR | OPERATOR |
| POST | /v1/private/moderation/disputes/:disputeId/resolveOPERATOR | OPERATOR |
| GET | /v1/private/moderation/queueOPERATOR | OPERATOR |
| GET | /v1/private/moderation/reportsOPERATOR | OPERATOR |
| POST | /v1/private/moderation/reports/dismissOPERATOR | OPERATOR |
| GET | /v1/private/ops/deploymentOPERATOR | OPERATOR |
| GET | /v1/private/ops/eventsOPERATOR | OPERATOR |
| POST | /v1/private/ops/eventsOPERATOR | OPERATOR |
| POST | /v1/private/ops/events/:id/createdOPERATOR | OPERATOR |
| GET | /v1/private/ops/events/:id/fileOPERATOR | OPERATOR |
| POST | /v1/private/ops/jobs/replayOPERATOR | OPERATOR |
| GET | /v1/private/ops/ordersOPERATOR | OPERATOR |
| POST | /v1/private/ops/orders/:id/cancelOPERATOR | OPERATOR |
| GET | /v1/private/ops/partnersOPERATOR | OPERATOR |
| POST | /v1/private/ops/partners/:id/statusOPERATOR | OPERATOR |
| GET | /v1/private/ops/queuesOPERATOR | OPERATOR |
| GET | /v1/private/ops/resolverOPERATOR | OPERATOR |
| GET | /v1/private/ops/slashesOPERATOR | OPERATOR |
| POST | /v1/private/ops/slashesOPERATOR | OPERATOR |
| GET | /v1/private/ops/sponsorsOPERATOR | OPERATOR |
| POST | /v1/private/ops/sponsors/:id/launch-partnerOPERATOR | OPERATOR |
| POST | /v1/private/ops/sponsors/:id/statusOPERATOR | OPERATOR |
| GET | /v1/private/ops/starsOPERATOR | OPERATOR |
| POST | /v1/private/ops/stars/:chargeId/refundOPERATOR | OPERATOR |
| GET | /v1/private/ops/verdictsOPERATOR | OPERATOR |
| GET | /v1/private/ordersauthenticated | authenticated |
| POST | /v1/private/ordersauthenticated | authenticated |
| GET | /v1/private/orders/:idauthenticated | authenticated |
| POST | /v1/private/orders/:id/submittedauthenticated | authenticated |
| POST | /v1/private/partners/applyauthenticated | authenticated |
| GET | /v1/private/partners/meauthenticated | authenticated |
| GET | /v1/private/positionsauthenticated | authenticated |
| GET | /v1/private/profileauthenticated | authenticated |
| GET | /v1/private/referralsauthenticated | authenticated |
| GET | /v1/private/referrals/campaignsauthenticated | authenticated |
| POST | /v1/private/referrals/campaignsauthenticated | authenticated |
| POST | /v1/private/referrals/campaigns/:code/disableauthenticated | authenticated |
| GET | /v1/private/referrals/commissionsauthenticated | authenticated |
| GET | /v1/private/referrals/referrerauthenticated | authenticated |
| POST | /v1/private/sponsors/applyauthenticated | authenticated |
| GET | /v1/private/sponsors/meauthenticated | authenticated |
| DELETE | /v1/private/telegram/linkauthenticated | authenticated |
| GET | /v1/private/telegram/linkauthenticated | authenticated |
| POST | /v1/private/telegram/linkauthenticated | authenticated |
| POST | /v1/private/telegram/link/previewauthenticated | authenticated |
| GET | /v1/private/watchlistauthenticated | authenticated |
| POST | /v1/private/watchlistauthenticated | authenticated |
| DELETE | /v1/private/watchlist/:idauthenticated | authenticated |
| GET | /v1/private/webhooksauthenticated | authenticated |
| POST | /v1/private/webhooksauthenticated | authenticated |
| DELETE | /v1/private/webhooks/:idauthenticated | authenticated |
| GET | /v1/rankspublic | public |
| POST | /v1/referrals/:code/visitpublic | public |
| GET | /v1/revenue/distributionspublic | public |
| GET | /v1/rewards/:addresspublic | public |
| GET | /v1/rewards/campaignspublic | public |
| GET | /v1/rewards/files/:dataHashpublic | public |
| POST | /v1/rpcpublic | public |
| GET | /v1/searchpublic | public |
| GET | /v1/sponsorships/livepublic | public |
| GET | /v1/stakingpublic | public |
| GET | /v1/suggestpublic | public |
| GET | /v1/transparencypublic | public |
| POST | /v1/wakepublic | public |