{
  "data": {
    "a": {
      "slug": "metronome",
      "name": "Metronome",
      "vendor": "Metronome (Stripe)",
      "vendorUrl": "https://metronome.com",
      "kind": "http-api",
      "category": "payment-platforms",
      "summary": "Metronome is a hosted usage-based billing platform, part of Stripe. Its REST API ingests usage events, defines billable metrics, rate cards and contracts, and generates invoices, with official SDKs for Python, Node.js, Go, Ruby and Java.",
      "url": "https://www.anchorterminal.com/tools/metronome",
      "markdownUrl": "https://www.anchorterminal.com/tools/metronome.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/metronome.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/metronome.json",
      "repo": "https://github.com/Metronome-Industries/metronome-node",
      "license": "Proprietary service under the Stripe Services Agreement. The SDKs on GitHub are Apache-2.0",
      "transports": [
        "http"
      ],
      "remoteUrl": "https://api.metronome.com",
      "packages": [
        {
          "registry": "npm",
          "name": "@metronome/sdk"
        },
        {
          "registry": "pypi",
          "name": "metronome-sdk"
        },
        {
          "registry": "go",
          "name": "github.com/Metronome-Industries/metronome-go"
        }
      ],
      "auth": "api-key",
      "authNotes": "Bearer tokens, created by a person under Developer, API tokens in the Metronome app and shown once. A sandbox token reaches only sandbox data and a production token only production data. A token has its creator's permissions unless Metronome support scopes it by access level, environment or endpoint. Tokens can be archived, not edited. The API description also describes agentic tokens, whose writes need a person's approval.",
      "pricing": "usage",
      "pricingNotes": "The Startup plan costs 0.8 per cent of billing volume plus $0.04 per 1,000 ingested events, self-serve with a credit card for production. The pricing page says \"Start free\" and a sandbox account is self-serve. Custom plan prices are set by sales, and the docs describe an annual platform fee plus consumption charges on order forms (https://metronome.com/pricing, checked 2026-10-09).",
      "priceSummary": "0.8% fee",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the OpenAPI description, the docs index or the pricing page (checked 2026-10-09).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 7,
        "npmWeekly": 363390,
        "pypiWeekly": null,
        "asOf": "2026-10-09"
      },
      "docsUrl": "https://docs.metronome.com/guides/get-started/home",
      "llmsTxt": "https://docs.metronome.com/llms.txt",
      "openapi": "https://docs.metronome.com/openapi.json",
      "capabilities": [
        "payments.metering",
        "accounting.invoices"
      ],
      "tags": [
        "hosted",
        "usage-billing",
        "openapi",
        "llms-txt",
        "webhooks",
        "python",
        "typescript",
        "go",
        "ruby",
        "java",
        "status-page",
        "soc2",
        "closed-source",
        "sandbox"
      ],
      "lastRelease": "2026-09-29",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 69.7,
        "grade": "B",
        "agentReady": false,
        "rank": 173,
        "ranked": true,
        "rankOf": 950,
        "categoryRank": 4,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 75,
          "maintenance": 82,
          "payments": 39,
          "reliability": 68,
          "schema": 88,
          "security": 68,
          "transparency": 65
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-09"
        },
        "negative": 0,
        "verdict": "Metronome's API carries an `Idempotency-Key` on every POST, a public OpenAPI description of 142 operations, and agentic tokens whose writes wait for a person's approval. Prices for the Startup plan are public. Errors return only a `message` string, token scopes are set through support, and the status feed lists 13 incidents since 22 July 2026.",
        "bestFor": "A company that meters usage and bills on contracts, credits and commits, with invoices delivered through Stripe, NetSuite or cloud marketplaces.",
        "strengths": [
          "Public OpenAPI 3.0.1 description with 142 operations and 509 schemas, plus llms.txt and a Markdown twin of each docs page",
          "`Idempotency-Key` accepted on every POST for at least 24 hours, `uniqueness_key` on contracts and alerts, and event `transaction_id` deduplication for 34 days",
          "Agentic tokens get `403 AgenticMutationBlocked` on writes and queue them at `/v1/approval_requests` for a person to approve or deny",
          "Audit log readable at `/v1/auditLogs`, naming the user or API token, the resource, the action, the IP address and the user agent",
          "Startup plan prices are public (0.8 per cent of billing volume and $0.04 per 1,000 ingested events), with a self-serve sandbox sign-up"
        ],
        "weaknesses": [
          "Errors are a single `message` string with no machine-readable code, and the API description documents a 4xx response on 87 of 142 operations",
          "Token scoping by access level, environment or endpoint is set by contacting support. By default a token has its creator's permissions",
          "The status feed lists 13 incidents between 22 July and 8 October 2026, among them two hours of elevated API and ingest errors on 3 September",
          "No SLA document is published. The pricing page names enhanced SLAs on the Custom plan only",
          "The governing terms are Stripe's Services Agreement, which does not name Metronome and grants Stripe a licence to use customer content to develop and improve its services",
          "No deprecation policy was found. SDK releases of 16 January and 2 March 2026 removed fields, announced in the changelog on the day"
        ],
        "agentNotes": [
          "Send an `Idempotency-Key` header on every POST and reuse it on retry. A cached error is returned for the same key, so use a new key after fixing the cause",
          "Give each usage event a stable `transaction_id`. Metronome ignores repeats for 34 days and accepts at most 100 events per `/v1/ingest` call",
          "On 429 read `X-Metronome-Rate-Limit-Type` (`client` or `customer`) and back off. Unlisted endpoints default to 8 requests a second",
          "With an agentic token, expect `403 AgenticMutationBlocked` on writes. Post the original method, path and body to `/v1/approval_requests` and show the person the `approval_url`",
          "Use a sandbox token for testing. The token alone decides whether a call reaches sandbox or production data"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "B",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 69.7
          }
        ],
        "editorialScores": {
          "ergonomics": 75,
          "maintenance": 82,
          "payments": 39,
          "reliability": 68,
          "schema": 88,
          "security": 68,
          "transparency": 45
        },
        "provenanceScore": 85
      },
      "connect": {
        "install": "npm install @metronome/sdk",
        "http": "curl -X POST https://api.metronome.com/v1/billable-metrics/create \\\n  -H \"Authorization: Bearer $METRONOME_API_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"name\": \"API Calls\",\n    \"aggregation_type\": \"count\",\n    \"event_type_filter\": {\n      \"in_values\": [\"api_call\"]\n    }\n  }'"
      },
      "letme": {
        "capability": "https://letme.dev/payments.metering",
        "tool": "https://letme.dev/metronome"
      },
      "area": "payments",
      "unitPrices": [
        {
          "item": "Startup plan fee on billing volume",
          "unit": "pct",
          "usd": 0.8,
          "note": "plus the event fee. Custom plan priced by sales"
        },
        {
          "item": "Ingested usage event on the Startup plan",
          "unit": "tx",
          "usd": 0.00004,
          "note": "$0.04 per 1,000 ingest events"
        }
      ],
      "provenance": {
        "legalEntity": "Stripe, LLC",
        "domain": "metronome.com",
        "domainRegistered": "1998-11-04",
        "endpointOnVendorDomain": true,
        "terms": "https://stripe.com/legal/ssa",
        "privacy": "https://stripe.com/privacy",
        "statusPage": "https://status.metronome.com",
        "changelog": "https://docs.metronome.com/changelog",
        "securityTxt": "none",
        "checked": "2026-10-09",
        "notes": [
          "Metronome's site says it is now part of Stripe. Its legal centre links two documents, Stripe's Services Agreement as terms of service and Stripe's privacy policy.",
          "The Stripe Services Agreement (General Terms last modified 28 September 2026) names Stripe, LLC as the contracting entity for the United States, with other Stripe entities by country. It does not mention Metronome by name. Our request was redirected to the United Kingdom edition of the page.",
          "The Stripe privacy policy was last updated on 28 April 2026 and covers services supplied under the Stripe Services Agreement. It does not mention Metronome by name.",
          "The API answers at https://api.metronome.com per the OpenAPI description's server entry.",
          "https://metronome.com/.well-known/security.txt returned 404. The SDK repositories' SECURITY.md gives dev-feedback@metronome.com for service security questions.",
          "RDAP for metronome.com gives a registration date of 1998-11-04, which predates the company."
        ],
        "score": 85
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/metronome.json",
      "live": {
        "slug": "metronome",
        "probe": {
          "target": "https://api.metronome.com",
          "method": "get",
          "lastAt": "2026-10-10T02:55:02.229219584Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 427,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 427,
          "p95ms24h": 510,
          "samples24h": 115,
          "samples30d": 115,
          "days": [
            {
              "date": "2026-10-09",
              "probes": 85,
              "ok": 85
            },
            {
              "date": "2026-10-10",
              "probes": 30,
              "ok": 30
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.metronome.com",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-10T02:50:27.569689356Z"
        },
        "versions": [
          {
            "registry": "github",
            "name": "Metronome-Industries/metronome-node",
            "version": "v3.10.0",
            "released": "2026-07-23",
            "seenAt": "2026-10-09T17:05:18.814448022Z"
          },
          {
            "registry": "npm",
            "name": "@metronome/sdk",
            "version": "3.10.0",
            "seenAt": "2026-10-09T17:05:16.810932336Z"
          },
          {
            "registry": "pypi",
            "name": "metronome-sdk",
            "version": "4.11.1",
            "released": "2026-08-28",
            "seenAt": "2026-10-09T17:05:17.824671392Z"
          }
        ],
        "githubStars": 7,
        "npmWeekly": 363390,
        "pypiWeekly": 157134,
        "pages": [
          {
            "url": "https://docs.metronome.com/changelog",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-09T18:37:46.155976649Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "db085f3c5807"
          },
          {
            "url": "https://metronome.com/pricing",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-10-09T18:42:03.074548835Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "0590b21f8bad"
          },
          {
            "url": "https://stripe.com/privacy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-09T18:46:09.307033961Z",
            "changedAt": "2026-10-08T18:24:56.248781585Z",
            "fingerprint": "73ea5b705ed5"
          },
          {
            "url": "https://stripe.com/legal/ssa",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-09T18:46:05.029930659Z",
            "changedAt": "2026-10-08T18:24:51.983854093Z",
            "fingerprint": "43483f64e8ca"
          }
        ],
        "updatedAt": "2026-10-10T02:55:02.229219584Z"
      }
    },
    "answer": "Metronome scores 69.7 (B) on agent readiness against Paid's 55.1 (C), and leads in every scored category.",
    "b": {
      "slug": "paid",
      "name": "Paid",
      "vendor": "Agent Paid Limited",
      "vendorUrl": "https://paid.ai",
      "kind": "http-api",
      "category": "payment-platforms",
      "summary": "Paid is a billing and metering platform for companies that sell AI agents. It records usage signals and model costs and runs credits, plans, invoices and checkout, through a REST API, five SDKs, a CLI and a hosted MCP server.",
      "url": "https://www.anchorterminal.com/tools/paid",
      "markdownUrl": "https://www.anchorterminal.com/tools/paid.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/paid.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/paid.json",
      "repo": "https://github.com/paid-ai/paid-node",
      "license": "Proprietary service under Paid's Master Subscription Agreement. The Node and Python SDKs on GitHub are MIT",
      "transports": [
        "http",
        "streamable-http"
      ],
      "remoteUrl": "https://api.agentpaid.io/api/v2",
      "packages": [
        {
          "registry": "npm",
          "name": "@paid-ai/paid-node"
        },
        {
          "registry": "pypi",
          "name": "paid-python"
        },
        {
          "registry": "go",
          "name": "github.com/paid-ai/paid-go"
        },
        {
          "registry": "npm",
          "name": "@paid-ai/cli"
        }
      ],
      "auth": "mixed",
      "authNotes": "The REST API takes an organisation API key as a Bearer token. A person creates it at app.paid.ai under Settings, API keys. Keys are full-access or restricted by scope, and customer API keys are bound to one customer and one route. The MCP server at mcp.agentpaid.io accepts OAuth 2.1 with PKCE and automatic client registration through auth.paid.ai, or an API key. Access is self-serve with no review step found.",
      "pricing": "freemium",
      "pricingNotes": "Free plan at $0 for up to $100,000 of billings a year, with no card required per the pricing page. Paid plans are $300, $600 and $1,000 a month by billings tier, with a 14-day trial and 20 per cent off for annual billing, and Enterprise is priced on request. No per-call price or percentage fee is published. Test-mode organisations work as a sandbox (https://paid.ai/pricing, checked 2026-10-09).",
      "priceSummary": "$300 / mo",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the 178-operation API reference index, the guides read or the pricing page. End customers pay through the builder's connected Stripe account (checked 2026-10-09).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": 24363,
        "pypiWeekly": null,
        "asOf": "2026-10-09"
      },
      "docsUrl": "https://docs.paid.ai",
      "llmsTxt": "https://docs.paid.ai/llms.txt",
      "capabilities": [
        "payments.metering",
        "payments.checkout",
        "payments.card"
      ],
      "tags": [
        "hosted",
        "freemium",
        "no-card",
        "mcp",
        "oauth",
        "llms-txt",
        "cli",
        "webhooks",
        "typescript",
        "python",
        "go",
        "ruby",
        "java",
        "closed-source"
      ],
      "lastRelease": "2026-09-15",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 55.1,
        "grade": "C",
        "agentReady": false,
        "rank": 669,
        "ranked": true,
        "rankOf": 950,
        "categoryRank": 11,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 70,
          "maintenance": 77,
          "payments": 30,
          "reliability": 35,
          "schema": 64,
          "security": 65,
          "transparency": 51
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-09"
        },
        "negative": 0,
        "verdict": "Paid suits a builder who wants usage metering, credits and invoicing behind one API, with restricted and customer-bound keys, OAuth on the MCP server and a free plan that needs no card. No status page, SLA figure, API changelog or rate-limit numbers were found, both advertised OpenAPI links returned 404, and card payments need the builder's own Stripe account.",
        "bestFor": "A team selling an AI agent that needs usage metering, credit balances, cost and margin tracking and invoicing in one service, with Stripe as the payment rail.",
        "strengths": [
          "Free plan at $0 for up to $100,000 of billings a year, and the pricing page says no credit card is required",
          "The hosted MCP server signs in through OAuth 2.1 with PKCE and client registration, and tools run with the user's role, so viewers stay read-only",
          "Customer API keys are bound to one customer, can only send that customer's signals, take an optional expiry and are stored as a hash",
          "Rate-limited requests answer 429 with `Retry-After`, and an `idempotencyKey` on each signal makes a whole-batch retry safe",
          "The agreement says customer data is not used to train general-purpose models, and the DPA names AWS US-East-1 and a 30-day retrieval window"
        ],
        "weaknesses": [
          "The docs index advertises an OpenAPI 3.1 file at two addresses, and both returned 404 on 9 October 2026",
          "No status page, uptime figure or SLA percentage was found. The agreement promises commercially reasonable efforts only",
          "Rate limits are described as a token bucket per organisation with no published bucket size or refill rate",
          "No API changelog or deprecation policy was found. Six operations are marked deprecated with no removal date",
          "The API and MCP server run on agentpaid.io, a second domain, and collecting card or bank payments needs the builder's own connected Stripe account"
        ],
        "agentNotes": [
          "Call `https://api.agentpaid.io/api/v2` with `Authorization: Bearer \u003ckey\u003e`. A person creates the first key at app.paid.ai. No programmatic signup was found",
          "Give every signal a stable `idempotencyKey` and resend the same key on retry. Signals without one are not deduplicated",
          "Send at most 500 signals a request. A 429 rejects the whole batch, so wait for `Retry-After` and resend it all",
          "Read the `code` field on a 429. `CONCURRENCY_LIMIT_EXCEEDED` carries no `Retry-After` and clears when an analytics query finishes",
          "Install the Python SDK as `paid-python`, the name in its README and `pyproject.toml`. The quickstart's `pip install paid` names a package we could not check"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "C",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 55.1
          }
        ],
        "editorialScores": {
          "ergonomics": 70,
          "maintenance": 77,
          "payments": 30,
          "reliability": 35,
          "schema": 64,
          "security": 65,
          "transparency": 55
        },
        "provenanceScore": 47
      },
      "connect": {
        "install": "npm install @paid-ai/paid-node",
        "http": "curl -X POST https://api.agentpaid.io/api/v2/customers/external/customer_123/api-keys \\\n  -H \"Authorization: Bearer $PAID_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"name\": \"Tenant runtime (production)\"}'",
        "claudeCode": "claude mcp add --transport http paid https://mcp.agentpaid.io/mcp",
        "config": {
          "mcpServers": {
            "paid": {
              "type": "http",
              "url": "https://mcp.agentpaid.io/mcp"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/payments.metering",
        "tool": "https://letme.dev/paid"
      },
      "area": "payments",
      "unitPrices": [
        {
          "item": "Grow plan",
          "unit": "month",
          "usd": 300,
          "note": "up to $200,000 of billings a year, billed monthly"
        },
        {
          "item": "Scale plan",
          "unit": "month",
          "usd": 600,
          "note": "up to $500,000 of billings a year, billed monthly"
        },
        {
          "item": "Accelerate plan",
          "unit": "month",
          "usd": 1000,
          "note": "up to $1 million of billings a year, billed monthly"
        }
      ],
      "provenance": {
        "legalEntity": "Agent Paid Limited",
        "domain": "paid.ai",
        "domainRegistered": "2017-12-16",
        "endpointOnVendorDomain": false,
        "terms": "https://paid.ai/legal/msa",
        "privacy": "https://paid.ai/legal/privacy",
        "statusPage": "",
        "changelog": "",
        "securityTxt": "none",
        "checked": "2026-10-09",
        "notes": [
          "The Master Subscription Agreement names Agent Paid Limited, company number 16113498, registered in England and Wales at 161 Farringdon Road, London, EC1R 3AL. It governs the service, free plan included, and carries no date.",
          "The privacy policy names the same company as controller and says processing done for business customers is governed by the customer contract and the DPA at https://paid.ai/legal/dpa (last updated 13 March 2026).",
          "The API answers at api.agentpaid.io and the MCP server at mcp.agentpaid.io. The MCP server's OAuth metadata names auth.paid.ai as its authorisation server.",
          "paid.ai/.well-known/security.txt returned 404. The DPA gives security@paid.ai for reporting suspected incidents.",
          "RDAP for paid.ai gives a registration date of 2017-12-16 and a transfer on 2025-02-13. Agent Paid Limited's SDK licence files are dated 2025.",
          "No status page or API changelog was found in the pricing page footer, the docs index or the pages read. trust.paid.ai was not read."
        ],
        "score": 47
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/paid.json",
      "live": {
        "slug": "paid",
        "probe": {
          "target": "https://api.agentpaid.io/api/v2",
          "method": "get",
          "lastAt": "2026-10-10T02:55:04.956043463Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 263,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 262,
          "p95ms24h": 378,
          "samples24h": 115,
          "samples30d": 115,
          "days": [
            {
              "date": "2026-10-09",
              "probes": 85,
              "ok": 85
            },
            {
              "date": "2026-10-10",
              "probes": 30,
              "ok": 30
            }
          ]
        },
        "versions": [
          {
            "registry": "github",
            "name": "paid-ai/paid-node",
            "version": "1.8.0",
            "released": "2026-09-11",
            "seenAt": "2026-10-09T17:11:50.219297356Z"
          },
          {
            "registry": "npm",
            "name": "@paid-ai/cli",
            "version": "1.2.0",
            "seenAt": "2026-10-09T17:11:49.525583861Z"
          },
          {
            "registry": "npm",
            "name": "@paid-ai/paid-node",
            "version": "1.8.0",
            "seenAt": "2026-10-09T17:11:47.801044563Z"
          },
          {
            "registry": "pypi",
            "name": "paid-python",
            "version": "1.12.0",
            "released": "2026-09-10",
            "seenAt": "2026-10-09T17:11:49.331417076Z"
          }
        ],
        "githubStars": 8,
        "npmWeekly": 24363,
        "pypiWeekly": 25035,
        "pages": [
          {
            "url": "https://paid.ai/pricing",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-10-09T18:42:59.277334688Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "687acc4a19a1"
          },
          {
            "url": "https://paid.ai/legal/privacy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-09T18:42:57.335349283Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "7da60dff7a08"
          },
          {
            "url": "https://paid.ai/legal/msa",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-09T18:42:55.032947366Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "654fd46e6356"
          }
        ],
        "updatedAt": "2026-10-10T02:55:04.956043463Z"
      }
    },
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Metronome (Stripe)",
        "b": "Agent Paid Limited",
        "name": "Vendor"
      },
      {
        "a": "https://api.metronome.com",
        "b": "https://api.agentpaid.io/api/v2",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP",
        "b": "HTTP, Streamable HTTP",
        "name": "Transports"
      },
      {
        "a": "API key",
        "b": "OAuth or key",
        "name": "Auth"
      },
      {
        "a": "Pay per use",
        "b": "Freemium",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "Proprietary service under the Stripe Services Agreement. The SDKs on GitHub are Apache-2.0",
        "b": "Proprietary service under Paid's Master Subscription Agreement. The Node and Python SDKs on GitHub are MIT",
        "name": "Licence"
      },
      {
        "a": "no",
        "b": "yes",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "2026-09-29",
        "b": "2026-09-15",
        "name": "Last release"
      },
      {
        "a": "2026-09-28",
        "b": "no date given",
        "name": "Terms last updated"
      },
      {
        "a": "2026-04-28",
        "b": "no date given",
        "name": "Privacy policy last updated"
      },
      {
        "a": "yes",
        "b": "not found in the text",
        "name": "Customer content may train models"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Terms restrict automated access"
      },
      {
        "a": "not found in the text",
        "b": "yes",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "yes",
        "b": "not found in the text",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "yes",
        "b": "not found in the text",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "7 stars, 363k npm/wk",
        "b": "24k npm/wk",
        "name": "Popularity"
      }
    ],
    "faq": [
      {
        "answer": "Metronome scores 69.7 (B) on agent readiness against Paid's 55.1 (C), and leads in every scored category.",
        "question": "Which is better for AI agents, Metronome or Paid?"
      },
      {
        "answer": "Metronome needs an API key. Paid takes an API key or an OAuth sign-in.",
        "question": "Do Metronome and Paid need an API key?"
      },
      {
        "answer": "Yes. Metronome has a hosted endpoint at https://api.metronome.com and Paid at https://api.agentpaid.io/api/v2.",
        "question": "Can an agent call Metronome and Paid without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Reliability, 68 against 35",
          "Schema \u0026 documentation, 88 against 64",
          "Agent ergonomics, 75 against 70",
          "Payments \u0026 pricing, 39 against 30",
          "Maintenance \u0026 community, 82 against 77",
          "Transparency \u0026 trust, 65 against 51"
        ],
        "also": null,
        "goodFor": "A company that meters usage and bills on contracts, credits and commits, with invoices delivered through Stripe, NetSuite or cloud marketplaces.",
        "slug": "metronome",
        "watchFor": "Errors are a single `message` string with no machine-readable code, and the API description documents a 4xx response on 87 of 142 operations"
      },
      {
        "aheadOn": null,
        "also": [
          "Free to start without a card"
        ],
        "goodFor": "A team selling an AI agent that needs usage metering, credit balances, cost and margin tracking and invoicing in one service, with Stripe as the payment rail.",
        "slug": "paid",
        "watchFor": "The docs index advertises an OpenAPI 3.1 file at two addresses, and both returned 404 on 9 October 2026"
      }
    ],
    "job": {
      "capability": "payments.metering",
      "name": "Usage billing"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/atxp-vs-metronome.json",
        "title": "ATXP vs Metronome",
        "url": "https://www.anchorterminal.com/compare/atxp-vs-metronome"
      },
      {
        "json": "https://www.anchorterminal.com/compare/atxp-vs-paid.json",
        "title": "ATXP vs Paid",
        "url": "https://www.anchorterminal.com/compare/atxp-vs-paid"
      },
      {
        "json": "https://www.anchorterminal.com/compare/lago-vs-metronome.json",
        "title": "Lago vs Metronome",
        "url": "https://www.anchorterminal.com/compare/lago-vs-metronome"
      },
      {
        "json": "https://www.anchorterminal.com/compare/lago-vs-paid.json",
        "title": "Lago vs Paid",
        "url": "https://www.anchorterminal.com/compare/lago-vs-paid"
      },
      {
        "json": "https://www.anchorterminal.com/compare/metronome-vs-nevermined.json",
        "title": "Metronome vs Nevermined API + MCP",
        "url": "https://www.anchorterminal.com/compare/metronome-vs-nevermined"
      },
      {
        "json": "https://www.anchorterminal.com/compare/metronome-vs-orb.json",
        "title": "Metronome vs Orb",
        "url": "https://www.anchorterminal.com/compare/metronome-vs-orb"
      },
      {
        "json": "https://www.anchorterminal.com/compare/metronome-vs-stripe-mcp.json",
        "title": "Metronome vs Stripe API + MCP",
        "url": "https://www.anchorterminal.com/compare/metronome-vs-stripe-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/metronome-vs-tempo.json",
        "title": "Metronome vs Tempo",
        "url": "https://www.anchorterminal.com/compare/metronome-vs-tempo"
      },
      {
        "json": "https://www.anchorterminal.com/compare/nevermined-vs-paid.json",
        "title": "Nevermined API + MCP vs Paid",
        "url": "https://www.anchorterminal.com/compare/nevermined-vs-paid"
      },
      {
        "json": "https://www.anchorterminal.com/compare/orb-vs-paid.json",
        "title": "Orb vs Paid",
        "url": "https://www.anchorterminal.com/compare/orb-vs-paid"
      },
      {
        "json": "https://www.anchorterminal.com/compare/paid-vs-stripe-mcp.json",
        "title": "Paid vs Stripe API + MCP",
        "url": "https://www.anchorterminal.com/compare/paid-vs-stripe-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/paid-vs-tempo.json",
        "title": "Paid vs Tempo",
        "url": "https://www.anchorterminal.com/compare/paid-vs-tempo"
      },
      {
        "json": "https://www.anchorterminal.com/compare/crossmint-vs-paid.json",
        "title": "Crossmint API + Docs MCP vs Paid",
        "url": "https://www.anchorterminal.com/compare/crossmint-vs-paid"
      },
      {
        "json": "https://www.anchorterminal.com/compare/paid-vs-payman.json",
        "title": "Paid vs Payman Genie MCP",
        "url": "https://www.anchorterminal.com/compare/paid-vs-payman"
      },
      {
        "json": "https://www.anchorterminal.com/compare/adyen-mcp-server-vs-paid.json",
        "title": "Adyen MCP server vs Paid",
        "url": "https://www.anchorterminal.com/compare/adyen-mcp-server-vs-paid"
      },
      {
        "json": "https://www.anchorterminal.com/compare/paid-vs-paypal-mcp-server.json",
        "title": "Paid vs PayPal MCP server",
        "url": "https://www.anchorterminal.com/compare/paid-vs-paypal-mcp-server"
      },
      {
        "json": "https://www.anchorterminal.com/compare/paid-vs-skyfire.json",
        "title": "Paid vs Skyfire API + MCP",
        "url": "https://www.anchorterminal.com/compare/paid-vs-skyfire"
      },
      {
        "json": "https://www.anchorterminal.com/compare/metronome-vs-paypal-mcp-server.json",
        "title": "Metronome vs PayPal MCP server",
        "url": "https://www.anchorterminal.com/compare/metronome-vs-paypal-mcp-server"
      }
    ],
    "scores": [
      {
        "by": 33,
        "edge": "metronome",
        "key": "reliability",
        "metronome": 68,
        "name": "Reliability",
        "paid": 35,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 24,
        "edge": "metronome",
        "key": "schema",
        "metronome": 88,
        "name": "Schema \u0026 documentation",
        "paid": 64,
        "weight": 13
      },
      {
        "by": 5,
        "edge": "metronome",
        "key": "ergonomics",
        "metronome": 75,
        "name": "Agent ergonomics",
        "paid": 70,
        "weight": 13
      },
      {
        "by": 3,
        "edge": "metronome",
        "key": "security",
        "metronome": 68,
        "name": "Security \u0026 auth",
        "paid": 65,
        "weight": 14
      },
      {
        "by": 9,
        "edge": "metronome",
        "key": "payments",
        "metronome": 39,
        "name": "Payments \u0026 pricing",
        "paid": 30,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 5,
        "edge": "metronome",
        "key": "maintenance",
        "metronome": 82,
        "name": "Maintenance \u0026 community",
        "paid": 77,
        "weight": 7
      },
      {
        "by": 14,
        "edge": "metronome",
        "key": "transparency",
        "metronome": 65,
        "name": "Transparency \u0026 trust",
        "paid": 51,
        "weight": 7
      }
    ],
    "summary": "Metronome scores 69.7 (B) on agent readiness against Paid's 55.1 (C), and leads in every scored category. Both do usage billing.",
    "verdicts": {
      "metronome": "Metronome's API carries an `Idempotency-Key` on every POST, a public OpenAPI description of 142 operations, and agentic tokens whose writes wait for a person's approval. Prices for the Startup plan are public. Errors return only a `message` string, token scopes are set through support, and the status feed lists 13 incidents since 22 July 2026.",
      "paid": "Paid suits a builder who wants usage metering, credits and invoicing behind one API, with restricted and customer-bound keys, OAuth on the MCP server and a free plan that needs no card. No status page, SLA figure, API changelog or rate-limit numbers were found, both advertised OpenAPI links returned 404, and card payments need the builder's own Stripe account."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/metronome-vs-paid",
    "json": "https://www.anchorterminal.com/compare/metronome-vs-paid.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/metronome-vs-paid.md",
    "slim": "https://www.anchorterminal.com/compare/metronome-vs-paid.min.md"
  },
  "markdown": "Metronome scores 69.7 (B) on agent readiness against Paid's 55.1 (C), and leads in every scored category. Both do usage billing.\n\n- Metronome: grade B, 69.7/100, rank #173 of 950. Markdown https://www.anchorterminal.com/tools/metronome.md · JSON https://www.anchorterminal.com/api/v1/tools/metronome.json\n- Paid: grade C, 55.1/100, rank #669 of 950. Markdown https://www.anchorterminal.com/tools/paid.md · JSON https://www.anchorterminal.com/api/v1/tools/paid.json\n- Best payment and monetisation platforms for AI agents: https://www.anchorterminal.com/best/payment-platforms/index.md\n- All 76 platforms comparisons: https://www.anchorterminal.com/compare/payment-platforms/index.md\n\n## Which one, for what\n\n### Metronome (B)\n\nGood for: A company that meters usage and bills on contracts, credits and commits, with invoices delivered through Stripe, NetSuite or cloud marketplaces.\n\nAhead on:\n- Reliability, 68 against 35\n- Schema \u0026 documentation, 88 against 64\n- Agent ergonomics, 75 against 70\n- Payments \u0026 pricing, 39 against 30\n- Maintenance \u0026 community, 82 against 77\n- Transparency \u0026 trust, 65 against 51\n\nWatch for: Errors are a single `message` string with no machine-readable code, and the API description documents a 4xx response on 87 of 142 operations\n\n### Paid (C)\n\nGood for: A team selling an AI agent that needs usage metering, credit balances, cost and margin tracking and invoicing in one service, with Stripe as the payment rail.\n\nAlso in its favour:\n- Free to start without a card\n\nWatch for: The docs index advertises an OpenAPI 3.1 file at two addresses, and both returned 404 on 9 October 2026\n\n\n## Score by category\n\n| Category | Weight | Metronome | Paid | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 68 | 35 | Metronome +33 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 88 | 64 | Metronome +24 |\n| Agent ergonomics | 13% (16.2 this run) | 75 | 70 | Metronome +5 |\n| Security \u0026 auth | 14% (17.5 this run) | 68 | 65 | Metronome +3 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 39 | 30 | Metronome +9 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 82 | 77 | Metronome +5 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 65 | 51 | Metronome +14 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **69.7 · B** | **55.1 · C** | |\n\n## Facts side by side\n\n| Fact | Metronome | Paid |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Metronome (Stripe) | Agent Paid Limited |\n| Hosted endpoint | `https://api.metronome.com` | `https://api.agentpaid.io/api/v2` |\n| Transports | HTTP | HTTP, Streamable HTTP |\n| Auth | API key | OAuth or key |\n| Pricing | Pay per use | Freemium |\n| x402 | no | no |\n| Licence | Proprietary service under the Stripe Services Agreement. The SDKs on GitHub are Apache-2.0 | Proprietary service under Paid's Master Subscription Agreement. The Node and Python SDKs on GitHub are MIT |\n| Read-only variant documented | no | yes |\n| llms.txt | yes | yes |\n| Last release | 2026-09-29 | 2026-09-15 |\n| Terms last updated | 2026-09-28 | no date given |\n| Privacy policy last updated | 2026-04-28 | no date given |\n| Customer content may train models | yes | not found in the text |\n| Terms restrict automated access | not found in the text | not found in the text |\n| Terms restrict benchmarking | not found in the text | yes |\n| Terms or service can change without notice | yes | not found in the text |\n| Arbitration or class-action waiver | yes | not found in the text |\n| Popularity | 7 stars, 363k npm/wk | 24k npm/wk |\n\n## Verdicts\n\n**Metronome.** Metronome's API carries an `Idempotency-Key` on every POST, a public OpenAPI description of 142 operations, and agentic tokens whose writes wait for a person's approval. Prices for the Startup plan are public. Errors return only a `message` string, token scopes are set through support, and the status feed lists 13 incidents since 22 July 2026.\n\n**Paid.** Paid suits a builder who wants usage metering, credits and invoicing behind one API, with restricted and customer-bound keys, OAuth on the MCP server and a free plan that needs no card. No status page, SLA figure, API changelog or rate-limit numbers were found, both advertised OpenAPI links returned 404, and card payments need the builder's own Stripe account.\n\n## Before you call either\n\n### Metronome\n\n1. Send an `Idempotency-Key` header on every POST and reuse it on retry. A cached error is returned for the same key, so use a new key after fixing the cause\n2. Give each usage event a stable `transaction_id`. Metronome ignores repeats for 34 days and accepts at most 100 events per `/v1/ingest` call\n3. On 429 read `X-Metronome-Rate-Limit-Type` (`client` or `customer`) and back off. Unlisted endpoints default to 8 requests a second\n4. With an agentic token, expect `403 AgenticMutationBlocked` on writes. Post the original method, path and body to `/v1/approval_requests` and show the person the `approval_url`\n5. Use a sandbox token for testing. The token alone decides whether a call reaches sandbox or production data\n\n### Paid\n\n1. Call `https://api.agentpaid.io/api/v2` with `Authorization: Bearer \u003ckey\u003e`. A person creates the first key at app.paid.ai. No programmatic signup was found\n2. Give every signal a stable `idempotencyKey` and resend the same key on retry. Signals without one are not deduplicated\n3. Send at most 500 signals a request. A 429 rejects the whole batch, so wait for `Retry-After` and resend it all\n4. Read the `code` field on a 429. `CONCURRENCY_LIMIT_EXCEEDED` carries no `Retry-After` and clears when an analytics query finishes\n5. Install the Python SDK as `paid-python`, the name in its README and `pyproject.toml`. The quickstart's `pip install paid` names a package we could not check\n\n## Questions\n\n### Which is better for AI agents, Metronome or Paid?\n\nMetronome scores 69.7 (B) on agent readiness against Paid's 55.1 (C), and leads in every scored category.\n\n### Do Metronome and Paid need an API key?\n\nMetronome needs an API key. Paid takes an API key or an OAuth sign-in.\n\n### Can an agent call Metronome and Paid without installing anything?\n\nYes. Metronome has a hosted endpoint at https://api.metronome.com and Paid at https://api.agentpaid.io/api/v2.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/metronome-vs-paid.json, and with the fewest tokens: https://www.anchorterminal.com/compare/metronome-vs-paid.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"metronome\", \"b\": \"paid\"}`. From a terminal: `anchor compare metronome paid`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/metronome.json and https://www.anchorterminal.com/api/v1/tools/paid.json\n\n## Other comparisons with Metronome or Paid\n\n- [ATXP vs Metronome](https://www.anchorterminal.com/compare/atxp-vs-metronome.md)\n- [ATXP vs Paid](https://www.anchorterminal.com/compare/atxp-vs-paid.md)\n- [Lago vs Metronome](https://www.anchorterminal.com/compare/lago-vs-metronome.md)\n- [Lago vs Paid](https://www.anchorterminal.com/compare/lago-vs-paid.md)\n- [Metronome vs Nevermined API + MCP](https://www.anchorterminal.com/compare/metronome-vs-nevermined.md)\n- [Metronome vs Orb](https://www.anchorterminal.com/compare/metronome-vs-orb.md)\n- [Metronome vs Stripe API + MCP](https://www.anchorterminal.com/compare/metronome-vs-stripe-mcp.md)\n- [Metronome vs Tempo](https://www.anchorterminal.com/compare/metronome-vs-tempo.md)\n- [Nevermined API + MCP vs Paid](https://www.anchorterminal.com/compare/nevermined-vs-paid.md)\n- [Orb vs Paid](https://www.anchorterminal.com/compare/orb-vs-paid.md)\n- [Paid vs Stripe API + MCP](https://www.anchorterminal.com/compare/paid-vs-stripe-mcp.md)\n- [Paid vs Tempo](https://www.anchorterminal.com/compare/paid-vs-tempo.md)\n- [Crossmint API + Docs MCP vs Paid](https://www.anchorterminal.com/compare/crossmint-vs-paid.md)\n- [Paid vs Payman Genie MCP](https://www.anchorterminal.com/compare/paid-vs-payman.md)\n- [Adyen MCP server vs Paid](https://www.anchorterminal.com/compare/adyen-mcp-server-vs-paid.md)\n- [Paid vs PayPal MCP server](https://www.anchorterminal.com/compare/paid-vs-paypal-mcp-server.md)\n- [Paid vs Skyfire API + MCP](https://www.anchorterminal.com/compare/paid-vs-skyfire.md)\n- [Metronome vs PayPal MCP server](https://www.anchorterminal.com/compare/metronome-vs-paypal-mcp-server.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-10",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.4",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "Metronome vs Paid",
        "url": ""
      }
    ],
    "description": "Metronome scores 69.7 (B) to Paid's 55.1 (C) for usage billing. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "Metronome B 69.7",
      "Paid C 55.1",
      "scores"
    ],
    "h1": "Metronome vs Paid",
    "image": "https://www.anchorterminal.com/assets/og/compare-metronome-vs-paid.png",
    "path": "/compare/metronome-vs-paid",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Metronome vs Paid for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-10-09",
    "url": "https://www.anchorterminal.com/compare/metronome-vs-paid"
  },
  "tokens": {
    "markdown": 2300,
    "slim": 680
  },
  "version": 1
}
