posolix

Real-time clinical trial & FDA tracker

Try for free

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.

7-day free trial, then API plans from $149 a month. See pricing.

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

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 in the public registry.

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/subscriptions

    Create a subscription: your https endpoint plus a filter on event type, condition, sponsor, phase or drug.

  • GET/v1/subscriptions

    List your subscriptions and their delivery status.

  • POST/v1/subscriptions/:id/test

    Send a sample event to your endpoint to check your handler and signature code.

  • GET/v1/events

    Every 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) and on the source itself: the FDA datasets often refresh weekly, while the trial registry 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?

API access is on the API plan at $149 a month (100,000 requests, 5 webhook endpoints) or the Team plan at $499 a month. Yearly billing gets you a month free, and every account starts with a 7-day free trial. See pricing.

Start receiving trial and FDA webhooks.

Create your account and get an API key right away. Your first 7 days are free, no card needed.

Try for free