Perplexity · Schema

ResponsesRequest

Properties

Name Type Description
input object
instructions string System instructions for the model
language_preference string ISO 639-1 language code for response language
max_output_tokens integer Maximum tokens to generate
max_steps integer Maximum number of research loop steps. If provided, overrides the preset's max_steps value. Must be >= 1 if specified. Maximum allowed is 10.
model string Model ID in provider/model format (e.g., "xai/grok-4-1", "openai/gpt-4o"). If models is also provided, models takes precedence. Required if neither models nor preset is provided.
models array Model fallback chain. Each model is in provider/model format. Models are tried in order until one succeeds. Max 5 models allowed. If set, takes precedence over single model field. The response.model w
preset string Preset configuration name (e.g., "fast-search", "pro-search", "deep-research"). Pre-configured model with system prompt and search parameters. Required if model is not provided.
reasoning object
response_format object
stream boolean If true, returns SSE stream instead of JSON
tools array Tools available to the model
View JSON Schema on GitHub

JSON Schema

perplexity-responsesrequest-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "#/components/schemas/ResponsesRequest",
  "title": "ResponsesRequest",
  "properties": {
    "input": {
      "$ref": "#/components/schemas/Input"
    },
    "instructions": {
      "description": "System instructions for the model",
      "type": "string"
    },
    "language_preference": {
      "description": "ISO 639-1 language code for response language",
      "type": "string"
    },
    "max_output_tokens": {
      "description": "Maximum tokens to generate",
      "format": "int32",
      "minimum": 1,
      "type": "integer"
    },
    "max_steps": {
      "description": "Maximum number of research loop steps.\nIf provided, overrides the preset's max_steps value.\nMust be >= 1 if specified. Maximum allowed is 10.\n",
      "format": "int32",
      "maximum": 10,
      "minimum": 1,
      "type": "integer"
    },
    "model": {
      "description": "Model ID in provider/model format (e.g., \"xai/grok-4-1\", \"openai/gpt-4o\").\nIf models is also provided, models takes precedence.\nRequired if neither models nor preset is provided.\n",
      "type": "string"
    },
    "models": {
      "description": "Model fallback chain. Each model is in provider/model format.\nModels are tried in order until one succeeds.\nMax 5 models allowed. If set, takes precedence over single model field.\nThe response.model will reflect the model that actually succeeded.\n",
      "items": {
        "type": "string"
      },
      "maxItems": 5,
      "minItems": 1,
      "type": "array"
    },
    "preset": {
      "description": "Preset configuration name (e.g., \"fast-search\", \"pro-search\", \"deep-research\").\nPre-configured model with system prompt and search parameters.\nRequired if model is not provided.\n",
      "type": "string"
    },
    "reasoning": {
      "$ref": "#/components/schemas/ReasoningConfig"
    },
    "response_format": {
      "$ref": "#/components/schemas/ResponseFormat"
    },
    "stream": {
      "description": "If true, returns SSE stream instead of JSON",
      "type": "boolean"
    },
    "tools": {
      "description": "Tools available to the model",
      "items": {
        "$ref": "#/components/schemas/Tool"
      },
      "type": "array"
    }
  },
  "required": [
    "input"
  ],
  "type": "object"
}