API 参考

NPI 查询与医疗服务提供者核实 API API 参考

按 NPI 查询美国医疗服务提供者记录。 使用此参考选择操作,并集成其文档化的响应契约。

操作

GET /v1/npi 查看 API 参考
GET /v1/npi/search 查看 API 参考

GET /v1/npi

操作: lookupNpi 积分和身份验证: 1 需要身份验证
GET /v1/npi 积分: 1

查询参数

参数 类型 必需
number string 必需
name string 可选
state string 可选
taxonomy string 可选

响应字段

字段 类型
npi string
status string
checksum_valid boolean | null
reason string | null
notes[] string[]
provider object
provider.npi string
provider.type string
provider.enumeration_type string
provider.name string
provider.individual object
provider.individual.prefix string | null
provider.individual.first_name string | null
provider.individual.middle_name string | null
provider.individual.last_name string | null
provider.individual.suffix string | null
provider.individual.credential string | null
provider.individual.sex string
provider.organization object
provider.organization.name string | null
provider.organization.subpart boolean | null
provider.organization.authorized_official object
provider.organization.authorized_official.prefix string | null
provider.organization.authorized_official.first_name string | null
provider.organization.authorized_official.middle_name string | null
provider.organization.authorized_official.last_name string | null
provider.organization.authorized_official.suffix string | null
provider.organization.authorized_official.credential string | null
provider.organization.authorized_official.title string | null
provider.organization.authorized_official.telephone string | null
provider.record_status string | null
provider.active boolean
provider.enumeration_date string | null
provider.certification_date string | null
provider.last_updated string | null
provider.sole_proprietor boolean | null
provider.taxonomies[] object[]
provider.taxonomies[] object
provider.taxonomies[].code string
provider.taxonomies[].description string | null
provider.taxonomies[].primary boolean
provider.taxonomies[].state string | null
provider.taxonomies[].license string | null
provider.taxonomies[].group string | null
provider.primary_taxonomy object
provider.primary_taxonomy.code string
provider.primary_taxonomy.description string | null
provider.primary_taxonomy.primary boolean
provider.primary_taxonomy.state string | null
provider.primary_taxonomy.license string | null
provider.primary_taxonomy.group string | null
provider.addresses object
provider.addresses.location object
provider.addresses.location.purpose string | null
provider.addresses.location.address_type string | null
provider.addresses.location.line1 string | null
provider.addresses.location.line2 string | null
provider.addresses.location.city string | null
provider.addresses.location.state string | null
provider.addresses.location.postal_code string | null
provider.addresses.location.country_code string | null
provider.addresses.location.country_name string | null
provider.addresses.location.telephone string | null
provider.addresses.location.fax string | null
provider.addresses.mailing object
provider.addresses.mailing.purpose string | null
provider.addresses.mailing.address_type string | null
provider.addresses.mailing.line1 string | null
provider.addresses.mailing.line2 string | null
provider.addresses.mailing.city string | null
provider.addresses.mailing.state string | null
provider.addresses.mailing.postal_code string | null
provider.addresses.mailing.country_code string | null
provider.addresses.mailing.country_name string | null
provider.addresses.mailing.telephone string | null
provider.addresses.mailing.fax string | null
provider.practice_locations[] object[]
provider.practice_locations[] object
provider.practice_locations[].purpose string | null
provider.practice_locations[].address_type string | null
provider.practice_locations[].line1 string | null
provider.practice_locations[].line2 string | null
provider.practice_locations[].city string | null
provider.practice_locations[].state string | null
provider.practice_locations[].postal_code string | null
provider.practice_locations[].country_code string | null
provider.practice_locations[].country_name string | null
provider.practice_locations[].telephone string | null
provider.practice_locations[].fax string | null
provider.identifiers[] object[]
provider.identifiers[] object
provider.identifiers[].code string | null
provider.identifiers[].description string | null
provider.identifiers[].identifier string | null
provider.identifiers[].issuer string | null
provider.identifiers[].state string | null
provider.endpoints[] object[]
provider.endpoints[] object
provider.endpoints[].endpoint string | null
provider.endpoints[].type string | null
provider.endpoints[].type_description string | null
provider.endpoints[].description string | null
provider.endpoints[].use string | null
provider.endpoints[].use_description string | null
provider.endpoints[].use_other_description string | null
provider.endpoints[].content_type string | null
provider.endpoints[].content_type_description string | null
provider.endpoints[].affiliation boolean | null
provider.endpoints[].affiliation_name string | null
provider.other_names[] object[]
provider.other_names[] object
provider.other_names[].type string | null
provider.other_names[].code string | null
provider.other_names[].name string
provider.other_names[].prefix string | null
provider.other_names[].first_name string | null
provider.other_names[].middle_name string | null
provider.other_names[].last_name string | null
provider.other_names[].suffix string | null
provider.other_names[].credential string | null
provider.other_names[].organization_name string | null
verification object
verification.name object
verification.name.status string
verification.name.matched_on string | null
verification.state object
verification.state.status string
verification.state.matched_on string | null
verification.taxonomy object
verification.taxonomy.status string
verification.taxonomy.matched_on string | null
verification.fields_checked integer
verification.verified boolean
upstream_error_code string | null
source object
source.name string
source.url string
source.checked_at string
source.latency_ms integer | null

