> ## Documentation Index
> Fetch the complete documentation index at: https://openrouter.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# GenerationResponseData

Generation data

## Fields

| Field | Type | Required | Description | Example |
| - | - | - | - | - |
| `APIType` | [\*components.APIType](../../models/components/apitype.mdx) | :heavy\_check\_mark: | Type of API used for the generation | |
| `AppID` | `*int64` | :heavy\_check\_mark: | ID of the app that made the request | 12345 |
| `CacheDiscount` | `*float64` | :heavy\_check\_mark: | Discount applied due to caching | 0.0002 |
| `Cancelled` | `*bool` | :heavy\_check\_mark: | Whether the generation was cancelled | false |
| `CreatedAt` | `string` | :heavy\_check\_mark: | ISO 8601 timestamp of when the generation was created | 2024-07-15T23:33:19.433273+00:00 |
| `DataRegion` | [components.GenerationResponseDataRegion](../../models/components/generationresponsedataregion.mdx) | :heavy\_check\_mark: | The data region this generation was routed through: 'global', 'europe', or 'us'. | global |
| `ExternalUser` | `*string` | :heavy\_check\_mark: | External user identifier | user-123 |
| `FinishReason` | `*string` | :heavy\_check\_mark: | Reason the generation finished | stop |
| `GenerationTime` | `*float64` | :heavy\_check\_mark: | Time taken for generation in milliseconds | 1200 |
| `HTTPReferer` | `*string` | :heavy\_check\_mark: | Referer header from the request | |
| `ID` | `string` | :heavy\_check\_mark: | Unique identifier for the generation | gen-3bhGkxlo4XFrqiabUM7NDtwDzWwG |
| `IsBYOK` | `bool` | :heavy\_check\_mark: | Whether this used bring-your-own-key | false |
| `Latency` | `*float64` | :heavy\_check\_mark: | Total latency in milliseconds | 1250 |
| `Model` | `string` | :heavy\_check\_mark: | Model used for the generation | sao10k/l3-stheno-8b |
| `ModerationLatency` | `*float64` | :heavy\_check\_mark: | Moderation latency in milliseconds | 50 |
| `NativeFinishReason` | `*string` | :heavy\_check\_mark: | Native finish reason as reported by provider | stop |
| `NativeTokensCached` | `*int64` | :heavy\_check\_mark: | Native cached tokens as reported by provider | 3 |
| `NativeTokensCompletion` | `*int64` | :heavy\_check\_mark: | Native completion tokens as reported by provider | 25 |
| `NativeTokensCompletionImages` | `*int64` | :heavy\_check\_mark: | Native completion image tokens as reported by provider | 0 |
| `NativeTokensPrompt` | `*int64` | :heavy\_check\_mark: | Native prompt tokens as reported by provider | 10 |
| `NativeTokensReasoning` | `*int64` | :heavy\_check\_mark: | Native reasoning tokens as reported by provider | 5 |
| `NumFetches` | `*int64` | :heavy\_check\_mark: | Number of web fetches performed | 0 |
| `NumInputAudioPrompt` | `*int64` | :heavy\_check\_mark: | Number of audio inputs in the prompt | 0 |
| `NumMediaCompletion` | `*int64` | :heavy\_check\_mark: | Number of media items in the completion | 0 |
| `NumMediaPrompt` | `*int64` | :heavy\_check\_mark: | Number of media items in the prompt | 1 |
| `NumSearchResults` | `*int64` | :heavy\_check\_mark: | Number of search results included | 5 |
| `Origin` | `string` | :heavy\_check\_mark: | Origin URL of the request | [https://openrouter.ai/](https://openrouter.ai/) |
| `PresetID` | `*string` | :heavy\_check\_mark: | ID of the preset used for this generation, null if no preset was used | a9e8d400-592a-494f-908c-375efa66cafd |
| `ProviderName` | `*string` | :heavy\_check\_mark: | Name of the provider that served the request | Infermatic |
| `ProviderResponses` | \[][components.ProviderResponse](../../models/components/providerresponse.mdx) | :heavy\_check\_mark: | List of provider responses for this generation, including fallback attempts | |
| `RequestID` | optionalnullable.OptionalNullable\[`string`] | :heavy\_minus\_sign: | Unique identifier grouping all generations from a single API request | req-1727282430-aBcDeFgHiJkLmNoPqRsT |
| `ResponseCacheSourceID` | optionalnullable.OptionalNullable\[`string`] | :heavy\_minus\_sign: | If this generation was served from response cache, contains the original generation ID. Null otherwise. | |
| `Router` | `*string` | :heavy\_check\_mark: | Router used for the request (e.g., openrouter/auto) | openrouter/auto |
| `ServiceTier` | `*string` | :heavy\_check\_mark: | Service tier the upstream provider reported running this request on, or null if it did not report one. | priority |
| `SessionID` | optionalnullable.OptionalNullable\[`string`] | :heavy\_minus\_sign: | Session identifier grouping multiple generations in the same session | |
| `Streamed` | `*bool` | :heavy\_check\_mark: | Whether the response was streamed | true |
| `TokensCompletion` | `*int64` | :heavy\_check\_mark: | Number of tokens in the completion | 25 |
| `TokensPrompt` | `*int64` | :heavy\_check\_mark: | Number of tokens in the prompt | 10 |
| `TotalCost` | `float64` | :heavy\_check\_mark: | Total cost of the generation in USD | 0.0015 |
| `UpstreamID` | `*string` | :heavy\_check\_mark: | Upstream provider's identifier for this generation | chatcmpl-791bcf62-080e-4568-87d0-94c72e3b4946 |
| `UpstreamInferenceCost` | `*float64` | :heavy\_check\_mark: | Cost charged by the upstream provider | 0.0012 |
| `Usage` | `float64` | :heavy\_check\_mark: | Usage amount in USD | 0.0015 |
| `UserAgent` | `*string` | :heavy\_check\_mark: | User-Agent header from the request | |
| `WebSearchEngine` | `*string` | :heavy\_check\_mark: | The resolved web search engine used for this generation (e.g. exa, firecrawl, parallel) | exa |
| `WorkspaceID` | `*string` | :heavy\_check\_mark: | ID of the workspace this generation is attributed to. Null for accounts without workspaces. Generations created before workspace resolution existed are attributed to the account default workspace. | 550e8400-e29b-41d4-a716-446655440000 |
