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: DSG Sports Analytics providerId: dsg-sports-analytics created: '2026-05-04' modified: '2026-09-06' generated: '2026-09-06' method: searched source: https://dsg-api.com/doc/soccer/get_matches/1/ docs: https://dsg-api.com/doc/soccer/get_matches/1/ limit_count: 1 note: >- REPLACES a scaffold. Until 2026-09-06 this file carried invented per-tier limits (10/min free, 100/min professional, 1000/min enterprise) and a full set of X-RateLimit-* headers, none of which DSG publishes. DSG publishes exactly ONE limit, and it is account-wide rather than per-tier: an "API Threshold" block repeated verbatim on every operation documentation page. The scaffold values have been removed rather than kept alongside the real one. tags: - Sports Data - Rate Limiting - Quotas - Throttling description: >- Published rate limiting for the DSG Sports Data API, read from the "API Threshold" block DSG repeats on each of its 1,607 operation documentation pages. headers: limit: null remaining: null reset: null retryAfter: null policy: null note: >- No rate-limit response headers are documented. This is the operationally important finding: an agent calling this API cannot read its remaining budget from any response. It must count its own calls against the published ceiling and detect exhaustion from an in-band error message. responseCodes: throttled: 429 note: >- 429 "Too Many Requests" is listed in the introduction's error-code table. The operation pages additionally state that on exhaustion "you will get a xml/json message accordingly", i.e. an error document in the negotiated format. limits: - name: API Threshold scope: account metric: requests_per_hour limit: 10000 timeFrame: hour equivalent_rate: 2.78 calls per second burst: null applies: - DSG Sports Data API applies_to: >- ALL calls across the API - the threshold is not per endpoint, per sport or per tier. DSG's wording: "This threshold applies to ALL your calls you do across the API." reset: style: fixed-window boundary: top of each clock hour (:00) note: >- "Your number of calls get reset every hour at :00" - a fixed hourly window, not a sliding one. A client that exhausts the budget at :05 waits 55 minutes; there is no partial recovery. source: https://dsg-api.com/doc/soccer/get_matches/1/ verified_on: - https://dsg-api.com/doc/soccer/get_areas/3/ - https://dsg-api.com/doc/soccer/get_deleted/925/ - https://dsg-api.com/doc/soccer/get_news_rss/743/ tiering: published: false note: >- No per-plan rate limits are published. DSG differentiates accounts by ENTITLEMENT (which sports, competitions and feature parameters an account may call) rather than by a published rate ceiling - see plans/dsg-sports-analytics-plans-pricing.yml. Whether the 10,000/hour threshold is negotiable on a contract is not stated anywhere public. maintainers: - FN: Kin Lane email: kin@apievangelist.com