{
  "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-10T01:37:58.616719758Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 442,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 426,
          "p95ms24h": 510,
          "samples24h": 102,
          "samples30d": 102,
          "days": [
            {
              "date": "2026-10-09",
              "probes": 85,
              "ok": 85
            },
            {
              "date": "2026-10-10",
              "probes": 17,
              "ok": 17
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.metronome.com",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-10T01:33:50.212832127Z"
        },
        "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-10T01:37:58.616719758Z"
      }
    },
    "answer": "Metronome scores 69.7 (B) on agent readiness against Orb's 66.5 (B), and leads in 2 of 7 scored categories. Orb leads on reliability and agent ergonomics.",
    "b": {
      "slug": "orb",
      "name": "Orb",
      "vendor": "Orb, Inc.",
      "vendorUrl": "https://www.withorb.com",
      "kind": "http-api",
      "category": "payment-platforms",
      "summary": "Orb is a hosted billing platform for usage-based, seat-based and hybrid pricing. It ingests usage events, computes metrics, and runs plans, subscriptions, prepaid credits and invoices through a REST API with SDKs in six languages.",
      "url": "https://www.anchorterminal.com/tools/orb",
      "markdownUrl": "https://www.anchorterminal.com/tools/orb.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/orb.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/orb.json",
      "repo": "https://github.com/orbcorp/orb-python",
      "license": "Proprietary service under Orb's Platform Terms and Conditions. The SDKs on GitHub are Apache-2.0",
      "transports": [
        "http"
      ],
      "remoteUrl": "https://api.withorb.com/v1",
      "packages": [
        {
          "registry": "pypi",
          "name": "orb-billing"
        },
        {
          "registry": "npm",
          "name": "orb-billing"
        },
        {
          "registry": "go",
          "name": "github.com/orbcorp/orb-go"
        }
      ],
      "auth": "api-key",
      "authNotes": "The API takes an API key as a Bearer token. A person creates it in the Orb web app under organisation settings, in test mode or live mode, after Orb's sales team has opened the account. No self-serve sign-up, OAuth flow or programmatic key API was found. Keys can be revoked, which is irreversible, and no scope list was found in the docs.",
      "pricing": "paid",
      "pricingNotes": "No public prices. Core, Advanced and Enterprise all show custom pricing, based on billings and ingested events, with a platform fee on the upper two tiers, and each starts with a sales contact. The terms describe a 30-day free trial that Orb may grant, and test mode works as a sandbox once an account exists. No free tier was found (https://www.withorb.com/pricing, checked 2026-10-09).",
      "priceSummary": "Paid",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the OpenAPI description, the docs index or the pricing page. Orb can charge a Stripe Shared Payment Token granted by a buyer's agent, through the merchant's Stripe account and on request (checked 2026-10-09).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 5,
        "npmWeekly": 184768,
        "pypiWeekly": null,
        "asOf": "2026-10-09"
      },
      "docsUrl": "https://docs.withorb.com",
      "llmsTxt": "https://docs.withorb.com/llms.txt",
      "openapi": "https://docs.withorb.com/api-reference/orb-openapi.json",
      "capabilities": [
        "payments.metering",
        "payments.card"
      ],
      "tags": [
        "hosted",
        "sales-led",
        "enterprise",
        "openapi",
        "llms-txt",
        "webhooks",
        "python",
        "typescript",
        "go",
        "java",
        "kotlin",
        "ruby",
        "status-page",
        "soc2",
        "closed-source"
      ],
      "lastRelease": "2026-10-09",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 66.5,
        "grade": "B",
        "agentReady": false,
        "rank": 289,
        "ranked": true,
        "rankOf": 950,
        "categoryRank": 7,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 84,
          "maintenance": 82,
          "payments": 5,
          "reliability": 77,
          "schema": 88,
          "security": 55,
          "transparency": 65
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-09"
        },
        "negative": 0,
        "verdict": "Orb suits a company that bills on usage and wants one API for events, plans, credits and invoices. It publishes an OpenAPI 3.1 file, numeric rate limits, idempotency keys and a dry-run header. Every plan is priced on request and access starts with sales. No scope list for API keys or public sub-processor list was found.",
        "bestFor": "A software or AI company that bills on usage and needs event metering, plan versioning, prepaid credits, invoicing and revenue reporting behind one API, with Stripe or Adyen collecting the money.",
        "strengths": [
          "Public OpenAPI 3.1 description with 147 operations and 79 webhook events, plus llms.txt and a Markdown twin of every docs page",
          "`Idempotency-Key` on every POST and PATCH for 48 hours, with `Idempotent-Replayed` and `Transient-Error` response headers",
          "A `Dry-Run: True` header validates most write requests and returns the would-be result without saving it",
          "Rate limits are published per category for live, test and trial accounts, from 10 analytics queries a second to 100 reads a second in live mode",
          "SDKs for Python, TypeScript and Go were each released on 9 October 2026, with 30 Python releases since 11 July"
        ],
        "weaknesses": [
          "All three plans (Core, Advanced, Enterprise) show custom pricing only, and the pricing page sends new customers to sales",
          "No list of API key scopes or a read-only key was found. Keys are created in the web app and revocation is irreversible",
          "Audit logs are in private preview and limited to the Enterprise plan",
          "The DPA and SOC reports sit behind an access request, and no public sub-processor list or hosting region was found",
          "The SDK changelog shows the ingestion `debug` parameter removed on 12 September 2026 while the reliability page still refers to it, and the product changelog has no entry"
        ],
        "agentNotes": [
          "Call `https://api.withorb.com/v1` with `Authorization: Bearer \u003ckey\u003e`. A person creates the key in the Orb web app under organisation settings, in test mode or live mode",
          "Send an `Idempotency-Key` of at most 64 characters on every POST and PATCH. A 409 means the first request is still running or the body changed",
          "Add `Dry-Run: True` to check a write first, and confirm `Orb-Dry-Run: true` in the response. Ingest, amend and deprecate event calls ignore it and run for real",
          "Do not send `Idempotency-Key` with `Dry-Run`. Orb returns a validation error",
          "Page with `limit` (default 20, maximum 100) and pass `next_cursor` back as `cursor` while `has_more` is true",
          "Back off exponentially on 429. Test mode allows 5 writes a second and 2,000 ingested events a minute"
        ],
        "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": 66.5
          }
        ],
        "editorialScores": {
          "ergonomics": 84,
          "maintenance": 82,
          "payments": 5,
          "reliability": 77,
          "schema": 88,
          "security": 55,
          "transparency": 45
        },
        "provenanceScore": 84
      },
      "connect": {
        "install": "pip install orb-billing",
        "http": "curl --request POST \\\n     --url https://api.withorb.com/v1/subscriptions \\\n     --header 'Dry-Run: True' \\\n     --header 'Accept: application/json' \\\n     --header 'Authorization: Bearer \u003cTOKEN\u003e' \\\n     --header 'Content-Type: application/json'"
      },
      "letme": {
        "capability": "https://letme.dev/payments.metering",
        "tool": "https://letme.dev/orb"
      },
      "area": "payments",
      "provenance": {
        "legalEntity": "Orb, Inc.",
        "domain": "withorb.com",
        "domainRegistered": "2019-10-12",
        "endpointOnVendorDomain": true,
        "terms": "https://www.withorb.com/terms",
        "privacy": "https://www.withorb.com/privacy-policy",
        "statusPage": "https://status.withorb.com",
        "changelog": "https://changelog.withorb.com",
        "securityTxt": "none",
        "checked": "2026-10-09",
        "notes": [
          "The website terms of use (effective 21 April 2025) give Orb, Inc., 2261 Market Street #5171, San Francisco, CA 94114. The trust centre and the API description's contact block also name Orb, Inc.",
          "The Platform Terms and Conditions at /terms govern the Orb Platform and Orb API to the extent an Order Form refers to them, under California law. No version date was read on the page.",
          "The privacy policy was last updated on 7 May 2025 and covers data collected through the website and the product, including end customers' names and billing addresses.",
          "The API answers at api.withorb.com and the web app at app.withorb.com, both on the vendor's domain.",
          "www.withorb.com/.well-known/security.txt returned 404. The security page gives security@withorb.com and a written disclosure scope.",
          "RDAP for withorb.com gives a registration date of 2019-10-12 and Squarespace Domains II LLC as registrar.",
          "The DPA is available on request by email or through the trust centre at security.withorb.com, and was not read."
        ],
        "score": 84
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/orb.json",
      "live": {
        "slug": "orb",
        "probe": {
          "target": "https://api.withorb.com/v1",
          "method": "get",
          "lastAt": "2026-10-10T01:38:01.612632632Z",
          "lastOk": true,
          "lastStatus": 403,
          "lastMs": 252,
          "lastNote": "asks for credentials",
          "authRequired": true,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 258,
          "p95ms24h": 369,
          "samples24h": 102,
          "samples30d": 102,
          "days": [
            {
              "date": "2026-10-09",
              "probes": 85,
              "ok": 85
            },
            {
              "date": "2026-10-10",
              "probes": 17,
              "ok": 17
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.withorb.com",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-10T01:34:02.855150172Z"
        },
        "versions": [
          {
            "registry": "github",
            "name": "orbcorp/orb-python",
            "version": "v4.83.0",
            "released": "2026-10-09",
            "seenAt": "2026-10-09T17:11:19.948988838Z"
          },
          {
            "registry": "npm",
            "name": "orb-billing",
            "version": "6.27.0",
            "seenAt": "2026-10-09T17:11:19.103890585Z"
          },
          {
            "registry": "pypi",
            "name": "orb-billing",
            "version": "4.83.0",
            "released": "2026-10-09",
            "seenAt": "2026-10-09T17:11:18.985061165Z"
          }
        ],
        "githubStars": 5,
        "npmWeekly": 184768,
        "pypiWeekly": 334816,
        "pages": [
          {
            "url": "https://changelog.withorb.com",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-09T18:33:43.924244658Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "2f5e7d2a385a"
          },
          {
            "url": "https://www.withorb.com/pricing",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-10-09T18:55:42.770953537Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "a352af138f81"
          },
          {
            "url": "https://www.withorb.com/privacy-policy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-09T18:55:45.239973302Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "1516bbe57809"
          },
          {
            "url": "https://www.withorb.com/terms",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-09T18:55:47.191671669Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "4e15ade75c2a"
          }
        ],
        "updatedAt": "2026-10-10T01:38:01.612632632Z"
      }
    },
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Metronome (Stripe)",
        "b": "Orb, Inc.",
        "name": "Vendor"
      },
      {
        "a": "https://api.metronome.com",
        "b": "https://api.withorb.com/v1",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP",
        "b": "HTTP",
        "name": "Transports"
      },
      {
        "a": "API key",
        "b": "API key",
        "name": "Auth"
      },
      {
        "a": "Pay per use",
        "b": "Paid",
        "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 Orb's Platform Terms and Conditions. The SDKs on GitHub are Apache-2.0",
        "name": "Licence"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "2026-09-29",
        "b": "2026-10-09",
        "name": "Last release"
      },
      {
        "a": "2026-09-28",
        "b": "2024-11-13",
        "name": "Terms last updated"
      },
      {
        "a": "2026-04-28",
        "b": "2025-05-07",
        "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": "not found in the text",
        "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": "5 stars, 185k npm/wk",
        "name": "Popularity"
      }
    ],
    "faq": [
      {
        "answer": "Metronome scores 69.7 (B) on agent readiness against Orb's 66.5 (B), and leads in 2 of 7 scored categories. Orb leads on reliability and agent ergonomics.",
        "question": "Which is better for AI agents, Metronome or Orb?"
      },
      {
        "answer": "Both need an API key.",
        "question": "Do Metronome and Orb need an API key?"
      },
      {
        "answer": "Yes. Metronome has a hosted endpoint at https://api.metronome.com and Orb at https://api.withorb.com/v1.",
        "question": "Can an agent call Metronome and Orb without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Security \u0026 auth, 68 against 55",
          "Payments \u0026 pricing, 39 against 5"
        ],
        "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": [
          "Reliability, 77 against 68",
          "Agent ergonomics, 84 against 75"
        ],
        "also": null,
        "goodFor": "A software or AI company that bills on usage and needs event metering, plan versioning, prepaid credits, invoicing and revenue reporting behind one API, with Stripe or Adyen collecting the money.",
        "slug": "orb",
        "watchFor": "All three plans (Core, Advanced, Enterprise) show custom pricing only, and the pricing page sends new customers to sales"
      }
    ],
    "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-orb.json",
        "title": "ATXP vs Orb",
        "url": "https://www.anchorterminal.com/compare/atxp-vs-orb"
      },
      {
        "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-orb.json",
        "title": "Lago vs Orb",
        "url": "https://www.anchorterminal.com/compare/lago-vs-orb"
      },
      {
        "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-paid.json",
        "title": "Metronome vs Paid",
        "url": "https://www.anchorterminal.com/compare/metronome-vs-paid"
      },
      {
        "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-orb.json",
        "title": "Nevermined API + MCP vs Orb",
        "url": "https://www.anchorterminal.com/compare/nevermined-vs-orb"
      },
      {
        "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/orb-vs-stripe-mcp.json",
        "title": "Orb vs Stripe API + MCP",
        "url": "https://www.anchorterminal.com/compare/orb-vs-stripe-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/orb-vs-tempo.json",
        "title": "Orb vs Tempo",
        "url": "https://www.anchorterminal.com/compare/orb-vs-tempo"
      },
      {
        "json": "https://www.anchorterminal.com/compare/adyen-mcp-server-vs-orb.json",
        "title": "Adyen MCP server vs Orb",
        "url": "https://www.anchorterminal.com/compare/adyen-mcp-server-vs-orb"
      },
      {
        "json": "https://www.anchorterminal.com/compare/crossmint-vs-orb.json",
        "title": "Crossmint API + Docs MCP vs Orb",
        "url": "https://www.anchorterminal.com/compare/crossmint-vs-orb"
      },
      {
        "json": "https://www.anchorterminal.com/compare/orb-vs-payman.json",
        "title": "Orb vs Payman Genie MCP",
        "url": "https://www.anchorterminal.com/compare/orb-vs-payman"
      },
      {
        "json": "https://www.anchorterminal.com/compare/orb-vs-skyfire.json",
        "title": "Orb vs Skyfire API + MCP",
        "url": "https://www.anchorterminal.com/compare/orb-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": 9,
        "edge": "orb",
        "key": "reliability",
        "metronome": 68,
        "name": "Reliability",
        "orb": 77,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 0,
        "edge": "",
        "key": "schema",
        "metronome": 88,
        "name": "Schema \u0026 documentation",
        "orb": 88,
        "weight": 13
      },
      {
        "by": 9,
        "edge": "orb",
        "key": "ergonomics",
        "metronome": 75,
        "name": "Agent ergonomics",
        "orb": 84,
        "weight": 13
      },
      {
        "by": 13,
        "edge": "metronome",
        "key": "security",
        "metronome": 68,
        "name": "Security \u0026 auth",
        "orb": 55,
        "weight": 14
      },
      {
        "by": 34,
        "edge": "metronome",
        "key": "payments",
        "metronome": 39,
        "name": "Payments \u0026 pricing",
        "orb": 5,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 0,
        "edge": "",
        "key": "maintenance",
        "metronome": 82,
        "name": "Maintenance \u0026 community",
        "orb": 82,
        "weight": 7
      },
      {
        "by": 0,
        "edge": "",
        "key": "transparency",
        "metronome": 65,
        "name": "Transparency \u0026 trust",
        "orb": 65,
        "weight": 7
      }
    ],
    "summary": "Metronome scores 69.7 (B) on agent readiness against Orb's 66.5 (B), and leads in 2 of 7 scored categories. Orb leads on reliability and agent ergonomics. 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.",
      "orb": "Orb suits a company that bills on usage and wants one API for events, plans, credits and invoices. It publishes an OpenAPI 3.1 file, numeric rate limits, idempotency keys and a dry-run header. Every plan is priced on request and access starts with sales. No scope list for API keys or public sub-processor list was found."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/metronome-vs-orb",
    "json": "https://www.anchorterminal.com/compare/metronome-vs-orb.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/metronome-vs-orb.md",
    "slim": "https://www.anchorterminal.com/compare/metronome-vs-orb.min.md"
  },
  "markdown": "Metronome scores 69.7 (B) on agent readiness against Orb's 66.5 (B), and leads in 2 of 7 scored categories. Orb leads on reliability and agent ergonomics. 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- Orb: grade B, 66.5/100, rank #289 of 950. Markdown https://www.anchorterminal.com/tools/orb.md · JSON https://www.anchorterminal.com/api/v1/tools/orb.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- Security \u0026 auth, 68 against 55\n- Payments \u0026 pricing, 39 against 5\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### Orb (B)\n\nGood for: A software or AI company that bills on usage and needs event metering, plan versioning, prepaid credits, invoicing and revenue reporting behind one API, with Stripe or Adyen collecting the money.\n\nAhead on:\n- Reliability, 77 against 68\n- Agent ergonomics, 84 against 75\n\nWatch for: All three plans (Core, Advanced, Enterprise) show custom pricing only, and the pricing page sends new customers to sales\n\n\n## Score by category\n\n| Category | Weight | Metronome | Orb | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 68 | 77 | Orb +9 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 88 | 88 | even |\n| Agent ergonomics | 13% (16.2 this run) | 75 | 84 | Orb +9 |\n| Security \u0026 auth | 14% (17.5 this run) | 68 | 55 | Metronome +13 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 39 | 5 | Metronome +34 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 82 | 82 | even |\n| Transparency \u0026 trust | 7% (8.8 this run) | 65 | 65 | even |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **69.7 · B** | **66.5 · B** | |\n\n## Facts side by side\n\n| Fact | Metronome | Orb |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Metronome (Stripe) | Orb, Inc. |\n| Hosted endpoint | `https://api.metronome.com` | `https://api.withorb.com/v1` |\n| Transports | HTTP | HTTP |\n| Auth | API key | API key |\n| Pricing | Pay per use | Paid |\n| x402 | no | no |\n| Licence | Proprietary service under the Stripe Services Agreement. The SDKs on GitHub are Apache-2.0 | Proprietary service under Orb's Platform Terms and Conditions. The SDKs on GitHub are Apache-2.0 |\n| Read-only variant documented | no | no |\n| llms.txt | yes | yes |\n| Last release | 2026-09-29 | 2026-10-09 |\n| Terms last updated | 2026-09-28 | 2024-11-13 |\n| Privacy policy last updated | 2026-04-28 | 2025-05-07 |\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 | not found in the text |\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 | 5 stars, 185k 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**Orb.** Orb suits a company that bills on usage and wants one API for events, plans, credits and invoices. It publishes an OpenAPI 3.1 file, numeric rate limits, idempotency keys and a dry-run header. Every plan is priced on request and access starts with sales. No scope list for API keys or public sub-processor list was found.\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### Orb\n\n1. Call `https://api.withorb.com/v1` with `Authorization: Bearer \u003ckey\u003e`. A person creates the key in the Orb web app under organisation settings, in test mode or live mode\n2. Send an `Idempotency-Key` of at most 64 characters on every POST and PATCH. A 409 means the first request is still running or the body changed\n3. Add `Dry-Run: True` to check a write first, and confirm `Orb-Dry-Run: true` in the response. Ingest, amend and deprecate event calls ignore it and run for real\n4. Do not send `Idempotency-Key` with `Dry-Run`. Orb returns a validation error\n5. Page with `limit` (default 20, maximum 100) and pass `next_cursor` back as `cursor` while `has_more` is true\n6. Back off exponentially on 429. Test mode allows 5 writes a second and 2,000 ingested events a minute\n\n## Questions\n\n### Which is better for AI agents, Metronome or Orb?\n\nMetronome scores 69.7 (B) on agent readiness against Orb's 66.5 (B), and leads in 2 of 7 scored categories. Orb leads on reliability and agent ergonomics.\n\n### Do Metronome and Orb need an API key?\n\nBoth need an API key.\n\n### Can an agent call Metronome and Orb without installing anything?\n\nYes. Metronome has a hosted endpoint at https://api.metronome.com and Orb at https://api.withorb.com/v1.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/metronome-vs-orb.json, and with the fewest tokens: https://www.anchorterminal.com/compare/metronome-vs-orb.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"metronome\", \"b\": \"orb\"}`. From a terminal: `anchor compare metronome orb`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/metronome.json and https://www.anchorterminal.com/api/v1/tools/orb.json\n\n## Other comparisons with Metronome or Orb\n\n- [ATXP vs Metronome](https://www.anchorterminal.com/compare/atxp-vs-metronome.md)\n- [ATXP vs Orb](https://www.anchorterminal.com/compare/atxp-vs-orb.md)\n- [Lago vs Metronome](https://www.anchorterminal.com/compare/lago-vs-metronome.md)\n- [Lago vs Orb](https://www.anchorterminal.com/compare/lago-vs-orb.md)\n- [Metronome vs Nevermined API + MCP](https://www.anchorterminal.com/compare/metronome-vs-nevermined.md)\n- [Metronome vs Paid](https://www.anchorterminal.com/compare/metronome-vs-paid.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 Orb](https://www.anchorterminal.com/compare/nevermined-vs-orb.md)\n- [Orb vs Paid](https://www.anchorterminal.com/compare/orb-vs-paid.md)\n- [Orb vs Stripe API + MCP](https://www.anchorterminal.com/compare/orb-vs-stripe-mcp.md)\n- [Orb vs Tempo](https://www.anchorterminal.com/compare/orb-vs-tempo.md)\n- [Adyen MCP server vs Orb](https://www.anchorterminal.com/compare/adyen-mcp-server-vs-orb.md)\n- [Crossmint API + Docs MCP vs Orb](https://www.anchorterminal.com/compare/crossmint-vs-orb.md)\n- [Orb vs Payman Genie MCP](https://www.anchorterminal.com/compare/orb-vs-payman.md)\n- [Orb vs Skyfire API + MCP](https://www.anchorterminal.com/compare/orb-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 Orb",
        "url": ""
      }
    ],
    "description": "Metronome scores 69.7 (B) to Orb's 66.5 (B) for usage billing. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "Metronome B 69.7",
      "Orb B 66.5",
      "scores"
    ],
    "h1": "Metronome vs Orb",
    "image": "https://www.anchorterminal.com/assets/og/compare-metronome-vs-orb.png",
    "path": "/compare/metronome-vs-orb",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Metronome vs Orb for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-10-09",
    "url": "https://www.anchorterminal.com/compare/metronome-vs-orb"
  },
  "tokens": {
    "markdown": 2250,
    "slim": 630
  },
  "version": 1
}
