Skip to main content
The API beta is live. Sign in at noxint.ai/dashboard to mint a personal key and fund data credits; paid REST and MCP calls settle for real. The discovery surface never needed a key: run curl https://noxint.ai/api/v1 right now and the contract answers. Launch status is the ledger of what is on.
The API bills in data credits. Every charge is the operation’s credit rate times the number of delivered materializations, units of data that actually arrive in your response. At the $25 pack rate a credit is one cent (larger packs and the Holder bonus price it lower). You pay for what lands, not for what you asked for, so an agent’s worst case is known before the call runs.

The rate card

The card prices finished data, not API traffic. A price check costs one cent, the same as a raw quote anywhere. A domain read costs three cents because it is not a raw quote: it lands enriched with percentile context, freshness clocks, and refusal semantics. A full read costs five cents for the situation across every domain plus the assessment. For calibration, the going machine-payable rate for an enriched single-asset read elsewhere starts at 0.10,andproprietarysinglesignalcallscommonlypriceat0.10, and proprietary single-signal calls commonly price at 0.05. read sits at half the market floor and replaces the pipeline, not just the quote. Depth is priced per operation: price then funding on the same asset is 1 + 3 = 4 credits. read already carries every domain headline, so read first, then pay 3 for the one domain you need depth on. The edge cases are explicit. An exhaustive-empty result charges one materialization at the operation’s rate because the proof of absence is itself information (an events call with zero events in range is an answer); a truncated-empty result is free. A cache hit that returns data costs the same as a fresh read. Following a cursor to the next page is a new materialization and bills again. Some outcomes cost nothing: all-refused results, failed batch items, top-level errors, 304 Not Modified responses, and transport failures. A refusal is free because you did not get data; that is the refusal-before-fabrication rule showing up on your bill.

Reserve, then settle

Before any upstream work, the gateway reserves the query’s maximum possible charge: the operation’s rate times the number of ids you sent (at most 10), one list materialization, or rank.limit rows (default 10, maximum 50). After delivery, it settles the actual delivered count at the same rate and charges only that. Data is returned only after settlement succeeds, so the meter can never drift from reality. For example, a read with 10 IDs reserves 50 credits. If only 7 assets resolve, you are charged 35. The X-Credits-Charged response header reports the real, settled charge on every call. Rate limiting stays count-based, not price-based: a ten-asset batch spends ten of your 60 per-minute rate units whatever the operation costs.

Polling without paying twice

Market-data responses carry next_update_at and an ETag. The cheap loop is: sleep until next_update_at, then re-request with If-None-Match. If nothing changed, the answer is a 304 and costs zero. Filed equity data has no update clock; it advances on the filings_indexed_through watermark instead.
MCP has no conditional re-poll, so every MCP tool call is a fresh materialization and pays. Over MCP, cache the last result yourself and do not re-call before next_update_at.

What data credits are, and are not

Data credits fund the API and MCP only. They are a separate class from chat credits. Holder flow and trial credits fund the web chat and cannot pay for API calls. If your balance cannot cover a call’s reserved maximum, the call returns quota_exhausted before any work runs, and details.credits_remaining reports what you actually have left (a nonzero balance below the reservation still refuses): fail-closed, never fail-into-debt. You buy data credits as a pack from the console. Purchased credits expire one year after they are granted.