# Plans, billing and limits

There are two ways to pay for APIs on Zyla API Hub. Use the one that fits how you work; you can use both from the same account.

## Two ways to pay

| | Pay per call | Monthly plan |
|---|---|---|
| **Best for** | AI agents and occasional use | Steady use of one API from your own software |
| **How it works** | Your agent calls any API through the [Zyla MCP server](https://zylalabs.com/docs/mcp). Each successful call is charged at that API's price per call | You subscribe to a plan on the API's page: a number of calls per month for a fixed price |
| **Subscription** | None. You pay only for calls that succeed | One per API. Renews automatically until you cancel |
| **You need** | A credit card on file | A plan for each API you use |

**Pay per call.** No monthly fee and no minimum. If the card is missing, your agent gets a payment link (`402`) to open and add it. Ask your agent for your *account status* to see what you have spent this cycle.

**Monthly plans.** Each API has its own plans, set by its provider: price, calls per month and a requests-per-minute limit. Some APIs offer a free trial with a few calls. You can upgrade, downgrade or cancel from the API page at any time; plans renew automatically at the end of each period until you cancel. Invoices and payment methods are in **Billing**, in the account menu. Refunds follow the [refund policy](https://zylalabs.com/refund).

## Limits

- **Requests per minute.** Each plan allows 60, 120 or 240 requests per minute. Above that, calls are rejected until the next minute starts.
- **Calls per month.** When you use all the calls in your plan, calls are rejected until you upgrade or the next cycle starts.
- **Unpaid invoices.** If an invoice stays unpaid for 72 hours, the subscription is paused until it is paid in the Billing Portal.

Developers can track usage from the response headers; see [Call an API over HTTP](https://zylalabs.com/docs/calling-apis).

## When something fails

Errors from the hub come with a `message` that says what happened:

| Status | What it means | What to do |
|---|---|---|
| `401` | Missing or wrong key, no subscription to this API, wrong HTTP method, or an expired complimentary trial | Check the key and the subscription; agents subscribe on their own |
| `402` | No credit card on file (agents, pay per call) | Open the payment link and add a card |
| `403` | The account is blocked, or the key is limited to other APIs | Use a key allowed for this API |
| `404` | The API or the endpoint does not exist or is not public | Check the API and endpoint |
| `410` | The endpoint was retired | Use the alternative listed on the API page |
| `422` | A parameter has the wrong type or format | Fix the parameter named in the message |
| `429` | Too many requests per minute, plan or trial calls used up, or a paused subscription | Wait, upgrade the plan or pay the pending invoice |

Any other status (for example a `400` or `500` with the provider's own message) comes from the API itself. If it persists, write to our team with the API name and the time of the call.


---
Source: https://zylalabs.com/docs/plans-and-limits
