rootexAI
FROM IDEA TO FIRST RESPONSE

Let’s build something.

A familiar Responses API, with a few thoughtful defaults. You’re only a few steps away from your first request.

01. Make yourself at home

Create an account, add credits in Billing, then create an API key. You can view and copy your key anytime from the API keys page.

Base URL: /v1

02. Send your first request

Python · OpenAI SDK

Authentication

Send Authorization: Bearer YOUR_ROOTEX_KEY with API requests. Keep keys on your backend. View, copy, revoke, or delete your keys from API keys. Deleting a key stops access while preserving past usage and billing.

GET /v1/models lists the public model IDs available to your account. Use those IDs for requests.

Rootex CLI & agent authentication

Install Rootex from the download page, open your project folder and run rootex. Enter your website API key on first launch and choose workspace permissions. Use /model, /parameters, /permissions and /usage to manage your session.

Choose API key authentication in your agent. Enter this site's base URL, your public model ID, and a rootexAI API key. No browser connection or OAuth step is required. Your agent must support the Responses API.

GET /v1/me validates a Bearer key and returns account access and that key's limits. GET /v1/models discovers public model IDs. All agent API requests go to this site's gateway. Upstream credentials, URLs, model IDs, and error details stay on the server.

Use a different key per agent or project. Set an optional lifetime budget, daily budget, or both when creating the key. Daily limits reset at 00:00 UTC. Successful billed spend and pending reservations count toward each key's limits. The account balance also applies. Administrator requests remain unbilled.

Open a key's Analytics page to review its model breakdown, requests, tokens, spend, latency, status, and CSV exports. Request contents are not logged. Budget refusals return 429 before reaching the provider.

Responses API

POST /v1/responses accepts a model ID and text input, or an input array with user/assistant messages and function tool items. Read generated text from output[].content[].text.

Requests are stateless. Include your conversation history with each request. System and developer instructions are managed by the platform and cannot be overridden through request fields.

Streaming forwards live text deltas through our gateway when supported by the model provider. JSON-only providers use a buffered SSE fallback. Billing settles before the final completion event.

Make it yours

ParameterWhat it does
temperatureSampling creativity, within the model’s configured range.
top_pNucleus sampling, within the model’s configured range.
max_output_tokensOutput budget within the model’s configured limit.
reasoningJSON controls, such as {"effort":"high"}, when supported.
textText formatting and structured JSON output.
tools / tool_choiceUser-defined function tools and tool selection.
streamReturn live Responses SSE events, with a JSON-provider fallback.

Additional compatible parameters can be passed as JSON. Model support varies; unsupported combinations can be rejected by the upstream API. Routing, persistence, identity, and system fields are reserved.

Every request, accounted for

Cost = input tokens × input rate + output tokens × output rate. Rates are per 1 million tokens. We reserve a conservative text input budget plus the requested output budget, then release unused credits. Charged cost never exceeds that reservation.

If token usage is missing from a provider response, billing uses a conservative byte-based estimate, clearly marked in your usage history. Failed requests receive the reserved balance back. Usage dates and reports use UTC.

When something needs a second look

400 Invalid parameters · 401 Invalid key · 402 Insufficient credits · 403 Access denied · 429 Rate limit · 502 Model request failed · 503 Model not configured.

API errors contain error.message. Your dashboard records completed and failed requests without storing prompt or response contents.