SITE-100 Coleoptera Biodiversity Database
REST API · JSON & CSV · GenBank records

Data Access

Programmatic access to SITE-100 specimen records, mitogenome sequences, and phylogenetic metadata. All search endpoints are public; coordinate and restricted fields require approval.

Access level
What you can do
Restricted fields
Anonymous No token
Search specimens and sequences · Download CSV/ZIP · Access all public fields · GenBank sequences
Coordinates, plot ID, collection method, batch ID excluded from downloads
Approved Bearer token
Everything above · Full specimen fields including coordinates · Sequences without GenBank accession
All fields available · No restrictions

Base URL: https://site100db.vercel.app

Getting access

Most endpoints work without a token. To access coordinates and restricted fields, request an approved account.

STEP 1
Request approval
Email site100database@gmail.com with your name, institution, and a brief description of your intended use.
STEP 2
Sign in and get your token
Once approved, sign in at /auth. Your Supabase JWT is issued on login — copy it from the browser's local storage or the auth page.

Include the token in the Authorization header:

curl "https://site100db.vercel.app/api/specimens/search?taxon=Scarabaeidae" \ -H "Authorization: Bearer <your-token>"

Specimens

Search and download voucher specimen records. Anonymous users receive all public fields; approved users additionally receive coordinates and collection metadata.

GET /api/specimens/search Open
Filter specimens by taxonomy, country, locality, and collection properties. Returns up to 5,000 rows. Approved users receive 7 additional fields per row (latitude, longitude, plotid, precise_location, collection_method, batch_id, principal_id).
Also supports ID list mode: pass specimen_ids= (comma-separated) to match by specimen_id, image_id, morphospecies, or nhmuk_id.
curl "https://site100db.vercel.app/api/specimens/search?taxon=Scarabaeidae&country=Panama&has_mitogenome=true&limit=5"
{ "count": 5, "is_approved": false, "rows": [ { "specimen_id": "SO_BCI_0001", "taxon_rank": "species", "taxon_name": "Onthophagus acuminatus", "country": "Panama", "locality": "Barro Colorado Island", "collection_date": "2012/03/14", "mitogenome_ids": "BIOD02844", "has_images": true } ] }
POST /api/specimens/download Open
Download selected specimens as CSV. Pass a list of specimen IDs and the columns you want. Restricted columns (coordinates, batch_id, etc.) are silently dropped for non-approved users — no error is returned.
curl -X POST "https://site100db.vercel.app/api/specimens/download" \ -H "Authorization: Bearer <your-token>" \ -H "Content-Type: application/json" \ -d '{"specimen_ids":["SO_BCI_0001","SO_BCI_0002"], "columns":["latitude","longitude","nhmuk_id","collection_method"]}' \ --output specimens.csv
Available columns: latitude longitude plotid precise_location nhmuk_id collection_method batch_id principal_id
GET /api/specimens/download-all Open
Download all specimens matching filter criteria (no row limit). Same filter parameters as /api/specimens/search, plus a columns parameter. Same restricted-field rules apply.
curl "https://site100db.vercel.app/api/specimens/download-all?country=Panama&columns=latitude,longitude,nhmuk_id" \ -H "Authorization: Bearer <your-token>" \ --output specimens.csv

Sequences

Search and download curated mitogenome sequences in GenBank format. Sequences with a GenBank accession are publicly available; sequences without an accession require an approved account.

GET /api/sequences/search Open
Search the mitogenome index by taxonomy, country, locality, or source code. Only returns sequences that are physically indexed (i.e., downloadable). All metadata fields are visible to anonymous users — no token required to search. Supports both filter mode and ID list mode (mt_ids=).
Parameters: taxon · country · locality · source (e.g. BIOD) · genbank_accession · mt_ids (comma-separated) · limit (default 200, max 1000)
curl "https://site100db.vercel.app/api/sequences/search?taxon=Scolytinae&country=China&limit=10"
{ "count": 10, "rows": [ { "mt_id": "BIOD01234", "source_code": "BIOD", "taxon": "Xylosandrus germanus", "country": "China", "locality": "Qinling", "genbank_accession": "MZ123456", "collection_date": "2018-04-12" } ] }
POST /api/sequences/download Approved for non-GenBank
Download GenBank records and metadata as a ZIP file (max 500 sequences per request). Sequences with a GenBank accession are available without a token. Sequences without a GenBank accession require an approved account — if the entire requested set lacks accessions and no valid token is provided, the endpoint returns 403.
curl -X POST "https://site100db.vercel.app/api/sequences/download" \ -H "Authorization: Bearer <your-token>" \ -H "Content-Type: application/json" \ -d '{"mt_ids":["BIOD01234","BIOD01235","GBDL00088"]}' \ --output sequences.zip
ZIP contains: sequences.gb (GenBank records) · metadata.csv · README.txt (download date, account, counts)

Phylogeny

Retrieve specimen metadata and taxon information by mitogenome ID. Used by the phylogeny browser; also suitable for linking tree tips to specimen records programmatically.

GET /api/phylo/specimens Open
Fetch specimen detail (taxon, locality, images) for one or more mt_ids. Pass up to 500 comma-separated IDs. Results include Flickr image URLs for BIOD/QINL sequences.
curl "https://site100db.vercel.app/api/phylo/specimens?ids=BIOD02844,GBDL00088"
GET /api/phylo/taxon Open
Look up all mt_ids belonging to a taxon name (any rank). Returns mt_ids and the full lineage string. Useful for programmatically highlighting a clade in an external tree viewer.
curl "https://site100db.vercel.app/api/phylo/taxon?q=Platypodidae"
{ "mt_ids": ["BIOD00123", "BIOD00456", "GBDL00201"], "lineage": "/order:Coleoptera/family:Curculionidae/subfamily:Platypodinae" }