Rotor Town

API v1

Typed decisions over HTTPS

Use one manifest for each stable contract.

Pricing

$0.041 per million input tokens.

256 input-token minimum per decision.

Output tokens are free.

Failed requests never consume credit.

Every account starts with $5.

JEV lists $0.042.

Authentication

Authorization: Bearer rt_live_...

1. Create a manifest

curl https://rotor.town/v1/manifests \
  -H "Authorization: Bearer $ROTOR_TOWN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "ticket-routing",
    "input_schema": {
      "type": "object",
      "properties": {
        "message": { "type": "string", "maxLength": 20000 },
        "priority": { "type": "integer", "minimum": 0, "maximum": 3 }
      },
      "required": ["message"],
      "additionalProperties": false
    },
    "questions": {
      "department": {
        "type": "choice",
        "instructions": "Which team should handle this?",
        "criteria": {
          "billing": "payments and refunds",
          "support": "technical problems"
        }
      },
      "urgent": {
        "type": "noul",
        "instructions": "Is this request urgent?"
      }
    }
  }'

2. Create a decision

curl https://rotor.town/v1/decisions \
  -H "Authorization: Bearer $ROTOR_TOWN_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: ticket-4411" \
  -d '{
    "manifest": "mf_...",
    "input": {
      "message": "Refund my duplicate charge",
      "priority": 2
    }
  }'

3. Batch decisions

Batch up to 25 inputs.

curl https://rotor.town/v1/decisions/batch \
  -H "Authorization: Bearer $ROTOR_TOWN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "manifest": "mf_...",
    "inputs": [
      { "message": "Refund this", "priority": 2 },
      { "message": "Checkout fails", "priority": 3 }
    ]
  }'

4. Read usage

Only successful usage is billable.

curl https://rotor.town/v1/usage \
  -H "Authorization: Bearer $ROTOR_TOWN_API_KEY"