API reference

The anu cloud adds AI primitives on top of the open source SDK. All endpoints are plain HTTP and JSON.

Base URL

https://anu.zeetech.io

Authentication

Every request needs an API key in the Authorization header. Create keys on your account page. Keys are shown once at creation; store them somewhere safe.

Authorization: Bearer anu_sk_...

Classify LIGHT

Classify a message into one of your intents. Returns the chosen intent and a confidence score.

curl https://anu.zeetech.io/v1/ai/classify \
  -H "Authorization: Bearer anu_sk_..." \
  -H "Content-Type: application/json" \
  -d '{
    "text": "where is my order?",
    "intents": ["order_status", "complaint", "general"]
  }'

{ "intent": "order_status", "confidence": 0.95 }

Extract LIGHT

Pull structured fields out of a message. The schema maps field names to descriptions; unknown fields come back as null. The result is wrapped in "data" because the fields are dynamic.

curl https://anu.zeetech.io/v1/ai/extract \
  -H "Authorization: Bearer anu_sk_..." \
  -H "Content-Type: application/json" \
  -d '{
    "text": "hi, I am Joao, my order is 12345",
    "schema": { "name": "customer name", "order_id": "order identifier" }
  }'

{ "data": { "name": "Joao", "order_id": "12345" } }

Reply HEAVY

Generate a reply to a customer message. "context" and "tone" are optional; tone defaults to "friendly".

curl https://anu.zeetech.io/v1/ai/reply \
  -H "Authorization: Bearer anu_sk_..." \
  -H "Content-Type: application/json" \
  -d '{
    "text": "where is my order?",
    "context": "Order 12345 shipped yesterday.",
    "tone": "friendly"
  }'

{ "reply": "Good news! Your order 12345 shipped yesterday and is on its way." }

Summarize HEAVY

Summarize a conversation. Pass the messages as a list of objects with "role" and "content".

curl https://anu.zeetech.io/v1/ai/summarize \
  -H "Authorization: Bearer anu_sk_..." \
  -H "Content-Type: application/json" \
  -d '{
    "messages": [
      { "role": "customer", "content": "where is my order?" },
      { "role": "agent", "content": "It shipped yesterday." }
    ]
  }'

{ "summary": "Customer asked about order status; agent confirmed it shipped yesterday." }

Quotas

Each plan includes a monthly quota of light calls (classify, extract) and heavy calls (reply, summarize). Reach the cap and calls pause until the next monthly cycle. Your current usage is on your account page.

Errors

Errors always have the same shape. Validation errors add a "details" map naming the offending fields.

{ "error": { "code": "quota_exceeded", "message": "Monthly quota reached" } }

Codes: invalid_api_key, quota_exceeded, validation_error, anthropic_error, internal_error.