Authentication
All API requests require a bearer token. Generate API keys from Portal → Settings → API Keys. Include the key in the Authorization header:
Authorization: Bearer hav_live_your_api_key_here
Base URL
https://havenlifesciences.com/api/v1
Endpoints
/api/v1/drugsList current catalog product records with optional filters (category, shortage flag, country approval). Paginated. Endpoint name is retained for compatibility.
Scope: drugs:read
/api/v1/drugs/:idFull catalog product record including formulation or pack details, identifiers, and approval status by jurisdiction.
Scope: drugs:read
/api/v1/drugs/searchFull-text search across product name, identifiers, active ingredient where applicable, and product class.
Scope: drugs:read
/api/v1/shortagesList catalog items currently flagged as shortage-status. Filterable by category and jurisdiction.
Scope: shortages:read
/api/v1/compliance/:drugIdApproval or review status for a catalog product across tracked jurisdictions.
Scope: drugs:read
/api/v1/rfqCreate an RFQ from your ERP. Body currently uses the compatibility field { drugId, quantity, currency, deliveryCountry }.
Scope: rfq:write
/api/v1/rfq/:idGet the current status and supplier quotes for a previously submitted RFQ.
Scope: rfq:read
Example: search for alternatives
curl -X GET \ "https://havenlifesciences.com/api/v1/drugs/search?q=vancomycin&shortage=true" \ -H "Authorization: Bearer hav_live_your_api_key_here" \ -H "Accept: application/json"
Returns a paginated list of catalog records matching the query with shortageFlag: true.
Rate limits
Default limit is 60 requests per minute per API key. Enterprise plans can request higher limits. Rate limit headers are returned with every response:
X-RateLimit-Limit: 60 X-RateLimit-Remaining: 58 X-RateLimit-Reset: 1750000000