Get a Generation
/v1/generationOverview
OpenRouter-compatible generation details from durable accounting records. id accepts the response id (gen-…, msg_gen-…, resp_…) or the x-request-id header. An API key sees its own requests; a dashboard session sees its workspaces'. Unknown IDs and other owners' IDs both return 404. Costs and tokens are null until the request settles. Also available under /api/v1.
Parameters
idquery · stringRequiredResponses
200Generation details.
dataobjectRequiredShow nested fields
idstringRequiredgen-<unix seconds>-<32 hex digits>
request_idstringRequiredThe x-request-id of the response.
modelstring | nullRequiredprovider_namestring | nullapi_typestringValues: "chat""messages""responses""embeddings"
streamedbooleancreated_atstringbilling_statestringRequiredValues: "pending""settled"
total_costnumber | nullSettled customer charge in USD.
usagenumber | nullis_byokbooleanoriginstringlatencyinteger | nullMilliseconds to the first token, else to completion.
generation_timeinteger | nullfinish_reasonstring | nullnative_finish_reasonstring | nullcancelledbooleantokens_promptinteger | nulltokens_completioninteger | nullnative_tokens_promptinteger | nullnative_tokens_completioninteger | nullnative_tokens_reasoninginteger | nullnative_tokens_cachedinteger | nullrouterstring | nullattemptsintegerprovider_responsesobject[]RequiredShow nested fields
idstringprovider_namestring | nullmodelstring | nullrolestring | nullstatusinteger | nullUpstream HTTP status.
outcomestringValues: "dispatching""unknown""succeeded""failed""review"
failure_causestring | nulllatencyinteger | nullttftinteger | nullfinish_reasonstring | nullroutingobjectRequiredShow nested fields
modestringValues: "direct""named""auto""fusion""fallback"
requested_modelstring | nullpolicystring | nullreleasedstringValues: "unresolved""review""abandoned"
400Request validation failed.
errorobjectRequiredShow nested fields
codestringRequiredmessagestringRequiredparamstring | nullrequest_idstring | nullmetadataobjectTyped detail for some refusals. budget_exceeded (402): limit (key_budget or workspace_budget) and budget with scope, period, limit, usage and resets_at. key_limit_exceeded (402): limit key_spend_limit. access_denied (403): policy (workspace or key), rule (models, providers or products), product, provider and model.
401Authentication is missing or invalid.
errorobjectRequiredShow nested fields
codestringRequiredmessagestringRequiredparamstring | nullrequest_idstring | nullmetadataobjectTyped detail for some refusals. budget_exceeded (402): limit (key_budget or workspace_budget) and budget with scope, period, limit, usage and resets_at. key_limit_exceeded (402): limit key_spend_limit. access_denied (403): policy (workspace or key), rule (models, providers or products), product, provider and model.
404Resource was not found.
errorobjectRequiredShow nested fields
codestringRequiredmessagestringRequiredparamstring | nullrequest_idstring | nullmetadataobjectTyped detail for some refusals. budget_exceeded (402): limit (key_budget or workspace_budget) and budget with scope, period, limit, usage and resets_at. key_limit_exceeded (402): limit key_spend_limit. access_denied (403): policy (workspace or key), rule (models, providers or products), product, provider and model.
500Internal server error.
errorobjectRequiredShow nested fields
codestringRequiredmessagestringRequiredparamstring | nullrequest_idstring | nullmetadataobjectTyped detail for some refusals. budget_exceeded (402): limit (key_budget or workspace_budget) and budget with scope, period, limit, usage and resets_at. key_limit_exceeded (402): limit key_spend_limit. access_denied (403): policy (workspace or key), rule (models, providers or products), product, provider and model.