Built for AI agents. Friendly to humans too.

Drop our MCP server into any MCP-compatible client. Paste our OpenAPI URL into any tool-calling agent builder. Or just curl. Your agent gets documented ABN capabilities in seconds - on a single credit balance.

Customers embed ABN services. Use your key to power product features: chat, coding, images, voice, transcription, agents, jobs, and credits. For platform rules, see the Acceptable Use Policy .

How to use an ABN key correctly: call ABN endpoints such as /api/v1/images, /api/v1/chat, /api/v1/app-agents/chat, /api/v1/voice/synthesize, and /api/v1/code/chat with intent fields. Your app says what it needs; ABN handles the execution behind the scenes. If a field is not documented for an ABN endpoint, do not send it.
Base URL contract: the API lives under https://automatebusinessnow.com/api/v1. If your code sets ABN_BASE_URL=https://automatebusinessnow.com/api, append /v1/.... If it sets the root domain, append /api/v1/.... The root-domain /v1/... path is not mounted.

Building an agent? Point it at /llms.txt for a 60-second self-onboarding manifest, or /llms-full.txt for the full reference.

Pick your path.

Path 1 - MCP server

Any MCP-compatible client

Open your client's mcp.json config and paste this. Restart the client. Your assistant now has tools to call text employees, generate images and voice through ABN, transcribe audio, check balance, poll jobs, and invoke agents your account owns.

{
  "mcpServers": {
    "abn": {
      "url": "https://automatebusinessnow.com/api/v1/mcp",
      "headers": {
        "Authorization": "Bearer abn_YOUR_KEY_HERE"
      }
    }
  }
}

On first call the assistant uses your bearer key. The server is stateless JSON-response Streamable HTTP, no local install required.

Path 2 - OpenAPI

OpenAPI Action for any agent framework

Our full API surface is published as an OpenAPI 3.1 document. Point your agent builder at it; it auto-generates tools.

https://automatebusinessnow.com/api/v1/openapi

Most agent builders: Configure -> Actions -> Import URL-> paste the link above. Set the auth as API Key, Bearer, paste your abn_... token.

Path 3 - direct HTTPS

Just curl (or any HTTP client)

No SDK lock-in. Plain JSON, plain HTTPS. Replace abn_YOUR_KEY_HERE with a key from /app/api-keys.

List valid employee slugs
curl https://automatebusinessnow.com/api/v1/employees \
  -H "Authorization: Bearer abn_YOUR_KEY_HERE"
Run a text employee
curl https://automatebusinessnow.com/api/v1/chat \
  -H "Authorization: Bearer abn_YOUR_KEY_HERE" \
  -H "Content-Type: application/json" \
  -H "X-Request-ID: req_your_trace_id_123" \
  -d '{
    "employeeSlug": "copywriter",
    "prompt": "Visitor asks whether Detroit Auto Parts has brake pads in stock",
    "latencyProfile": "website_chat",
    "responseFormat": "plain_text",
    "stream": true
  }'

Use latencyProfile: "website_chat" plus responseFormat: "plain_text" for website chat widgets. This keeps replies short and optimized for live storefront response time. Every chat response includes requestId, latencyMs, and the X-ABN-Request-ID header for support debugging. Set stream: true or send Accept: text/event-stream to receive start, text, done, or error SSE events.

Power an app-native assistant with custom tools
curl https://automatebusinessnow.com/api/v1/app-agents/chat \
  -H "Authorization: Bearer abn_YOUR_KEY_HERE" \
  -H "Content-Type: application/json" \
  -H "X-ABN-End-User-ID: visitor_hash_123" \
  -H "X-Request-ID: req_payroll_george_001" \
  -d '{
    "agent": {
      "name": "George",
      "instructions": "You are the payroll app assistant. Use payroll tools for payroll facts. Never invent pay numbers."
    },
    "messages": [
      { "role": "user", "content": "Why is Maria's net pay lower this run?" }
    ],
    "tools": [
      {
        "name": "get_employee_paycheck",
        "description": "Fetch paycheck details for an employee in a pay run.",
        "input_schema": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "employee_id": { "type": "string" },
            "payrun_id": { "type": "string" }
          },
          "required": ["employee_id", "payrun_id"]
        }
      }
    ],
    "context": {
      "tenant_id": "company_123",
      "screen": "payrun_detail",
      "payrun_id": "run_456"
    }
  }'

Use /api/v1/app-agents/chat when the assistant belongs to your product, not to ABN. Your backend sends messages and tool schemas. ABN returns requires_action with tool calls when data is needed. Your backend executes the tool, appends a tool_result block, then calls ABN again for the final answer.