请求示例

curl -H "X-API-Key: $DOMSCAN_API_KEY" "https://domscan.net/v1/npi?number=example&name=example&state=example&taxonomy=example"
const response = await fetch("https://domscan.net/v1/npi?number=example&name=example&state=example&taxonomy=example", {
  headers: { "X-API-Key": process.env.DOMSCAN_API_KEY },
});
const data = await response.json();
console.log(data);
import os
import requests

response = requests.get(
    "https://domscan.net/v1/npi?number=example&name=example&state=example&taxonomy=example",
    headers={"X-API-Key": os.environ["DOMSCAN_API_KEY"]},
)
print(response.json())
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
)

func main() {
	req, err := http.NewRequest(http.MethodGet, "https://domscan.net/v1/npi?number=example&name=example&state=example&taxonomy=example", nil)
	if err != nil {
		panic(err)
	}
	req.Header.Set("X-API-Key", os.Getenv("DOMSCAN_API_KEY"))

	resp, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer resp.Body.Close()

	data, err := io.ReadAll(resp.Body)
	if err != nil {
		panic(err)
	}
	fmt.Println(resp.Status, string(data))
}
require "json"
require "net/http"

uri = URI("https://domscan.net/v1/npi?number=example&name=example&state=example&taxonomy=example")
request = Net::HTTP::Get.new(uri)
request["X-API-Key"] = ENV.fetch("DOMSCAN_API_KEY")

response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) do |http|
  http.request(request)
end
puts JSON.pretty_generate(JSON.parse(response.body))

响应示例

{
  "npi": "1003000126",
  "status": "found",
  "checksum_valid": true,
  "reason": null,
  "notes": [],
  "provider": {
    "npi": "1003000126",
    "type": "individual",
    "enumeration_type": "NPI-1",
    "name": "ARDALAN ENKESHAFI",
    "individual": {
      "prefix": null,
      "first_name": "ARDALAN",
      "middle_name": null,
      "last_name": "ENKESHAFI",
      "suffix": null,
      "credential": "M.D.",
      "sex": "M"
    },
    "organization": null,
    "record_status": "A",
    "active": true,
    "enumeration_date": "2007-08-31",
    "certification_date": "2025-05-28",
    "last_updated": "2025-05-28",
    "sole_proprietor": false,
    "taxonomies": [
      {
        "code": "208M00000X",
        "description": "Hospitalist",
        "primary": true,
        "state": "DC",
        "license": "MD600003480",
        "group": null
      }
    ],
    "primary_taxonomy": {
      "code": "208M00000X",
      "description": "Hospitalist",
      "primary": true,
      "state": "DC",
      "license": "MD600003480",
      "group": null
    },
    "addresses": {
      "location": {
        "purpose": "location",
        "address_type": "DOM",
        "line1": "6410 ROCKLEDGE DR STE 304",
        "line2": null,
        "city": "BETHESDA",
        "state": "MD",
        "postal_code": "20817-1841",
        "country_code": "US",
        "country_name": "United States",
        "telephone": "443-602-6207",
        "fax": null
      },
      "mailing": null
    },
    "practice_locations": [],
    "identifiers": [],
    "endpoints": [],
    "other_names": []
  },
  "verification": {
    "name": {
      "status": "match",
      "matched_on": "name"
    },
    "state": {
      "status": "match",
      "matched_on": "location"
    },
    "taxonomy": {
      "status": "not_requested",
      "matched_on": null
    },
    "fields_checked": 2,
    "verified": true
  },
  "upstream_error_code": null,
  "source": {
    "name": "nppes_npi_registry",
    "url": "https://npiregistry.cms.hhs.gov/api/?version=2.1&number=1003000126",
    "checked_at": "2026-10-18T03:58:55.722Z",
    "latency_ms": 286
  }
}

HTTP 状态码

  • 200 成功
  • 400 请求错误
  • 401 未授权
  • 402 需要付款
  • 429 请求过多

GET /v1/npi/search

操作: searchNpi 积分和身份验证: 1 需要身份验证
GET /v1/npi/search 积分: 1

