Healthcare

Drug Formulary Entry

/extract/json

A drug entry from a health insurance plan formulary, including tier, coverage requirements, and pricing.

Download the schemahealthcare/drug-formulary-entry.json

drug-formulary-entry.schema

// names marked ? are optional

drug_name_brand?:string// Brand name of the drug. Commonly found in: formulary document, pharmacy benefit page.
drug_name_generic:string// Generic (INN) name of the drug. Commonly found in: formulary document, pharmacy benefit page.
ndc?:string// National Drug Code (NDC). Commonly found in: formulary PDF, NDC database.
manufacturer?:string// Drug manufacturer. Commonly found in: formulary document, drug label.
drug_class?:string// Pharmacological drug class. Commonly found in: formulary document, FDA drug class.
dosage_forms?:object[]// Available dosage forms, strengths, and routes. Commonly found in: formulary document, drug label.
form:string// Dosage form (e.g., tablet, capsule, injection).
strength?:string// Drug strength (e.g., 10 mg, 500 mg/5 mL).
route?:string// Route of administration (e.g., oral, intravenous).
formulary_tier?:string// Formulary tier which determines cost-sharing. Commonly found in: formulary document, pharmacy benefit summary. One of: 1, 2, 3, 4, 5, specialty, other.
prior_auth_required?:boolean// Whether prior authorization is required. Commonly found in: formulary document, coverage restrictions.
quantity_limits?:object// Quantity limits on coverage. Commonly found in: formulary document, coverage restrictions.
quantity:number// Maximum quantity covered.
days_supply:number// Days supply for the quantity limit.
step_therapy_required?:boolean// Whether step therapy (fail-first) is required. Commonly found in: formulary document, coverage restrictions.
plan_name?:string// Name of the insurance plan. Commonly found in: formulary header, plan document.
plan_year?:number// Plan year for this formulary. Commonly found in: formulary header, plan document.
retail_price_30day?:number// Retail pharmacy price for a 30-day supply in USD. Commonly found in: formulary cost-sharing table, pharmacy page.
mail_order_price_90day?:number// Mail order price for a 90-day supply in USD. Commonly found in: formulary cost-sharing table, pharmacy page.
generic_available?:boolean// Whether a generic equivalent is available. Commonly found in: formulary document, pharmacy data.
black_box_warning?:boolean// Whether the drug carries an FDA black box warning. Commonly found in: FDA label, drug monograph.
controlled_substance_schedule?:string// DEA controlled substance schedule if applicable. Commonly found in: DEA database, drug label.
page_title?:string// Title of the source page. Tabstack auto-fills this from page metadata when left empty.
favicon?:string// Favicon URL of the source page. Tabstack auto-fills this from page metadata when left empty.

Try it live

A sample Drug Formulary Entry document, generated from the schema. Edit it, or paste a real response, and see it checked against the schema instantly. It runs in your browser, nothing is sent anywhere.

your-output.json
validation

Valid, matches Drug Formulary Entry

Every required field is present and each value matches its type. Extra fields are allowed. A field the page does not carry is not guaranteed to come back as null, so check values rather than only checking for null.

/extract/json

Copy-paste usage

The same call in TypeScript, Python, and curl. Point it at your own URL and go. The schema drives the response, so you get back the fields you asked for instead of a page to parse.

Features

  • Typed TypeScript and Python SDKs
  • One call, no parsing code and no second LLM pass
  • The same field names on every request, even when the page layout changes
drug-formulary-entry.ts
// curl -sfLO https://raw.githubusercontent.com/Mozilla-Ocho/tabstack-schemas/main/healthcare/drug-formulary-entry.json
import Tabstack from '@tabstack/sdk'
import schema from './drug-formulary-entry.json' with { type: 'json' }

const client = new Tabstack() // reads TABSTACK_API_KEY from the environment

try {
  const data = await client.extract.json({
    url: 'https://example.org/clinical-trial/NCT00000000',
    json_schema: schema,
    effort: 'standard', // 'min' | 'standard' | 'max'
  })

  console.log(data)
} catch (err) {
  console.error('Extraction failed:', err)
}

Ship this schema in one call.

Pass a URL, get matching JSON back. Free to start, no extraction layer to maintain.