Ensembl · Rate Limits

Ensembl Rate Limits

The Ensembl REST API applies per-IP rate limiting of 55,000 requests per hour (approximately 15 requests per second). No authentication is required and no API key is needed. Rate limit state is communicated via X-RateLimit-* response headers. When the quota is exhausted the API returns HTTP 429 with a Retry-After header indicating the fractional number of seconds the client must wait before resuming. For high-volume use cases Ensembl recommends mirroring the database locally or using FTP bulk downloads.

Ensembl Rate Limits is the machine-readable rate-limit profile for Ensembl on the APIs.io network, in the API Commons Rate Limits shape.

It captures 2 rate-limit definitions, measuring requests.

Limit state is signalled in the X-RateLimit-Limit, X-RateLimit-Period, X-RateLimit-Remaining, and X-RateLimit-Reset response headers, and an exhausted limit returns HTTP 429.

This profile was written by API Evangelist and has not been verified against a page the provider published; treat every limit as unconfirmed until a dated transcription replaces it.

The profile also includes 4 backoff/retry policies defined and response codes documented for throttled, unauthorized, and serverError.

Tagged areas include Genomics, Bioinformatics, Genome Annotation, Life Sciences, and Rate Limiting.

2 Limits Exhausted: HTTP 429 X-RateLimit-LimitX-RateLimit-PeriodX-RateLimit-RemainingX-RateLimit-Reset
Method: generated, dated 2026-06-13.
Written by API Evangelist on 2026-06-13 and not verified against a page the provider published. Treat every limit as unconfirmed until a dated transcription replaces it.
View Source
GenomicsBioinformaticsGenome AnnotationLife SciencesRate Limiting

Limits

Requests Per Hour ip_address
requests · hour
55000
55,000 requests per rolling hour per source IP address. Applies to all REST API endpoints equally. Shared IP addresses (e.g. corporate NAT or cloud egress) share this quota across all users behind that IP.
Recommended Request Rate ip_address
requests · second
15
Ensembl recommends clients self-throttle to 15 requests per second to avoid exhausting the hourly quota and to be a good citizen on the shared public infrastructure.

Policies

Self-Throttle to 15 req/s
All example clients in the official Ensembl documentation self-throttle to 15 requests per second and honour the Retry-After header when encountered.
Backoff on 429
When a 429 response is received clients must stop querying and sleep for at least the number of seconds specified in the Retry-After header before resuming.
Shared IP Awareness
Users behind a shared NAT or corporate proxy share the 55,000 req/hr quota with all other users at that IP. Consider running a local Ensembl database mirror for high-throughput institutional use.
Bulk Data via FTP
For large-scale data retrieval (full genome sequences, complete gene sets, VCF files) use the Ensembl FTP service rather than the REST API to avoid rate limit constraints.

Sources

Work with this as data

Every rate limit here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for rate limits

4 MCP tools reach this
  • find_rate_limitsBrowse and filter every rate limit in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This rate limit
curl "https://apis.io/api/v1/rate-limits/ensembl-rate-limits"
All rate limits
curl "https://apis.io/api/v1/rate-limits?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.