ToolAssay

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

CategoryEverything else
Provider hostapi.findmydirectdoctor.com
Networkseip155:8453
Payment schemesexact
Self-reported calls, 30 days1 from 1 payers (the provider's figure, not ours)

Our checks, last 30 days

DayResultHTTPAskedTime
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

This page as JSON