{
  "openapi": "3.0.1",
  "info": {
    "title": "Ontario Dentist Register Scraper (RCDSO)",
    "description": "Scrape RCDSO's public register of Ontario dentists (rcdso.org). Search by name, city, specialty, district, practice, or registration number for full profiles, practice locations, certificates and public discipline records. Also search Sedation/CT Scanner facility permits.",
    "version": "1.0",
    "x-build-id": "eAsNiU2JKmxvNo4VY"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/crawlerbros~ontario-dentist-register-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-crawlerbros-ontario-dentist-register-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/crawlerbros~ontario-dentist-register-scraper/runs": {
      "post": {
        "operationId": "runs-sync-crawlerbros-ontario-dentist-register-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/crawlerbros~ontario-dentist-register-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-crawlerbros-ontario-dentist-register-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": {
          "mode": {
            "title": "Mode",
            "enum": [
              "search",
              "byRegistrationNumbers",
              "facilitySearch"
            ],
            "type": "string",
            "description": "What to search.",
            "default": "search"
          },
          "dentistName": {
            "title": "Dentist name (mode=search)",
            "type": "string",
            "description": "Dentist's name, as \"Last name, First name\" (partial matches work too, e.g. just a last name). Leave blank to skip.",
            "default": ""
          },
          "city": {
            "title": "City (mode=search, facilitySearch)",
            "type": "string",
            "description": "Practice/facility city in Ontario. Partial matches work (e.g. \"Tor\" matches \"Toronto\"). Leave blank to skip.",
            "default": ""
          },
          "specialty": {
            "title": "Specialty (mode=search)",
            "enum": [
              "",
              "AN",
              "EN",
              "ME",
              "OP",
              "OR",
              "OS",
              "OX",
              "PD",
              "PE",
              "PH",
              "PR"
            ],
            "type": "string",
            "description": "Restrict to dentists who hold a specialty certificate in this area.",
            "default": ""
          },
          "district": {
            "title": "Designated electoral district (mode=search)",
            "enum": [
              "",
              "District 1",
              "District 2",
              "District 3",
              "District 4",
              "District 5",
              "District 6",
              "District 7",
              "District 8",
              "District 9",
              "District 10",
              "District 11",
              "District 12"
            ],
            "type": "string",
            "description": "Restrict to dentists registered in one of RCDSO's 12 designated electoral districts.",
            "default": ""
          },
          "concernType": {
            "title": "Concern / discipline type (mode=search)",
            "enum": [
              "",
              "PENDALLEG",
              "COMPRESUL",
              "FINDMISCOND",
              "PENDFITPRACT",
              "FINDINCAPACITY",
              "TCL",
              "SUSPREV",
              "NEGLMALP",
              "COURTFIND",
              "SAINDREV",
              "INTORD"
            ],
            "type": "string",
            "description": "Restrict to dentists with a specific category of public concern, complaint outcome, or discipline finding on their record.",
            "default": ""
          },
          "practiceName": {
            "title": "Practice name (mode=search)",
            "type": "string",
            "description": "Name of the dental practice/clinic. Partial matches work. Leave blank to skip.",
            "default": ""
          },
          "registrationNumber": {
            "title": "Registration number filter (mode=search)",
            "type": "string",
            "description": "Narrow the search mode to one exact RCDSO registration number. Leave blank to skip. For looking up several known numbers at once, use mode=byRegistrationNumbers instead.",
            "default": ""
          },
          "address": {
            "title": "Address (mode=search, facilitySearch)",
            "type": "string",
            "description": "Street address of the practice/facility. Partial matches work. Leave blank to skip.",
            "default": ""
          },
          "phone": {
            "title": "Phone number (mode=search, facilitySearch)",
            "type": "string",
            "description": "Practice/facility phone number (any format, e.g. \"416\" or \"416-555-1234\"). Leave blank to skip.",
            "default": ""
          },
          "registrationNumbers": {
            "title": "Registration numbers (mode=byRegistrationNumbers)",
            "type": "array",
            "description": "One or more exact RCDSO registration numbers to look up. Required for mode=byRegistrationNumbers.",
            "items": {
              "type": "string"
            }
          },
          "facilityType": {
            "title": "Facility permit type (mode=facilitySearch)",
            "enum": [
              "",
              "SAFP",
              "DCTS"
            ],
            "type": "string",
            "description": "Restrict to facilities holding this type of permit.",
            "default": ""
          },
          "facilityName": {
            "title": "Facility name (mode=facilitySearch)",
            "type": "string",
            "description": "Name of the dental facility/clinic. Partial matches work. Leave blank to skip.",
            "default": ""
          },
          "permitType": {
            "title": "Permit sub-type (mode=facilitySearch)",
            "enum": [
              "",
              "TA",
              "TB",
              "TC",
              "CF",
              "DV"
            ],
            "type": "string",
            "description": "Restrict to a specific permit sub-type. Sedation & Anesthesia sub-types (Type A/B) only apply when Facility permit type = Sedation & Anesthesia; CT Scanner sub-types (Craniofacial/Dentoalveolar) only apply when Facility permit type = CT Scanner. Mismatched combinations are ignored automatically.",
            "default": ""
          },
          "sedationModality": {
            "title": "Sedation modality (mode=facilitySearch)",
            "enum": [
              "",
              "SP",
              "DG",
              "OR"
            ],
            "type": "string",
            "description": "Restrict Sedation & Anesthesia facility results to a specific modality administered on-site. Only applies when Facility permit type = Sedation & Anesthesia.",
            "default": ""
          },
          "resultFilter": {
            "title": "Result filter (mode=search)",
            "enum": [
              "",
              "onlyMembers",
              "hasConditions",
              "notEntitled"
            ],
            "type": "string",
            "description": "Client-side quick filter mirroring RCDSO's own \"Only Members\" / \"Has Conditions\" / \"Not Entitled\" result options.",
            "default": ""
          },
          "sortBy": {
            "title": "Sort order (mode=search)",
            "enum": [
              "nameAsc",
              "nameDesc"
            ],
            "type": "string",
            "description": "Order dentist results by name.",
            "default": "nameAsc"
          },
          "enrichWithFullProfile": {
            "title": "Fetch full profile per record",
            "type": "boolean",
            "description": "When enabled (default), fetches each dentist's/facility's full detail page for complete data (academic history, certificates, disciplinary case files, permits). When disabled, only the fast list-level fields (name, status/type, address, phone) are returned — useful for quickly browsing very large result sets.",
            "default": true
          },
          "maxItems": {
            "title": "Max results",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "Maximum number of records to return in one run.",
            "default": 20
          }
        }
      },
      "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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}