> ## Documentation Index
> Fetch the complete documentation index at: https://docs.auriko.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Overview

> Create model responses using the OpenAI Response API format through Auriko

`POST /v1/responses` accepts a string or structured input and returns typed output items instead of a messages array. Auriko routes these requests across providers, and routing features (multi-model, cost optimization, and extensions) work with both endpoints. If you're building with the OpenAI SDK's `client.responses.create()`, use this endpoint.

<Note>
  The Response API is in preview. The interface may change before GA.
</Note>

## Prerequisites

* An [Auriko API key](https://auriko.ai/signup?redirectTo=%2Fdashboard%3Ftab%3Dapi-keys)
* Python 3.10+ with the OpenAI SDK (`pip install openai`) or the Auriko SDK (`pip install auriko`)
  * OR Node.js 18+ with the OpenAI SDK (`npm install openai`) or `@auriko/sdk` (`npm install @auriko/sdk`)

## Send requests

Send a request and read the output text:

<CodeGroup>
  ```python Python OpenAI theme={null}
  import os
  from openai import OpenAI

  client = OpenAI(
      api_key=os.environ["AURIKO_API_KEY"],
      base_url="https://api.auriko.ai/v1"
  )

  response = client.responses.create(
      model="gpt-4o",
      input="What is the capital of France?"
  )

  print(response.output_text)
  ```

  ```typescript TypeScript OpenAI theme={null}
  import OpenAI from "openai";

  const client = new OpenAI({
      apiKey: process.env.AURIKO_API_KEY,
      baseURL: "https://api.auriko.ai/v1",
  });

  const response = await client.responses.create({
      model: "gpt-4o",
      input: "What is the capital of France?",
  });

  console.log(response.output_text);
  ```

  ```python Python Auriko theme={null}
  import os
  from auriko import Client

  client = Client(
      api_key=os.environ["AURIKO_API_KEY"],
      base_url="https://api.auriko.ai/v1"
  )

  response = client.responses.create(
      model="gpt-4o",
      input="What is the capital of France?"
  )

  print(response.output_text)
  ```

  ```typescript TypeScript Auriko theme={null}
  import { Client } from "@auriko/sdk";

  const client = new Client({
      apiKey: process.env.AURIKO_API_KEY,
      baseUrl: "https://api.auriko.ai/v1",
  });

  const response = await client.responses.create({
      model: "gpt-4o",
      input: "What is the capital of France?",
  });

  console.log(response.output_text);
  ```

  ```bash cURL theme={null}
  curl https://api.auriko.ai/v1/responses \
    -H "Authorization: Bearer $AURIKO_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{
      "model": "gpt-4o",
      "input": "What is the capital of France?"
    }'
  ```
</CodeGroup>

## Check model support

Chat models work with both `/v1/chat/completions` and `/v1/responses`. Some models are only available via the Response API — OpenAI pro-tier models such as `gpt-5.5-pro` and `o3-pro` — and chat-format requests to them return [`response_api_only`](/errors/response_api_only).

To check endpoint support for a model, read `supported_endpoints` on each provider entry in the [model directory](/api-reference/model-directory), or list every Response-API-callable model directly:

```bash theme={null}
curl "https://api.auriko.ai/v1/models?endpoint=responses" \
  -H "Authorization: Bearer $AURIKO_API_KEY"
```

## Map parameters

If you're migrating existing Chat Completions code, use this table to translate parameter names:

| Concept           | Chat Completions                                   | Response API                                      |
| ----------------- | -------------------------------------------------- | ------------------------------------------------- |
| Input             | `messages` array                                   | `input` (string or items)                         |
| System prompt     | `messages[0].role: "system"`                       | `instructions` parameter                          |
| Output            | `choices[].message`                                | `output` items array                              |
| Output text       | `choices[0].message.content`                       | `output_text`                                     |
| Structured output | `response_format`                                  | `text.format`                                     |
| Reasoning         | `reasoning_effort` top-level                       | `reasoning.effort` nested                         |
| Tool definition   | `{type: "function", function: {name, parameters}}` | `{type: "function", name, parameters}`            |
| Tool results      | `{role: "tool", tool_call_id, content}`            | `{type: "function_call_output", call_id, output}` |
| Usage fields      | `prompt_tokens` / `completion_tokens`              | `input_tokens` / `output_tokens`                  |

## Check feature support

| Feature                | Status                                                                                                                     |
| ---------------------- | -------------------------------------------------------------------------------------------------------------------------- |
| Text completions       | Supported                                                                                                                  |
| Streaming              | Supported (18 SSE event types)                                                                                             |
| Tool calling           | Supported (function tools)                                                                                                 |
| Structured output      | Supported (`json_schema`, `json_object`)                                                                                   |
| Vision                 | Supported (image URLs in input)                                                                                            |
| Multi-model routing    | Supported (`gateway.models`)                                                                                               |
| Prompt caching         | Supported (`prompt_cache_key`)                                                                                             |
| Token logprobs         | Supported (`top_logprobs`)                                                                                                 |
| Reasoning              | Supported (`reasoning.effort`); [summary availability varies by model](/response-api/reasoning#access-reasoning-summaries) |
| `store`                | Returns 400 `operation_not_allowed`                                                                                        |
| `previous_response_id` | Returns 400 `operation_not_allowed`                                                                                        |
| File/audio inputs      | Returns 400 `operation_not_allowed`                                                                                        |
| Background execution   | Returns 400 `operation_not_allowed`                                                                                        |

## Resources

<CardGroup cols={2}>
  <Card title="Streaming" icon="bolt" href="/response-api/streaming">
    Stream events as they're generated
  </Card>

  <Card title="Tool Calling" icon="wrench" href="/response-api/tool-calling">
    Call functions with the input/output item format
  </Card>

  <Card title="Structured Output" icon="brackets-curly" href="/response-api/structured-output">
    Constrain output to a JSON Schema
  </Card>

  <Card title="Reasoning" icon="brain" href="/response-api/reasoning">
    Control reasoning effort and access summaries
  </Card>

  <Card title="Routing and Extensions" icon="route" href="/response-api/routing-extensions">
    Multi-model routing and provider extensions
  </Card>

  <Card title="API Reference" icon="code" href="/api-reference/create-response">
    Full endpoint specification
  </Card>

  <Card title="Python SDK" icon="python" href="/sdk/python-reference#responses">
    Python SDK reference for responses
  </Card>

  <Card title="TypeScript SDK" icon="js" href="/sdk/typescript-reference#responses">
    TypeScript SDK reference for responses
  </Card>
</CardGroup>
