Skip to main content
POST
/
v1
/
responses
Create a response
curl --request POST \
  --url http://localhost:3000/v1/responses \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "input": "<unknown>",
  "model": "<string>",
  "instructions": "<string>",
  "stream": false,
  "tools": [
    {}
  ],
  "tool_choice": "<unknown>",
  "response_format": "<unknown>",
  "reasoning": "<unknown>",
  "text": "<unknown>",
  "max_output_tokens": 123,
  "metadata": {}
}
'
{
  "id": "<string>",
  "object": "<string>",
  "created": 123,
  "status": "<string>",
  "output": [
    {}
  ],
  "usage": {},
  "metadata": {}
}
POST /v1/responses is the primary Astrolabe API. This is the recommended endpoint for OpenClaw.

What Astrolabe adds

  • virtual model routing
  • lane selection
  • fallback and retry handling
  • verifier-driven escalation for non-stream requests
  • tool-policy checks
  • untrusted-content safety floors
  • model: "astrolabe/auto"
  • input: "..."
  • stream: false unless you need SSE
You can also use specialist virtual models like astrolabe/coding or astrolabe/strict-json.

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Body

application/json
input
any
required
model
string
instructions
string
stream
boolean
default:false
tools
object[]
tool_choice
any
response_format
any
reasoning
any
text
any
max_output_tokens
integer
metadata
object

Response

Successful JSON or stream response

id
string
object
string
created
integer
status
string
output
object[]
usage
object
metadata
object