[ search · endpoint ]Search API · Clinical

Clinical & Pharmacology Search API

One endpoint over ClinicalTrials.gov, FDA drug labels, ChEMBL bioactivity, and DrugBank pharmacology. Pre-shaped JSON for medical RAG, drug-repurposing pipelines, and AI-driven clinical decision support.

30 credits / call30 req / minPOST /api/search/clinical
[ 01 · live ]

Try Clinical Search Live

Enter your API key and run a real query against the live endpoint.

auth · x-api-key

Don't have an API key?

Sign in to your account to create and manage your API keys.

5 sample queries — click to load
[ 02 · integrate ]

Integration guide

Copy a snippet, replace your API key, run. Works in any HTTP client — examples below in cURL, JavaScript, and Python.

spec
POST/api/search/clinical
base
https://www.apipick.com

Semantic search across ClinicalTrials.gov, FDA-approved drug labels, ChEMBL, and DrugBank. Returns titles, summaries, and source URLs ready for downstream LLMs.

parameters
querystringrequired

Natural-language search query

max_num_resultsintegeroptional

1–5, default 5

relevance_thresholdnumberoptional

0.0–1.0 quality filter

country_codestringoptional

ISO country code (e.g. US, GB)

start_datestringoptional

ISO date YYYY-MM-DD

end_datestringoptional

ISO date YYYY-MM-DD

curl -X POST "https://www.apipick.com/api/search/clinical" \
  -H "Content-Type: application/json" \
  -H "x-api-key: YOUR_API_KEY" \
  -d '{
  "query": "CAR-T therapy effectiveness in pediatric leukemia latest studies",
  "max_num_results": 5,
  "country_code": "US",
  "start_date": "2026-01-01"
}'
● 200 · response
{
  "query": "CAR-T therapy effectiveness in pediatric leukemia latest studies",
  "results": [
    {
      "title": "Example result",
      "url": "https://example.com/article",
      "snippet": "Short excerpt of the page content…",
      "source_type": "web",
      "published_at": "2026-04-15",
      "score": 0.92
    }
  ],
  "result_count": 1,
  "credits_used": 30,
  "remaining_credits": 99
}
[ 03 · limits ]

Rate limits

Throttling is per API key, sliding 60-second window. Hit the limit and you get a clean 429 with a Retry-After header.

request rate

30req/min

Per API key, per endpoint. Sliding 60-second window.

concurrency

3concurrent

Max simultaneous in-flight requests per API key.

response headers
X-RateLimit-LimitMaximum requests allowed per minute
X-RateLimit-RemainingRequests remaining in the current window
X-RateLimit-ResetSeconds until the current window resets
Retry-AfterSeconds to wait before retrying (only on 429)
● 429 · too many requests
HTTP/1.1 429 Too Many Requests
Retry-After: 12
X-RateLimit-Limit: 30
X-RateLimit-Remaining: 0
X-RateLimit-Reset: 12

{
  "error": "rate_limit_exceeded",
  "message": "Rate limit exceeded: 30 requests/minute per API key. Retry after 12s.",
  "retry_after": 12
}
[ faq ]

Frequently Asked Questions

01

Which sources are covered?

ClinicalTrials.gov (registered studies), FDA drug labels (Structured Product Labeling), ChEMBL (bioactivity data), and DrugBank (drug pharmacology). All four are queried in parallel.

02

Is this a substitute for medical advice?

No. The API surfaces public databases for research and software workflows. Output is not medical advice and must not be used for clinical decision-making without a qualified human in the loop.

03

Can I restrict to a date range?

Yes. Pass start_date and end_date to filter trials and label updates by date.

04

How do credits work for failed calls?

If the search fails (5xx) or the query is invalid (4xx), no credits are deducted. You're only charged on a successful 2xx response.

05

Tool schema for OpenAI / Claude?

GET /api/search/clinical/tool-schema returns ready-to-paste OpenAI function and Claude tool-use definitions.