Skip to main content
Every choice carries a finish_reason. There are exactly four values.

The Values

Where It Appears

Non-streaming:
Streaming: finish_reason is null on every chunk until the terminal one. See Delta format.
The same four values appear per participant in a Fusion result under models[].finish_reason.