Customer guide Childcare Market Intelligence v1

Build the childcare feed into your database, map or report workflow

The API Reference remains the main entry point. This guide covers complete-feed ingestion, catchment analysis, exports, reports, error handling and the trial reconciliation workflow.

Childcare Market Intelligence API - integration guide

This guide is delivered with a Childcare Market Intelligence key. It is written for data scientists, GIS analysts and product teams integrating the feed into a database, dashboard, map or report workflow.

Interactive reference: https://daleads.com.au/api/v1/childcare/docs

Browser-readable guide: https://daleads.com.au/api/v1/childcare/guide

Machine-readable OpenAPI: https://daleads.com.au/api/v1/childcare/openapi.json

Base URL: https://daleads.com.au

Preview the output before integrating:

  • Example PDF: https://daleads.com.au/static/samples/childcare-market-intelligence/example-report.pdf?v=20260812-liverpool-v2
  • PDF first-page preview: https://daleads.com.au/static/samples/childcare-market-intelligence/example-report-preview.png?v=20260812-liverpool-v2
  • Report maps use the same DA Leads product-map style as the supplied Spectrum sample. The API renders and embeds the finished map; customers do not need to configure a Mapbox token. Mapbox/OpenStreetMap attribution is retained in every HTML/PDF map.
  • Corresponding JSON: https://daleads.com.au/static/samples/childcare-market-intelligence/example-analysis.json?v=20260812-liverpool-v2

The PDF and JSON use the same production-derived 8.5 km Liverpool catchment, generated on 12 August 2026 from records tracked since 19 May 2026. Council references, public project addresses, lodgement dates, captured status values and proposal text are real captured values. Counts describe the tracked pipeline at that snapshot date; they are not operating-centre counts or a demand forecast. The status values are not a live council-status guarantee; use observed_at or last_observed_at when reconciling changes.

1. Authentication

Send the assigned key in the Authorization header on every request:

Authorization: Bearer YOUR_KEY

Do not place the key in browser JavaScript, a mobile app bundle, a URL or a shared spreadsheet. Call DA Leads from your own server and return only the data or file your front end needs.

Start by checking the contract:

curl --get 'https://daleads.com.au/api/v1/childcare/schema' \
  --header 'Authorization: Bearer YOUR_KEY'

The response identifies the product/version, stable dimensions and endpoint paths. Pin product=childcare_market_intelligence and version=v1 in your integration monitoring.

2. Choose the right endpoint

Need Method and path Response
Complete entitled childcare rows GET /api/v1/das JSON pages
Dashboard totals and trends GET /api/v1/childcare/analysis JSON
Circular site catchment GET /api/v1/childcare/site-analysis JSON
Your drive-time or custom catchment POST /api/v1/childcare/site-analysis JSON
Spreadsheet/model input GET /api/v1/childcare/export?format=csv CSV file
GIS/map input GET /api/v1/childcare/export?format=geojson GeoJSON file
Circular catchment report GET /api/v1/childcare/report?format=pdf PDF file
Your Polygon report POST /api/v1/childcare/report?format=pdf PDF file
Browser-ready report either report endpoint with format=html HTML

The report format parameter selects the response. A PDF is not uploaded. The server analyses the coordinates or Polygon, builds the report and returns the finished file.

3. Complete pipeline ingestion

Use the row feed when you need to reconcile against an existing development database or run your own models:

curl --get 'https://daleads.com.au/api/v1/das' \
  --header 'Authorization: Bearer YOUR_KEY' \
  --data-urlencode 'state=VIC' \
  --data-urlencode 'since=2026-05-19' \
  --data-urlencode 'per_page=100' \
  --data-urlencode 'page=1'

Follow meta.pages. Upsert on id; retain council_reference for matching to council, LeadManager, Cordell or internal records. The supplied childcare_pipeline_stage and childcare_works_type fields remove the need to normalize council wording independently.

observed_at is a best-effort re-seen timestamp, not a deletion stream or a durable change cursor. Poll with overlap, use idempotent upserts and run a full reconciliation periodically.

To download every page and create a prefilled trial-review worksheet without writing pagination code, use the supplied helper:

