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: Google BigQuery providerId: google-bigquery created: '2026-05-04' # Provenance stamped 2026-08-11: this artifact was written by the API Evangelist # bulk sweep dated 2026-05-04, not harvested from the provider. See roadmap#35. method: generated modified: '2026-05-05' reconciled: true tags: - Data Warehouse - Analytics - Google Cloud - SQL - Rate Limiting description: BigQuery enforces a layered set of quotas - per-project concurrent query/job counts, per-user/project query rate limits, table operation ceilings, streaming insert and Storage Write API throughput, and daily caps on certain destructive operations. Most quotas can be raised via Cloud Console quota requests for production workloads. The numbers below are the public defaults from the BigQuery quotas reference; always check the live page for the most current value for your region. sources: - https://cloud.google.com/bigquery/quotas - https://docs.cloud.google.com/bigquery/quotas responseCodes: throttled: 429 quotaExceeded: 403 serverError: 500 limits: - name: Concurrent interactive queries scope: project metric: concurrent_requests limit: 100 notes: On-demand interactive queries; reservation slots have separate concurrency. - name: Concurrent legacy SQL queries scope: project metric: concurrent_requests limit: 100 - name: Daily query usage scope: project metric: TB_per_day limit: see quotas page notes: Configurable custom cost control on bytes billed per day. - name: API requests per user scope: user/project metric: requests_per_second limit: 100 timeFrame: second - name: Load jobs per table per day scope: table metric: jobs_per_day limit: 1500 timeFrame: day - name: Load jobs per project per day scope: project metric: jobs_per_day limit: 100000 timeFrame: day - name: Copy jobs per table per day scope: table metric: jobs_per_day limit: 100 timeFrame: day - name: Copy jobs per project per day scope: project metric: jobs_per_day limit: 100000 timeFrame: day - name: Export jobs per project per day scope: project metric: jobs_per_day limit: 100000 timeFrame: day - name: Streaming insert rows per second per project (US/EU multi-region) scope: project metric: rows_per_second limit: see quotas page timeFrame: second - name: Storage Write API throughput per project (US/EU) scope: project metric: bytes_per_second limit: 3000000000 timeFrame: second notes: 3 GB/s default in US/EU multi-region; can be raised. - name: Storage Read API simultaneous streams scope: project metric: streams limit: see quotas page - name: Maximum row size (DML/streaming) scope: row metric: bytes limit: 104857600 notes: 100 MB. - name: Maximum table column count scope: table metric: columns limit: 10000 - name: Table operations per table per day (DML) scope: table metric: operations_per_day limit: 1500 timeFrame: day policies: - name: Quota raises description: Most quotas are soft and can be raised via the Google Cloud Console quotas page. Plan a 1-3 day lead time for review. - name: Backoff description: Implement exponential backoff with jitter on 429 / 403 quotaExceeded responses. Reservation-aware clients should respect slot capacity. - name: Reservation isolation description: When using capacity (Standard/Enterprise/Enterprise Plus) reservations, query concurrency is governed by allocated slots rather than the on-demand concurrent-query limit. - name: Streaming vs Storage Write description: Prefer the Storage Write API over the legacy streaming insert API for new work; it has higher throughput, lower cost, and supports exactly-once semantics. maintainers: - FN: Kin Lane email: kin@apievangelist.com