Beta

API reference

API pricing

What's free, what's charged per call, the volume tiers, and how calls are counted.

Reporting your agents is always free. Reading and acting through the API is priced per call, per workspace, per calendar month, with volume discounts. Each API call beyond the allowance costs less than a single short request to Claude Sonnet 5.5 (2,000 tokens in and 500 out cost about $0.009 at Anthropic's published prices). (Anonymous insights are a data product and priced separately.)

#Always free

Everything that reports your agents to Agentower is never charged, on any plan:

  • hook events (POST /v1/hooks/{tool}), guardrail checks and the opt-in settings the hook reads;
  • REST events (POST /v1/events);
  • OpenTelemetry (/v1/logs, /v1/metrics, /v1/traces);
  • plan limits (/v1/status/claude-code, /v1/limits);
  • asks (/v1/asks/…) and importing history;
  • the MCP report_status tool;
  • public stats (GET /v1/stats) — free and never counted as API calls, on any plan, so a public key on your website can't use up your allowance or add to your bill.

The app itself — the board, answering agents, notifications — is covered by your plan.

#API calls

Reading and acting through the API: MCP tool calls (except report_status), the export API and the agent actions API.

PlanIncluded each monthThen
Solo1,000 callsBlocked until next month — upgrade to Team for more
Team25,000 callsPriced per call, by tier (below)
Enterprise250,000 callsTeam's prices, by tier (below) — counted but not billed yet
Calls in the monthPrice per call
up to 100,000$0.004
100,001 to 1,000,000$0.002
over 1,000,000$0.001

Tiers count all of the month's calls, the included ones too. Examples for a Team workspace:

  • 40,000 calls: the first 25,000 are included, then 15,000 × $0.004 = $60.
  • 87,500 calls: 62,500 × $0.004 = $250, the monthly cap. Team's cap is fixed; on Enterprise an owner can raise it.

#Anonymous insights

The anonymous insights API: statistics combined across many teams. Team and Enterprise only.

PlanIncluded each monthThen
Solo—Not available
Team500 callsPriced per call, by tier (below)
Enterprise5,000 callsTeam's prices, by tier (below) — counted but not billed yet
Calls in the monthPrice per call
up to 10,000$0.015
10,001 to 100,000$0.01
100,001 to 1,000,000$0.005
over 1,000,000$0.0025

Example: a Team workspace making 1,100 insights calls pays 600 × $0.015 = $9.

#How calls are counted

One call is:

  • one MCP tools/call — except report_status; initialize, tools/list and notifications are free;
  • one export request (GET /v1/export or /v1/export/{dataset}, whatever its size);
  • one agent actions request (/v1/agents…);
  • one insights metric request (/v1/insights…).

Requests refused with 401, 402 or 429 aren't counted. Months run on UTC. Calls are counted per workspace, whichever key made them.

#Monthly cap

Per-call charges are capped per product per month, so a leaked key can never run up an unlimited bill:

PlanCap per product a monthAt the default $250
Team$250, fixed87,500 API calls (25,000 included plus 62,500 at $0.004) or 20,750 insights calls (500 included, 9,500 at $0.015 and 10,750 at $0.01)
Enterprise$250 by default; an owner can raise it to as much as $10,000375,000 API calls (250,000 included plus 125,000 at $0.002) or 27,500 insights calls (5,000 included, 5,000 at $0.015 and 17,500 at $0.01)

On Enterprise an owner sets the cap in Settings → Billing, under Monthly cap on per-call charges — separately for API calls and anonymous insights, in whole dollars from $250 to $10,000. It needs a sign-in from the last 7 days, and each change is recorded in the audit log. Team's cap can't be changed.

Once the month's charge would pass the cap, further calls are refused until the 1st (UTC) with HTTP 402:

json
{ "error": "monthly_cap_reached", "hint": "This month's per-call charges reached the monthly cap ($250 by default); calls start again on the 1st (UTC). On Enterprise an owner can raise the cap in Settings → Billing; otherwise move up to Enterprise." }

The MCP server answers with JSON-RPC error -32002 and the same message. Reporting your agents and public stats are never affected.

#Seeing your usage

The Usage page shows this month's API and insights calls and the charge so far.

#How it's billed

For Team workspaces with a subscription (Enterprise per-call charges aren't billed yet):

  • Every hour, the calls added since the last report are sent to Stripe, per product. Each report has a unique identifier, so a retry never counts a call twice; a report that fails is sent again the next hour. Calls from the last hour of a month still count towards that month.
  • Calendar months (UTC). A new Team subscription starts on the day you upgrade: that first part-month's seats are charged pro rata, then it renews on the 1st. "Included each month" always means a calendar month.
  • The monthly invoice from Stripe shows your seats ($12 each), then "API calls" and "Anonymous insights" with each price tier on its own line — the included calls at $0, then the tiers above.
  • Solo is never billed: it stops at its 1,000-call allowance instead.

#When Solo reaches its limit

After 1,000 calls in a month, Solo's API calls are refused until the month ends:

json
{ "error": "upgrade_required", "hint": "Solo includes 1,000 API calls a month. Upgrade to Team in Settings → Billing." }

That's HTTP 402. The MCP server answers with JSON-RPC error -32002 instead. Insights calls on Solo get 402 with team_required. Reporting is never affected.

#Enterprise

$20 per seat a month, billed annually ($240 a seat a year), with a minimum of 10 seats, bought by an owner in Settings → Billing — see Plans and billing. It includes 250,000 API calls and 5,000 insights calls a month, then Team's per-call prices, under a monthly cap the owner can raise. A data processing agreement is available on request, with priority support. SAML single sign-on, user provisioning (SCIM) and custom data retention are planned, not included.