curl --output childcare_trial_reconciliation.py \
  'https://daleads.com.au/api/v1/childcare/reconciliation-helper'
python3 childcare_trial_reconciliation.py --output childcare-trial-review.csv

The script securely prompts for the key without echoing it or placing it in shell history/process arguments. Alternatively, set DALEADS_API_KEY in the calling process environment. The script refuses to overwrite an existing worksheet unless --force is supplied, so a later refresh cannot silently erase customer review columns.

The output retains the DA Leads identifiers and observed timestamp, and adds blank customer_match, customer_source, customer_record_id, classification_review and review_notes columns. Business Geographics can load the file into its database or spreadsheet and record only the exceptions.

4. Dashboard analysis

curl --get 'https://daleads.com.au/api/v1/childcare/analysis' \
  --header 'Authorization: Bearer YOUR_KEY' \
  --data-urlencode 'state=VIC' \
  --data-urlencode 'since=2026-05-19'

The response contains:

  • headline: total and current pipeline-stage counts;
  • trend: continuous monthly rows, including zero months;
  • breakdowns: stage, works type, state, council and suburb;
  • coverage: geocoding, reference/status availability, freshness and per-state/per-council diagnostics;
  • demand_signals: aggregated all-development, subdivision, lot and dwelling context;
  • geojson: map-ready childcare development points.

Abbreviated response example:

{
  "data": {
    "scope": {
      "product": "childcare_market_intelligence",
      "version": "v1"
    },
    "headline": {
      "total": 8,
      "under_assessment": 3,
      "advertised": 1,
      "approved": 3,
      "refused": 1
    },
    "trend": [
      {"month": "2026-06", "total": 2},
      {"month": "2026-07", "total": 4},
      {"month": "2026-08", "total": 2}
    ],
    "coverage": {
      "records": 8,
      "geocoded_pct": 100.0,
      "council_reference_pct": 100.0,
      "status_present_pct": 87.5,
      "geojson_truncated": false
    },
    "geojson": {
      "type": "FeatureCollection",
      "features": []
    }
  }
}

The complete downloadable sample includes the other documented sections. Do not hard-code the illustrative counts above; use the live response.

Use feature_limit only to limit embedded map features. Headline, trend and breakdown counts continue to use the complete entitled result. Read coverage.geojson_truncated before treating the embedded map as complete.

5. Circular site analysis

All three location parameters and state are required:

curl --get 'https://daleads.com.au/api/v1/childcare/site-analysis' \
  --header 'Authorization: Bearer YOUR_KEY' \
  --data-urlencode 'lat=-37.8136' \
  --data-urlencode 'lng=144.9631' \
  --data-urlencode 'radius_km=2' \
  --data-urlencode 'state=VIC' \
  --data-urlencode 'suburb=Melbourne'

The radius can be 0.1 to 30 km. Coordinates must resolve to the requested state and the state must be allowed by the key.

suburb is optional. Supply it only when suburb-level ABS context is useful. The demographic section remains a suburb fact and is not represented as a radius statistic.

6. Customer drive-time or custom Polygon

Export the catchment from your GIS or drive-time engine as WGS84 GeoJSON (longitude, latitude), then send it as the request body:

curl --request POST \
  'https://daleads.com.au/api/v1/childcare/site-analysis' \
  --header 'Authorization: Bearer YOUR_KEY' \
  --header 'Content-Type: application/json' \
  --data @catchment-request.json

catchment-request.json:

{
  "state": "VIC",
  "suburb": "Melbourne",
  "catchment": {
    "type": "Polygon",
    "coordinates": [[
      [144.9400, -37.8200],
      [144.9900, -37.8200],
      [144.9900, -37.7800],
      [144.9400, -37.7800],
      [144.9400, -37.8200]
    ]]
  }
}

GeoJSON Feature wrappers and Polygon holes are supported. The Polygon must be valid, wholly inside the requested state, no more than 30 km in bounding radius and no more than 5,000 vertices.

The response filters development and open-school points to the Polygon. Suburb demographics remain suburb-level facts.

7. CSV and GeoJSON exports

CSV for modelling:

