BC Data Catalogue CKAN API

The BC Data Catalogue exposes a CKAN v3 REST API at https://catalogue.data.gov.bc.ca/api/3/action/ providing programmatic access to BC government open datasets. Key endpoints include package_list (list all datasets), package_search (search datasets by query), package_show (retrieve dataset metadata and resources), organization_list (list BC government organizations), and resource_show (retrieve specific data resource information). Returns JSON with success status and result payloads. No authentication required for read access to public datasets.

Operations 22

GET /action/tag_list Get a list of tags
GET /action/status_show Get the site status
GET /action/package_list Get a list of all packages (datasets)
GET /action/package_search Find packages (datasets) matching query terms
GET /action/package_show Get metadata about one specific package (dataset)
GET /action/package_activity_list Get the activity stream of a package (dataset)
GET /action/package_activity_list_html Get the activity stream of a package (dataset), HTML format
GET /action/package_autocomplete Find packages (datasets) matching a query
GET /action/package_relationships_list Get package (dataset) relationships
GET /action/package_revision_list Get list of revisions for a package (dataset)
GET /action/organization_activity_list Get the activity stream of an organization
GET /action/organization_activity_list_html Get the activity stream of an organization, HTML format
GET /action/organization_follower_count Get number of followers of an organization
GET /action/organization_follower_list Get users following an organization
GET /action/organization_list_for_user Get organizations that a user has a given permission for
GET /action/organization_revision_list Get organization revisions
GET /action/organization_show Get details of a specific organization
GET /action/organization_list Get names of all organizations
GET /action/organization_autocomplete Get names of organizations that match a query string
GET /action/resource_search Find resources
GET /action/resource_show Get metadata for a specific resource
GET /action/related_list Gets items related to a package (dataset)

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/ckan-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

