Get a request
BetaWe just launched Apps: hosted models, actions and pages, on the same bill as your inference.Read the Apps docs

Get a request

GEThttps://api.inferencebureau.com/v1/requests/:id

The receipt for one request: routing, attempts, usage, and cost. Use the X-Request-ID from any response. Reading a receipt never starts inference.

Path

  • idstringrequired

    A req_… id from your team, from the X-Request-ID header or error.request_id. Any key of the team can read any of its requests. Unknown ids, and ids from other teams, return 400 invalid_request.

Response

  • endpointstringrequired

    chat.completions, messages, responses, embeddings, evaluate or suggest.

  • model_requestedstringrequired

    The model you asked for, as sent: a team alias stays org/fast.

  • selectionobjectoptional

    Only when the alias chose its model through a routing profile: profile, objective, quality_floor, task_class, the model chosen, the reason (cheapest, highest_quality, or baseline when no pool model qualified), the baseline, and candidates: each pool model with its status (selected, eligible, below_floor, not_evaluated, or why it couldn't take the request, such as policy_denied), score and estimated est_usd.

  • aliasobjectoptional

    Only when the request named a team alias: name, the model it resolved to, and the defaults its preset filled (body fields such as temperature).

  • data_rulesobjectoptional

    require_zdr and require_no_training: the data Directives the request ran under.

  • model_actualstring | nullrequired

    The model that answered: a fallback model or an accepted mixed-model suggestion when one applied. null if none answered.

  • provider_actualstring | nullrequired

    The provider that served it.

  • routing_modestringrequired

    explicit for the model as requested; mixed_accepted or pinned for mixed-model turns; profile when an alias's routing profile chose the model.

  • session_idstring | nullrequired

    The ib-session id the request was sent with.

  • end_userstring | nullrequired

    The end user it was sent for (ib-user, user, safety_identifier or metadata.user_id). See End users and tags.

  • tagsstring[]required

    Its tags (ib-tags and ib.tags); empty when none were sent.

  • transport_statestringrequired

    admitted, dispatching, streaming, succeeded, failed, canceled, or unknown.

  • billing_statestringrequired

    See request states.

  • error_codestring | nullrequired

    The error code the request ended with.

  • attemptsarrayrequired

    Each provider attempt in order, with its model, provider, state, upstream status, error, and timing (below). operation is execute for the request itself or classify for a mixed-model classifier call it carried.

  • usagearrayrequired

    Token counts per generation, including reasoning and cached tokens, and the finish reason. Empty until usage is known.

  • costobjectrequired

    With status: "final": upstream_cost, platform_fee and customer_charge as USD decimal strings, and the fee rate in markup_bps. Otherwise status is pending until usage settles, or released when nothing was billed.

  • mixed_modelarrayoptional

    Present when the request produced or used a mixed-model suggestion: the suggestion id, task class, confidence, models and estimates.

  • versionsobjectrequired

    Directives, price plan, and catalog versions that applied.

Attempt timing

each entry of attempts
  • started_atstring | nullrequired

    When the attempt was sent to the provider.

  • first_byte_atstring | nullrequired

    For a stream, when the first event arrived, before any byte reached you. For a non-streamed call, when the whole response arrived.

  • ended_atstring | nullrequired

    When the attempt finished. For a stream, when its last event was relayed, so a slow reader makes it later.

  • streamedboolean | nullrequired

    Whether the attempt streamed. null until something came back.

  • ttft_msinteger | nullrequired

    Time to first token: first_byte_at − started_at. Streamed attempts only; null for non-streamed calls, whose first byte is the whole answer.

  • duration_msinteger | nullrequired

    ended_at − started_at. null while the attempt runs.

  • output_tokens_per_secondnumber | nullrequired

    Completion tokens (reasoning included) divided by generation time: ended_at − first_byte_at for a stream, ended_at − started_at for a non-streamed call, which includes the wait for the first token. null until usage is known, or when no completion tokens were reported.

Timestamps are ISO 8601 in UTC (2026-10-04T17:02:11.204Z), as on every endpoint. GET /v1/usage lists many requests at once.