x402 List

x402 Protocol Service Directory

●

Biotech Catalyst Sentinel

Data PAYMENT-READY

payment-ready until 2026-10-02

FDA drug-approval catalyst change stream for US-listed biotechs: every state change of every catalyst we track — each PDUFA date as it is set, extended and resolved — with the real outcome (approval or CRL), the SEC filing quote and its EDGAR source. A superset of the upcoming calendar, as a since-cursor delta feed. Date accuracy AND coverage are published free at GET /v1/accuracy — audit before you pay. Flat price per request.

Pay from $0.02 to $0.05 per request in USDC on Base / Solana, settled onchain via the x402 protocol, no signup, no API key needed.

measured since 2026-06-23 (start of our harvest window) · $1.94 all-time · settled via coinbase

BASE URL https://api.biotechcatalystsentinel.com │ WEBSITE https://biotechcatalystsentinel.com │ ENDPOINTS 2 │ NETWORK Base / Solana │ ASSET USDC │ MEMBER SINCE 2026-06-25 │ MONITORED SINCE 2026-06-25

VERDICT

ranking generation 3

solid 83/100 #178 of 320 in Data by measured score

What the score read on this service: status online, 100% uptime 30d, 870ms response p95, x402 compliance 14 of 14, $0.02 price against the category, on-chain traction measured. Each of those is measured, and each is published in full below.

The score comes from our own monitoring, never from reviews, operator claims, or a language model: reliability, x402 compliance, price against the category, a deterministic risk flag, and a small on-chain traction term, weighted by ranking generation 3. It is not placement anyone can buy: the paid verify tier is reported beside it and is not one of its inputs. Every component below stays published and read-only.

It is a score inside Data, and only there: price and speed are scored against the whole category field, every listing in it that carries no danger flag, the scored service included, which here means 320 listings, this one among them. That set is wider than the 320 the position above is counted against, because a listing we have measured too little of to rank still sits in the field the price and the speed are normalized over. The same service in a different field would read differently. The same engine answers GET /api/v1/best, and asked for a different pool (the whole directory, or another filter) it returns a different number for this service under this same ranking generation. Neither is more correct: they answer different questions, and the methodology states which is which.

Bands on the 0 to 100 measured score: strong at 93 and above, solid from 75, mixed from 55, weak below 55. Price and speed are scored against the whole category field, every listing in it that carries no danger flag, the scored service included, so the score places a service in its own field.

ALTERNATIVES IN DATA

Other Data services in this directory, ordered by the same measured score. The figures are ours: 30-day uptime from our own probes, 30-day settlement volume read on-chain (a conservative undercount, and null where we cannot measure it, never a zero).

Ranked alternative x402 services in the same category, with band, measured score, 30-day uptime and 30-day on-chain settlement volume
SERVICE BAND SCORE UPTIME 30D VOL 30D
Lemon Toolshed strong 97 100% ---
Agent Web Access strong 97 99.7% ---
longwatch strong 97 100% ---
StableEnrich strong 95 100% $2.0k
SniperX•x402 strong 95 100% $273.81
5 of 319 other ranked services in Data · see the whole category

ASSESSMENT

updated 2h ago

The parts the verdict above is computed from, each with its proof. Click any chip. Measured values stay read-only; unknown is honest, and an unknown is never counted as a zero.

reliability 100%
uptime 24h
100%
uptime 7d
100%
uptime 30d
100%
uptime 90d
100%
response p95
870ms
avg response
644ms
total checks
2,699

Measured on the unpaid 402 handshake, not the paid call. A service can 402 correctly and still fail after payment.

compliance A (14/14)

14 of 14 x402 conformance checks pass. Full checklist below.

jump to compliance checklist

price $0.02 to $0.05 (p75 in Data)
price (min)
$0.02
price (max)
$0.05
category percentile (min)
p75 in Data
category percentile (max)
p59 in Data
endpoints / prices
2 / 2
model
tiered
stability
100%
risk clean

No deterministic risk flag. Risk fires only on an exact blocklist match, or a reserved-brand name with a mismatched verified payTo. Never from low uptime, a high price, or a model guess.

domain age
-
registrar
-
hosting
custom
domain created
---

Identity facts, not a risk score.

traction $0.67 30d · 12 buyers
volume 30d
$0.67
buyers 30d
12
settlements 30d
23
measured since
2026-06-23 (start of our harvest window)
last settlement
2026-09-24
top buyer share
52% of 30d volume
trend 7d vs 30d
0.13x the 30d daily rate
networks
eip155:8453, solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdpKuc147dw2N9d
volume all-time
$1.94
settlements all-time
67
median settlement 30d
$0.02
max settlement 30d
$0.05
settled via
coinbase ($0.67, 23 tx)

Conservative undercount: only USDC settlements via facilitators we measure are counted. A measured floor, not an estimate.

Top buyer share is a concentration signal, not part of the ranking score.

CHANGES

10 in 30d

Payout, price, and schema changes detected on this service's x402 wire. A payout rotation at an unchanged price shows up here even when nothing else moves. Full feed at /changes.

changes schema changed 47h ago (10 in 30d)

schema changed · 47h ago

schema removed GET /v1/catalysts/upcoming exact solana:5eykt4usfv8p8njdtrepy1vzqkqzkvdp EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v USDC 2 300 {"feePayer":"BENrLoUbndxoNMUS5JXApGMtNykLjFXXixMtpDwDR9SP"}

schema removed GET /v1/events exact solana:5eykt4usfv8p8njdtrepy1vzqkqzkvdp EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v USDC 2 300 {"feePayer":"BENrLoUbndxoNMUS5JXApGMtNykLjFXXixMtpDwDR9SP"}