Generate an image (intent fields, ABN routes internally)
curl https://automatebusinessnow.com/api/v1/images \
  -H "Authorization: Bearer abn_YOUR_KEY_HERE" \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "A pixel-art mushroom on cream paper",
    "aspectRatio": "1:1",
    "quality": "high",
    "style": "illustration"
  }'

Pass prompt, aspectRatio, quality, and style; ABN selects the right model internally. The API is capability-native, not model-native - that's the whole point.

Do:send the customer's intent to ABN.
prompt + aspectRatio + quality + style
Don't: invent routing fields.
no modelId / provider / vendorApiKey
Synthesize a voice (text-to-speech, streaming)
curl https://automatebusinessnow.com/api/v1/voice/synthesize \
  -H "Authorization: Bearer abn_YOUR_KEY_HERE" \
  -H "Content-Type: application/json" \
  -o spoken.mp3 \
  -d '{
    "text": "Hi there, thanks for calling Hearth Coffee.",
    "voice": "warm-female",
    "format": "mp3",
    "model": "fast"
  }'

Catalog voices: warm-female, deep-male, energetic-female, british-male, young-female, podcast-host. Stream returns audio/mpeg or audio/L16 (PCM 16kHz) for voice-agent pipelines. Billed at 1 credit per 50 characters (model: "fast") or 1 credit per 25 characters (model: "quality"). Use the ABN catalog voice keys shown here.

Transcribe audio (speech-to-text)
curl https://automatebusinessnow.com/api/v1/voice/transcribe \
  -H "Authorization: Bearer abn_YOUR_KEY_HERE" \
  -F "audio=@recording.mp3" \
  -F "language=en"

Returns text + word-level timestamps. Accepts mp3, wav, m4a, ogg, webm up to 25 MB. Add -F "diarize=true" for speaker labels. Billed at 1 credit per 2 seconds of audio.

Full endpoint reference at /docs.

What your key powers

One key. Your whole app.

A single abn_live_* key on a verified-org account unlocks the ABN capabilities your account is approved to use - text employees, workflows, agents, MCP. ABN handles model orchestration inside each service and bills against one credit balance.

App agents with custom tools

Available

Power assistants inside your own product. Send messages and tool schemas, execute tool calls in your backend, then let ABN return the final answer with request ids, credits, and receipts.

app-agents:chat

AI employees (text)

Available

copywriter, business-consultant, product-manager, financial-analyst, customer-success, web-researcher, automation-architect, vibe-coder - discover the current roster at /employees.

employee:*

Image generation

Verified-org required

Intent fields (prompt / quality / aspectRatio / style). Your app calls /v1/images; ABN returns the image artifact and credit receipt.

image:generate

Video generation

Verified-org required

Short-form clip generation through the ABN video service when enabled on your account.

video:generate

Image upscale

Verified-org required

Upgrade any image (your upload or one returned from /images) to a higher-resolution artifact.

image:upscale

Audio generation

Verified-org required

Text-to-music / SFX through ABN intent fields when enabled on your account.

audio:generate

Voice synthesize + transcribe

Verified-org required

Six ABN catalog voices (warm-female, deep-male, energetic-female, british-male, young-female, podcast-host). Streaming TTS + word-timestamp transcription.

voice:synthesize, voice:transcribe

Autonomous agents

Available

Invoke any agent you've configured at /app/agents from your customer's flow.

agents:invoke

ABN Coder

Available

The same first-principles agent that powers /coder + Studio, callable directly via /v1/code/chat.

coder:chat

AI Employee Local Bridge

Available

A signed-in ABN Coder / Studio acts as a permissioned bridge so your ABN employees can read local files through it — under your access mode + granted roots, secrets scrubbed. Endpoints: /v1/code/bridge/poll + /respond.

coder:chat

Files, assets, projects, webhooks

Available

Customer-side artifact storage for code/design/website/voice flows that produce things you hold onto across requests.

files:read, files:write, assets:*, projects:*, webhooks:write

Jobs + credits

Available

Poll async jobs, read the credit ledger, attribute spend to a specific end-user-id.

jobs:read, credits:read

Standard rule: if an endpoint field is documented here, use it. If it is not documented, do not send it. Your app integrates with ABN services, and ABN keeps the internal model/runtime details behind the service boundary.

Client tokens

Ship to browser + mobile without embedding your root key

