reticle

API reference

Reticle API

Create and export kits over HTTP. The TypeScript and Python SDKs wrap the same endpoints.

The API is in private beta on the Studio plan. Endpoints may change before general release.

Authentication

Send your API key as a bearer token in the Authorization header. You can create keys in your account settings.

Terminal
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.
Request
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"]
  }'
Response
{
  "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.

Response
{
  "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.
Response
{
  "code": "insufficient_credits",
  "message": "Your plan is out of credits."
}

SDKs

Install the SDK for your language.

TypeScript
npm install @reticle/sdk
Python
pip install reticle
create-kit.ts
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.