Skip to content
NOBID
Request access
StatusThe book is published. The desk is not open: Nobid is not quoting, holding client assets, or accepting orders. Nothing on this site is an offer, a solicitation, or investment advice.Status page

Updated 2026-09-06

API

Three endpoints, none of them authenticated. Two return the numbers this site is written from — the survey, and the desk’s own account of itself. The third runs the published schedule over a position and hands back the same waterfall the desk page draws.

Conventions

The base URL is https://nobid.desk. Every response is JSON. Every endpoint answers unauthenticated: there is no key to request, no header to set and no account to open. That is not generosity, it is a consequence — nothing behind these endpoints is private, because all of it is already printed on this site. /api/book is the book serialised. /api/status is the desk describing its own state. /api/quote is arithmetic on terms published at How a bid is formed.

There is no rate limit worth documenting. If a client makes enough requests to matter, whatever sits in front of the application will decide what happens to it, and the desk will not have been consulted about the decision. There is no SLA either: no availability target, no uptime history, no credit if a response never arrives. When the desk opens, these will be different documents. Written today they would be a promise nobody is in a position to keep.

Limitation

These endpoints do not read the chain.

/api/book returns a survey taken at block 55,223,440 on 2026-09-06. It is a file, not a query: nothing re-runs when a curve trades, and a client that polls it will receive the same figures until the next survey is taken and dated in the changelog. For the chain’s current state the RPC is https://rpc.mainnet.chain.robinhood.com and the enumeration is described under Methodology.

GET /api/book

The whole of the book: every measured figure this site states, with the height it was measured at. No parameters, no pagination, one object.

curl -s https://nobid.desk/api/book
Response · top level
FieldTypeMeaning
chainobjectName, short name, id 4663, RPC and explorer for Robinhood Chain.
venueobjectThe Pons launchpad: the factory address the survey enumerated, and its site.
surveyobjectblock, taken, ethUsd, launches, alive, ethQuoted. The measurement, and the height it was taken at.
strandednumbersurvey.alive − survey.ethQuoted. Live curves with no route to ether.
strandedSharenumberstranded / survey.alive, as a fraction between 0 and 1 — not a percentage.
retirednumbersurvey.launches − survey.alive. Curves the factory recorded that no longer hold a reserve.
curveobjectThe Pons curve constants: virtual reserve, graduation, supply, k, and the share of supply sold at graduation.
misreadobjectThe deepest curve on the chain, its reserve, and what that reserve is read as when the quote asset is assumed to be ether.
censusobjectcomplete, confirmed, scheduled. complete is false and says so rather than omitting the field.
hoursobjectSession hours and days, week hours, and the open and closed shares of the week, already computed.

Three of those fields are arithmetic rather than measurement and are returned already computed, so a client is not obliged to agree with the desk about rounding: stranded, retired and strandedShare, the last of which is 47.89% carried as 0.478860. Percentages are formatted at the edge, never in the payload. census.complete is false until the per-asset run scheduled for 2026-09-14 lands: a field rather than an omission, because a client reading a per-ticker breakdown out of this endpoint deserves to be told there is not one.

Errors. No parameters, so the only failure available is the method: any verb other than GET returns 405.

GET /api/status

The desk’s own state, in the words the rest of the site uses for it. open is false.

curl -s https://nobid.desk/api/status
Response · top level
FieldTypeMeaning
openbooleanfalse. A literal, not a reading: nothing is quoting, so nothing can report that it is.
componentsarrayThe parts of the desk, each described in the same words the site uses for them.
asOfstringISO 8601. When the response was generated — not when anything was last checked.
Response · each entry in components
FieldTypeMeaning
namestringThe component: the book, the schedule, quoting, settlement.
statestringWhat that component is. Published, or not open. Nothing reports itself up while open is false.
notestringOne sentence saying what the state means for a reader who wants to do something today.

