Data WA CKAN Action API

Landgate leads implementation of the WA Whole of Government Open Data Policy and operates data.wa.gov.au, whose catalogue runs CKAN with the standard /api/3/action surface exposed anonymously. Confirmed 2026-07-26 — status_show, package_search, package_list and organization_show all returned HTTP 200 without credentials; the catalogue holds 2,872 datasets, of which 395 are published by the Landgate organization. A DCAT JSON-LD catalog is served at /catalog.jsonld. Note honestly that the API is open but most Landgate datasets in it carry a custom Landgate licence rather than an open licence (371 of 395 are license_id custom_other; only 2 are public domain and 5 are CC non-commercial).

OpenAPI Specification

landgate-data-wa-ckan-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Data WA CKAN Action API (operated by Landgate)
  version: '3'
  summary: OpenAPI description of the anonymously callable CKAN Action API behind
    data.wa.gov.au, the WA whole-of-government open data catalogue Landgate operates.
  description: |
    Landgate leads implementation of the WA Whole of Government Open Data Policy and operates
    data.wa.gov.au. Its catalogue runs CKAN, whose standard `/api/3/action/*` surface is
    exposed anonymously. CKAN publishes no OpenAPI, so this is an API Evangelist GENERATED
    description of the actions that this specific deployment answers.

    Every operation below was probed live on 2026-07-26 and returned HTTP 200 with
    `"success": true` and no credential (see `x-evidence`). Only actions that were actually
    exercised are described — the CKAN action surface is larger, and `helpShow` is the
    server's own machine-readable parameter reference for any action.

    Scale observed on 2026-07-26: 2,872 datasets in the catalogue, 395 published by the
    `landgate` organization. Licensing is mixed and should not be assumed open — 371 of the
    395 Landgate datasets carry `license_id: custom_other`.
  contact:
    name: Landgate Customer Service
    url: https://www.landgate.wa.gov.au/help-centre/
  license:
    name: Per-dataset; see each package's license_id
    url: https://catalogue.data.wa.gov.au/api/3/action/license_list
x-generated-by: API Evangelist enrichment pipeline
x-generated: '2026-07-26'
x-method: generated
x-source: live probes of https://catalogue.data.wa.gov.au/api/3/action
x-authentication: none for read actions (write actions require a CKAN API key not issued publicly)
servers:
  - url: https://catalogue.data.wa.gov.au
    description: Data WA CKAN catalogue
tags:
  - name: Site
    description: Catalogue-level status and reference lists
  - name: Datasets
    description: Dataset (package) discovery and retrieval
  - name: Organizations
    description: Publishing organizations and groups
  - name: Discovery
    description: Autocomplete, resource search and the DCAT catalog
