British Columbia Data Catalogue · OpenAPI Overlay 1.0.0

API Evangelist enhancements — BC Data Catalogue API

10 actions 10 updates update extends openapi/british-columbia-data-catalogue-bcdc-api-openapi.json
Generated by API Evangelist Written by API Evangelist tooling for British Columbia Data Catalogue's API. It is a proposal applied on top of the contract, not a document British Columbia Data Catalogue publishes.
View Overlay File View on GitHub Overlay Specification

What the actions change

x-notex-stale-contract-riskx-apis-io-providerx-licence-idx-terms-of-usex-contract-gapx-error-envelopex-rate-limit

Targets 8

$.info
$.servers
$.components.securitySchemes.githubAccessCode
$.components.securitySchemes.internalApiKey
$.paths['/action/package_search'].get
$.paths['/action/package_show'].get
$.paths['/action/package_revision_list']
$.paths['/action/related_list']

OpenAPI Overlay

Raw ↑
overlay: 1.0.0
info:
  title: API Evangelist enhancements — BC Data Catalogue API
  version: 1.0.0
extends: openapi/british-columbia-data-catalogue-bcdc-api-openapi.json
x-generated: '2026-09-04'
x-method: generated
x-source: >-
  Enhancements observed by API Evangelist from live probes of
  catalogue.data.gov.bc.ca/api/3/action/ and from the DataBC documentation at
  bcgov.github.io/data-publication. Applied as an overlay so the first-party contract in
  openapi/ stays byte-for-byte as DataBC published it.
actions:
  - target: $.info
    description: Record the licence and terms as machine-readable extensions and note the schema gap.
    update:
      x-apis-io-provider: british-columbia-data-catalogue
      x-licence-id: OGL-BC
      x-terms-of-use: https://www2.gov.bc.ca/gov/content?id=D1EE0A405E584363B205CD4353E02C88
      x-contract-gap: >-
        components.schemas is empty and every operation documents only a bare "200"
        response. Response shapes for Package, Organization, Group, Resource and Tag were
        observed live and are catalogued in
        data-model/british-columbia-data-catalogue-data-model.yml.
  - target: $.info
    description: Attach the observed error envelope, which the contract does not describe.
    update:
      x-error-envelope:
        format: ckan-action-envelope
        rfc9457: false
        fields:
          - help
          - success
          - error.__type
          - error.message
        statuses:
          '400': Bare JSON string, not the envelope. Request rejected before action dispatch.
          '403': Authorization Error — write action without a ckan_api_key.
          '404': Not Found Error — unknown dataset name or id.
          '409': Validation Error — per-field arrays under error, no error.message.
        catalog: errors/british-columbia-data-catalogue-problem-types.yml
  - target: $.info
    description: Record the absence of rate-limit signalling as an explicit, machine-readable fact.
    update:
      x-rate-limit:
        documented: false
        headers: []
        note: >-
          No RateLimit-*, X-RateLimit-* or Retry-After header is returned. Kong gateway
          headers (x-kong-upstream-latency, x-kong-proxy-latency) are the only extras.
  - target: $.servers
    description: Record the live reachability of each declared environment as probed on 2026-09-04.
    update:
      - url: https://catalogue.data.gov.bc.ca/api/3
        description: Production
        x-probed:
          status: 200
          checked: '2026-09-04'
      - url: https://cat.data.gov.bc.ca/api/3
        description: Test
        x-probed:
          status: 200
          checked: '2026-09-04'
          note: Live and anonymous; usable as a sandbox.
      - url: https://cad.data.gov.bc.ca/api/3
        description: Delivery
        x-probed:
          status: 0
          checked: '2026-09-04'
          note: Declared in the contract but did not resolve or connect.
  - target: $.components.securitySchemes.githubAccessCode
    description: >-
      Flag the oauth2 scheme as Swagger-editor boilerplate. Its authorizationUrl is
      github.com and its scopes are GitHub's own (repo, gist, delete_repo, admin:org). It
      is not a BC Data Catalogue authorization server and no client should attempt it.
    update:
      x-not-applicable: true
      x-note: >-
        Boilerplate carried over from the Swagger editor. The catalogue's interactive
        sign-in is an OpenID Connect SSO plugin (the "sso" extension reported by
        status_show). The only credential this API accepts is the ckan_api_key header.
  - target: $.components.securitySchemes.internalApiKey
    description: Clarify where the CKAN API token comes from and what it is needed for.
    update:
      x-applies-to: write actions only
      x-obtained-from: >-
        Account Settings after signing in to catalogue.data.gov.bc.ca; requires
        editor/publisher rights in a B.C. government organization.
      x-note: Public read actions require no credential at all.
  - target: $.paths['/action/package_search'].get
    description: Document the Solr parameters DataBC's own how-to uses but the contract omits.
    update:
      x-solr-query: true
      x-additional-parameters:
        - name: fq
          in: query
          description: Solr filter query.
        - name: rows
          in: query
          description: Page size.
        - name: start
          in: query
          description: Rows to skip.
        - name: facet
          in: query
          description: Enable faceting.
        - name: facet.field
          in: query
          description: JSON array of fields to facet on.
      x-example-queries:
        - q=res_format:wms
        - q=res_extras_bcdc_type:geographic
        - q=res_extras_resource_storage_location:bc%20geographic%20warehouse
        - q=license_id:2
      x-response-fields:
        count: Total matching datasets (3,356 catalogue-wide with q=*:*).
        results: The page of package objects, each with its full resources[] array.
  - target: $.paths['/action/package_show'].get
    description: Note the metadata-to-map-service join key carried on each resource.
    update:
      x-crosswalk:
        field: resources[].object_name
        points_at: >-
          The matching layer name in the DataBC WMS/WFS capabilities at
          openmaps.gov.bc.ca/geo/pub/ows.
        artifacts:
          - openapi/british-columbia-data-catalogue-databc-pub-wms-capabilities.xml
          - openapi/british-columbia-data-catalogue-databc-pub-wfs-capabilities.xml
  - target: $.paths['/action/package_revision_list']
    description: >-
      Flag as a stale-contract risk. Revision and HTML-activity actions were removed or
      reworked in CKAN after the 2.9 line this catalogue runs. DataBC publishes no
      deprecation notice, so this is our observation, not a provider signal.
    update:
      x-stale-contract-risk: true
  - target: $.paths['/action/related_list']
    description: Same stale-contract risk as package_revision_list.
    update:
      x-stale-contract-risk: true