curl --get 'https://daleads.com.au/api/v1/childcare/export' \
  --header 'Authorization: Bearer YOUR_KEY' \
  --data-urlencode 'format=csv' \
  --data-urlencode 'state=VIC' \
  --output childcare-pipeline.csv

GeoJSON for GIS:

curl --get 'https://daleads.com.au/api/v1/childcare/export' \
  --header 'Authorization: Bearer YOUR_KEY' \
  --data-urlencode 'format=geojson' \
  --data-urlencode 'state=VIC' \
  --output childcare-pipeline.geojson

The CSV is protected against spreadsheet formula execution in text fields. GeoJSON uses EPSG:4326 [longitude, latitude] and includes truncation metadata.

8. Generate a PDF or HTML report

Radius report

curl --get 'https://daleads.com.au/api/v1/childcare/report' \
  --header 'Authorization: Bearer YOUR_KEY' \
  --data-urlencode 'lat=-37.8136' \
  --data-urlencode 'lng=144.9631' \
  --data-urlencode 'radius_km=2' \
  --data-urlencode 'state=VIC' \
  --data-urlencode 'suburb=Melbourne' \
  --data-urlencode 'format=pdf' \
  --output childcare-market-report.pdf

Polygon report

Use the same catchment-request.json as Polygon site analysis:

curl --request POST \
  'https://daleads.com.au/api/v1/childcare/report?format=pdf' \
  --header 'Authorization: Bearer YOUR_KEY' \
  --header 'Content-Type: application/json' \
  --data @catchment-request.json \
  --output childcare-market-report.pdf

Use format=html to receive browser-ready HTML instead. A successful PDF response has Content-Type: application/pdf and a download filename. If the bounded report renderer is busy, retry a 429 response after the number of seconds in Retry-After.

Python example:

from pathlib import Path
import requests

response = requests.get(
    "https://daleads.com.au/api/v1/childcare/report",
    headers={"Authorization": "Bearer YOUR_KEY"},
    params={
        "lat": -37.8136,
        "lng": 144.9631,
        "radius_km": 2,
        "state": "VIC",
        "suburb": "Melbourne",
        "format": "pdf",
    },
    timeout=90,
)
response.raise_for_status()
Path("childcare-market-report.pdf").write_bytes(response.content)

9. Errors and retry behaviour

Status Meaning Action
400 Invalid date/location/Polygon or unsupported include_access=true Correct the request; do not retry unchanged
401 Missing or invalid key Check the Authorization header
403 Key inactive/expired, state outside entitlement, or add-on not enabled Check the assigned licence metadata
422 Missing required parameter or invalid JSON request shape Supply the required state/location/body fields
429 Daily limit or PDF renderer concurrency limit Respect Retry-After; do not fan out PDF requests
503 PDF renderer or dependency temporarily unavailable Retry with backoff; use JSON/CSV while unavailable

Log response status, endpoint and request correlation in your own system, but never log the Bearer token.

10. Data boundaries

  • Council coverage and freshness vary; use the response coverage block.
  • Demand signals are planning inputs, not utilization or financial forecasts.
  • ACECQA service, approved-place and NQS data is unavailable pending written commercial redistribution permission. available=false does not mean zero local services.
  • Open-school point coverage currently includes VIC, NSW, QLD, WA, SA and ACT, subject to each publisher's sector coverage. TAS and NT return an explicit coverage gap.
  • No ACARA ID, ICSEA, enrolment, teaching staff or ACARA-derived year range is read or delivered.
  • Reports and JSON carry the attribution and licence for the sources actually used. Preserve those notices in downstream customer-visible outputs.

11. Suggested evaluation workflow

For a trial, run the supplied reconciliation helper to ingest one complete snapshot, then compare it with the customer's existing council, LeadManager and Cordell records using council_reference, address and lodgement date. Track:

  • matched existing records;
  • genuinely additional rows;
  • false positives and missed childcare synonyms;
  • duplicate council references;
  • status differences;
  • council coverage gaps;
  • analyst time saved by stable stages, catchment filtering and ready-made CSV/GeoJSON/PDF outputs.

This comparison is the evidence for a production integration decision; the API does not claim incremental coverage before the customer performs it.

Ready to test a request?

Return to the interactive reference and use your assigned key.

Open API Reference