API reference
Reticle API
Create and export kits over HTTP. The TypeScript and Python SDKs wrap the same endpoints.
Authentication
Send your API key as a bearer token in the Authorization header. You can create keys in your account settings.
curl https://api.reticleui.com/v1/kits \ -H "Authorization: Bearer $RETICLE_KEY"
Base URL
All endpoints live under https://api.reticleui.com/v1.
Create a kit
POST /v1/kits starts generating a kit and returns right away with status queued.
- promptstring · required
- What the screen is for and how it should look.
- enginestring · required
- One of godot, unity, unreal or roblox.
- componentsstring[]
- Components to generate. Defaults to all eight.
- style_idstring
- Generate with a locked style.
- webhook_urlstring
- Called when the kit is ready.
curl https://api.reticleui.com/v1/kits \
-H "Authorization: Bearer $RETICLE_KEY" \
-H "Content-Type: application/json" \
-d '{
"prompt": "Inventory screen for a dark fantasy RPG",
"engine": "godot",
"components": ["panel_frame", "slot_item", "button_primary", "tooltip"]
}'{
"id": "kit_8f2c1a",
"status": "queued",
"engine": "godot",
"components": ["panel_frame", "slot_item", "button_primary", "tooltip"],
"created_at": "2026-11-06T18:24:00Z"
}Retrieve a kit
GET /v1/kits/{id} returns the kit. status is one of queued, generating, ready or failed. Once a kit is ready, each component lists its size, slice borders and states.
{
"id": "kit_8f2c1a",
"status": "ready",
"engine": "godot",
"components": [
{
"name": "button_primary",
"size": [280, 56],
"slice": [18, 18, 18, 18],
"states": ["normal", "hover", "pressed", "disabled"]
}
]
}Export a kit
GET /v1/kits/{id}/export redirects to a zip of the engine export. The download link expires after 10 minutes.
Webhooks
When a kit finishes, Reticle sends a POST to your webhook_url with the kit object as the body. The X-Reticle-Signature header holds an HMAC-SHA256 of the body, signed with your webhook secret.
Errors
Errors return a JSON body with a code and a message.
- 400invalid_request
- A parameter is missing or invalid.
- 401unauthorized
- The API key is missing or revoked.
- 402insufficient_credits
- Your plan is out of credits.
- 404not_found
- No kit exists with that id.
- 429rate_limited
- Too many requests. Retry after the number of seconds in
Retry-After.
{
"code": "insufficient_credits",
"message": "Your plan is out of credits."
}SDKs
Install the SDK for your language.
npm install @reticle/sdk
pip install reticle
import { Reticle } from "@reticle/sdk";
const reticle = new Reticle({ apiKey: process.env.RETICLE_KEY });
const kit = await reticle.kits.create({
prompt: "Inventory screen for a dark fantasy RPG",
engine: "godot",
});
await kit.export({ to: "./ui/reticle_kit" });MCP server
AI coding agents can create kits through the Reticle MCP server at https://api.reticleui.com/mcp. It offers the same create, retrieve and export operations as the API.