LayerHopDocsLaunch app (opens in a new tab)

Plans and limits

Rate limits, the monthly request quota, webhook endpoints, partner fee caps and white-label per plan, how to read your usage, and how paid plans are billed in USDC with LayerHop's own crypto subscriptions.

Every account starts on Free. Paid plans raise the limits and add white-label, and they are paid the way your own customers pay you: with a LayerHop subscription, an invoice in USDC each month that you pay with any token on any chain.

Paid plans are not switched on yet. Until LayerHop enables them, every account has the Free limits below (the same limits as without plans), the plan endpoints return 404, and nobody is billed. Prices and limits below are placeholders and may change before launch.

What each plan includes#

Free Pro Scale
Price 0 49 USDC / month 299 USDC / month
Rate limit (per API key) 120 requests/minute 600 requests/minute 3,000 requests/minute
Live requests per month no quota 2,000,000 20,000,000
Webhook endpoints 10 25 100
Partner fee cap 50 bps 100 bps 150 bps
White-label widget and checkout no yes yes
Priority support no no yes

GET /v1/plans returns the current catalog with exact prices, so you never have to hard-code it.

  • Rate limit applies per API key, as today. A higher limit LayerHop set on a key by hand still wins. Over it you get RATE_LIMITED (HTTP 429) with retry-after.
  • Monthly quota counts the live requests (lh_live_… keys) of all your keys in the calendar month (UTC). Test-mode keys and requests without a key never count. Over it you get QUOTA_EXCEEDED (HTTP 429) until the 1st of next month or until you upgrade. Responses carry x-quota-limit and x-quota-remaining.
  • Partner fee cap is the highest feeBps your partner profile can charge on top of LayerHop's fee. The total of both stays capped at 150 bps.
  • White-label hides "Routed by LayerHop" under the widget (with hidePoweredBy and your partner id in integrator) and "Secured by LayerHop" on hosted checkout. LayerHop checks your plan on its servers: setting hidePoweredBy without a white-label plan changes nothing.

Check your plan and usage#

Terminal
curl https://api.layerhop.com/v1/account/plan -H "x-api-key: $LAYERHOP_API_KEY"
JSON
{
  "plan": { "id": "pro", "name": "Pro", "rateLimitRpm": 600, "monthlyRequests": 2000000, "webhookEndpoints": 25, "whiteLabel": true },
  "status": "active",
  "periodEnd": "2026-11-21T10:00:00.000Z",
  "expiresAt": "2026-12-01T10:00:00.000Z",
  "usage": { "requests": 18234, "monthlyRequests": 2000000, "resetsAt": "2026-11-01T00:00:00.000Z", "rateLimitRpm": 600, "webhookEndpoints": { "used": 2, "limit": 25 } }
}

This endpoint never counts against the quota, so it still answers after QUOTA_EXCEEDED. The dashboard's Billing page shows the same numbers.

Upgrade, change or cancel#

In the dashboard, open Billing and pick a plan:

  1. LayerHop starts a monthly subscription and issues the first invoice (to the email on your account).
  2. Pay it on the hosted invoice page with any token on any chain. It settles in USDC on Base.
  3. The plan applies within about a minute of the payment settling. Each month a new invoice is emailed; pay it to keep the plan.
Status Meaning
free No paid plan.
active Paid and renewing.
past_due This month's invoice is past its due date. The plan stays on during the grace period.
grace The paid period ended and the renewal is unpaid. The plan stays until expiresAt, then the account is on Free.
canceling You canceled. The plan stays until the end of the period you paid for, then the account is on Free.
  • Upgrading bills the new plan at once. Moving to a cheaper plan starts it when the period you already paid ends. There is no proration.
  • Cancel (downgrade to Free) stops renewals and voids any unpaid invoice. You keep the paid plan until its period ends.
  • An unpaid renewal keeps the plan for 10 days after the period ends (3 days to the invoice's due date plus the 7-day subscription grace), then the account is on Free. Your keys, webhooks and data stay. Only the limits change.

If you go over a Free limit after a downgrade (for example more webhook endpoints than Free allows), existing endpoints keep working, but you can't add new ones until you are under the limit.

Last updated