Limits and quotas
Port AI operates with specific limits to ensure optimal performance for all users. These limits apply to the Port AI Assistant, AI chat widgets, API, workflow AI nodes, and other Port AI interfaces.
These limits apply when using Port's managed AI infrastructure. When you configure your own LLM provider, these Port-specific limits no longer apply, and usage will be governed by your provider's own limits and pricing.
Port acts as a bridge to leading LLM providers and doesn't host LLM models internally.
Rate limits (per minute)
- LLM call limit: 200 LLM calls per minute.
- Token usage limit: 500,000 tokens per minute.
- These limits reset every minute.
Monthly quota
- Default quota: 500 AI invocations per month for most plans.
- Each interaction with Port AI counts as one request against your quota.
- Quota resets on the first day of each calendar month (UTC).
- Enterprise plans may have higher quotas or unlimited usage. Contact your account team for details.
Usage limits may change without prior notice. Once a limit is reached, you will need to wait until it resets.
If you attempt to interact with Port AI after reaching a limit, you will receive an error message indicating that the limit has been exceeded.
The query limit is estimated and depends on the actual token usage.
What happens when quota is exceeded
When you exceed your monthly quota, Port AI returns an error and does not process the request. The request is not queued or retried automatically.
Error response:
{
"error": "Monthly quota exceeded",
"type": "QUOTA_ERROR",
"resetDate": "2025-10-01T00:00:00Z"
}
All AI interfaces (Port AI Assistant, AI chat widgets, API, and workflow AI nodes) will return this error until:
- The quota resets at the start of the next month, or
- Your organization's quota is increased.
Monitor your usage
You can monitor your current usage in several ways:
Check usage via API
Use the Get monthly AI invocations quota usage API endpoint:
curl 'https://api.port.io/v1/quota/ai-invocations' \
-H 'Authorization: Bearer <YOUR_API_TOKEN>'
Response:
{
"ok": true,
"monthlyQuotaUsage": {
"monthlyLimit": 500,
"remainingQuota": 158,
"month": "2025-11",
"remainingTimeMs": 1234567890
}
}
Check rate limits in streaming responses
Check the final done event in streaming responses for remaining LLM calls, tokens, and reset time. See API interaction for the event shape.
Use the quota information in the done event to implement client-side rate limiting. When remainingRequests (remaining LLM calls) or remainingTokens are low, consider adding delays between requests or queuing them for later execution.
Check your monthly quota before making multiple Port AI requests to avoid hitting limits. When remainingQuota is low, consider implementing rate limiting or queuing requests until the monthly quota resets. Note that you may also encounter per-minute rate limits, which are separate from this monthly quota.
Processing quota information
JavaScript example: processing quota information (click to expand)
When processing the streaming response, you will receive quota usage information in the final done event. Here is a JavaScript example of how to handle this:
const eventSource = new EventSource(apiUrl);
eventSource.addEventListener("done", (event) => {
const data = JSON.parse(event.data);
if (data.rateLimitUsage) {
const { remainingRequests, remainingTokens, remainingTimeMs } =
data.rateLimitUsage;
// Check if quota is running low (LLM calls or tokens)
if (remainingRequests < 10 || remainingTokens < 10000) {
console.warn("Quota running low, consider rate limiting");
// Implement rate limiting logic
}
// Schedule next request after quota reset if needed
if (remainingRequests === 0) {
setTimeout(() => {
// Safe to make next request
}, remainingTimeMs);
}
}
eventSource.close();
});
Request a quota increase
If you need more AI invocations than your current quota allows:
- Contact Port support: Submit a request through support.port.io explaining your use case and estimated monthly usage.
- Upgrade your plan: Enterprise plans include higher quotas. Contact your account team or sales@port.io to discuss options.
- Bring your own LLM: Configure your own LLM provider to bypass Port's managed quotas entirely. Usage will then be governed by your provider's limits.
Error handling
Common error scenarios and handling strategies:
Rate limit exceeded
{
"error": "Rate limit exceeded",
"type": "RATE_LIMIT_ERROR",
"retryAfter": 3600
}
Quota exceeded
{
"error": "Monthly quota exceeded",
"type": "QUOTA_ERROR",
"resetDate": "2025-10-01T00:00:00Z"
}
Implementation example: error handling (click to expand)
async function handlePortAIRequest(prompt) {
try {
const response = await invokePortAI(prompt);
return response;
} catch (error) {
if (error.type === "RATE_LIMIT_ERROR") {
// Wait and retry
await new Promise((resolve) =>
setTimeout(resolve, error.retryAfter * 1000),
);
return handlePortAIRequest(prompt);
} else if (error.type === "QUOTA_ERROR") {
// Queue for next month or upgrade plan
console.log("Monthly quota exceeded, queuing request");
return null;
}
throw error;
}
}
Technical limitations
Port AI uses the Port MCP tools, which have their own limitations. For detailed information about MCP tool constraints, refer to the Port MCP server documentation.
Port AI operates within several technical constraints to ensure optimal performance and security:
- Tool calls per interaction: One AI interaction can include up to 15 tool calls.
- LLM final response: Limited to 10,000 tokens per response.
- Tool scope: Currently supports only developer tools (querying data and running actions), not administrative tools (creating blueprints, managing scorecards).
- User-based permissions: All interactions respect your individual user permissions - Port AI cannot access data you don't have permission to view.
- Sequential automation permissions: Sequential automations run with Admin privileges, which may differ from your user permissions.