API

Catalog API (products & protocols)

List and read your formulary — products (drug, strength, form) and protocols (reusable product bundles) you place orders against.

Your catalog is the formulary you order against — a set of products (a specific drug at a specific strength and form) and protocols (named bundles of products with default dosing). Order line items reference products by id, so you'll list the catalog to build order forms and resolve what a patient is being sent.

Products#

A product is one dispensable item: a drug at a specific strength and form, tied to a pharmacy connection. Every product carries the identifiers and clinical metadata you need to render it and place an order.

Field Type What it is
id string Product id — what order line items reference.
displayName string Human-facing name for your storefront.
drugName string The drug.
drugStrength string Strength (e.g. 2.5mg).
drugForm string Dosage form (e.g. vial, capsule).
route string? Route of administration, when set.
category string? Your grouping (e.g. weight-management).
defaultSig string? Default directions ("sig") for this product.
quantityUnits string Unit quantity is counted in (defaults to each).
pharmacyConnectionId string Which pharmacy fills it.
flags object { refrigerated, controlled } handling flags.
intakeQuestionnaireKey string? Compliance intake form this product requires.
followupQuestionnaireKey string? Follow-up questionnaire, when applicable.

List products#

Returns every product in your formulary, ordered by displayName.

curl https://api.neolife.health/v1/products \
  -H "Authorization: Bearer $NEOLIFE_API_KEY"
[
  {
    "id": "prod_8fk2",
    "displayName": "Semaglutide 2.5mg Vial",
    "drugName": "Semaglutide",
    "drugStrength": "2.5mg",
    "drugForm": "vial",
    "route": "subcutaneous",
    "category": "weight-management",
    "defaultSig": "Inject 0.25mg subcutaneously once weekly",
    "quantityUnits": "each",
    "pharmacyConnectionId": "phc_31aa",
    "flags": { "refrigerated": true, "controlled": false },
    "intakeQuestionnaireKey": "glp1-v1"
  }
]

Protocols#

A protocol is a reusable, named bundle — a set of products with default dosing so a common regimen can be ordered in one shot instead of assembling line items by hand. Listing protocols hydrates the referenced products inline.

Field Type What it is
id string Protocol id.
name string Protocol name.
productRefs string[] Product ids in the bundle.
products Product[] The referenced products, hydrated inline.
defaultSig string Default directions for the protocol.
defaultQuantity number Default quantity.
defaultRefills number Default number of refills.
daysSupply number Days-supply the protocol covers.

List protocols#

Returns your protocols with each one's products resolved from productRefs.

curl https://api.neolife.health/v1/protocols \
  -H "Authorization: Bearer $NEOLIFE_API_KEY"
[
  {
    "id": "prot_5m1q",
    "name": "GLP-1 Starter (Month 1)",
    "productRefs": ["prod_8fk2"],
    "defaultSig": "Inject 0.25mg subcutaneously once weekly",
    "defaultQuantity": 1,
    "defaultRefills": 0,
    "daysSupply": 30,
    "products": [
      { "id": "prod_8fk2", "displayName": "Semaglutide 2.5mg Vial", "drugStrength": "2.5mg" }
    ]
  }
]

Notes#

  • The catalog is PHI-free — products and protocols describe your formulary, not patients — so these reads sit outside the PHI boundary.
  • A product's flags.controlled and intakeQuestionnaireKey drive downstream behavior: controlled items and questionnaire-gated products still require a provider-approved intake before an order can be submitted.
  • See the API reference for the base URL, versioning, and error model shared by every resource.