Optional secondary address line — suite/unit/apt, or for Puerto Rico addresses the `URB <name>` urbanization line per USPS Publication 28.
Endpoints
Site finder
/v0/site-finderStart a site-finder job
Start a site-finder job to resolve a site by name, address, and optional identifiers.
Runs the site resolution pipeline (geocoding, embedding search, AI matching)
in the background and returns a jobId. Poll GET /v0/site-finder/jobs/<job_id>
until status is completed or failed to retrieve the result.
Request bodyapplication/json
namestringName of the facility or provider to find, as the caller knows it. A provider's name is resolved to the facility they practice at when possible.
addressLine1stringFirst street address line of the site.
Optional parameters
addressLine2stringcitystringCity of the site. May be omitted or null.
statestringTwo-letter US state code of the site. May be omitted or null.
zipstringZIP code of the site. May be omitted or null.
latitudenumberLatitude of the site in decimal degrees. Optional: the submitted address is geocoded, and these coordinates are used only when that lookup finds nothing. Supply it together with `longitude`.
longitudenumberLongitude of the site in decimal degrees. Optional: the submitted address is geocoded, and these coordinates are used only when that lookup finds nothing. Supply it together with `latitude`.
npistring10-digit National Provider Identifier. When exactly one existing site carries this NPI, that site is returned without an address search.
ncpdpstringNCPDP Provider ID for pharmacy sites. Matched ahead of NPI in the shortcut pipeline because NCPDP uniquely identifies a dispensing location.
taxIdstringFederal tax identification number of the organization. Carried into the new-site proposal when no existing site matches.
isFacilitybooleanWhether the name is a facility (true) or an individual provider (false). When omitted or null, it is inferred from the name.
recordsPhonestringMedical-records phone number. Informational: the site finder does not use it to match or to build a new-site proposal.
recordsFaxstringMedical-records fax number in E.164 format. Informational: the site finder does not use it to match or to build a new-site proposal.
recordsEmailstringMedical-records email address. Informational: the site finder does not use it to match or to build a new-site proposal.
billingPhonestringBilling-records phone number. Informational: the site finder does not use it to match or to build a new-site proposal.
billingFaxstringBilling-records fax number in E.164 format. Informational: the site finder does not use it to match or to build a new-site proposal.
billingEmailstringBilling-records email address. Informational: the site finder does not use it to match or to build a new-site proposal.
billingWebsitestringWebsite for billing-records requests. Informational: the site finder does not use it to match or to build a new-site proposal.
imagingPhonestringImaging-records phone number. Informational: the site finder does not use it to match or to build a new-site proposal.
imagingFaxstringImaging-records fax number in E.164 format. Informational: the site finder does not use it to match or to build a new-site proposal.
imagingEmailstringImaging-records email address. Informational: the site finder does not use it to match or to build a new-site proposal.
imagingWebsitestringWebsite for imaging-records requests. Informational: the site finder does not use it to match or to build a new-site proposal.
phonestringMain phone number of the site. Carried into the new-site proposal when no existing site matches.
mainFaxstringMain fax number of the site in E.164 format. Informational: the site finder does not use it to match or to build a new-site proposal.
recordWebsitestringWebsite for records requests. Informational: the site finder does not use it to match or to build a new-site proposal.
ehrstringName of the electronic health record system the site uses. Informational: the site finder does not use it to match or to build a new-site proposal.
systemNamestringName of the health system the site belongs to. Carried into the new-site proposal when no existing site matches.
primarySpecialtystringPrimary specialty of the site or provider, as free text. Carried into the new-site proposal when no existing site matches.
acceptsEsignaturebooleanWhether the site accepts electronically signed authorizations. Carried into the new-site proposal when no existing site matches.
operationalStatusstringOperational status to stamp on a site created from this search's new-site proposal. Omit it for an operating site.
medicalRoistringRelease-of-information vendor handling medical-records requests. With `authoritativeRoi` and `medicalRoiId`, it identifies an existing site directly.
billingRoistringRelease-of-information vendor handling billing-records requests. Informational: the site finder does not use it to match or to build a new-site proposal.
imagingRoistringRelease-of-information vendor handling imaging-records requests. Informational: the site finder does not use it to match or to build a new-site proposal.
medicalRoiIdstringThe medical-records vendor's own identifier for this site. With `authoritativeRoi` true and `medicalRoi` set, an existing site whose department carries this identifier is returned without an address search.
billingRoiIdstringThe billing-records vendor's own identifier for this site. Informational: the site finder does not use it to match or to build a new-site proposal.
imagingRoiIdstringThe imaging-records vendor's own identifier for this site. Informational: the site finder does not use it to match or to build a new-site proposal.
medicalRecordsRequestMethodstringHow medical-records requests are delivered to the site. Informational: the site finder does not use it to match or to build a new-site proposal.
billingRequestMethodstringHow billing-records requests are delivered to the site. Informational: the site finder does not use it to match or to build a new-site proposal.
imagingRequestMethodstringHow imaging-records requests are delivered to the site. Informational: the site finder does not use it to match or to build a new-site proposal.
medicalRecordsAddressobjectMailing address for medical-records requests. Informational: the site finder does not use it to match or to build a new-site proposal.
billingAddressobjectMailing address for billing-records requests. Informational: the site finder does not use it to match or to build a new-site proposal.
imagingAddressobjectMailing address for imaging-records requests. Informational: the site finder does not use it to match or to build a new-site proposal.
medicalRecordsMailFeestringFee the site charges to mail medical records, as a decimal amount. Informational: the site finder does not use it to match or to build a new-site proposal.
billingMailFeestringFee the site charges to mail billing records, as a decimal amount. Informational: the site finder does not use it to match or to build a new-site proposal.
imagingMailFeestringFee the site charges to mail imaging records, as a decimal amount. Informational: the site finder does not use it to match or to build a new-site proposal.
authoritativeRoibooleanWhen true, `medicalRoiId` is treated as a stable unique identifier: an existing site carrying it is returned without an address search. Defaults to false.
dataSourcestringFree-text label for where the submitted site details came from. Informational: the site finder does not use it to match or to build a new-site proposal.
authoritativebooleanWhether the submitted identity fields should be trusted over the values already stored on a matching site. Informational for the site finder, which never updates sites. Defaults to false.
autoResearchbooleanAccepted but ignored: the site finder never starts background research on the site it finds.
npiEnumerationDatestringDate the NPI was first issued (YYYY-MM-DD). Informational: the site finder does not use it to match or to build a new-site proposal.
npiDeactivationReasonstringReason code the NPI registry gives for deactivating the NPI, when it has been deactivated. Informational: the site finder does not use it to match or to build a new-site proposal.
npiDeactivationDatestringDate the NPI was deactivated (YYYY-MM-DD), when it has been. Informational: the site finder does not use it to match or to build a new-site proposal.
npiReactivationDatestringDate a deactivated NPI was reactivated (YYYY-MM-DD), when it has been. Informational: the site finder does not use it to match or to build a new-site proposal.
ReturnsSuccess
jobIdstringIdentifier of the started job. Poll `GET /v0/site-finder/jobs/<job_id>` with it for the result.
Errors
400401429500
/v0/site-finder/embed-tokenMint a site-finder embed token
Mint an embed token for iframing the site-finder UI.
The token authorizes the interactive embed at
GET /ui/site-finder/embed?token=...: anyone holding it can run finder
searches, create sites from finder proposals, and trigger AI research,
all attributed and billed to the minting user’s company. Tokens are
stateless, sealed with authenticated encryption (encrypt-then-MAC, keyed
apart from both the generic URL-query oracle and the auth-check embed
tokens), and expire one hour after minting — mint a fresh token each time
you render the page that hosts the iframe.
See Embedding the site finder for the full iframe integration guide.
Request bodyapplication/json
object
ReturnsSuccess
tokenstringThe embed token: an opaque encrypted string to pass to the embed as its `token` query parameter. It grants access to what it was minted for until it expires, so mint a fresh one rather than storing it.
Errors
400401429500
/v0/site-finder/jobs/{job_id}Retrieve a site-finder job
Fetch the status and result of a site-finder job started via POST /v0/site-finder.
Poll this endpoint until status is completed or failed. On completion,
siteFinder contains the resolution result and siteFinderProposal contains
a signed proposal to create a new site if no match was found.
Parameters
job_idstringpath, requiredThe `jobId` returned when the job was started with `POST /v0/site-finder`.
ReturnsSuccess
idstringIdentifier of the job, as returned by `POST /v0/site-finder`.
statusstringWhere the job is in its lifecycle.
inputSummaryobjectThe name and address the job was started with.
inputSummary.namestringFacility or provider name the job was started with.
inputSummary.addressstringFirst street address line the job was started with.
createdAtstringWhen the job was started (RFC 3339, UTC).
Conditional attributes
externalIdstringThe caller's own reference for the row, taken from the `id` column of a batch upload; absent for single lookups.
inputSummary.citystringCity the job was started with; absent when none was given.
inputSummary.statestringState the job was started with; absent when none was given.
inputSummary.zipstringZIP code the job was started with; absent when none was given.
siteFinderobjectThe search result: the matched site, other candidate matches, and nearby sites. Present only once `status` is `completed`.
outcomestring | string | string | object | string | stringHow the result was reached. Present only once `status` is `completed`.
nameResolutionobject | object | objectWhether the submitted name was treated as a facility or a provider. Absent until the job completes, and when an identifier in the request matched a site directly.
siteFinderProposalobjectSigned proposal for creating the site when no existing site matched. Absent when a site matched, when the name is a provider whose facility could not be determined, when the entity is not a healthcare organization, or when the proposal could not be prepared.
spellingCorrectionobjectThe corrected name and/or city the search used, when the submitted spelling could not be located.
siteEligibilityobjectWeb-search check of an unmatched name and address. Present only when no existing site matched and the check ran; a `category` of `other` means the entity is not a medical facility, pharmacy or lab, and no `siteFinderProposal` is returned.
errorstringMessage describing why the job failed. Present only when `status` is `failed`.
startedAtstringWhen the job began running (RFC 3339, UTC); absent while it is still `pending`.
finishedAtstringWhen the job reached `completed` or `failed` (RFC 3339, UTC); absent until then.
Errors
401404500