Support
Email support@joinpluto.com for anything — failed scans, billing questions, quota confusion, key recovery. Enterprise pricing goes to sales@joinpluto.com. Scale and Enterprise tiers include priority support.
What to include in a report
The more of this you include, the faster we can trace your issue:
- Tenant ID — shown on the dashboard Account page (opens in a new tab),
and returned as
tenant_idwhen you signed up. Never send your API key itself. - Endpoint + method — e.g.
POST /v1/aeo/scan. - Timestamp (with timezone) of the failing request.
- The full error body — the
error.codeanderror.messagefrom the JSON response. run_idfor anything asynchronous (AEO scans, agent runs) — it's in the202response and pollable atGET /v1/agents/runs/{run_id}, including anyerror_message.- Request ID — if you send an
x-request-idheader on your requests, Pluto records it with the usage event on metered endpoints, which lets us find the exact call. Sending one (any UUID) is a good habit for production integrations.
Failed scans
An AEO scan (or any agent run) is accepted with 202 and executes in the background. Poll
GET /v1/agents/runs/{run_id}: a run that ends in status: "failed" includes an
error_message explaining why (you'll also get an agent.failed webhook if you have
webhooks configured).
A request that is rejected up front — validation error, auth failure, 429, or
402 — is not metered at all. A run that is accepted and later fails does consume an
agent-run slot at acceptance time; if a failed run left you short on quota, email support with
the run_id and we'll review a credit.
Billing and quota questions
- "Why am I getting
402 quota_exceeded?" One of three ceilings was hit: monthly actions, monthly agent runs (or workflow runs), or your tier's hard dollar spend cap.GET /v1/usageshows all counters and limits for the current period, which starts on the first of the month (UTC). 402vs429—402means the period quota is exhausted (upgrade or wait for reset);429means you're calling too fast right now (back off perRetry-Afterand retry).- Overage charges —
overage_charges_usdin/v1/usageshows what the current period's usage beyond your included quota would cost. If a number there surprises you, include a screenshot or the raw/v1/usageresponse in your email. - Checkout problems — if you paid but never received a key, include your Stripe checkout
session_id(cs_...). Expired or already-claimed sessions return410; support can recover your account from the session id.
Key problems
- Lost key — keys are shown once and stored only as hashes; nobody can read yours back.
Mint a new one from the dashboard (opens in a new tab) Settings page or
POST /v1/api-keys, then revoke the old one. 401on a key that used to work — check it wasn't revoked (Settings page lists key status). Only short-lived session keys expire on their own.