Skip to content

Completions

Create completion
completions.create(**kwargs) -> Completion { id, choices, created, 4 more }
POST/completions
ModelsExpand Collapse
class Completion { id, choices, created, 4 more }

Represents a completion response from the API. Note: both the streamed and non-streamed response objects share the same shape (unlike the chat endpoint).

id: String

A unique identifier for the completion.

choices: Array[CompletionChoice { finish_reason, index, logprobs, text } ]

The list of completion choices the model generated for the input prompt.

finish_reason: :stop | :length | :content_filter

The reason the model stopped generating tokens. This will be stop if the model hit a natural stop point or a provided stop sequence, length if the maximum number of tokens specified in the request was reached, or content_filter if content was omitted due to a flag from our content filters.

Accepts one of the following:
:stop
:length
:content_filter
index: Integer
logprobs: { text_offset, token_logprobs, tokens, top_logprobs}
text_offset: Array[Integer]
token_logprobs: Array[Float]
tokens: Array[String]
top_logprobs: Array[Hash[Symbol, Float]]
text: String
created: Integer

The Unix timestamp (in seconds) of when the completion was created.

model: String

The model used for completion.

object: :text_completion

The object type, which is always "text_completion"

system_fingerprint: String

This fingerprint represents the backend configuration that the model runs with.

Can be used in conjunction with the seed request parameter to understand when backend changes have been made that might impact determinism.

usage: CompletionUsage { completion_tokens, prompt_tokens, total_tokens, 2 more }

Usage statistics for the completion request.

class CompletionChoice { finish_reason, index, logprobs, text }
finish_reason: :stop | :length | :content_filter

The reason the model stopped generating tokens. This will be stop if the model hit a natural stop point or a provided stop sequence, length if the maximum number of tokens specified in the request was reached, or content_filter if content was omitted due to a flag from our content filters.

Accepts one of the following:
:stop
:length
:content_filter
index: Integer
logprobs: { text_offset, token_logprobs, tokens, top_logprobs}
text_offset: Array[Integer]
token_logprobs: Array[Float]
tokens: Array[String]
top_logprobs: Array[Hash[Symbol, Float]]
text: String
class CompletionUsage { completion_tokens, prompt_tokens, total_tokens, 2 more }

Usage statistics for the completion request.

completion_tokens: Integer

Number of tokens in the generated completion.

prompt_tokens: Integer

Number of tokens in the prompt.

total_tokens: Integer

Total number of tokens used in the request (prompt + completion).

completion_tokens_details: { accepted_prediction_tokens, audio_tokens, reasoning_tokens, rejected_prediction_tokens}

Breakdown of tokens used in a completion.

accepted_prediction_tokens: Integer

When using Predicted Outputs, the number of tokens in the prediction that appeared in the completion.

audio_tokens: Integer

Audio input tokens generated by the model.

reasoning_tokens: Integer

Tokens generated by the model for reasoning.

rejected_prediction_tokens: Integer

When using Predicted Outputs, the number of tokens in the prediction that did not appear in the completion. However, like reasoning tokens, these tokens are still counted in the total completion tokens for purposes of billing, output, and context window limits.

prompt_tokens_details: { audio_tokens, cached_tokens}

Breakdown of tokens used in the prompt.

audio_tokens: Integer

Audio input tokens present in the prompt.

cached_tokens: Integer

Cached tokens present in the prompt.