Obscura

Open Data Catalog

Dataset listings harvested from government open-data portals running CKAN.

open_data_catalog — the dataset name to pass to the Obscura API.

Category Web attention Columns 12 Refresh Weekly Point-in-time available_date

What one row means

One CKAN package-listing on a government open-data portal (Data.NSW or Queensland Open Data) as returned by that portal's `package_search` API — a discovery-layer index row (title, publishing org, resource count, last-modified) describing a dataset LISTING, not the underlying data itself.

One row per (portal, dataset_id).

Point-in-time availability

Every Obscura dataset carries available_date: the calendar day the publisher made the row available, day-of, with no session rounding. It is the one column a backtest filters on, and it means the same thing on every dataset in the catalog.

For open_data_catalog: published: available_date = the UTC date-part of event_time (CKAN's metadata_modified for the listing).

Refresh cadence

Obscura refreshes open_data_catalog weekly — the most frequent scheduled job that re-collects or re-exports it. This is Obscura's own pipeline cadence, not the upstream publisher's release schedule; when a row became public is recorded per row in available_date.

Schema — 12 columns

The full public column list for open_data_catalog, with the meaning of every field. The same schema is served unauthenticated at https://api.obscura.trade/v1/catalog/open_data_catalog.

ColumnTypeDescription
portaltext · not nullPortal discriminator: `nsw` (data.nsw.gov.au) or `qld` (data.qld.gov.au); first half of the composite primary key.
dataset_idtext · not nullCKAN package 'name' slug, the portal's own permanent identifier for the listing; second half of the composite primary key.
titletext · not nullHuman-readable dataset title; falls back to the dataset_id slug when CKAN omits a title.
organizationtextPublishing agency/department display name; NULL when CKAN returns no organization object.
num_resourcesinteger · not nullCount of downloadable resources (files/API endpoints/formats) attached to the CKAN package.
num_tagsinteger · not nullCount of searchable topic tags on the package (raw `num_tags`); the array of tag names itself is deferred to a child table.
event_timetimestamp with time zoneCKAN's metadata_modified timestamp for the package — the moment the portal itself last edited/republished this listing.
metadata_createdtimestamp with time zoneCKAN's metadata_created timestamp — the moment this listing was first published on the portal (dataset age / first-appearance; distinct from metadata_modified/event_time). Raw `metadata_created`.
notestextDataset description/abstract — the main free-text summary (rich HTML). Raw `notes`.
license_idtextLicense identifier for reuse/openness filtering, e.g. `cc-by`, `notspecified`. Raw `license_id`.
license_titletextHuman-readable license title, e.g. "License Not Specified". Raw `license_title`.
available_datedatePUBLIC-availability date: STORED generated column = UTC date-part of event_time — the day the catalog listing last changed on the portal. DB-generated, read-only.

Access open_data_catalog

Two delivery paths, one identifier. Both require an Obscura account and an active subscription; the catalog entry and the schema above are public.

import obscura

client = obscura.Client("obs_live_…")

df = client.query(
    dataset="open_data_catalog",
    start="2024-01-01",
)

Create a free account Browse all 95 datasets

Frequently asked questions

What is in the open_data_catalog dataset?

Dataset listings harvested from government open-data portals running CKAN. One CKAN package-listing on a government open-data portal (Data.NSW or Queensland Open Data) as returned by that portal's `package_search` API — a discovery-layer index row (title, publishing org, resource count, last-modified) describing a dataset LISTING, not the underlying data itself.

How do I avoid look-ahead bias with open_data_catalog?

Filter on open_data_catalog.available_date, the day the publisher made the row public. For this dataset that date is derived as follows — published: available_date = the UTC date-part of event_time (CKAN's metadata_modified for the listing). A query of the form WHERE available_date <= '<as-of date>' never sees a row before it existed.

In what formats can I get open_data_catalog?

As a Parquet bulk export (POST https://api.obscura.trade/v1/download) or as JSON from the typed query API (POST https://api.obscura.trade/v1/query), both with dataset="open_data_catalog". The column schema is public at https://api.obscura.trade/v1/catalog/open_data_catalog.

How often is open_data_catalog updated?

Obscura refreshes open_data_catalog on a weekly schedule — that is the most frequent scheduled job that re-collects or re-exports the table. It is Obscura's own pipeline cadence, not the upstream publisher's release schedule; when the publisher makes a row available is described by the availability rule above, and is recorded per row in available_date.

Related datasets

GDELT EventsGeopolitical and economic events extracted from worldwide news by the GDELT project, coded by actor, action and location… GitHub ReposActivity on tracked GitHub repositories: stars, forks and commit frequency. Google TrendsGoogle search interest over time for the full US equity universe by ticker, back two decades. Scores are 0-100 rescaled … Hacker News StoriesFront-page stories from Hacker News. Web PopularityDaily website popularity rank of each public company's domain, from four independent top-sites lists (Majestic Million, … Wikipedia PageviewsDaily Wikipedia pageviews for a universe of public companies, by ticker. Wikipedia RevisionsEdit activity on tracked Wikipedia articles. Wikipedia TopWikipedia's most-viewed articles for each day.