Downstream Developer API

Developer API

Get a key. Run it right here.

Self-service, no invitation and no account. Enter a label, receive a seven-day key, and call every endpoint from the console on this page. Raw JSON and a readable view, side by side.

Checking issuance status 168 hour lifetime 50 keys per network per day Server-minted tenant

Step 1 of 3

Create a key

Tell us who you are so we know who is using the beta. None of it affects what the key can do.

Your own name for this key.

Only so the project can contact you about the beta. Never used to authenticate.

No API key is loaded in this browser session.

Step 2 of 3

Run it from the browser

Pick an endpoint, edit the body if it takes one, and execute. You get the exact status, headers, raw JSON, and a readable summary.

JSON. Edit freely; malformed JSON is reported before anything is sent.

“Run the whole sequence” performs eight calls in order: create a workspace from a live record, answer, skip, revise, give feedback, resume, read the autonomy receipt, and fetch the final state.

No request sent yet

Send a request to see a readable view here.

Step 3 of 3

API reference

Everything the service exposes. The interactive OpenAPI schema is at /docs; /openapi.json is the machine-readable contract.

Authentication

Send your key in the X-API-Key header on every /v1 route. Public routes under /downstream and /health need no key at all.

X-API-Key: ds_beta_your_key_here

Errors

  • 401 missing, invalid, expired, or revoked key.
  • 403 the key lacks the required scope.
  • 404 no such workspace for your tenant. Another tenant's workspace is indistinguishable from one that does not exist.
  • 422 the request was understood but rejected: unknown question, already answered, empty answer, revision without a reason.
  • 429 a daily ceiling was reached. X-RateLimit-Reset tells you when it returns.
  • 503 a dependency is unavailable, such as the public NID service.

Daily limits

CeilingDefaultKeyed to
Key creations50your network
/v1 calls1,000your key
Public demo workspaces500your network
Live Gemini calls25the deployment

Sized so thorough evaluation never hits a wall. Counters are Firestore transactions and reset at UTC midnight. What is stored is an HMAC of your address, never a raw IP.

Boundary

Drafting and screening support only. There is no endpoint that approves, certifies, or submits a plan, and none that produces an inundation extent, depth, velocity, arrival time, or evacuation zone. The executable proof asserts this on every deploy.

Notes

  • The API starts from an authoritative public USACE NID record, not from dam facts you supply. Find a real identifier with GET /downstream/nid/search.
  • A null EAP_PREPARED means unreported in that public field. It is never evidence that no plan exists.
  • Owner answers are stored verbatim in your workspace. A pseudonymised form is what crosses any model boundary.
  • The demonstration dam, drawing, and answers are synthetic. No agency seal is used and the project is not affiliated with USACE, FEMA, ASDSO, or any state agency.

Provisioning, rotation, and operator-managed keys are documented in the beta API guide.