---
title: Plans and limits
description: The monthly API call limit of each Coevera plan, page sizes, file sizes and what the API answers when it limits a client.
canonical: https://developers.coevera.com/get-started/plans-and-limits/
section: get-started
verification: behaviour
lastVerified: 2026-10-16
publisher: Coevera
---

# Plans and limits

**Answer:** Every Coevera plan includes the API, with a monthly limit of 100,000 calls on Business, 150,000 on Enterprise and 350,000 on Unlimited (pricing page). A REST list returns at most 100 records, 30 by default; in GraphQL, send first, at most 100. Files are limited by the space's Attachment Size Limit, 30 MB by default. No per-minute limit is published.

The numbers an integration has to stay within, and where each one comes from.

## API calls per month

Every Coevera plan includes the API. The [pricing page](https://www.coevera.com/crm/pricing/)
lists a monthly limit of API calls for each plan:

| Plan       | API calls per month |
| ---------- | ------------------- |
| Business   | 100,000             |
| Enterprise | 150,000             |
| Unlimited  | 350,000             |

The pricing page is the source: when it changes, this page follows. It does not say what happens
when a space goes over its limit.

## Page size

A REST list request returns at most 100 records per page, and 30 when you do not set `first`.
A `first` above 100 answers `400` with `ERROR_PARAMETER_INVALID` (code `117`) and the message
`Limit must not be greater than 100`. Read more records by passing `page_info.end_cursor` as
`after` until `has_next_page` is `false`, as [pagination](/concepts/pagination/) shows.

In GraphQL, always send `first` to `getByCriteria`, at most 100, and page with `after` and
`pageInfo.endCursor` the same way.

## File size

Files are limited by the space's **Attachment Size Limit**, which an admin sets under
**Administration › Settings › Global Settings**: 30 MB by default, and up to 200 MB (the
[pricing page](https://www.coevera.com/crm/pricing/) and the
[4.6.0 release notes](https://www.coevera.com/release-notes/coevera-v4-6-0/)). The same limit applies to a file you attach through the API, which is refused with
`400`, code `117`, when it is larger. The API cannot read the setting, so
ask the space's admin or stay under 30 MB. The [attach a document](/recipes/attach-document/)
recipe uploads a file.

Files are sent as base64, which adds about a third: a 30 MB file is about 40 MB of JSON.

## Rate limiting

No per-minute or per-second limit is published for the REST and GraphQL API. A throttled request
answers `429` with `ERROR_TOO_MANY_REQUESTS` (code `182`) and, when the limit computes one, a
`Retry-After` header with the seconds to wait. Handle it in every integration:

- wait for the seconds in `Retry-After`, then retry the same request;
- without `Retry-After`, back off exponentially, for example 1, 2, 4 and 8 seconds;
- do not retry a `401`: repeated failed sign-ins lock the credentials for a while, and every
  request answers `429` until the lock ends.

[Rate limits and retries](/concepts/rate-limits-and-retries/) shows the retry in code, and
[batch operations](/concepts/batch-operations/) how to write many records in fewer calls.

## Other platforms

- The [Microsoft Power Platform connector](/integrations/power-platform/) is limited to 100 calls
  per connection per minute (Microsoft's connector reference).
- The MCP server for AI assistants has a burst limit per token and a sustained limit per space
  ([its reference](https://mcp-server.coevera.com/doc#troubleshooting)); see
  [Limits and errors](/ai/limits-and-errors/).

## Limits

- No per-minute limit is published, and the API returns no rate-limit headers other than
  `Retry-After`.
- A REST page holds at most 100 records; larger reads take several pages.
