curl -X POST https://api.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://api.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://api.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
}
Search
Search regulatory documents by keyword with page-level results
POST
/
api
/
search
curl -X POST https://api.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://api.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://api.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
}
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[]
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
Introduction 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://api.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://api.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://api.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
}
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 |