Developers

Rate limits

How many calls you can make, and what happens when you make too many.

SKUFlow limits how fast one credential can call the API, so one busy integration can't slow down the business's app.

The limit

CredentialLimitCounted per
API key600 calls a minuteEach key on its own. Two keys have two budgets.
Connected app (OAuth)600 calls a minuteEach person using each app. Your ChatGPT connection never shares a budget with a colleague's.
  • Every call counts: reads, writes, and MCP tool calls (each tool call is an API call).
  • The count is shared across all of SKUFlow's servers.
  • People using the SKUFlow app are not limited by this.

When you go over

The call answers 429 TOO_MANY_REQUESTS and does nothing. Wait, then retry:

async function callSkuflow(url, init, attempt = 0) {
	const response = await fetch(url, init);
	if (response.status === 429 && attempt < 5) {
		await new Promise((resolve) => setTimeout(resolve, 2 ** attempt * 1000));
		return callSkuflow(url, init, attempt + 1);
	}
	return response;
}

Use an Idempotency-Key on writes you retry, so a retry never does the work twice (see Conventions).

Stay well under it

  • Page with limit=200 instead of many small pages.
  • Use webhooks to hear about changes instead of polling for them.
  • Cache settings-style lists (lead sources, custom fields, decoration methods) instead of reading them before every call.
  • Use one key per integration, so a busy one doesn't use up another's budget.

Other limits

  • Approval requests: an AI assistant can have up to 20 requests waiting for your approval at once. More answer 429 until you approve or decline some. See Approvals.
  • Request size: up to 40 MB per request (413 above that). Files you send by URL or as base64 can be up to 10 MB.
  • Page size: most lists return at most 200 records per call. See Pagination.
  • Webhook endpoints: up to 20 per business.
  • API keys: up to 50 active keys per business.

On this page