Browse by topic

Each topic is a buyer's home: guides, tools, and a few directory listings.

Independent guidance on the services practices actually buy. The full provider directory sits behind every topic.

Topics
Credentialing & Enrollment Medical Billing & RCM EHR & Practice Software Practice Startup & Consulting HIPAA Compliance, Risk & Legal
Browse
Buyer guides Decision Tools How We Evaluate Research Directory Partners
Get MatchedList Your Firm

Provider API schema and changelog

The published field contract for /api/provider/{slug}. Every field we serve is listed by name. Every field we have removed is listed by name, with its effective date.

Effective 2026-09-10. This release reduced the provider object from 59 returned fields to 38. Twenty fields were removed outright and are enumerated in Removed fields below, rather than left for callers to discover as absences. One further field, entity_type, is still read internally by the admission gate but is no longer returned. Deployed commit d722a6bf.

What the endpoint returns

GET /api/provider/{slug} returns { "success": true, "provider": { … } }. The provider object contains the 38 provider fields below, plus three review aggregates (average_rating, review_count, reviews) that are computed rather than stored on the provider record. Fields with no value for a given provider are returned as null; they are not omitted.

The response body is built by selecting the named fields, not by deleting unwanted ones. A field that is not on this page is not served, and adding a column to our database does not add it to this API.

Served fields (38)

Identity and directory content (17)

FieldNotes
id, slugStable identifiers. slug is the URL key.
company_nameProvider name.
category, categories, super_categoryCategory assignment and its parent grouping.
website, phonePublic contact points.
address, city, state, city_slug, state_abbrLocation, plus the URL-safe forms.
descriptionDirectory description.
services_tags, specialtiesService and specialty tags.
practice_size_fitPractice sizes the provider serves.

Listing status and profile completeness (4)

FieldNotes
verifiedVerification flag. Also part of the public MCP tool contract.
quality_scoreProfile completeness, 0-100: points for listing fields present (website, phone, description, services, location, source, firmographics). Not a quality or reputation judgement. Rendered on the public provider page as Profile Completeness and part of the MCP tool contract; a value of 0 means the row was never scored and is not displayed as a score.
featuredPaid placement. Disclosed deliberately: a caller has a legitimate interest in knowing a listing is promoted.
claimedWhether the provider has claimed the listing. The claim flow is itself public.

Third-party reputation (2)

FieldNotes
google_rating, google_review_countAlready public at the source.

Firmographics (6)

FieldNotes
apollo_employee_count, apollo_founded_year, apollo_annual_revenue, apollo_industry, apollo_funding, apollo_linkedin_urlBusiness attributes from a third-party firmographic feed.

Enriched corpus (6)

FieldNotes
enriched_descriptionExtracted description.
enriched_services_tags, enriched_certifications, enriched_practice_size_fitExtracted service, certification and practice-size detail.
enriched_locationsLocations served. Constrained to a fixed grammar.
enriched_founding_yearFounding year, where extracted.

Provenance and grade (3)

FieldValues
extraction_confidenceClosed set: high, medium, low, or null.
extraction_grounded_inClosed set: site, both, or null. Values outside the published set are returned as null rather than passed through.
tier1_gradeClosed set: A, B, or null. Also a caller-supplied filter on the MCP search tool.

Removed fields (20) — effective 2026-09-10

These fields were served before 2026-09-10 and are no longer returned. They are named here so the change is a published contract rather than a silent absence. All are internal operational values; none is directory content.

Removed fieldWhy
sourceInternal ingestion label — an open-ended internal string that also named our data vendors to any caller.
tierInternal listing bookkeeping. Held a single value across the whole corpus, so it conveyed nothing while disclosing our commercial tiering.
claimed_atTimestamp of a private business event. claimed answers the public question.
reputation_score, demand_scoreInternal ranking inputs. Publishing a ranking input is an invitation to game it, and neither was rendered anywhere.
indexed, no_nexusOur own indexing decisions. The effect is public; the verdict is not.
merged_into, parent_slugInternal de-duplication pointers. The redirects they drive still happen server-side.
tier1_memberThe internal boolean behind tier1_grade. The grade is the published signal.
extraction_fetch_mode, extracted_atExtraction-run telemetry and cadence.
liveness_status, liveness_checked_at, last_alive_at, refreshed_atOur liveness-probe verdicts and probe cadence.
apollo_enriched_atVendor-feed run timestamp. Internal cadence.
submitted_at, created_at, updated_atOur row write timestamps. These are not a content-freshness signal about the provider.

Fields that are never served

entity_type is read by the admission gate that decides whether a provider is served at all. It is queried and never returned.

Five fields are withheld unconditionally and are not part of any tier of this API: edit_token, claimed_email, provenance, apollo_short_description and liveness_evidence.

How changes are published

A field added to or removed from the served set is announced on this page with its effective date. We do not remove a field from the response without naming it here.

Higher volume or bulk access: see Data Licensing. Programmatic access options: see API Access.