schema added GET /v1/catalysts/upcoming exact solana:5eykt4usfv8p8njdtrepy1vzqkqzkvdp EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v USDC 2 300 {"feePayer":"Hc3sdEAsCGQcpgfivywog9uwtk8gUBUZgsxdME1EJy88"}

schema added GET /v1/events exact solana:5eykt4usfv8p8njdtrepy1vzqkqzkvdp EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v USDC 2 300 {"feePayer":"Hc3sdEAsCGQcpgfivywog9uwtk8gUBUZgsxdME1EJy88"}

schema changed · 13d ago

schema removed GET /v1/catalysts/upcoming exact solana:5eykt4usfv8p8njdtrepy1vzqkqzkvdp EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v USDC 2 300 {"feePayer":"D6ZhtNQ5nT9ZnTHUbqXZsTx5MH2rPFiBBggX4hY1WePM"}

schema removed GET /v1/events exact solana:5eykt4usfv8p8njdtrepy1vzqkqzkvdp EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v USDC 2 300 {"feePayer":"D6ZhtNQ5nT9ZnTHUbqXZsTx5MH2rPFiBBggX4hY1WePM"}

schema added GET /v1/catalysts/upcoming exact solana:5eykt4usfv8p8njdtrepy1vzqkqzkvdp EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v USDC 2 300 {"feePayer":"BENrLoUbndxoNMUS5JXApGMtNykLjFXXixMtpDwDR9SP"}

schema added GET /v1/events exact solana:5eykt4usfv8p8njdtrepy1vzqkqzkvdp EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v USDC 2 300 {"feePayer":"BENrLoUbndxoNMUS5JXApGMtNykLjFXXixMtpDwDR9SP"}

schema changed · 17d ago

endpoint added GET /v1/events

schema added GET /v1/events exact eip155:8453 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 USDC 2 300 {"name":"USD Coin","version":"2"}

schema added GET /v1/events exact solana:5eykt4usfv8p8njdtrepy1vzqkqzkvdp EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v USDC 2 300 {"feePayer":"D6ZhtNQ5nT9ZnTHUbqXZsTx5MH2rPFiBBggX4hY1WePM"}

schema changed · 19d ago

schema removed GET /v1/catalysts/upcoming exact solana:5eykt4usfv8p8njdtrepy1vzqkqzkvdp EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v USDC 2 300 {"feePayer":"GVJJ7rdGiXr5xaYbRwRbjfaJL7fmwRygFi1H6aGqDveb"}

schema added GET /v1/catalysts/upcoming exact solana:5eykt4usfv8p8njdtrepy1vzqkqzkvdp EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v USDC 2 300 {"feePayer":"D6ZhtNQ5nT9ZnTHUbqXZsTx5MH2rPFiBBggX4hY1WePM"}

schema changed · 19d ago

schema removed GET /v1/catalysts/upcoming exact solana:5eykt4usfv8p8njdtrepy1vzqkqzkvdp EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v USDC 2 300 {"feePayer":"D6ZhtNQ5nT9ZnTHUbqXZsTx5MH2rPFiBBggX4hY1WePM"}

schema added GET /v1/catalysts/upcoming exact solana:5eykt4usfv8p8njdtrepy1vzqkqzkvdp EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v USDC 2 300 {"feePayer":"GVJJ7rdGiXr5xaYbRwRbjfaJL7fmwRygFi1H6aGqDveb"}

schema changed · 19d ago

schema removed GET /v1/catalysts/upcoming exact solana:5eykt4usfv8p8njdtrepy1vzqkqzkvdp EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v USDC 2 300 {"feePayer":"GVJJ7rdGiXr5xaYbRwRbjfaJL7fmwRygFi1H6aGqDveb"}

schema added GET /v1/catalysts/upcoming exact solana:5eykt4usfv8p8njdtrepy1vzqkqzkvdp EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v USDC 2 300 {"feePayer":"D6ZhtNQ5nT9ZnTHUbqXZsTx5MH2rPFiBBggX4hY1WePM"}

schema changed · 19d ago

schema removed GET /v1/catalysts/upcoming exact solana:5eykt4usfv8p8njdtrepy1vzqkqzkvdp EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v USDC 2 300 {"feePayer":"BENrLoUbndxoNMUS5JXApGMtNykLjFXXixMtpDwDR9SP"}

schema added GET /v1/catalysts/upcoming exact solana:5eykt4usfv8p8njdtrepy1vzqkqzkvdp EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v USDC 2 300 {"feePayer":"GVJJ7rdGiXr5xaYbRwRbjfaJL7fmwRygFi1H6aGqDveb"}

schema changed · 20d ago

schema removed GET /v1/catalysts/upcoming exact solana:5eykt4usfv8p8njdtrepy1vzqkqzkvdp EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v USDC 2 300 {"feePayer":"Hc3sdEAsCGQcpgfivywog9uwtk8gUBUZgsxdME1EJy88"}

schema added GET /v1/catalysts/upcoming exact solana:5eykt4usfv8p8njdtrepy1vzqkqzkvdp EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v USDC 2 300 {"feePayer":"BENrLoUbndxoNMUS5JXApGMtNykLjFXXixMtpDwDR9SP"}

schema changed · 21d ago

schema removed GET /v1/catalysts/upcoming exact solana:5eykt4usfv8p8njdtrepy1vzqkqzkvdp EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v USDC 2 300 {"feePayer":"D6ZhtNQ5nT9ZnTHUbqXZsTx5MH2rPFiBBggX4hY1WePM"}

