Quickstart
Make your first Amass API call in under a minute.
1. Get an API Key
- Sign in at platform.amass.tech
- Go to API Keys
- Click Create API Key
- Copy the key immediately — it starts with
amass_and is shown only once
See Authentication for details.
2. Make Your First Request
Search BiomedCore for CRISPR publications:
curl "https://api.amass.tech/api/v1/cores/biomedcore/records?query=CRISPR&limit=5" \
-H "Authorization: Bearer amass_YOUR_KEY"Search TrialCore for cancer immunotherapy trials:
curl "https://api.amass.tech/api/v1/cores/trialcore/records?query=cancer+immunotherapy&limit=5" \
-H "Authorization: Bearer amass_YOUR_KEY"Search RegulatoryCore for FDA & EMA drug authorizations:
curl "https://api.amass.tech/api/v1/cores/regulatorycore/records?query=pembrolizumab&limit=5" \
-H "Authorization: Bearer amass_YOUR_KEY"3. Explore Results
Every response returns data in a consistent shape:
{
"data": [
{
"amassId": "AMBC_...",
"title": "...",
"..."
}
]
}Use the amassId to fetch full details:
curl "https://api.amass.tech/api/v1/cores/biomedcore/records/AMBC_abc123" \
-H "Authorization: Bearer amass_YOUR_KEY"Common Workflows
Search, filter, get details
The pattern below works across all Cores. For complete worked examples with real response tables, see API Workflows.
1. Search broadly:
curl "https://api.amass.tech/api/v1/cores/biomedcore/records?query=biomarker+oncology&limit=100" \
-H "Authorization: Bearer amass_YOUR_KEY"2. Pick a record and get full details with optional fields:
curl "https://api.amass.tech/api/v1/cores/biomedcore/records/AMBC_abc123?include=fulltext&include=authorsMetadata" \
-H "Authorization: Bearer amass_YOUR_KEY"Convert external IDs to Amass IDs
Use the lookup endpoint to convert PMIDs, DOIs, or NCT IDs to Amass IDs:
curl -X POST "https://api.amass.tech/api/v1/cores/biomedcore/records/lookup" \
-H "Authorization: Bearer amass_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"items": [{"pmid": "38123456"}, {"doi": "10.1038/s41586-024-00001-x"}]}'Python Example
import requests
API_KEY = "amass_YOUR_KEY"
BASE = "https://api.amass.tech/api/v1"
response = requests.get(
f"{BASE}/cores/biomedcore/records",
headers={"Authorization": f"Bearer {API_KEY}"},
params={
"query": "alzheimer tau protein",
"minPublicationDate": "2024-01-01",
"minJournalQualityJufo": "2",
"limit": 50,
},
)
response.raise_for_status()
for record in response.json()["data"]:
print(f"{record['pmid']} — {record['title']} ({record['citationCount']} citations)")With retry logic for rate limits
import time, requests
def fetch(url, headers, max_retries=5):
for attempt in range(max_retries):
r = requests.get(url, headers=headers)
if r.status_code == 429:
time.sleep(int(r.headers.get("Retry-After", 2 ** (attempt + 1))))
continue
r.raise_for_status()
return r.json()
raise Exception("Max retries exceeded")Starter agent
For a complete working example, see the Amass Platform Starter Agent - an interactive Python agent that queries BiomedCore and TrialCore via natural language. It performs agentic retrieval out-of-the-box and ships with a router loop, conversation history, and a fallback chain across Anthropic, OpenAI, and Google providers while other LLM providers are also supported.
Next Steps
- BiomedCore — Full endpoint reference and record schema
- TrialCore — Clinical trial search and filters
- DrugCore — Drug and molecule search and filters
- RegulatoryCore — Cross-agency FDA & EMA drug authorizations
- API Workflows — Competitive intelligence, due diligence, and more — with real response data
- Overview — Error handling and rate limits
- LLM Quick Reference — Compact reference for AI agents