Skip to content
SETU by SUPREME AI
Beta

Every action safe and logged

Let an app or agent act for your users without giving it unlimited power. These are the controls on every Setu call.

  • Keys you can limit

    • Each key gets only the scopes you choose, such as chat:write or tools:execute.
    • Setu stores only a hash of each key. You see the full key once.
    • Rotate a key at any time. Read-only keys start with sup_ro_.
  • Approval before writes

    • Reading is allowed by an allow-list. Write actions, such as sending an email or adding a row, wait for approval.
    • Until then the call answers 202 with “approval required”, and nothing is sent.
    • Approvals are single-use, and you get a webhook when one is requested, approved or denied.
  • Limits that stop runaway use

    • Each key has a rate limit. Over it, calls answer 429 with a Retry-After header.
    • Paid calls stop at the project’s spend cap, and a webhook tells you when spend reaches a threshold.
    • If the platform’s monthly spending limit is reached, paid calls pause for everyone with a 503, not a charge.
  • A record of every call

    • Every call goes to the audit log, which you can export.
    • Retention settings delete old records after the number of days you set for each project.
    • Each error carries a requestId, so support can find the exact call.
  • Your users’ connections

    • Your users connect their own apps through a link that lasts 10 minutes.
    • Setu keeps the tokens. Your server keeps only your Setu key.
    • A webhook tells you when a connection is revoked or needs attention.
  • Private by default

    • Your data and your users’ data are not used to train AI models without opt-in.
    • Webhooks are signed (HMAC-SHA256 of the timestamp and body), so you can check they came from Setu.

Approve a waiting action

Decide from your own app with the approvals API, using a key with the tools:execute scope.

# Approve (or deny) a write action that is waiting.
curl https://setu.supremeai.services/api/setu/v1/approvals/$APPROVAL_ID \
  -H "Authorization: Bearer $SETU_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "decision": "approve", "reason": "Checked the draft" }'

More about safety and controls

Report a problem

Found a security issue or something that looks wrong? Write to support@supremeai.services and include the requestId if you have one.

Start building with Setu

No Setu fee during beta. Create a key and make your first call.