curl -X POST https://rhizomeai.com/api/search \
-H "Content-Type: application/json" \
-H "x-api-key: YOUR_API_KEY" \
-d '{
"query_text": "FDA approval process",
"top_k": 10,
"offset": 0
}'
import requests
response = requests.post(
"https://rhizomeai.com/api/search",
headers={
"Content-Type": "application/json",
"x-api-key": "YOUR_API_KEY"
},
json={
"query_text": "FDA approval process",
"top_k": 10,
"offset": 0
}
)
data = response.json()
print(f"Found {data['total']} results")
for result in data["results"]:
print(f"- {result['name']} (page {result['page_num']})")
const response = await fetch("https://rhizomeai.com/api/search", {
method: "POST",
headers: {
"Content-Type": "application/json",
"x-api-key": "YOUR_API_KEY",
},
body: JSON.stringify({
query_text: "FDA approval process",
top_k: 10,
offset: 0,
}),
});
const data = await response.json();
console.log(`Found ${data.total} results`);
{
"results": [
{
"id": "nda/2017/208264Orig1s000ChemR.pdf 3 42",
"doc_id": "nda/2017/208264Orig1s000ChemR.pdf",
"dataset": "fda_drug",
"page_num": 42,
"score": 15.57,
"name": "TEPADINA THIOTEPA",
"url": "https://www.accessdata.fda.gov/drugsatfda_docs/nda/2017/208264Orig1s000ChemR.pdf",
"company": "ADIENNE SA",
"year_decision": 2017,
"text": "QUALITY ASSESSMENT | post approval + Formulation...",
"highlight": "<b>Process</b> parameters * Scale/equipment * Site Leachables..."
}
],
"total": 17319
}
Legacy API
Search
Search regulatory documents by keyword with page-level results
POST
/
api
/
search
curl -X POST https://rhizomeai.com/api/search \
-H "Content-Type: application/json" \
-H "x-api-key: YOUR_API_KEY" \
-d '{
"query_text": "FDA approval process",
"top_k": 10,
"offset": 0
}'
import requests
response = requests.post(
"https://rhizomeai.com/api/search",
headers={
"Content-Type": "application/json",
"x-api-key": "YOUR_API_KEY"
},
json={
"query_text": "FDA approval process",
"top_k": 10,
"offset": 0
}
)
data = response.json()
print(f"Found {data['total']} results")
for result in data["results"]:
print(f"- {result['name']} (page {result['page_num']})")
const response = await fetch("https://rhizomeai.com/api/search", {
method: "POST",
headers: {
"Content-Type": "application/json",
"x-api-key": "YOUR_API_KEY",
},
body: JSON.stringify({
query_text: "FDA approval process",
top_k: 10,
offset: 0,
}),
});
const data = await response.json();
console.log(`Found ${data.total} results`);
{
"results": [
{
"id": "nda/2017/208264Orig1s000ChemR.pdf 3 42",
"doc_id": "nda/2017/208264Orig1s000ChemR.pdf",
"dataset": "fda_drug",
"page_num": 42,
"score": 15.57,
"name": "TEPADINA THIOTEPA",
"url": "https://www.accessdata.fda.gov/drugsatfda_docs/nda/2017/208264Orig1s000ChemR.pdf",
"company": "ADIENNE SA",
"year_decision": 2017,
"text": "QUALITY ASSESSMENT | post approval + Formulation...",
"highlight": "<b>Process</b> parameters * Scale/equipment * Site Leachables..."
}
],
"total": 17319
}
This is the legacy search endpoint. New integrations should use API v3
search.
Request Body
string
required
The search query text. Searches across document content using BM25 ranking.
integer
default:20
Maximum number of results to return. Min: 1, Max: 100.
integer
default:0
Number of results to skip for pagination. Min: 0.
string[]
default:[]
Filter results to specific datasets. Empty array searches all datasets.
Available datasets include:
fda_drug, fda_biologic, fda_pma,
fda_denovo_or_510k, fda_guidance, fda_warning_letters,
fda_clinical_trials, fda_483, fda_inspections, ema_epar,
ema_guidelines, canada_guidance, and more. See Available
Datasets for the full list.integer
Filter results from this year onwards (inclusive).
integer
Filter results up to this year (inclusive).
Response
array
Array of search results, ordered by relevance score.
Show Result object
Show Result object
string
Unique page chunk identifier.
string
Document identifier. Use this with
/contents to get all pages.string
The dataset this result belongs to.
integer
The page number where the match was found (0-indexed).
number
BM25 relevance score. Higher is more relevant.
string
Document name/title.
string
Original FDA URL for the document.
string
Company name (if applicable).
integer
Year of the decision/publication.
string
Full text content of the matched page.
string
Text snippet with
<b> tags highlighting matched terms.integer
Total number of matching results (for pagination).
curl -X POST https://rhizomeai.com/api/search \
-H "Content-Type: application/json" \
-H "x-api-key: YOUR_API_KEY" \
-d '{
"query_text": "FDA approval process",
"top_k": 10,
"offset": 0
}'
import requests
response = requests.post(
"https://rhizomeai.com/api/search",
headers={
"Content-Type": "application/json",
"x-api-key": "YOUR_API_KEY"
},
json={
"query_text": "FDA approval process",
"top_k": 10,
"offset": 0
}
)
data = response.json()
print(f"Found {data['total']} results")
for result in data["results"]:
print(f"- {result['name']} (page {result['page_num']})")
const response = await fetch("https://rhizomeai.com/api/search", {
method: "POST",
headers: {
"Content-Type": "application/json",
"x-api-key": "YOUR_API_KEY",
},
body: JSON.stringify({
query_text: "FDA approval process",
top_k: 10,
offset: 0,
}),
});
const data = await response.json();
console.log(`Found ${data.total} results`);
{
"results": [
{
"id": "nda/2017/208264Orig1s000ChemR.pdf 3 42",
"doc_id": "nda/2017/208264Orig1s000ChemR.pdf",
"dataset": "fda_drug",
"page_num": 42,
"score": 15.57,
"name": "TEPADINA THIOTEPA",
"url": "https://www.accessdata.fda.gov/drugsatfda_docs/nda/2017/208264Orig1s000ChemR.pdf",
"company": "ADIENNE SA",
"year_decision": 2017,
"text": "QUALITY ASSESSMENT | post approval + Formulation...",
"highlight": "<b>Process</b> parameters * Scale/equipment * Site Leachables..."
}
],
"total": 17319
}
Available Datasets
Values fordataset_to_search.
FDA Datasets
| Dataset | Description |
|---|---|
fda_drug | FDA drug approval documents (NDAs, ANDAs) |
fda_biologic | FDA biologic license applications (BLAs) |
fda_denovo_or_510k | FDA 510(k) and De Novo device clearances |
fda_pma | FDA PMA device approvals |
fda_guidance | FDA guidance documents |
fda_warning_letters | FDA warning letters to companies |
fda_clinical_trials | Clinical trial data from ClinicalTrials.gov |
fda_483 | FDA 483 inspection observations |
fda_inspections | FDA inspection records |
fda_recalls | FDA recall notices |
fda_crl | FDA Complete Response Letters |
fda_ufa | FDA User Fee Act reports |
fda_recall_enforcement | FDA recall enforcement reports |
fda_maude | FDA MAUDE adverse event reports |
fda_faers | FDA FAERS adverse event reports |
EMA Datasets
| Dataset | Description |
|---|---|
ema_epar | EMA European Public Assessment Reports |
ema_guidelines | EMA guidance documents |
ema_ctis | EMA Clinical Trials Information System |
ema_pip | EMA Paediatric Investigation Plans |
ema_committee | EMA committee meeting documents |
ema_mdcg_guidance | Medical Device Coordination Group guidance |
Other Regulatory Agencies
| Dataset | Description |
|---|---|
canada_guidance | Health Canada guidance documents |
canada_par | Health Canada Public Assessment Reports |
canada_clinical_trials | Health Canada clinical trials |
swiss_par | Swissmedic Public Assessment Reports |
swiss_guidance | Swissmedic guidance documents |
swiss_clinical_trials | Swiss clinical trials |
mhra_ct | MHRA clinical trials |
mhra_pr | MHRA public assessment reports |
mhra_guidance | MHRA guidance documents |
tga_guidance | TGA (Australia) guidance documents |
eu_ctr | EU Clinical Trials Register |
ich_guidelines | ICH harmonized guidelines |
Error Codes
| Status | Description |
|---|---|
| 400 | Invalid request body |
| 401 | Missing or invalid API key |
| 429 | Rate limit exceeded (50 requests/minute) |
| 500 | Internal server error |