Source: https://www.revvly.ai/docs/reference/limits

Reference

# Limits and *defaults*.

Every number you can hit, grouped by area: the value, where it is enforced, and whether you can change it. Each row was read from the product, not estimated.

## How to read the tables

- **Workspace setting**: An admin changes it in the dashboard.

- **Per key, per request**: You choose it on the key or the call, inside the ceiling shown.

- **Platform configuration**: Set by Revvly for the whole platform. A workspace admin cannot change it.

- **Fixed**: Part of the product. It changes only with a release.

## API keys and request rates

A key is counted in fixed windows: one clock second and one clock minute. Either window can refuse a request, and the message names which one.

- **Ordinary key, per second**: **10** Enforced: Every request made with a key: REST, public GraphQL, MCP. Change: Per key, by a tenant admin in Settings, API Keys.

- **Ordinary key, per minute**: **100** Enforced: Same. Change: Per key, by a tenant admin in Settings, API Keys.

- **Support sign-in key, per second**: **50** Enforced: Keys that carry the support sign-in capability. Change: Per key, by a tenant admin in Settings, API Keys.

- **Support sign-in key, per minute**: **3,000** Enforced: Same. Change: Per key, by a tenant admin in Settings, API Keys.

- **Highest limit a key can be given**: **500 per second, 30,000 per minute** Enforced: When you save a key’s limits. Whole numbers of 1 or more, and the minute limit cannot be below the second limit. Change: Fixed.

- **MCP with sign-in instead of a key**: **10 per second, 300 per minute per person** Enforced: The MCP endpoint. Change: Platform configuration, not a workspace setting.

- **Dashboard and other requests**: **300 per minute per network address and signed-in user** Enforced: The shared request limiter. Change: Platform configuration, not a workspace setting.

- **Sign-in attempts**: **10 per minute per address, then blocked for 15 minutes** Enforced: The sign-in endpoints. Change: Platform configuration, not a workspace setting.

- **Public GraphQL query depth**: **8 levels, refused with QUERY_DEPTH_EXCEEDED** Enforced: Before the query runs. Change: Fixed.

- **Public GraphQL invoices on a client**: **Default 100, at most 1,000 per call** Enforced: The invoices field. Change: Per request, through the limit argument.

Over the limit, REST routes answer with a 429 and a Retry-After header in seconds. The public GraphQL API answers with the same status and the code RATE_LIMITED.

```
HTTP/1.1 429 Too Many Requests
Retry-After: 1

{
  "statusCode": 429,
  "message": "Rate limit exceeded (second window)",
  "retryAfterSeconds": 1
}
```

```
HTTP/1.1 429 Too Many Requests
Retry-After: 1

{ "errors": [ {
  "message": "Rate limit exceeded (second window)",
  "extensions": { "code": "RATE_LIMITED" }
} ] }
```

