The scope is deliberately small. An operator wants to know what flies over a coordinate, and that question falls out of machinery that already exists and carries no risk. Posting requirements and submitting listings are a later version, and should be built when someone has asked twice rather than in anticipation of a caller who never arrives.
An API key, not a session. Send it as Authorization: Bearer <key>. Keys are issued per organisation and revoked one at a time. Only the hash is stored, for the same reason sign-in tokens are hashed: a leaked table must not be a set of live credentials.
Calls are metered per key, with an hourly limit that defaults to 1,000. Exceeding it returns 429 with a retry-after header, so an integration that runs away is visible before it is expensive.
Base: https://api.beamdesk.space/api/public
The reason this API exists. The same computation the marketplace runs for a landowner, addressed by coordinate instead of by drawn boundary — beam time, contact windows and the sky over that exact point.
Every response carries the sweep it came from, when that sweep was generated, the method and the beam mask. Two answers computed under different fleet epochs were never comparable, and without the provenance block a caller would have no way to know.
The same objects the console cites and the public standards page renders. Each entry carries a depth: computed here, emitted, named but not executed, or written by us.
Machine readable so a conformance claim can be checked rather than believed. The depth field is the point of the endpoint — it is what separates a standard we implement from one we merely cite.
Enough to know a parcel exists and roughly where it is. Tier, region, verification level and acreage.
Centroids are rounded to two decimals — about a kilometre — and that is deliberate. Exact boundaries are released through an approach. A marketplace that publishes them has given away the thing operators pay it for, and has told the world which paddock to knock on.
BPI is a draft interoperability interface we wrote, and we are so far its only implementation. This serves the declaration itself, with the status tally recomputed from the document so the summary and the file cannot drift apart.
Seventeen requirements are recorded as not implemented rather than filled with placeholder values — mostly signatures, because there is no organisational signing key. Three more are modelled rather than measured and are marked not-claimed: not offered for reliance.
One capability document per ground facility in the roster. Append an aperture id for a single facility and its attestation bundle.
Broker-authored and unsigned. Every response carries an authorship block saying so, plus a correction path — a message about a site is a pre-filled draft on that site’s behalf, never an attestation by its operator.
Passes for a coordinate over a short horizon, expressed as BPI delivery opportunities rather than as raw geometry.
Energy per window is nominal and provenance-tagged as estimated. Nothing on orbit beams power to a rectenna yet, so a delivered-energy figure here is a model, and it says which.
Coverage depends on a registered fleet. If none is installed, that route returns 503 with a reason rather than answering from the mock constellation. An API that silently substitutes invented geometry is worse than one that is briefly unavailable, because the caller cannot tell which one they got.