changedInput schema / properties / city / description
Previous value: -"Practice-location city."New value: +"Practice-location city, case-insensitive. A trailing \"*\" after at least 2 characters matches every city starting with them (e.g. \"SAN F*\")."
addedInput schema / properties / city / pattern
Added value: +"^[^*]*$|^[^*]{2,}\\*$"
changedInput schema / properties / organization_name / description
Previous value: -"Organization name (implies provider_type organization). Trailing wildcard \"*\" allowed with at least 2 leading characters."New value: +"Organization name (implies provider_type organization; cannot be combined with first_name, last_name, or name_search). Trailing wildcard \"*\" allowed with at least 2 leading characters."
changedInput schema / properties / postal_code / description
Previous value: -"Practice-location postal/ZIP code (5 or 9 digits)."New value: +"Practice-location ZIP code: 5 digits (also matching the ZIP+4 codes that extend it), 9 digits, or a 2–9 digit prefix with one trailing \"*\" (e.g. \"98*\", \"981*\"). A ZIP+4 prefix (6+ digits) never matches a practice address recorded with only a 5-digit ZIP."
addedInput schema / properties / postal_code / pattern
Added value: +"^[^*]*$|^\\d{2,9}\\*$"
changedInput schema / properties / provider_type / description
Previous value: -"Restrict to individuals (NPI-1) or organizations (NPI-2). Omit to search both."New value: +"Restrict to individuals (NPI-1) or organizations (NPI-2). Omit to search both; when set, it must match the name fields (\"individual\" for first_name/last_name/name_search, \"organization\" for organization_name)."
changedInput schema / properties / skip / description
Previous value: -"Results to skip for pagination (0–1000). Only the first 1200 matches are reachable; skip beyond 1000 silently returns the same window — narrow the query instead of paging further."New value: +"Results to skip for pagination (0–1000). A full page names the next in nextPage."
addedOutput schema / properties / continuationPostalCodes
Added value: +{
+ "description": "Present only at the terminal window (a full page at skip 1000, limit 200): postal_code prefixes that continue the same search, each re-run from skip 0 with the same arguments — the notice gives the full procedure. Empty when no postal split remains (postal_code is already a 5-digit ZIP, a full ZIP+4, or not a numeric ZIP prefix).",
+ "items": {
+ "description": "A trailing-\"*\" postal_code prefix.",
+ "type": "string"
+ },
+ "type": "array"
+}
changedOutput schema / properties / error / properties / data / properties / reason / description
Previous value: -"Machine-readable failure mode. Declared by this tool: `no_search_criteria`: No effective search criterion was provided. `conflicting_specialty`: Both specialty and taxonomy_description were supplied. `unresolved_specialty`: The specialty term matched no active NUCC taxonomy (the message names any inactive codes it matched). `invalid_search_field`: The registry returned a field error (e.g. wildcard under 2 characters, bad provider type). Other values are possible when a failure originates below the handler."New value: +"Machine-readable failure mode. Declared by this tool: `no_search_criteria`: No effective search criterion was provided. `conflicting_specialty`: Both specialty and taxonomy_description were supplied. `mixed_provider_criteria`: Individual criteria (first_name, last_name, name_search) were combined with organization criteria (organization_name), directly or through provider_type. `unresolved_specialty`: The specialty term matched no active NUCC taxonomy (the message names any inactive codes it matched), or was made only of generic words (\"doctor\", \"M.D.\", \"specialist\") that name no specialty. `invalid_search_field`: The registry returned a field error (e.g. wildcard under 2 characters, bad provider type). Other values are possible when a failure originates below the handler."
changedOutput schema / properties / error / properties / data / properties / reason / examples
Previous value: -[
- "no_search_criteria",
- "conflicting_specialty",
- "unresolved_specialty",
- "invalid_search_field"
-]New value: +[
+ "no_search_criteria",
+ "conflicting_specialty",
+ "mixed_provider_criteria",
+ "unresolved_specialty",
+ "invalid_search_field"
+]
addedOutput schema / properties / nextPage
Added value: +{
+ "additionalProperties": false,
+ "description": "The next page: re-run the same arguments with this skip and limit. Present after a full page while rows remain reachable. When skip + limit passes 1000 it is skip 1000, limit 200, whose leading rows repeat rows already returned (the notice says how many) — dedupe by NPI.",
+ "properties": {
+ "limit": {
+ "description": "The limit to send for the next page.",
+ "type": "number"
+ },
+ "skip": {
+ "description": "The skip to send for the next page.",
+ "type": "number"
+ }
+ },
+ "required": [
+ "skip",
+ "limit"
+ ],
+ "type": "object"
+}
changedOutput schema / properties / notice / description
Previous value: -"Guidance — pagination ceiling, page-size-not-total caveat, or how to broaden an empty result."New value: +"Guidance — the page-size-not-total caveat, the next page or terminal-window continuation procedure, other-name and location-filter counts, or how to broaden an empty result."
addedOutput schema / properties / providers / items / properties / matchedOtherName
Added value: +{
+ "additionalProperties": false,
+ "description": "The other (former, professional, DBA, or alternate) name this row matched the name search through. Present only when the current name fails a requested last_name, organization_name, or wildcard first_name and this other name satisfies it (case-insensitive, ignoring punctuation and spaces, trailing \"*\" as a prefix). An exact first_name alone never marks a row: the registry also matches first-name variants (Bob for Robert).",
+ "properties": {
+ "name": {
+ "description": "The other name as \"First Middle Last\", or its organization name.",
+ "type": "string"
+ },
+ "type": {
+ "description": "Registry name type, e.g. \"Former Name\", \"Professional Name\".",
+ "type": "string"
+ }
+ },
+ "required": [
+ "name"
+ ],
+ "type": "object"
+}