The surface is narrow on purpose: two metered endpoints and model: "auto". Model identity is not exposed.
ModelBeatbeta

Submit an outcome signal for a prior request

Explicit outcome signal (`"up"` or `"down"`) for a request you made earlier, keyed by that request's id. **`request_id` must be the `X-Request-Id` response header value from the original request, not the response body's own `id` field.** The two are different identifiers, and only the header value is recognized here — the body's `id` returns `404`. Authenticated and rate-limited like every `/v1` path, but never metered: no balance hold, no usage row, no routing.

POST
/feedback

Explicit outcome signal ("up" or "down") for a request you made earlier, keyed by that request's id.

request_id must be the X-Request-Id response header value from the original request, not the response body's own id field. The two are different identifiers, and only the header value is recognized here — the body's id returns 404.

Authenticated and rate-limited like every /v1 path, but never metered: no balance hold, no usage row, no routing.

Authorization

bearerAuth
AuthorizationBearer <token>

A ModelBeat API key, prefixed mb_live_, sent as Authorization: Bearer <key>.

Keys are issued in the ModelBeat console and are scoped to one tenant. The example value used throughout this document (mb_live_EXAMPLE_NOT_A_REAL_KEY_00000000000000000000) is a placeholder and will not authenticate.

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/feedback" \  -H "Content-Type: application/json" \  -d '{    "request_id": "string",    "signal": "up"  }'
{  "request_id": "string",  "signal": "up",  "revised": true}