{
  "openapi": "3.1.0",
  "info": {
    "title": "Public housing households by council area, South Australia query API",
    "version": "2022-06-06",
    "summary": "Filter, page and aggregate Public housing households by council area, South Australia from South Australian Housing Trust.",
    "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. South Australian Housing Trust 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/sa-public-housing-households/#query"
  },
  "tags": [
    {
      "name": "query"
    }
  ],
  "paths": {
    "/api/v1/datasets/sa-public-housing-households/rows": {
      "get": {
        "tags": [
          "query"
        ],
        "summary": "Query Public housing households by council area, South Australia",
        "operationId": "queryRows_sa_public_housing_households",
        "description": "Rows of Public housing households by council area, South Australia 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": "lga",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string.",
            "examples": [
              "eq.Yorke Peninsula Council"
            ]
          },
          {
            "name": "total_households",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "number. From 1.0 to 30144.0.",
            "examples": [
              "eq.30144.0"
            ]
          },
          {
            "name": "number_of_household_members",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "number. From 5.0 to 48902.0.",
            "examples": [
              "eq.48902.0"
            ]
          },
          {
            "name": "aboriginal_households",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "number. From 0.0 to 2671.0.",
            "examples": [
              "eq.2671.0"
            ]
          },
          {
            "name": "households_with_person_with_disability",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "number. From 0.0 to 13154.0.",
            "examples": [
              "eq.13154.0"
            ]
          },
          {
            "name": "average_market_rent_of_occupied_dwellings_30_june",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "number. The publisher's figure, as published. From 119.0 to 330.93277310924367.",
            "examples": [
              "eq.330.93277310924367"
            ]
          },
          {
            "name": "average_rent_changed_30_june",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "number. The publisher's figure, as published. From 102.9 to 173.83333333333337.",
            "examples": [
              "eq.173.83333333333337"
            ]
          },
          {
            "name": "paying_less_than_market_rent",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "number. From 0.8891985138004246 to 26804.0.",
            "examples": [
              "eq.26804.0"
            ]
          },
          {
            "name": "single_person",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "number. From 0.6450703290870489 to 19445.0.",
            "examples": [
              "eq.19445.0"
            ]
          },
          {
            "name": "single_parent_with_dependent_children",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "number. From 0.0 to 2783.0.",
            "examples": [
              "eq.2783.0"
            ]
          },
          {
            "name": "couple_only",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "number. From 0.0 to 2622.0.",
            "examples": [
              "eq.2622.0"
            ]
          },
          {
            "name": "couple_with_dependent_children",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "number. Values: 0.0, 0.026307059447983016, 5.0, 10.0, 15.0, 20.0, 25.0, 30.0, 45.0, 60.0, 65.0, 80.0, 100.0, 110.0, 793.0.",
            "examples": [
              "eq.793.0"
            ]
          },
          {
            "name": "group_or_mixed_composition",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "number. From 0.0 to 4501.0.",
            "examples": [
              "eq.4501.0"
            ]
          },
          {
            "name": "has_child_under_15_years",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "number. From 0.0 to 3615.0.",
            "examples": [
              "eq.3615.0"
            ]
          },
          {
            "name": "has_child_under_5_years",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "number. Values: 0.0, 0.03914543524416136, 5.0, 10.0, 25.0, 30.0, 35.0, 45.0, 55.0, 80.0, 95.0, 100.0, 115.0, 140.0, 1180.0.",
            "examples": [
              "eq.1180.0"
            ]
          },
          {
            "name": "has_adult_65_years_or_more",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "number. From 0.0 to 11424.0.",
            "examples": [
              "eq.11424.0"
            ]
          },
          {
            "name": "younger_person_main_tenant_under_25_years",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "number. Values: 0.0, 0.025245488322717623, 5.0, 10.0, 15.0, 20.0, 25.0, 30.0, 35.0, 40.0, 50.0, 60.0, 65.0, 75.0, 110.0, 761.0.",
            "examples": [
              "eq.761.0"
            ]
          },
          {
            "name": "overcrowded_households",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "number. Values: 0.0, 0.021065552016985137, 5.0, 10.0, 15.0, 20.0, 30.0, 60.0, 65.0, 70.0, 75.0, 110.0, 635.0.",
            "examples": [
              "eq.635.0"
            ]
          },
          {
            "name": "underutilised_households",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "number. From 0.0 to 7902.0.",
            "examples": [
              "eq.7902.0"
            ]
          },
          {
            "name": "tenure_under_3_years",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "number. From 0.0 to 7159.0.",
            "examples": [
              "eq.7159.0"
            ]
          },
          {
            "name": "tenure_3_to_9_years",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "number. From 0.0 to 8400.0.",
            "examples": [
              "eq.8400.0"
            ]
          },
          {
            "name": "tenure_10_or_more_years",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "number. From 0.0 to 14585.0.",
            "examples": [
              "eq.14585.0"
            ]
          },
          {
            "name": "aged_pension",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "number. From 0.0 to 8151.0.",
            "examples": [
              "eq.8151.0"
            ]
          },
          {
            "name": "disability_support_pension",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "number. From 0.0 to 9600.0.",
            "examples": [
              "eq.9600.0"
            ]
          },
          {
            "name": "job_seeker",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "number. From 0.0 to 4475.0.",
            "examples": [
              "eq.4475.0"
            ]
          },
          {
            "name": "other_government_payment",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "number. From 0.0 to 3155.0.",
            "examples": [
              "eq.3155.0"
            ]
          },
          {
            "name": "employee_cash_income_wages",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "number. Values: 0.0, 0.05334394904458599, 5.0, 10.0, 15.0, 20.0, 25.0, 30.0, 40.0, 45.0, 70.0, 80.0, 85.0, 90.0, 105.0, 160.0, 165.0, 195.0, 280.0, 1608.0.",
            "examples": [
              "eq.1608.0"
            ]
          },
          {
            "name": "other_cash_income",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "number. Values: 0.0, 0.008227176220806794, 5.0, 10.0, 15.0, 30.0, 40.0, 248.0.",
            "examples": [
              "eq.248.0"
            ]
          },
          {
            "name": "income_not_stated",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "number. From 0.0 to 2907.0.",
            "examples": [
              "eq.2907.0"
            ]
          },
          {
            "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/sa-public-housing-households/versions/{version}/rows": {
      "get": {
        "tags": [
          "query"
        ],
        "summary": "Query Public housing households by council area, South Australia",
        "operationId": "queryRows_sa_public_housing_households_version",
        "description": "Rows of Public housing households by council area, South Australia 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": "lga",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string.",
            "examples": [
              "eq.Yorke Peninsula Council"
            ]
          },
          {
            "name": "total_households",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "number. From 1.0 to 30144.0.",
            "examples": [
              "eq.30144.0"
            ]
          },
          {
            "name": "number_of_household_members",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "number. From 5.0 to 48902.0.",
            "examples": [
              "eq.48902.0"
            ]
          },
          {
            "name": "aboriginal_households",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "number. From 0.0 to 2671.0.",
            "examples": [
              "eq.2671.0"
            ]
          },
          {
            "name": "households_with_person_with_disability",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "number. From 0.0 to 13154.0.",
            "examples": [
              "eq.13154.0"
            ]
          },
          {
            "name": "average_market_rent_of_occupied_dwellings_30_june",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "number. The publisher's figure, as published. From 119.0 to 330.93277310924367.",
            "examples": [
              "eq.330.93277310924367"
            ]
          },
          {
            "name": "average_rent_changed_30_june",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "number. The publisher's figure, as published. From 102.9 to 173.83333333333337.",
            "examples": [
              "eq.173.83333333333337"
            ]
          },
          {
            "name": "paying_less_than_market_rent",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "number. From 0.8891985138004246 to 26804.0.",
            "examples": [
              "eq.26804.0"
            ]
          },
          {
            "name": "single_person",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "number. From 0.6450703290870489 to 19445.0.",
            "examples": [
              "eq.19445.0"
            ]
          },
          {
            "name": "single_parent_with_dependent_children",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "number. From 0.0 to 2783.0.",
            "examples": [
              "eq.2783.0"
            ]
          },
          {
            "name": "couple_only",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "number. From 0.0 to 2622.0.",
            "examples": [
              "eq.2622.0"
            ]
          },
          {
            "name": "couple_with_dependent_children",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "number. Values: 0.0, 0.026307059447983016, 5.0, 10.0, 15.0, 20.0, 25.0, 30.0, 45.0, 60.0, 65.0, 80.0, 100.0, 110.0, 793.0.",
            "examples": [
              "eq.793.0"
            ]
          },
          {
            "name": "group_or_mixed_composition",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "number. From 0.0 to 4501.0.",
            "examples": [
              "eq.4501.0"
            ]
          },
          {
            "name": "has_child_under_15_years",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "number. From 0.0 to 3615.0.",
            "examples": [
              "eq.3615.0"
            ]
          },
          {
            "name": "has_child_under_5_years",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "number. Values: 0.0, 0.03914543524416136, 5.0, 10.0, 25.0, 30.0, 35.0, 45.0, 55.0, 80.0, 95.0, 100.0, 115.0, 140.0, 1180.0.",
            "examples": [
              "eq.1180.0"
            ]
          },
          {
            "name": "has_adult_65_years_or_more",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "number. From 0.0 to 11424.0.",
            "examples": [
              "eq.11424.0"
            ]
          },
          {
            "name": "younger_person_main_tenant_under_25_years",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "number. Values: 0.0, 0.025245488322717623, 5.0, 10.0, 15.0, 20.0, 25.0, 30.0, 35.0, 40.0, 50.0, 60.0, 65.0, 75.0, 110.0, 761.0.",
            "examples": [
              "eq.761.0"
            ]
          },
          {
            "name": "overcrowded_households",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "number. Values: 0.0, 0.021065552016985137, 5.0, 10.0, 15.0, 20.0, 30.0, 60.0, 65.0, 70.0, 75.0, 110.0, 635.0.",
            "examples": [
              "eq.635.0"
            ]
          },
          {
            "name": "underutilised_households",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "number. From 0.0 to 7902.0.",
            "examples": [
              "eq.7902.0"
            ]
          },
          {
            "name": "tenure_under_3_years",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "number. From 0.0 to 7159.0.",
            "examples": [
              "eq.7159.0"
            ]
          },
          {
            "name": "tenure_3_to_9_years",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "number. From 0.0 to 8400.0.",
            "examples": [
              "eq.8400.0"
            ]
          },
          {
            "name": "tenure_10_or_more_years",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "number. From 0.0 to 14585.0.",
            "examples": [
              "eq.14585.0"
            ]
          },
          {
            "name": "aged_pension",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "number. From 0.0 to 8151.0.",
            "examples": [
              "eq.8151.0"
            ]
          },
          {
            "name": "disability_support_pension",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "number. From 0.0 to 9600.0.",
            "examples": [
              "eq.9600.0"
            ]
          },
          {
            "name": "job_seeker",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "number. From 0.0 to 4475.0.",
            "examples": [
              "eq.4475.0"
            ]
          },
          {
            "name": "other_government_payment",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "number. From 0.0 to 3155.0.",
            "examples": [
              "eq.3155.0"
            ]
          },
          {
            "name": "employee_cash_income_wages",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "number. Values: 0.0, 0.05334394904458599, 5.0, 10.0, 15.0, 20.0, 25.0, 30.0, 40.0, 45.0, 70.0, 80.0, 85.0, 90.0, 105.0, 160.0, 165.0, 195.0, 280.0, 1608.0.",
            "examples": [
              "eq.1608.0"
            ]
          },
          {
            "name": "other_cash_income",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "number. Values: 0.0, 0.008227176220806794, 5.0, 10.0, 15.0, 30.0, 40.0, 248.0.",
            "examples": [
              "eq.248.0"
            ]
          },
          {
            "name": "income_not_stated",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "number. From 0.0 to 2907.0.",
            "examples": [
              "eq.2907.0"
            ]
          },
          {
            "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": [
                "sa-public-housing-households"
              ]
            },
            "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": "lga",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string.",
            "examples": [
              "eq.Yorke Peninsula Council"
            ]
          },
          {
            "name": "total_households",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "number. From 1.0 to 30144.0.",
            "examples": [
              "eq.30144.0"
            ]
          },
          {
            "name": "number_of_household_members",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "number. From 5.0 to 48902.0.",
            "examples": [
              "eq.48902.0"
            ]
          },
          {
            "name": "aboriginal_households",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "number. From 0.0 to 2671.0.",
            "examples": [
              "eq.2671.0"
            ]
          },
          {
            "name": "households_with_person_with_disability",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "number. From 0.0 to 13154.0.",
            "examples": [
              "eq.13154.0"
            ]
          },
          {
            "name": "average_market_rent_of_occupied_dwellings_30_june",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "number. The publisher's figure, as published. From 119.0 to 330.93277310924367.",
            "examples": [
              "eq.330.93277310924367"
            ]
          },
          {
            "name": "average_rent_changed_30_june",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "number. The publisher's figure, as published. From 102.9 to 173.83333333333337.",
            "examples": [
              "eq.173.83333333333337"
            ]
          },
          {
            "name": "paying_less_than_market_rent",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "number. From 0.8891985138004246 to 26804.0.",
            "examples": [
              "eq.26804.0"
            ]
          },
          {
            "name": "single_person",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "number. From 0.6450703290870489 to 19445.0.",
            "examples": [
              "eq.19445.0"
            ]
          },
          {
            "name": "single_parent_with_dependent_children",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "number. From 0.0 to 2783.0.",
            "examples": [
              "eq.2783.0"
            ]
          },
          {
            "name": "couple_only",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "number. From 0.0 to 2622.0.",
            "examples": [
              "eq.2622.0"
            ]
          },
          {
            "name": "couple_with_dependent_children",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "number. Values: 0.0, 0.026307059447983016, 5.0, 10.0, 15.0, 20.0, 25.0, 30.0, 45.0, 60.0, 65.0, 80.0, 100.0, 110.0, 793.0.",
            "examples": [
              "eq.793.0"
            ]
          },
          {
            "name": "group_or_mixed_composition",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "number. From 0.0 to 4501.0.",
            "examples": [
              "eq.4501.0"
            ]
          },
          {
            "name": "has_child_under_15_years",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "number. From 0.0 to 3615.0.",
            "examples": [
              "eq.3615.0"
            ]
          },
          {
            "name": "has_child_under_5_years",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "number. Values: 0.0, 0.03914543524416136, 5.0, 10.0, 25.0, 30.0, 35.0, 45.0, 55.0, 80.0, 95.0, 100.0, 115.0, 140.0, 1180.0.",
            "examples": [
              "eq.1180.0"
            ]
          },
          {
            "name": "has_adult_65_years_or_more",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "number. From 0.0 to 11424.0.",
            "examples": [
              "eq.11424.0"
            ]
          },
          {
            "name": "younger_person_main_tenant_under_25_years",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "number. Values: 0.0, 0.025245488322717623, 5.0, 10.0, 15.0, 20.0, 25.0, 30.0, 35.0, 40.0, 50.0, 60.0, 65.0, 75.0, 110.0, 761.0.",
            "examples": [
              "eq.761.0"
            ]
          },
          {
            "name": "overcrowded_households",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "number. Values: 0.0, 0.021065552016985137, 5.0, 10.0, 15.0, 20.0, 30.0, 60.0, 65.0, 70.0, 75.0, 110.0, 635.0.",
            "examples": [
              "eq.635.0"
            ]
          },
          {
            "name": "underutilised_households",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "number. From 0.0 to 7902.0.",
            "examples": [
              "eq.7902.0"
            ]
          },
          {
            "name": "tenure_under_3_years",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "number. From 0.0 to 7159.0.",
            "examples": [
              "eq.7159.0"
            ]
          },
          {
            "name": "tenure_3_to_9_years",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "number. From 0.0 to 8400.0.",
            "examples": [
              "eq.8400.0"
            ]
          },
          {
            "name": "tenure_10_or_more_years",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "number. From 0.0 to 14585.0.",
            "examples": [
              "eq.14585.0"
            ]
          },
          {
            "name": "aged_pension",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "number. From 0.0 to 8151.0.",
            "examples": [
              "eq.8151.0"
            ]
          },
          {
            "name": "disability_support_pension",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "number. From 0.0 to 9600.0.",
            "examples": [
              "eq.9600.0"
            ]
          },
          {
            "name": "job_seeker",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "number. From 0.0 to 4475.0.",
            "examples": [
              "eq.4475.0"
            ]
          },
          {
            "name": "other_government_payment",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "number. From 0.0 to 3155.0.",
            "examples": [
              "eq.3155.0"
            ]
          },
          {
            "name": "employee_cash_income_wages",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "number. Values: 0.0, 0.05334394904458599, 5.0, 10.0, 15.0, 20.0, 25.0, 30.0, 40.0, 45.0, 70.0, 80.0, 85.0, 90.0, 105.0, 160.0, 165.0, 195.0, 280.0, 1608.0.",
            "examples": [
              "eq.1608.0"
            ]
          },
          {
            "name": "other_cash_income",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "number. Values: 0.0, 0.008227176220806794, 5.0, 10.0, 15.0, 30.0, 40.0, 248.0.",
            "examples": [
              "eq.248.0"
            ]
          },
          {
            "name": "income_not_stated",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "number. From 0.0 to 2907.0.",
            "examples": [
              "eq.2907.0"
            ]
          },
          {
            "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": [
                "sa-public-housing-households"
              ]
            },
            "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": "lga",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "string.",
            "examples": [
              "eq.Yorke Peninsula Council"
            ]
          },
          {
            "name": "total_households",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "number. From 1.0 to 30144.0.",
            "examples": [
              "eq.30144.0"
            ]
          },
          {
            "name": "number_of_household_members",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "number. From 5.0 to 48902.0.",
            "examples": [
              "eq.48902.0"
            ]
          },
          {
            "name": "aboriginal_households",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "number. From 0.0 to 2671.0.",
            "examples": [
              "eq.2671.0"
            ]
          },
          {
            "name": "households_with_person_with_disability",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "number. From 0.0 to 13154.0.",
            "examples": [
              "eq.13154.0"
            ]
          },
          {
            "name": "average_market_rent_of_occupied_dwellings_30_june",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "number. The publisher's figure, as published. From 119.0 to 330.93277310924367.",
            "examples": [
              "eq.330.93277310924367"
            ]
          },
          {
            "name": "average_rent_changed_30_june",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "number. The publisher's figure, as published. From 102.9 to 173.83333333333337.",
            "examples": [
              "eq.173.83333333333337"
            ]
          },
          {
            "name": "paying_less_than_market_rent",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "number. From 0.8891985138004246 to 26804.0.",
            "examples": [
              "eq.26804.0"
            ]
          },
          {
            "name": "single_person",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "number. From 0.6450703290870489 to 19445.0.",
            "examples": [
              "eq.19445.0"
            ]
          },
          {
            "name": "single_parent_with_dependent_children",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "number. From 0.0 to 2783.0.",
            "examples": [
              "eq.2783.0"
            ]
          },
          {
            "name": "couple_only",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "number. From 0.0 to 2622.0.",
            "examples": [
              "eq.2622.0"
            ]
          },
          {
            "name": "couple_with_dependent_children",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "number. Values: 0.0, 0.026307059447983016, 5.0, 10.0, 15.0, 20.0, 25.0, 30.0, 45.0, 60.0, 65.0, 80.0, 100.0, 110.0, 793.0.",
            "examples": [
              "eq.793.0"
            ]
          },
          {
            "name": "group_or_mixed_composition",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "number. From 0.0 to 4501.0.",
            "examples": [
              "eq.4501.0"
            ]
          },
          {
            "name": "has_child_under_15_years",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "number. From 0.0 to 3615.0.",
            "examples": [
              "eq.3615.0"
            ]
          },
          {
            "name": "has_child_under_5_years",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "number. Values: 0.0, 0.03914543524416136, 5.0, 10.0, 25.0, 30.0, 35.0, 45.0, 55.0, 80.0, 95.0, 100.0, 115.0, 140.0, 1180.0.",
            "examples": [
              "eq.1180.0"
            ]
          },
          {
            "name": "has_adult_65_years_or_more",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "number. From 0.0 to 11424.0.",
            "examples": [
              "eq.11424.0"
            ]
          },
          {
            "name": "younger_person_main_tenant_under_25_years",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "number. Values: 0.0, 0.025245488322717623, 5.0, 10.0, 15.0, 20.0, 25.0, 30.0, 35.0, 40.0, 50.0, 60.0, 65.0, 75.0, 110.0, 761.0.",
            "examples": [
              "eq.761.0"
            ]
          },
          {
            "name": "overcrowded_households",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "number. Values: 0.0, 0.021065552016985137, 5.0, 10.0, 15.0, 20.0, 30.0, 60.0, 65.0, 70.0, 75.0, 110.0, 635.0.",
            "examples": [
              "eq.635.0"
            ]
          },
          {
            "name": "underutilised_households",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "number. From 0.0 to 7902.0.",
            "examples": [
              "eq.7902.0"
            ]
          },
          {
            "name": "tenure_under_3_years",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "number. From 0.0 to 7159.0.",
            "examples": [
              "eq.7159.0"
            ]
          },
          {
            "name": "tenure_3_to_9_years",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "number. From 0.0 to 8400.0.",
            "examples": [
              "eq.8400.0"
            ]
          },
          {
            "name": "tenure_10_or_more_years",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "number. From 0.0 to 14585.0.",
            "examples": [
              "eq.14585.0"
            ]
          },
          {
            "name": "aged_pension",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "number. From 0.0 to 8151.0.",
            "examples": [
              "eq.8151.0"
            ]
          },
          {
            "name": "disability_support_pension",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "number. From 0.0 to 9600.0.",
            "examples": [
              "eq.9600.0"
            ]
          },
          {
            "name": "job_seeker",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "number. From 0.0 to 4475.0.",
            "examples": [
              "eq.4475.0"
            ]
          },
          {
            "name": "other_government_payment",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "number. From 0.0 to 3155.0.",
            "examples": [
              "eq.3155.0"
            ]
          },
          {
            "name": "employee_cash_income_wages",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "number. Values: 0.0, 0.05334394904458599, 5.0, 10.0, 15.0, 20.0, 25.0, 30.0, 40.0, 45.0, 70.0, 80.0, 85.0, 90.0, 105.0, 160.0, 165.0, 195.0, 280.0, 1608.0.",
            "examples": [
              "eq.1608.0"
            ]
          },
          {
            "name": "other_cash_income",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "number. Values: 0.0, 0.008227176220806794, 5.0, 10.0, 15.0, 30.0, 40.0, 248.0.",
            "examples": [
              "eq.248.0"
            ]
          },
          {
            "name": "income_not_stated",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "number. From 0.0 to 2907.0.",
            "examples": [
              "eq.2907.0"
            ]
          },
          {
            "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": [
                "sa-public-housing-households"
              ]
            },
            "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"
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}