查询参数

参数 类型 必需
first_name string 可选
last_name string 可选
organization_name string 可选
city string 可选
state string 可选
postal_code string 可选
taxonomy_description string 可选
limit integer
默认值 10
可选
skip integer
默认值 0
可选

响应字段

字段 类型
status string
reason string | null
field string | null
query object
query.first_name string | null
query.last_name string | null
query.organization_name string | null
query.city string | null
query.state string | null
query.postal_code string | null
query.taxonomy_description string | null
query.limit integer
query.skip integer
results[] object[]
results[] object
results[].npi string
results[].type string
results[].enumeration_type string
results[].name string
results[].individual object
results[].individual.prefix string | null
results[].individual.first_name string | null
results[].individual.middle_name string | null
results[].individual.last_name string | null
results[].individual.suffix string | null
results[].individual.credential string | null
results[].individual.sex string
results[].organization object
results[].organization.name string | null
results[].organization.subpart boolean | null
results[].organization.authorized_official object
results[].organization.authorized_official.prefix string | null
results[].organization.authorized_official.first_name string | null
results[].organization.authorized_official.middle_name string | null
results[].organization.authorized_official.last_name string | null
results[].organization.authorized_official.suffix string | null
results[].organization.authorized_official.credential string | null
results[].organization.authorized_official.title string | null
results[].organization.authorized_official.telephone string | null
results[].record_status string | null
results[].active boolean
results[].enumeration_date string | null
results[].certification_date string | null
results[].last_updated string | null
results[].sole_proprietor boolean | null
results[].taxonomies[] object[]
results[].taxonomies[] object
results[].taxonomies[].code string
results[].taxonomies[].description string | null
results[].taxonomies[].primary boolean
results[].taxonomies[].state string | null
results[].taxonomies[].license string | null
results[].taxonomies[].group string | null
results[].primary_taxonomy object
results[].primary_taxonomy.code string
results[].primary_taxonomy.description string | null
results[].primary_taxonomy.primary boolean
results[].primary_taxonomy.state string | null
results[].primary_taxonomy.license string | null
results[].primary_taxonomy.group string | null
results[].addresses object
results[].addresses.location object
results[].addresses.location.purpose string | null
results[].addresses.location.address_type string | null
results[].addresses.location.line1 string | null
results[].addresses.location.line2 string | null
results[].addresses.location.city string | null
results[].addresses.location.state string | null
results[].addresses.location.postal_code string | null
results[].addresses.location.country_code string | null
results[].addresses.location.country_name string | null
results[].addresses.location.telephone string | null
results[].addresses.location.fax string | null
results[].addresses.mailing object
results[].addresses.mailing.purpose string | null
results[].addresses.mailing.address_type string | null
results[].addresses.mailing.line1 string | null
results[].addresses.mailing.line2 string | null
results[].addresses.mailing.city string | null
results[].addresses.mailing.state string | null
results[].addresses.mailing.postal_code string | null
results[].addresses.mailing.country_code string | null
results[].addresses.mailing.country_name string | null
results[].addresses.mailing.telephone string | null
results[].addresses.mailing.fax string | null
results[].practice_locations[] object[]
results[].practice_locations[] object
results[].practice_locations[].purpose string | null
results[].practice_locations[].address_type string | null
results[].practice_locations[].line1 string | null
results[].practice_locations[].line2 string | null
results[].practice_locations[].city string | null
results[].practice_locations[].state string | null
results[].practice_locations[].postal_code string | null
results[].practice_locations[].country_code string | null
results[].practice_locations[].country_name string | null
results[].practice_locations[].telephone string | null
results[].practice_locations[].fax string | null
results[].identifiers[] object[]
results[].identifiers[] object
results[].identifiers[].code string | null
results[].identifiers[].description string | null
results[].identifiers[].identifier string | null
results[].identifiers[].issuer string | null
results[].identifiers[].state string | null
results[].endpoints[] object[]
results[].endpoints[] object
results[].endpoints[].endpoint string | null
results[].endpoints[].type string | null
results[].endpoints[].type_description string | null
results[].endpoints[].description string | null
results[].endpoints[].use string | null
results[].endpoints[].use_description string | null
results[].endpoints[].use_other_description string | null
results[].endpoints[].content_type string | null
results[].endpoints[].content_type_description string | null
results[].endpoints[].affiliation boolean | null
results[].endpoints[].affiliation_name string | null
results[].other_names[] object[]
results[].other_names[] object
results[].other_names[].type string | null
results[].other_names[].code string | null
results[].other_names[].name string
results[].other_names[].prefix string | null
results[].other_names[].first_name string | null
results[].other_names[].middle_name string | null
results[].other_names[].last_name string | null
results[].other_names[].suffix string | null
results[].other_names[].credential string | null
results[].other_names[].organization_name string | null
result_count integer
has_more boolean
upstream_error_code string | null
source object
source.name string
source.url string
source.checked_at string
source.latency_ms integer | null

