BiGGr Data Access

Bulk (programmatic) data access is crucial for developing new tools on top of the BiGGr platform. We have therefore aimed to make it as easy as possible to access all data in BiGGr through APIs.

Overview

Data access is integrated throughout BiGGr, wherever possible. Models can for example be directly downloaded from their respective pages. Bulk metabolite and reaction downloads are available below. In addition, an extensive API is available, including a small python library that facilitates accessing this API.

Downloads

The full sets of reactions and metabolites can be downloaded as JSON file using the links below:

The returned JSON files contain a list of all applicable entities. In the case of metabolites, information on each Component in the database is returned, in conjunction with select properties of the corresponding Universal Component, as recognized by the prefix 'universalcomponent__'. An example entry for ATP is shown below:

[...,
  {
    "bigg_id": "atp:-4",
    "name": "ATP(4-)",
    "formula": "C10H12N5O13P3",
    "charge": -4,
    "universalcomponent__bigg_id": "atp",
    "universalcomponent__name": "ATP(4-)",
    "universalcomponent__default_component": "atp:-4",
    "universalcomponent__old_bigg_ids": [],
    "compartmentalized_components": [
      "atp_c:-4", "atp_m:-4", "atp_x:-4", "atp_n:-4", "atp_v:-4",
      "atp_r:-4", "atp_e:-4", "atp_h:-4", "atp_g:-4","atp_f:-4"
    ],
    "references": [
        "CHEBI:30616"
    ]
  },
...]

For the reactions download, information on each Reaction in the database is returned, in conjunction with select properties of the corresponding Universal Reaction, as recognized by the prefix 'universalreaction__'. An example of a reaction entry is shown below:

[...,
  {
    "bigg_id": "ASNS2",
    "copy_number": 1,
    "participants": [
      [-1.0, "nh4_c:1"], [-1.0, "asp__L_c:-1"], [-1.0, "atp_c:-4"],
      [1.0, "asn__L_c:0"], [1.0, "ppi_c:-3"], [1.0, "amp_c:-2"], [1.0, "h_c:1"]
    ],
    "universalreaction__bigg_id": "ASNS2",
    "universalreaction__name": "asparagine synthetase",
    "universalreaction__participants": [
      [-1.0, "nh4_c"], [-1.0, "asp__L_c"], [-1.0, "atp_c"],
      [1.0, "asn__L_c"], [1.0, "ppi_c"], [1.0, "amp_c"], [1.0, "h_c"]
    ],
    "universalreaction__is_exchange": false,
    "universalreaction__is_pseudo": false,
    "universalreaction__is_transport": false,
    "referencereaction__bigg_id": "RHEA:11372"
  },
...]

Object Access

The first set of API calls discussed here enables users to directly access the entities as they are represented in the database. This is a more low-level method of retrieving the data and may require more data processing comparedt to the table-based API calls discussed below. To facilitate usage of this API, BiGGr provides a small python library that provides abstractions for the API.

biggr
Repository containing a small python library that can be used to easily access the BiGGr API.

Workflow

Database objects can be accessed through the endpoint biggr.org/api/v3/objects. Requests are expected to be POST requests with a JSON body, specifying the object query. For example, to retrieve information on the model with BiGG ID iML1515, the request body should be:

{
  "type": "model",
  "id": "iML1515"
}

The following curl commmand makes this request:

curl --header "Content-Type: application/json" \
  --request POST \
  --data '{"type":"model","id":"iML1515"}' \
  https://biggr.org/api/v3/objects
{
  "id": "iML1515",
  "object": {
    "_type": "Model",
    "bigg_id": "iML1515",
    "organism": "Escherichia coli str. K-12 substr. MG1655",
    "collection_id": 4,
    "genome_id": 1,
    "taxon_id": 511145,
    "date_modified": {"_type": "datetime", "iso": "2025-12-08T00:27:14.369421+00:00"},
    "id": 4,
    "published_filename": "iML1515.json",
    "base_filename": "iML1515",
    "publication_models": [{"_type": "PublicationModel", "publication_id": 4, "model_id": 4}],
    "model_count": {
      "_type": "ModelCount",
      "id": 4,
      "reaction_count": 2712,
      "metabolite_count": 1877,
      "gene_count": 1516,
      "model_id": 4
    },
    "collection": {
      "_type": "ModelCollection",
      "id": 4,
      "oneliner": null,
      "publication_id": null,
      "description": null,
      "taxon_id": 511145,
      "bigg_id": "iML1515"
    },
    "genome": {
      "_type": "Genome",
      "id": 1,
      "accession_type": "ncbi_assembly",
      "accession_value": "GCF_000005845.2",
      "taxon_id": 511145,
      "organism": "Escherichia coli str. K-12 substr. MG1655",
      "strain": "K-12",
      "ncbi_assembly_id": null
    }
  }
}

