REST API

Free and read-only, with JSON responses and no key needed. Limit: 120 requests per minute. The base URL is https://www.msipep.com/api/v1/. You can browse the API in your web browser.

Endpoints

GET /api/v1/observations/Search observations. Parameters: q, mz + ppm, against=theoretical, taxon, accession, doi, status, max_ppm, sort, limit, offset
GET /api/v1/peptides/Peptides, filterable by sequence.
GET /api/v1/peptides/{id}/One peptide.
GET /api/v1/proteins/{accession}/One protein, including its sequence.
GET /api/v1/publications/Source publications.
POST /api/v1/annotate/Annotate a peak list (up to 10,000 m/z values).

Examples

curl "https://www.msipep.com/api/v1/observations/?mz=1198.7055&ppm=10"
curl -X POST "https://www.msipep.com/api/v1/annotate/" \
  -H "Content-Type: application/json" \
  -d '{"mz": [1198.7055, 1321.6747], "ppm": 10, "adducts": ["H", "Na", "K"], "taxon": 10090}'
import requests
r = requests.get("https://www.msipep.com/api/v1/observations/",
                 params={"q": "P02452", "status": "approved"})
for obs in r.json()["results"]:
    print(obs["peptide"]["proforma"], obs["measured_mz"], obs["ppm_error"])