Clinical trial webhooks, with the diff included.
Posolix clinical trial webhooks push changes to you in real time: a signed POST to your endpoint as soon as we detect that a matching trial changes status, moves a date or posts results, or that the FDA approves a drug or changes a label. Each event carries the before and after values, so you don't have to diff anything yourself.
Free for the length of the beta.
POST https://your-app.com/hooks/posolix
Posolix-Event-Id: evt_01J8...
Posolix-Signature: t=1758204131,v1=5f2c...
{
"api_version": "2026-09",
"event": "trial.status_changed",
"occurred_at": "2026-09-18T14:02:11Z",
"trial": {
"nct_id": "NCT0XXXXXXX",
"phase": "PHASE3",
"conditions": ["Non-small cell lung cancer"],
"sponsor": "Example Therapeutics"
},
"changes": {
"overall_status": {
"from": "RECRUITING",
"to": "ACTIVE_NOT_RECRUITING"
}
}
} // illustrative, fields may change in beta
Event types you can subscribe to.
Subscribe to any mix of these, narrowed by condition, sponsor, phase, drug or application type. The data behind them is in the clinical trials API, FDA drug approvals API and drug label API.
trial.registeredA new trial appears on ClinicalTrials.gov.
trial.status_changedRecruitment status changes.
trial.phase_changedThe trial's phase changes.
trial.enrollment_changedEnrollment count or type changes.
trial.completion_date_changedPrimary or study completion date moves.
trial.results_postedResults are posted for the first time.
drug.approvedAn FDA application gets its original approval.
drug.supplement_approvedA supplement is approved: new indication, form or strength.
label.updatedA new version of a prescribing label is published.
label.boxed_warning_changedA boxed warning is added, removed or edited.
Subscription and event endpoints.
Manage subscriptions over the API or from the dashboard. Missed something? The events endpoint returns the same events, with the same IDs, so you can backfill.
-
POST/v1/subscriptionsCreate a subscription: your https endpoint plus a filter on event type, condition, sponsor, phase or drug.
-
GET/v1/subscriptionsList your subscriptions and their delivery status.
-
POST/v1/subscriptions/:id/testSend a sample event to your endpoint to check your handler and signature code.
-
GET/v1/eventsEvery event we've recorded, filterable by type, date, condition, sponsor and phase. Cursor pagination.
Signed, retried, easy to verify.
Every request is signed with HMAC-SHA256 using your subscription's secret, so you can check it came from Posolix. The timestamp in the signature lets you reject replayed requests.
Any 2xx response within 10 seconds counts as delivered. Anything else is retried after 1 minute, 5 minutes, 30 minutes, 2 hours, 12 hours and 24 hours. The dashboard shows a log of every delivery with a resend button.
Endpoints must use https.
// Node.js: verify a Posolix webhook
const crypto = require("crypto");
function verify(rawBody, header, secret) {
const parts = Object.fromEntries(
header.split(",").map((p) => p.split("="))
);
const expected = crypto
.createHmac("sha256", secret)
.update(parts.t + "." + rawBody)
.digest("hex");
if (!parts.v1 || parts.v1.length !== expected.length) return false;
return crypto.timingSafeEqual(
Buffer.from(expected),
Buffer.from(parts.v1)
);
}
Questions.
How real-time are the webhooks?
Each webhook is sent right after we detect the change, with no batching or daily digest. How soon we detect it depends on how often we check each source (at least daily during the beta) and on the source itself: openFDA often refreshes weekly, while ClinicalTrials.gov updates daily.
What happens if my endpoint is down?
We retry with increasing delays for about a day and a half. If a subscription keeps failing we pause it and email you. You can resend any delivery from the dashboard.
Can I get the same event twice?
Yes, delivery is at-least-once. Every request has a Posolix-Event-Id header, so store the IDs you've processed and skip repeats.
Can I backfill events I missed?
Yes. GET /v1/events returns the same events with the same IDs, filtered by date and type, so you can catch up after downtime or load history on day one.
How much do webhooks cost?
Nothing during the beta. Beta users will hear about pricing before it starts and get early-supporter terms.
Start receiving trial and FDA webhooks.
Join the beta for an API key and a dashboard login, free while we're in beta.