Superclean Places
Pricing
from $0.35 / 1,000 results
Superclean Places
Clean messy location data from lead exports. Normalizes city, state, and country fields. Fixes abbreviations (NYC → New York, Calif → CA), standardizes formats, and parses combined fields. Works with US states, Canadian provinces, and international locations.
Pricing
from $0.35 / 1,000 results
Rating
0.0
(0)
Developer

Superlative
Actor stats
2
Bookmarked
3
Total users
2
Monthly active users
11 days ago
Last modified
Categories
Share
Clean messy location data from lead exports, CRM records, and web scraping.
What does Superclean Places do?
Superclean Places normalizes location strings into consistent, standardized formats using rule-based parsing (no AI/LLM required).
- Standardizes abbreviations — "NYC" becomes "New York", "Calif" becomes "CA"
- Fixes casing — "NEW YORK, NY" becomes "New York, NY"
- Parses combined fields — "San Francisco, California, USA" extracts city, state, country
- Normalizes countries — "USA", "United States", "America" all become "US"
- Handles Canadian provinces — "Ontario" becomes "ON", "British Columbia" becomes "BC"
- Instant API mode — Sub-second single-location cleaning via Standby HTTP server
What else can Superclean do?
If you're cleaning lead data, you might also need:
- Superclean Company Names — Clean messy company names for cold emails and CRM
- Superclean Person Names — Clean person names for cold email personalization
- Superclean Job Titles — Normalize job titles for lead scoring and personalization
- Superclean Product Names — Clean product names from e-commerce data
- Superclean URLs — Clean and normalize URLs from lead data
Why clean location data?
Your lead data comes from many sources with inconsistent formats:
- "San Francisco, CA"
- "san francisco california"
- "SF, Calif., USA"
- "SAN FRANCISCO, CALIFORNIA, UNITED STATES"
Clean data means better:
- Segmentation — Group leads by metro area or region
- Routing — Assign leads to the right sales territory
- Personalization — Reference locations correctly in outreach
- Deduplication — Match records across different sources
How to use Superclean Places
- Paste your location strings into the input field (one per line)
- Select your output style (Short, Long, or Components)
- Click Start and download your cleaned results
Output styles
| Style | Best for | Example Input | Example Output |
|---|---|---|---|
| Short | CRM fields, compact display | San Francisco, California | San Francisco, CA |
| Long | Full formatting, letters | SF, CA | San Francisco, California, United States |
| Components | Programmatic use, parsing | NYC, NY | {"city":"New York","state":"NY","country":"US"} |
Short (default)
Uses standard abbreviations. Omits country when it can be inferred from state.
- "San Francisco, California, USA" → "San Francisco, CA"
- "Toronto, Ontario, Canada" → "Toronto, ON"
- "London, United Kingdom" → "London, GB"
Long
Uses full names for all components.
- "SF, CA" → "San Francisco, California, United States"
- "NYC" → "New York"
- "Toronto, ON" → "Toronto, Ontario, Canada"
Components
Returns structured JSON with each component parsed separately. Useful for programmatic processing.
Standby mode (instant API)
Standby mode keeps a warm container running so you get instant location parsing without cold-start delays. Instead of starting a full Actor run, you make a simple HTTP GET request and get results in milliseconds.
This is ideal for:
- Clay enrichment steps — single-location parsing inline
- Make / n8n HTTP modules — real-time location normalization in workflows
- MCP agents — AI tools that need instant location data
Standby URL
https://superlativetech--superclean-places.apify.actor?token=YOUR_API_TOKEN
Or use a Bearer token in the Authorization header instead of the token query parameter.
Parse a location
$curl "https://superlativetech--superclean-places.apify.actor?token=YOUR_API_TOKEN&input=san+francisco,+ca"
Long format
$curl "https://superlativetech--superclean-places.apify.actor?token=YOUR_API_TOKEN&input=san+francisco,+ca&style=long"
Query parameters
| Parameter | Required | Description |
|---|---|---|
input | Yes | Location string to parse |
style | No | Output format: short (default), long, or components |
Response format
{"id": 1,"input": "san francisco, ca","output": "San Francisco, CA","city": "San Francisco","stateOrProvince": "CA","country": "US","confidence": 0.9}
Error responses
| Code | Cause |
|---|---|
| 400 | Missing input parameter or invalid style |
| 405 | Non-GET request |
| 500 | Unexpected server error |
What gets cleaned?
City abbreviations
- NYC, N.Y.C. → New York
- LA, L.A. → Los Angeles
- SF, S.F. → San Francisco
- Philly → Philadelphia
- Vegas → Las Vegas
State variations
- California, Calif, Calif., Cal → CA
- Massachusetts, Mass, Mass. → MA
- Texas, Tex, Tex. → TX
- Pennsylvania, Penn, Penna → PA
Country variations
- USA, U.S.A., United States, America → US
- UK, U.K., United Kingdom, Britain, England → GB
- Canada, Can → CA
Casing
- ALL CAPS → Title Case
- all lowercase → Title Case
How many locations can you clean?
There's no limit. Process as many locations as you need — from a handful to hundreds of thousands. The Actor scales automatically.
For best performance, batch your requests. Processing 1,000 locations at once is more efficient than 10 separate runs of 100 locations each.
How much will it cost you?
This Actor uses pay-per-result pricing at half the cost of LLM-based actors (rule-based normalization with no external API calls):
| Locations | Cost |
|---|---|
| 1,000 | $0.50 |
| 10,000 | $5.00 |
| 100,000 | $50.00 |
Volume discounts apply automatically:
- Bronze (100+ items): $0.00045/location
- Silver (1,000+ items): $0.0004/location
- Gold (10,000+ items): $0.00035/location
Input parameters
| Parameter | Type | Description |
|---|---|---|
items | array | List of location strings to clean (one per line in the UI, or JSON array) |
item | string | Single location to clean — API shorthand for integration callers (Clay, Make, n8n). If both item and items are provided, item is prepended to the list |
style | string | Output style: short, long, or components (default: short) |
Input example
{"items": ["San Francisco, CA","NYC","new york city, new york, usa","LA, California","London, UK","toronto ontario canada"],"style": "short"}
items also accepts objects, which is useful for API and MCP integrations:
{"items": [{ "input": "San Francisco, CA" },{ "input": "NYC" }],"style": "short"}
For API and integration callers who want to clean a single value without wrapping it in an array, use the item shorthand:
{"item": "NYC","style": "short"}
During the Actor run
The Actor processes locations quickly using rule-based parsing. You'll see progress updates as items are processed.
If you provide invalid input (e.g., an empty list), the Actor will stop immediately with an error message explaining what went wrong.
Results are available in real-time — you can start downloading cleaned locations before the full run completes.
Output format
Results are saved to the default dataset. Each cleaned location is a separate item.
You can export results as JSON, CSV, Excel, or other formats directly from Apify Console. Or access them programmatically via the API.
Output example
[{"id": 1,"input": "San Francisco, CA","output": "San Francisco, CA","city": "San Francisco","stateOrProvince": "CA","country": "US","confidence": 0.85},{"id": 2,"input": "NYC","output": "New York","city": "New York","stateOrProvince": null,"country": null,"confidence": 0.65},{"id": 3,"input": "new york city, new york, usa","output": "New York, NY","city": "New York","stateOrProvince": "NY","country": "US","confidence": 0.85}]
| Field | Description |
|---|---|
id | Row number (1-based, matches Apify's displayed row numbers) |
input | Original location string before cleaning |
output | Cleaned location string |
city | Parsed city name |
stateOrProvince | Parsed state or province code |
country | Parsed country code (ISO 2-letter) |
confidence | Confidence score from 0 to 1 (lower scores may need manual review) |
Confidence scores
Each result includes a confidence score from 0 to 1:
- 0.8+ — High confidence, recognized location with state/country
- 0.6-0.8 — Moderate confidence, partial match or city-only
- < 0.6 — Low confidence, manual review suggested
Confidence is based on how many components (city, state, country) were successfully parsed.
Limitations
- Focuses on US, Canada, and major international locations
- Does not validate addresses against postal databases
- Does not geocode or return coordinates
- For full address validation, consider integrating with Smarty or similar services
Integrations
Superclean Places works with any tool that can call Apify Actors:
- Clay — Add as an enrichment step in your Clay tables
- Make — Use the Apify module to run the Actor
- Zapier — Trigger runs and retrieve results automatically
- n8n — Self-hosted workflow automation
You can also use webhooks to trigger actions when a run completes — for example, send a Slack notification or automatically import results into your CRM.
Using Superclean Places with the Apify API
The Apify API gives you programmatic access to run Actors, retrieve results, and manage datasets.
Node.js:
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });const run = await client.actor('superlativetech/superclean-places').call({items: ['San Francisco, CA', 'NYC', 'toronto ontario canada'],style: 'short'});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Python:
from apify_client import ApifyClientclient = ApifyClient('YOUR_API_TOKEN')run = client.actor('superlativetech/superclean-places').call(run_input={'items': ['San Francisco, CA', 'NYC', 'toronto ontario canada'],'style': 'short'})items = client.dataset(run['defaultDatasetId']).list_items().itemsprint(items)
Check out the Apify API reference for full details, or click the API tab above for more code examples.
Your feedback
We're always improving Superclean Actors. If you have feature requests, find a bug, or need help with a specific use case, please open an issue in the Actor's Issues tab.
When Apify asks to share your run data with us, we encourage you to opt in — it's the fastest way for us to spot edge cases and improve results. Sharing is completely optional (you can toggle it anytime under Account Settings → Privacy), and shared runs are automatically deleted by Apify based on your plan's data retention period. We only use shared data to debug issues and improve this Actor.
Leave a review
If Superclean Places saves you time or improves your lead data, please leave a review. Your feedback helps other users discover the tool and helps us understand what's working well.
Built by Superlative