Draftworks

Responses API

Reference for POST /v1/responses — input items, reasoning, text controls, and the store=false default.

POST https://www.draftworks.dev/v1/responses

The Responses API is OpenAI's newer interface: item-based input and output, first-class reasoning configuration, and typed streaming events. Draftworks passes it through to GPT-5.5 with one deliberate change to defaults, described below.

store defaults to false on Draftworks. OpenAI and Azure default store to true, which persists your request and response server-side for 30 days. Draftworks defaults it to false: prompt and completion content is never written to disk, in line with our privacy posture. The practical consequence: previous_response_id requires the referenced response to have been created with an explicit "store": true. If you rely on server-side conversation state, opt in per request; otherwise send the full conversation as input each turn.

Parameters

ParameterTypeNotes
modelstring, requiredgpt-5.5 or gpt-5.5-2026-04-24.
inputstring or arrayA plain string, or an array of items (message items with input_text / input_image content parts, function_call_output items, etc.).
instructionsstringSystem-level guidance; equivalent to a system message.
reasoningobject{ "effort": "none" | "low" | "medium" | "high" | "xhigh", "summary": "auto" | "concise" | "detailed" }. Default effort is medium. See reasoning effort.
textobject{ "verbosity": "low" | "medium" | "high", "format": { "type": "json_schema", ... } } — output-length steering and structured outputs.
max_output_tokensintegerCap on generated tokens including reasoning tokens. Up to 128,000.
toolsarrayFunction tools: { "type": "function", "name", "parameters", "strict" }.
previous_response_idstringContinue from a prior response. Requires that response to have been stored (store: true on the earlier request) — see the note above.
storebooleanDefault false on Draftworks (OpenAI/Azure default true).
metadataobjectUp to 16 key-value string pairs, echoed back on the response object.
streambooleanTyped SSE events. See streaming.

Background responses are not currently supported: the background parameter is not accepted, and there is no GET /v1/responses/{id} polling endpoint. Use synchronous requests or streaming instead.

Example

Request
curl https://www.draftworks.dev/v1/responses \
  -H "Authorization: Bearer $DRAFTWORKS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-5.5",
    "reasoning": { "effort": "low" },
    "text": { "verbosity": "low" },
    "input": "Summarize the CAP theorem in one paragraph."
  }'
Response
{
  "id": "resp_68c1f0a2b9d34",
  "object": "response",
  "created_at": 1783382519,
  "status": "completed",
  "model": "gpt-5.5-2026-04-24",
  "store": false,
  "metadata": {},
  "output": [
    {
      "type": "reasoning",
      "id": "rs_68c1f0a2c1e02",
      "summary": []
    },
    {
      "type": "message",
      "id": "msg_68c1f0a2f4b71",
      "role": "assistant",
      "status": "completed",
      "content": [
        {
          "type": "output_text",
          "text": "The CAP theorem states that a distributed system can guarantee at most two of consistency, availability, and partition tolerance..."
        }
      ]
    }
  ],
  "usage": {
    "input_tokens": 18,
    "input_tokens_details": {
      "cached_tokens": 0
    },
    "output_tokens": 146,
    "output_tokens_details": {
      "reasoning_tokens": 64
    },
    "total_tokens": 164
  }
}

Note the usage field names differ from Chat Completions: input_tokens / output_tokens here versus prompt_tokens / completion_tokens there. Cached prompt tokens appear in usage.input_tokens_details.cached_tokens and are billed at the cached-input rate — see pricing.

For convenient text extraction, the official SDKs expose response.output_text, the concatenation of all output_text parts.

Receipts

Responses API calls are signed exactly like Chat Completions calls: x-draftworks-receipt header on non-streamed responses, an SSE comment on streams, and permanent retrieval via GET /v1/receipts/{id}. The receipt's endpoint field records responses. See verification.

On this page