Anytime Mailbox Scraper — Virtual Mailbox Locations + CMRA avatar

Anytime Mailbox Scraper — Virtual Mailbox Locations + CMRA

Pricing

from $5.00 / 1,000 results

Go to Apify Store
Anytime Mailbox Scraper — Virtual Mailbox Locations + CMRA

Anytime Mailbox Scraper — Virtual Mailbox Locations + CMRA

Scrape 2,000+ US + international Anytime Mailbox virtual mailbox locations: street address, operator, starting price. Optional Smarty verification adds CMRA, DPV, county and geocode — a ready CMRA registry for fraud detection, KYC, and address intelligence.

Pricing

from $5.00 / 1,000 results

Rating

0.0

(0)

Developer

Richard Feng

Richard Feng

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

2 days ago

Last modified

Share

Anytime Mailbox Scraper — Virtual Mailbox Locations + CMRA Registry

An Apify actor that crawls every Anytime Mailbox virtual mailbox location worldwide (2,077 US locations across 52 states and territories as of June 2026, plus international), extracts each street address, mail-center operator, and starting price, and verifies every address through the Smarty address-verification APIs — producing deliverability metadata (DPV, CMRA, county, geocode, …) per location.

Anytime Mailbox locations are Commercial Mail Receiving Agencies (CMRAs), so dpv_cmra: "Y" is expected for valid US addresses — the dataset is effectively a CMRA registry with deliverability analysis. USPS publishes no public CMRA list, which is what makes one scraped from the largest virtual-mailbox network useful.

💡 Use cases

  • Fraud & KYC address screening — flag sign-ups that use a virtual mailbox instead of a residential address: match against the location list, or use each record's dpv_cmra / pmb_designator fields directly.
  • Compliance & risk — CMRA detection is a standard onboarding check for banks, fintechs, lenders, and insurers.
  • Address intelligence & data products — county, geocode, and deliverability per address, refreshed on a schedule you control.
  • Market & competitor analysis — operator names and starting prices across the whole network, by state and country.
  • Lead generation — every location is an independently operated mail center with a named operator.

🚀 How it works (one actor, three phases)

  1. Crawl — a CheerioCrawler walks the /locations → /l/{country} → /l/{country}/{state} directory. Each state page's location cards already carry the full address (street + city/state/zip), so every location is captured reliably from the listing (≈50 requests for the whole US). With fetchDetails on, each /s/{slug} detail page is also fetched to add the building suite + mail-center operator — the site soft-404s some of these to /locations under load, so they're retried with a fresh session, and the card address always stands.
  2. Incremental enrich — only new or changed addresses are sent to Smarty (US addresses in batches of 100 via the US Street API; international addresses via the International API). Results are cached in a named Key-Value Store that persists across runs, so a weekly refresh never re-bills unchanged addresses (important: the International API costs one credit per address).
  3. Snapshot — every currently-scraped location is joined with its (cached or fresh) verification and pushed to the run's dataset.

If no Smarty credentials are supplied, phase 2 is skipped and records are emitted with verification.status: "skipped-no-keys" — scraping still delivers value on its own.

📋 Input

FieldTypeDefaultNotes
startUrlsarray[{ url: ".../locations" }]Crawl entry points. Narrow to one state (e.g. /l/usa/rhode-island) for cheap runs.
maxRequestsPerCrawlint00 = unlimited (full site).
maxConcurrencyint10Lower if you get blocked.
restrictToCountrystring—Limit the crawl to one country slug, e.g. usa. Pair with a matching startUrl like /l/usa.
fetchDetailsbooltrueAlso fetch /s/ detail pages for the suite + operator. Addresses come from the listings regardless, so turn off for a fast, complete address-only crawl.
searchTermstring—Free-text grep across every location — see Search & filter below.
searchIsRegexboolfalseTreat searchTerm as a case-insensitive regular expression.
searchFieldsarrayallLimit the search to slug / operator / address / country / url / price.
statesarray—US states to keep, as code (CA), name (California) or slug (new-york). Also narrows the crawl.
citiesarray—Exact city names, case-insensitive.
countriesarray—Country names or directory slugs.
zipcodesarray—Full zipcodes, or shorter prefixes (902 → all 902xx).
locationTypeenumanyus, international, or both.
minStartingPrice / maxStartingPriceint—Bounds on the listed starting price in USD.
proxyobjectApify Residential, USResidential US recommended.
enrichWithSmartybooltrueTurn off to scrape addresses only.
forceReenrichboolfalseRe-verify every address, ignoring the cache.
smartyAuthId / smartyAuthTokensecret string—Smarty secret-key pair. Falls back to SMARTY_AUTH_ID / SMARTY_AUTH_TOKEN env vars.
smartyMatchenumenhancedUS Street API match strategy.
usCandidatesint1Max US candidates per address.
intlGeocodebooltrueRequest lat/long for international addresses.
intlConcurrencyint5Parallel international (single-address) lookups.

⚙️ Search & filter

Every criterion is optional, all of them combine with AND, and values within one list combine with OR. Filtering runs before Smarty enrichment, so a narrow query never spends credits on locations you won't receive.

