BPIQ REST API Documentation
Access live biotech stock catalyst data, drug pipeline records, 13F hedge fund holdings, and clinical trial datasets directly in your applications.
Unlock catalyst API access
Bring BPIQ catalyst timelines and the complete MCP toolset into your products and workflows.
Get BPIQ ApexApex and API Subscriptions are separate products. To get a dedicated API Subscription, submit the API access form.
Overview
The BPIQ REST API provides institutional-grade biotech intelligence over HTTPS. Endpoints return structured JSON data representing drug pipelines, catalyst dates, financial runway metrics, short float stats, and hedge fund position changes.
Base URL
https://api.bpiq.com/api/v1/infoAuthentication
Bearer Header: Authorization: Token YOUR_KEY
Format
JSON responses, standard HTTP status codes
Quickstart Walkthrough
Four steps to your first successful BPIQ API call.
Get your API key
Sign in to your BPIQ account and copy your API key from the panel at the top of this page, or submit the API access form if you don't have a subscription yet.
Authenticate your requests
Pass your API key on every request using the Authorization header. Requests without a valid key, or requests to endpoints outside your plan, return 401 or 403 responses.
Authorization: Token YOUR_BPIQ_API_KEY
Make your first call
Send a GET request to any endpoint below. This example fetches the first page of catalyst records.
curl -X GET "https://api.bpiq.com/api/v1/info/catalysts/?limit=10" \ -H "Authorization: Token YOUR_BPIQ_API_KEY"
Handle the response
Most list endpoints return a paginated JSON envelope with count, next, previous, and results fields. Use next/previous to page through results, and check the Error Reference section below for how to handle non-200 responses.
Authentication
Authenticate all API requests by passing your BPIQ API key in the Authorization HTTP header:
Authorization: Token YOUR_BPIQ_API_KEY
Keep your API key private
Do not commit raw API keys to client-side repositories or public frontends. Always make requests from server-side scripts or protected environment proxies.
Which plan do I need?
BPIQ catalyst data is available through two independent subscription paths. Compare access below.
Apex includes only the Catalysts and Historical Catalysts API endpoints. Trial access has the time-window limits shown below; paid Apex has full access to both catalyst endpoints. Apex subscribers also receive full access to the BPIQ MCP toolset.
API Non-Premium includes only the standard access shown below. API Premium unlocks the complete API endpoint set and full access to the BPIQ MCP toolset.
Rate limits by plan
Apex Trial
10 req/min
Apex Paid
15 req/min
API Non-Premium
10 req/min
API Premium
30 req/min
Endpoint Access & Plan Matrix
View data coverage, historical records, and tier availability per endpoint.
| Endpoint Path | API Premium | API Trial | Apex Paid | Apex Trial |
|---|---|---|---|---|
| /api/v1/info/catalysts/ | Full access | Next 30 days only | Full access | Next 30 days only |
| /api/v1/info/drugs/ | Full access | Full access | No access | No access |
| /api/v1/info/historical-catalysts/ | Full access | No access | Full access | Last 30 days only |
| /api/v1/info/clinical-trials/ | Full access | No access | No access | No access |
| /api/v1/info/hedge-fund-holdings/ | Full access | No access | No access | No access |
| /api/v1/info/all-companies/ | Full access | No access | No access | No access |
REST API Endpoints
Detailed field specifications, parameter filters, response schemas, and code samples for each endpoint.
/drugs/Retrieve drug-level records with linked company, indications, stage/event metadata, and catalyst attributes.
Query Parameters
{
"count": 532,
"next": "https://api.bpiq.com/api/v1/info/drugs/?limit=30&offset=30",
"previous": null,
"results": [
{
"id": 272,
"company": {
"ticker": "AMRX",
"name": "Amneal Pharmaceuticals Inc.",
"last_price": "14.49",
"market_cap": 4558262272
},
"ticker": "AMRX",
"drug_name": "Denosumab Biosimilars",
"indications": [
{
"id": 808,
"title": "Osteoporosis",
"nickname": ""
}
],
"indications_text": "Osteoporosis",
"stage_event": {
"id": 47,
"label": "Approved Quarterly sales",
"stage_label": "Approved",
"event_label": "Quarterly sales"
},
"note": "Denosumab biosimilar candidates reference Prolia(R) and XGEVA(R). 3/4/25- BLA accepted. PDUFA target action date Q4 2025.",
"catalyst_date": null,
"has_catalyst": true,
"catalyst_source": "https://www.globenewswire.com/news-release/2025/12/22/3209543/0/en/Amneal-Announces-FDA-Approval-of-Denosumab-Biosimilars-Referencing-Prolia-and-XGEVA.html",
"is_big_mover": false,
"is_suspected_mover": false,
"is_hedge_fund_pick": false,
"is_hedge_fund_avoid": false,
"is_high_mgmt_interest": false
}
]
}curl -X GET "https://api.bpiq.com/api/v1/info/drugs/" \ -H "Authorization: Token YOUR_BPIQ_API_KEY"
Response Fields Schema
| Field | Type | Description |
|---|---|---|
| count | integer | Total number of records matching current filters. |
| next | string | null | URL for the next paginated page. |
| previous | string | null | URL for the previous paginated page. |
| results | array<object> | Current page of drug records. |
| results[].id | integer | Unique drug record ID. |
| results[].company | object | Linked company summary for the drug. |
| results[].company.ticker | string | Company stock ticker symbol. |
| results[].company.name | string | Company legal/display name. |
| results[].company.last_price | string | Latest company share price. |
| results[].company.market_cap | integer | Company market capitalization. |
| results[].ticker | string | Primary ticker associated with the drug. |
| results[].drug_name | string | Drug or program name. |
| results[].indications | array<object> | List of mapped indications. |
| results[].indications[].id | integer | Indication ID. |
| results[].indications[].title | string | Indication label/title. |
| results[].indications[].nickname | string | Short nickname for the indication, when set. |
| results[].indications_text | string | Flattened/comma-separated indication text. |
| results[].stage_event | object | Current stage and event classification. |
| results[].stage_event.id | integer | Stage/event record ID. |
| results[].stage_event.label | string | Combined stage + event label. |
| results[].stage_event.stage_label | string | Stage name (e.g., Approved). |
| results[].stage_event.event_label | string | Event name within the stage. |
| results[].note | string | Analyst note and timeline context for the record. |
| results[].catalyst_date | string (ISO date) | null | Catalyst date when available; null for records without a scheduled/known date. |
| results[].has_catalyst | boolean | Whether the record has catalyst tracking. |
| results[].catalyst_source | string (URL) | null | Source URL for catalyst context. |
| results[].is_big_mover | boolean | Flag for big-mover categorization. |
| results[].is_suspected_mover | boolean | Flag for suspected-mover categorization. |
| results[].is_hedge_fund_pick | boolean | Flag when identified as hedge-fund pick. |
| results[].is_hedge_fund_avoid | boolean | Flag when identified as hedge-fund avoid. |
| results[].is_high_mgmt_interest | boolean | Flagged for high management interest. |
/catalysts/Retrieve catalyst-level records with linked company, indications, stage/event metadata, and catalyst attributes.
Query Parameters
{
"count": 532,
"next": "https://api.bpiq.com/api/v1/info/catalysts/?limit=30&offset=30",
"previous": null,
"results": [
{
"id": 272,
"company": {
"ticker": "AMRX",
"name": "Amneal Pharmaceuticals Inc.",
"last_price": "14.49",
"market_cap": 4558262272
},
"ticker": "AMRX",
"drug_name": "Denosumab Biosimilars",
"indications": [
{
"id": 808,
"title": "Osteoporosis",
"nickname": ""
}
],
"indications_text": "Osteoporosis",
"stage_event": {
"id": 47,
"label": "Approved Quarterly sales",
"stage_label": "Approved",
"event_label": "Quarterly sales"
},
"note": "Denosumab biosimilar candidates reference Prolia(R) and XGEVA(R).",
"catalyst_date": null,
"has_catalyst": true,
"catalyst_source": "https://www.globenewswire.com/news-release/2025/12/22/3209543/0/en/Amneal-Announces-FDA-Approval-of-Denosumab-Biosimilars-Referencing-Prolia-and-XGEVA.html",
"is_big_mover": false,
"is_suspected_mover": false,
"is_hedge_fund_pick": false,
"is_hedge_fund_avoid": false,
"is_high_mgmt_interest": false
}
]
}curl -X GET "https://api.bpiq.com/api/v1/info/catalysts/" \ -H "Authorization: Token YOUR_BPIQ_API_KEY"
Response Fields Schema
| Field | Type | Description |
|---|---|---|
| count | integer | Total number of records matching current filters. |
| next | string | null | URL for the next paginated page. |
| previous | string | null | URL for the previous paginated page. |
| results | array<object> | Current page of catalyst records. |
| results[].id | integer | Unique catalyst record ID. |
| results[].company | object | Linked company summary. |
| results[].company.ticker | string | Company stock ticker symbol. |
| results[].company.name | string | Company legal/display name. |
| results[].company.last_price | string | null | Latest company share price. |
| results[].company.market_cap | integer | null | Company market capitalization. |
| results[].ticker | string | Ticker associated with catalyst. |
| results[].drug_name | string | Drug name. |
| results[].indications | array<object> | List of mapped indications. |
| results[].indications[].id | integer | Indication ID. |
| results[].indications[].title | string | Indication label/title. |
| results[].indications[].nickname | string | Short nickname for the indication, when set. |
| results[].indications_text | string | Flattened/comma-separated indication text. |
| results[].stage_event | object | Stage and event categorization. |
| results[].stage_event.id | integer | Stage/event record ID. |
| results[].stage_event.label | string | Combined stage + event label. |
| results[].stage_event.stage_label | string | Stage name. |
| results[].stage_event.event_label | string | Event name within the stage. |
| results[].note | string | Analyst note. |
| results[].catalyst_date | string (ISO date) | null | Catalyst date; null for records without a scheduled/known date. |
| results[].has_catalyst | boolean | Catalyst tracking status. |
| results[].catalyst_source | string (URL) | null | Source URL for catalyst context. |
| results[].is_big_mover | boolean | Flag for big-mover categorization. |
| results[].is_suspected_mover | boolean | Flag for suspected-mover categorization. |
| results[].is_hedge_fund_pick | boolean | Flag when identified as hedge-fund pick. |
| results[].is_hedge_fund_avoid | boolean | Flag when identified as hedge-fund avoid. |
| results[].is_high_mgmt_interest | boolean | Flagged for high management interest. |
/clinical-trials/Retrieve clinical trial records for a given ticker, including study metadata, interventions, conditions, phases, sponsors, and status. The `ticker` parameter is required and requests without it are rejected.
Query Parameters
* required parameter — requests without it are rejected
{
"count": 42,
"data": [
{
"_id": "NCT07773883",
"nctid": "NCT07773883",
"acronym": "",
"title": "An Open-Label Study to Assess the Long-Term Safety of Solriamfetol in Children and Adolescents With ADHD",
"brief_summary": "Phase 3, multi-center, open-label trial to evaluate the long-term safety of solriamfetol in children and adolescents with ADHD.",
"status": "ENROLLING_BY_INVITATION",
"phases_list": ["PHASE3"],
"conditions_list": ["ADHD"],
"mapped_conditions_list": [
{ "condition_name": "ADHD", "disease_areas": ["Central Nervous System (CNS)"] }
],
"intereventions_list": [
{ "intervention_name": "Solriamfetol", "intervention_type": "DRUG" }
],
"sponsors_list": [
{
"id": 536,
"airtable_id": 535,
"rec_id": "recQrjbGoGgCTJ1tP",
"b2b_id": "3862",
"name": "Axsome Therapeutics, Inc.",
"mapped_comp_name": "Axsome Therapeutics Inc.",
"ticker": "AXSM",
"class": "INDUSTRY",
"company_type": ["Therapeutic"],
"ipo_status": "Public",
"marketcap_options": "Public - Large Cap",
"num_employees": "251-500",
"technologies": ["Small Molecule Pharmaceuticals"],
"disease_areas": ["Central Nervous System (CNS)", "Psychological Diseases"],
"city": "New York",
"state": "New York",
"region_auto": "US-Northeast",
"country_name": ["United States"],
"website": "https://www.axsome.com/"
}
],
"tags": [],
"in_airtable": true,
"first_posted_date": "2026-08-19 00:00:00",
"last_updated_date": "2026-09-08 00:00:00",
"last_script_update": "2026-09-15 08:40:53.987000",
"primary_completion_date": "2027-12-01 00:00:00",
"study_url": "https://clinicaltrials.gov/study/NCT07773883",
"meta": { "count": { "total": 42 } }
}
]
}curl -X GET "https://api.bpiq.com/api/v1/info/clinical-trials/?ticker=AXSM" \ -H "Authorization: Token YOUR_BPIQ_API_KEY"
Response Fields Schema
| Field | Type | Description |
|---|---|---|
| count | integer | Total number of trial records. |
| data | array<object> | Clinical trial records list. |
| data[]._id | string | Clinical trial identifier (NCT ID). |
| data[].nctid | string | Clinical trial identifier (NCT ID), duplicate of _id. |
| data[].acronym | string | Study acronym, when set. |
| data[].title | string | Full study title. |
| data[].brief_summary | string | Brief trial summary. |
| data[].status | string | Current trial status. |
| data[].phases_list | array<string> | Study phases (e.g., PHASE3). |
| data[].conditions_list | array<string> | Conditions targeted (raw). |
| data[].mapped_conditions_list | array<object> | Conditions mapped to normalized disease areas. |
| data[].mapped_conditions_list[].condition_name | string | Normalized condition name. |
| data[].mapped_conditions_list[].disease_areas | array<string> | Disease area tags for the condition. |
| data[].intereventions_list | array<object> | Interventions studied (note: field name is spelled as returned by the API). |
| data[].intereventions_list[].intervention_name | string | Intervention/drug name. |
| data[].intereventions_list[].intervention_type | string | Intervention type (e.g., DRUG). |
| data[].sponsors_list | array<object> | Sponsoring companies for the trial. |
| data[].sponsors_list[].id | integer | Sponsor company ID. |
| data[].sponsors_list[].airtable_id | integer | Sponsor Airtable record ID. |
| data[].sponsors_list[].rec_id | string | Sponsor Airtable record identifier. |
| data[].sponsors_list[].b2b_id | string | Internal B2B identifier. |
| data[].sponsors_list[].name | string | Sponsor legal name. |
| data[].sponsors_list[].mapped_comp_name | string | Normalized sponsor company name. |
| data[].sponsors_list[].ticker | string | Sponsor stock ticker, when public. |
| data[].sponsors_list[].class | string | Sponsor class (e.g., INDUSTRY). |
| data[].sponsors_list[].company_type | array<string> | Sponsor company type tags. |
| data[].sponsors_list[].ipo_status | string | Sponsor IPO status (e.g., Public). |
| data[].sponsors_list[].marketcap_options | string | Sponsor market cap bucket. |
| data[].sponsors_list[].num_employees | string | Sponsor employee count range. |
| data[].sponsors_list[].technologies | array<string> | Sponsor technology tags. |
| data[].sponsors_list[].disease_areas | array<string> | Sponsor disease area focus tags. |
| data[].sponsors_list[].city | string | Sponsor HQ city. |
| data[].sponsors_list[].state | string | Sponsor HQ state. |
| data[].sponsors_list[].region_auto | string | Auto-classified sponsor region. |
| data[].sponsors_list[].country_name | array<string> | Sponsor HQ country. |
| data[].sponsors_list[].website | string (URL) | Sponsor website. |
| data[].tags | array<string> | Free-form tags on the trial. |
| data[].in_airtable | boolean | Whether the trial is linked to an Airtable record. |
| data[].first_posted_date | string (datetime) | Date the trial was first posted. |
| data[].last_updated_date | string (datetime) | Date the trial record was last updated on ClinicalTrials.gov. |
| data[].last_script_update | string (datetime) | Timestamp of the last internal sync/scrape. |
| data[].primary_completion_date | string (datetime) | Primary completion date. |
| data[].study_url | string (URL) | ClinicalTrials.gov link. |
| data[].meta | object | Query metadata. |
| data[].meta.count | object | Count metadata for the query. |
| data[].meta.count.total | integer | Total trials matching the query. |
/all-companies/Retrieve all Airtable-backed companies with company profile data, financial metrics, short interest, hedge fund flags, acquisition status, and next big-mover catalyst metadata.
Query Parameters
{
"count": 828,
"next": "https://api.bpiq.com/api/v1/info/all-companies/?limit=1&offset=1",
"previous": null,
"results": [
{
"id": 1840,
"ticker": "AAPG",
"name": "Ascentage Pharma",
"description": "Global clinical-stage biotechnology company developing novel therapies for cancers, CHB, and senescence diseases...",
"full_description": "Ascentage Pharma Group International, a clinical-stage biotechnology company, develops therapies for cancers, chronic hepatitis B virus (HBV), and age-related diseases...",
"ir_link": "https://ir.ascentage.com/",
"market_cap": 1532512512,
"enterprise_value": 1556758975,
"open_price": "16.33",
"last_price": "16.41",
"prvious_close": "16.10",
"day_high": "16.55",
"day_low": "16.33",
"last_price_change": "0.31",
"last_price_change_percent": "0.01926",
"volume": 3821,
"fifty_two_week_high": "40.47500",
"fifty_two_week_low": "16.03000",
"max_52_week_position": "0.01555",
"cash": 1895583000,
"ttm_burn": -189086000,
"qtr_burn": null,
"monthly_burn": null,
"cash_runway_end_date": null,
"finance_updated_at": null,
"shares_outstanding": 93388942,
"shares_float": 71538620,
"shares_short": 15260,
"short_float": "0.00021",
"short_outstanding": "0.00020",
"insider_own": "0.00000",
"tute_own": "0.00037",
"short_data_updated_at": "2026-08-31T04:00:00Z",
"exchange": "NasdaqGM",
"industry": "Biotechnology",
"sector": "Healthcare",
"website": "https://www.ascentage.cn",
"address": "Suzhou Industrial Park",
"state": "",
"city": "Suzhou",
"zip": "215000",
"country": "China",
"logo_url": "https://logo.clearbit.com/ascentagepharma.com",
"furthest_drug": 19507,
"next_drug_catalyst": 19040,
"next_bigmover_drug_catalyst": null,
"num_assets": 14,
"in_top10_hfs": false,
"in_no_hfs": true,
"hf_holding_count": 0,
"is_acquired": false,
"acquisition_note": ""
}
]
}curl -X GET "https://api.bpiq.com/api/v1/info/all-companies/" \ -H "Authorization: Token YOUR_BPIQ_API_KEY"
Response Fields Schema
| Field | Type | Description |
|---|---|---|
| count | integer | Total matching companies. |
| next | string | null | URL for the next paginated page. |
| previous | string | null | URL for the previous paginated page. |
| results | array<object> | Company screener records. |
| results[].id | integer | Unique company record ID. |
| results[].ticker | string | Stock ticker. |
| results[].name | string | Company legal name. |
| results[].description | string | Short company description. |
| results[].full_description | string | Extended company description. |
| results[].ir_link | string (URL) | null | Investor relations page URL. |
| results[].market_cap | number | null | Market cap. |
| results[].enterprise_value | number | null | Enterprise value. |
| results[].open_price | string | null | Today's opening share price. |
| results[].last_price | string | null | Latest share price. |
| results[].prvious_close | string | null | Previous close price (note: field name is spelled as returned by the API). |
| results[].day_high | string | null | Intraday high. |
| results[].day_low | string | null | Intraday low. |
| results[].last_price_change | string | null | Price change vs. previous close. |
| results[].last_price_change_percent | string | null | Percent price change vs. previous close. |
| results[].volume | integer | null | Trading volume. |
| results[].fifty_two_week_high | string | null | 52-week high price. |
| results[].fifty_two_week_low | string | null | 52-week low price. |
| results[].max_52_week_position | string | null | Position within the 52-week range. |
| results[].cash | number | null | Cash balance. |
| results[].ttm_burn | number | null | Trailing-twelve-month cash burn. |
| results[].qtr_burn | number | null | Quarterly cash burn. |
| results[].monthly_burn | number | null | Monthly cash burn. |
| results[].cash_runway_end_date | string | null | Projected cash runway end date. |
| results[].finance_updated_at | string | null | Timestamp financial figures were last updated. |
| results[].shares_outstanding | number | null | Shares outstanding. |
| results[].shares_float | number | null | Shares in public float. |
| results[].shares_short | number | null | Shares sold short. |
| results[].short_float | string | null | Short interest as % of float. |
| results[].short_outstanding | string | null | Short interest as % of shares outstanding. |
| results[].insider_own | string | null | Insider ownership %. |
| results[].tute_own | string | null | Institutional ownership %. |
| results[].short_data_updated_at | string | null | Timestamp short-interest data was last updated. |
| results[].exchange | string | Listing exchange. |
| results[].industry | string | Industry classification. |
| results[].sector | string | Sector classification. |
| results[].website | string (URL) | Company website. |
| results[].address | string | HQ street address. |
| results[].state | string | HQ state/region. |
| results[].city | string | HQ city. |
| results[].zip | string | HQ postal code. |
| results[].country | string | HQ country. |
| results[].logo_url | string (URL) | Company logo image URL. |
| results[].furthest_drug | integer | null | ID of the company's most advanced drug record. |
| results[].next_drug_catalyst | integer | null | ID of the next upcoming drug catalyst. |
| results[].next_bigmover_drug_catalyst | integer | null | ID of the next upcoming big-mover catalyst. |
| results[].num_assets | integer | Number of pipeline assets/drugs. |
| results[].in_top10_hfs | boolean | Top 10 HF holding flag. |
| results[].in_no_hfs | boolean | Flag for companies with no hedge fund holders. |
| results[].hf_holding_count | integer | Number of hedge funds holding the stock. |
| results[].is_acquired | boolean | Whether the company has been acquired. |
| results[].acquisition_note | string | Note on acquisition status, when applicable. |
/hedge-fund-holdings/Retrieve hedge funds holding a ticker based on filing data. The `ticker` parameter is required and requests without it are rejected.
Query Parameters
* required parameter — requests without it are rejected
[
{
"id": 60855,
"company": {
"id": 337,
"ticker": "AXSM",
"name": "Axsome Therapeutics Inc."
},
"fund_name": "RTW INVESTMENTS, LP",
"filing_date": "2026-02-17",
"filing_period": "2025-12-31",
"value": 162184000,
"num_shares": 888001,
"class_title": "COM",
"name_of_issuer": "AXSOME THERAPEUTICS INC",
"filing": 541
}
]curl -X GET "https://api.bpiq.com/api/v1/info/hedge-fund-holdings/?ticker=AXSM" \ -H "Authorization: Token YOUR_BPIQ_API_KEY"
Response Fields Schema
| Field | Type | Description |
|---|---|---|
| [].id | integer | Unique holding record ID. Note: the root response is a bare array of these objects, not wrapped in an envelope object. |
| [].company | object | Linked company summary for the issuer. |
| [].company.id | integer | Company record ID. |
| [].company.ticker | string | Issuer ticker symbol. |
| [].company.name | string | Issuer legal/display name. |
| [].fund_name | string | Manager/Fund name. |
| [].filing_date | string (ISO date) | Date the 13F filing was made. |
| [].filing_period | string (ISO date) | Reporting period end date the filing covers. |
| [].value | integer | Position value ($). |
| [].num_shares | integer | Number of shares held. |
| [].class_title | string | Security class (e.g., COM). |
| [].name_of_issuer | string | Issuer name as filed on the 13F. |
| [].filing | integer | Internal filing record ID. |
/historical-catalysts/Retrieve historical catalyst records with company linkage, timing metadata, and price reaction context.
Query Parameters
{
"count": 8505,
"next": "https://api.bpiq.com/api/v1/info/historical-catalysts/?limit=1&offset=1",
"previous": null,
"results": [
{
"id": 7656,
"company": {
"id": 508,
"ticker": "LEGN",
"name": "Legend Biotech Corporation"
},
"created_at": "2026-06-02T13:01:46.347314Z",
"updated_at": "2026-09-15T13:02:28.715478Z",
"ticker": "LEGN",
"drug_name": "LB2102",
"drug_indication": "Small Cell Lung Cancer, Large-Cell Neuroendocrine Carcinoma",
"airtable_id": 7970,
"stage": "Phase 1",
"catalyst_date": "2026-06-01",
"catalyst_source": "https://www.globenewswire.com/news-release/2026/06/01/3304508/0/en/legend-biotech-presents-first-in-human-lb2102-results-in-solid-tumors-and-new-carvykti-data-in-multiple-myeloma-at-asco-2026.html",
"catalyst_text": "Presented encouraging Phase 1 data at ASCO conference",
"detailed_catalyst_text": "First-in-human Phase 1 results for a DLL3-targeted CAR-T in relapsed or refractory small cell lung cancer and large-cell neuroendocrine carcinoma, showing early anti-tumor activity with a manageable safety profile (ORR 28.6%, DCR 78.6% at higher dose levels).",
"catalyst_text_evidence": "Legend Biotech Corporation (NASDAQ:LEGN)... announced first-in-human clinical data for LB2102, its investigational DLL3-targeted CAR-T cell therapy...",
"news_published_at": "2026-06-02T00:00:00Z",
"open_price_gap_percent": "-0.00884",
"intra_day_price_change_percent": "-0.05238"
}
]
}curl -X GET "https://api.bpiq.com/api/v1/info/historical-catalysts/" \ -H "Authorization: Token YOUR_BPIQ_API_KEY"
Response Fields Schema
| Field | Type | Description |
|---|---|---|
| count | integer | Total historical records. |
| next | string | null | URL for the next paginated page. |
| previous | string | null | URL for the previous paginated page. |
| results | array<object> | Historical catalyst records. |
| results[].id | integer | Unique historical catalyst record ID. |
| results[].airtable_id | integer | Linked Airtable record ID. |
| results[].company | object | Linked company summary. |
| results[].company.id | integer | Company record ID. |
| results[].company.ticker | string | Company stock ticker symbol. |
| results[].company.name | string | Company legal/display name. |
| results[].ticker | string | Ticker. |
| results[].drug_name | string | Drug name. |
| results[].drug_indication | string | Indication the catalyst relates to. |
| results[].stage | string | Stage label. |
| results[].catalyst_date | string (ISO date) | null | Date the catalyst occurred. Important field for filtering (catalyst_date_min/catalyst_date_max); may be null only for a small number of very old events. |
| results[].catalyst_source | string (URL) | Source URL for the catalyst news. |
| results[].catalyst_text | string | Catalyst summary. |
| results[].detailed_catalyst_text | string | Longer-form catalyst detail. |
| results[].catalyst_text_evidence | string | Source excerpt supporting the catalyst summary. |
| results[].news_published_at | string (datetime) | Timestamp the source news was published. |
| results[].created_at | string (datetime) | Timestamp the record was created. |
| results[].updated_at | string (datetime) | Timestamp the record was last updated. |
| results[].open_price_gap_percent | string | Gap % on announcement. |
| results[].intra_day_price_change_percent | string | Intraday reaction %. |
Error Reference
Standard HTTP response codes returned by the BPIQ API endpoints:
| Code | Title | Description / Remediation |
|---|---|---|
| 400 | Bad Request | Invalid query params or date range. |
| 401 | Unauthorized | Missing or invalid API key. |
| 403 | Forbidden | Your plan does not include this endpoint. |
| 404 | Not Found | Resource was not found. |
| 500 | Server Error | Unexpected server-side error. |
