ParseForge Scrapers

Colombia Open Data Scraper

parseforge/colombia-datos-gov-co-scraper

BusinessOtherEducation

Scrapes any public dataset from datos.gov.co by its resource ID. Returns every matching row as a flat record with optional exact-match field filters and custom sort order.

Run this scraper See the API call
Total users
1
Monthly active
0
Total runs
105
Bookmarked
0
Rating
Not rated yet
Last modified
12 days ago

Overview

ParseForge

Colombia Open Data Scraper

Scrape any public dataset from datos.gov.co by its resource ID, with optional field filters and sort order. Returns every matching row as a flat JSON, CSV, Excel, or XML record. No API key or registration required.

Colombia's official open data portal, datos.gov.co, hosts thousands of public datasets on health, demographics, economy, and more, but downloading and filtering them manually is slow. This Actor reads any dataset directly from the Socrata API, applies your exact-match filters and sort order, and delivers clean, structured rows. It works for COVID-19 case data, government contracts, census tables, and any other resource on the portal.

Who uses it What they scrape Colombia Open Data for
Data journalists Pull the latest COVID-19 or crime records for a story with exact department and date filters.
Public health researchers Monitor disease surveillance datasets across Colombian departments over time.
Economists and analysts Extract government contract or budget data for spending pattern analysis.
NGOs and civic tech teams Download demographic or education datasets to build public dashboards.

What it does

This Actor collects all rows from a specified dataset on datos.gov.co and returns each row as a flat record.

  • ๐Ÿ” Exact-match filters: Pass a JSON object with field-value pairs to keep only the rows you need, like departamento_nom or sexo.
  • ๐Ÿ“Š Custom sort order: Sort results by any field ascending or descending, for example by report date to get the latest records first.
  • ๐Ÿ“ฆ Bulk export: Pull up to a million rows per run and export them as JSON, CSV, Excel, or XML.

Results export to CSV, JSON, Excel, or XML, or straight from the API.

What you can do with Colombia Open Data data

๐Ÿฆ  Monitor COVID-19 cases by department.

A public health analyst runs the Actor daily with resource ID gt2j-8ykr, filters to a single departamento_nom, and sorts by fecha_reporte_web DESC to feed a departmental dashboard.

๐Ÿ“ฐ Build a data story on government spending.

A journalist pulls the SECOP procurement dataset, filters by a specific entidad and year, and exports the rows to CSV for analysis in a spreadsheet.

๐Ÿ“ˆ Track demographic indicators for a region.

An NGO researcher extracts the latest census or education dataset, filters to a municipio, and loads the JSON into a Python notebook for trend charts.

๐Ÿ—ณ๏ธ Audit election results data.

A civic tech team scrapes the full electoral results dataset, filters by departamento and municipio, and cross-checks the numbers against official reports.

Why choose this scraper

What you get
No API key Reads the public Socrata endpoint directly, no registration or token needed.
Fixed schema Every run returns the same flat structure, ready for databases and spreadsheets.
Full dataset access Retrieves all rows matching your filters, not a preview or first page.

How it compares

No other Store actor targets Colombia Open Data the same way, so the honest comparison is with the alternatives teams actually weigh.

Colombia Open Data Scraper Build it in-house By hand
Setup Run it now, zero config Days of engineering None, but hours per pull
When Colombia Open Data changes Maintained for you You fix it You re-learn the page
Proxies, retries, anti-bot Built in Your problem Browser only
Output Fixed JSON schema, CSV/Excel export Whatever you build Copy-paste
Cost Pay per result Engineering time Analyst hours

Configure the run

Drive the Actor with a resource ID from any datos.gov.co dataset URL, then narrow results with exact-match field filters and a custom sort order. The Input tab lists every parameter.

A first run with the defaults:

{
 "maxItems": 10,
 "resourceId": "gt2j-8ykr"
}

A larger pull:

{
 "maxItems": 200,
 "resourceId": "gt2j-8ykr"
}

Pricing

Pay-per-result: $0.01867 per result collected. You pay only for the results written to your dataset.

Results collected Approximate cost
100 results $1.87
1,000 results $18.67
10,000 results $186.70

New Apify accounts start with $5 in free credit.

Free users

Free-plan runs return up to 10 results as a preview. Upgrade your Apify plan to collect up to 1,000,000 results per run.

Run it

  1. Create a free Apify account with $5 in credit.
  2. Open the Colombia Open Data Scraper.
  3. Set your inputs and any filters, then click Start.
  4. Export the results as CSV, Excel, JSON, or XML from the Dataset tab.

Run it programmatically through the Apify API (run-sync-get-dataset-items) or the ApifyClient for JavaScript and Python.

Use with AI agents (MCP)

Give an AI agent live access to Colombia Open Data through the Model Context Protocol. Add the Actor to Claude, Cursor, or any MCP client:

claude mcp add --transport http apify "https://mcp.apify.com?tools=parseforge/colombia-datos-gov-co-scraper"