Wait for the Retry-After value, then retry with the same idempotency key. See [API keys for integrators](https://www.revvly.ai/docs/guides/api-keys) and [Event ingestion](https://www.revvly.ai/docs/api/events).

## Product events

These apply to usage events sent to /api/v1/product-events, from your servers or, with a token, from a browser. See Send product events for the request shape.

- **Browser requests per person**: **10 per second, 300 per minute** Enforced: The browser route, counted per person, or per client when no person is named. Change: Platform configuration, not a workspace setting.

- **Event names per workspace**: **2,000 that are not ignored, 10,000 in all, ignored ones included** Enforced: When an event name arrives for the first time. Change: Fixed.

- **New event names from a browser**: **5 per request, and none while 100 wait to be organised** Enforced: The browser route only. Change: Fixed.

- **Product events kept**: **13 months from receipt** Enforced: Storage. Change: Fixed.

- **Mapping suggestions per run**: **15 events, and not the same event again within a week** Enforced: Suggest from documentation. Change: Fixed.

- **Sites allowed to send from a browser**: **Only those listed in Settings, Product events, Browser tracking** Enforced: The browser route. Change: Workspace setting, by an admin.

## Usage and event ingestion

- **Events per request**: **1,000** Enforced: POST /api/v1/events. More is refused with a 400. Change: Fixed.

- **Event timestamp, future**: **Not more than 15 minutes ahead of now** Enforced: Per event. A later one is rejected. Change: Fixed.

- **Event timestamp, past**: **Not more than 7 days old** Enforced: Per event. An older one is rejected as stale. Change: Fixed.

- **Duplicate event ids**: **Ignored for 24 hours in the fast check; a stored event also blocks a repeat id** Enforced: Per workspace, per eventId. Change: Fixed.

- **Items per usage batch**: **100** Enforced: The usage batch endpoint, which also requires an Idempotency-Key header. Change: Fixed.

- **Usage history page**: **Default 100, at most 1,000 entries** Enforced: The usage history endpoint. Change: Per request, through the limit parameter.

- **Raw usage events kept**: **90 days** Enforced: Storage. Change: Fixed.

- **Seal delay for a closed period**: **24 hours before a reading seals, checked hourly** Enforced: The usage period sweep. Change: Platform configuration, not a workspace setting.

## Outbound webhooks

Settings, Webhooks sends lead.created, lead.updated and lead.deleted to your web addresses. A webhook.test event is sent only by Send test event.

- **Endpoints per workspace**: **25** Enforced: When you add one. Change: Fixed.

- **Attempts per delivery**: **7 in total, first included** Enforced: The delivery sweep. Change: Fixed.

- **Wait before each retry**: **30 seconds, 2 minutes, 10 minutes, 1 hour, 6 hours, 12 hours** Enforced: The delivery sweep. Change: Fixed.

- **Answers that stop retrying**: **Any 4xx other than 408, 425 and 429, any redirect, and an address Revvly refuses to call. 5xx answers and network errors are retried** Enforced: The delivery sweep. Change: Fixed.

- **Receiver Retry-After**: **Honoured up to 6 hours** Enforced: The delivery sweep. Change: Fixed.

- **Switch-off after failures**: **25 failed deliveries in a row turn the endpoint off** Enforced: The endpoint. Change: Fixed.

- **Deliveries held for a switched-off endpoint**: **7 days, then given up** Enforced: The delivery sweep. Change: Fixed.

- **Pace**: **Checked every 5 seconds, at most 25 sends per endpoint per pass** Enforced: The delivery sweep. Change: Fixed.

## Forms

- **Field types**: **16: Short text, Long text, Formatted text, Email, Phone, Website, Number, Date, Single choice, Multiple choice, Dropdown, Consent checkbox, Hidden value, File upload, Heading, Paragraph** Enforced: The form builder. Change: Fixed.

- **Fields, actions, options**: **At most 100 fields, 20 actions, 100 options per field** Enforced: The form builder. Change: Fixed.

- **Text lengths**: **Label 500 characters, description 2,000, email body 20,000** Enforced: The form builder. Change: Fixed.

- **Honeypot**: **A text input named website. Any value is treated as a bot and answered with the normal success** Enforced: The public submit route. Change: Fixed.

- **Submissions per form, public**: **1,000 per UTC day** Enforced: Link, embed and your own site. Change: Fixed.

- **Submissions per form, API**: **10,000 per UTC day, a separate budget** Enforced: The submitForm mutation and the API route. Change: Fixed.

- **Public form view**: **120 per minute per visitor** Enforced: GET /api/v1/forms/{publicId}. Change: Platform configuration, not a workspace setting.

- **Public submit and upload**: **30 per minute per visitor** Enforced: The submit and upload routes. Change: Platform configuration, not a workspace setting.

- **Upload slots per form**: **3,000 per UTC day** Enforced: The upload route. Change: Fixed.

- **Files per upload field**: **1 to 5, at most 30 MB each** Enforced: The form builder and the upload route. Change: Per field, within those ceilings.

- **Upload link life**: **15 minutes. An unclaimed upload is cleaned up after 24 hours** Enforced: Storage. Change: Fixed.

- **Retries of one action step**: **5 attempts** Enforced: The form action runner. Change: Fixed.

- **Submission export**: **The newest 10,000 rows** Enforced: Export to CSV. Change: Fixed.

## Files and attachments

- **Document library file**: **100 MB** Enforced: Upload to Library. Change: Fixed.

- **Library file attached to an email**: **10 MB. Larger files go as a link** Enforced: The composer. Change: Fixed.

- **Library name, description, tags**: **120 characters, 500 characters, 20 tags of 40 characters** Enforced: Library. Change: Fixed.

- **Library list**: **The 500 most recently updated documents** Enforced: Library. Change: Fixed.

- **Document links per email**: **5** Enforced: The composer. Change: Fixed.

- **Document link life**: **Default 180 days, at most 730** Enforced: When you send. Change: Per link, within the ceiling.

- **Email attachments**: **5 files, 10 MB each, 20 MB in total** Enforced: The composer and the server. Change: Fixed.

- **Email recipients**: **50 each in To, Cc and Bcc** Enforced: Send. Change: Fixed.

- **Support attachment**: **20 MB per file, 10 files per message** Enforced: Support replies and the chat upload. Change: Fixed.

- **Library upload link life**: **1 hour. An unclaimed upload is cleaned up after 24 hours** Enforced: Storage. Change: Fixed.

## Email tracking

- **Open cooldown**: **15 minutes per recipient: repeat loads inside it count as one open** Enforced: Open tracking. Change: Fixed.

- **Document view cooldown**: **15 minutes per link and viewer** Enforced: Shared document links. Change: Fixed.

- **Opens shown per email**: **Up to 500** Enforced: The email detail. Change: Fixed.

- **Open events kept**: **1 year** Enforced: Storage. Change: Fixed.

- **Document view events kept**: **1 year** Enforced: Storage. Change: Fixed.

- **Document view alerts**: **The sender is told about a link’s first 5 counted views** Enforced: Shared document links. Change: Fixed.

- **Stored email body text**: **24 months by default** Enforced: Email storage. Change: Platform configuration, not a workspace setting.

## Support

- **AI resolution list price**: **0.35 USD per resolution** Enforced: Billing of AI resolutions. Change: Platform configuration, not a workspace setting.

- **Assumed resolution**: **An AI answer the customer leaves unanswered for 24 hours, unless a person acted. Tickets older than 14 days are not back-filled** Enforced: The 5-minute billing sweep. Change: Fixed.

- **Daily AI spend cap**: **No cap until you set one. 0 to 100,000 USD per day** Enforced: Settings, Support, General. Change: Workspace setting.

- **Support sandbox cap**: **2 USD per day** Enforced: The sandbox. Change: Fixed.

- **Auto-close**: **Waiting tickets close after 48 hours without a client reply by default. 1 to 720 hours, or off** Enforced: Settings, Support, General. Change: Workspace setting.

- **Email to clients who are away**: **Default 5 minutes unread. 1 to 1,440** Enforced: Settings, Support, General. Change: Workspace setting.

- **Knowledge articles per push**: **50 per call. Deleting takes up to 200 externalIds per call** Enforced: The knowledge API. Change: Fixed.

- **End-user token**: **Valid 60 seconds to 1 hour, 1 hour by default** Enforced: The support sign-in mutation. Change: Per request, through ttlSeconds, within the range.

- **Chat API, per person**: **10 per second, 120 per minute** Enforced: The Support chat API. Change: Platform configuration, not a workspace setting.

- **Chat API, per workspace**: **200 per second, 6,000 per minute** Enforced: The Support chat API. Change: Platform configuration, not a workspace setting.

- **Chat uploads, per person**: **2 per second, 20 per minute, in addition to the chat limit** Enforced: The Support chat upload route. Change: Platform configuration, not a workspace setting.

- **Chat query depth**: **8 levels** Enforced: The Support chat API. Change: Fixed.

## Revvly Assistant

- **Proposal expiry**: **15 minutes. An unanswered confirmation card expires and nothing runs** Enforced: Confirmation cards. Change: Fixed.

- **Message length**: **4,000 characters** Enforced: Sending a message. Change: Fixed.

- **Attachments**: **4 per message, 20 per conversation, 22 MB in total** Enforced: Sending a message. Change: Fixed.

- **Per attachment**: **About 3.75 MB for an image, 20 MB for a PDF, 256 KB for text, 512 KB of text across a conversation** Enforced: Sending a message. Change: Fixed.

- **Tool steps per reply**: **8 rounds, then it answers in text** Enforced: The assistant loop. Change: Fixed.

- **Model**: **claude-sonnet-5-5 unless the platform overrides it** Enforced: The assistant. Change: Platform configuration, not a workspace setting.

## Tasks and list sizes

- **Tasks list page**: **50 tasks, then Load more** Enforced: The Tasks page. Change: Fixed.

- **Work queue**: **100 per page, up to 10 pages (1,000 tasks), then it says the list is incomplete** Enforced: The Work queue. Change: Fixed.

- **Account tasks panel**: **The first 50 open tasks** Enforced: The Work queue account column. Change: Fixed.

- **Client Tasks tab**: **The first 100 tasks** Enforced: A client or company. Change: Fixed.

- **Task relation picker**: **200 companies and 200 contacts at a time; search reaches the rest of the companies** Enforced: New task. Change: Fixed.

- **Follow-up delay**: **Default 3 business days, 1 to 90** Enforced: The composer, and Account, Email follow-up. Change: Per person and per send.

- **Snooze**: **1 to 365 days. Undo window 6 seconds** Enforced: The Work queue. Change: Fixed.

- **Task reminders**: **Swept every minute. Nothing is sent to a person** Enforced: The reminder job. Change: Platform configuration, not a workspace setting.

- **Repeating tasks**: **Next task created by a sweep every 30 minutes** Enforced: The recurrence job. Change: Platform configuration, not a workspace setting.

- **Notification feed**: **Items kept 90 days** Enforced: The bell. Change: Fixed.

## Sessions and tokens

- **Dashboard access token**: **15 minutes** Enforced: Sign-in. Change: Platform configuration, not a workspace setting.

- **Sign-in session**: **7 days** Enforced: Sign-in. Change: Platform configuration, not a workspace setting.

## Workspace defaults

Where a setting has a screen, it is on Settings, General unless noted.

- **Default payment terms**: **30 days, 1 to 365, or due on receipt** Enforced: New invoices. Change: Workspace setting; a client or invoice can override.

- **Churn grace period**: **30 days, 1 to 365** Enforced: Analytics. Change: Workspace setting.

- **Reactivation window**: **90 days, never below the churn grace period** Enforced: Analytics. Change: Stored per workspace; no screen yet.

- **Renewal invoice lead time**: **0 days for monthly, quarterly and yearly, up to 365** Enforced: Renewal invoicing. Change: Workspace setting; a client can override.

- **Prepaid-term commitment**: **Binding** Enforced: New prepaid-term schedules. Change: Stored per workspace; no screen yet.

- **Deferred-activation gap**: **60 days** Enforced: The daily schedule sweep. Change: Stored per workspace; no screen yet.

- **Working days**: **Monday to Friday, in the workspace timezone (UTC by default)** Enforced: Business-day counts. Change: Workspace setting, tenant admins only.

- **Booking intake daily limit**: **100 companies per UTC day, at most 10,000** Enforced: Settings, Booking intake. Change: Workspace setting, tenant admins only.

## Scheduled windows

Daily jobs run on the platform clock. They are not workspace settings.

- **Overdue detection, daily snapshots**: **1:00 and 2:00** Enforced: Invoices and analytics. Change: Platform configuration, not a workspace setting.

- **Exchange rates**: **2:00** Enforced: Reporting currency conversion. Change: Platform configuration, not a workspace setting.

- **Renewals**: **6:00** Enforced: Renewal invoicing. Change: Platform configuration, not a workspace setting.

- **Usage periods closed**: **4:00** Enforced: Metered usage. Change: Platform configuration, not a workspace setting.

- **Payment reminders**: **9:00** Enforced: Skipped when Automatically send emails is off. Change: Platform configuration, not a workspace setting.

- **Support auto-close**: **Every 5 minutes** Enforced: Support. Change: Platform configuration, not a workspace setting.

