REST API
OrganiZymeDB exposes a read-only JSON API, with no authentication required.
All endpoints return application/json.
The base URL is the root of this site (https://organizymedb.org).
Endpoint Overview
| Method | Endpoint | Description |
|---|---|---|
GET | /api/proteins/ | List / search all proteins |
GET | /api/protein/<id>/ | Full record for one protein + mutations |
GET | /api/measurements/ | List / filter all measurements |
GET | /api/measurements/<id>/ | Single measurement record |
GET | /api/solvents/ | List all solvents |
GET | /api/solvent/<id>/ | Single solvent record |
GET | /api/solvent/by-name/<name>/ | Solvent lookup by exact name |
GET | /api/compounds/ | List / search all compounds |
GET | /api/compound/<id>/ | Single compound record |
GET | /api/compound/by-name/<name>/ | Compound lookup by exact name |
GET | /api/stats/ | Database statistics |
Proteins
GET Returns a paginated list of all proteins. Supports optional filtering.
| Parameter | Type | Description |
|---|---|---|
q | string | Free-text search on enzyme name or species (case-insensitive) |
ec | string | Filter by EC number prefix (e.g. 3.1 matches EC 3.1.x.x) |
species | string | Filter by species name substring |
page | integer | Page number (default: 1) |
per_page | integer | Results per page (default: 50, max: 200) |
GET /api/proteins/?q=lipase&page=1&per_page=10
GET Full record for a single protein, including its amino-acid sequence and all known mutations.
GET /api/protein/2/
Measurements
GET Paginated, filterable list of all experimental measurements.
GET /api/measurements/?solvent=ethanol&wt_only=1&per_page=20
GET Full record for a single measurement.
GET /api/measurements/304/
Solvents
GET Returns the list of all organic solvents referenced in the database.
GET /api/solvents/
GET Full record for a single solvent.
GET /api/solvent/5/
GET Looks up a solvent record by its exact name string (URL-encoded).
GET /api/solvent/by-name/Ethanol/
Compounds
GET Returns a paginated list of all compounds (substrates and products).
GET /api/compounds/?q=nitrophenyl&per_page=10
GET Returns a single compound record by its internal ID.
GET /api/compound/12/
GET Looks up a compound by its exact name (URL-encoded).
GET /api/compound/by-name/acetophenone/
Statistics
GET High-level counts for the whole database.
GET /api/stats/
Usage Examples
# All measurements for protein 2, wild-type only curl "https://organizymedb.org/api/measurements/?protein_id=2&wt_only=1" # Search compounds by name curl "https://organizymedb.org/api/compounds/?q=nitrophenyl" # Exact solvent lookup by name curl "https://organizymedb.org/api/solvent/by-name/Ethanol/" # Exact compound lookup by name curl "https://organizymedb.org/api/compound/by-name/acetophenone/"
import requests
BASE = "https://organizymedb.org"
# 1. Find all lipase proteins
proteins = requests.get(f"{BASE}/api/proteins",
params={"q": "lipase", "per_page": 200}).json()
all_measurements = []
for prot in proteins["data"]:
pid = prot["protein_id"]
page = 1
while True:
r = requests.get(f"{BASE}/api/measurements",
params={"protein_id": pid, "solvent": "ethanol",
"page": page, "per_page": 100}).json()
all_measurements.extend(r["data"])
if page >= r["pagination"]["total_pages"]:
break
page += 1
print(f"Found {len(all_measurements)} lipase measurements in ethanol")
Notes
- All endpoints are read-only — no POST, PUT, or DELETE operations are exposed.
- Pagination metadata is included in every list response.
- Data are released under CC BY-NC 4.0.