Catalog summary
RELEASED: 2026-08-02
GENOME ASSEMBLY GRCh38.p14
dbSNP BUILD 156
PUBLICATIONS 7,784
TOP ASSOCIATIONS 1,188,619
FULL SUMMARY STATISTICS 193,739
Search For:
Blog Categories
Version 2 of the GWAS Catalog REST API: what’s changed from v1?
The GWAS Catalog REST API v2 is now available, providing a redesigned way to access curated GWAS Catalog data programmatically.
The API has been redesigned based on user feedback. It provides simpler querying, additional endpoints, richer filtering, ontology-aware searches and access to more Catalog data.
If you currently use the v1 API in scripts, pipelines or applications, this post explains the main differences and what you should review when migrating.
Use v2. The v1 examples below are included only to help existing users find code that needs replacing.
Why a new API?
The GWAS Catalog has grown considerably since the original REST API was developed. V1 provides access to studies, associations, variants and traits, but its design increasingly made complex queries difficult.
findByPubmedId, findByRsId and findByEfoTrait. Searching SNPs includes an endpoint called findIdsByLocationsChromosomeNameAndLocationsChromosomePositionBetween.V2 takes a different approach. Resources can be queried directly using filters, and additional entities such as publications, genes and ancestries have their own endpoints. The redesign is intended to provide a more robust and scalable API while making complex queries easier to construct.
The API remains focused on the Catalog’s literature-curated top associations and associated metadata. A separate redevelopment is underway for API access to the full genome-wide summary-statistics collection.
At a glance: legacy v1 compared with recommended v2
The v1 column is included only to help existing users find and replace legacy code. For new scripts, pipelines and applications, use v2.
| Area | ✕ Legacy REST API v1 — replace this | ✓ Recommended REST API v2 |
|---|---|---|
| Base path | /gwas/rest/api/... | /gwas/rest/api/v2/... |
| Query model | Separate /search/findBy... endpoints | Filters applied directly to resource endpoints |
| Query parameter naming | Search parameters commonly use camelCase, such as pubmedId | Query parameters use snake_case, such as pubmed_id |
| Response design | HAL/hypermedia with _links and _embedded | Redesigned v2 resource responses |
| Studies and associations | /studies and /associations | /v2/studies and /v2/associations, with richer filtering |
| Variants | /singleNucleotidePolymorphisms | Redesigned single-nucleotide-polymorphism resource |
| Publications and genes | Primarily represented through studies and SNP mappings | Dedicated /v2/publications and /v2/genes resources |
| Ancestries | Embedded within studies | Dedicated ancestry resources and study ancestry endpoints |
| Trait searches | Basic EFO trait lookup/search | Child-trait-aware ontology searches |
| Gene searches | Broader v1 gene annotation behaviour | Standard or extended gene sets |
| Pagination and usage | Default 20 records; page and size | Default 20 records, next links and a documented 15-query-per-second limit |
One of the most significant changes is how queries are constructed.
Conceptually, a v1 query might look like this:
/gwas/rest/api/associations/search/findByRsId?rsId=rs123
In v2, search criteria are supplied as filters on the resource:
/gwas/rest/api/v2/associations?rs_id=rs123
The same principle applies across the API. Instead of learning which findBy... endpoint corresponds to a particular query, users can start with the resource they want and filter it. This also makes the API better suited to more complex queries involving multiple criteria.
More ways to filter studies
V1 already provides several ways to find studies, including by PubMed ID, Catalog accession, disease trait, EFO trait and availability of full p-value data. V2 expands the available filtering substantially.
Study searches can include information such as:
pubmed_iddisease_traitefo_traitefo_idaccession_idcohortancestral_groupmapped_gene
V2 also provides additional study properties, pagination and sorting. Questions that previously required several requests, additional processing or another Catalog data source can increasingly be expressed directly as API queries.
The v2 release also exposes additional data including cohorts, background traits and fuller free-text sample descriptions.
More first-class resources
V1 is centred primarily around four major resources: studies, associations, SNPs and EFO traits.
For example, publication information and ancestry information are contained within the study representation. A v1 study includes publication metadata alongside an array of ancestry records.
V2 exposes more concepts as resources in their own right. These include publications, genes and ancestries, alongside studies, associations, variants and EFO traits.
For example:
/gwas/rest/api/v2/publications
/gwas/rest/api/v2/genes
/gwas/rest/api/v2/studies/{accession_id}/ancestries
This makes it easier to start a query from the entity relevant to your analysis rather than retrieving another resource simply because the information happens to be embedded within it.
Better ontology-aware trait searches
GWAS Catalog traits are mapped to ontology terms, allowing related phenotypes to be represented consistently. V2 can use that ontology hierarchy when performing searches.
When querying by an EFO trait, users can choose between retrieving records annotated directly with the requested trait or also retrieving records annotated with more specific child traits. For example, a query for asthma can either return only records mapped directly to asthma, or additionally include more specific concepts such as status asthmaticus.
This behaviour is controlled using the child-trait search option:
show_child_traits=false
This returns direct annotations only. To include descendant traits, use:
show_child_traits=true
For precise queries, using an ontology identifier such as MONDO_0004979 rather than a text trait name is recommended.
An important change to gene searches
Users migrating gene-based queries should pay particular attention to the definition of the gene set.
V2 provides two definitions of the gene set associated with Catalog variants.
With extended_geneset=false, the API uses genes to which the variant maps, together with the nearest upstream and downstream genes according to Ensembl annotation. This corresponds to the annotation displayed by the current GWAS Catalog web interface.
For example:
https://www.ebi.ac.uk/gwas/rest/api/v2/associations?mapped_gene=HBB&page=0&size=20
With extended_geneset=true, the API uses the broader set of Ensembl and RefSeq genes mapping upstream and downstream of each variant:
https://www.ebi.ac.uk/gwas/rest/api/v2/associations?mapped_gene=HBB&extended_geneset=true&page=0&size=20
The extended gene set corresponds to the annotation used by the v1 API. V2 defaults to the first option to avoid confusing discrepancies with search-page results unless the broader set is intentionally requested.
Therefore, simply recreating a v1 gene query in v2 may not produce the same results. If reproducing v1 gene-query behaviour is important to your analysis, use extended_geneset=true when supported by the endpoint.
Changes to variants
The naming of the SNP resource has also been modernised.
V1 uses /singleNucleotidePolymorphisms and identifies individual SNPs using an rsID. The SNP representation includes genomic locations, functional class and genomic contexts, with links to associated studies and associations.
V2 retains variant and rsID-based querying, but uses the redesigned v2 resource structure and supports filters including rsID, genomic location, PubMed ID, chromosome and mapped gene.
Update both the endpoint URLs and any code that depends on the structure of v1 SNP responses.
Changes to response handling and projections
V1 is explicitly a hypermedia API using HAL. Responses contain _links, and the v1 documentation advises users to follow these links instead of constructing URLs themselves. Collections additionally place records under _embedded.
V1 also makes extensive use of projections, including convenience representations such as associationByStudy, associationBySnp and associationByEfoTrait.
V2 instead provides explicitly documented resources, filters and response schemas through its OpenAPI reference. For applications built around v1, migration involves more than changing request URLs. Code that parses v1 HAL responses or depends on projections should also be reviewed.
Pagination and API usage
Both versions paginate large result sets. V1 returns 20 records by default and documents page and size, with up to 500 records in a single request.
V2 also defaults to 20 records per page. Applications retrieving complete result sets should follow the next links returned by the API rather than assuming that the first response contains every result.
V2 additionally has a rate limit of 15 queries per second. When this is exceeded, subsequent calls are slowed. Pipelines making many requests should account for both pagination and throttling.
More Catalog data through the API
The redesign is not purely technical. V2 exposes data that was previously unavailable through the API or required users to obtain it through the GWAS Catalog website and downloads.
This includes:
Discovery-stage cohort information.
Traits used to describe the study context.
More complete descriptions of study samples.
Information to help users understand reuse.
Additional annotations from resources such as Ensembl.
New endpoints for publications, genes, genomic contexts and ancestries also allow previously complicated queries to be performed more directly. The result is an API that more closely represents the breadth of information now available within the Catalog.
What do I need to change?
Before you switch over, check these nine things:
If you maintain a pipeline or application using v1, migration should be treated as a small API upgrade project, not just a URL substitution.
In particular, check the following:
- Endpoint URLs: move requests from
/gwas/rest/api/...to the appropriate/gwas/rest/api/v2/...resource. - Search calls: replace
/search/findBy...endpoints with v2 query parameters. - Parameter names: many v2 parameters use names such as
pubmed_id,accession_id,efo_traitandmapped_gene. - Response parsing: do not assume v1 HAL
_embedded,_linksor projection structures will be present in the same form. - Gene searches: consider
extended_geneset=trueif you need behaviour equivalent to v1. - Trait searches: decide whether descendant ontology traits should be included.
- Pagination: ensure your application follows paginated results.
- Request rates: keep the documented 15-query-per-second limit in mind.
- Data model: consider whether new resources such as publications, genes or ancestries provide a simpler way to perform queries that previously started from studies or SNPs.
GWAS Catalog REST API v2 documentation
Read the GWAS Catalog API documentation for the interactive reference, endpoints, schemas, parameters and syntax.


