{
  "openapi": "3.1.0",
  "info": {
    "title": "Road crash locations, Queensland query API",
    "version": "2026-04-24",
    "summary": "Filter, page and aggregate Road crash locations, Queensland from Department of Transport and Main Roads.",
    "description": "The query API returns only the rows you ask for, as JSON, NDJSON or CSV, from the same typed rows as the files. It needs no key. The API allows 60 requests in 10 seconds from one address. Above that it answers 429 for 10 seconds with a `Retry-After` header, a `RateLimit-Policy` header and a JSON body that gives the limit. Every API answer carries the same `RateLimit-Policy`. A client should wait the `Retry-After` seconds, or read the files, which have no limit. Every JSON answer carries the version, licence and attribution. CSV and NDJSON answers carry them in response headers. Department of Transport and Main Roads has not endorsed this site. The whole site is described in https://publicdata.au/openapi.json.",
    "license": {
      "name": "CC BY 4.0",
      "url": "https://creativecommons.org/licenses/by/4.0/"
    }
  },
  "servers": [
    {
      "url": "https://publicdata.au"
    }
  ],
  "externalDocs": {
    "url": "https://publicdata.au/d/qld-road-crash-locations/#query"
  },
  "tags": [
    {
      "name": "query"
    }
  ],
  "paths": {
    "/api/v1/datasets/qld-road-crash-locations/rows": {
      "get": {
        "tags": [
          "query"
        ],
        "summary": "Query Road crash locations, Queensland",
        "operationId": "queryRows_qld_road_crash_locations",
        "description": "Rows of Road crash locations, Queensland in the newest loaded version, filtered and paged. Each filter is `field=operator.value` in the query string, and every filter must match. A number or date field compares as a number or date, and a text field compares as text. Values are case-sensitive, except that `like` and `ilike` ignore case in the ASCII letters A to Z. Prefix `not.` to negate a filter, as `not.eq.value`. Operators: `eq.value`, `neq.value`, `gt.value`, `gte.value`, `lt.value`, `lte.value`, `like.*text*`, `ilike.*text*`, `in.(a,b,c)`, `is.null`.",
        "parameters": [
          {
            "name": "crash_ref_number",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "integer. The publisher's identifier for the crash. Unique within a release. From 1 to 415408."
          },
          {
            "name": "crash_severity",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Fatal, Hospitalisation, Medical treatment, Minor injury or Property damage only. Property damage only crashes stop after 31 December 2010. Values: Fatal, Hospitalisation, Medical treatment, Minor injury, Property damage only.",
            "examples": [
              "eq.Property damage only"
            ]
          },
          {
            "name": "crash_year",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "integer. From 2001 to 2025.",
            "examples": [
              "eq.2025"
            ]
          },
          {
            "name": "crash_month",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Month name. Values: April, August, December, February, January, July, June, March, May, November, October, September.",
            "examples": [
              "eq.September"
            ]
          },
          {
            "name": "crash_day_of_week",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Values: Friday, Monday, Saturday, Sunday, Thursday, Tuesday, Wednesday.",
            "examples": [
              "eq.Wednesday"
            ]
          },
          {
            "name": "crash_hour",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "integer. Hour of the day, 0 to 23. From 0 to 23.",
            "examples": [
              "eq.23"
            ]
          },
          {
            "name": "crash_nature",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. For example Angle, Rear-end, Hit pedestrian. Values: Angle, Collision - miscellaneous, Fall from vehicle, Head-on, Hit animal, Hit object, Hit parked vehicle, Hit pedestrian, Non-collision - miscellaneous, Other, Overturned, Rear-end, Sideswipe, Struck by external load, Struck by internal load.",
            "examples": [
              "eq.Struck by internal load"
            ]
          },
          {
            "name": "crash_type",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Single Vehicle, Multi-Vehicle, Hit pedestrian or Other. Values: Hit pedestrian, Multi-Vehicle, Other, Single Vehicle.",
            "examples": [
              "eq.Single Vehicle"
            ]
          },
          {
            "name": "crash_longitude",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "number. Decimal degrees, GDA2020. Blank for 598 crashes in the April 2026 release. From 137.998204215167 to 153.550268319891."
          },
          {
            "name": "crash_latitude",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "number. Decimal degrees, GDA2020. From -29.1458150712781 to -9.38021282259915."
          },
          {
            "name": "crash_street",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string."
          },
          {
            "name": "crash_street_intersecting",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Blank when the crash was not at an intersection."
          },
          {
            "name": "state_road_name",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Blank on locally controlled roads."
          },
          {
            "name": "loc_suburb",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string."
          },
          {
            "name": "loc_local_government_area",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string.",
            "examples": [
              "eq.Yarrabah Aboriginal Shire"
            ]
          },
          {
            "name": "loc_post_code",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Kept as text."
          },
          {
            "name": "loc_police_division",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string."
          },
          {
            "name": "loc_police_district",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Values: Capricornia, Darling Downs, Far North, Gold Coast, Ipswich, Logan, Mackay, Moreton, Mount Isa, North Brisbane, South Brisbane, South West, Sunshine Coast, Townsville, Unknown, Wide Bay Burnett.",
            "examples": [
              "eq.Wide Bay Burnett"
            ]
          },
          {
            "name": "loc_police_region",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Values: Brisbane, Central, Far Northern, North Coast, Northern, South Eastern, Southern, Unknown.",
            "examples": [
              "eq.Unknown"
            ]
          },
          {
            "name": "loc_queensland_transport_region",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Values: Central, Northern, SEQ North, SEQ South, Southern, Unknown.",
            "examples": [
              "eq.Unknown"
            ]
          },
          {
            "name": "loc_main_roads_region",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Values: Central Queensland, Metropolitan, North Coast, North Queensland, South Coast, Southern Queensland, Unknown.",
            "examples": [
              "eq.Unknown"
            ]
          },
          {
            "name": "loc_abs_statistical_area_2",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. ABS SA2 name."
          },
          {
            "name": "loc_abs_statistical_area_3",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. ABS SA3 name.",
            "examples": [
              "eq.Wynnum - Manly"
            ]
          },
          {
            "name": "loc_abs_statistical_area_4",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. ABS SA4 name. Values: Brisbane - East, Brisbane - North, Brisbane - South, Brisbane - West, Brisbane Inner City, Cairns, Central Queensland, Darling Downs - Maranoa, Gold Coast, Ipswich, Logan - Beaudesert, Mackay - Isaac - Whitsunday, Moreton Bay - North, Moreton Bay - South, Queensland - Outback, Sunshine Coast, Toowoomba, Townsville, Unknown, Wide Bay.",
            "examples": [
              "eq.Wide Bay"
            ]
          },
          {
            "name": "loc_abs_remoteness",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. ABS remoteness class. Values: Inner Regional, Major Cities, Outer Regional, Remote, Unknown, Very Remote.",
            "examples": [
              "eq.Very Remote"
            ]
          },
          {
            "name": "loc_state_electorate",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string.",
            "examples": [
              "eq.Woodridge"
            ]
          },
          {
            "name": "loc_federal_electorate",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string.",
            "examples": [
              "eq.Wright"
            ]
          },
          {
            "name": "crash_controlling_authority",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. State-controlled, Locally-controlled, Other or Not coded. Values: Locally-controlled, Not coded, Other, State-controlled.",
            "examples": [
              "eq.State-controlled"
            ]
          },
          {
            "name": "crash_roadway_feature",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Values: Bikeway, Bridge/Causeway, Forestry/National Park Road, Intersection - 5+ way, Intersection - Cross, Intersection - Interchange, Intersection - Multiple Road, Intersection - Roundabout, Intersection - T-Junction, Intersection - Y-Junction, Median Opening, Merge Lane, Miscellaneous, No Roadway Feature, Other, Railway Crossing.",
            "examples": [
              "eq.Railway Crossing"
            ]
          },
          {
            "name": "crash_traffic_control",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Values: Flashing amber lights, Give way sign, LATM device, Miscellaneous, No traffic control, Operating traffic lights, Other, Pedestrian crossing sign, Pedestrian operated lights, Police, Railway - lights and boom gate, Railway - lights only, Railway crossing sign, Road/Rail worker, School crossing - flags, Stop sign, Supervised school crossing.",
            "examples": [
              "eq.Supervised school crossing"
            ]
          },
          {
            "name": "crash_speed_limit",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. A band such as 60 km/h or 100 - 110 km/h. Kept as text because the publisher uses bands. Values: 0 - 50 km/h, 100 - 110 km/h, 60 km/h, 70 km/h, 80 - 90 km/h.",
            "examples": [
              "eq.80 - 90 km/h"
            ]
          },
          {
            "name": "crash_road_surface_condition",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Values: Sealed - Dry, Sealed - Wet, Unknown, Unsealed - Dry, Unsealed - Wet.",
            "examples": [
              "eq.Unsealed - Wet"
            ]
          },
          {
            "name": "crash_atmospheric_condition",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Values: Clear, Fog, Raining, Smoke/Dust, Unknown.",
            "examples": [
              "eq.Unknown"
            ]
          },
          {
            "name": "crash_lighting_condition",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Values: Darkness - Lighted, Darkness - Not lighted, Dawn/Dusk, Daylight, Unknown.",
            "examples": [
              "eq.Unknown"
            ]
          },
          {
            "name": "crash_road_horiz_align",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Horizontal alignment. Values: Curved - view obscured, Curved - view open, Straight, Unknown.",
            "examples": [
              "eq.Unknown"
            ]
          },
          {
            "name": "crash_road_vert_align",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Vertical alignment. Values: Crest, Dip, Grade, Level, Unknown.",
            "examples": [
              "eq.Unknown"
            ]
          },
          {
            "name": "crash_dca_code",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. DCA (Definitions for Coding Accidents) code. Kept as text to preserve leading zeros.",
            "examples": [
              "eq.UNK"
            ]
          },
          {
            "name": "crash_dca_description",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string.",
            "examples": [
              "eq.Vehs Same Direction: U-Turn"
            ]
          },
          {
            "name": "crash_dca_group_description",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string.",
            "examples": [
              "eq.UNK: Unknown"
            ]
          },
          {
            "name": "dca_key_approach_dir",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Compass direction of the key vehicle. Blank in about 8,000 rows. Values: E, N, P, S, U, W.",
            "examples": [
              "eq.W"
            ]
          },
          {
            "name": "count_casualty_fatality",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "integer. Values: 0, 1, 2, 3, 4, 5.",
            "examples": [
              "eq.5"
            ]
          },
          {
            "name": "count_casualty_hospitalised",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "integer. Values: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 15, 16, 17, 19, 22.",
            "examples": [
              "eq.22"
            ]
          },
          {
            "name": "count_casualty_medically_treated",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "integer. From 0 to 29.",
            "examples": [
              "eq.29"
            ]
          },
          {
            "name": "count_casualty_minor_injury",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "integer. Values: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 13, 14, 15, 16, 17.",
            "examples": [
              "eq.17"
            ]
          },
          {
            "name": "count_casualty_total",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "integer. From 0 to 32.",
            "examples": [
              "eq.32"
            ]
          },
          {
            "name": "count_unit_car",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "integer. Number of cars involved. Values: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 15.",
            "examples": [
              "eq.15"
            ]
          },
          {
            "name": "count_unit_motorcycle_moped",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "integer. Values: 0, 1, 2, 3, 4, 5.",
            "examples": [
              "eq.5"
            ]
          },
          {
            "name": "count_unit_truck",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "integer. Values: 0, 1, 2, 3, 4, 5.",
            "examples": [
              "eq.5"
            ]
          },
          {
            "name": "count_unit_bus",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "integer. Values: 0, 1, 2, 3.",
            "examples": [
              "eq.3"
            ]
          },
          {
            "name": "count_unit_bicycle",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "integer. Values: 0, 1, 2, 3, 4, 5, 6, 9, 11.",
            "examples": [
              "eq.11"
            ]
          },
          {
            "name": "count_unit_pedestrian",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "integer. Values: 0, 1, 2, 3, 4, 5, 7, 11, 20.",
            "examples": [
              "eq.20"
            ]
          },
          {
            "name": "count_unit_other",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "integer. Values: 0, 1, 2, 3, 4.",
            "examples": [
              "eq.4"
            ]
          },
          {
            "name": "sa2_2021_code",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Code of the Statistical Area Level 2 (2021) the point falls in. Joined by location from abs-sa2-2021, not published by the publisher."
          },
          {
            "name": "sa2_2021_name",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Name of the Statistical Area Level 2 (2021) the point falls in. Joined by location from abs-sa2-2021, not published by the publisher."
          },
          {
            "name": "lga_2025_code",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Code of the Local Government Area (2025) the point falls in. Joined by location from abs-lga-2025, not published by the publisher.",
            "examples": [
              "eq.37600"
            ]
          },
          {
            "name": "lga_2025_name",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Name of the Local Government Area (2025) the point falls in. Joined by location from abs-lga-2025, not published by the publisher.",
            "examples": [
              "eq.Yarrabah"
            ]
          },
          {
            "name": "sal_2021_code",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Code of the Suburb and Locality (2021) the point falls in. Joined by location from abs-suburbs-localities-2021, not published by the publisher."
          },
          {
            "name": "sal_2021_name",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Name of the Suburb and Locality (2021) the point falls in. Joined by location from abs-suburbs-localities-2021, not published by the publisher."
          },
          {
            "name": "poa_2021_code",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Code of the Postal Area (2021) the point falls in. Joined by location from abs-postal-areas-2021, not published by the publisher."
          },
          {
            "name": "poa_2021_name",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Name of the Postal Area (2021) the point falls in. Joined by location from abs-postal-areas-2021, not published by the publisher."
          },
          {
            "name": "sed_2025_code",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Code of the State Electoral Division (2025) the point falls in. Joined by location from abs-state-electoral-divisions-2025, not published by the publisher.",
            "examples": [
              "eq.30093"
            ]
          },
          {
            "name": "sed_2025_name",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Name of the State Electoral Division (2025) the point falls in. Joined by location from abs-state-electoral-divisions-2025, not published by the publisher.",
            "examples": [
              "eq.Woodridge"
            ]
          },
          {
            "name": "ced_2025_code",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Code of the Commonwealth Electoral Division (2025) the point falls in. Joined by location from abs-federal-electoral-divisions-2025, not published by the publisher.",
            "examples": [
              "eq.330"
            ]
          },
          {
            "name": "ced_2025_name",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Name of the Commonwealth Electoral Division (2025) the point falls in. Joined by location from abs-federal-electoral-divisions-2025, not published by the publisher.",
            "examples": [
              "eq.Wright"
            ]
          },
          {
            "name": "select",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "Fields to return, comma-separated. Every field when absent."
          },
          {
            "name": "order",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "`field.asc` or `field.desc`, comma-separated. When absent, rows come in the order of the file they are read from. For the newest versions that is the version's own data.parquet, which keeps the publisher's order unless the dataset sorted it. Any other version is read from the Parquet file the answer names in `file`, and when that file is sorted the answer names its sort in `order`, which ties follow too."
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 10000,
              "default": 100
            },
            "description": "Rows per page, 1 to 10,000. 100 when absent."
          },
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 0,
              "default": 0
            },
            "description": "Rows to skip. The `next` URL in each answer sets it for you."
          },
          {
            "name": "format",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "json",
                "ndjson",
                "csv"
              ],
              "default": "json"
            },
            "description": "`json`, `ndjson` or `csv`. JSON carries the provenance header, and the others carry it in response headers."
          }
        ],
        "responses": {
          "200": {
            "description": "Rows with the version, licence and attribution. `next` is the URL of the following page, or null. An answer read or counted from a Parquet file names it in `file`, or its period parts in `parts`, and a sorted file's sort in `order`."
          },
          "400": {
            "description": "The query names a field the dataset does not have, or a value of the wrong type."
          },
          "404": {
            "description": "The dataset does not exist here, or the version has no table to query."
          },
          "422": {
            "description": "The query would read more of the version's file than one answer may, or the file cannot be read in part. The error gives DuckDB SQL that answers it from the published file."
          },
          "429": {
            "description": "More than 60 requests in 10 seconds from one address. Blocked for 10 seconds. Wait `Retry-After` seconds.",
            "headers": {
              "Retry-After": {
                "schema": {
                  "type": "integer"
                },
                "description": "Seconds until the block lifts."
              },
              "RateLimit-Policy": {
                "schema": {
                  "type": "string"
                },
                "description": "The limit, as \"fair-use\";q=60;w=10."
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string"
                    },
                    "status": {
                      "type": "integer",
                      "const": 429
                    },
                    "limit": {
                      "type": "integer"
                    },
                    "window_seconds": {
                      "type": "integer"
                    },
                    "block_seconds": {
                      "type": "integer"
                    },
                    "docs": {
                      "type": "string",
                      "format": "uri"
                    },
                    "files": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/datasets/qld-road-crash-locations/versions/{version}/rows": {
      "get": {
        "tags": [
          "query"
        ],
        "summary": "Query Road crash locations, Queensland",
        "operationId": "queryRows_qld_road_crash_locations_version",
        "description": "Rows of Road crash locations, Queensland in one dated version, filtered and paged. Each filter is `field=operator.value` in the query string, and every filter must match. A number or date field compares as a number or date, and a text field compares as text. Values are case-sensitive, except that `like` and `ilike` ignore case in the ASCII letters A to Z. Prefix `not.` to negate a filter, as `not.eq.value`. Operators: `eq.value`, `neq.value`, `gt.value`, `gte.value`, `lt.value`, `lte.value`, `like.*text*`, `ilike.*text*`, `in.(a,b,c)`, `is.null`.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date"
            },
            "description": "A dated version, from the versions path. A dated version's answers stay the same unless a correction rebuilds the version, which its notes record."
          },
          {
            "name": "crash_ref_number",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "integer. The publisher's identifier for the crash. Unique within a release. From 1 to 415408."
          },
          {
            "name": "crash_severity",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Fatal, Hospitalisation, Medical treatment, Minor injury or Property damage only. Property damage only crashes stop after 31 December 2010. Values: Fatal, Hospitalisation, Medical treatment, Minor injury, Property damage only.",
            "examples": [
              "eq.Property damage only"
            ]
          },
          {
            "name": "crash_year",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "integer. From 2001 to 2025.",
            "examples": [
              "eq.2025"
            ]
          },
          {
            "name": "crash_month",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Month name. Values: April, August, December, February, January, July, June, March, May, November, October, September.",
            "examples": [
              "eq.September"
            ]
          },
          {
            "name": "crash_day_of_week",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Values: Friday, Monday, Saturday, Sunday, Thursday, Tuesday, Wednesday.",
            "examples": [
              "eq.Wednesday"
            ]
          },
          {
            "name": "crash_hour",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "integer. Hour of the day, 0 to 23. From 0 to 23.",
            "examples": [
              "eq.23"
            ]
          },
          {
            "name": "crash_nature",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. For example Angle, Rear-end, Hit pedestrian. Values: Angle, Collision - miscellaneous, Fall from vehicle, Head-on, Hit animal, Hit object, Hit parked vehicle, Hit pedestrian, Non-collision - miscellaneous, Other, Overturned, Rear-end, Sideswipe, Struck by external load, Struck by internal load.",
            "examples": [
              "eq.Struck by internal load"
            ]
          },
          {
            "name": "crash_type",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Single Vehicle, Multi-Vehicle, Hit pedestrian or Other. Values: Hit pedestrian, Multi-Vehicle, Other, Single Vehicle.",
            "examples": [
              "eq.Single Vehicle"
            ]
          },
          {
            "name": "crash_longitude",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "number. Decimal degrees, GDA2020. Blank for 598 crashes in the April 2026 release. From 137.998204215167 to 153.550268319891."
          },
          {
            "name": "crash_latitude",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "number. Decimal degrees, GDA2020. From -29.1458150712781 to -9.38021282259915."
          },
          {
            "name": "crash_street",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string."
          },
          {
            "name": "crash_street_intersecting",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Blank when the crash was not at an intersection."
          },
          {
            "name": "state_road_name",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Blank on locally controlled roads."
          },
          {
            "name": "loc_suburb",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string."
          },
          {
            "name": "loc_local_government_area",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string.",
            "examples": [
              "eq.Yarrabah Aboriginal Shire"
            ]
          },
          {
            "name": "loc_post_code",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Kept as text."
          },
          {
            "name": "loc_police_division",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string."
          },
          {
            "name": "loc_police_district",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Values: Capricornia, Darling Downs, Far North, Gold Coast, Ipswich, Logan, Mackay, Moreton, Mount Isa, North Brisbane, South Brisbane, South West, Sunshine Coast, Townsville, Unknown, Wide Bay Burnett.",
            "examples": [
              "eq.Wide Bay Burnett"
            ]
          },
          {
            "name": "loc_police_region",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Values: Brisbane, Central, Far Northern, North Coast, Northern, South Eastern, Southern, Unknown.",
            "examples": [
              "eq.Unknown"
            ]
          },
          {
            "name": "loc_queensland_transport_region",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Values: Central, Northern, SEQ North, SEQ South, Southern, Unknown.",
            "examples": [
              "eq.Unknown"
            ]
          },
          {
            "name": "loc_main_roads_region",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Values: Central Queensland, Metropolitan, North Coast, North Queensland, South Coast, Southern Queensland, Unknown.",
            "examples": [
              "eq.Unknown"
            ]
          },
          {
            "name": "loc_abs_statistical_area_2",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. ABS SA2 name."
          },
          {
            "name": "loc_abs_statistical_area_3",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. ABS SA3 name.",
            "examples": [
              "eq.Wynnum - Manly"
            ]
          },
          {
            "name": "loc_abs_statistical_area_4",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. ABS SA4 name. Values: Brisbane - East, Brisbane - North, Brisbane - South, Brisbane - West, Brisbane Inner City, Cairns, Central Queensland, Darling Downs - Maranoa, Gold Coast, Ipswich, Logan - Beaudesert, Mackay - Isaac - Whitsunday, Moreton Bay - North, Moreton Bay - South, Queensland - Outback, Sunshine Coast, Toowoomba, Townsville, Unknown, Wide Bay.",
            "examples": [
              "eq.Wide Bay"
            ]
          },
          {
            "name": "loc_abs_remoteness",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. ABS remoteness class. Values: Inner Regional, Major Cities, Outer Regional, Remote, Unknown, Very Remote.",
            "examples": [
              "eq.Very Remote"
            ]
          },
          {
            "name": "loc_state_electorate",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string.",
            "examples": [
              "eq.Woodridge"
            ]
          },
          {
            "name": "loc_federal_electorate",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string.",
            "examples": [
              "eq.Wright"
            ]
          },
          {
            "name": "crash_controlling_authority",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. State-controlled, Locally-controlled, Other or Not coded. Values: Locally-controlled, Not coded, Other, State-controlled.",
            "examples": [
              "eq.State-controlled"
            ]
          },
          {
            "name": "crash_roadway_feature",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Values: Bikeway, Bridge/Causeway, Forestry/National Park Road, Intersection - 5+ way, Intersection - Cross, Intersection - Interchange, Intersection - Multiple Road, Intersection - Roundabout, Intersection - T-Junction, Intersection - Y-Junction, Median Opening, Merge Lane, Miscellaneous, No Roadway Feature, Other, Railway Crossing.",
            "examples": [
              "eq.Railway Crossing"
            ]
          },
          {
            "name": "crash_traffic_control",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Values: Flashing amber lights, Give way sign, LATM device, Miscellaneous, No traffic control, Operating traffic lights, Other, Pedestrian crossing sign, Pedestrian operated lights, Police, Railway - lights and boom gate, Railway - lights only, Railway crossing sign, Road/Rail worker, School crossing - flags, Stop sign, Supervised school crossing.",
            "examples": [
              "eq.Supervised school crossing"
            ]
          },
          {
            "name": "crash_speed_limit",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. A band such as 60 km/h or 100 - 110 km/h. Kept as text because the publisher uses bands. Values: 0 - 50 km/h, 100 - 110 km/h, 60 km/h, 70 km/h, 80 - 90 km/h.",
            "examples": [
              "eq.80 - 90 km/h"
            ]
          },
          {
            "name": "crash_road_surface_condition",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Values: Sealed - Dry, Sealed - Wet, Unknown, Unsealed - Dry, Unsealed - Wet.",
            "examples": [
              "eq.Unsealed - Wet"
            ]
          },
          {
            "name": "crash_atmospheric_condition",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Values: Clear, Fog, Raining, Smoke/Dust, Unknown.",
            "examples": [
              "eq.Unknown"
            ]
          },
          {
            "name": "crash_lighting_condition",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Values: Darkness - Lighted, Darkness - Not lighted, Dawn/Dusk, Daylight, Unknown.",
            "examples": [
              "eq.Unknown"
            ]
          },
          {
            "name": "crash_road_horiz_align",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Horizontal alignment. Values: Curved - view obscured, Curved - view open, Straight, Unknown.",
            "examples": [
              "eq.Unknown"
            ]
          },
          {
            "name": "crash_road_vert_align",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Vertical alignment. Values: Crest, Dip, Grade, Level, Unknown.",
            "examples": [
              "eq.Unknown"
            ]
          },
          {
            "name": "crash_dca_code",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. DCA (Definitions for Coding Accidents) code. Kept as text to preserve leading zeros.",
            "examples": [
              "eq.UNK"
            ]
          },
          {
            "name": "crash_dca_description",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string.",
            "examples": [
              "eq.Vehs Same Direction: U-Turn"
            ]
          },
          {
            "name": "crash_dca_group_description",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string.",
            "examples": [
              "eq.UNK: Unknown"
            ]
          },
          {
            "name": "dca_key_approach_dir",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Compass direction of the key vehicle. Blank in about 8,000 rows. Values: E, N, P, S, U, W.",
            "examples": [
              "eq.W"
            ]
          },
          {
            "name": "count_casualty_fatality",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "integer. Values: 0, 1, 2, 3, 4, 5.",
            "examples": [
              "eq.5"
            ]
          },
          {
            "name": "count_casualty_hospitalised",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "integer. Values: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 15, 16, 17, 19, 22.",
            "examples": [
              "eq.22"
            ]
          },
          {
            "name": "count_casualty_medically_treated",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "integer. From 0 to 29.",
            "examples": [
              "eq.29"
            ]
          },
          {
            "name": "count_casualty_minor_injury",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "integer. Values: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 13, 14, 15, 16, 17.",
            "examples": [
              "eq.17"
            ]
          },
          {
            "name": "count_casualty_total",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "integer. From 0 to 32.",
            "examples": [
              "eq.32"
            ]
          },
          {
            "name": "count_unit_car",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "integer. Number of cars involved. Values: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 15.",
            "examples": [
              "eq.15"
            ]
          },
          {
            "name": "count_unit_motorcycle_moped",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "integer. Values: 0, 1, 2, 3, 4, 5.",
            "examples": [
              "eq.5"
            ]
          },
          {
            "name": "count_unit_truck",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "integer. Values: 0, 1, 2, 3, 4, 5.",
            "examples": [
              "eq.5"
            ]
          },
          {
            "name": "count_unit_bus",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "integer. Values: 0, 1, 2, 3.",
            "examples": [
              "eq.3"
            ]
          },
          {
            "name": "count_unit_bicycle",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "integer. Values: 0, 1, 2, 3, 4, 5, 6, 9, 11.",
            "examples": [
              "eq.11"
            ]
          },
          {
            "name": "count_unit_pedestrian",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "integer. Values: 0, 1, 2, 3, 4, 5, 7, 11, 20.",
            "examples": [
              "eq.20"
            ]
          },
          {
            "name": "count_unit_other",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "integer. Values: 0, 1, 2, 3, 4.",
            "examples": [
              "eq.4"
            ]
          },
          {
            "name": "sa2_2021_code",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Code of the Statistical Area Level 2 (2021) the point falls in. Joined by location from abs-sa2-2021, not published by the publisher."
          },
          {
            "name": "sa2_2021_name",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Name of the Statistical Area Level 2 (2021) the point falls in. Joined by location from abs-sa2-2021, not published by the publisher."
          },
          {
            "name": "lga_2025_code",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Code of the Local Government Area (2025) the point falls in. Joined by location from abs-lga-2025, not published by the publisher.",
            "examples": [
              "eq.37600"
            ]
          },
          {
            "name": "lga_2025_name",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Name of the Local Government Area (2025) the point falls in. Joined by location from abs-lga-2025, not published by the publisher.",
            "examples": [
              "eq.Yarrabah"
            ]
          },
          {
            "name": "sal_2021_code",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Code of the Suburb and Locality (2021) the point falls in. Joined by location from abs-suburbs-localities-2021, not published by the publisher."
          },
          {
            "name": "sal_2021_name",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Name of the Suburb and Locality (2021) the point falls in. Joined by location from abs-suburbs-localities-2021, not published by the publisher."
          },
          {
            "name": "poa_2021_code",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Code of the Postal Area (2021) the point falls in. Joined by location from abs-postal-areas-2021, not published by the publisher."
          },
          {
            "name": "poa_2021_name",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Name of the Postal Area (2021) the point falls in. Joined by location from abs-postal-areas-2021, not published by the publisher."
          },
          {
            "name": "sed_2025_code",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Code of the State Electoral Division (2025) the point falls in. Joined by location from abs-state-electoral-divisions-2025, not published by the publisher.",
            "examples": [
              "eq.30093"
            ]
          },
          {
            "name": "sed_2025_name",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Name of the State Electoral Division (2025) the point falls in. Joined by location from abs-state-electoral-divisions-2025, not published by the publisher.",
            "examples": [
              "eq.Woodridge"
            ]
          },
          {
            "name": "ced_2025_code",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Code of the Commonwealth Electoral Division (2025) the point falls in. Joined by location from abs-federal-electoral-divisions-2025, not published by the publisher.",
            "examples": [
              "eq.330"
            ]
          },
          {
            "name": "ced_2025_name",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Name of the Commonwealth Electoral Division (2025) the point falls in. Joined by location from abs-federal-electoral-divisions-2025, not published by the publisher.",
            "examples": [
              "eq.Wright"
            ]
          },
          {
            "name": "select",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "Fields to return, comma-separated. Every field when absent."
          },
          {
            "name": "order",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "`field.asc` or `field.desc`, comma-separated. When absent, rows come in the order of the file they are read from. For the newest versions that is the version's own data.parquet, which keeps the publisher's order unless the dataset sorted it. Any other version is read from the Parquet file the answer names in `file`, and when that file is sorted the answer names its sort in `order`, which ties follow too."
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 10000,
              "default": 100
            },
            "description": "Rows per page, 1 to 10,000. 100 when absent."
          },
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 0,
              "default": 0
            },
            "description": "Rows to skip. The `next` URL in each answer sets it for you."
          },
          {
            "name": "format",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "json",
                "ndjson",
                "csv"
              ],
              "default": "json"
            },
            "description": "`json`, `ndjson` or `csv`. JSON carries the provenance header, and the others carry it in response headers."
          }
        ],
        "responses": {
          "200": {
            "description": "Rows with the version, licence and attribution. `next` is the URL of the following page, or null. An answer read or counted from a Parquet file names it in `file`, or its period parts in `parts`, and a sorted file's sort in `order`."
          },
          "400": {
            "description": "The query names a field the dataset does not have, or a value of the wrong type."
          },
          "404": {
            "description": "The dataset does not exist here, or the version has no table to query."
          },
          "422": {
            "description": "The query would read more of the version's file than one answer may, or the file cannot be read in part. The error gives DuckDB SQL that answers it from the published file."
          },
          "429": {
            "description": "More than 60 requests in 10 seconds from one address. Blocked for 10 seconds. Wait `Retry-After` seconds.",
            "headers": {
              "Retry-After": {
                "schema": {
                  "type": "integer"
                },
                "description": "Seconds until the block lifts."
              },
              "RateLimit-Policy": {
                "schema": {
                  "type": "string"
                },
                "description": "The limit, as \"fair-use\";q=60;w=10."
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string"
                    },
                    "status": {
                      "type": "integer",
                      "const": 429
                    },
                    "limit": {
                      "type": "integer"
                    },
                    "window_seconds": {
                      "type": "integer"
                    },
                    "block_seconds": {
                      "type": "integer"
                    },
                    "docs": {
                      "type": "string",
                      "format": "uri"
                    },
                    "files": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/datasets/{slug}/aggregate": {
      "get": {
        "tags": [
          "query"
        ],
        "summary": "Counts, sums, averages, minimums and maximums by group",
        "operationId": "aggregate",
        "description": "Groups and totals of any dataset in the newest loaded version. Filters work as they do on rows. Each filter is `field=operator.value` in the query string, and every filter must match. A number or date field compares as a number or date, and a text field compares as text. Values are case-sensitive, except that `like` and `ilike` ignore case in the ASCII letters A to Z. Prefix `not.` to negate a filter, as `not.eq.value`. Operators: `eq.value`, `neq.value`, `gt.value`, `gte.value`, `lt.value`, `lte.value`, `like.*text*`, `ilike.*text*`, `in.(a,b,c)`, `is.null`.",
        "parameters": [
          {
            "name": "slug",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "enum": [
                "qld-road-crash-locations"
              ]
            },
            "description": "The dataset's slug, as in its page URL `/d/<slug>/`."
          },
          {
            "name": "group",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "On `aggregate`, fields to group by, comma-separated."
          },
          {
            "name": "metric",
            "in": "query",
            "schema": {
              "type": "string",
              "default": "count"
            },
            "description": "On `aggregate`, `count`, `sum.field`, `avg.field`, `min.field` or `max.field`, comma-separated. `count` when absent."
          },
          {
            "name": "crash_ref_number",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "integer. The publisher's identifier for the crash. Unique within a release. From 1 to 415408."
          },
          {
            "name": "crash_severity",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Fatal, Hospitalisation, Medical treatment, Minor injury or Property damage only. Property damage only crashes stop after 31 December 2010. Values: Fatal, Hospitalisation, Medical treatment, Minor injury, Property damage only.",
            "examples": [
              "eq.Property damage only"
            ]
          },
          {
            "name": "crash_year",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "integer. From 2001 to 2025.",
            "examples": [
              "eq.2025"
            ]
          },
          {
            "name": "crash_month",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Month name. Values: April, August, December, February, January, July, June, March, May, November, October, September.",
            "examples": [
              "eq.September"
            ]
          },
          {
            "name": "crash_day_of_week",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Values: Friday, Monday, Saturday, Sunday, Thursday, Tuesday, Wednesday.",
            "examples": [
              "eq.Wednesday"
            ]
          },
          {
            "name": "crash_hour",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "integer. Hour of the day, 0 to 23. From 0 to 23.",
            "examples": [
              "eq.23"
            ]
          },
          {
            "name": "crash_nature",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. For example Angle, Rear-end, Hit pedestrian. Values: Angle, Collision - miscellaneous, Fall from vehicle, Head-on, Hit animal, Hit object, Hit parked vehicle, Hit pedestrian, Non-collision - miscellaneous, Other, Overturned, Rear-end, Sideswipe, Struck by external load, Struck by internal load.",
            "examples": [
              "eq.Struck by internal load"
            ]
          },
          {
            "name": "crash_type",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Single Vehicle, Multi-Vehicle, Hit pedestrian or Other. Values: Hit pedestrian, Multi-Vehicle, Other, Single Vehicle.",
            "examples": [
              "eq.Single Vehicle"
            ]
          },
          {
            "name": "crash_longitude",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "number. Decimal degrees, GDA2020. Blank for 598 crashes in the April 2026 release. From 137.998204215167 to 153.550268319891."
          },
          {
            "name": "crash_latitude",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "number. Decimal degrees, GDA2020. From -29.1458150712781 to -9.38021282259915."
          },
          {
            "name": "crash_street",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string."
          },
          {
            "name": "crash_street_intersecting",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Blank when the crash was not at an intersection."
          },
          {
            "name": "state_road_name",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Blank on locally controlled roads."
          },
          {
            "name": "loc_suburb",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string."
          },
          {
            "name": "loc_local_government_area",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string.",
            "examples": [
              "eq.Yarrabah Aboriginal Shire"
            ]
          },
          {
            "name": "loc_post_code",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Kept as text."
          },
          {
            "name": "loc_police_division",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string."
          },
          {
            "name": "loc_police_district",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Values: Capricornia, Darling Downs, Far North, Gold Coast, Ipswich, Logan, Mackay, Moreton, Mount Isa, North Brisbane, South Brisbane, South West, Sunshine Coast, Townsville, Unknown, Wide Bay Burnett.",
            "examples": [
              "eq.Wide Bay Burnett"
            ]
          },
          {
            "name": "loc_police_region",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Values: Brisbane, Central, Far Northern, North Coast, Northern, South Eastern, Southern, Unknown.",
            "examples": [
              "eq.Unknown"
            ]
          },
          {
            "name": "loc_queensland_transport_region",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Values: Central, Northern, SEQ North, SEQ South, Southern, Unknown.",
            "examples": [
              "eq.Unknown"
            ]
          },
          {
            "name": "loc_main_roads_region",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Values: Central Queensland, Metropolitan, North Coast, North Queensland, South Coast, Southern Queensland, Unknown.",
            "examples": [
              "eq.Unknown"
            ]
          },
          {
            "name": "loc_abs_statistical_area_2",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. ABS SA2 name."
          },
          {
            "name": "loc_abs_statistical_area_3",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. ABS SA3 name.",
            "examples": [
              "eq.Wynnum - Manly"
            ]
          },
          {
            "name": "loc_abs_statistical_area_4",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. ABS SA4 name. Values: Brisbane - East, Brisbane - North, Brisbane - South, Brisbane - West, Brisbane Inner City, Cairns, Central Queensland, Darling Downs - Maranoa, Gold Coast, Ipswich, Logan - Beaudesert, Mackay - Isaac - Whitsunday, Moreton Bay - North, Moreton Bay - South, Queensland - Outback, Sunshine Coast, Toowoomba, Townsville, Unknown, Wide Bay.",
            "examples": [
              "eq.Wide Bay"
            ]
          },
          {
            "name": "loc_abs_remoteness",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. ABS remoteness class. Values: Inner Regional, Major Cities, Outer Regional, Remote, Unknown, Very Remote.",
            "examples": [
              "eq.Very Remote"
            ]
          },
          {
            "name": "loc_state_electorate",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string.",
            "examples": [
              "eq.Woodridge"
            ]
          },
          {
            "name": "loc_federal_electorate",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string.",
            "examples": [
              "eq.Wright"
            ]
          },
          {
            "name": "crash_controlling_authority",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. State-controlled, Locally-controlled, Other or Not coded. Values: Locally-controlled, Not coded, Other, State-controlled.",
            "examples": [
              "eq.State-controlled"
            ]
          },
          {
            "name": "crash_roadway_feature",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Values: Bikeway, Bridge/Causeway, Forestry/National Park Road, Intersection - 5+ way, Intersection - Cross, Intersection - Interchange, Intersection - Multiple Road, Intersection - Roundabout, Intersection - T-Junction, Intersection - Y-Junction, Median Opening, Merge Lane, Miscellaneous, No Roadway Feature, Other, Railway Crossing.",
            "examples": [
              "eq.Railway Crossing"
            ]
          },
          {
            "name": "crash_traffic_control",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Values: Flashing amber lights, Give way sign, LATM device, Miscellaneous, No traffic control, Operating traffic lights, Other, Pedestrian crossing sign, Pedestrian operated lights, Police, Railway - lights and boom gate, Railway - lights only, Railway crossing sign, Road/Rail worker, School crossing - flags, Stop sign, Supervised school crossing.",
            "examples": [
              "eq.Supervised school crossing"
            ]
          },
          {
            "name": "crash_speed_limit",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. A band such as 60 km/h or 100 - 110 km/h. Kept as text because the publisher uses bands. Values: 0 - 50 km/h, 100 - 110 km/h, 60 km/h, 70 km/h, 80 - 90 km/h.",
            "examples": [
              "eq.80 - 90 km/h"
            ]
          },
          {
            "name": "crash_road_surface_condition",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Values: Sealed - Dry, Sealed - Wet, Unknown, Unsealed - Dry, Unsealed - Wet.",
            "examples": [
              "eq.Unsealed - Wet"
            ]
          },
          {
            "name": "crash_atmospheric_condition",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Values: Clear, Fog, Raining, Smoke/Dust, Unknown.",
            "examples": [
              "eq.Unknown"
            ]
          },
          {
            "name": "crash_lighting_condition",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Values: Darkness - Lighted, Darkness - Not lighted, Dawn/Dusk, Daylight, Unknown.",
            "examples": [
              "eq.Unknown"
            ]
          },
          {
            "name": "crash_road_horiz_align",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Horizontal alignment. Values: Curved - view obscured, Curved - view open, Straight, Unknown.",
            "examples": [
              "eq.Unknown"
            ]
          },
          {
            "name": "crash_road_vert_align",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Vertical alignment. Values: Crest, Dip, Grade, Level, Unknown.",
            "examples": [
              "eq.Unknown"
            ]
          },
          {
            "name": "crash_dca_code",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. DCA (Definitions for Coding Accidents) code. Kept as text to preserve leading zeros.",
            "examples": [
              "eq.UNK"
            ]
          },
          {
            "name": "crash_dca_description",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string.",
            "examples": [
              "eq.Vehs Same Direction: U-Turn"
            ]
          },
          {
            "name": "crash_dca_group_description",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string.",
            "examples": [
              "eq.UNK: Unknown"
            ]
          },
          {
            "name": "dca_key_approach_dir",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Compass direction of the key vehicle. Blank in about 8,000 rows. Values: E, N, P, S, U, W.",
            "examples": [
              "eq.W"
            ]
          },
          {
            "name": "count_casualty_fatality",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "integer. Values: 0, 1, 2, 3, 4, 5.",
            "examples": [
              "eq.5"
            ]
          },
          {
            "name": "count_casualty_hospitalised",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "integer. Values: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 15, 16, 17, 19, 22.",
            "examples": [
              "eq.22"
            ]
          },
          {
            "name": "count_casualty_medically_treated",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "integer. From 0 to 29.",
            "examples": [
              "eq.29"
            ]
          },
          {
            "name": "count_casualty_minor_injury",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "integer. Values: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 13, 14, 15, 16, 17.",
            "examples": [
              "eq.17"
            ]
          },
          {
            "name": "count_casualty_total",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "integer. From 0 to 32.",
            "examples": [
              "eq.32"
            ]
          },
          {
            "name": "count_unit_car",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "integer. Number of cars involved. Values: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 15.",
            "examples": [
              "eq.15"
            ]
          },
          {
            "name": "count_unit_motorcycle_moped",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "integer. Values: 0, 1, 2, 3, 4, 5.",
            "examples": [
              "eq.5"
            ]
          },
          {
            "name": "count_unit_truck",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "integer. Values: 0, 1, 2, 3, 4, 5.",
            "examples": [
              "eq.5"
            ]
          },
          {
            "name": "count_unit_bus",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "integer. Values: 0, 1, 2, 3.",
            "examples": [
              "eq.3"
            ]
          },
          {
            "name": "count_unit_bicycle",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "integer. Values: 0, 1, 2, 3, 4, 5, 6, 9, 11.",
            "examples": [
              "eq.11"
            ]
          },
          {
            "name": "count_unit_pedestrian",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "integer. Values: 0, 1, 2, 3, 4, 5, 7, 11, 20.",
            "examples": [
              "eq.20"
            ]
          },
          {
            "name": "count_unit_other",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "integer. Values: 0, 1, 2, 3, 4.",
            "examples": [
              "eq.4"
            ]
          },
          {
            "name": "sa2_2021_code",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Code of the Statistical Area Level 2 (2021) the point falls in. Joined by location from abs-sa2-2021, not published by the publisher."
          },
          {
            "name": "sa2_2021_name",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Name of the Statistical Area Level 2 (2021) the point falls in. Joined by location from abs-sa2-2021, not published by the publisher."
          },
          {
            "name": "lga_2025_code",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Code of the Local Government Area (2025) the point falls in. Joined by location from abs-lga-2025, not published by the publisher.",
            "examples": [
              "eq.37600"
            ]
          },
          {
            "name": "lga_2025_name",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Name of the Local Government Area (2025) the point falls in. Joined by location from abs-lga-2025, not published by the publisher.",
            "examples": [
              "eq.Yarrabah"
            ]
          },
          {
            "name": "sal_2021_code",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Code of the Suburb and Locality (2021) the point falls in. Joined by location from abs-suburbs-localities-2021, not published by the publisher."
          },
          {
            "name": "sal_2021_name",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Name of the Suburb and Locality (2021) the point falls in. Joined by location from abs-suburbs-localities-2021, not published by the publisher."
          },
          {
            "name": "poa_2021_code",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Code of the Postal Area (2021) the point falls in. Joined by location from abs-postal-areas-2021, not published by the publisher."
          },
          {
            "name": "poa_2021_name",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Name of the Postal Area (2021) the point falls in. Joined by location from abs-postal-areas-2021, not published by the publisher."
          },
          {
            "name": "sed_2025_code",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Code of the State Electoral Division (2025) the point falls in. Joined by location from abs-state-electoral-divisions-2025, not published by the publisher.",
            "examples": [
              "eq.30093"
            ]
          },
          {
            "name": "sed_2025_name",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Name of the State Electoral Division (2025) the point falls in. Joined by location from abs-state-electoral-divisions-2025, not published by the publisher.",
            "examples": [
              "eq.Woodridge"
            ]
          },
          {
            "name": "ced_2025_code",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Code of the Commonwealth Electoral Division (2025) the point falls in. Joined by location from abs-federal-electoral-divisions-2025, not published by the publisher.",
            "examples": [
              "eq.330"
            ]
          },
          {
            "name": "ced_2025_name",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Name of the Commonwealth Electoral Division (2025) the point falls in. Joined by location from abs-federal-electoral-divisions-2025, not published by the publisher.",
            "examples": [
              "eq.Wright"
            ]
          },
          {
            "name": "order",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "`field.asc` or `field.desc`, comma-separated. When absent, rows come in the order of the file they are read from. For the newest versions that is the version's own data.parquet, which keeps the publisher's order unless the dataset sorted it. Any other version is read from the Parquet file the answer names in `file`, and when that file is sorted the answer names its sort in `order`, which ties follow too."
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 10000,
              "default": 100
            },
            "description": "Rows per page, 1 to 10,000. 100 when absent."
          },
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 0,
              "default": 0
            },
            "description": "Rows to skip. The `next` URL in each answer sets it for you."
          },
          {
            "name": "format",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "json",
                "ndjson",
                "csv"
              ],
              "default": "json"
            },
            "description": "`json`, `ndjson` or `csv`. JSON carries the provenance header, and the others carry it in response headers."
          }
        ],
        "responses": {
          "200": {
            "description": "Rows with the version, licence and attribution. `next` is the URL of the following page, or null. An answer read or counted from a Parquet file names it in `file`, or its period parts in `parts`, and a sorted file's sort in `order`."
          },
          "400": {
            "description": "The query names a field the dataset does not have, or a value of the wrong type."
          },
          "404": {
            "description": "The dataset does not exist here, or the version has no table to query."
          },
          "422": {
            "description": "The query would read more of the version's file than one answer may, or the file cannot be read in part. The error gives DuckDB SQL that answers it from the published file."
          },
          "429": {
            "description": "More than 60 requests in 10 seconds from one address. Blocked for 10 seconds. Wait `Retry-After` seconds.",
            "headers": {
              "Retry-After": {
                "schema": {
                  "type": "integer"
                },
                "description": "Seconds until the block lifts."
              },
              "RateLimit-Policy": {
                "schema": {
                  "type": "string"
                },
                "description": "The limit, as \"fair-use\";q=60;w=10."
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string"
                    },
                    "status": {
                      "type": "integer",
                      "const": 429
                    },
                    "limit": {
                      "type": "integer"
                    },
                    "window_seconds": {
                      "type": "integer"
                    },
                    "block_seconds": {
                      "type": "integer"
                    },
                    "docs": {
                      "type": "string",
                      "format": "uri"
                    },
                    "files": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/datasets/{slug}/versions/{version}/aggregate": {
      "get": {
        "tags": [
          "query"
        ],
        "summary": "Counts, sums, averages, minimums and maximums by group",
        "operationId": "aggregateVersion",
        "description": "Groups and totals of any dataset in one dated version. Filters work as they do on rows. Each filter is `field=operator.value` in the query string, and every filter must match. A number or date field compares as a number or date, and a text field compares as text. Values are case-sensitive, except that `like` and `ilike` ignore case in the ASCII letters A to Z. Prefix `not.` to negate a filter, as `not.eq.value`. Operators: `eq.value`, `neq.value`, `gt.value`, `gte.value`, `lt.value`, `lte.value`, `like.*text*`, `ilike.*text*`, `in.(a,b,c)`, `is.null`.",
        "parameters": [
          {
            "name": "slug",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "enum": [
                "qld-road-crash-locations"
              ]
            },
            "description": "The dataset's slug, as in its page URL `/d/<slug>/`."
          },
          {
            "name": "version",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date"
            },
            "description": "A dated version, from the versions path. A dated version's answers stay the same unless a correction rebuilds the version, which its notes record."
          },
          {
            "name": "group",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "On `aggregate`, fields to group by, comma-separated."
          },
          {
            "name": "metric",
            "in": "query",
            "schema": {
              "type": "string",
              "default": "count"
            },
            "description": "On `aggregate`, `count`, `sum.field`, `avg.field`, `min.field` or `max.field`, comma-separated. `count` when absent."
          },
          {
            "name": "crash_ref_number",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "integer. The publisher's identifier for the crash. Unique within a release. From 1 to 415408."
          },
          {
            "name": "crash_severity",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Fatal, Hospitalisation, Medical treatment, Minor injury or Property damage only. Property damage only crashes stop after 31 December 2010. Values: Fatal, Hospitalisation, Medical treatment, Minor injury, Property damage only.",
            "examples": [
              "eq.Property damage only"
            ]
          },
          {
            "name": "crash_year",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "integer. From 2001 to 2025.",
            "examples": [
              "eq.2025"
            ]
          },
          {
            "name": "crash_month",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Month name. Values: April, August, December, February, January, July, June, March, May, November, October, September.",
            "examples": [
              "eq.September"
            ]
          },
          {
            "name": "crash_day_of_week",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Values: Friday, Monday, Saturday, Sunday, Thursday, Tuesday, Wednesday.",
            "examples": [
              "eq.Wednesday"
            ]
          },
          {
            "name": "crash_hour",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "integer. Hour of the day, 0 to 23. From 0 to 23.",
            "examples": [
              "eq.23"
            ]
          },
          {
            "name": "crash_nature",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. For example Angle, Rear-end, Hit pedestrian. Values: Angle, Collision - miscellaneous, Fall from vehicle, Head-on, Hit animal, Hit object, Hit parked vehicle, Hit pedestrian, Non-collision - miscellaneous, Other, Overturned, Rear-end, Sideswipe, Struck by external load, Struck by internal load.",
            "examples": [
              "eq.Struck by internal load"
            ]
          },
          {
            "name": "crash_type",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Single Vehicle, Multi-Vehicle, Hit pedestrian or Other. Values: Hit pedestrian, Multi-Vehicle, Other, Single Vehicle.",
            "examples": [
              "eq.Single Vehicle"
            ]
          },
          {
            "name": "crash_longitude",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "number. Decimal degrees, GDA2020. Blank for 598 crashes in the April 2026 release. From 137.998204215167 to 153.550268319891."
          },
          {
            "name": "crash_latitude",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "number. Decimal degrees, GDA2020. From -29.1458150712781 to -9.38021282259915."
          },
          {
            "name": "crash_street",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string."
          },
          {
            "name": "crash_street_intersecting",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Blank when the crash was not at an intersection."
          },
          {
            "name": "state_road_name",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Blank on locally controlled roads."
          },
          {
            "name": "loc_suburb",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string."
          },
          {
            "name": "loc_local_government_area",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string.",
            "examples": [
              "eq.Yarrabah Aboriginal Shire"
            ]
          },
          {
            "name": "loc_post_code",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Kept as text."
          },
          {
            "name": "loc_police_division",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string."
          },
          {
            "name": "loc_police_district",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Values: Capricornia, Darling Downs, Far North, Gold Coast, Ipswich, Logan, Mackay, Moreton, Mount Isa, North Brisbane, South Brisbane, South West, Sunshine Coast, Townsville, Unknown, Wide Bay Burnett.",
            "examples": [
              "eq.Wide Bay Burnett"
            ]
          },
          {
            "name": "loc_police_region",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Values: Brisbane, Central, Far Northern, North Coast, Northern, South Eastern, Southern, Unknown.",
            "examples": [
              "eq.Unknown"
            ]
          },
          {
            "name": "loc_queensland_transport_region",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Values: Central, Northern, SEQ North, SEQ South, Southern, Unknown.",
            "examples": [
              "eq.Unknown"
            ]
          },
          {
            "name": "loc_main_roads_region",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Values: Central Queensland, Metropolitan, North Coast, North Queensland, South Coast, Southern Queensland, Unknown.",
            "examples": [
              "eq.Unknown"
            ]
          },
          {
            "name": "loc_abs_statistical_area_2",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. ABS SA2 name."
          },
          {
            "name": "loc_abs_statistical_area_3",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. ABS SA3 name.",
            "examples": [
              "eq.Wynnum - Manly"
            ]
          },
          {
            "name": "loc_abs_statistical_area_4",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. ABS SA4 name. Values: Brisbane - East, Brisbane - North, Brisbane - South, Brisbane - West, Brisbane Inner City, Cairns, Central Queensland, Darling Downs - Maranoa, Gold Coast, Ipswich, Logan - Beaudesert, Mackay - Isaac - Whitsunday, Moreton Bay - North, Moreton Bay - South, Queensland - Outback, Sunshine Coast, Toowoomba, Townsville, Unknown, Wide Bay.",
            "examples": [
              "eq.Wide Bay"
            ]
          },
          {
            "name": "loc_abs_remoteness",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. ABS remoteness class. Values: Inner Regional, Major Cities, Outer Regional, Remote, Unknown, Very Remote.",
            "examples": [
              "eq.Very Remote"
            ]
          },
          {
            "name": "loc_state_electorate",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string.",
            "examples": [
              "eq.Woodridge"
            ]
          },
          {
            "name": "loc_federal_electorate",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string.",
            "examples": [
              "eq.Wright"
            ]
          },
          {
            "name": "crash_controlling_authority",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. State-controlled, Locally-controlled, Other or Not coded. Values: Locally-controlled, Not coded, Other, State-controlled.",
            "examples": [
              "eq.State-controlled"
            ]
          },
          {
            "name": "crash_roadway_feature",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Values: Bikeway, Bridge/Causeway, Forestry/National Park Road, Intersection - 5+ way, Intersection - Cross, Intersection - Interchange, Intersection - Multiple Road, Intersection - Roundabout, Intersection - T-Junction, Intersection - Y-Junction, Median Opening, Merge Lane, Miscellaneous, No Roadway Feature, Other, Railway Crossing.",
            "examples": [
              "eq.Railway Crossing"
            ]
          },
          {
            "name": "crash_traffic_control",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Values: Flashing amber lights, Give way sign, LATM device, Miscellaneous, No traffic control, Operating traffic lights, Other, Pedestrian crossing sign, Pedestrian operated lights, Police, Railway - lights and boom gate, Railway - lights only, Railway crossing sign, Road/Rail worker, School crossing - flags, Stop sign, Supervised school crossing.",
            "examples": [
              "eq.Supervised school crossing"
            ]
          },
          {
            "name": "crash_speed_limit",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. A band such as 60 km/h or 100 - 110 km/h. Kept as text because the publisher uses bands. Values: 0 - 50 km/h, 100 - 110 km/h, 60 km/h, 70 km/h, 80 - 90 km/h.",
            "examples": [
              "eq.80 - 90 km/h"
            ]
          },
          {
            "name": "crash_road_surface_condition",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Values: Sealed - Dry, Sealed - Wet, Unknown, Unsealed - Dry, Unsealed - Wet.",
            "examples": [
              "eq.Unsealed - Wet"
            ]
          },
          {
            "name": "crash_atmospheric_condition",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Values: Clear, Fog, Raining, Smoke/Dust, Unknown.",
            "examples": [
              "eq.Unknown"
            ]
          },
          {
            "name": "crash_lighting_condition",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Values: Darkness - Lighted, Darkness - Not lighted, Dawn/Dusk, Daylight, Unknown.",
            "examples": [
              "eq.Unknown"
            ]
          },
          {
            "name": "crash_road_horiz_align",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Horizontal alignment. Values: Curved - view obscured, Curved - view open, Straight, Unknown.",
            "examples": [
              "eq.Unknown"
            ]
          },
          {
            "name": "crash_road_vert_align",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Vertical alignment. Values: Crest, Dip, Grade, Level, Unknown.",
            "examples": [
              "eq.Unknown"
            ]
          },
          {
            "name": "crash_dca_code",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. DCA (Definitions for Coding Accidents) code. Kept as text to preserve leading zeros.",
            "examples": [
              "eq.UNK"
            ]
          },
          {
            "name": "crash_dca_description",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string.",
            "examples": [
              "eq.Vehs Same Direction: U-Turn"
            ]
          },
          {
            "name": "crash_dca_group_description",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string.",
            "examples": [
              "eq.UNK: Unknown"
            ]
          },
          {
            "name": "dca_key_approach_dir",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Compass direction of the key vehicle. Blank in about 8,000 rows. Values: E, N, P, S, U, W.",
            "examples": [
              "eq.W"
            ]
          },
          {
            "name": "count_casualty_fatality",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "integer. Values: 0, 1, 2, 3, 4, 5.",
            "examples": [
              "eq.5"
            ]
          },
          {
            "name": "count_casualty_hospitalised",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "integer. Values: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 15, 16, 17, 19, 22.",
            "examples": [
              "eq.22"
            ]
          },
          {
            "name": "count_casualty_medically_treated",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "integer. From 0 to 29.",
            "examples": [
              "eq.29"
            ]
          },
          {
            "name": "count_casualty_minor_injury",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "integer. Values: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 13, 14, 15, 16, 17.",
            "examples": [
              "eq.17"
            ]
          },
          {
            "name": "count_casualty_total",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "integer. From 0 to 32.",
            "examples": [
              "eq.32"
            ]
          },
          {
            "name": "count_unit_car",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "integer. Number of cars involved. Values: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 15.",
            "examples": [
              "eq.15"
            ]
          },
          {
            "name": "count_unit_motorcycle_moped",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "integer. Values: 0, 1, 2, 3, 4, 5.",
            "examples": [
              "eq.5"
            ]
          },
          {
            "name": "count_unit_truck",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "integer. Values: 0, 1, 2, 3, 4, 5.",
            "examples": [
              "eq.5"
            ]
          },
          {
            "name": "count_unit_bus",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "integer. Values: 0, 1, 2, 3.",
            "examples": [
              "eq.3"
            ]
          },
          {
            "name": "count_unit_bicycle",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "integer. Values: 0, 1, 2, 3, 4, 5, 6, 9, 11.",
            "examples": [
              "eq.11"
            ]
          },
          {
            "name": "count_unit_pedestrian",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "integer. Values: 0, 1, 2, 3, 4, 5, 7, 11, 20.",
            "examples": [
              "eq.20"
            ]
          },
          {
            "name": "count_unit_other",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "integer. Values: 0, 1, 2, 3, 4.",
            "examples": [
              "eq.4"
            ]
          },
          {
            "name": "sa2_2021_code",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Code of the Statistical Area Level 2 (2021) the point falls in. Joined by location from abs-sa2-2021, not published by the publisher."
          },
          {
            "name": "sa2_2021_name",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Name of the Statistical Area Level 2 (2021) the point falls in. Joined by location from abs-sa2-2021, not published by the publisher."
          },
          {
            "name": "lga_2025_code",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Code of the Local Government Area (2025) the point falls in. Joined by location from abs-lga-2025, not published by the publisher.",
            "examples": [
              "eq.37600"
            ]
          },
          {
            "name": "lga_2025_name",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Name of the Local Government Area (2025) the point falls in. Joined by location from abs-lga-2025, not published by the publisher.",
            "examples": [
              "eq.Yarrabah"
            ]
          },
          {
            "name": "sal_2021_code",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Code of the Suburb and Locality (2021) the point falls in. Joined by location from abs-suburbs-localities-2021, not published by the publisher."
          },
          {
            "name": "sal_2021_name",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Name of the Suburb and Locality (2021) the point falls in. Joined by location from abs-suburbs-localities-2021, not published by the publisher."
          },
          {
            "name": "poa_2021_code",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Code of the Postal Area (2021) the point falls in. Joined by location from abs-postal-areas-2021, not published by the publisher."
          },
          {
            "name": "poa_2021_name",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Name of the Postal Area (2021) the point falls in. Joined by location from abs-postal-areas-2021, not published by the publisher."
          },
          {
            "name": "sed_2025_code",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Code of the State Electoral Division (2025) the point falls in. Joined by location from abs-state-electoral-divisions-2025, not published by the publisher.",
            "examples": [
              "eq.30093"
            ]
          },
          {
            "name": "sed_2025_name",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Name of the State Electoral Division (2025) the point falls in. Joined by location from abs-state-electoral-divisions-2025, not published by the publisher.",
            "examples": [
              "eq.Woodridge"
            ]
          },
          {
            "name": "ced_2025_code",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Code of the Commonwealth Electoral Division (2025) the point falls in. Joined by location from abs-federal-electoral-divisions-2025, not published by the publisher.",
            "examples": [
              "eq.330"
            ]
          },
          {
            "name": "ced_2025_name",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Name of the Commonwealth Electoral Division (2025) the point falls in. Joined by location from abs-federal-electoral-divisions-2025, not published by the publisher.",
            "examples": [
              "eq.Wright"
            ]
          },
          {
            "name": "order",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "`field.asc` or `field.desc`, comma-separated. When absent, rows come in the order of the file they are read from. For the newest versions that is the version's own data.parquet, which keeps the publisher's order unless the dataset sorted it. Any other version is read from the Parquet file the answer names in `file`, and when that file is sorted the answer names its sort in `order`, which ties follow too."
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 10000,
              "default": 100
            },
            "description": "Rows per page, 1 to 10,000. 100 when absent."
          },
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 0,
              "default": 0
            },
            "description": "Rows to skip. The `next` URL in each answer sets it for you."
          },
          {
            "name": "format",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "json",
                "ndjson",
                "csv"
              ],
              "default": "json"
            },
            "description": "`json`, `ndjson` or `csv`. JSON carries the provenance header, and the others carry it in response headers."
          }
        ],
        "responses": {
          "200": {
            "description": "Rows with the version, licence and attribution. `next` is the URL of the following page, or null. An answer read or counted from a Parquet file names it in `file`, or its period parts in `parts`, and a sorted file's sort in `order`."
          },
          "400": {
            "description": "The query names a field the dataset does not have, or a value of the wrong type."
          },
          "404": {
            "description": "The dataset does not exist here, or the version has no table to query."
          },
          "422": {
            "description": "The query would read more of the version's file than one answer may, or the file cannot be read in part. The error gives DuckDB SQL that answers it from the published file."
          },
          "429": {
            "description": "More than 60 requests in 10 seconds from one address. Blocked for 10 seconds. Wait `Retry-After` seconds.",
            "headers": {
              "Retry-After": {
                "schema": {
                  "type": "integer"
                },
                "description": "Seconds until the block lifts."
              },
              "RateLimit-Policy": {
                "schema": {
                  "type": "string"
                },
                "description": "The limit, as \"fair-use\";q=60;w=10."
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string"
                    },
                    "status": {
                      "type": "integer",
                      "const": 429
                    },
                    "limit": {
                      "type": "integer"
                    },
                    "window_seconds": {
                      "type": "integer"
                    },
                    "block_seconds": {
                      "type": "integer"
                    },
                    "docs": {
                      "type": "string",
                      "format": "uri"
                    },
                    "files": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/datasets/{slug}/versions": {
      "get": {
        "tags": [
          "query"
        ],
        "summary": "The versions of a dataset with a table to query, newest first, with the URLs to query each",
        "operationId": "queryVersions",
        "parameters": [
          {
            "name": "slug",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "enum": [
                "qld-road-crash-locations"
              ]
            },
            "description": "The dataset's slug, as in its page URL `/d/<slug>/`."
          }
        ],
        "responses": {
          "200": {
            "description": "Versions with row counts and URLs."
          },
          "404": {
            "description": "The dataset does not exist here, or the version has no table to query."
          },
          "429": {
            "description": "More than 60 requests in 10 seconds from one address. Blocked for 10 seconds. Wait `Retry-After` seconds.",
            "headers": {
              "Retry-After": {
                "schema": {
                  "type": "integer"
                },
                "description": "Seconds until the block lifts."
              },
              "RateLimit-Policy": {
                "schema": {
                  "type": "string"
                },
                "description": "The limit, as \"fair-use\";q=60;w=10."
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string"
                    },
                    "status": {
                      "type": "integer",
                      "const": 429
                    },
                    "limit": {
                      "type": "integer"
                    },
                    "window_seconds": {
                      "type": "integer"
                    },
                    "block_seconds": {
                      "type": "integer"
                    },
                    "docs": {
                      "type": "string",
                      "format": "uri"
                    },
                    "files": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}
