- Base URL —
https://inference.square1.dev/v1 - API key — your
sq-arca-...key
Setup
Streaming
Reasoning models also emit a
delta.reasoning channel the SDK types
don’t know about. It’s carried in the raw chunk object — read it as an
untyped field if you want to display thinking text, or ignore it.Reasoning effort
On models withsupports_reasoning, pass reasoning_effort. The Python
and Node SDKs both forward it natively:
400 invalid_reasoning_effort with the allowed list in the
message.
Tool calling
Models withsupports_tools accept the standard tools /
tool_choice / parallel_tool_calls fields and answer with
tool_calls (ids always look like call_<32 hex>). Send tool results
back as role: "tool" messages, exactly as with OpenAI.
What to expect that’s different
- The response carries a
wellspringquota receipt — SDKs preserve it as an extra field on the response object. - Unsupported request fields (
n,presence_penalty,seed,response_format, …) are not part of the contract — don’t rely on them. max_tokensis clamped to the model’smax_output_tokens; input is capped bymax_input_tokens(both visible inGET /v1/models).- Errors follow the OpenAI envelope with Square1-specific codes — see
Errors, and note HTTP 529 (
model_overloaded) is retryable.