It can be seen that some dependent entities (Model Collection, Genome, Publication Models and Model Count) are returned for convenience. All entities can be retrieved using their BiGG ID (string; if applicable) or internal ID (int, "id" fields). More information about the taxon of iML1515 could thus be retrieved using the following command:

curl --header "Content-Type: application/json" \
  --request POST \
  --data '{"type":"taxon","id":511145}' \
  https://biggr.org/api/v3/objects
{
  "id": 511145,
  "object": {
    "_type": "Taxon",
    "parent_id": 83333,
    "name": "Escherichia coli str. K-12 substr. MG1655",
    "id": 511145,
    "rank_id": 1,
    "rank": {"_type": "TaxonomicRank", "id": 1, "name": "no rank"}
  }
}

The equivalent can be achieved using the following python code, utilizing the BiGGr python library:

from biggr import objects

model = objects.get("model", "iML1515")
print(dir(model))
[...,
  'base_filename', 'bigg_id', 'collection', 'collection_id',
  'date_modified', 'escher_maps', 'from_dict', 'genome',
  'genome_id', 'id', 'memote_results', 'model_compartmentalized_components',
  'model_count', 'model_genes', 'model_reactions', 'organism',
  'publication_models', 'published_filename', 'taxon', 'taxon_id'
]

When accessing the taxon attribute, a new request is automatically sent to the server to retreive the corresponding object. This type of lazy-loading enables easy navigation of the database entities.

print(model.taxon.name)
Escherichia coli str. K-12 substr. MG1655

More complex one-to-many relationships can also be loaded lazily using the python library:

print(model.model_reactions[0].reaction.universal_reaction.name)
1,2 diacylglycerol transport via flipping (periplasm to cytoplasm, n-C12:0)

The corresponding curl command to retrieve all Model Reaction entries is:

curl --header "Content-Type: application/json" \
  --request POST \
  --data '{"type":"model.model_reactions","id":4}' \
  https://biggr.org/api/v3/objects

Note that for relationship attributes like above, it is required that a internal ID (integer) is provided, not a BiGG ID. If the internal ID is not known, one should first laod the parent object to retrieve the internal ID.

Available Objects

