Create response

POSThttps://api.poe.com/v1/responses

Overview

Creates a model response using the OpenAI Responses API format. This is the most feature-rich endpoint, supporting advanced capabilities beyond basic chat completions.

Key features:

  • Reasoning and extended thinking support
  • Built-in tool calling with web search
  • Structured outputs (JSON schema)
  • Streaming support via SSE
  • Multi-turn conversations via previous_response_id
  • Multi-modal inputs (text, images)

OpenAI Responses API compatible: This endpoint follows the OpenAI Responses API format. You can use the OpenAI SDK with Poe's base URL as a drop-in replacement.

Note: This endpoint supports all models available on Poe, not just OpenAI models.

Authentication

Send your Poe API key in the Authorization header:

Authorization: Bearer sk_test_51SAMPLEKEY

All requests must be made over HTTPS.

Parameters

This endpoint does not accept query or path parameters.

Request body

FieldTypeRequiredDescription
modelstringRequiredID of the model to use. Use Poe bot names.

Note: Poe UI-specific system prompts are skipped
inputstring | object[]RequiredThe input to the model. Can be a simple string or an array of input items including text, images, and previous assistant messages.
instructionsstring | nullOptionalA system (or developer) message inserted at the beginning of the model's context
streambooleanOptionalWhether to stream back partial progress as server-sent events (SSE) Default: false
max_output_tokensinteger | nullOptionalMaximum number of output tokens to generate. Uses the model's default if not specified
temperaturenumber | nullOptionalSampling temperature between 0 and 2 Min: 0 ยท Max: 2
top_pnumber | nullOptionalNucleus sampling parameter Min: 0 ยท Max: 1
reasoningobject | nullOptionalConfiguration for reasoning/thinking models. Not all models support reasoning.
textobject | nullOptionalConfiguration for structured text output
toolsarray | nullOptionalList of tools the model may call. Supports function tools and built-in tools like web_search_preview.
tool_choicestring | objectOptionalHow the model should select which tool to use. Can be "auto", "required", "none", or a specific tool object.
parallel_tool_callsboolean | nullOptionalWhether to allow the model to run tool calls in parallel
truncationstring | nullOptionalThe truncation strategy to use.
- "auto": Truncate input to fit the model's context window
- "disabled": Fail if the input exceeds the context window
Allowed values: auto, disabled
previous_response_idstring | nullOptionalThe ID of a previous response for multi-turn conversations. The model will use the previous response's context
includearray | nullOptionalAdditional output data to include in the response. Supported values:
- "web_search_call.action.sources" - Include web search sources
- "message.output_text.logprobs" - Include log probabilities
- "reasoning.encrypted_content" - Include encrypted reasoning content
metadataobject | nullOptionalSet of key-value pairs for storing additional information (keys max 64 chars, values max 512 chars)
service_tierstring | nullOptionalSpecifies the processing tier for the request Allowed values: auto, default, flex, priority
storeboolean | nullOptionalWhether to store the generated response for later retrieval

Responses

FieldTypeRequiredDescription
idstringOptionalUnique identifier for the response
object"response"OptionalObject type, always "response" Allowed values: response
created_atintegerOptionalUnix timestamp of when the response was created
modelstringOptionalThe model used to generate the response
outputobject[]OptionalArray of output items generated by the model
output[].typestringOptionalType of output item (e.g., "message")
output[].rolestringOptionalRole of the output (e.g., "assistant")
output[].contentobject[]OptionalContent blocks in the output
output[].content[].typestringOptionalContent block type (e.g., "output_text")
output[].content[].textstringOptionalText content
status"completed" | "failed" | "in_progress" | "incomplete"OptionalThe status of the response Allowed values: completed, failed, in_progress, incomplete
usageobjectOptionalToken usage information
usage.input_tokensintegerOptionalNumber of input tokens
usage.output_tokensintegerOptionalNumber of output tokens
usage.total_tokensintegerOptionalTotal number of tokens used

โŒ Error codes

HttpTypeDescription
400invalid_request_errorBad request Malformed JSON or missing required fields
401authentication_errorAuthentication failed Invalid API key
402insufficient_creditsInsufficient credits Point balance is zero or negative
429rate_limit_errorRate limit exceeded Rate limit exceeded (500 requests per minute)

๐Ÿ” Callbacks & webhooks

No callbacks or webhooks are associated with this endpoint.