Developer Platform · API v1
Throwing, as an API.
Model a trajectory, initiate a governed throw, and clear it against the Do-Not-Yeet registry — in one HTTPS request. REST, JSON, signed webhooks, SDKs. Every call returns a ground-contact certificate; regret is not a supported response type.
Introduction
The Yeeterprise API is organized around REST, with predictable resource-oriented URLs, application/json bodies, JSON responses, and standard HTTP verbs and codes. The one non-standard guarantee: nothing you send goes up and stays there.
v1 is supported until every object it describes reaches the ground.Authentication
Authenticate with your secret API key in the Authorization header as a Bearer token. The prefix carries the environment: sk_live_ for production, sk_test_ for the sandbox (where objects are thrown but never leave the origin).
Authorization: Bearer sk_live_9f2c••••••••••••••••a71b
Quickstart
Initiate your first governed throw. This models the arc, clears the payload against the registry, and — if compliant — commits it with a certificate.
curl https://api.yeeterprise.com/v1/throws \ -H "Authorization: Bearer sk_live_9f2c…a71b" \ -H "Content-Type: application/json" \ -d '{ "payload": "a slightly overripe banana", "origin": "desk-4F", "target_zone": "bin-north", "force": "governed" }'
{ "id": "thr_0Kp9c2Ba71b", "object": "throw", "status": "in_flight", "compliance": { "registry_cleared": true, "class": null }, "trajectory": { "apex_cm": 142, "time_to_ground_s": 0.71 }, "regret": 0, "certificate_url": "https://api.yeeterprise.com/v1/throws/thr_0Kp9c2Ba71b/certificate" }
Throws
A throw is the core object: one governed act of downward force, release to ground contact, with trajectory and compliance verdict attached.
Request body
| Field | Type | Description | |
|---|---|---|---|
| payload | string | required | Plain-language description of the object. Screened against the Do-Not-Yeet registry before release. |
| origin | string | required | Release location, used for arc modeling and audit. |
| target_zone | string | optional | Intended ground-contact zone. Defaults to nearest_sanctioned. |
| force | enum | optional | governed (default), gentle, or ceremonial. reckless is not valid and never will be. |
| idempotency_key | string | optional | Guarantees a payload is thrown at most once. Recommended. |
Trajectories
Model an arc before committing. Returns apex, time-to-ground, and a confidence interval — no object leaves the origin.
// POST /v1/trajectories/model { "mass_g": 118, "release_velocity_ms": 3.4, "angle_deg": 38 } // → { "apex_cm": 142, "time_to_ground_s": 0.71, "confidence": 0.992 }
Compliance checks
Query the Do-Not-Yeet registry directly. Every POST /v1/throws runs this automatically, but you can pre-flight a payload to fail fast and keep regret clean.
{ "error": { "type": "do_not_yeet", "code": "DNY-0002", "message": "Payload matches a protected class: a sleeping cat.", "resolution": "Do not yeet. There is no override. This is the whole point." } }
Webhooks
Subscribe to lifecycle events so your systems learn the moment an object reaches the ground. Payloads are signed with your endpoint's secret; verify the Yeet-Signature header before trusting a body.
| Event | Fires when | |
|---|---|---|
| throw.in_flight | A payload has been released and is airborne. | |
| throw.grounded | Ground contact confirmed; certificate attached. | |
| throw.blocked | The policy engine halted a release pre-flight. | |
| compliance.violation_averted | A registry match prevented a throw; regret held at zero. |
Rate limits
Limits are per API key, by plan. Exceeding one returns 429 with a Retry-After header. Objects do not queue in the air.
| Plan | Throws / min | Model calls / min | Burst |
|---|---|---|---|
| Sandbox | 60 | 120 | 10 |
| Team | 600 | 1,200 | 60 |
| Enterprise | Negotiated | Negotiated | By SLA |
Errors & status codes
Yeeterprise uses conventional HTTP status codes. The 2xx range means the object is on its way down; 4xx means it never should have gone up.
| Code | Meaning |
|---|---|
| 200 | OK — resource retrieved. |
| 202 | Accepted — throw released and in flight. |
| 400 | Bad request — the payload description was unmodelable. |
| 401 | Unauthorized — missing or invalid API key. |
| 403 | Do-Not-Yeet — payload matches a protected class. Non-overridable. |
| 409 | Conflict — idempotency key already thrown. |
| 429 | Too many throws — slow down; gravity is a shared resource. |
| 5xx | Ground fault — our side. The object stays put; we investigate. |
SDKs
Official libraries wrap authentication, idempotent retries, and webhook signature verification.
# Node.js npm install @yeeterprise/node # Python pip install yeeterprise # Go go get github.com/yeeterprise/yeeterprise-go
import Yeeterprise from "@yeeterprise/node"; const y = new Yeeterprise("sk_live_9f2c…a71b"); const throw_ = await y.throws.create({ payload: "a stress ball, retired", origin: "desk-4F", force: "governed", }); console.log(throw_.status, throw_.regret); // "in_flight" 0
Built for builders
Throw programmatically. Attest automatically.
Issue a governed throw with one API call and receive a signed attestation the moment it lands. Every request is validated against the Do-Not-Yeet registry, so protected classes are rejected at the SDK layer before leaving your process.
Read the docsBuild downward
Ship your first governed throw today.
REST, JSON, webhooks, and SDKs — with a ground-contact certificate on every call.
Get API keys Read the Trust Center