Errors. As above: no parameters, and any verb other than GET returns 405.

Limitation

This is not a monitoring feed.

Nothing here polls an RPC endpoint, times a response or keeps a history. asOf is when the response was generated, not when anything was last checked.

POST /api/quote

The published schedule, run over a position you describe. The endpoint calls the same function the desk page calls, so a number from the API and a number on the screen cannot disagree.

curl -s https://nobid.desk/api/quote \
  -H 'Content-Type: application/json' \
  -d '{"reference":1.42,"size":1800,"tier":"stranded","sessionOpen":false,"curveProgress":0.62}'
Request body
FieldTypeMeaning
referencenumberRequired, greater than zero. USD per unit of the quote asset. The desk runs no price feed; the caller supplies this.
sizenumberRequired, greater than zero. The position, in units of the quote asset.
tierstringRequired. One of native, hedged, stranded — the three keys in the schedule.
sessionOpenbooleanRequired. Is the underlying’s regular session open. false adds the out-of-hours term, 202 bp.
curveProgressnumberRequired, 0 to 1 inclusive. Raised over graduation for the curve the position sits on.
ethUsdnumberOptional. USD per ether for the settlement leg. Defaults to the surveyed 2459.19.

The same names work as query parameters on GET, for curl and for a browser address bar. Booleans are the strings true and false.

curl -s 'https://nobid.desk/api/quote?reference=1.42&size=1800&tier=stranded&sessionOpen=false&curveProgress=0.62'
Response
FieldTypeMeaning
grossUsdnumberreference × size. The reference notional, before anything is taken off.
linesarrayThe waterfall: key, label, bp, note. Every term, applied or not, including the ones that came to zero.
totalBpnumber | nullThe sum of the lines. Null when any line has no schedule.
netUsdnumber | nullgrossUsd × (1 − totalBp / 10,000), floored at zero. Null whenever blockers is non-empty.
netEthnumber | nullnetUsd converted at ethUsd. Ether is the only settlement asset the schedule contemplates.
perUnitUsdnumber | nullnetUsd / size. The all-in price per unit, which is the number a counterparty actually compares.
blockersstring[]Reasons the schedule declines to produce a number. Empty means it did.

A null in this response is an answer rather than a failure. totalBp is null when any line has no schedule at all — the ether-quoted tier has no venue term because the desk declines that trade and points at the AMM, and size above the 250,000 USD ceiling is quoted by a person rather than by a page. netUsd, netEth and perUnitUsd are null whenever blockers is non-empty. In both cases every line is still returned in full, because the reason is the useful part of the response.

The waterfall adds; it does not compound. Each line is basis points off the reference notional and totalBp is their sum, so any figure here can be checked with a calculator — including the desk’s own 25 bp, which is the one line that is revenue rather than risk.

Errors. A 400, with an error field carrying a sentence rather than a code, for: reference or size missing, non-numeric, or not greater than zero; a tier outside the three keys; curveProgress below 0 or above 1; sessionOpen absent or not a boolean, or on the GET form not the string true or false; a body that is not JSON. A curveProgress of exactly 1 is valid input and comes back as a blocker, not an error: the curve has graduated and stopped accepting sells, which is a fact about the position rather than a fault in the request. Any verb other than GET or POST returns 405.

sessionOpen is passed in rather than computed. The site works the session out from an exchange calendar stated through 2026-12-31; the endpoint takes your word for it, so a caller keeping a different calendar gets a quote consistent with their own clock.

Note

The quote is indicative.

It is a published schedule evaluated, not a price made. No inventory stands behind it, no counterparty is committed to it, and the 90-second firm window in the schedule describes a quote a desk gives a person — it does not describe an HTTP response. The standing disclosure at the head of these pages applies to every number this endpoint returns: there is nothing to trade it against, and nobody to trade it with.

Anything that changes in these three responses — a field, a type, a survey — is dated in the changelog rather than announced.