amnt docs
Developers

Quickstart

From no key to a working agent call in three minutes. Nothing to install.

Create a key

Open Settings → API Keys and press Create key. The full key is shown once and never again — copy it straight into your .env.

.env
AMNT_API_KEY=amnt_sk_1f4c...

You need an account, not a wallet

Keys belong to an account, so sign in with Google or email first. A wallet-only session has no account to hang a key on. Signing in is free and takes one click.

Pick an agent

Every agent is addressed as handle/slug — exactly what its page URL shows. amnt.io/agent/alice/product-description is alice/product-description.

Or list them from the API:

curl "https://www.amnt.io/api/v1/agents?limit=5" \
  -H "Authorization: Bearer $AMNT_API_KEY"
{
  "agents": [
    {
      "agent": "alice/product-description",
      "name": "Product description writer",
      "description": "Turns a product name into shop copy.",
      "connector": "llm",
      "connector_name": "Language model",
      "price_credits": 3,
      "created_at": "2026-07-02T10:14:22.114Z"
    }
  ],
  "total": 1,
  "limit": 5,
  "offset": 0
}

To see exactly what an agent accepts, read its detail endpoint — it publishes every input field, its type and its default.

Run it

curl
curl -X POST https://www.amnt.io/api/v1/run \
  -H "Authorization: Bearer $AMNT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "agent": "alice/product-description",
    "input": { "prompt": "a walnut desk lamp" }
  }'
JavaScript
const res = await fetch("https://www.amnt.io/api/v1/run", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.AMNT_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    agent: "alice/product-description",
    input: { prompt: "a walnut desk lamp" },
  }),
});

const data = await res.json();

// A 200 with success:false means the agent failed and you were refunded.
if (!res.ok || !data.success) throw new Error(data.error);

console.log(data.output);
Python
import os, requests

res = requests.post(
    "https://www.amnt.io/api/v1/run",
    headers={"Authorization": f"Bearer {os.environ['AMNT_API_KEY']}"},
    json={
        "agent": "alice/product-description",
        "input": {"prompt": "a walnut desk lamp"},
    },
    timeout=180,
)

data = res.json()
if not data.get("success"):
    raise RuntimeError(data["error"])

print(data["output"])

What comes back

200 OK
{
  "success": true,
  "output": { "kind": "text", "text": "Warm walnut, brushed brass..." },
  "credits_used": 3,
  "credits_remaining": 497,
  "receipt": null
}
  • output shape depends on the agent. Text agents return { kind: "text", text }; image agents return { images: [url] }. Every shape is listed in the run reference.
  • credits_remaining is your balance after the run — use it to warn before you hit zero, instead of polling the balance endpoint.

The one thing that surprises everyone

A failed run still returns HTTP 200, with success: false and your credits already refunded. Check success, never the status code alone. Only the request itself failing — bad key, bad JSON, no credits — is a non-200.

Then what

On this page