The following entities are available through this API (names are case-insensitive and may be separated by an underscore, e.g. 'universal_component' is equivalent to 'UNIVERSALCOMPONENT'):

  • MODEL
  • COMPONENT
  • COMPARTMENTALIZEDCOMPONENT
  • MODELCOMPARTMENTALIZEDCOMPONENT
  • UNIVERSALCOMPONENT
  • REACTION
  • UNIVERSALREACTION
  • REFERENCEREACTION
  • REFERENCECOMPOUND
  • REFERENCEREACTIVEPART
  • GENOME
  • CHROMOSOME
  • COMPARTMENT
  • PUBLICATION
  • INCHI
  • MEMOTETEST
  • MEMOTERESULT
  • ANNOTATION
  • TAXON

  • INCHI.REFERENCECOMPOUNDS
  • INCHI.REFERENCEREACTIVEPARTS
  • TAXONOMICRANK.TAXONS
  • TAXON.PARENT
  • TAXON.CHILDREN
  • TAXON.RANK
  • TAXON.GENOMES
  • TAXON.MODELS
  • TAXON.COLLECTIONS
  • MODELCOLLECTION.PUBLICATION
  • MODELCOLLECTION.TAXON
  • MODELCOLLECTION.MODELS
  • MODELCOLLECTION.COLLECTIONNAMESPACECOMPONENTS
  • MODELCOLLECTION.COLLECTIONNAMESPACEUNIVERSALCOMPONENTS
  • MODELCOLLECTION.COLLECTIONNAMESPACEUNIVERSALREACTIONS
  • MODELCOLLECTION.COLLECTIONNAMESPACEREACTIONS
  • GENOME.TAXON
  • GENOME.CHROMOSOMES
  • GENOME.MODELS
  • CHROMOSOME.GENOME
  • CHROMOSOME.GENOMEREGIONS
  • GENOMEREGION.CHROMOSOME
  • REFERENCECOMPOUND.INCHI
  • REFERENCECOMPOUND.REACTIVEPARTMATRIX
  • REFERENCECOMPOUND.REACTIONPARTICIPANTS
  • REFERENCECOMPOUND.REFERENCEMAPPINGS
  • REFERENCECOMPOUND.ANNOTATIONMAPPINGS
  • UNIVERSALCOMPONENT.DEFAULTCOMPONENT
  • UNIVERSALCOMPONENT.COMPONENTS
  • UNIVERSALCOMPONENT.REFERENCEMAPPING
  • UNIVERSALCOMPONENT.COLLECTION
  • UNIVERSALCOMPONENT.UNIVERSALCOMPARTMENTALIZEDCOMPONENTS
  • UNIVERSALCOMPONENT.OLDBIGGIDS
  • UNIVERSALCOMPONENT.REFERENCEMAPPINGS
  • COMPONENT.UNIVERSALCOMPONENT
  • COMPONENT.COLLECTION
  • COMPONENT.COMPARTMENTALIZEDCOMPONENTS
  • COMPONENT.REFERENCEMAPPINGS
  • COMPONENT.ANNOTATIONMAPPINGS
  • COMPONENT.ALLANNOTATIONS
  • COMPONENTREFERENCEMAPPING.COMPONENT
  • COMPONENTREFERENCEMAPPING.UNIVERSALCOMPONENT
  • COMPONENTREFERENCEMAPPING.REFERENCECOMPOUND
  • COMPONENTREFERENCEMAPPING.UNIVERSALCOMPONENTREFERENCEMAPPING
  • UNIVERSALCOMPONENTREFERENCEMAPPING.UNIVERSALCOMPONENT
  • UNIVERSALCOMPONENTREFERENCEMAPPING.MAPPING
  • DATASOURCE.SYNONYMS
  • DATASOURCE.ANNOTATIONS
  • DATASOURCE.ANNOTATIONLINKS
  • ANNOTATION.DEFAULTDATASOURCE
  • ANNOTATION.PROPERTIES
  • ANNOTATION.LINKS
  • ANNOTATION.COMPONENTMAPPINGS
  • ANNOTATION.REACTIONMAPPINGS
  • ANNOTATION.REFERENCECOMPOUNDMAPPINGS
  • ANNOTATION.REFERENCEREACTIONMAPPINGS
  • ANNOTATIONPROPERTY.ANNOTATION
  • ANNOTATIONLINK.DATASOURCE
  • ANNOTATIONLINK.ANNOTATION
  • COMPONENTANNOTATIONMAPPING.COMPONENT
  • COMPONENTANNOTATIONMAPPING.ANNOTATION
  • REACTIONANNOTATIONMAPPING.REACTION
  • REACTIONANNOTATIONMAPPING.ANNOTATION
  • REFERENCECOMPOUNDANNOTATIONMAPPING.REFERENCECOMPOUND
  • REFERENCECOMPOUNDANNOTATIONMAPPING.ANNOTATION
  • REFERENCEREACTIONANNOTATIONMAPPING.REFERENCEREACTION
  • REFERENCEREACTIONANNOTATIONMAPPING.ANNOTATION
  • SYNONYM.DATASOURCE
  • PUBLICATION.PUBLICATIONMODELS
  • PUBLICATION.COLLECTIONS
  • PUBLICATIONMODEL.MODEL
  • PUBLICATIONMODEL.PUBLICATION
  • GENOMEREGIONMAP.GENOMEREGION1
  • GENOMEREGIONMAP.GENOMEREGION2
  • MODEL.COLLECTION
  • MODEL.GENOME
  • MODEL.TAXON
  • MODEL.MODELGENES
  • MODEL.MODELREACTIONS
  • MODEL.MODELCOMPARTMENTALIZEDCOMPONENTS
  • MODEL.MODELCOUNT
  • MODEL.PUBLICATIONMODELS
  • MODEL.ESCHERMAPS
  • MODEL.MEMOTERESULTS
  • MODELGENE.MODEL
  • MODELGENE.GENE
  • MODELGENE.REACTIONMATRIX
  • MODELGENE.MEMOTERESULTS
  • MODELREACTION.REACTION
  • MODELREACTION.MODEL
  • MODELREACTION.REACTIONMATRIX
  • MODELREACTION.MEMOTERESULTS
  • MODELREACTION.ESCHERMAPPINGS
  • GENEREACTIONMATRIX.MODELGENE
  • GENEREACTIONMATRIX.MODELREACTION
  • UNIVERSALCOMPARTMENTALIZEDCOMPONENT.UNIVERSALCOMPONENT
  • UNIVERSALCOMPARTMENTALIZEDCOMPONENT.COMPARTMENT
  • UNIVERSALCOMPARTMENTALIZEDCOMPONENT.COMPARTMENTALIZEDCOMPONENTS
  • UNIVERSALCOMPARTMENTALIZEDCOMPONENT.MATRIX
  • COMPARTMENTALIZEDCOMPONENT.COMPONENT
  • COMPARTMENTALIZEDCOMPONENT.COMPARTMENT
  • COMPARTMENTALIZEDCOMPONENT.UNIVERSALCOMPARTMENTALIZEDCOMPONENT
  • COMPARTMENTALIZEDCOMPONENT.MODELCOMPARTMENTALIZEDCOMPONENTS
  • COMPARTMENTALIZEDCOMPONENT.MATRIX
  • MODELCOMPARTMENTALIZEDCOMPONENT.MODEL
  • MODELCOMPARTMENTALIZEDCOMPONENT.COMPARTMENTALIZEDCOMPONENT
  • MODELCOMPARTMENTALIZEDCOMPONENT.MEMOTERESULTS
  • COMPARTMENT.UNIVERSALCOMPARTMENTALIZEDCOMPONENTS
  • COMPARTMENT.COMPARTMENTALIZEDCOMPONENTS
  • ESCHERMAP.MODEL
  • ESCHERMAP.MATRIX
  • ESCHERMAPMATRIX.ESCHERMAP
  • MODELCOUNT.MODEL
  • REFERENCEREACTIVEPART.INCHI
  • REFERENCEREACTIVEPART.MATRIX
  • REFERENCEREACTIVEPARTMATRIX.COMPOUND
  • REFERENCEREACTIVEPARTMATRIX.REACTIVEPART
  • REFERENCEREACTION.REACTIONPARTICIPANTS
  • REFERENCEREACTION.UNIVERSALREACTIONS
  • REFERENCEREACTION.ANNOTATIONMAPPINGS
  • REFERENCEREACTIONPARTICIPANT.REACTION
  • REFERENCEREACTIONPARTICIPANT.COMPOUND
  • REFERENCEREACTIONPARTICIPANT.UNIVERSALREACTIONMATRIX
  • UNIVERSALREACTION.COLLECTION
  • UNIVERSALREACTION.REFERENCE
  • UNIVERSALREACTION.REACTIONS
  • UNIVERSALREACTION.MATRIX
  • REACTION.COLLECTION
  • REACTION.UNIVERSALREACTION
  • REACTION.MATRIX
  • REACTION.MODELREACTIONS
  • REACTION.ANNOTATIONMAPPINGS
  • REACTION.ALLANNOTATIONS
  • UNIVERSALREACTIONMATRIX.UNIVERSALREACTION
  • UNIVERSALREACTIONMATRIX.REFERENCEREACTIONPARTICIPANT
  • UNIVERSALREACTIONMATRIX.UNIVERSALCOMPARTMENTALIZEDCOMPONENT
  • UNIVERSALREACTIONMATRIX.REACTIONMATRICES
  • REACTIONMATRIX.REACTION
  • REACTIONMATRIX.UNIVERSALREACTIONMATRIX
  • REACTIONMATRIX.COMPARTMENTALIZEDCOMPONENT
  • COMPONENTIDMAPPING.NEWUNIVERSALCOMPONENT
  • MEMOTETEST.RESULTS
  • MEMOTERESULT.MODEL
  • MEMOTERESULT.TEST
  • MEMOTERESULT.MODELREACTION
  • MEMOTERESULT.MODELCOMPARTMENTALIZEDCOMPONENT
  • MEMOTERESULT.MODELGENE
  • ESCHERMODULE.MODELREACTIONMAPPINGS
  • MODELREACTIONESCHERMAPPING.MODELREACTION
  • MODELREACTIONESCHERMAPPING.ESCHERMODULE

