particle-1 for chat, agentic coding, and tool use. It is the default model in these guides and examples; set the model field explicitly in your requests.
The Particle Inference API is served at https://api.particle.ai/v1. For Chat Completions, point an OpenAI-compatible SDK or agent framework at that base URL and authenticate with a Particle API key. For agents that need user updates during generation, use our Responses WebSocket API and mid-turn steering quickstart.
For inference on US GPUs only, use https://us.api.particle.ai/v1 with the same API key. See Regional endpoints for configuration examples and GPU eligibility.
python
What’s available
Chat Completions
POST /v1/chat/completions — multi-turn chat with tools, reasoning controls, streaming, and file references.Responses & mid-turn steering
wss://api.particle.ai/v1/responses — send a user update while a response is running and follow its automatic continuation. Start with Python or Node.js.Completions
POST /v1/completions — single-prompt text completion with the same sampling and streaming controls.List Models
GET /v1/models — the models your key can currently reach.Files
OpenAI-compatible upload/list/retrieve/delete, plus{"type":"file"} chat content parts.Models
Send
particle-1 in requests. The model is listed by /v1/models and returned in responses as particle-ai/particle-1. For DeepSeek, the current public ID is deepseek-ai/deepseek-v41-flash-1017; earlier DeepSeek IDs remain accepted on requests but are not listed by /v1/models. See the model catalog for model-specific IDs and aliases.
Core behavior
- Reasoning by default. All three models are reasoning models. If you omit
reasoning_effort, requests run at the default effort (high) and reasoning tokens appear inusage.completion_tokens_details.reasoning_tokens. On DeepSeek and Particle-1, set"reasoning_effort": "none"to disable thinking. GLM always reasons — reasoning-off selectors are rejected with400. See Reasoning controls. - Safe sampling defaults. If you send no tail control (
top_p,top_k,min_p), the gateway appliestop_p=0.85to keep long agentic generations stable. Any explicit value you send — includingtop_p=1.0— is honored unchanged. - Bounded output. If you omit both
max_tokensandmax_completion_tokens, the gateway supplies32000so an unbounded generation cannot run forever. Your explicit limits are preserved. - Streaming with keep-alives. During long reasoning pauses, the stream carries real empty
chat.completion.chunkframes after 15s of silence so client watchdogs and proxies don’t kill the connection. See Streaming. - Prompt-cache affinity. Send
prompt_cache_keyto keep a conversation’s repeated prefix on the same server — large savings on multi-turn agentic workloads. See Prompt caching. - Regular or Flex service. Set
"service_tier": "flex"for 50% lower input, cached input, and output token prices with lower priority when busy. Use regular service for latency-sensitive requests, or Flex when you can tolerate waiting or retrying. See Service tiers.
Capacity and errors
Capacity is checked before a request is accepted: a request is either dispatched or, when the service is busy, it waits in a priority queue. The regular tier’s default wait limit is 30 seconds; Flex allows a longer wait. A429 means the queue timed out or the service confirmed it was full — it is always safe to retry after Retry-After. Anything degraded is a 503. Full mapping in Errors & retries.