schema added GET /v1/catalysts/upcoming exact solana:5eykt4usfv8p8njdtrepy1vzqkqzkvdp EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v USDC 2 300 {"feePayer":"Hc3sdEAsCGQcpgfivywog9uwtk8gUBUZgsxdME1EJy88"}

schema changed · 21d ago

schema removed GET /v1/catalysts/upcoming exact solana:5eykt4usfv8p8njdtrepy1vzqkqzkvdp EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v USDC 2 300 {"feePayer":"Hc3sdEAsCGQcpgfivywog9uwtk8gUBUZgsxdME1EJy88"}

schema added GET /v1/catalysts/upcoming exact solana:5eykt4usfv8p8njdtrepy1vzqkqzkvdp EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v USDC 2 300 {"feePayer":"D6ZhtNQ5nT9ZnTHUbqXZsTx5MH2rPFiBBggX4hY1WePM"}

see all changes for this service

WHAT IT DOES

ai-derived

No AI synthesis has been produced for this service yet.

ENDPOINTS

Service endpoints with HTTP method, path, description, pricing, and network
METHOD PATH DESCRIPTION PRICE NETWORK ASSET 402 CHANNEL
GET /v1/catalysts/upcoming $0.02 Base/Solana USDC header
GET /v1/events $0.05 Base/Solana USDC header
2 endpoints

REQUEST / RESPONSE EXAMPLE

An unpaid request to GET /v1/catalysts/upcoming returns HTTP 402 with the payment terms. Settle onchain via your facilitator, then retry with the X-Payment header.

