{
  "openapi": "3.1.0",
  "info": {
    "title": "Justice of the Peace and Commissioner for Declarations signing locations, Queensland query API",
    "version": "2026-09-30",
    "summary": "Filter, page and aggregate Justice of the Peace and Commissioner for Declarations signing locations, Queensland from Department of Justice.",
    "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 Justice 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-jp-signing-locations/#query"
  },
  "tags": [
    {
      "name": "query"
    }
  ],
  "paths": {
    "/api/v1/datasets/qld-jp-signing-locations/rows": {
      "get": {
        "tags": [
          "query"
        ],
        "summary": "Query Justice of the Peace and Commissioner for Declarations signing locations, Queensland",
        "operationId": "queryRows_qld_jp_signing_locations",
        "description": "Rows of Justice of the Peace and Commissioner for Declarations signing 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 with `ilike`. 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": "name",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string."
          },
          {
            "name": "region",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Values: Brisbane - East, Brisbane - North, Brisbane - South, Brisbane - West, Brisbane City, Bundaberg, Caboolture, Central Queensland, Gold Coast, Ipswich, North Queensland, South West Queensland, Sunshine Coast, Toowoomba, Wide Bay.",
            "examples": [
              "eq.Wide Bay"
            ]
          },
          {
            "name": "services",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Values: Contact courthouse for JP availability. Volunteer Justice of the Peace or Commissioner for Declarations, Please note: this service operates on the last Friday of each month. Volunteer Justice of the Peace or Commissioner for Declarations, Volunteer Justice of the Peace and Commissioner for Declaration, Volunteer Justice of the Peace or Commissioner for Declarations, Volunteer Justice of the Peace or Commissioner for Declarations Please note this service does not operate on public holidays., Volunteer Justice of the Peace or Commissioner for Declarations Service, Volunteer Justice of the Peace or Commissioner for Declarations., Volunteer Justice of the Peace or Commissioner for Declarations. Please note: this service does not operate on public holidays, Volunteer Justice of the Peace or Commissioner for Declarations. This service only operates during university semester., Volunteer Justice of the Peace or Commissioner for Declarations. This site also verifies identification for customers who have made an online application for a birth, death, marriage and civil partnership certificates., Volunteer Justice of the Peace or Commissioner for Declarations. Visitor and free onsite parking available. Lift is also available..",
            "examples": [
              "eq.Volunteer Justice of the Peace or Commissioner for Declarations. Visitor and free onsite parking available. Lift is also available."
            ]
          },
          {
            "name": "office_type",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Values: Service.",
            "examples": [
              "eq.Service"
            ]
          },
          {
            "name": "counter_type",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Values: JPs in the Community Program, JPs in the Community program, JPs in the Community program and Queensland Justices Association, JPs in the community program.",
            "examples": [
              "eq.JPs in the community program"
            ]
          },
          {
            "name": "address_1",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string."
          },
          {
            "name": "address_2",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string."
          },
          {
            "name": "suburb",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string."
          },
          {
            "name": "postcode",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Kept as text."
          },
          {
            "name": "postal_address_1",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string."
          },
          {
            "name": "postal_address_2",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string."
          },
          {
            "name": "postal_suburb",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string."
          },
          {
            "name": "postal_postcode",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string."
          },
          {
            "name": "latitude",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "number. From -28.215211 to -16.460968976827495."
          },
          {
            "name": "longitude",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "number. From 139.49119617611643 to 153.537292."
          },
          {
            "name": "phone",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string."
          },
          {
            "name": "fax",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Values: (07) 3247 5669.",
            "examples": [
              "eq.(07) 3247 5669"
            ]
          },
          {
            "name": "email",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Values: courthouse.Brisbane@justice.qld.gov.au, courthouse.Caboolture@justice.qld.gov.au, courthouse.gladstone@justice.qld.gov.au, courthouse.hollandpark@justice.qld.gov.au, courthouse.mackay@justice.qld.gov.au, courthouse.mareeba@justice.qld.gov.au, courthouse.mossman@justice.qld.gov.au, courthouse.mountisa@justice.qld.gov.au, courthouse.nambour@justice.qld.gov.au, courthouse.richlands@justice.qld.gov.au, courthouse.townsville@justice.qld.gov.au, info@malenync.org.au, library@mipa.org.au, reception@bluefinfishingclub.com.au, secretary@gcjustices.org.au.",
            "examples": [
              "eq.secretary@gcjustices.org.au"
            ]
          },
          {
            "name": "mon_am",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Session times as the publisher writes them, such as 17:30-19:30. Blank when there is no session. Values: 09:00-11:00, 09:00-11:30, 09:00-12:00, 09:30-11:30, 09:30-12:00, 09:30-13:00, 10:00-12:00, 10:00-13:00, 10:30-12:00, 11:00-12:00, 8:00-11:30, 8:30-12:00, 9:00-11:00, 9:00-12:00, 9:00-12:30, 9:30-11:30, 9:30-12:00.",
            "examples": [
              "eq.9:30-12:00"
            ]
          },
          {
            "name": "mon_pm",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Session times as the publisher writes them, such as 17:30-19:30. Blank when there is no session. Values: 12:00-12:30, 12:00-13:00, 12:00-13:30, 12:00-14:00, 12:00-14:30, 12:00-14:45, 12:00-15:00, 12:00-15:30, 12:00-15:45, 12:00-16:00, 12:00-16:30, 12:00-16:45, 13:00-15:00, 13:00-16:00, 13:30-15:00, 14:00-16:00, 16:00-18:00.",
            "examples": [
              "eq.16:00-18:00"
            ]
          },
          {
            "name": "tues_am",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Session times as the publisher writes them, such as 17:30-19:30. Blank when there is no session. Values: 09:00-11:00, 09:00-11:30, 09:00-12:00, 09:30-11:30, 09:30-12:00, 09:30-13:00, 10:00-11:30, 10:00-12:00, 10:00-12:30, 10:00-13:00, 10:30-12:00, 10:30-12:30, 11:00-12:00, 11:00-13:30, 8:00-11:30, 8:30-10:30, 8:30-12:00, 9:00-11:00, 9:00-12:00, 9:30-12:00.",
            "examples": [
              "eq.9:30-12:00"
            ]
          },
          {
            "name": "tues_pm",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Session times as the publisher writes them, such as 17:30-19:30. Blank when there is no session.",
            "examples": [
              "eq.17:00-19:00"
            ]
          },
          {
            "name": "wed_am",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Session times as the publisher writes them, such as 17:30-19:30. Blank when there is no session. Values: 09:00-11:00, 09:00-11:30, 09:00-12:00, 09:30-11:30, 09:30-12:00, 09:30-13:00, 10:00-12:00, 10:00-13:00, 10:30-12:00, 11:00-12:00, 8:00-11:00, 8:00-11:30, 8:30-12:00, 9:00-11:00, 9:00-12:00, 9:30-12:00, 9:30-12:30.",
            "examples": [
              "eq.9:30-12:30"
            ]
          },
          {
            "name": "wed_pm",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Session times as the publisher writes them, such as 17:30-19:30. Blank when there is no session.",
            "examples": [
              "eq._5:00pm-7:00pm"
            ]
          },
          {
            "name": "thurs_am",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Session times as the publisher writes them, such as 17:30-19:30. Blank when there is no session.",
            "examples": [
              "eq.9:30-13:00"
            ]
          },
          {
            "name": "thurs_pm",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Session times as the publisher writes them, such as 17:30-19:30. Blank when there is no session.",
            "examples": [
              "eq.18:00-20:00"
            ]
          },
          {
            "name": "fri_am",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Session times as the publisher writes them, such as 17:30-19:30. Blank when there is no session. Values: 09:00-11:00, 09:00-12:00, 09:30-11:30, 09:30-12:00, 09:30-13:00, 10:00-11:30, 10:00-12:00, 10:00-13:00, 10:30-12:00, 11:00-12:00, 8:00-11:30, 8:30-12:00, 9:00-11:00, 9:00-12:00, 9:30-12:00, 9:30-12:30.",
            "examples": [
              "eq.9:30-12:30"
            ]
          },
          {
            "name": "fri_pm",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Session times as the publisher writes them, such as 17:30-19:30. Blank when there is no session. Values: 12:00-12:30, 12:00-13:00, 12:00-13:30, 12:00-14:00, 12:00-14:30, 12:00-14:45, 12:00-15:00, 12:00-15:30, 12:00-15:45, 12:00-16:00, 12:00-16:30, 12:00-16:45, 13:00-15:00, 13:00-16:00, 13:30-15:00, 14:30-17:00, 16:00-18:00.",
            "examples": [
              "eq.16:00-18:00"
            ]
          },
          {
            "name": "sat_am",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Session times as the publisher writes them, such as 17:30-19:30. Blank when there is no session. Values: 09:00-10:00, 09:00-11:00, 09:00-12:00, 09:30-10:30, 09:30-11:15, 09:30-11:30, 09:30-12:00, 10:00-12:00, 10:15-12:00, 11:00-12:00, 8:30-10:30, 9:00-11:00, 9:00-11:30, 9:00-12:00, 9:30-11:30, 9:30-12:00, 9:30-12:30.",
            "examples": [
              "eq.9:30-12:30"
            ]
          },
          {
            "name": "sat_pm",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Session times as the publisher writes them, such as 17:30-19:30. Blank when there is no session. Values: 12:00-12:15, 12:00-12:30, 12:00-13:00, 12:00-14:00, 12:00-15:00, 13:00-15:00.",
            "examples": [
              "eq.13:00-15:00"
            ]
          },
          {
            "name": "sun_am",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Session times as the publisher writes them, such as 17:30-19:30. Blank when there is no session. Values: 10:00-12:00.",
            "examples": [
              "eq.10:00-12:00"
            ]
          },
          {
            "name": "sun_pm",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Session times as the publisher writes them, such as 17:30-19:30. Blank when there is no session. Values: 12:00-16:00, 14:00-16:00.",
            "examples": [
              "eq.14:00-16:00"
            ]
          },
          {
            "name": "closure",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Dates or notes of closures, as the publisher writes them. Values: Due to volunteer availability, operating days are subject to change. Please review listed operating hours prior to attending., Please contact Parkhurst Town Centre to confirm volunteer JP availability., Please note, the Saturday service operates on the 2nd and 4th Saturday of each month., Please note, this service operates on the 1st Wednesday of each month., Please note, this service operates on the 2nd Wednesday of each month., Please note, volunteer JP services at this location operate on the 2nd and 4th Monday of each month., To assist the volunteers in finishing on time, we recommend arriving at least 15 minutes before closing..",
            "examples": [
              "eq.To assist the volunteers in finishing on time, we recommend arriving at least 15 minutes before closing."
            ]
          },
          {
            "name": "agency",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. The department code the publisher records, DJAG or DoJ. Values: DJAG, DoJ.",
            "examples": [
              "eq.DoJ"
            ]
          },
          {
            "name": "facilities",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string."
          },
          {
            "name": "description",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Values: JPs in the Community program, Please note, this new service will commence of Thursday 13 February 2025., Service, Volunteer Justice of Peace or Commissioner of Declaration, Volunteer Justice of the Peace or Commissioner for Declarations.",
            "examples": [
              "eq.Volunteer Justice of the Peace or Commissioner for Declarations"
            ]
          },
          {
            "name": "operating_hours",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string."
          },
          {
            "name": "operating_days",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string.",
            "examples": [
              "eq.Wednes,Wednes,Thurs,Thurs,Fri,Fri,Satur,"
            ]
          },
          {
            "name": "updated",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "datetime. When the publisher last changed the row. From 2025-08-25T10:23:16 to 2026-09-30T11:24:59."
          },
          {
            "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. The publisher's row order when absent."
          },
          {
            "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."
          },
          "400": {
            "description": "The query names a field the dataset does not have, or a value of the wrong type."
          },
          "404": {
            "description": "The dataset or version is not loaded for queries."
          },
          "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-jp-signing-locations/versions/{version}/rows": {
      "get": {
        "tags": [
          "query"
        ],
        "summary": "Query Justice of the Peace and Commissioner for Declarations signing locations, Queensland",
        "operationId": "queryRows_qld_jp_signing_locations_version",
        "description": "Rows of Justice of the Peace and Commissioner for Declarations signing 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 with `ilike`. 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 loaded for queries, from the versions path. Answers for a dated version never change."
          },
          {
            "name": "name",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string."
          },
          {
            "name": "region",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Values: Brisbane - East, Brisbane - North, Brisbane - South, Brisbane - West, Brisbane City, Bundaberg, Caboolture, Central Queensland, Gold Coast, Ipswich, North Queensland, South West Queensland, Sunshine Coast, Toowoomba, Wide Bay.",
            "examples": [
              "eq.Wide Bay"
            ]
          },
          {
            "name": "services",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Values: Contact courthouse for JP availability. Volunteer Justice of the Peace or Commissioner for Declarations, Please note: this service operates on the last Friday of each month. Volunteer Justice of the Peace or Commissioner for Declarations, Volunteer Justice of the Peace and Commissioner for Declaration, Volunteer Justice of the Peace or Commissioner for Declarations, Volunteer Justice of the Peace or Commissioner for Declarations Please note this service does not operate on public holidays., Volunteer Justice of the Peace or Commissioner for Declarations Service, Volunteer Justice of the Peace or Commissioner for Declarations., Volunteer Justice of the Peace or Commissioner for Declarations. Please note: this service does not operate on public holidays, Volunteer Justice of the Peace or Commissioner for Declarations. This service only operates during university semester., Volunteer Justice of the Peace or Commissioner for Declarations. This site also verifies identification for customers who have made an online application for a birth, death, marriage and civil partnership certificates., Volunteer Justice of the Peace or Commissioner for Declarations. Visitor and free onsite parking available. Lift is also available..",
            "examples": [
              "eq.Volunteer Justice of the Peace or Commissioner for Declarations. Visitor and free onsite parking available. Lift is also available."
            ]
          },
          {
            "name": "office_type",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Values: Service.",
            "examples": [
              "eq.Service"
            ]
          },
          {
            "name": "counter_type",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Values: JPs in the Community Program, JPs in the Community program, JPs in the Community program and Queensland Justices Association, JPs in the community program.",
            "examples": [
              "eq.JPs in the community program"
            ]
          },
          {
            "name": "address_1",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string."
          },
          {
            "name": "address_2",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string."
          },
          {
            "name": "suburb",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string."
          },
          {
            "name": "postcode",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Kept as text."
          },
          {
            "name": "postal_address_1",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string."
          },
          {
            "name": "postal_address_2",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string."
          },
          {
            "name": "postal_suburb",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string."
          },
          {
            "name": "postal_postcode",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string."
          },
          {
            "name": "latitude",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "number. From -28.215211 to -16.460968976827495."
          },
          {
            "name": "longitude",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "number. From 139.49119617611643 to 153.537292."
          },
          {
            "name": "phone",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string."
          },
          {
            "name": "fax",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Values: (07) 3247 5669.",
            "examples": [
              "eq.(07) 3247 5669"
            ]
          },
          {
            "name": "email",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Values: courthouse.Brisbane@justice.qld.gov.au, courthouse.Caboolture@justice.qld.gov.au, courthouse.gladstone@justice.qld.gov.au, courthouse.hollandpark@justice.qld.gov.au, courthouse.mackay@justice.qld.gov.au, courthouse.mareeba@justice.qld.gov.au, courthouse.mossman@justice.qld.gov.au, courthouse.mountisa@justice.qld.gov.au, courthouse.nambour@justice.qld.gov.au, courthouse.richlands@justice.qld.gov.au, courthouse.townsville@justice.qld.gov.au, info@malenync.org.au, library@mipa.org.au, reception@bluefinfishingclub.com.au, secretary@gcjustices.org.au.",
            "examples": [
              "eq.secretary@gcjustices.org.au"
            ]
          },
          {
            "name": "mon_am",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Session times as the publisher writes them, such as 17:30-19:30. Blank when there is no session. Values: 09:00-11:00, 09:00-11:30, 09:00-12:00, 09:30-11:30, 09:30-12:00, 09:30-13:00, 10:00-12:00, 10:00-13:00, 10:30-12:00, 11:00-12:00, 8:00-11:30, 8:30-12:00, 9:00-11:00, 9:00-12:00, 9:00-12:30, 9:30-11:30, 9:30-12:00.",
            "examples": [
              "eq.9:30-12:00"
            ]
          },
          {
            "name": "mon_pm",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Session times as the publisher writes them, such as 17:30-19:30. Blank when there is no session. Values: 12:00-12:30, 12:00-13:00, 12:00-13:30, 12:00-14:00, 12:00-14:30, 12:00-14:45, 12:00-15:00, 12:00-15:30, 12:00-15:45, 12:00-16:00, 12:00-16:30, 12:00-16:45, 13:00-15:00, 13:00-16:00, 13:30-15:00, 14:00-16:00, 16:00-18:00.",
            "examples": [
              "eq.16:00-18:00"
            ]
          },
          {
            "name": "tues_am",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Session times as the publisher writes them, such as 17:30-19:30. Blank when there is no session. Values: 09:00-11:00, 09:00-11:30, 09:00-12:00, 09:30-11:30, 09:30-12:00, 09:30-13:00, 10:00-11:30, 10:00-12:00, 10:00-12:30, 10:00-13:00, 10:30-12:00, 10:30-12:30, 11:00-12:00, 11:00-13:30, 8:00-11:30, 8:30-10:30, 8:30-12:00, 9:00-11:00, 9:00-12:00, 9:30-12:00.",
            "examples": [
              "eq.9:30-12:00"
            ]
          },
          {
            "name": "tues_pm",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Session times as the publisher writes them, such as 17:30-19:30. Blank when there is no session.",
            "examples": [
              "eq.17:00-19:00"
            ]
          },
          {
            "name": "wed_am",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Session times as the publisher writes them, such as 17:30-19:30. Blank when there is no session. Values: 09:00-11:00, 09:00-11:30, 09:00-12:00, 09:30-11:30, 09:30-12:00, 09:30-13:00, 10:00-12:00, 10:00-13:00, 10:30-12:00, 11:00-12:00, 8:00-11:00, 8:00-11:30, 8:30-12:00, 9:00-11:00, 9:00-12:00, 9:30-12:00, 9:30-12:30.",
            "examples": [
              "eq.9:30-12:30"
            ]
          },
          {
            "name": "wed_pm",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Session times as the publisher writes them, such as 17:30-19:30. Blank when there is no session.",
            "examples": [
              "eq._5:00pm-7:00pm"
            ]
          },
          {
            "name": "thurs_am",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Session times as the publisher writes them, such as 17:30-19:30. Blank when there is no session.",
            "examples": [
              "eq.9:30-13:00"
            ]
          },
          {
            "name": "thurs_pm",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Session times as the publisher writes them, such as 17:30-19:30. Blank when there is no session.",
            "examples": [
              "eq.18:00-20:00"
            ]
          },
          {
            "name": "fri_am",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Session times as the publisher writes them, such as 17:30-19:30. Blank when there is no session. Values: 09:00-11:00, 09:00-12:00, 09:30-11:30, 09:30-12:00, 09:30-13:00, 10:00-11:30, 10:00-12:00, 10:00-13:00, 10:30-12:00, 11:00-12:00, 8:00-11:30, 8:30-12:00, 9:00-11:00, 9:00-12:00, 9:30-12:00, 9:30-12:30.",
            "examples": [
              "eq.9:30-12:30"
            ]
          },
          {
            "name": "fri_pm",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Session times as the publisher writes them, such as 17:30-19:30. Blank when there is no session. Values: 12:00-12:30, 12:00-13:00, 12:00-13:30, 12:00-14:00, 12:00-14:30, 12:00-14:45, 12:00-15:00, 12:00-15:30, 12:00-15:45, 12:00-16:00, 12:00-16:30, 12:00-16:45, 13:00-15:00, 13:00-16:00, 13:30-15:00, 14:30-17:00, 16:00-18:00.",
            "examples": [
              "eq.16:00-18:00"
            ]
          },
          {
            "name": "sat_am",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Session times as the publisher writes them, such as 17:30-19:30. Blank when there is no session. Values: 09:00-10:00, 09:00-11:00, 09:00-12:00, 09:30-10:30, 09:30-11:15, 09:30-11:30, 09:30-12:00, 10:00-12:00, 10:15-12:00, 11:00-12:00, 8:30-10:30, 9:00-11:00, 9:00-11:30, 9:00-12:00, 9:30-11:30, 9:30-12:00, 9:30-12:30.",
            "examples": [
              "eq.9:30-12:30"
            ]
          },
          {
            "name": "sat_pm",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Session times as the publisher writes them, such as 17:30-19:30. Blank when there is no session. Values: 12:00-12:15, 12:00-12:30, 12:00-13:00, 12:00-14:00, 12:00-15:00, 13:00-15:00.",
            "examples": [
              "eq.13:00-15:00"
            ]
          },
          {
            "name": "sun_am",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Session times as the publisher writes them, such as 17:30-19:30. Blank when there is no session. Values: 10:00-12:00.",
            "examples": [
              "eq.10:00-12:00"
            ]
          },
          {
            "name": "sun_pm",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Session times as the publisher writes them, such as 17:30-19:30. Blank when there is no session. Values: 12:00-16:00, 14:00-16:00.",
            "examples": [
              "eq.14:00-16:00"
            ]
          },
          {
            "name": "closure",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Dates or notes of closures, as the publisher writes them. Values: Due to volunteer availability, operating days are subject to change. Please review listed operating hours prior to attending., Please contact Parkhurst Town Centre to confirm volunteer JP availability., Please note, the Saturday service operates on the 2nd and 4th Saturday of each month., Please note, this service operates on the 1st Wednesday of each month., Please note, this service operates on the 2nd Wednesday of each month., Please note, volunteer JP services at this location operate on the 2nd and 4th Monday of each month., To assist the volunteers in finishing on time, we recommend arriving at least 15 minutes before closing..",
            "examples": [
              "eq.To assist the volunteers in finishing on time, we recommend arriving at least 15 minutes before closing."
            ]
          },
          {
            "name": "agency",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. The department code the publisher records, DJAG or DoJ. Values: DJAG, DoJ.",
            "examples": [
              "eq.DoJ"
            ]
          },
          {
            "name": "facilities",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string."
          },
          {
            "name": "description",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Values: JPs in the Community program, Please note, this new service will commence of Thursday 13 February 2025., Service, Volunteer Justice of Peace or Commissioner of Declaration, Volunteer Justice of the Peace or Commissioner for Declarations.",
            "examples": [
              "eq.Volunteer Justice of the Peace or Commissioner for Declarations"
            ]
          },
          {
            "name": "operating_hours",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string."
          },
          {
            "name": "operating_days",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string.",
            "examples": [
              "eq.Wednes,Wednes,Thurs,Thurs,Fri,Fri,Satur,"
            ]
          },
          {
            "name": "updated",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "datetime. When the publisher last changed the row. From 2025-08-25T10:23:16 to 2026-09-30T11:24:59."
          },
          {
            "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. The publisher's row order when absent."
          },
          {
            "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."
          },
          "400": {
            "description": "The query names a field the dataset does not have, or a value of the wrong type."
          },
          "404": {
            "description": "The dataset or version is not loaded for queries."
          },
          "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 with `ilike`. 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-jp-signing-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": "name",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string."
          },
          {
            "name": "region",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Values: Brisbane - East, Brisbane - North, Brisbane - South, Brisbane - West, Brisbane City, Bundaberg, Caboolture, Central Queensland, Gold Coast, Ipswich, North Queensland, South West Queensland, Sunshine Coast, Toowoomba, Wide Bay.",
            "examples": [
              "eq.Wide Bay"
            ]
          },
          {
            "name": "services",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Values: Contact courthouse for JP availability. Volunteer Justice of the Peace or Commissioner for Declarations, Please note: this service operates on the last Friday of each month. Volunteer Justice of the Peace or Commissioner for Declarations, Volunteer Justice of the Peace and Commissioner for Declaration, Volunteer Justice of the Peace or Commissioner for Declarations, Volunteer Justice of the Peace or Commissioner for Declarations Please note this service does not operate on public holidays., Volunteer Justice of the Peace or Commissioner for Declarations Service, Volunteer Justice of the Peace or Commissioner for Declarations., Volunteer Justice of the Peace or Commissioner for Declarations. Please note: this service does not operate on public holidays, Volunteer Justice of the Peace or Commissioner for Declarations. This service only operates during university semester., Volunteer Justice of the Peace or Commissioner for Declarations. This site also verifies identification for customers who have made an online application for a birth, death, marriage and civil partnership certificates., Volunteer Justice of the Peace or Commissioner for Declarations. Visitor and free onsite parking available. Lift is also available..",
            "examples": [
              "eq.Volunteer Justice of the Peace or Commissioner for Declarations. Visitor and free onsite parking available. Lift is also available."
            ]
          },
          {
            "name": "office_type",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Values: Service.",
            "examples": [
              "eq.Service"
            ]
          },
          {
            "name": "counter_type",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Values: JPs in the Community Program, JPs in the Community program, JPs in the Community program and Queensland Justices Association, JPs in the community program.",
            "examples": [
              "eq.JPs in the community program"
            ]
          },
          {
            "name": "address_1",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string."
          },
          {
            "name": "address_2",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string."
          },
          {
            "name": "suburb",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string."
          },
          {
            "name": "postcode",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Kept as text."
          },
          {
            "name": "postal_address_1",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string."
          },
          {
            "name": "postal_address_2",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string."
          },
          {
            "name": "postal_suburb",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string."
          },
          {
            "name": "postal_postcode",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string."
          },
          {
            "name": "latitude",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "number. From -28.215211 to -16.460968976827495."
          },
          {
            "name": "longitude",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "number. From 139.49119617611643 to 153.537292."
          },
          {
            "name": "phone",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string."
          },
          {
            "name": "fax",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Values: (07) 3247 5669.",
            "examples": [
              "eq.(07) 3247 5669"
            ]
          },
          {
            "name": "email",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Values: courthouse.Brisbane@justice.qld.gov.au, courthouse.Caboolture@justice.qld.gov.au, courthouse.gladstone@justice.qld.gov.au, courthouse.hollandpark@justice.qld.gov.au, courthouse.mackay@justice.qld.gov.au, courthouse.mareeba@justice.qld.gov.au, courthouse.mossman@justice.qld.gov.au, courthouse.mountisa@justice.qld.gov.au, courthouse.nambour@justice.qld.gov.au, courthouse.richlands@justice.qld.gov.au, courthouse.townsville@justice.qld.gov.au, info@malenync.org.au, library@mipa.org.au, reception@bluefinfishingclub.com.au, secretary@gcjustices.org.au.",
            "examples": [
              "eq.secretary@gcjustices.org.au"
            ]
          },
          {
            "name": "mon_am",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Session times as the publisher writes them, such as 17:30-19:30. Blank when there is no session. Values: 09:00-11:00, 09:00-11:30, 09:00-12:00, 09:30-11:30, 09:30-12:00, 09:30-13:00, 10:00-12:00, 10:00-13:00, 10:30-12:00, 11:00-12:00, 8:00-11:30, 8:30-12:00, 9:00-11:00, 9:00-12:00, 9:00-12:30, 9:30-11:30, 9:30-12:00.",
            "examples": [
              "eq.9:30-12:00"
            ]
          },
          {
            "name": "mon_pm",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Session times as the publisher writes them, such as 17:30-19:30. Blank when there is no session. Values: 12:00-12:30, 12:00-13:00, 12:00-13:30, 12:00-14:00, 12:00-14:30, 12:00-14:45, 12:00-15:00, 12:00-15:30, 12:00-15:45, 12:00-16:00, 12:00-16:30, 12:00-16:45, 13:00-15:00, 13:00-16:00, 13:30-15:00, 14:00-16:00, 16:00-18:00.",
            "examples": [
              "eq.16:00-18:00"
            ]
          },
          {
            "name": "tues_am",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Session times as the publisher writes them, such as 17:30-19:30. Blank when there is no session. Values: 09:00-11:00, 09:00-11:30, 09:00-12:00, 09:30-11:30, 09:30-12:00, 09:30-13:00, 10:00-11:30, 10:00-12:00, 10:00-12:30, 10:00-13:00, 10:30-12:00, 10:30-12:30, 11:00-12:00, 11:00-13:30, 8:00-11:30, 8:30-10:30, 8:30-12:00, 9:00-11:00, 9:00-12:00, 9:30-12:00.",
            "examples": [
              "eq.9:30-12:00"
            ]
          },
          {
            "name": "tues_pm",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Session times as the publisher writes them, such as 17:30-19:30. Blank when there is no session.",
            "examples": [
              "eq.17:00-19:00"
            ]
          },
          {
            "name": "wed_am",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Session times as the publisher writes them, such as 17:30-19:30. Blank when there is no session. Values: 09:00-11:00, 09:00-11:30, 09:00-12:00, 09:30-11:30, 09:30-12:00, 09:30-13:00, 10:00-12:00, 10:00-13:00, 10:30-12:00, 11:00-12:00, 8:00-11:00, 8:00-11:30, 8:30-12:00, 9:00-11:00, 9:00-12:00, 9:30-12:00, 9:30-12:30.",
            "examples": [
              "eq.9:30-12:30"
            ]
          },
          {
            "name": "wed_pm",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Session times as the publisher writes them, such as 17:30-19:30. Blank when there is no session.",
            "examples": [
              "eq._5:00pm-7:00pm"
            ]
          },
          {
            "name": "thurs_am",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Session times as the publisher writes them, such as 17:30-19:30. Blank when there is no session.",
            "examples": [
              "eq.9:30-13:00"
            ]
          },
          {
            "name": "thurs_pm",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Session times as the publisher writes them, such as 17:30-19:30. Blank when there is no session.",
            "examples": [
              "eq.18:00-20:00"
            ]
          },
          {
            "name": "fri_am",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Session times as the publisher writes them, such as 17:30-19:30. Blank when there is no session. Values: 09:00-11:00, 09:00-12:00, 09:30-11:30, 09:30-12:00, 09:30-13:00, 10:00-11:30, 10:00-12:00, 10:00-13:00, 10:30-12:00, 11:00-12:00, 8:00-11:30, 8:30-12:00, 9:00-11:00, 9:00-12:00, 9:30-12:00, 9:30-12:30.",
            "examples": [
              "eq.9:30-12:30"
            ]
          },
          {
            "name": "fri_pm",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Session times as the publisher writes them, such as 17:30-19:30. Blank when there is no session. Values: 12:00-12:30, 12:00-13:00, 12:00-13:30, 12:00-14:00, 12:00-14:30, 12:00-14:45, 12:00-15:00, 12:00-15:30, 12:00-15:45, 12:00-16:00, 12:00-16:30, 12:00-16:45, 13:00-15:00, 13:00-16:00, 13:30-15:00, 14:30-17:00, 16:00-18:00.",
            "examples": [
              "eq.16:00-18:00"
            ]
          },
          {
            "name": "sat_am",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Session times as the publisher writes them, such as 17:30-19:30. Blank when there is no session. Values: 09:00-10:00, 09:00-11:00, 09:00-12:00, 09:30-10:30, 09:30-11:15, 09:30-11:30, 09:30-12:00, 10:00-12:00, 10:15-12:00, 11:00-12:00, 8:30-10:30, 9:00-11:00, 9:00-11:30, 9:00-12:00, 9:30-11:30, 9:30-12:00, 9:30-12:30.",
            "examples": [
              "eq.9:30-12:30"
            ]
          },
          {
            "name": "sat_pm",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Session times as the publisher writes them, such as 17:30-19:30. Blank when there is no session. Values: 12:00-12:15, 12:00-12:30, 12:00-13:00, 12:00-14:00, 12:00-15:00, 13:00-15:00.",
            "examples": [
              "eq.13:00-15:00"
            ]
          },
          {
            "name": "sun_am",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Session times as the publisher writes them, such as 17:30-19:30. Blank when there is no session. Values: 10:00-12:00.",
            "examples": [
              "eq.10:00-12:00"
            ]
          },
          {
            "name": "sun_pm",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Session times as the publisher writes them, such as 17:30-19:30. Blank when there is no session. Values: 12:00-16:00, 14:00-16:00.",
            "examples": [
              "eq.14:00-16:00"
            ]
          },
          {
            "name": "closure",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Dates or notes of closures, as the publisher writes them. Values: Due to volunteer availability, operating days are subject to change. Please review listed operating hours prior to attending., Please contact Parkhurst Town Centre to confirm volunteer JP availability., Please note, the Saturday service operates on the 2nd and 4th Saturday of each month., Please note, this service operates on the 1st Wednesday of each month., Please note, this service operates on the 2nd Wednesday of each month., Please note, volunteer JP services at this location operate on the 2nd and 4th Monday of each month., To assist the volunteers in finishing on time, we recommend arriving at least 15 minutes before closing..",
            "examples": [
              "eq.To assist the volunteers in finishing on time, we recommend arriving at least 15 minutes before closing."
            ]
          },
          {
            "name": "agency",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. The department code the publisher records, DJAG or DoJ. Values: DJAG, DoJ.",
            "examples": [
              "eq.DoJ"
            ]
          },
          {
            "name": "facilities",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string."
          },
          {
            "name": "description",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Values: JPs in the Community program, Please note, this new service will commence of Thursday 13 February 2025., Service, Volunteer Justice of Peace or Commissioner of Declaration, Volunteer Justice of the Peace or Commissioner for Declarations.",
            "examples": [
              "eq.Volunteer Justice of the Peace or Commissioner for Declarations"
            ]
          },
          {
            "name": "operating_hours",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string."
          },
          {
            "name": "operating_days",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string.",
            "examples": [
              "eq.Wednes,Wednes,Thurs,Thurs,Fri,Fri,Satur,"
            ]
          },
          {
            "name": "updated",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "datetime. When the publisher last changed the row. From 2025-08-25T10:23:16 to 2026-09-30T11:24:59."
          },
          {
            "name": "order",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "`field.asc` or `field.desc`, comma-separated. The publisher's row order when absent."
          },
          {
            "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."
          },
          "400": {
            "description": "The query names a field the dataset does not have, or a value of the wrong type."
          },
          "404": {
            "description": "The dataset or version is not loaded for queries."
          },
          "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 with `ilike`. 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-jp-signing-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 loaded for queries, from the versions path. Answers for a dated version never change."
          },
          {
            "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": "name",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string."
          },
          {
            "name": "region",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Values: Brisbane - East, Brisbane - North, Brisbane - South, Brisbane - West, Brisbane City, Bundaberg, Caboolture, Central Queensland, Gold Coast, Ipswich, North Queensland, South West Queensland, Sunshine Coast, Toowoomba, Wide Bay.",
            "examples": [
              "eq.Wide Bay"
            ]
          },
          {
            "name": "services",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Values: Contact courthouse for JP availability. Volunteer Justice of the Peace or Commissioner for Declarations, Please note: this service operates on the last Friday of each month. Volunteer Justice of the Peace or Commissioner for Declarations, Volunteer Justice of the Peace and Commissioner for Declaration, Volunteer Justice of the Peace or Commissioner for Declarations, Volunteer Justice of the Peace or Commissioner for Declarations Please note this service does not operate on public holidays., Volunteer Justice of the Peace or Commissioner for Declarations Service, Volunteer Justice of the Peace or Commissioner for Declarations., Volunteer Justice of the Peace or Commissioner for Declarations. Please note: this service does not operate on public holidays, Volunteer Justice of the Peace or Commissioner for Declarations. This service only operates during university semester., Volunteer Justice of the Peace or Commissioner for Declarations. This site also verifies identification for customers who have made an online application for a birth, death, marriage and civil partnership certificates., Volunteer Justice of the Peace or Commissioner for Declarations. Visitor and free onsite parking available. Lift is also available..",
            "examples": [
              "eq.Volunteer Justice of the Peace or Commissioner for Declarations. Visitor and free onsite parking available. Lift is also available."
            ]
          },
          {
            "name": "office_type",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Values: Service.",
            "examples": [
              "eq.Service"
            ]
          },
          {
            "name": "counter_type",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Values: JPs in the Community Program, JPs in the Community program, JPs in the Community program and Queensland Justices Association, JPs in the community program.",
            "examples": [
              "eq.JPs in the community program"
            ]
          },
          {
            "name": "address_1",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string."
          },
          {
            "name": "address_2",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string."
          },
          {
            "name": "suburb",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string."
          },
          {
            "name": "postcode",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Kept as text."
          },
          {
            "name": "postal_address_1",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string."
          },
          {
            "name": "postal_address_2",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string."
          },
          {
            "name": "postal_suburb",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string."
          },
          {
            "name": "postal_postcode",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string."
          },
          {
            "name": "latitude",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "number. From -28.215211 to -16.460968976827495."
          },
          {
            "name": "longitude",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "number. From 139.49119617611643 to 153.537292."
          },
          {
            "name": "phone",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string."
          },
          {
            "name": "fax",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Values: (07) 3247 5669.",
            "examples": [
              "eq.(07) 3247 5669"
            ]
          },
          {
            "name": "email",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Values: courthouse.Brisbane@justice.qld.gov.au, courthouse.Caboolture@justice.qld.gov.au, courthouse.gladstone@justice.qld.gov.au, courthouse.hollandpark@justice.qld.gov.au, courthouse.mackay@justice.qld.gov.au, courthouse.mareeba@justice.qld.gov.au, courthouse.mossman@justice.qld.gov.au, courthouse.mountisa@justice.qld.gov.au, courthouse.nambour@justice.qld.gov.au, courthouse.richlands@justice.qld.gov.au, courthouse.townsville@justice.qld.gov.au, info@malenync.org.au, library@mipa.org.au, reception@bluefinfishingclub.com.au, secretary@gcjustices.org.au.",
            "examples": [
              "eq.secretary@gcjustices.org.au"
            ]
          },
          {
            "name": "mon_am",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Session times as the publisher writes them, such as 17:30-19:30. Blank when there is no session. Values: 09:00-11:00, 09:00-11:30, 09:00-12:00, 09:30-11:30, 09:30-12:00, 09:30-13:00, 10:00-12:00, 10:00-13:00, 10:30-12:00, 11:00-12:00, 8:00-11:30, 8:30-12:00, 9:00-11:00, 9:00-12:00, 9:00-12:30, 9:30-11:30, 9:30-12:00.",
            "examples": [
              "eq.9:30-12:00"
            ]
          },
          {
            "name": "mon_pm",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Session times as the publisher writes them, such as 17:30-19:30. Blank when there is no session. Values: 12:00-12:30, 12:00-13:00, 12:00-13:30, 12:00-14:00, 12:00-14:30, 12:00-14:45, 12:00-15:00, 12:00-15:30, 12:00-15:45, 12:00-16:00, 12:00-16:30, 12:00-16:45, 13:00-15:00, 13:00-16:00, 13:30-15:00, 14:00-16:00, 16:00-18:00.",
            "examples": [
              "eq.16:00-18:00"
            ]
          },
          {
            "name": "tues_am",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Session times as the publisher writes them, such as 17:30-19:30. Blank when there is no session. Values: 09:00-11:00, 09:00-11:30, 09:00-12:00, 09:30-11:30, 09:30-12:00, 09:30-13:00, 10:00-11:30, 10:00-12:00, 10:00-12:30, 10:00-13:00, 10:30-12:00, 10:30-12:30, 11:00-12:00, 11:00-13:30, 8:00-11:30, 8:30-10:30, 8:30-12:00, 9:00-11:00, 9:00-12:00, 9:30-12:00.",
            "examples": [
              "eq.9:30-12:00"
            ]
          },
          {
            "name": "tues_pm",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Session times as the publisher writes them, such as 17:30-19:30. Blank when there is no session.",
            "examples": [
              "eq.17:00-19:00"
            ]
          },
          {
            "name": "wed_am",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Session times as the publisher writes them, such as 17:30-19:30. Blank when there is no session. Values: 09:00-11:00, 09:00-11:30, 09:00-12:00, 09:30-11:30, 09:30-12:00, 09:30-13:00, 10:00-12:00, 10:00-13:00, 10:30-12:00, 11:00-12:00, 8:00-11:00, 8:00-11:30, 8:30-12:00, 9:00-11:00, 9:00-12:00, 9:30-12:00, 9:30-12:30.",
            "examples": [
              "eq.9:30-12:30"
            ]
          },
          {
            "name": "wed_pm",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Session times as the publisher writes them, such as 17:30-19:30. Blank when there is no session.",
            "examples": [
              "eq._5:00pm-7:00pm"
            ]
          },
          {
            "name": "thurs_am",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Session times as the publisher writes them, such as 17:30-19:30. Blank when there is no session.",
            "examples": [
              "eq.9:30-13:00"
            ]
          },
          {
            "name": "thurs_pm",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Session times as the publisher writes them, such as 17:30-19:30. Blank when there is no session.",
            "examples": [
              "eq.18:00-20:00"
            ]
          },
          {
            "name": "fri_am",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Session times as the publisher writes them, such as 17:30-19:30. Blank when there is no session. Values: 09:00-11:00, 09:00-12:00, 09:30-11:30, 09:30-12:00, 09:30-13:00, 10:00-11:30, 10:00-12:00, 10:00-13:00, 10:30-12:00, 11:00-12:00, 8:00-11:30, 8:30-12:00, 9:00-11:00, 9:00-12:00, 9:30-12:00, 9:30-12:30.",
            "examples": [
              "eq.9:30-12:30"
            ]
          },
          {
            "name": "fri_pm",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Session times as the publisher writes them, such as 17:30-19:30. Blank when there is no session. Values: 12:00-12:30, 12:00-13:00, 12:00-13:30, 12:00-14:00, 12:00-14:30, 12:00-14:45, 12:00-15:00, 12:00-15:30, 12:00-15:45, 12:00-16:00, 12:00-16:30, 12:00-16:45, 13:00-15:00, 13:00-16:00, 13:30-15:00, 14:30-17:00, 16:00-18:00.",
            "examples": [
              "eq.16:00-18:00"
            ]
          },
          {
            "name": "sat_am",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Session times as the publisher writes them, such as 17:30-19:30. Blank when there is no session. Values: 09:00-10:00, 09:00-11:00, 09:00-12:00, 09:30-10:30, 09:30-11:15, 09:30-11:30, 09:30-12:00, 10:00-12:00, 10:15-12:00, 11:00-12:00, 8:30-10:30, 9:00-11:00, 9:00-11:30, 9:00-12:00, 9:30-11:30, 9:30-12:00, 9:30-12:30.",
            "examples": [
              "eq.9:30-12:30"
            ]
          },
          {
            "name": "sat_pm",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Session times as the publisher writes them, such as 17:30-19:30. Blank when there is no session. Values: 12:00-12:15, 12:00-12:30, 12:00-13:00, 12:00-14:00, 12:00-15:00, 13:00-15:00.",
            "examples": [
              "eq.13:00-15:00"
            ]
          },
          {
            "name": "sun_am",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Session times as the publisher writes them, such as 17:30-19:30. Blank when there is no session. Values: 10:00-12:00.",
            "examples": [
              "eq.10:00-12:00"
            ]
          },
          {
            "name": "sun_pm",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Session times as the publisher writes them, such as 17:30-19:30. Blank when there is no session. Values: 12:00-16:00, 14:00-16:00.",
            "examples": [
              "eq.14:00-16:00"
            ]
          },
          {
            "name": "closure",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Dates or notes of closures, as the publisher writes them. Values: Due to volunteer availability, operating days are subject to change. Please review listed operating hours prior to attending., Please contact Parkhurst Town Centre to confirm volunteer JP availability., Please note, the Saturday service operates on the 2nd and 4th Saturday of each month., Please note, this service operates on the 1st Wednesday of each month., Please note, this service operates on the 2nd Wednesday of each month., Please note, volunteer JP services at this location operate on the 2nd and 4th Monday of each month., To assist the volunteers in finishing on time, we recommend arriving at least 15 minutes before closing..",
            "examples": [
              "eq.To assist the volunteers in finishing on time, we recommend arriving at least 15 minutes before closing."
            ]
          },
          {
            "name": "agency",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. The department code the publisher records, DJAG or DoJ. Values: DJAG, DoJ.",
            "examples": [
              "eq.DoJ"
            ]
          },
          {
            "name": "facilities",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string."
          },
          {
            "name": "description",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string. Values: JPs in the Community program, Please note, this new service will commence of Thursday 13 February 2025., Service, Volunteer Justice of Peace or Commissioner of Declaration, Volunteer Justice of the Peace or Commissioner for Declarations.",
            "examples": [
              "eq.Volunteer Justice of the Peace or Commissioner for Declarations"
            ]
          },
          {
            "name": "operating_hours",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string."
          },
          {
            "name": "operating_days",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string.",
            "examples": [
              "eq.Wednes,Wednes,Thurs,Thurs,Fri,Fri,Satur,"
            ]
          },
          {
            "name": "updated",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "datetime. When the publisher last changed the row. From 2025-08-25T10:23:16 to 2026-09-30T11:24:59."
          },
          {
            "name": "order",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "`field.asc` or `field.desc`, comma-separated. The publisher's row order when absent."
          },
          {
            "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."
          },
          "400": {
            "description": "The query names a field the dataset does not have, or a value of the wrong type."
          },
          "404": {
            "description": "The dataset or version is not loaded for queries."
          },
          "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 loaded for queries, newest first, with the URLs to query each",
        "operationId": "queryVersions",
        "parameters": [
          {
            "name": "slug",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "enum": [
                "qld-jp-signing-locations"
              ]
            },
            "description": "The dataset's slug, as in its page URL `/d/<slug>/`."
          }
        ],
        "responses": {
          "200": {
            "description": "Loaded versions with row counts and URLs."
          },
          "404": {
            "description": "The dataset or version is not loaded for queries."
          },
          "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"
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}