// Every Los Angeles mailbox under $15, run from the site index
{ "startUrls": [{ "url": "https://www.anytimemailbox.com/locations" }],
"states": ["CA"], "cities": ["Los Angeles"], "maxStartingPrice": 15 }
// Grep for an operator, an address fragment, a zipcode — anything
{ "searchTerm": "pigeon post" }
{ "searchTerm": "broadway suite", "searchFields": ["address"] }
{ "searchTerm": "\\b9\\d{4}\\b", "searchIsRegex": true }

searchTerm is the grep: every word must appear somewhere in the location's text — street, suite, city, state, zipcode, mail-center operator, country, slug, URL and starting price — case-insensitive, or as a regular expression with searchIsRegex. Restrict it with searchFields. There is no "location type" field on the site itself; the closest equivalents are locationType (US vs international), countries/states, and — once Smarty enrichment is on — the dpv_cmra flag on each record.

Structured filters also make the run cheaper. states, cities, countries, zipcodes, locationType and the price bounds are decidable from the listing card alone, so a location they reject never has its detail page fetched — and a states filter visits only those state directories (implying restrictToCountry: "usa", which is logged). A verified example: states: ["CA"] + cities: ["Los Angeles"] seeded from /locations crawled 30 requests (index → /l/usa → /l/usa/california → 27 detail pages) instead of the ~2,100 a full US run costs, and returned 27 records.

searchTerm is deliberately not used for pruning: it can match detail-only fields such as the operator, so a card that looks like a miss may still be a hit. It filters the finished records instead.

Misspelling every value of a filter (e.g. states: ["Califorina"]) fails the run immediately rather than quietly returning the whole site.

💳 Pricing (pay-per-event)

One event, one price: $0.005 per location returned — $5.00 per 1,000 results. It uses the platform's built-in apify-default-dataset-item event, so every item written to the dataset is charged automatically.

RunLocationsPrice
Delaware (the prefilled trial input)18$0.09
One state, e.g. California390$1.95
Whole US registry2,077$10.39
Single address check (filtered)1$0.005

Cheaper, faster runs. The price per record is the same either way, but a listing-sourced address costs about 4 KB of traffic while its detail page costs about 165 KB and needs the residential proxy (the datacenter group returns HTTP 403 on /s/ pages). If you don't need the building suite and the mail-center operator name, run with fetchDetails: false — or narrow the run with the filters above.

📤 Output record

Each dataset item wraps provenance, the address sent to Smarty, and the verification. For US addresses, verification.report is exactly the Smarty US Street API response shape.

{
"source": {
"provider": "anytimemailbox",
"url": "https://www.anytimemailbox.com/s/wilmington-34-brier-ave",
"slug": "wilmington-34-brier-ave",
"operator": "iNotarize Virtual Mailbox",
"country": "United States",
"startingPrice": "US$ 9.99",
"rawAddress": "34 Brier Ave, Wilmington, DE 19805, United States",
"scrapedAt": "2026-09-19T…"
},
"addressInput": { "street": "34 Brier Ave", "city": "Wilmington", "state": "DE",
"zipcode": "19805", "country": "United States", "freeform": "…" },
"verification": {
"provider": "smarty-us", // | "smarty-international" | null
"status": "enriched", // | "skipped-no-keys" | "no-candidates" | "error"
"report": { "components": { "pmb_designator": "PMB", … },
"metadata": { "county_name": "New Castle", "latitude": 39.744, … },
"analysis": { "dpv_cmra": "Y", "dpv_match_code": "Y", … } }
}
}

⚙️ Weekly refresh

Schedule the actor in the Apify Console → Schedules (e.g. cron 0 6 * * 1 — Mondays 06:00). The enrichment cache lives in the named Key-Value Store anytimemailbox-enrichment-cache, which is account-scoped and persists across runs, so each weekly run only spends Smarty credits on locations that are new or changed since last time.


🤖 Use with AI agents

This Actor is callable as a tool by any MCP-capable agent — Claude, Cursor, VS Code — or by your own code, with no wrapper and nothing extra to deploy.

Connect over MCP

https://mcp.apify.com?tools=autofacts/anytime-mailbox-scraper-virtual-mailbox-locations-cmra

In a client that reads an mcpServers configuration block:

{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com?tools=autofacts/anytime-mailbox-scraper-virtual-mailbox-locations-cmra",
"headers": { "Authorization": "Bearer YOUR_APIFY_TOKEN" }
}
}
}

The agent reads this Actor's parameters and their descriptions straight from the input schema, and the hosted server infers the result field types from the dataset schema — so a model knows what to send and what comes back before it ever calls anything.

Or call the API directly

curl -X POST "https://api.apify.com/v2/acts/autofacts~anytime-mailbox-scraper-virtual-mailbox-locations-cmra/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H 'Content-Type: application/json' \
-d '{"startUrls": [{"url": "https://www.anytimemailbox.com/l/usa/delaware"}], "states": ["DE"], "maxRequestsPerCrawl": 25, "maxConcurrency": 10}'

The response body is the dataset records described above.

🧰 Other Actors by autofacts

Apify only auto-recommends Actors in the same category, so here are the ones that actually pair with this scraper:

ActorWhat it's for
Shopify Store LeadsFind Shopify stores — catalog size, apps, contacts
Indeed Jobs ScraperJobs, companies, reviews and salaries
Schema Markup Scraper & SEO AuditorJSON-LD, Open Graph and a 0-100 SEO audit of any URL

All of them: apify.com/autofacts