# FindMyDirectDoctor Directory API – Doctors by Condition or Service

> FindMyDirectDoctor Directory API – Doctors by Condition or Service is a paid API for AI agents from api.findmydirectdoctor.com, paid per call via x402, $0.03/call, status unknown (last checked 2026-10-31).

Returns a ranked list of nearby cash-pay, DPC, and concierge doctors who treat a given condition or offer a service, with each match labeled as stated (practice lists it) or specialty-inferred.

## Facts

- Endpoint: GET https://api.findmydirectdoctor.com/v1/doctors/treats?utm_source=zero.xyz
- Price: $0.03/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-31
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/findmydirectdoctor-directory-api-doctors-by-condition-or-service-48073d56
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_G8-HsQHxc5urpyfwfgnsU

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability findmydirectdoctor-directory-api-doctors-by-condition-or-service-48073d56
```

Example prompt: Find me doctors near ZIP 80202 who treat anxiety — show up to 10 results, prefer ones where the practice explicitly lists it (stated matches), and only show DPC or concierge practices.

## When to prefer this

Use this endpoint when an agent needs to find specific doctors or practices that treat a named condition or offer a named service within a geographic area, particularly in the cash-pay, DPC, or concierge space. It is superior to general provider directories because it distinguishes between practices that explicitly list a service versus those inferred by specialty, and it is scoped to direct-pay practices rather than insurance networks. Choose this over the language or new-patient endpoints when the primary filter is condition or service type.

## Known failure modes

- Missing required 'topic' parameter returns a 400 error
- Invalid or unresolvable location (unknown city/state combo) returns empty results or a location error
- topic is too vague or non-medical and returns zero matches
- ZIP code not in directory coverage area returns empty results
- Exceeding limit of 25 returns a validation error
- Expired or invalid cursor returns a pagination error
- Rate limit or payment failure (x402) returns a 402 response

## How this service works

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.

## Output

A JSON object containing a list of up to 25 matched doctors sorted by stated vs. specialty-inferred basis then by distance, each with doctor name, practice name, distance in miles, practice model, specialty, credentials, phone, website, match basis, matched service labels with evidence grades and source URLs, and a next_cursor for pagination. Also includes query echo, coverage note, data freshness date, and disclaimer.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "required": [
  "input"
 ],
 "properties": {
  "input": {
   "type": "object",
   "required": [
    "type",
    "method"
   ],
   "properties": {
    "type": {
     "type": "string",
     "const": "http"
    },
    "method": {
     "enum": [
      "GET"
     ],
     "type": "string"
    },
    "queryParams": {
     "type": "object",
     "required": [
      "topic"
     ],
     "properties": {
      "lat": {
       "type": "number",
       "maximum": 90,
       "minimum": -90,
       "description": "Latitude in decimal degrees. Used together with lng."
      },
      "lng": {
       "type": "number",
       "maximum": 180,
       "minimum": -180,
       "description": "Longitude in decimal degrees. Used together with lat."
      },
      "zip": {
       "type": "string",
       "pattern": "^\\d{5}$",
       "maxLength": 5,
       "description": "5-digit US ZIP code. A location is zip, or lat with lng, or city with state."
      },
      "city": {
       "type": "string",
       "maxLength": 80,
       "description": "City name. Used together with state; resolves only for cities that have listed doctors."
      },
      "basis": {
       "enum": [
        "stated",
        "specialty-inferred",
        "any"
       ],
       "type": "string",
       "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."
      },
      "limit": {
       "type": "integer",
       "default": 10,
       "maximum": 25,
       "minimum": 1,
       "description": "Results per page (maximum 25)."
      },
      "model": {
       "enum": [
        "dpc",
        "concierge",
        "cash_specialist",
        "any"
       ],
       "type": "string",
       "default": "any",
       "description": "Practice model: dpc, concierge, cash_specialist or any."
      },
      "state": {
       "type": "string",
       "pattern": "^[A-Za-z]{2}(,[A-Za-z]{2}){0,4}$",
       "maxLength": 14,
       "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)."
      },
      "topic": {
       "type": "string",
       "maxLength": 80,
       "description": "Required. Condition or service in plain words, for example anxiety, diabetes, acne, Botox, knee pain, ADHD."
      },
      "curs
… (truncated)
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "count": 10,
  "query": {
   "basis": "any",
   "limit": 10,
   "topic": "anxiety",
   "format": "concise",
   "location": "ZIP 80202",
   "radius_miles": 25
  },
  "source": "FindMyDirectDoctor directory",
  "results": [
   {
    "zip": "80218",
    "city": "Denver",
    "name": "Kendall Stone",
    "match": {
     "note": "The practice lists this on its own site. Listed does not mean outcome or recommendation.",
     "basis": "stated",
     "scope": "practice listing",
     "matched_services": [
      {
       "grade": "C",
       "label": "Mental Health: Depression and Anxiety",
       "listed_by": "practice page",
       "source_url": "https://www.stonemedicaldpc.com/"
      }
     ]
    },
    "state": "CO",
    "website": "https://www.stonemedicaldpc.com/",
    "evidence": {
     "as_of": "2026-10-02",
     "basis": [
      "own_site"
     ],
     "grade_min": "C"
    },
    "doctor_id": "fdd-N01639",
    "practice_name": "Stone Medical",
    "distance_miles": 1.3,
    "practice_model": "dpc",
    "practice_phone": "(720) 819-6181",
    "specialty_label": "Internal Medicine",
    "credential_class": "MD",
    "credentials_text": "MD",
    "location_precision": "street"
   },
   {
    "zip": "80205",
    "city": "Denver",
    "name": "Charlisa Davenport",
    "match": {
     "note": "The practice lists this on its own site. Listed does not mean outcome or recommendation.",
     "basis": "stated",
     "scope": "practice listing",
     "matched_services": [
      {
       "grade": "C",
       "label": "Anxiety",
       "listed_by": "practice page",
       "source_url": "https://www.reiffmentalhealth.com/treatment-options"
      }
     ]
    },
    "state": "CO",
    "website": "https://www.reiffmentalhealth.com",
    "evidence": {
     "as_of": "2026-10-02",
     "basis": [
      "own_site"
     ],
     "grade_min": "C"
    },
    "doctor_id": "fdd-N01633",
    "practice_name": "Reiff Mental Health",
    "distance_miles": 2.8,
    "practice_model": "concierge",
    "practice_phone": "(303) 803-5726",
    "specialty_label": "Psychiatry",
    "credential_class": "NP",
    "credentials_text": "MSN, PMHNP-BC",
    "location_precision": "street"
   }
  ],
  "returned": 10,
  "data_as_of": "2026-10-02",
  "disclaimer": "Prices and availability change. Confirm directly with the practice before making care decisions.",
  "next_cursor": "bzoxMA==",
  "coverage_note": "Directory of cash-pay, direct primary care (DPC) and concie
… (truncated)
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/findmydirectdoctor-directory-api-doctors-by-condition-or-service-48073d56/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from api.findmydirectdoctor.com](https://www.zero.xyz/host/api.findmydirectdoctor.com/llms.txt)
