
Open Data Scraper
hipersoft/ckan-open-data-scraper
Search and export datasets from any CKAN open-data portal (data.gov.au, open.canada.ca and many more). Filter by query, organization and file format. One clean row per dataset: title, description, organization, tags, license and every downloadable resource.
Total users
2Monthly users
1Total runs
64Per dataset scraped
$0.001Last rebuilt
Oct 26, 2026Overview
Search and export datasets from any CKAN-based open-data portal into clean JSON, CSV, Excel or XML. CKAN powers hundreds of national, state and city open-data catalogs — including data.gov.au (Australia) and open.canada.ca (Canada) — and this actor speaks all of them through one uniform interface.
Give it a portal and a search term, and it returns one tidy row per dataset: the title, plain-text description, publishing organization, tags, license and every downloadable resource (file name, format and direct URL) — instead of clicking through the portal one page at a time.
Built for researchers, data journalists, analysts, civic-tech teams and data pipelines that need structured open-government metadata at scale.
What does the Open Data Scraper do?
Pick a portal (a preset like data.gov.au, or the base URL of any CKAN catalog), type a query, optionally filter by organization or file format, and the actor paginates through the catalog and returns clean rows:
- One row per dataset, with its full metadata and resource list.
- Works across many portals with the same output shape, so you can compare or merge catalogs.
- Optional filters to narrow to a single publisher or to datasets that ship a particular file format (CSV, JSON, GeoJSON, XLSX, and so on).
What data can you get?
| Field | Type | Description |
|---|---|---|
id |
string | Portal's unique dataset identifier |
name |
string | Dataset slug (used in its portal URL) |
title |
string | Human-readable dataset title |
notes |
string | Dataset description, cleaned to plain text |
organization |
string | Publishing organization / agency |
tags |
array | Keywords / tags attached to the dataset |
resources |
array | Downloadable files: name, format, url |
numResources |
integer | Number of downloadable resources |
license |
string | Dataset license title or identifier |
metadataModified |
string | Last time the dataset metadata changed |
url |
string | Link to the dataset's page on the portal |
Supported portals
data.gov.au— the Australian Government open-data catalog.open.canada.ca— the Government of Canada open-data catalog.- Any other CKAN portal — type its domain or base URL (for example
catalog.data.gov, or a state / city catalog) into Portal or Custom base URL.
Some portals (for example data.europa.eu) run a different, non-CKAN search interface and are not covered yet. Point the actor at a CKAN catalog, and it will work.
Use cases
- Open-data discovery — find every dataset a government publishes on a topic, with direct download links.
- Data journalism & research — build a searchable index of public datasets and their sources.
- Civic tech & dashboards — feed clean dataset metadata into your own catalogs, maps or apps.
- Monitoring — track when datasets are updated using
metadataModified. - Data engineering — enumerate CSV/GeoJSON resources across a catalog to drive downstream ingestion.
How to use it
- Add the Open Data Scraper to your Apify account and open the input form.
- Choose a Portal — a preset such as
data.gov.au, or paste any CKAN portal's base URL. - Enter a Search query (e.g.
health), or leave it empty to list everything. - Optionally filter by Organization slug or Resource format (e.g.
CSV). - Set Max datasets to cap the export, then Run.
- Export the dataset as JSON, CSV, Excel or XML, or pull it via the Apify API.
Input example
{
"portal": "data.gov.au",
"query": "health",
"format": "CSV",
"maxItems": 100
}
| Field | Type | Description |
|---|---|---|
portal |
string | Preset key (data.gov.au, open.canada.ca) or a CKAN portal domain / base URL. |
baseUrl |
string | Optional custom CKAN base URL, used instead of portal when set. |
query |
string | Free-text search term. Empty lists all datasets. |
organization |
string | Optional organization slug filter. |
format |
string | Optional resource file-format filter (e.g. CSV). |
maxItems |
integer | Maximum number of datasets to return. |
Output example
{
"id": "a9372b1f-e5c0-4d03-9714-0dc707343f2f",
"name": "mental-health-data",
"title": "Mental Health Data",
"notes": "Time series state level datasets showing important indicators regarding mental health.",
"organization": "SA Health",
"tags": ["mental health"],
"resources": [
{ "name": "Readmissions", "format": "CSV", "url": "https://data.gov.au/.../readmissions.csv" }
],
"numResources": 3,
"license": "Creative Commons Attribution 3.0 Australia",
"metadataModified": "2025-06-25T14:55:56.217841",
"url": "https://data.gov.au/data/dataset/mental-health-data"
}
FAQ
What is CKAN? CKAN is the open-source data-management system that runs most government open-data portals worldwide. Because every CKAN portal shares the same catalog structure, one actor can search across many of them and return a consistent output.
Which portals work?
data.gov.au and open.canada.ca are built in as presets, and you can point the actor at any other CKAN catalog by entering its domain or base URL.
How many datasets can I get? As many as your search returns. Use Max datasets to cap a run and keep it cheap.
How does billing work? You pay per dataset you get, so small, tightly filtered runs stay inexpensive.
What export formats are supported? JSON, CSV, Excel and XML, plus direct access via the Apify API.
Can I use this with n8n? Yes. Run the Open Data Scraper from n8n with the Apify node — trigger a run, wait for it to finish, and read the dataset items straight into your workflow to build catalogs, enrich records or drive alerts. It also works with Make, Zapier and the Apify API.
Can I connect this to other tools? The Open Data Scraper connects with almost any cloud service or web app through integrations on the Apify platform — Make, Zapier, Slack, Google Drive and many more, plus webhooks to trigger an action whenever a run finishes.
Is this only public data? Yes. It returns only openly published open-government dataset metadata. You are responsible for compliance with each portal's terms and the licence of each dataset.
Notes
Original clean-room implementation. Not affiliated with any government or data portal. Dataset metadata is published by the respective portals under their own open licences; cite the original source where required.
Input
| Field | Type | Description |
|---|---|---|
portalPortal | string | Which open-data portal to search. Pick a preset (data.gov.au = Australia, open.canada.ca = Canada) or type any CKAN portal's base URL / domain, e.g. "catalog.data.gov" or "https://data.overheid.nl". Leave the Base URL field empty to use this value. |
baseUrlCustom base URL (optional) | string | Optional. The base URL of a CKAN portal, used instead of Portal when set. This is the address the API sits on, e.g. "https://open.canada.ca/data/en" or "https://catalog.data.gov". You can even paste a full package_search URL; the actor trims it back to the bas |
querySearch query | string | Free-text search across dataset titles, descriptions and tags, e.g. "health", "transport budget" or "air quality". Leave empty to list all datasets on the portal (newest matches first). |
organizationOrganization filter | string | Optional. Restrict results to a single publishing organization, using its CKAN organization slug (the value seen in the dataset's organization URL), e.g. "sa-health-south-australia-government". |
formatResource format filter | string | Optional. Only return datasets that contain at least one resource in this file format, e.g. "CSV", "JSON", "GeoJSON", "XLSX" or "PDF". |
maxItemsMax datasets | integer | Maximum number of datasets to return. Keep it low to keep runs fast and cheap; raise it to pull a whole catalog. Default: 100 |
API
curl -X POST "https://api.apify.com/v2/acts/hipersoft~ckan-open-data-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"portal": "data.gov.au",
"baseUrl": "https://catalog.data.gov",
"query": "health",
"organization": "sa-health-south-australia-government",
"format": "CSV",
"maxItems": 100
}'from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("hipersoft/ckan-open-data-scraper").call(run_input={
"portal": "data.gov.au",
"baseUrl": "https://catalog.data.gov",
"query": "health",
"organization": "sa-health-south-australia-government",
"format": "CSV",
"maxItems": 100
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item)import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('hipersoft/ckan-open-data-scraper').call({
"portal": "data.gov.au",
"baseUrl": "https://catalog.data.gov",
"query": "health",
"organization": "sa-health-south-australia-government",
"format": "CSV",
"maxItems": 100
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);Pricing
| Event | Price | Paid plans from |
|---|---|---|
| Dataset Scraped Charged per dataset scraped. | $0.001 | $0.0005 |
You pay only for what the run returns. Set a maximum cost per run and it stops cleanly at that limit.
Related scrapers
Europe PMC Scraper
Bulk-scrape life-science and biomedical literature from Europe PMC (40M+ records: PubMed, PMC, preprints, patents): title, abstract, authors, journal, year, DOI, PMID/PMCID, citation count, MeSH terms, open-access flag and full-text/PDF links. Thousands per run. No setup.
325 runs · 5 users · $0.001 / article scrapedarXiv Papers Scraper
Search and extract arXiv papers: title, abstract, authors, categories, published/updated dates, DOI, journal reference, and direct PDF links. Filter by category and sort by newest, recently updated or relevance. Fetch by arXiv ID too. For research, lit reviews and AI/ML monitoring. No setup.
140 runs · 2 users · $0.0025 / paper scrapedLetterboxd Scraper
Scrape Letterboxd films with ratings, rating counts, genres, director, cast, runtime and synopsis. Feed it film pages, a user's films/watchlist/diary, any list URL, or browse pages. For film data, recommendations and research.
139 runs · 7 users · $0.0042 / film scrapedOpenLibrary Book Scraper
Search millions of books on OpenLibrary by keyword, author, subject or ISBN and get title, authors, publisher, year, subjects, ISBNs, edition count, ratings, page count and cover. Clean, no setup.
124 runs · 5 users · $0.002 / book scrapedSemantic Scholar Scraper
Bulk-scrape academic papers from Semantic Scholar's 200M+ corpus: title, abstract, AI TLDR summary, authors, venue, year, citation & influential-citation counts, fields of study, DOI/PubMed/arXiv IDs and open-access PDF links. Filter by year, field and citations. Thousands per run. No setup.
123 runs · 7 users · $0.001 / paper scrapedWikipedia Scraper
Search Wikipedia or look up exact articles and get the full plain-text content, summary, categories, image, Wikidata ID and monthly pageview trends. Any language. Great for research, RAG and AI datasets. No setup.
121 runs · 1 users · $0.001 / article scrapedSend the site and the fields. We build it and you get it first.