请求示例

curl -H "X-API-Key: $DOMSCAN_API_KEY" "https://domscan.net/v1/npi/search?first_name=example&last_name=example&organization_name=example&city=example&state=example&postal_code=example&taxonomy_description=example&limit=25&skip=0"
const response = await fetch("https://domscan.net/v1/npi/search?first_name=example&last_name=example&organization_name=example&city=example&state=example&postal_code=example&taxonomy_description=example&limit=25&skip=0", {
  headers: { "X-API-Key": process.env.DOMSCAN_API_KEY },
});
const data = await response.json();
console.log(data);
import os
import requests

response = requests.get(
    "https://domscan.net/v1/npi/search?first_name=example&last_name=example&organization_name=example&city=example&state=example&postal_code=example&taxonomy_description=example&limit=25&skip=0",
    headers={"X-API-Key": os.environ["DOMSCAN_API_KEY"]},
)
print(response.json())
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
)

func main() {
	req, err := http.NewRequest(http.MethodGet, "https://domscan.net/v1/npi/search?first_name=example&last_name=example&organization_name=example&city=example&state=example&postal_code=example&taxonomy_description=example&limit=25&skip=0", nil)
	if err != nil {
		panic(err)
	}
	req.Header.Set("X-API-Key", os.Getenv("DOMSCAN_API_KEY"))

	resp, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer resp.Body.Close()

	data, err := io.ReadAll(resp.Body)
	if err != nil {
		panic(err)
	}
	fmt.Println(resp.Status, string(data))
}
require "json"
require "net/http"

uri = URI("https://domscan.net/v1/npi/search?first_name=example&last_name=example&organization_name=example&city=example&state=example&postal_code=example&taxonomy_description=example&limit=25&skip=0")
request = Net::HTTP::Get.new(uri)
request["X-API-Key"] = ENV.fetch("DOMSCAN_API_KEY")

response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) do |http|
  http.request(request)
end
puts JSON.pretty_generate(JSON.parse(response.body))

响应示例

{
  "status": "ok",
  "reason": null,
  "field": null,
  "query": {
    "first_name": null,
    "last_name": null,
    "organization_name": "mayo clinic*",
    "city": null,
    "state": "MN",
    "postal_code": null,
    "taxonomy_description": null,
    "limit": 1,
    "skip": 0
  },
  "results": [
    {
      "npi": "1003000126",
      "type": "individual",
      "enumeration_type": "NPI-1",
      "name": "ARDALAN ENKESHAFI",
      "individual": {
        "prefix": null,
        "first_name": "ARDALAN",
        "middle_name": null,
        "last_name": "ENKESHAFI",
        "suffix": null,
        "credential": "M.D.",
        "sex": "M"
      },
      "organization": null,
      "record_status": "A",
      "active": true,
      "enumeration_date": "2007-08-31",
      "certification_date": "2025-05-28",
      "last_updated": "2025-05-28",
      "sole_proprietor": false,
      "taxonomies": [
        {
          "code": "208M00000X",
          "description": "Hospitalist",
          "primary": true,
          "state": "DC",
          "license": "MD600003480",
          "group": null
        }
      ],
      "primary_taxonomy": {
        "code": "208M00000X",
        "description": "Hospitalist",
        "primary": true,
        "state": "DC",
        "license": "MD600003480",
        "group": null
      },
      "addresses": {
        "location": {
          "purpose": "location",
          "address_type": "DOM",
          "line1": "6410 ROCKLEDGE DR STE 304",
          "line2": null,
          "city": "BETHESDA",
          "state": "MD",
          "postal_code": "20817-1841",
          "country_code": "US",
          "country_name": "United States",
          "telephone": "443-602-6207",
          "fax": null
        },
        "mailing": null
      },
      "practice_locations": [],
      "identifiers": [],
      "endpoints": [],
      "other_names": []
    }
  ],
  "result_count": 1,
  "has_more": true,
  "upstream_error_code": null,
  "source": {
    "name": "nppes_npi_registry",
    "url": "https://npiregistry.cms.hhs.gov/api/?version=2.1",
    "checked_at": "2026-10-18T03:58:55.722Z",
    "latency_ms": 286
  }
}

HTTP 状态码

  • 200 成功
  • 400 请求错误
  • 401 未授权
  • 402 需要付款
  • 429 请求过多

参考资源