{
  "openapi": "3.0.1",
  "info": {
    "title": "Netherlands Childcare Register - Nursery & Daycare Leads",
    "description": "From $1.20 per 1,000 locations, no start fee. The official Dutch LRK register: 18,399 registered nurseries, out-of-school care sites and childminder agencies with email (97.5% filled), phone, website, named contact, licensed child places, operator KvK number and coordinates.",
    "version": "0.1",
    "x-build-id": "nbimbrVWUDejlYodi"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/scrapersdelight~lrk-childcare-nl-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-scrapersdelight-lrk-childcare-nl-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/scrapersdelight~lrk-childcare-nl-scraper/runs": {
      "post": {
        "operationId": "runs-sync-scrapersdelight-lrk-childcare-nl-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/scrapersdelight~lrk-childcare-nl-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-scrapersdelight-lrk-childcare-nl-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": {
          "municipalities": {
            "title": "Municipalities (gemeenten)",
            "uniqueItems": true,
            "type": "array",
            "description": "Municipality names as the register spells them ('s-Gravenhage, not Den Haag), or their 1-4 digit CBS codes (363 = Amsterdam). Names are matched case- and accent-insensitively against the register's own /v1/gemeenten table, and an unknown name stops the run with the closest matches listed - because an unknown code returns HTTP 200 with zero rows, which looks exactly like 'no childcare here'. Leave empty together with the other scope fields to cover the whole country.",
            "items": {
              "type": "string"
            }
          },
          "cities": {
            "title": "Cities (plaats)",
            "uniqueItems": true,
            "type": "array",
            "description": "Town/city names to search instead of, or alongside, municipalities. Narrower than a municipality: gemeente Amsterdam holds 2,323 records against plaats=Amsterdam's 1,569, because a municipality contains several towns.",
            "items": {
              "type": "string"
            }
          },
          "postalCodes": {
            "title": "Postcodes",
            "uniqueItems": true,
            "type": "array",
            "description": "Full Dutch postcodes, for example 1019TZ. Spaces are removed and letters upper-cased for you. Use this for tight catchment-area lists.",
            "items": {
              "type": "string"
            }
          },
          "nameContains": {
            "title": "Name contains",
            "type": "string",
            "description": "Search location names, for example a chain name like Partou or Zazoe. Runs as one extra search on top of any geographic scope."
          },
          "includeTypes": {
            "title": "Childcare types",
            "uniqueItems": true,
            "type": "array",
            "description": "KDV = day nursery (ages 0-4). BSO = out-of-school care (ages 4-12). GOB = childminder agency. VGO = an individual registered childminder working from a private home - these are consumer households, not businesses, and the register privacy-suppresses their contact details (measured: 1.3% have an email against 97.5% for the rest), so VGO is OFF by default. The server rejects any other value and rejects lowercase.",
            "items": {
              "type": "string",
              "enum": [
                "KDV",
                "BSO",
                "GOB",
                "VGO"
              ],
              "enumTitles": [
                "KDV - day nursery (kinderdagverblijf, 0-4)",
                "BSO - out-of-school care (buitenschoolse opvang, 4-12)",
                "GOB - childminder agency (gastouderbureau)",
                "VGO - home-based childminder (privacy-suppressed contact data)"
              ]
            },
            "default": [
              "KDV",
              "BSO",
              "GOB"
            ]
          },
          "registrationStatus": {
            "title": "Registration status",
            "enum": [
              "INGESCHREVEN",
              "UITGESCHREVEN",
              "ALL"
            ],
            "type": "string",
            "description": "INGESCHREVEN = currently registered and operating. UITGESCHREVEN = deregistered; the register STRIPS the email and phone from these (measured 0.0% of 205 deregistered rows carried either), so they are useful for churn analysis and useless as leads. ALL returns both. Note AANGEMELD: the register publishes that status but refuses it as a filter, so a few AANGEMELD rows leak through the INGESCHREVEN filter and this actor drops them client-side.",
            "default": "INGESCHREVEN"
          },
          "requireEmail": {
            "title": "Only locations with an email",
            "type": "boolean",
            "description": "Drop rows with no email address BEFORE they are delivered, so you never pay for them. On the registered KDV/BSO/GOB slice 97.5% of rows carry one, so this removes very little.",
            "default": false
          },
          "requireContact": {
            "title": "Only locations with an email or a phone",
            "type": "boolean",
            "description": "Looser than the email filter: keeps a row if it has either. Measured 99.0% of registered KDV/BSO/GOB rows qualify.",
            "default": false
          },
          "minChildPlaces": {
            "title": "Minimum licensed child places",
            "minimum": 0,
            "type": "integer",
            "description": "Firmographic size filter. Licensed capacity (kindplaatsen) averaged 34.0 for KDV and 41.5 for BSO on 1,493 measured rows; set 50 or 75 to isolate the larger sites. GOB agencies license 0 places by definition and are excluded by any value above 0."
          },
          "preschoolEducationOnly": {
            "title": "Only VVE (pre-school education) locations",
            "type": "boolean",
            "description": "Keep only locations offering voorschoolse educatie - municipally funded early-years education. Measured 326 of 1,493 rows (21.8%).",
            "default": false
          },
          "includeOperatorDetails": {
            "title": "Add operator (houder) details, including the KvK number",
            "type": "boolean",
            "description": "One extra request per DISTINCT operator - the register averages 3.7 locations per operator, so it adds roughly a quarter to the run time - and returns the operator's legal name, Chamber of Commerce (KvK) number, legal form and disputes-committee registration date. Measured 100% KvK fill across 182 holders. Turn off for the fastest possible run.",
            "default": true
          },
          "maxLocations": {
            "title": "Maximum locations to return",
            "minimum": 0,
            "type": "integer",
            "description": "Hard cap on delivered - and therefore charged - rows. 0 means no cap: the whole scope is read and every row is charged. The complete registered KDV/BSO/GOB register was 18,399 rows on 2026-09-16.",
            "default": 1000
          },
          "maxConcurrency": {
            "title": "Parallel requests",
            "minimum": 1,
            "maximum": 16,
            "type": "integer",
            "description": "Measured against the live register: through Apify Proxy with a fresh session per request, 48 of 48 requests succeeded at 8 in flight and 47 of 48 at 12. From a SINGLE IP the origin resets connections above ~2 (24/24 at 1, 18/24 at 3, 12/24 at 6), so if you turn Apify Proxy off this is forced down to 1 and the run gets slower rather than lossy.",
            "default": 8
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Apify Proxy datacenter (the default) is what was measured fastest and cleanest here: 48/48 requests OK at concurrency 8, against 21-22/24 on residential. Residential is not needed - the register has no CAPTCHA, no Cloudflare and no JS challenge - and its exit nodes were measurably flakier.",
            "default": {
              "useApifyProxy": true
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}