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.
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.
No API key is loaded in this browser session.
Save this key now
The plaintext value is returned once. Only its SHA-256 digest is stored, so it cannot be shown again.
- Tenant
- Expires
- Keys left today
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.
Send a request to see a readable view here.
{}Sequence result
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
401missing, invalid, expired, or revoked key.403the key lacks the required scope.404no such workspace for your tenant. Another tenant's workspace is indistinguishable from one that does not exist.422the request was understood but rejected: unknown question, already answered, empty answer, revision without a reason.429a daily ceiling was reached.X-RateLimit-Resettells you when it returns.503a dependency is unavailable, such as the public NID service.
Daily limits
| Ceiling | Default | Keyed to |
|---|---|---|
| Key creations | 50 | your network |
/v1 calls | 1,000 | your key |
| Public demo workspaces | 500 | your network |
| Live Gemini calls | 25 | the 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_PREPAREDmeans 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.