paths:
  /api/3/action/status_show:
    get:
      operationId: ckanStatusShow
      tags: [Site]
      summary: Get catalogue status
      description: Returns the CKAN version, site title/url and the installed extension list.
      x-evidence:
        url: https://catalogue.data.wa.gov.au/api/3/action/status_show
        status: 200
        probed: '2026-07-26'
      responses:
        '200':
          description: Status envelope
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Envelope'
  /api/3/action/package_list:
    get:
      operationId: ckanPackageList
      tags: [Datasets]
      summary: List every dataset name in the catalogue
      x-evidence:
        url: https://catalogue.data.wa.gov.au/api/3/action/package_list
        status: 200
        probed: '2026-07-26'
      parameters:
        - name: limit
          in: query
          schema: { type: integer }
        - name: offset
          in: query
          schema: { type: integer }
      responses:
        '200':
          description: Envelope whose result is an array of dataset names
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Envelope'
  /api/3/action/package_search:
    get:
      operationId: ckanPackageSearch
      tags: [Datasets]
      summary: Search datasets (Solr query surface)
      description: |
        The primary discovery operation. Accepts a subset of Solr parameters. Filter to
        Landgate's own datasets with `fq=organization:landgate` (395 datasets on 2026-07-26).
      x-evidence:
        - url: https://catalogue.data.wa.gov.au/api/3/action/package_search?rows=1
          status: 200
          probed: '2026-07-26'
        - url: https://catalogue.data.wa.gov.au/api/3/action/package_search?fq=organization:landgate&rows=0
          status: 200
          probed: '2026-07-26'
          sample: '{"count":395}'
      parameters:
        - name: q
          in: query
          description: Solr query. Default `*:*`.
          schema: { type: string }
        - name: fq
          in: query
          description: Filter query, e.g. `organization:landgate` or `res_format:CSV`.
          schema: { type: string }
        - name: rows
          in: query
          description: Page size. Default 10; upper limit 1000.
          schema: { type: integer, default: 10, maximum: 1000 }
        - name: start
          in: query
          description: Pagination offset.
          schema: { type: integer, default: 0 }
        - name: sort
          in: query
          schema: { type: string }
        - name: facet.field
          in: query
          schema: { type: string }
        - name: include_private
          in: query
          schema: { type: boolean }
      responses:
        '200':
          description: Envelope whose result has count, results[] and search_facets
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SearchEnvelope'
  /api/3/action/package_show:
    get:
      operationId: ckanPackageShow
      tags: [Datasets]
      summary: Get one dataset with its resources
      x-evidence:
        url: https://catalogue.data.wa.gov.au/api/3/action/package_show?id=1-10-000-000-large-igneous-provinces-dmirs-081
        status: 200
        probed: '2026-07-26'
      parameters:
        - name: id
          in: query
          required: true
          description: Dataset name or id.
          schema: { type: string }
      responses:
        '200':
          description: Envelope whose result is a Package
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Envelope'
        '409':
          description: Validation Error when `id` is missing
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorEnvelope'
  /api/3/action/current_package_list_with_resources:
    get:
      operationId: ckanCurrentPackageListWithResources
      tags: [Datasets]
      summary: List recent datasets with their resources
      x-evidence:
        url: https://catalogue.data.wa.gov.au/api/3/action/current_package_list_with_resources?limit=1
        status: 200
        probed: '2026-07-26'
      parameters:
        - name: limit
          in: query
          schema: { type: integer }
        - name: offset
          in: query
          schema: { type: integer }
      responses:
        '200':
          description: Envelope whose result is an array of packages
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Envelope'
  /api/3/action/organization_list:
    get:
      operationId: ckanOrganizationList
      tags: [Organizations]
      summary: List publishing organizations
      x-evidence:
        url: https://catalogue.data.wa.gov.au/api/3/action/organization_list
        status: 200
        probed: '2026-07-26'
      responses:
        '200':
          description: Envelope whose result is an array of organization names
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Envelope'
  /api/3/action/organization_show:
    get:
      operationId: ckanOrganizationShow
      tags: [Organizations]
      summary: Get one organization
      x-evidence:
        url: https://catalogue.data.wa.gov.au/api/3/action/organization_show?id=landgate
        status: 200
        probed: '2026-07-26'
      parameters:
        - name: id
          in: query
          required: true
          description: Organization name or id, e.g. `landgate`.
          schema: { type: string }
        - name: include_datasets
          in: query
          schema: { type: boolean }
      responses:
        '200':
          description: Envelope whose result is an Organization
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Envelope'
  /api/3/action/group_list:
    get:
      operationId: ckanGroupList
      tags: [Organizations]
      summary: List catalogue groups
      x-evidence:
        url: https://catalogue.data.wa.gov.au/api/3/action/group_list
        status: 200
        probed: '2026-07-26'
      responses:
        '200':
          description: Envelope whose result is an array of group names
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Envelope'
  /api/3/action/tag_list:
    get:
      operationId: ckanTagList
      tags: [Site]
      summary: List tags
      x-evidence:
        url: https://catalogue.data.wa.gov.au/api/3/action/tag_list?limit=5
        status: 200
        probed: '2026-07-26'
      parameters:
        - name: query
          in: query
          schema: { type: string }
        - name: limit
          in: query
          schema: { type: integer }
      responses:
        '200':
          description: Envelope whose result is an array of tag names
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Envelope'
  /api/3/action/license_list:
    get:
      operationId: ckanLicenseList
      tags: [Site]
      summary: List the licences the catalogue recognises
      description: Useful for interpreting `license_id` on Landgate datasets — most are
        `custom_other` (a Landgate licence), not an open licence.
      x-evidence:
        url: https://catalogue.data.wa.gov.au/api/3/action/license_list
        status: 200
        probed: '2026-07-26'
      responses:
        '200':
          description: Envelope whose result is an array of licence objects
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Envelope'
  /api/3/action/vocabulary_list:
    get:
      operationId: ckanVocabularyList
      tags: [Site]
      summary: List controlled vocabularies
      x-evidence:
        url: https://catalogue.data.wa.gov.au/api/3/action/vocabulary_list
        status: 200
        probed: '2026-07-26'
      responses:
        '200':
          description: Envelope whose result is an array of vocabularies
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Envelope'
  /api/3/action/resource_search:
    get:
      operationId: ckanResourceSearch
      tags: [Discovery]
      summary: Search resources (distributions) directly
      x-evidence:
        url: https://catalogue.data.wa.gov.au/api/3/action/resource_search?query=name:cadastre
        status: 200
        probed: '2026-07-26'
      parameters:
        - name: query
          in: query
          required: true
          description: Field-scoped query, e.g. `name:cadastre`.
          schema: { type: string }
        - name: limit
          in: query
          schema: { type: integer }
        - name: offset
          in: query
          schema: { type: integer }
      responses:
        '200':
          description: Envelope whose result has count and results[]
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Envelope'
  /api/3/action/package_autocomplete:
    get:
      operationId: ckanPackageAutocomplete
      tags: [Discovery]
      summary: Autocomplete dataset titles
      x-evidence:
        url: https://catalogue.data.wa.gov.au/api/3/action/package_autocomplete?q=land&limit=3
        status: 200
        probed: '2026-07-26'
      parameters:
        - name: q
          in: query
          required: true
          schema: { type: string }
        - name: limit
          in: query
          schema: { type: integer }
      responses:
        '200':
          description: Envelope whose result is an array of matches
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Envelope'
  /api/3/action/format_autocomplete:
    get:
      operationId: ckanFormatAutocomplete
      tags: [Discovery]
      summary: Autocomplete resource formats
      x-evidence:
        url: https://catalogue.data.wa.gov.au/api/3/action/format_autocomplete?q=csv
        status: 200
        probed: '2026-07-26'
      parameters:
        - name: q
          in: query
          required: true
          schema: { type: string }
        - name: limit
          in: query
          schema: { type: integer }
      responses:
        '200':
          description: Envelope whose result is an array of formats
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Envelope'
  /api/3/action/help_show:
    get:
      operationId: ckanHelpShow
      tags: [Site]
      summary: Get the docstring (parameter reference) for any action
      description: CKAN's own machine-readable parameter reference. Every envelope returned by
        this API carries a `help` URL pointing back at this action.
      x-evidence:
        url: https://catalogue.data.wa.gov.au/api/3/action/help_show?name=package_search
        status: 200
        probed: '2026-07-26'
      parameters:
        - name: name
          in: query
          required: true
          schema: { type: string }
      responses:
        '200':
          description: Envelope whose result is the action docstring
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Envelope'
  /catalog.jsonld:
    get:
      operationId: getDataWaDcatCatalog
      tags: [Discovery]
      summary: Get the DCAT catalog as JSON-LD
      x-evidence:
        url: https://catalogue.data.wa.gov.au/catalog.jsonld
        status: 200
        content_type: application/ld+json
        probed: '2026-07-26'
      responses:
        '200':
          description: DCAT catalog
          content:
            application/ld+json:
              schema:
                type: array
                items: { type: object }
