Interaction data in BioGRID can be accessed via the BioGRID REST service. Interactions in various formats can be fetched from the BioGRID REST Service over HTTPS, programmatically or in a browser, at https://webservice.thebiogrid.org/. You can access interactions using both POST and GET operations depending on your application requirements.
To access the BioGRID REST webservice, you will need a unique access key for your application. You can get one by filling out the simple form located here. This key must be included in all queries to the webservice in the form of accesskey=[ACCESSKEY].
For example code (written in Python) demonstrating basic usage of the REST Service, please visit our github repository.
A formal description of the REST service, in Web Application Description Language (WADL), can be found at https://webservice.thebiogrid.org/application.wadl.
Single interactions can be retrieved by appending this URL with a Biogrid Interaction ID (e.g. https://webservice.thebiogrid.org/interactions/103?accesskey=[ACCESSKEY]).
The URL https://webservice.thebiogrid.org/interactions/?accesskey=[ACCESSKEY] will retrieve the first 10,000 interactions in BioGRID, ordered by the BioGRID Interaction Id as found in .tab2 files. Results can be modified and filtered using the options in our REST list of parameters.
The URL https://webservice.thebiogrid.org/organisms/?accesskey=[ACCESSKEY] will retrieve the list of organism IDs and names supported by the REST taxId option. This call only supports the accessKey and format parameters (can be tab2 or json)(e.g. https://webservice.thebiogrid.org/organisms/?accesskey=[ACCESSKEY]&format=json).
The URL https://webservice.thebiogrid.org/identifiers/?accesskey=[ACCESSKEY] will retrieve the list of identifier type names supported by the REST additionalIdentifierTypes option. This call only supports the accessKey and format parameters (can be tab2 or json)(e.g. https://webservice.thebiogrid.org/identifiers/?accesskey=[ACCESSKEY]&format=json).
The URL https://webservice.thebiogrid.org/evidence/?accesskey=[ACCESSKEY] will retrieve the list of evidence names supported by the REST evidenceList option. This call only supports the accessKey and format parameters (can be tab2 or json)(e.g. https://webservice.thebiogrid.org/evidence/?accesskey=[ACCESSKEY]&format=json).
The BioGRID REST service is updated to the latest release of BioGRID on the 4th of each month and the BioGRID database version being accessed can be determined with the URL: https://webservice.thebiogrid.org/version?accesskey=[ACCESSKEY].
The results list returned can be filtered by appending ?parameter1=value1¶meter2=value2 etc. to the URL. A full description of possible parameters is given in the table below. You can also utilize our full list of example queries to give you an idea of how to get started.
Parameter | Type | Default | Valid Values | Description |
---|---|---|---|---|
accessKey | string | NONE | Only 32 character Alphanumeric strings | All rest access must supply a valid accessKey to prevent spamming of the service. Access Keys are free and openly available here. |
start | int | 0 | 0-2147483647 | Query results are numbered from 0. Results fetched will start at this value e.g. start = 50 will skip the the first 50 results. Ignored if using “count” in the format parameter. |
max | int | 10000 | 1-10000 | Number of results to fetch; this will be ignored if greater than 10,000, i.e. pagination using several requests is required to retrieve more than 10,000 interactions. Ignored if using “count” in the format parameter. |
interSpeciesExcluded | boolean | FALSE | true, false | If ‘true’, interactions with interactors from different species will be excluded. |
selfInteractionsExcluded | boolean | FALSE | true, false | If ‘true’, interactions with one interactor will be excluded. |
evidenceList | string | empty | Pipe-separated list of evidence codes from here | Any interaction evidence with its Experimental System in the list will be excluded from the results unless includeEvidence is set to true. |
includeEvidence | boolean | FALSE | true, false | If set to true, any interaction evidence with its Experimental System in the evidenceList will be included in the result |
geneList | string | empty | Pipe-separated list of gene names or identifiers. | Interactions between genes in this list will be fetched. This parameter is ignored if one of searchIds, searchNames, searchSynonyms is not ‘true’ and additionalIdentifierTypes is empty. |
searchIds | boolean | FALSE | true, false | If ‘true’, the interactor ENTREZ_GENE, ORDERED LOCUS and SYSTEMATIC_NAME (orf) will be examined for a match with the geneList . |
searchNames | boolean | FALSE | true, false | If ‘true’, the interactor OFFICIAL_SYMBOL will be examined for a match with the geneList. |
searchSynonyms | boolean | FALSE | true, false | If ‘true’, the interactor SYNONYM will be examined for a match with the geneList. |
searchBiogridIds | boolean | FALSE | true, false | If ‘true’, the entries in 'GENELIST' will be compared to BIOGRID internal IDS which are provided in all Tab2 formatted files. |
additionalIdentifierTypes | string | empty | Pipe-separated list of identifier types from here | Identifier types on this list are examined for a match with the geneList. Some identifier types search multiple types simultaneously. UNIPROT or UNIPROTKB will search SWISS-PROT/TREMBL/UNIPROT-ACCESSION/UNIPROT-ISOFORM. REFSEQ will search REFSEQ-RNA-GI, REFSEQ-RNA-ACCESSION, REFSEQ-PROTEIN-GI, REFSEQ-PROTEIN-ACCESSION-VERSIONED, REFSEQ-PROTEIN-ACCESSION, REFSEQ-LEGACY. WORMBASE will search WORMBASE and WORMBASE-OLD. ENSEMBL will search ENSEMBL, ENSEMBL GENE, ENSEMBL PROTEIN, ENSEMBL RNA. |
excludeGenes | boolean | FALSE | true, false | If ‘true’, interactions containing genes in the geneList will be excluded from the results. Ignored if one of searchIds, searchNames, searchSynonyms is not ‘true’ and additionalIdentifierTypes is empty. |
includeInteractors | boolean | TRUE | true, false | If ‘true’, in addition to interactions between genes on the geneList, interactions will also be fetched which have only one interactor on the geneList i.e. the geneList’s first order interactors will be included |
includeInteractorInteractions | boolean | FALSE | true, false | If ‘true’ interactions between the geneList’s first order interactors will be included. Ignored if includeInteractors is ‘false’ or if excludeGenes is set to ‘true’. |
pubmedList | string | empty string | Pipe-separated list of pubmed IDs | Interactions will be fetched whose Pubmed Id is/ is not in this list, depending on the value of excludePubmeds. |
excludePubmeds | boolean | FALSE | true, false | If ‘false’, interactions with Pubmed ID in pubmedList will be included in the results; if ‘true’ they will be excluded. |
htpThreshold | int | 2147483647 (maximum 32-bit integer) | 0-2147483647 | Interactions whose Pubmed ID has more than this number of interactions will be excluded from the results. Ignored if excludePubmeds is ‘false’. |
throughputTag | string | “any” | “any”,“low”,“high” | If set to 'low or 'high', only interactions with 'Low throughput' or 'High throughput' in the 'throughput' field will be returned. Interactions with both 'Low throughput' and 'High throughput' will be returned by either value. |
taxId | string | “All” | Pipe-separated list of NCBI taxonomy identifiers or “All”. Get full list of supported ids here | Only genes from these organisms will be searched with reference to gene identifiers or names. |
includeHeader | boolean | FALSE | true, false | If ‘true’, the first line of the result will be a BioGRID column header, appropriate for the format parameter (‘count’ format has no header). |
format | string | “tab2” | “tab1”,”tab2,”extendedTab2”,”count”, “json”, “jsonExtended” | ‘tab1’ and ‘tab2’ will return data in .tab or .tab2 format respectively. 'json' will return data in json a json formatted object. ‘extendedTab2’ and 'jsonExtended' will return data in .tab2 and json file formats respectively with extra fields for “Source Database Identifiers”, “Number of Interactions per Publication” and “Additional Identifiers”. For more information on file formats, visit our file format listing. |
translate | boolean | FALSE | true,false | If 'true', the rest service will show a small snippet above your results detailing how your input parameters were translated for use in returning your data. This is helpful in troubleshooting why you may or may not be getting back the results expected. For example, if you enter a typo for a field such as “searchNamez”, no result will be translated, and thus this parameter will be ignored. |
If you make a mistake in accessing the REST service, you will be redirected to a standardized HTML error page such as a 401 or 400 page, depending on the problem. In addition, all errors from the BioGRID REST service are accompanied by output in JSON format with the following structure.