Skip to main content
Use this endpoint with the OpenAI SDK or any client that supports the Chat Completions wire format. Prism processes request and response content with strict zero data retention. Inputs and outputs are never used for model training.

Request

Body parameters

Each message has a role and content:

Conversation affinity

For multi-turn requests, include a stable, opaque conversation_id in the JSON body. Use the same value for every turn in one conversation and a different value for each separate conversation. Prism uses it to keep related requests on the same inference worker so repeated prompt prefixes can be reused.
conversation_id controls routing only. It does not store conversation state, so include the complete message history required for each response.

Image input

deepseek-v4.1-flash accepts images in user messages using the standard OpenAI image_url content part. Pass the image as a base64 data URL:
JPEG, PNG, GIF, and WebP data URLs are supported. Remote URLs are rejected so the inference worker never fetches an untrusted location. The optional detail field accepts auto, low, or high. Image input is supported by deepseek-v4.1-flash and gemma-4-31b. The complete JSON request, including base64 expansion, must fit within the 9.5 MB request limit.

Reasoning

DeepSeek-V4.1-Flash reasons before it answers. When the request carries no reasoning control, the provider default applies and the first content token arrives only after the model finishes thinking. Set reasoning_effort to shorten or disable that phase: Gemma 4 accepts the same values; minimal runs as low, and xhigh and max run as high.
reasoning: { "enabled": false } is equivalent to reasoning_effort: "none", and reasoning.effort accepts the same values, so OpenRouter-style clients work unchanged. When both fields are present, reasoning_effort wins unless reasoning.enabled is false. Reasoning text is returned in message.reasoning_content and, when streaming, in delta.reasoning_content chunks that precede the first delta.content. Reasoning tokens count toward max_tokens and usage.completion_tokens and are billed as output tokens. Benchmarks that time only delta.content measure thinking time as time to first token; use none or low when latency matters more than deliberation.

Response

finish_reason is commonly:

Streaming

Set stream: true. The response uses text/event-stream and ends with data: [DONE].
Tool-call arguments may span multiple chunks. Concatenate deltas by choice and tool-call index before parsing the JSON arguments.

Errors

Errors use the OpenAI-compatible envelope:
See Errors and retries for status codes and retry guidance.
Last modified on October 22, 2026