Api Endpoint

2s

One-call drug situational awareness. Give a drug name (resolved to a canonical RxCUI via NIH RxNorm), or an exact rxcui or ndc you already hold, and get back: whether it is currently in FDA shortage, any open or recent FDA recalls, and FDA NDC-directory metadata (labeler, DEA schedule, pharmaceutical class, marketing status). Returns a resolved identity block plus hasCurrentShortage / hasOpenRecall booleans and one found/error block per source (shortages, ndc, recalls). Composition of NIH RxNorm + OpenFDA drug-shortages, NDC directory, and recall enforcement — all free, public-domain US government data; each source degrades independently. Point-in-time public records, not medical advice. Use for pharmacy/supply-chain triage, prescribing-support agents, and verifying a drug is real, scheduled, and available before acting.

Open interactive test console

Offering

Provider
2s.io
Method
GET
Offering type
Api Endpoint
Transport type
http
Category
Health And Medicine
Delivery
Not provided
Pricing model
Not provided
x402 version
2

Endpoint context

URL
https://2s.io/api/medical/drug-status
MIME type
application/json
First seen
2026-10-16T01:54:06.400Z
Last seen
Tags
public-records, identifiers, AI-agents, us-gov-data, X402, upto-billing, ai-gateway, agent-infrastructure

Payment pricing

x402 payment terms are the authoritative price for calling this endpoint.

Payment option 1
0.015 USDC
Atomic price: 15000 · Network: eip155:8453 · Asset: USDC · Scheme: exact
Payment option 2
0.015 USDC
Atomic price: 15000 · Network: solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp · Asset: USDC · Scheme: exact
Raw x402 terms
[
  {
    "scheme": "exact",
    "network": "eip155:8453",
    "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
    "amount": "15000",
    "payTo": "0x2b6D4988Db4723E6908Db86Ab2b8dFBc51FC32C5"
  },
  {
    "scheme": "exact",
    "network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
    "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
    "amount": "15000",
    "payTo": "TW6ntaGzvj63ZgPjszd4FCGmVTGfzv1MAYZbjYcyWhn"
  }
]

Observed health

Status
Healthy
Latest latency
92 ms
Average latency
338 ms
HTTP status
402
Last checked
Reachability
100% over 13 checks

Latency is measured to the first response headers. A reachable result does not verify response accuracy or merchant identity.

Input schema

{
  "type": "object",
  "properties": {
    "type": {
      "const": "http"
    },
    "method": {
      "const": "GET"
    },
    "queryParams": {
      "properties": {
        "drug": {
          "type": "string",
          "description": "Free-text drug name, resolved via RxNorm (e.g. \"amoxicillin\")."
        },
        "rxcui": {
          "type": "string",
          "description": "Exact RxNorm RxCUI, if already known."
        },
        "ndc": {
          "type": "string",
          "description": "Exact NDC (product or package), if already known."
        },
        "limit": {
          "type": "integer",
          "minimum": 1,
          "maximum": 50,
          "default": 10,
          "description": "Max records per source."
        }
      }
    }
  },
  "required": [
    "type",
    "method",
    "queryParams"
  ]
}

Output schema

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "input": {
      "type": "object",
      "properties": {
        "type": {
          "const": "http"
        },
        "method": {
          "const": "GET"
        },
        "queryParams": {
          "properties": {
            "drug": {
              "type": "string",
              "description": "Free-text drug name, resolved via RxNorm (e.g. \"amoxicillin\")."
            },
            "rxcui": {
              "type": "string",
              "description": "Exact RxNorm RxCUI, if already known."
            },
            "ndc": {
              "type": "string",
              "description": "Exact NDC (product or package), if already known."
            },
            "limit": {
              "type": "integer",
              "minimum": 1,
              "maximum": 50,
              "default": 10,
              "description": "Max records per source."
            }
          }
        }
      },
      "required": [
        "type",
        "method",
        "queryParams"
      ]
    }
  },
  "required": [
    "input"
  ]
}