components:
  schemas:
    Envelope:
      type: object
      description: Standard CKAN response envelope.
      required: [help, success]
      properties:
        help: { type: string, format: uri }
        success: { type: boolean }
        result: {}
    SearchEnvelope:
      allOf:
        - $ref: '#/components/schemas/Envelope'
        - type: object
          properties:
            result:
              type: object
              properties:
                count: { type: integer }
                sort: { type: string }
                results:
                  type: array
                  items: { $ref: '#/components/schemas/Package' }
                search_facets: { type: object }
    ErrorEnvelope:
      type: object
      description: CKAN error envelope (observed on HTTP 409 validation errors).
      properties:
        help: { type: string, format: uri }
        success: { type: boolean, const: false }
        error:
          type: object
          properties:
            __type: { type: string, examples: [Validation Error, Not Found Error, Authorization Error] }
    Package:
      type: object
      description: A CKAN dataset. Fields observed on this deployment.
      properties:
        id: { type: string }
        name: { type: string }
        title: { type: string }
        notes: { type: string }
        access_level: { type: string }
        author: { type: string }
        author_email: { type: string }
        license_id: { type: string }
        metadata_created: { type: string }
        metadata_modified: { type: string }
        organization: { $ref: '#/components/schemas/Organization' }
        tags:
          type: array
          items: { type: object }
        resources:
          type: array
          items: { $ref: '#/components/schemas/Resource' }
    Resource:
      type: object
      properties:
        id: { type: string }
        package_id: { type: string }
        name: { type: string }
        url: { type: string, format: uri }
        format: { type: string }
        description: { type: string }
    Organization:
      type: object
      properties:
        id: { type: string }
        name: { type: string }
        title: { type: string }
        description: { type: string }
        package_count: { type: integer }