responses.create run on Runcrate models: point them at https://api.runcrate.ai/v1 with your Runcrate API key and a Runcrate model id. Requests are billed, rate limited and routed exactly as chat completions are, at the same per-token prices. Nothing is stored: every request carries its whole conversation, as Codex sends it.
Codex
Add a Runcrate provider to~/.codex/config.toml:
RUNCRATE_API_KEY:
Endpoint
Basic usage
Streaming
Withstream: true the answer arrives as response.* events: response.created and response.in_progress, then each output item as response.output_item.added, its parts and deltas (response.output_text.delta, response.reasoning_summary_text.delta, response.function_call_arguments.delta) and response.output_item.done, then response.completed with the whole response and its usage. A response cut short by max_output_tokens ends with response.incomplete; one that fails, with response.failed.
Tools
Function tools takename, description and parameters. A call comes back as a function_call item; send it back in input with a function_call_output item carrying its call_id.
What is supported
A model’s reasoning comes back as a
reasoning item whose summary is the reasoning text.
Errors
Errors use OpenAI’s shape,{"error": {"message", "type", "code", "param"}}, with the same codes as chat completions, including the free allowance’s (free_allowance_used, free_tier_paused, free_capacity_busy, free_prompt_too_large, github_link_required, with its free_tier details beside them). A Retry-After header says when to retry a 429 or 503.