specification: API Commons Rate Limits specificationVersion: '0.1' schema: https://raw.githubusercontent.com/api-evangelist/interface-research/main/schema/api-commons.yml#/$defs/RateLimits provider: Cvent Hospitality Cloud providerId: cvent-hospitality-cloud generated: '2026-09-07' method: searched source: https://developers.cvent.com/docs/rest-api/guides/handling-rate-limits created: '2026-05-04' modified: '2026-09-07' supersedes: >- A 2026-05-04 bulk-sweep scaffold that invented free/professional/enterprise tiers with 10, 100 and 1000 requests-per-minute and monthly quotas. None of that was published by Cvent. This file replaces it with what Cvent actually documents: a per-account usage TIER with a DAILY quota and a PER-SECOND steady rate, both readable at runtime from GET /usage/tier. description: >- Published rate limits for the Cvent REST API — the contract carrying the Hospitality Cloud surface — plus the separate quota that governs the legacy SOAP API. Limits are per account and depend on the account's usage tier, which Cvent does not publish as a public price list; the API exposes the account's own tier instead. tags: - Rate Limiting - Quotas - Throttling - Hospitality headers: limit: X-RateLimit-Limit remaining: X-RateLimit-Remaining reset: X-RateLimit-Reset retryAfter: null retryAfterNote: >- Cvent does NOT return Retry-After. The documented recovery path is client-side exponential backoff, which makes the three X-RateLimit-* headers the only runtime signal an agent gets. source: https://developers.cvent.com/docs/rest-api/guides/handling-rate-limits responseCodes: throttled: 429 quotaExceeded: 429 headersTooLarge: 431 limit_count: 3 limits: - name: Daily quota scope: per-account metric: requests window: 24h reset: midnight UTC limit: null limitNote: >- Tier-dependent and not published as a public figure. The contract's UsagePlan schema documents the field as "The daily quota of the usage tier. If this value is null, this means the usage tier is unlimited", with an example value of 1000. Read the account's real number from GET /usage/tier. applies: - Cvent REST API (/ea) — all hospitality operations source: https://developers.cvent.com/docs/rest-api/guides/handling-rate-limits - name: Per-second steady rate scope: per-account metric: requests_per_second window: 1s limit: null limitNote: >- Tier-dependent. UsagePlan.rateLimit is documented as "The per-second steady rate-limit of the usage tier" (example 2), with UsagePlan.burstLimit as "The burst limit capacity of the usage tier" (example 1). Read both from GET /usage/tier. applies: - Cvent REST API (/ea) — all hospitality operations source: openapi/_original/cvent-hospitality-cloud-rest-apis-openapi.json (components.schemas.UsagePlan) - name: SOAP API daily call quota scope: per-organization metric: calls window: 24h reset: midnight Eastern Time limit: 10000 applies: - Cvent SOAP Web Services API (V200611) introspection: DescribeGlobal returns the account's current API call count and limit source: https://developers.cvent.com/docs/legacy-api/soap-api/framework introspection: - operation: getUsage call: GET /usage description: API call usage for the last seven days, or a date range within the past seven days, for the caller's account. - operation: getUsageTier call: GET /usage/tier description: The caller's current usage tier — name, daily quota, burst limit and per-second rate limit. policies: - name: Every request counts description: >- "Every request, even those that return a 429 error, still counts against your quota." Retrying into a quota wall makes the wall worse. source: https://developers.cvent.com/docs/rest-api/guides/handling-rate-limits - name: Daily quota exhaustion description: >- On a daily-quota 429, stop making requests and wait until after midnight UTC. Backoff will not clear it. - name: Per-second backoff description: >- For per-second limits, wait 2 seconds plus a random 1-1000 ms, then double the wait on each retry up to a 16 second ceiling. After five failed attempts, stop and log the error for review. - name: Header monitoring description: >- Check X-RateLimit-Limit / X-RateLimit-Remaining / X-RateLimit-Reset on every response to see consumption before hitting a limit; poll GET /usage to track quota over time and set usage alerts. - name: Scope-count header limit description: >- Separate from rate limiting but the same class of failure — a token carrying roughly 50 or more scopes returns HTTP 431. Generate runtime tokens with only the scopes needed. source: https://developers.cvent.com/docs/rest-api/explanation/concepts maintainers: - FN: Kin Lane email: kin@apievangelist.com