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: G2 providerId: g2 created: '2026-05-04' modified: '2026-08-29' generated: '2026-08-29' method: searched source: >- info.description of https://data.g2.com/openapi/v2.yaml and https://documentation.g2.com/docs/g2-mcp-server description: >- G2 publishes exactly one rate limit and it is enforced at the Cloudflare edge, not per API key. This file replaces a 2026-05-04 scaffold that invented free/professional/enterprise tiers G2 does not publish. note: >- PREVIOUS VERSION WAS A SCAFFOLD. The per-tier quotas previously recorded here (10 rpm free, 100 rpm professional, 1000 rpm enterprise, monthly quotas) were bulk-sweep defaults, not provider-published values, and have been removed. G2 documents one global limit. headers: note: >- G2 declares NO rate-limit response headers. Neither OpenAPI document defines a headers block on any response, and no X-RateLimit-*, RateLimit-* or Retry-After header appears anywhere in either spec. An agent gets no runtime budget signal and can only infer exhaustion from the edge block itself. limit: null remaining: null reset: null retryAfter: null policy: null responseCodes: note: >- No 429 is declared in either OpenAPI document because throttling happens at the Cloudflare edge above the application. The documented behavior on exhaustion is a 60-second block. throttled: null limits: - name: Global API rate limit scope: source-ip metric: requests_per_second limit: 100 timeFrame: second enforced_by: Cloudflare applies: - G2 API - G2 Data Solutions API - G2 MCP Server source: https://data.g2.com/openapi/v2.yaml quote: >- Cloudflare limits requests to the G2 API to 100 requests per second per source IP address. - name: Block on exhaustion scope: source-ip metric: block_duration_seconds limit: 60 timeFrame: second applies: - G2 API - G2 MCP Server source: https://documentation.g2.com/docs/g2-mcp-server quote: >- The G2 API has a global rate limit of 100 requests per second. If this limit is exceeded, access is blocked for 60 seconds before requests can resume. pagination_ceilings: - name: Page size ceiling metric: records_per_page limit: 250 default: 25 source: openapi/g2-api-v2-openapi.yaml (page[size] parameter schema) - name: G2 Activate unlock batch cap metric: sigs_per_request limit: 25 source: openapi/g2-api-v2-openapi.yaml (postG2ActivateUnlockedCompanies) limit_count: 2 policies: - name: Shared budget across surfaces description: >- The MCP server calls the underlying G2 API and is subject to the same limit, so an agent session and a batch job on the same egress IP share one 100 rps budget. - name: Per-IP, not per-key description: >- Because the limit is keyed on source IP rather than API key, tenants behind a shared NAT or a single cloud egress address contend with each other. maintainers: - FN: Kin Lane email: kin@apievangelist.com