ParseForge Scrapers

Postcodes.io UK Postcode Scraper

parseforge/postcodes-io-uk-scraper

AutomationOther

Scrapes UK postcode data from Postcodes.io. Input a list of postcodes or leave empty for a random sample. Returns one row per postcode with coordinates and administrative areas.

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

Overview

ParseForge

Postcodes.io UK Postcode Scraper

Scrape UK postcode data from Postcodes.io, the free open-data API, with no key or login. Get latitude, longitude, administrative areas, and more for any list of postcodes, or pull a random sample. Export to CSV, JSON, Excel, or XML.

Postcodes.io is the free, open-data UK postcode API, but calling it yourself means handling HTTP requests, rate limits, and pagination. This Actor wraps the API into a simple input: paste a list of postcodes or leave it empty for a random sample, and get back one flat row per postcode with its coordinates, ward, district, and other geographies. No API key, no registration, no code.

Who uses it What they scrape Postcodes.io for
Market researchers Mapping customer postcodes to regions for demographic analysis
Logistics planners Geocoding delivery postcodes to optimize routes
Data analysts Enriching CRM records with accurate postcode geography
Real estate professionals Checking postcode boundaries for property listings
App developers Testing postcode validation and lookup features

What it does

This Actor collects UK postcode data from Postcodes.io and returns each postcode as a flat row with its coordinates and administrative areas.

  • πŸ“ Bulk lookup: paste up to a million postcodes and get one row per postcode.
  • 🎲 Random sample: leave the input empty and the Actor fetches random postcodes from the API.
  • πŸ—ΊοΈ Geocoding: each row includes latitude and longitude for mapping.
  • πŸ›οΈ Administrative areas: returns ward, district, county, and other boundaries.
  • πŸ“¦ Flat output: every postcode becomes one row in CSV, JSON, Excel, or XML.

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

What you can do with Postcodes.io data

πŸ“ Geocode a customer list.

A logistics planner pastes thousands of delivery postcodes and gets coordinates to plot on a map and optimize routes.

πŸ—ΊοΈ Enrich CRM records.

A data analyst runs a list of customer postcodes to add ward, district, and county fields for regional reporting.

🎲 Generate test data.

An app developer leaves the input empty to fetch random postcodes and validate a postcode lookup feature.

πŸ›οΈ Check boundaries.

A real estate professional verifies which administrative area a property postcode falls into for listings.

Why choose this scraper

What you get
No API key Postcodes.io is open data, so you can start scraping immediately
Bulk and random Look up specific postcodes or pull a random sample for testing
Geocoding included Latitude and longitude come back with every postcode
Flat schema One row per postcode, ready for spreadsheets or databases

How it compares

No other Store actor targets Postcodes.io the same way, so the honest comparison is with the alternatives teams actually weigh.

Postcodes.io UK Postcode Scraper Build it in-house By hand
Setup Run it now, zero config Days of engineering None, but hours per pull
When Postcodes.io 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 from a list of postcodes or leave it empty for a random sample, and set a maximum number of postcodes to collect per run. The Input tab lists every parameter.

A first run with the defaults:

{
  "postcodes": [
    "SW1A 1AA",
    "EC1A 1BB",
    "M32 0JG"
  ],
  "maxItems": 10
}

A larger pull:

{
  "postcodes": [
    "SW1A 1AA",
    "EC1A 1BB",
    "M32 0JG"
  ],
  "maxItems": 200
}

Pricing

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

Results collected Approximate cost
100 results $0.50
1,000 results $5.00
10,000 results $50.00

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 Postcodes.io UK Postcode 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 Postcodes.io 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/postcodes-io-uk-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 you entered valid UK postcodes in the input. If you left the input empty, the Actor should fetch random postcodes, so also check that the maximum postcodes is set to at least 1.

Why did the run stop before reaching my maximum?

Postcodes.io may have rate limits or the random endpoint may return fewer postcodes than requested. Try running again or reduce the maximum.

Why are some postcodes missing from the output?

Invalid or terminated postcodes may not return data. Check the input list for typos or outdated postcodes.

Can I get more fields than what is shown?

The Actor returns all fields provided by the Postcodes.io API for each postcode. If a field is missing, the API may not have data for that postcode.

FAQ

Question Answer
Do I need an API key for Postcodes.io? No. Postcodes.io is a free, open-data API and does not require registration or an API key.
How many postcodes can I scrape in one run? You can set the maximum postcodes field up to 1,000,000 per run. The Actor will stop once it reaches that number.
What if I leave the postcodes input empty? The Actor will fetch a random sample of postcodes from Postcodes.io, up to the maximum you set.
What data comes back for each postcode? Each row includes the postcode, latitude, longitude, and administrative areas like ward, district, and county, plus other fields returned by the API.
Can I export the results to CSV? Yes. The Actor outputs a flat dataset that you can export to CSV, JSON, Excel, or XML from the Apify platform.
Is this the official Postcodes.io API? Yes, this Actor calls the public Postcodes.io API endpoints and returns the data in a structured format.
Does this work for postcodes outside the UK? No. Postcodes.io only covers UK postcodes. For other countries, you would need a different geocoding service.
Can I look up terminated postcodes? Postcodes.io includes some terminated postcodes, but the Actor returns whatever the API provides for your input.
How fast is the scraping? The Actor makes requests to Postcodes.io as quickly as the API allows, and you can control the total number of postcodes per run.
What if a postcode is invalid? The API returns an error for invalid postcodes, and the Actor will skip them or record the error depending on the response.

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 Postcodes.io. 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
postcodes array One or more UK postcodes to look up (for example SW1A 1AA, M32 0JG, OX49 5NU). Leave empty to fetch a random sample of postcodes. ["SW1A 1AA","EC1A 1BB","M32 0JG"]
maxItems integer How many postcodes to collect per run. 10

Pricing

from $4.52 per 1,000 results

Charged forWhat it isPrice each
result Single result in the default dataset. $0.00452 to $0.005

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~postcodes-io-uk-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 Postcodes.io UK Postcode Scraper on Apify All scrapers