{
  "openapi": "3.0.1",
  "info": {
    "title": "Healthgrades Doctor & Healthcare Provider Scraper",
    "description": "Scrape Healthgrades for doctor profiles, patient reviews, ratings, and practice information. Essential for healthcare reputation monitoring and provider research.",
    "version": "1.1",
    "x-build-id": "JNN3nvi2daW2fbWE0"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/alizarin_refrigerator-owner~healthgrades-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-alizarin_refrigerator-owner-healthgrades-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/alizarin_refrigerator-owner~healthgrades-scraper/runs": {
      "post": {
        "operationId": "runs-sync-alizarin_refrigerator-owner-healthgrades-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/alizarin_refrigerator-owner~healthgrades-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-alizarin_refrigerator-owner-healthgrades-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "properties": {
          "scrapeType": {
            "title": "Scrape Type",
            "enum": [
              "provider_profile",
              "search",
              "reviews",
              "specialty_search"
            ],
            "type": "string",
            "description": "Type of scraping to perform",
            "default": "search"
          },
          "providerUrl": {
            "title": "Provider URL",
            "type": "string",
            "description": "Direct Healthgrades profile URL (for provider_profile type)"
          },
          "providerName": {
            "title": "Provider Name",
            "type": "string",
            "description": "Doctor or provider name to search"
          },
          "specialty": {
            "title": "Specialty",
            "type": "string",
            "description": "Medical specialty (e.g., 'Cardiologist', 'Dentist', 'Dermatologist')"
          },
          "location": {
            "title": "Location",
            "type": "string",
            "description": "City, State or ZIP code"
          },
          "insuranceAccepted": {
            "title": "Insurance Accepted",
            "type": "string",
            "description": "Filter by insurance provider"
          },
          "minRating": {
            "title": "Minimum Rating",
            "minimum": 1,
            "maximum": 5,
            "type": "number",
            "description": "Minimum rating (1.0-5.0)"
          },
          "gender": {
            "title": "Provider Gender",
            "enum": [
              "any",
              "male",
              "female"
            ],
            "type": "string",
            "description": "Filter by provider gender",
            "default": "any"
          },
          "acceptingNewPatients": {
            "title": "Accepting New Patients",
            "type": "boolean",
            "description": "Only show providers accepting new patients",
            "default": false
          },
          "includeReviews": {
            "title": "Include Reviews",
            "type": "boolean",
            "description": "Scrape patient reviews for each provider",
            "default": true
          },
          "maxReviewsPerProvider": {
            "title": "Max Reviews Per Provider",
            "minimum": 1,
            "maximum": 100,
            "type": "integer",
            "description": "Maximum reviews to collect per provider",
            "default": 25
          },
          "maxResults": {
            "title": "Maximum Results",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "Maximum number of providers to scrape",
            "default": 50
          },
          "alsoSearch": {
            "title": "Also search (find a practice by its practitioner)",
            "type": "array",
            "description": "Optional. More search terms, for example a dentist's surname when the practice is listed under the dentist's own name (\"Sloop\" finds \"Dr. Jacquelyn Sloop, DDS\" for Sloop Dental Co.). They run only when the providerName search found no provider at matchPhone or matchStreet, and their providers are returned and charged only when their office shows matchPhone or matchStreet. Needs matchPhone or matchStreet. Up to 3 terms; each keeps at most maxResults providers.",
            "items": {
              "type": "string"
            }
          },
          "matchPhone": {
            "title": "Match phone (for alsoSearch)",
            "type": "string",
            "description": "Optional. The office's 10-digit phone, for example (816) 523-6615. Used with alsoSearch: only providers whose office shows this phone (or matchStreet) are kept from those searches."
          },
          "matchStreet": {
            "title": "Match street (for alsoSearch)",
            "type": "string",
            "description": "Optional. The office's street address, for example 6306 Morningside Dr (house number and street name are compared). Used with alsoSearch: only providers whose office shows this street (or matchPhone) are kept from those searches."
          },
          "proxyConfiguration": {
            "title": "Proxy Configuration",
            "type": "object",
            "description": "Proxy settings for the scraper"
          },
          "demoMode": {
            "title": "Demo Mode",
            "type": "boolean",
            "description": "Return sample data without actual scraping (for testing)",
            "default": true
          },
          "webhookUrl": {
            "title": "Webhook URL",
            "type": "string",
            "description": "URL to POST results when scraping completes (Zapier, Make, n8n, custom endpoint)"
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}