// request
curl -i 'https://api.biotechcatalystsentinel.com/v1/catalysts/upcoming'
// 402 response (captured by monitor) · 2 payloads · click to expand
[
  {
    "error": "Payment required",
    "accepts": [
      {
        "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
        "extra": {
          "name": "USD Coin",
          "version": "2"
        },
        "payTo": "0xcD8975137D48ED9bfD1C299a62c01420B860070d",
        "amount": "50000",
        "scheme": "exact",
        "network": "eip155:8453",
        "maxTimeoutSeconds": 300
      },
      {
        "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
        "extra": {
          "feePayer": "Hc3sdEAsCGQcpgfivywog9uwtk8gUBUZgsxdME1EJy88"
        },
        "payTo": "3gM4YDDPAi7w1di7rHAAaHc5T1tR7NRXzLWzPPN4ZRaM",
        "amount": "50000",
        "scheme": "exact",
        "network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
        "maxTimeoutSeconds": 300
      }
    ],
    "resource": {
      "url": "https://api.biotechcatalystsentinel.com/v1/events",
      "mimeType": "application/json",
      "description": "FDA drug-approval catalyst change stream for US-listed biotechs: every state change of every tracked catalyst — each PDUFA date as set, extended and resolved — with the real outcome (approval or CRL), the SEC filing quote and its EDGAR source, as a since-cursor delta feed. Use when you mirror the calendar and need date changes and outcomes as they land, not a snapshot. Accuracy AND coverage are free at GET /v1/accuracy. Flat price per request."
    },
    "extensions": {
      "bazaar": {
        "info": {
          "input": {
            "type": "http",
            "method": "GET",
            "queryParams": {
              "limit": 100,
              "since": 0
            }
          },
          "output": {
            "type": "json",
            "example": {
              "data": [
                {
                  "ticker": "XSMPL",
                  "applied": true,
                  "company": "Sample Therapeutics, Inc.",
                  "outcome": null,
                  "tickers": [
                    "XSMPL",
                    "XPRTN"
                  ],
                  "event_id": 990101,
                  "filed_at": "2025-11-03",
                  "new_date": "2026-04-18",
                  "accession": "0009999001-25-000090",
                  "authority": "llm_high",
                  "drug_name": "SAMPLIMAB",
                  "confidence": "high",
                  "delta_days": null,
                  "event_type": "new_date_assigned",
                  "indication": "sample indication (moderate-to-severe examplitis)",
                  "prior_date": null,
                  "source_url": "https://www.sec.gov/Archives/edgar/data/9999001/000999900125000090/0009999001-25-000090-index.htm",
                  "catalyst_id": 990001,
                  "detected_at": "2025-11-03T13:41:09.000000+00:00",
                  "merged_into": null,
                  "date_changed": true,
                  "days_to_date": null,
                  "source_quote": "The FDA has assigned a PDUFA target action date of April 18, 2026 for SAMPLIMAB. [FICTIONAL SAMPLE — not a real filing sentence]",
                  "date_confidence": "confirmed",
                  "new_date_upcoming": false,
                  "application_number": "BLA999901"
                }
              ],
              "meta": {
                "limit": 100,
                "total": 1,
                "has_more": false,
                "next_since": 990106
              }
            }
          }
        },
        "schema": {
          "type": "object",
          "$schema": "https://json-schema.org/draft/2020-12/schema",
          "required": [
            "input"
          ],
          "properties": {
            "input": {
              "type": "object",
              "required": [
                "type",
                "method"
              ],
              "properties": {
                "type": {
                  "type": "string",
                  "const": "http"
                },
                "method": {
                  "enum": [
                    "GET",
                    "HEAD",
                    "DELETE"
                  ],
                  "type": "string"
                },
                "queryParams": {
                  "type": "object",
                  "required": [],
                  "properties": {
                    "limit": {
                      "type": "integer",
                      "default": 100,
                      "maximum": 500,
                      "minimum": 1,
                      "description": "Maximum number of events to return (1-500; default 100)."
                    },
                    "since": {
                      "type": "integer",
                      "minimum": 0,
                      "description": "Cursor: return only events with an event_id greater than this (0 = from the start). Pass the last event_id you saw to page forward."
                    },
                    "ticker": {
                      "type": "string",
                      "pattern": "^\\S+$",
                      "maxLength": 12,
                      "minLength": 1,
                      "description": "Optional server-side filter: only events whose record is filed by this ticker's issuer or exposes it as a co-filer in tickers[] (case-insensitive). Composes with since — limit counts matched events, so a filtered backlog drains without gaps. Unknown ticker returns an empty 200. Does not change the price."
                    }
                  }
                }
              },
              "additionalProperties": false
            },
            "output": {
              "type": "object",
              "required": [
                "type"
              ],
              "properties": {
                "type": {
                  "type": "string"
                },
                "example": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "required": [
                          "event_id",
                          "catalyst_id",
                          "event_type"
                        ],
                        "properties": {
                          "ticker": {
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "applied": {
                            "type": "boolean"
                          },
                          "company": {
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "outcome": {
                            "enum": [
                              "approved",
                              "tentative",
                              "crl",
                              "none_found",
                              null
                            ],
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "tickers": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          },
                          "event_id": {
                            "type": "integer"
                          },
                          "filed_at": {
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "new_date": {
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "accession": {
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "authority": {
                            "enum": [
                              "human_lock",
                              "llm_high",
                              "regex",
                              "llm_medium",
                              "llm_low",
                              null
                            ],
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "drug_name": {
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "confidence": {
                            "enum": [
                              "high",
                              "medium",
                              "low",
                              null
                            ],
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "delta_days": {
                            "type": [
                              "integer",
                              "null"
                            ]
                          },
                          "event_type": {
                            "enum": [
                              "new_date_assigned",
                              "date_extension",
                              "decision_outcome",
                              "retracted",
                              "restored",
                              "corrected"
                            ],
                            "type": "string"
                          },
                          "indication": {
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "prior_date": {
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "source_url": {
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "catalyst_id": {
                            "type": "integer"
                          },
                          "detected_at": {
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "merged_into": {
                            "type": [
                              "integer",
                              "null"
                            ]
                          },
                          "date_changed": {
                            "type": "boolean"
                          },
                          "days_to_date": {
                            "type": [
                              "integer",
                              "null"
                            ]
                          },
                          "source_quote": {
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "date_confidence": {
                            "enum": [
                              "confirmed",
                              "reported",
                              "estimated",
                              null
                            ],
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "new_date_upcoming": {
                            "type": "boolean"
                          },
                          "application_number": {
                            "type": [
                              "string",
                              "null"
                            ]
                          }
                        }
                      },
                      "description": "One row per state change, oldest-first while draining a `since` cursor. `tickers` lists every co-filer exposed to the decision."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Result metadata, e.g. total count."
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "x402Version": 2
  },
  {
    "error": "Payment required",
    "accepts": [
      {
        "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
        "extra": {
          "name": "USD Coin",
          "version": "2"
        },
        "payTo": "0xcD8975137D48ED9bfD1C299a62c01420B860070d",
        "amount": "20000",
        "scheme": "exact",
        "network": "eip155:8453",
        "maxTimeoutSeconds": 300
      },
      {
        "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
        "extra": {
          "feePayer": "Hc3sdEAsCGQcpgfivywog9uwtk8gUBUZgsxdME1EJy88"
        },
        "payTo": "3gM4YDDPAi7w1di7rHAAaHc5T1tR7NRXzLWzPPN4ZRaM",
        "amount": "20000",
        "scheme": "exact",
        "network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
        "maxTimeoutSeconds": 300
      }
    ],
    "resource": {
      "url": "https://api.biotechcatalystsentinel.com/v1/catalysts/upcoming",
      "mimeType": "application/json",
      "description": "Upcoming FDA drug-approval (PDUFA) decision dates for US-listed biotechs — a forward catalyst calendar from primary SEC 8-K/6-K filings, every date grounded in a verbatim filing quote, cited to its EDGAR accession and later scored against the actual FDA decision. Use when you need the next 1-365 days of binary FDA events, whole feed or one ticker. Verify accuracy AND coverage free at GET /v1/accuracy before you pay. Flat price per request."
    },
    "extensions": {
      "bazaar": {
        "info": {
          "input": {
            "type": "http",
            "method": "GET",
            "queryParams": {
              "limit": 200,
              "within_days": 365
            }
          },
          "output": {
            "type": "json",
            "example": {
              "data": [
                {
                  "cik": "0009999001",
                  "stage": "set",
                  "ticker": "XSMPL",
                  "company": "Sample Therapeutics, Inc.",
                  "tickers": [
                    "XSMPL",
                    "XPRTN"
                  ],
                  "age_days": 12,
                  "authority": "llm_high",
                  "drug_name": "SAMPLIMAB",
                  "confidence": "high",
                  "indication": "sample indication (moderate-to-severe examplitis)",
                  "pdufa_date": "2026-11-15",
                  "source_url": "https://www.sec.gov/Archives/edgar/data/9999001/000999900126000001/0009999001-26-000001-index.htm",
                  "catalyst_id": 990001,
                  "last_updated": "2026-07-20T14:02:11.000000+00:00",
                  "source_quote": "The FDA has set a Prescription Drug User Fee Act (PDUFA) target action date of November 15, 2026 for SAMPLIMAB. [FICTIONAL SAMPLE — not a real filing sentence]",
                  "date_confidence": "confirmed",
                  "source_accession": "0009999001-26-000001",
                  "application_number": "BLA999901"
                }
              ],
              "meta": {
                "limit": 200,
                "total": 1,
                "has_more": null,
                "next_since": null
              }
            }
          }
        },
        "schema": {
          "type": "object",
          "$schema": "https://json-schema.org/draft/2020-12/schema",
          "required": [
            "input"
          ],
          "properties": {
            "input": {
              "type": "object",
              "required": [
                "type",
                "method"
              ],
              "properties": {
                "type": {
                  "type": "string",
                  "const": "http"
                },
                "method": {
                  "enum": [
                    "GET",
                    "HEAD",
                    "DELETE"
                  ],
                  "type": "string"
                },
                "queryParams": {
                  "type": "object",
                  "required": [],
                  "properties": {
                    "limit": {
                      "type": "integer",
                      "default": 200,
                      "maximum": 500,
                      "minimum": 1,
                      "description": "Maximum number of catalysts to return (1-500; default 200)."
                    },
                    "ticker": {
                      "type": "string",
                      "pattern": "^\\S+$",
                      "maxLength": 12,
                      "minLength": 1,
                      "description": "Optional server-side filter: only records filed by this ticker's issuer or exposing it as a co-filer in tickers[] (case-insensitive; the same membership the free /v1/coverage counts). Unknown ticker returns an empty 200. Omit for the whole feed. Does not change the price."
                    },
                    "within_days": {
                      "type": "integer",
                      "default": 365,
                      "maximum": 365,
                      "minimum": 1,
                      "description": "Only return catalysts whose PDUFA date falls within this many days from today (1-365; default 365)."
                    }
                  }
                }
              },
              "additionalProperties": false
            },
            "output": {
              "type": "object",
              "required": [
                "type"
              ],
              "properties": {
                "type": {
                  "type": "string"
                },
                "example": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "required": [
                          "catalyst_id",
                          "stage"
                        ],
                        "properties": {
                          "cik": {
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "stage": {
                            "enum": [
                              "set",
                              "extended",
                              "resolved",
                              "crl"
                            ],
                            "type": "string"
                          },
                          "ticker": {
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "company": {
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "tickers": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          },
                          "age_days": {
                            "type": [
                              "integer",
                              "null"
                            ]
                          },
                          "authority": {
                            "enum": [
                              "human_lock",
                              "llm_high",
                              "regex",
                              "llm_medium",
                              "llm_low",
                              null
                            ],
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "drug_name": {
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "confidence": {
                            "enum": [
                              "high",
                              "medium",
                              "low",
                              null
                            ],
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "indication": {
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "pdufa_date": {
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "source_url": {
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "catalyst_id": {
                            "type": "integer"
                          },
                          "last_updated": {
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "source_quote": {
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "date_confidence": {
                            "enum": [
                              "confirmed",
                              "reported",
                              "estimated",
                              null
                            ],
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "source_accession": {
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "application_number": {
                            "type": [
                              "string",
                              "null"
                            ]
                          }
                        }
                      },
                      "description": "One row per upcoming FDA decision. One decision is ONE row even when several public companies file on it (sponsor, originator, royalty holder) — filter on the `tickers` array, not the single `ticker`, or you will miss catalysts a partner is exposed to."
                    },
                    "meta": {
                      "type": "object",
                      "description": "Result metadata, e.g. total count."
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "x402Version": 2
  }
]

OVER TIME

All charts use the 90d selector; each series spans only the dates it has data for. Every series is also served as JSON at /api/v1/services/biotech-catalyst-sentinel/price, /scores, /volume and /buyers. On-chain volume and distinct buyers are measured over the service's settlement address and are a conservative undercount (only settlements that reach a measured facilitator are counted). The on-chain series roll up hourly, so the latest day can be up to about an hour behind; distinct buyers are counted per payout address, so a service that settles to more than one address is an upper bound.

UPTIME
06-28 · uptime 100.0% · 672ms avg06-29 · uptime 100.0% · 776ms avg06-30 · uptime 100.0% · 770ms avg07-01 · uptime 100.0% · 837ms avg07-02 · uptime 100.0% · 769ms avg07-03 · uptime 100.0% · 618ms avg07-04 · uptime 100.0% · 647ms avg07-05 · uptime 100.0% · 684ms avg07-06 · uptime 100.0% · 691ms avg07-07 · uptime 100.0% · 529ms avg07-08 · uptime 100.0% · 356ms avg07-09 · uptime 100.0% · 334ms avg07-10 · uptime 100.0% · 280ms avg07-11 · uptime 100.0% · 418ms avg07-12 · uptime 100.0% · 375ms avg07-13 · uptime 100.0% · 597ms avg07-14 · uptime 100.0% · 526ms avg07-15 · uptime 100.0% · 863ms avg07-16 · uptime 100.0% · 857ms avg07-17 · uptime 100.0% · 567ms avg07-18 · uptime 100.0% · 424ms avg07-19 · uptime 100.0% · 365ms avg07-20 · uptime 100.0% · 503ms avg07-21 · uptime 100.0% · 525ms avg07-22 · uptime 100.0% · 342ms avg07-23 · uptime 100.0% · 220ms avg07-24 · uptime 100.0% · 388ms avg07-25 · uptime 100.0% · 769ms avg07-26 · uptime 100.0% · 743ms avg07-27 · uptime 100.0% · 920ms avg07-28 · uptime 100.0% · 888ms avg07-29 · uptime 100.0% · 645ms avg07-30 · uptime 100.0% · 720ms avg07-31 · uptime 100.0% · 806ms avg08-01 · uptime 100.0% · 1020ms avg08-02 · uptime 100.0% · 841ms avg08-03 · uptime 100.0% · 1051ms avg08-04 · uptime 100.0% · 815ms avg08-05 · uptime 100.0% · 1122ms avg08-06 · uptime 100.0% · 760ms avg08-07 · uptime 100.0% · 566ms avg08-08 · uptime 100.0% · 626ms avg08-09 · uptime 100.0% · 824ms avg08-10 · uptime 100.0% · 759ms avg08-11 · uptime 100.0% · 529ms avg08-12 · uptime 100.0% · 548ms avg08-13 · uptime 100.0% · 735ms avg08-14 · uptime 100.0% · 656ms avg08-15 · uptime 100.0% · 861ms avg08-16 · uptime 100.0% · 895ms avg08-17 · uptime 100.0% · 827ms avg08-18 · uptime 100.0% · 822ms avg08-19 · uptime 100.0% · 735ms avg08-20 · uptime 100.0% · 752ms avg08-21 · uptime 100.0% · 796ms avg08-22 · uptime 100.0% · 750ms avg08-23 · uptime 100.0% · 618ms avg08-24 · uptime 100.0% · 761ms avg08-25 · uptime 100.0% · 736ms avg08-26 · uptime 100.0% · 930ms avg08-27 · uptime 100.0% · 1323ms avg08-28 · uptime 100.0% · 1059ms avg08-29 · uptime 100.0% · 1116ms avg08-30 · uptime 100.0% · 814ms avg08-31 · uptime 100.0% · 1174ms avg09-01 · uptime 100.0% · 817ms avg09-02 · uptime 100.0% · 1030ms avg09-03 · uptime 100.0% · 1114ms avg09-04 · uptime 100.0% · 1229ms avg09-05 · uptime 100.0% · 647ms avg09-06 · uptime 100.0% · 420ms avg09-07 · uptime 100.0% · 496ms avg09-08 · uptime 100.0% · 489ms avg09-09 · uptime 100.0% · 433ms avg09-10 · uptime 100.0% · 485ms avg09-11 · uptime 100.0% · 455ms avg09-12 · uptime 100.0% · 370ms avg09-13 · uptime 100.0% · 461ms avg09-14 · uptime 100.0% · 463ms avg09-15 · uptime 100.0% · 459ms avg09-16 · uptime 100.0% · 348ms avg09-17 · uptime 100.0% · 424ms avg09-18 · uptime 100.0% · 381ms avg09-19 · uptime 100.0% · 361ms avg09-20 · uptime 100.0% · 344ms avg09-21 · uptime 100.0% · 354ms avg09-22 · uptime 100.0% · 415ms avg09-23 · uptime 100.0% · 408ms avg09-24 · uptime 100.0% · 565ms avg09-25 · uptime 100.0% · 376ms avg06-2809-25
90d UPTIME 100%
RESPONSE TIME
06-28 · 672ms avg06-28 · 672ms avg06-29 · 776ms avg06-29 · 776ms avg06-30 · 770ms avg06-30 · 770ms avg07-01 · 837ms avg07-01 · 837ms avg07-02 · 769ms avg07-02 · 769ms avg07-03 · 618ms avg07-03 · 618ms avg07-04 · 647ms avg07-04 · 647ms avg07-05 · 684ms avg07-05 · 684ms avg07-06 · 691ms avg07-06 · 691ms avg07-07 · 529ms avg07-07 · 529ms avg07-08 · 356ms avg07-08 · 356ms avg07-09 · 334ms avg07-09 · 334ms avg07-10 · 280ms avg07-10 · 280ms avg07-11 · 418ms avg07-11 · 418ms avg07-12 · 375ms avg07-12 · 375ms avg07-13 · 597ms avg07-13 · 597ms avg07-14 · 526ms avg07-14 · 526ms avg07-15 · 863ms avg07-15 · 863ms avg07-16 · 857ms avg07-16 · 857ms avg07-17 · 567ms avg07-17 · 567ms avg07-18 · 424ms avg07-18 · 424ms avg07-19 · 365ms avg07-19 · 365ms avg07-20 · 503ms avg07-20 · 503ms avg07-21 · 525ms avg07-21 · 525ms avg07-22 · 342ms avg07-22 · 342ms avg07-23 · 220ms avg07-23 · 220ms avg07-24 · 388ms avg07-24 · 388ms avg07-25 · 769ms avg07-25 · 769ms avg07-26 · 743ms avg07-26 · 743ms avg07-27 · 920ms avg07-27 · 920ms avg07-28 · 888ms avg07-28 · 888ms avg07-29 · 645ms avg07-29 · 645ms avg07-30 · 720ms avg07-30 · 720ms avg07-31 · 806ms avg07-31 · 806ms avg08-01 · 1020ms avg08-01 · 1020ms avg08-02 · 841ms avg08-02 · 841ms avg08-03 · 1051ms avg08-03 · 1051ms avg08-04 · 815ms avg08-04 · 815ms avg08-05 · 1122ms avg08-05 · 1122ms avg08-06 · 760ms avg08-06 · 760ms avg08-07 · 566ms avg08-07 · 566ms avg08-08 · 626ms avg08-08 · 626ms avg08-09 · 824ms avg08-09 · 824ms avg08-10 · 759ms avg08-10 · 759ms avg08-11 · 529ms avg08-11 · 529ms avg08-12 · 548ms avg08-12 · 548ms avg08-13 · 735ms avg08-13 · 735ms avg08-14 · 656ms avg08-14 · 656ms avg08-15 · 861ms avg08-15 · 861ms avg08-16 · 895ms avg08-16 · 895ms avg08-17 · 827ms avg08-17 · 827ms avg08-18 · 822ms avg08-18 · 822ms avg08-19 · 735ms avg08-19 · 735ms avg08-20 · 752ms avg08-20 · 752ms avg08-21 · 796ms avg08-21 · 796ms avg08-22 · 750ms avg08-22 · 750ms avg08-23 · 618ms avg08-23 · 618ms avg08-24 · 761ms avg08-24 · 761ms avg08-25 · 736ms avg08-25 · 736ms avg08-26 · 930ms avg08-26 · 930ms avg08-27 · 1323ms avg08-27 · 1323ms avg08-28 · 1059ms avg08-28 · 1059ms avg08-29 · 1116ms avg08-29 · 1116ms avg08-30 · 814ms avg08-30 · 814ms avg08-31 · 1174ms avg08-31 · 1174ms avg09-01 · 817ms avg09-01 · 817ms avg09-02 · 1030ms avg09-02 · 1030ms avg09-03 · 1114ms avg09-03 · 1114ms avg09-04 · 1229ms avg09-04 · 1229ms avg09-05 · 647ms avg09-05 · 647ms avg09-06 · 420ms avg09-06 · 420ms avg09-07 · 496ms avg09-07 · 496ms avg09-08 · 489ms avg09-08 · 489ms avg09-09 · 433ms avg09-09 · 433ms avg09-10 · 485ms avg09-10 · 485ms avg09-11 · 455ms avg09-11 · 455ms avg09-12 · 370ms avg09-12 · 370ms avg09-13 · 461ms avg09-13 · 461ms avg09-14 · 463ms avg09-14 · 463ms avg09-15 · 459ms avg09-15 · 459ms avg09-16 · 348ms avg09-16 · 348ms avg09-17 · 424ms avg09-17 · 424ms avg09-18 · 381ms avg09-18 · 381ms avg09-19 · 361ms avg09-19 · 361ms avg09-20 · 344ms avg09-20 · 344ms avg09-21 · 354ms avg09-21 · 354ms avg09-22 · 415ms avg09-22 · 415ms avg09-23 · 408ms avg09-23 · 408ms avg09-24 · 565ms avg09-24 · 565ms avg09-25 · 376ms avg09-25 · 376ms avg06-2809-25
AVG RESP 644ms
PRICE (captured 402, USD)
06-27 · $0.0209-08 · $0.03509-25 · $0.035$0.03506-2709-25

Median across 2 endpoints. Use the selector to isolate one.

SUB-SCORES (uptime + x402 compliance)
07-13 uptime: 100.0% compliance: 92% checks07-14 uptime: 100.0% compliance: 92% checks07-15 uptime: 100.0% compliance: 92% checks07-16 uptime: 100.0% compliance: 92% checks07-17 uptime: 100.0% compliance: 100% checks07-18 uptime: 100.0% compliance: 100% checks07-19 uptime: 100.0% compliance: 100% checks07-20 uptime: 100.0% compliance: 100% checks07-21 uptime: 100.0% compliance: 100% checks07-22 uptime: 100.0% compliance: 100% checks07-23 uptime: 100.0% compliance: 100% checks07-24 uptime: 100.0% compliance: 100% checks07-25 uptime: 100.0% compliance: 100% checks07-26 uptime: 100.0% compliance: 100% checks07-27 uptime: 100.0% compliance: 100% checks07-28 uptime: 100.0% compliance: 100% checks07-29 uptime: 100.0% compliance: 100% checks07-30 uptime: 100.0% compliance: 100% checks07-31 uptime: 100.0% compliance: 100% checks08-01 uptime: 100.0% compliance: 100% checks08-02 uptime: 100.0% compliance: 100% checks08-03 uptime: 100.0% compliance: 100% checks08-04 uptime: 100.0% compliance: 100% checks08-05 uptime: 100.0% compliance: 100% checks08-06 uptime: 100.0% compliance: 100% checks08-07 uptime: 100.0% compliance: 100% checks08-08 uptime: 100.0% compliance: 100% checks08-09 uptime: 100.0% compliance: 100% checks08-10 uptime: 100.0% compliance: 100% checks08-11 uptime: 100.0% compliance: 100% checks08-12 uptime: 100.0% compliance: 100% checks08-13 uptime: 100.0% compliance: 100% checks08-14 uptime: 100.0% compliance: 100% checks08-15 uptime: 100.0% compliance: 100% checks08-16 uptime: 100.0% compliance: 100% checks08-17 uptime: 100.0% compliance: 100% checks08-18 uptime: 100.0% compliance: 100% checks08-19 uptime: 100.0% compliance: 100% checks08-20 uptime: 100.0% compliance: 100% checks08-21 uptime: 100.0% compliance: 100% checks08-22 uptime: 100.0% compliance: 100% checks08-23 uptime: 100.0% compliance: 100% checks08-24 uptime: 100.0% compliance: 100% checks08-25 uptime: 100.0% compliance: 100% checks08-26 uptime: 100.0% compliance: 100% checks08-27 uptime: 100.0% compliance: 100% checks08-28 uptime: 100.0% compliance: 100% checks08-29 uptime: 100.0% compliance: 100% checks08-30 uptime: 100.0% compliance: 100% checks08-31 uptime: 100.0% compliance: 100% checks09-01 uptime: 100.0% compliance: 100% checks09-02 uptime: 100.0% compliance: 100% checks09-03 uptime: 100.0% compliance: 100% checks09-04 uptime: 100.0% compliance: 100% checks09-05 uptime: 100.0% compliance: 100% checks09-06 uptime: 100.0% compliance: 100% checks09-07 uptime: 100.0% compliance: 100% checks09-08 uptime: 100.0% compliance: 100% checks09-09 uptime: 100.0% compliance: 100% checks09-10 uptime: 100.0% compliance: 100% checks09-11 uptime: 100.0% compliance: 100% checks09-12 uptime: 100.0% compliance: 100% checks09-13 uptime: 100.0% compliance: 100% checks09-14 uptime: 100.0% compliance: 100% checks09-15 uptime: 100.0% compliance: 100% checks09-16 uptime: 100.0% compliance: 100% checks09-17 uptime: 100.0% compliance: 100% checks09-18 uptime: 100.0% compliance: 100% checks09-19 uptime: 100.0% compliance: 100% checks09-20 uptime: 100.0% compliance: 100% checks09-21 uptime: 100.0% compliance: 100% checks09-22 uptime: 100.0% compliance: 100% checks09-23 uptime: 100.0% compliance: 100% checks09-24 uptime: 100.0% compliance: 100% checks09-25 uptime: 100.0% compliance: 100% checksuptimecompliance07-1309-25

checklist grew 11->14 on 2026-07-28; a step here is a metric change, not a regression

PILLARS OVER TIME (measured)

Measured site and economics pillars from the assessment history, so the latest value shown elsewhere on this page reads as a point on a trend rather than a permanent state.

VOLUME (on-chain settlement, USD)
07-08 · $0.0407-16 · $0.1807-26 · $0.0207-28 · $0.0208-07 · $0.0208-12 · $0.0208-14 · $0.0908-16 · $0.0208-18 · $0.0208-20 · $0.0208-23 · $0.3008-24 · $0.4408-27 · $0.0208-29 · $0.1408-30 · $0.0208-31 · $0.0709-05 · $0.2109-06 · $0.0909-08 · $0.0209-09 · $0.0209-11 · $0.0209-12 · $0.0209-17 · $0.0209-24 · $0.02peak $0.4407-0809-24
DISTINCT BUYERS
07-08 · 1 buyer07-16 · 2 buyers07-26 · 1 buyer07-28 · 1 buyer08-07 · 1 buyer08-12 · 1 buyer08-14 · 2 buyers08-16 · 1 buyer08-18 · 1 buyer08-20 · 1 buyer08-23 · 3 buyers08-24 · 3 buyers08-27 · 1 buyer08-29 · 1 buyer08-30 · 1 buyer08-31 · 1 buyer09-05 · 2 buyers09-06 · 2 buyers09-08 · 1 buyer09-09 · 1 buyer09-11 · 1 buyer09-12 · 1 buyer09-17 · 1 buyer09-24 · 1 buyerpeak 3 buyers07-0809-24

COMPLIANCE

14/14 checks pass · grade A

last 402 captured 2026-09-23 · last up 2026-09-25

  • 402 payload captured
  • accepts[] array present
  • payTo address recoverable
  • payTo at accepts[0].payTo (conformant shape)
  • payTo is a valid on-chain address
  • atomic price declared
  • atomic price in a sane range
  • asset (token) address declared
  • network resolves to CAIP-2
  • payment scheme declared
  • served over HTTPS
  • declares the current x402 version (2)
  • EIP-712 domain parameters present on every EVM entry
  • x402 v2 envelope delivered in the payment-required header

SITE PILLARS

  • homepage reachable
  • openapi doc
  • pricing page
  • llms.txt
  • robots.txt
  • terms page
recent checks (18) live · click to expand
TIME STATUS RESP CAUSE
● SLOW 1084ms
● OK 120ms
● OK 254ms
● OK 114ms
● OK 297ms
● OK 281ms
● OK 465ms
● OK 143ms
● OK 142ms
● OK 721ms
● OK 647ms
● OK 776ms
● OK 380ms
● OK 261ms
● OK 295ms
● OK 710ms
● OK 93ms
● OK 856ms

EMBED THIS BADGE

Show that Biotech Catalyst Sentinel is monitored on x402-list. Paste this on your site or README, it links back to this live listing.

Biotech Catalyst Sentinel listed on x402-list
status
Biotech Catalyst Sentinel uptime on x402-list
live uptime
// HTML
<a href="https://x402-list.com/services/biotech-catalyst-sentinel?utm_source=badge&utm_medium=referral&utm_campaign=embed">
  <img src="https://x402-list.com/badge/biotech-catalyst-sentinel.svg" alt="Biotech Catalyst Sentinel listed on x402-list" height="28">
</a>
// Markdown
[![Biotech Catalyst Sentinel on x402-list](https://x402-list.com/badge/biotech-catalyst-sentinel.svg)](https://x402-list.com/services/biotech-catalyst-sentinel?utm_source=badge&utm_medium=referral&utm_campaign=embed)
// HTML · live uptime variant
<a href="https://x402-list.com/services/biotech-catalyst-sentinel?utm_source=badge&utm_medium=referral&utm_campaign=embed">
  <img src="https://x402-list.com/badge/biotech-catalyst-sentinel.svg?data=uptime" alt="Biotech Catalyst Sentinel uptime on x402-list" height="28">
</a>

RUN THIS SERVICE?

Keep this listing accurate: propose changes to the name, description, website, category or add new endpoints to monitor. Ownership is verified with a domain proof and every change is reviewed manually; measured data stays read-only.

[ update this listing ]

Earn the verified tier: x402list pays a real call to this endpoint and, if it delivers, the service is delivery-verified. The fee covers the cost of the probe, not the badge; there is no refund if the call does not deliver. Agent and API only, no in-browser signing. See /api.

[ verify this service ($0.25) ]

To request delisting, email info@x402-list.com or update your listing at /services/biotech-catalyst-sentinel/update.