british-columbia-data-catalogue-bcdc-api-openapi.json Raw ↑
{
    "openapi": "3.0.0",
    "servers": [
        {
            "url": "https://catalogue.data.gov.bc.ca/api/3",
            "description": "Production"
        },
        {
            "url": "https://cat.data.gov.bc.ca/api/3",
            "description": "Test"
        },
        {
            "url": "https://cad.data.gov.bc.ca/api/3",
            "description": "Delivery"
        }
    ],
    "info": {
        "title": "BC Data Catalogue API",
        "description": "This API provides live access to the BC Data Catalogue. Further documentation on the API is available from http://docs.ckan.org/en/latest/ Confirm the version of the API available from the catalogue by requesting https://catalogue.data.gov.bc.ca/api/3/action/status_show. \n\nPlease note that you may experience issues when submitting requests to the delivery or test environment if using this [OpenAPI specification](https://github.com/bcgov/api-specs) in other API console viewers.",
        "termsOfService": "https://www2.gov.bc.ca/gov/content?id=D1EE0A405E584363B205CD4353E02C88",
        "contact": {
            "name": "Data BC",
            "url": "http://data.gov.bc.ca/",
            "email": "data@gov.bc.ca"
        },
        "license": {
            "name": "Open Government License - British Columbia",
            "url": "https://www2.gov.bc.ca/gov/content?id=A519A56BC2BF44E4A008B33FCF527F61"
        },
        "version": "3.0.1"
    },
    "tags": [
        {
            "name": "action",
            "description": "CKAN's Action API is a powerful, RPC-style API that exposes all of CKAN's core features to API clients.",
            "externalDocs": {
                "description": "Find out more",
                "url": "http://docs.ckan.org/en/ckan-2.5.3/api/index.html"
            }
        }
    ],
    "security": [
        {
            "githubAccessCode": [
                "user",
                "user:email",
                "user:follow",
                "public_repo",
                "repo",
                "repo_deployment",
                "repo:status",
                "delete_repo",
                "notifications",
                "gist",
                "read:repo_hook",
                "write:repo_hook",
                "admin:repo_hook",
                "read:org",
                "write:org",
                "admin:org",
                "read:public_key",
                "write:public_key",
                "admin:public_key"
            ]
        },
        {
            "internalApiKey": []
        }
    ],
    "paths": {
        "/action/tag_list": {
            "get": {
                "summary": "Get a list of tags",
                "description": "Returns the names of all indexed tags",
                "parameters": [
                    {
                        "name": "offset",
                        "in": "query",
                        "description": "The offset (index) of the first tag to return",
                        "schema": {
                            "type": "integer",
                            "default": 0
                        }
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "description": "The number of tags to be returned per page",
                        "schema": {
                            "type": "integer",
                            "default": 100
                        }
                    }
                ],
                "tags": [
                    "action"
                ],
                "responses": {
                    "200": {
                        "description": "List of tags"
                    }
                }
            }
        },
        "/action/status_show": {
            "get": {
                "summary": "Get the site status",
                "description": "Returns the site status",
                "tags": [
                    "action"
                ],
                "responses": {
                    "200": {
                        "description": "Returns the site status, version, installed extensions"
                    }
                }
            }
        },
        "/action/package_list": {
            "get": {
                "summary": "Get a list of all packages (datasets)",
                "description": "Returns the names of all indexed packages (datasets)",
                "parameters": [
                    {
                        "name": "offset",
                        "in": "query",
                        "description": "The offset (index) of the first package to return",
                        "schema": {
                            "type": "integer",
                            "default": 0
                        }
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "description": "The number of packages to be returned per page",
                        "schema": {
                            "type": "integer",
                            "default": 100
                        }
                    }
                ],
                "tags": [
                    "action"
                ],
                "responses": {
                    "200": {
                        "description": "List of packages"
                    }
                }
            }
        },
        "/action/package_search": {
            "get": {
                "summary": "Find packages (datasets) matching query terms",
                "description": "Searches for packages (datasets) matching the specified query terms",
                "parameters": [
                    {
                        "name": "q",
                        "in": "query",
                        "description": "A query string",
                        "schema": {
                            "type": "string",
                            "default": "\"Okanagan Lake\""
                        }
                    }
                ],
                "tags": [
                    "action"
                ],
                "responses": {
                    "200": {
                        "description": "List of packages"
                    }
                }
            }
        },
        "/action/package_show": {
            "get": {
                "summary": "Get metadata about one specific package (dataset)",
                "description": "Returns metadata about the package (dataset) corresponding to the specified unique name",
                "parameters": [
                    {
                        "name": "id",
                        "in": "query",
                        "description": "The package name",
                        "schema": {
                            "type": "string",
                            "default": "grizzly-bear-population-units"
                        }
                    }
                ],
                "tags": [
                    "action"
                ],
                "responses": {
                    "200": {
                        "description": "A package metadata object"
                    }
                }
            }
        },
        "/action/package_activity_list": {
            "get": {
                "summary": "Get the activity stream of a package (dataset)",
                "description": "Returns a package's activity stream",
                "parameters": [
                    {
                        "name": "id",
                        "in": "query",
                        "description": "The id or name of the package",
                        "schema": {
                            "type": "string",
                            "default": "grizzly-bear-population-units"
                        }
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "description": "Where to start getting activity items from",
                        "schema": {
                            "type": "integer",
                            "default": 0
                        }
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "description": "The maximum number of activities to return",
                        "schema": {
                            "type": "integer",
                            "default": 31
                        }
                    }
                ],
                "tags": [
                    "action"
                ],
                "responses": {
                    "200": {
                        "description": "List of activities"
                    }
                }
            }
        },
        "/action/package_activity_list_html": {
            "get": {
                "summary": "Get the activity stream of a package (dataset), HTML format",
                "description": "The activity stream is rendered as a snippet of HTML meant to be included in an HTML pag, i.e it doesn't have any header or footer.",
                "parameters": [
                    {
                        "name": "id",
                        "in": "query",
                        "description": "The id or name of the package",
                        "schema": {
                            "type": "string",
                            "default": "grizzly-bear-population-units"
                        }
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "description": "Where to start getting activity items from",
                        "schema": {
                            "type": "integer",
                            "default": 0
                        }
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "description": "The maximum number of activities to return",
                        "schema": {
                            "type": "integer",
                            "default": 31
                        }
                    }
                ],
                "tags": [
                    "action"
                ],
                "responses": {
                    "200": {
                        "description": "List of activities rendered as HTML snippet"
                    }
                }
            }
        },
        "/action/package_autocomplete": {
            "get": {
                "summary": "Find packages (datasets) matching a query",
                "description": "Return a list of datasets that match a string",
                "parameters": [
                    {
                        "name": "q",
                        "in": "query",
                        "description": "The string to query",
                        "schema": {
                            "type": "string",
                            "default": "\"Okanagan Lake\""
                        }
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "description": "The maximum number of resource formats to return",
                        "schema": {
                            "type": "integer",
                            "default": 10
                        }
                    }
                ],
                "tags": [
                    "action"
                ],
                "responses": {
                    "200": {
                        "description": "List of datasets that match a string"
                    }
                }
            }
        },
        "/action/package_relationships_list": {
            "get": {
                "summary": "Get package (dataset) relationships",
                "description": "Return a dataset's relationships",
                "parameters": [
                    {
                        "name": "id",
                        "in": "query",
                        "description": "The id or name of the first package",
                        "schema": {
                            "type": "string",
                            "default": "grizzly-bear-population-units"
                        }
                    },
                    {
                        "name": "id2",
                        "in": "query",
                        "description": "The id or name of the second package",
                        "schema": {
                            "type": "string",
                            "default": "important-fossil-areas"
                        }
                    },
                    {
                        "name": "rel",
                        "in": "query",
                        "description": "relationship as string",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "action"
                ],
                "responses": {
                    "200": {
                        "description": "List of dataset relationships"
                    }
                }
            }
        },
        "/action/package_revision_list": {
            "get": {
                "summary": "Get list of revisions for a package (dataset)",
                "description": "Return a dataset's revision as a list of dictionaries",
                "parameters": [
                    {
                        "name": "id",
                        "in": "query",
                        "description": "The id or name of the dataset",
                        "schema": {
                            "type": "string",
                            "default": "grizzly-bear-population-units"
                        }
                    }
                ],
                "tags": [
                    "action"
                ],
                "responses": {
                    "200": {
                        "description": "List of dataset revisions"
                    }
                }
            }
        },
        "/action/organization_activity_list": {
            "get": {
                "summary": "Get the activity stream of an organization",
                "description": "Return an organization's activity stream",
                "parameters": [
                    {
                        "name": "id",
                        "in": "query",
                        "description": "The id or name of the organization",
                        "schema": {
                            "type": "string",
                            "default": "ministry-of-agriculture"
                        }
                    }
                ],
                "tags": [
                    "action"
                ],
                "responses": {
                    "200": {
                        "description": "List of an organization's activities"
                    }
                }
            }
        },
        "/action/organization_activity_list_html": {
            "get": {
                "summary": "Get the activity stream of an organization, HTML format",
                "description": "Return an organization's activity stream as HTML",
                "parameters": [
                    {
                        "name": "id",
                        "in": "query",
                        "description": "The id or name of the organization",
                        "schema": {
                            "type": "string",
                            "default": "ministry-of-agriculture"
                        }
                    }
                ],
                "tags": [
                    "action"
                ],
                "responses": {
                    "200": {
                        "description": "List of an organization's activities in HTML"
                    }
                }
            }
        },
        "/action/organization_follower_count": {
            "get": {
                "summary": "Get number of followers of an organization",
                "description": "Return the number of followers of an organization",
                "parameters": [
                    {
                        "name": "id",
                        "in": "query",
                        "description": "The id or name of the organization",
                        "schema": {
                            "type": "string",
                            "default": "ministry-of-agriculture"
                        }
                    }
                ],
                "tags": [
                    "action"
                ],
                "responses": {
                    "200": {
                        "description": "Count of organization followers"
                    }
                }
            }
        },
        "/action/organization_follower_list": {
            "get": {
                "summary": "Get users following an organization",
                "description": "Return a list of users that are following a given organization",
                "parameters": [
                    {
                        "name": "id",
                        "in": "query",
                        "description": "The id or name of the organization",
                        "schema": {
                            "type": "string",
                            "default": "ministry-of-agriculture"
                        }
                    }
                ],
                "tags": [
                    "action"
                ],
                "responses": {
                    "200": {
                        "description": "List of organization followers"
                    }
                }
            }
        },
        "/action/organization_list_for_user": {
            "get": {
                "summary": "Get organizations that a user has a given permission for",
                "description": "Return the organizations that the user has a given permission for",
                "parameters": [
                    {
                        "name": "permission",
                        "in": "query",
                        "description": "The permission the user has against the returned organization",
                        "schema": {
                            "type": "string",
                            "default": "\"edit_group\""
                        }
                    }
                ],
                "tags": [
                    "action"
                ],
                "responses": {
                    "200": {
                        "description": "List of organizations for given permission"
                    }
                }
            }
        },
        "/action/organization_revision_list": {
            "get": {
                "summary": "Get organization revisions",
                "description": "Return an organization's revisions",
                "parameters": [
                    {
                        "name": "id",
                        "in": "query",
                        "description": "The name or id of the organization",
                        "schema": {
                            "type": "string",
                            "default": "ministry-of-agriculture"
                        }
                    }
                ],
                "tags": [
                    "action"
                ],
                "responses": {
                    "200": {
                        "description": "List of an organization's revisions"
                    }
                }
            }
        },
        "/action/organization_show": {
            "get": {
                "summary": "Get details of a specific organization",
                "description": "Return the details of an organization",
                "parameters": [
                    {
                        "name": "id",
                        "in": "query",
                        "description": "The id or name of the organization",
                        "schema": {
                            "type": "string",
                            "default": "ministry-of-agriculture"
                        }
                    },
                    {
                        "name": "include_datasets",
                        "in": "query",
                        "description": "include a list of the organization's datasets",
                        "schema": {
                            "type": "boolean",
                            "default": true
                        }
                    }
                ],
                "tags": [
                    "action"
                ],
                "responses": {
                    "200": {
                        "description": "List organization details"
                    }
                }
            }
        },
        "/action/organization_list": {
            "get": {
                "summary": "Get names of all organizations",
                "description": "Returns the names of all indexed organizations",
                "parameters": [
                    {
                        "name": "offset",
                        "in": "query",
                        "description": "The offset (index) of the first organizations to return",
                        "schema": {
                            "type": "integer",
                            "default": 0
                        }
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "description": "The number of organizations to be returned per page",
                        "schema": {
                            "type": "integer",
                            "default": 100
                        }
                    }
                ],
                "tags": [
                    "action"
                ],
                "responses": {
                    "200": {
                        "description": "List of organizations"
                    }
                }
            }
        },
        "/action/organization_autocomplete": {
            "get": {
                "summary": "Get names of organizations that match a query string",
                "description": "Return a list of organization names that contain a string",
                "parameters": [
                    {
                        "name": "q",
                        "in": "query",
                        "description": "The string to search for",
                        "schema": {
                            "type": "string",
                            "default": "ministry"
                        }
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "description": "The maximum number of organizations to return (optional)",
                        "schema": {
                            "type": "integer",
                            "default": 20
                        }
                    }
                ],
                "tags": [
                    "action"
                ],
                "responses": {
                    "200": {
                        "description": "List of organizations"
                    }
                }
            }
        },
        "/action/resource_search": {
            "get": {
                "summary": "Find resources",
                "description": "Returns a dictionary with two fields ``count`` and ``results``.             The ``count`` field contains the total number of Resources                found without the limit or query parameters having an effect.             The ``results`` field is a list of dictized Resource objects.             The query parameter is a required field. It is a string in                the form ``{field}:{term}`` or a list of strings, each of the             same form. Within each string, ``{field}`` is a field or extra             field on the Resource domain object.",
                "parameters": [
                    {
                        "name": "query",
                        "in": "query",
                        "description": "The search criteria string or list of strings of the form ``{field}:{term1}``",
                        "schema": {
                            "type": "string",
                            "default": "format:csv"
                        }
                    },
                    {
                        "name": "fields",
                        "in": "query",
                        "description": "Depreciated",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "order_by",
                        "in": "query",
                        "description": "A field on the resource model that orders the results",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "description": "Apply an offset to the query",
                        "schema": {
                            "type": "integer",
                            "default": 0
                        }
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "description": "Apply a limit to the query",
                        "schema": {
                            "type": "integer",
                            "default": 0
                        }
                    }
                ],
                "tags": [
                    "action"
                ],
                "responses": {
                    "200": {
                        "description": "Search for resources"
                    }
                }
            }
        },
        "/action/resource_show": {
            "get": {
                "summary": "Get metadata for a specific resource",
                "description": "Return the metadata of a resource",
                "parameters": [
                    {
                        "name": "id",
                        "in": "query",
                        "description": "The id of the resource",
                        "schema": {
                            "type": "string",
                            "default": "e6c8bb1d-3726-418b-9b7e-1d97a9bbb817"
                        }
                    },
                    {
                        "name": "include_tracking",
                        "in": "query",
                        "description": "Add tracking information to dataset",
                        "schema": {
                            "type": "boolean",
                            "default": false
                        }
                    }
                ],
                "tags": [
                    "action"
                ],
                "responses": {
                    "200": {
                        "description": "Return metadata of a resource"
                    }
                }
            }
        },
        "/action/related_list": {
            "get": {
                "summary": "Gets items related to a package (dataset)",
                "description": "Returns a dataset's related items.",
                "parameters": [
                    {
                        "name": "id",
                        "in": "query",
                        "description": "id or name of the dataset (optional)",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "dataset",
                        "in": "query",
                        "description": "Dataset dictionary of the dataset (optional)",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "type_filter",
                        "in": "query",
                        "description": "The type of related item to show (optional)",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "sort",
                        "in": "query",
                        "description": "The order to sort the related items in",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "featured",
                        "in": "query",
                        "description": "whether or not to restrict the results to only featured items",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "action"
                ],
                "responses": {
                    "200": {
                        "description": "Search for related items"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {},
        "securitySchemes": {
            "githubAccessCode": {
                "type": "oauth2",
                "flows": {
                    "authorizationCode": {
                        "authorizationUrl": "https://github.com/login/oauth/authorize",
                        "tokenUrl": "https://github.com/login/oauth/access_token",
                        "scopes": {
                            "user": "Grants read/write access to profile info only. Note that this scope includes user:email and user:follow.",
                            "user:email": "Grants read access to a user's email addresses.",
                            "user:follow": "Grants access to follow or unfollow other users.",
                            "public_repo": "Grants read/write access to code, commit statuses, and deployment statuses for public repositories and organizations.",
                            "repo": "Grants read/write access to code, commit statuses, and deployment statuses for public and private repositories and organizations.",
                            "repo_deployment": "Grants access to deployment statuses for public and private repositories. This scope is only necessary to grant other users or services access to deployment statuses, without granting access to the code.",
                            "repo:status": "Grants read/write access to public and private repository commit statuses. This scope is only necessary to grant other users or services access to private repository commit statuses without granting access to the code.",
                            "delete_repo": "Grants access to delete adminable repositories.",
                            "notifications": "Grants read access to a user's notifications. repo also provides this access.",
                            "gist": "Grants write access to gists.",
                            "read:repo_hook": "Grants read and ping access to hooks in public or private repositories.",
                            "write:repo_hook": "Grants read, write, and ping access to hooks in public or private repositories.",
                            "admin:repo_hook": "Grants read, write, ping, and delete access to hooks in public or private repositories.",
                            "read:org": "Read-only access to organization, teams, and membership.",
                            "write:org": "Publicize and unpublicize organization membership.",
                            "admin:org": "Fully manage organization, teams, and memberships.",
                            "read:public_key": "List and view details for public keys.",
                            "write:public_key": "Create, list, and view details for public keys.",
                            "admin:public_key": "Fully manage public keys."
                        }
                    }
  

# --- truncated at 32 KB (32 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/british-columbia-data-catalogue/refs/heads/main/openapi/british-columbia-data-catalogue-bcdc-api-openapi.json