Skip to main content

Limits and quotas

At a glance

The Ontologie API enforces limits to ensure the stability and performance of the platform. This guide summarizes the rate limits, quotas, payload sizes, and pagination rules.

Rate limits

Rate limits control the number of requests allowed per time period.

Default limits

ResourceLimitPeriod
API requests1,000per hour per key
Burst10per second per key
Incoming webhooks100per minute per endpoint
Workflow executions5concurrent per workspace
Agent conversations10concurrent per workspace

Rate limit headers

Each API response includes headers indicating the rate limit status:

HeaderDescription
X-RateLimit-LimitMaximum number of requests for the period
X-RateLimit-RemainingNumber of remaining requests
X-RateLimit-ResetTimestamp (epoch) of the next reset
Retry-AfterNumber of seconds to wait (only if 429)

Handling rate limits

When you receive a 429 Too Many Requests response:

  1. Read the Retry-After header to find out how long to wait.
  2. Implement exponential backoff for subsequent retries.
  3. Spread your requests over time instead of sending them in bursts.
async function callWithRetry(url: string, options: RequestInit, retries = 3) {
for (let i = 0; i < retries; i++) {
const response = await fetch(url, options);

if (response.status === 429) {
const retryAfter = Number(response.headers.get('Retry-After')) || 60;
await new Promise(r => setTimeout(r, retryAfter * 1000));
continue;
}

return response;
}
throw new Error('Nombre maximum de tentatives depasse');
}

Quotas

Quotas limit total usage over a longer period.

QuotaDefault value
API keys per workspace50
Scopes per key10
Daily requestsConfigurable per key (default: unlimited)
Monthly requestsConfigurable per key (default: unlimited)
Members per workspaceDepends on plan

Daily and monthly quotas are configurable per API key from the Quotas tab in the security panel. See Permissions.

Pagination

Endpoints that return lists support cursor-based pagination:

Request parameters

ParameterTypeDescriptionDefault
limitnumberMaximum number of items per page50
cursorstringCursor for the next page(first page)

Response format

{
"data": [...],
"pagination": {
"total": 342,
"limit": 50,
"cursor": "eyJpZCI6IjEyMyJ9",
"hasMore": true
}
}

Iterating through all pages

let cursor: string | undefined;
const allItems = [];

do {
const response = await client.nodes.list({ limit: 100, cursor });
allItems.push(...response.data);
cursor = response.pagination.hasMore ? response.pagination.cursor : undefined;
} while (cursor);

Pagination limits

ParameterMinimumMaximumDefault
limit120050

Payload sizes

ResourceMax size
Request body (JSON)1 MB
File import (CSV/Excel)50 MB
Attachment (spreadsheet)10 MB per file
Document (Knowledge Base)100 MB per file
Webhook payload1 MB

Durations and timeouts

OperationTimeout
Standard API request30 seconds
Workflow execution (durable)1 hour
Agent conversation5 minutes
Live Data synchronization10 minutes
File import5 minutes

See also

Need help?

Contact us: Support and contact.