Table Access

A different API access method allows users to download the contents of any dynamic table presented on the BiGGr website.

Workflow

The data of all tables that dynamically list database entities (i.e. they are sortable and searchable) can be accessed programmatically through API endpoints. Generally, the endpoint URL can be obtained by inserting /api/v3 into the URL after the domain name. The data of the table of all models at biggr.org/models can be accessed at biggr.org/api/v3/models .

curl https://biggr.org/api/v3/models
{
  "recordsTotal": 192,
  "recordsFiltered": 192,
  "data": [
    {
      "model__bigg_id": "iJO1366",
      "model__organism": "Escherichia coli str. K-12 substr. MG1655",
      "modelcollection__bigg_id": "iJO1366",
      "modelcount__metabolite_count": 1805,
      "modelcount__reaction_count": 2583,
      "modelcount__gene_count": 1367
    },
    ...
  ]
}

This API follows the datatables.js server-side processing protocol . This means that you can filter the data on any column, do a global search, and sort the data. The number of results can for example be limited using the following POST request.

curl --request POST \
  --data 'length=5' \
  https://biggr.org/api/v3/models

Available Tables

The following table endpoints are available via this type of API calls:

  • https://biggr.org/api/v3/compartments
  • https://biggr.org/api/v3/genomes
  • https://biggr.org/api/v3/models
  • https://biggr.org/api/v3/collections
  • https://biggr.org/api/v3/collections/[collection_bigg_id]
  • https://biggr.org/api/v3/universal/reactions
  • https://biggr.org/api/v3/universal/metabolites
  • https://biggr.org/api/v3/universal/metabolite_in_models/[model_bigg_id]
  • https://biggr.org/api/v3/compartments/[compartment_bigg_id]/models
  • https://biggr.org/api/v3/models/[model_bigg_id]/reactions
  • https://biggr.org/api/v3/models/[model_bigg_id]/genes
  • https://biggr.org/api/v3/models/[model_bigg_id]/metabolites
  • https://biggr.org/api/v3/models/[model_bigg_id]/metabolite_in_reactions/[metabolite_bigg_id]
  • https://biggr.org/api/v3/search/metabolites/[query]
  • https://biggr.org/api/v3/search/metabolites_ref/[query]
  • https://biggr.org/api/v3/search/metabolites_ann/[query]
  • https://biggr.org/api/v3/search/metabolites_inchikey/[query]
  • https://biggr.org/api/v3/search/reactions/[query]
  • https://biggr.org/api/v3/search/reactions_ref/[query]
  • https://biggr.org/api/v3/search/reactions_ann/[query]
  • https://biggr.org/api/v3/search/reactions_ec/[query]
  • https://biggr.org/api/v3/search/models/[query]
  • https://biggr.org/api/v3/search/genomes/[query]

Escher Maps

Editable Escher maps are available through the url pattern https://biggr.org/models/[model_bigg_id]/escher/[map_bigg_id], where [map_bigg_id] can be one of the following available maps. Note that not all maps are available for all models, since we set thresholds on the completeness of the map for each model.

  • ubiquinone
  • menaquinone
  • 2demethylmenaquinone
  • ecoli_central_metabolism
  • nucleotide_histidine_biosynthesis
  • arginine_biosynthesis
  • aspartate_asparagine_biosynthesis
  • cysteine_biosynthesis

Analogous to the API for the data tables, the raw JSON map data can be retrieved by inserting /api/v3, as illustrated below:

curl https://biggr.org/api/v3/models/iML1515/escher/ubiquinone
[
  {
    "map_name": "Ubiquinone Reduction/Oxidation",
    "map_description": "Auto-generated map of all reactions involved in the reversible redox cycle of ubiquinone-8.",
    "homepage": "https://escher.github.io",
    "schema": "https://escher.github.io/escher/jsonschema/1-0-0#"
  }, 
  ...
]