Root abn_live_*keys are backend-only. To call ABN from your customer's browser or mobile app, mint a short-lived abnct_*client token from YOUR backend and hand it to the frontend. The token is origin-locked, scoped to a subset of the parent's capabilities, and bound to a stable opaque end-user id so spend + abuse are scoped per end-user.

Mint a token (server-side)
# YOUR BACKEND (never the browser)
curl https://automatebusinessnow.com/api/v1/tokens/mint \
  -H "Authorization: Bearer abn_YOUR_KEY_HERE" \
  -H "Content-Type: application/json" \
  -d '{
    "end_user_id": "your-stable-user-id-1234",
    "scopes": ["employee:copywriter", "image:generate", "voice:synthesize"],
    "allowed_origins": ["https://app.yourcompany.com"],
    "ttl_seconds": 900
  }'

# Response: { "token": "abnct_<64-hex>", "expires_at": "...", ... }
# Send the abnct_ token to your frontend. Your frontend then calls
# /api/v1/* with Authorization: Bearer abnct_... - origin-locked,
# short-lived, scoped narrower than the parent root key.
  • Default TTL: 15 minutes. Max: 24 hours. Rotate frequently.
  • Origin-bound: the browser request's Originheader must match one of the token's allowed_origins. Missing or non-matching Origin returns 401.
  • Scope subset: the token can only hold scopes the parent root key already holds. Tokens never escalate.
  • End-user attribution: end_user_id is required at mint time. ABN attributes every credit burn under this token to that id so you can suspend a single abusive end-user without rotating your root key.
  • Revoke any time: POST /api/v1/tokens/revoke with the parent bearer and the token_id. List with GET /api/v1/tokens/list.
Bonus

Drop-in system prompt for your agent

Copy-paste this into your agent's system message so it knows exactly how to call us. Works in any agent runtime that accepts a system prompt.

You can call the automatebusinessnow API at https://automatebusinessnow.com/api/v1.
Auth: pass `Authorization: Bearer abn_YOUR_KEY_HERE` on every request.
Available endpoints (ABN capabilities):
  POST /chat                - text employees (copywriter, business-consultant, customer-service, etc.)
  POST /app-agents/chat     - app-native assistants with developer-defined tools
  GET  /employees           - valid employee slugs + scope/access metadata
  POST /code/chat           - ABN Coder (same first-principles agent as /coder + Studio)
  POST /code/bridge/poll    - AI Employee Local Bridge: a signed-in ABN Coder/Studio polls for local tool requests
  POST /code/bridge/respond - return a bridged tool result (file read/search) the employee asked for
  POST /images              - generate an image (intent fields: prompt, aspectRatio, quality, style)
  POST /voice/synthesize    - text-to-speech (streaming, voice-agent ready)
  POST /voice/transcribe    - speech-to-text (mp3/wav/m4a, word timestamps)
  POST /agents/{id}/invoke  - run an autonomous agent
  POST /tokens/mint         - mint a short-lived abnct_* client token (browser/mobile-safe)
  POST /tokens/revoke       - revoke a client token by id
  GET  /tokens/list         - list active client tokens
  GET  /credits             - current credit balance
  GET  /status              - public health check (no auth)

Customers call ABN services. Partner keys pass documented intent fields
(prompt, aspectRatio, quality, style, voice from the ABN catalog), and ABN
handles execution behind the scenes. Do not send modelId, provider, or
vendorApiKey fields; those are
not part of the standard app API.

Every response is JSON shaped { "ok": true/false, "creditsUsed": ..., "balance": ... }.
For /chat website widgets, use latencyProfile="website_chat", responseFormat="plain_text", and stream=true.
Streaming returns text/event-stream events: start, text, stage/image when available, done, or error.
Responses include requestId and latencyMs; send X-Request-ID to make ABN echo your own trace id.
Failed jobs auto-refund. Per-key rate limits return 429.
Full reference: https://automatebusinessnow.com/docs

How billing works

  • One credit balance for everything - web app, autonomous agents, API. View at /app/credits.
  • Failed jobs auto-refund. Every successful response includes creditsUsed and the new balance.
  • Top-ups never expire. Plan credits refresh monthly. Free signup tier: 200 credits, no card.
  • Per-key safety.A single key burning > 100,000 credits in 60 seconds ($1,000/min sustained) is auto-revoked. That ceiling sits comfortably above the most expensive single call (a Veo 3 video is ~1,800 credits) - it's a runaway-loop circuit, not a per-call cap. Read more.

Questions? Reply to hello@automatebusinessnow.com. Real human, one business day max.