Which doctors treat a condition or offer a service, such as anxiety, diabetes, a
Which doctors treat a condition or offer a service, such as anxiety, diabetes, acne, Botox or knee pain, near a location. Every match is labelled stated (the practice lists it, with the page) or specialty-inferred (the specialty usually treats it, the practice did not say so). Stated matches come first. Generalist labels are never used to infer. Not a referral or a recommendation.
Answeringour last check, 2026-10-31
2 of 2checks answered this week
30 msmedian answer time
$0.03listed price per call
$0.03price it asked us
Paid test badge: not yet. The checks above are free: we call the tool without paying and read the payment request it sends back. The Verified badge needs paid calls whose answers match the promised output, and nobody can buy a badge.
Endpoint
GET https://api.findmydirectdoctor.com/v1/doctors/treats
| Category | Everything else |
|---|---|
| Provider host | api.findmydirectdoctor.com |
| Networks | eip155:8453 |
| Payment schemes | exact |
| Self-reported calls, 30 days | 1 from 1 payers (the provider's figure, not ours) |
Our checks, last 30 days
| Day | Result | HTTP | Asked | Time |
|---|---|---|---|---|
| 2026-10-31 | valid payment request | 402 | $0.03 | 30 ms |
| 2026-10-29 | valid payment request | 402 | $0.03 | 30 ms |
Example input (from the provider)
{
"method": "GET",
"queryParams": {
"topic": "anxiety",
"zip": "80202"
},
"type": "http"
}
Promised output schema (from the provider)
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"input": {
"additionalProperties": false,
"properties": {
"method": {
"enum": [
"GET"
],
"type": "string"
},
"queryParams": {
"properties": {
"basis": {
"default": "any",
"description": "stated = the practice lists it. specialty-inferred = the specialty usually treats it but the practice did not say so. any (default) = both, stated first.",
"enum": [
"stated",
"specialty-inferred",
"any"
],
"type": "string"
},
"city": {
"description": "City name. Used together with state; resolves only for cities that have listed doctors.",
"maxLength": 80,
"type": "string"
},
"credential": {
"description": "Clinician type: MD, DO, NP (nurse practitioner), PA (physician assistant), other (for example naturopathic or counselor) or physician (MD or DO).",
"enum": [
"MD",
"DO",
"NP",
"PA",
"other",
"physician"
],
"type": "string"
},
"cursor": {
"description": "Opaque next_cursor value from the previous response, to fetch the next page with the same other parameters.",
"maxLength": 40,
"type": "string"
},
"format": {
"default": "concise",
"description": "concise = key fields. detailed = every field we hold.",
"enum": [
"concise",
"detailed"
],
"type": "string"
},
"insurance": {
"description": "What the practice states about insurance: does_not_bill, bills_some_services, accepts_hsa_fsa, keep_insurance_for_emergencies, bills_insurance or any.",
"enum": [
"does_not_bill",
"bills_some_services",
"accepts_hsa_fsa",
"keep_insurance_for_emergencies",
"bills_insurance",
"any"
],
"type": "string"
},
"lat": {
"description": "Latitude in decimal degrees. Used together with lng.",
"maximum": 90,
"minimum": -90,
"type": "number"
},
"limit": {
"default": 10,
"description": "Results per page (maximum 25).",
"maximum": 25,
"minimum": 1,
"type": "integer"
},
"lng": {
"description": "Longitude in decimal degrees. Used together with lat.",
"maximum": 180,
"minimum": -180,
"type": "number"
},
"model": {
"default": "any",
"description": "Practice model: dpc, concierge, cash_specialist or any.",
"enum": [
"dpc",
"concierge",
"cash_specialist",
"any"
],
"type": "string"
},
"radius_miles": {
"default": 25,
"description": "Search radius in miles (maximum 100). Used with a location.",
"maximum": 100,
"minimum": 0,
"type": "number"
},
"specialty": {
"description": "Specialty label or group, for example family-medicine, psychiatry, dermatology, mental-health, womens-health. Matched against the FindMyDirectDoctor directory label.",
"maxLength": 80,
"type": "string"
},
"state": {
"description": "2-letter US state code. With city it names the city's state. On its own it limits results to that state (up to 5 codes separated by commas).",
"maxLength": 14,
"pattern": "^[A-Za-z]{2}(,[A-Za-z]{2}){0,4}$",
"type": "string"
},
"topic": {
"description": "Required. Condition or service in plain words, for example anxiety, diabetes, acne, Botox, knee pain, ADHD.",
"maxLength": 80,
"type": "string"
},
"verified_only": {
"description": "true keeps only matches whose supporting fact is graded A or B (registry, board, hospital bio, or a second source). Default false.",
"enum": [
"true",
"false"
],
"type": "string"
},
"zip": {
"description": "5-digit US ZIP code. A location is zip, or lat with lng, or city with state.",
"maxLength": 5,
"pattern": "^\\d{5}$",
"type": "string"
}
},
"required": [
"topic"
],
"type": "object"
},
"type": {
"const": "http",
"type": "string"
}
},
"required": [
"type",
"method"
],
"type": "object"
},
"output": {
"properties": {
"example": {
"properties": {
"count": {
"type": "integer"
},
"coverage_note": {
"type": "string"
},
"data_as_of": {
"type": "string"
},
"disclaimer": {
"type": "string"
},
"next_cursor": {
"type": [
"string",
"null"
]
},
"query": {
"description": "The filters as understood, with any n