Data / Dictionary
Every field, defined.
Names below are the names in the API. A field with no source stays empty. Typical source is the usual one, not a promise that every row carries it.
Practice
One row is one operating location. Brands, legal entities, and websites hang off it.
| Field | Type | Description | Typical source |
|---|---|---|---|
| id | string | Stable identifier for the location. | Derived |
| name | string | Operating name patients would recognize. | Website, else registry |
| legal_name | string | Legal organization when one is resolved. Empty when it is not. | NPPES |
| address.line1 | string | Street address of the location. | NPPES, CMS, website |
| address.line2 | string | Suite or floor. Empty when none is known. | NPPES, website |
| address.city | string | City. | NPPES, CMS |
| address.state | string | Two-letter state or DC. | NPPES, CMS |
| address.zip | string | ZIP code. | NPPES, CMS |
| phone | string | Primary published phone for the location. | Website, NPPES, CMS |
| fax | string | Fax, when a source prints one. | NPPES, website |
| website | string | The practice's own site, attached only after the identity check. | Practice website |
| specialty | string | Primary specialty label for the location. | NPPES, CMS |
| specialties | string[] | Other specialties resolved at the same location. | NPPES, CMS |
| provider_count | number | Clinicians currently resolved to the location. | Derived from NPPES |
| tier | string | Internal priority used while building the record. Not a quality score for the practice. | Derived |
| tier_reason | string | Why that priority was assigned. | Derived |
| status | string | Build status of the record, such as whether a website is resolved. | Derived |
| booking_url | string | Scheduling link the practice published. | Practice website |
| accepts_new_patients | boolean | null | Only when the practice publishes it. Otherwise null. | Practice website |
| hours | string | Hours as published. Not normalized into a claim we did not read. | Practice website |
Provider
Clinicians are their own objects. Membership in a location has dates and can change.
| Field | Type | Description | Typical source |
|---|---|---|---|
| npi | string | National Provider Identifier. | NPPES |
| name | string | Provider name from the registry, aligned to the site when listed. | NPPES, website |
| credential | string | Credential as published, such as MD, DDS, DPT, LCSW. | NPPES, website |
| specialty | string | That clinician's specialty, which can differ inside one office. | NPPES, CMS |
| sole_proprietor | boolean | Registry sole-proprietor flag. Not an ownership verdict for the practice. | NPPES |
| on_website | boolean | null | Whether a matched team page currently names them. Null if there is no matched site. | Practice website |
Ownership
A classification with evidence, or an explicit unknown. None of these fields is a corporate-family tree.
| Field | Type | Description | Typical source |
|---|---|---|---|
| type | enum | independent, group, dso, health_system, or unknown. | Website, organization resolution |
| group_name | string | Operating group or system name when one is supported. | Website, NPPES |
| group_size | number | null | Locations the evidence supports. Null when the brand is named but the count is not. | Website |
| authorized_official.name | string | Name on the registry filing. Not a verified owner. | NPPES |
| authorized_official.title | string | Title on the registry filing. | NPPES |
Contact
A channel is stored only when it appears on a matched page. Nothing is pattern-generated.
| Field | Type | Description | Typical source |
|---|---|---|---|
| kind | enum | email, form, or phone. | Practice website |
| value | string | The address, URL, or number as published. | Practice website |
| scope | enum | location, practice, or group. A brand inbox is not labeled as the front desk. | Practice website |
| source_url | string | Page where the channel was read. | Practice website |
Web profile
What the matched site says about itself, quoted back to the page.
| Field | Type | Description | Typical source |
|---|---|---|---|
| services | string[] | Services as named on the site. | Practice website |
| team[].name | string | A person named on a team page. | Practice website |
| team[].role | string | Role as printed. | Practice website |
| team[].matched_npi | string | null | NPI when the name resolves. Otherwise null. | Derived |
| locations | object[] | Other offices the same site publishes, each still its own record when corroborated. | Practice website |
| ehr | string | null | EHR fingerprint when the page exposes one. Often null. | Practice website |
| patient_portal | string | null | Portal link or name when published. | Practice website |
| scheduling | string | null | Scheduling tool fingerprint when published. | Practice website |
Evidence
Any field can expand into this object. The short value is what you read. This is why you may trust it.
| Field | Type | Description | Typical source |
|---|---|---|---|
| value | any | The field value. | The field's source |
| status | enum | verified (Confirmed), observed (Seen on website), or candidate (Possible match). | Derived |
| source_url | string | Registry reference or page URL. | The observation |
| quote | string | The span that supports the value. It has to occur in the captured source. | The observation |
| observed_at | timestamp | When that source was read. | Pipeline |
Event
A change we observed. Silence is not an event, and it is not proof that nothing changed.
| Field | Type | Description | Typical source |
|---|---|---|---|
| provider_added | event | A clinician newly resolved to the location. | NPPES diff, website |
| provider_moved | event | A clinician whose location changed. | NPPES diff |
| provider_deactivated | event | A clinician no longer active at the location. | NPPES diff, website |
| practice_created | event | A location record opened. | Derived |
| phone_changed | event | The location phone changed in a source we trust. | NPPES, CMS, website |
| website_found | event | A site passed the identity check for this location. | Practice website |
| group_size_changed | event | The supported location count for the group changed. | Website, resolution |
Read one record with the dictionary open.
Get a key, read a record, and widen the query when the shape is right.