Then prompt it in plain language to run the scraper and read back the results.

Troubleshooting

Why am I getting no results?

Check that your resource ID is correct and that the dataset is still published on datos.gov.co. Also verify your filters JSON: field names are case-sensitive and must match the dataset columns exactly. Try running without filters first to confirm the dataset returns data.

The Actor fails with an error about the resource ID.

Make sure you are using the 4x4 character resource ID, not the full dataset name or URL. The ID appears in the dataset URL on datos.gov.co, for example gt2j-8ykr. If the dataset was removed or made private, the Actor will fail.

My filters are not working as expected.

Filters perform exact matches only. Check that your JSON is valid and that the field names and values match the dataset exactly, including accents and capitalization. Use the dataset's API preview on datos.gov.co to see the correct field names.

The run is slow or times out.

Large datasets with many rows can take time. Reduce maxItems or add filters to narrow the result set. If the dataset has millions of rows, consider breaking the work into multiple runs with different filter values.

I get fewer rows than expected.

The Socrata API may have a default row limit. Increase maxItems to a higher number. Also check that your filters are not too restrictive and that the dataset contains that many rows.

FAQ

Question Answer
Where do I find the resource ID for a dataset? Open the dataset page on datos.gov.co and look at the URL. The resource ID is the 4x4 character code, for example gt2j-8ykr in the COVID-19 cases dataset. You can also find it by clicking the 'API' button on the dataset page.
Can I scrape more than one dataset in a single run? No, each run targets one resource ID. To scrape multiple datasets, run the Actor multiple times with different resource IDs, or use an Apify workflow to chain runs.
How do I write the filters JSON? Pass a JSON object where each key is a field name and each value is the exact value to match. For example, {"departamento_nom":"BOGOTA","sexo":"F"} returns only rows where the department is Bogota and sex is female. Field names must match the dataset's column names exactly.
What format does the sort order use? Write the field name followed by ASC or DESC, for example 'fecha_reporte_web DESC' to get the newest rows first. The field name must exist in the dataset.
Is there a limit on how many rows I can get? Free Apify users are limited to 10 items as a preview. Paid users can set maxItems up to 1,000,000 rows per run.
Does this Actor work with all datasets on datos.gov.co? It works with any dataset that exposes a Socrata API endpoint, which covers the vast majority of datasets on the portal. If a dataset is only available as a file download, it will not work.
Do I need a Colombian government account or API key? No. The Actor reads the public Socrata API directly, so no registration, API key, or authentication is required.
Can I filter by date ranges? The filters object supports exact-match only. For date ranges, you can sort by date and use maxItems to limit the result set, or filter the exported data in your own analysis tool.
What export formats are available? You can export your results as JSON, CSV, Excel, or XML from the Apify dataset tab after the run completes.
How often is the data updated? The Actor reads live data from the Socrata API each time it runs, so you always get the latest records available on datos.gov.co.

Related actors

Browse the full ParseForge collection for more scrapers.

๐Ÿ†˜ Need help? Email parseforge@protonmail.com with your run ID, your input, and what you expected.

โš ๏ธ Disclaimer. This Actor is unofficial and is not affiliated with, endorsed by, or sponsored by Gobierno de Colombia. It collects only publicly available data. You are responsible for using the collected data in compliance with the source's terms of service and applicable data-protection laws, including GDPR, CCPA, and PIPL. Do not use it to collect personal data unlawfully.

Input

FieldTypeWhat it doesDefault
maxItems integer Free users: Limited to 10 items (preview). Paid users: Optional, max 1,000,000 10
resourceId required string Dataset identifier from datos.gov.co (the 4x4 character code in the dataset URL). Example: gt2j-8ykr (COVID-19 cases Colombia). gt2j-8ykr
filters object Exact-match filters as a JSON object. Example: {"departamento_nom":"BOGOTA","sexo":"F"}. not set
sortOrder string Sort specification. Format: 'field_name ASC' or 'field_name DESC'. Example: 'fecha_reporte_web DESC'. not set

Pricing

from $14.00 per 1,000 results

Charged forWhat it isPrice each
Result Item Charged once per result collected. $0.014 to $0.01867

Tiered: the lower figure is the price on a higher Apify plan. Billing and the free credit live on Apify.

API

One POST returns the dataset directly. Same shape for every scraper in the library, so swapping the slug is the only change.

POST ยท run and get results
curl -X POST "https://api.apify.com/v2/acts/parseforge~colombia-datos-gov-co-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "helloWorld": 123
  }'

Examples

Input that runs as-is.

input.json
{
  "helloWorld": 123
}

Reviews

No reviews yet. Be the first.

Issues

We build and maintain this scraper, so a problem with it comes to us. Report it on the Apify listing and the thread stays attached to the scraper where the next person can find it: open an issue.

Broken and urgent, or you would rather not post in public? Write to parseforge@protonmail.com and it reaches the people who wrote it.

Related scrapers

Run Colombia Open Data Scraper on Apify All scrapers