App Developer Contact Finder - Google Play Emails avatar

App Developer Contact Finder - Google Play Emails

Pricing

from $50.00 / 1,000 developer contacts

Go to Apify Store
App Developer Contact Finder - Google Play Emails

App Developer Contact Finder - Google Play Emails

Developer contact e-mail addresses from Google Play listings, charged only when an address is actually delivered. Google requires every app to publish one, so nearly every app returns a usable contact. Search a keyword or paste app URLs.

Pricing

from $50.00 / 1,000 developer contacts

Rating

0.0

(0)

Developer

Halil Erdogan

Halil Erdogan

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

22 days ago

Last modified

Share

App Developer Contact Finder is a Google Play developer email scraper for outreach to app makers. Type a keyword such as habit tracker or paste a list of apps, press Start, and get back the contact e-mail each developer publishes on the app's Google Play listing, with the app name, developer name, install range, rating and website next to it.

What it does: returns the contact e-mail each developer publishes on their Google Play listing, by keyword search or from your own list of apps. Price: $0.05 per developer contact delivered ($50 per 1,000). A listing without an address costs nothing. A first run: the prefilled input checks 25 apps for one keyword, so it costs at most $1.25 plus the $0.001 start fee. What you get: one row per app: developer e-mail, app name, developer name, install range, rating, review count, website and Play link. Export as JSON, CSV or Excel. What it will not do: guess addresses, or hand you a similar app's address from the same page.

What does App Developer Contact Finder do?

Google's Play Console Help lists a contact e-mail address as required when a developer sets up an app, and says the contact details are shown to users on the app's store listing. The Actor reads that address from the listing's labelled support e-mail link and returns it with the app details around it.

  • Two ways in. Search Google Play by keyword with searchTerms, check apps you already have with apps, or use both in the same run.
  • URLs or package names. Google Play URLs and bare package names such as com.duolingo can be mixed in one list.
  • Any storefront. country and language choose the Play catalogue and the listing language.
  • One row per app checked. Developer e-mail, app name, developer, install range, rating, review count, website and Play link.
  • The right developer, not a neighbour. A listing page also shows other apps, and their developers' addresses can appear on it. The Actor keys on the labelled support link, so it does not hand you a competitor's contact by mistake (details below).
  • Install ranges as Google prints them. 5M+ stays 5M+; the Actor does not turn a range into a made-up exact number.
  • Honest empty rows. A listing without an address, or one that cannot be read, keeps its row with the reason in error.
  • A hard stop. maxApps keeps a broad search from running away.

Because it runs on Apify, you can call it through the API, schedule it, save inputs as tasks, send results to Google Sheets through Make or Zapier, and export every run as JSON, CSV or Excel.

Who is it for?

  • SDK, API and tool companies selling to Android developers: analytics, crash reporting, payments, ads, backend services.
  • Agencies offering app store optimisation, localisation, testing, marketing or user acquisition.
  • Publishers and investors looking for apps in a category to partner with or buy.
  • Researchers mapping a category: who publishes in it, how large the apps are and how they are rated.

How to find Google Play developer emails

  1. Open the Actor in Apify Console. Sign in or create a free Apify account.
  2. Search Google Play on the Input tab: add one or more keywords to Search Google Play, for example habit tracker or invoice scanner. Each keyword is expanded into apps.
  3. Pick the storefront. Set Play storefront country (default US) and Listing language (default en), for example GB and en, or DE and de.
  4. Or paste specific apps into Or paste specific apps: Google Play URLs or package names, one per line.
  5. Set the size of the run. Apps per search term (default 25) decides how many apps each keyword brings in; Maximum apps in this run (default 200) is the hard stop.
  6. Decide what you want to see. Leave Only output apps that have a contact e-mail off to see every listing that was checked, or switch it on for a clean lead list. You are charged the same way in both cases: per delivered contact.
  7. Click Start, then open the Output tab. Click Export to download JSON, CSV or Excel.

Input

Field in ConsoleJSON keyTypeDefaultWhat it does
Search Google PlaysearchTermsarray["habit tracker"] prefilledKeywords; each is expanded into apps, and each listing is read
Or paste specific appsappsarrayemptyGoogle Play URLs or package names such as com.duolingo, mixed formats allowed
Apps per search termmaxPerSearchTerminteger251 to 200. How many apps each keyword contributes
Maximum apps in this runmaxAppsinteger2001 to 1,000. Hard stop for the whole run
Play storefront countrycountrystringUSTwo-letter country code of the Play catalogue to search
Listing languagelanguagestringenTwo-letter language code for the listing text
Only output apps that have a contact e-mailonlyAppsWithEmailbooleanfalseHide listings that publish no address
Parallel listing readsconcurrencyinteger51 to 12. Google Play limits request rates, so higher is not always faster

Example input:

{
"searchTerms": ["habit tracker", "invoice scanner"],
"apps": ["com.duolingo"],
"country": "US",
"language": "en",
"maxPerSearchTerm": 25,
"maxApps": 100,
"onlyAppsWithEmail": false
}

Output

One row per app checked. The field names are the ones the Actor writes; the values below are placeholders, not a real app.

[
{
"appId": "com.example.habits",
"appName": "<app title>",
"developer": "<name of the publishing account>",
"developerEmail": "support@example-apps.com",
"emailSource": "support email",
"installs": "5M+",
"rating": 4.7,
"ratingCount": "11.5K",
"website": "https://example-apps.com",
"playUrl": "https://play.google.com/store/apps/details?id=com.example.habits",
"error": null
}
]
FieldMeaning
developerEmailThe contact e-mail the developer published on the listing. Empty when none was found
emailSourcesupport email when it came from the labelled support link, sole mailto on the page when the page had no label and exactly one address
appId, appName, playUrlWhich app the row is about
developer, websiteWho publishes it and where their own site is. website is an empty string when the listing shows none
installsThe install range exactly as Google prints it, such as 5M+ or 500K+
rating, ratingCountThe store rating, and the review count as Google prints it, as text such as 11.5K
errorWhy a listing produced no address, instead of the app disappearing

installs is kept as a range on purpose. Google publishes a bucket, not a count, and turning 5M+ into a number would invent precision the store does not give. The run also saves a RUN_STATS record in its key-value store: apps requested, listings read, with a contact, without one, failed and charged.

Why the address belongs to the right developer

A Play listing also shows similar apps further down the page, and their developers' e-mail addresses can be on the same page. A scraper that grabs anything shaped like an address will sometimes give you a competitor's contact and call it your lead. In our 13 September 2026 test, one listing's page carried another developer's address next to its own.

The Actor avoids that in two steps. It reads the labelled support e-mail link first. When a page has no label, it takes a mailto: address only if the page carries exactly one. An ambiguous listing reports nothing rather than the wrong developer.

How much does it cost to get Google Play developer emails?

The Actor uses Apify's pay-per-event pricing:

EventPriceWhen it is charged
contact$0.05 ($50 per 1,000)Once per app whose developer contact e-mail is delivered
apify-actor-start$0.001When a run starts; one event per GB of memory, minimum one. At the default 1 GB that is one event

A listing with no published address is free. A listing that cannot be read is free. The platform usage of the run is not billed on top.

Because Google requires a contact address, most listings should produce one, so the table shows the upper end:

RunApps checkedContacts deliveredYou pay at most
One keyword, default setting25up to 25$1.25 + $0.001
Default run cap200up to 200$10.00 + $0.001
The largest possible run1,000up to 1,000$50.00 + $0.001

A run can never cost more than $0.05 for each app it checks, plus the start fee.

Is it free to try?

Apify's free plan includes $5 of platform usage each month, and pay-per-event charges are paid from it. That covers up to 99 delivered contacts in one run.

Can I cap what a run costs?

Yes. Set a maximum cost for the run in Console, or pass maxTotalChargeUsd through the API. Apify's documentation states that the Actor stops gracefully at the limit and you are never charged for events beyond it. maxApps gives you a second, simpler brake.

Honest expectations: how many listings return an address?

On 13 September 2026 we ran a habit tracker search and checked six apps: all six returned a developer address. Six apps from one keyword is a small sample, so read it as a sign, not a rate.

A row can still come back empty. The page may have no labelled link and several addresses, in which case the Actor reports nothing rather than guess. The listing may not be readable during the run. An app that no longer exists is reported as missing rather than retried pointlessly.

Why pay per contact and not per app row

General Google Play scrapers return app details and charge per row. If you only need the person to write to, check two things before you compare prices: whether the developer e-mail is in the output at all, and whether it can be another developer's address picked up from the "similar apps" section of the page (see above). This Actor charges only when the labelled developer contact is delivered.

What it does not do

  • It does not guess addresses and does not try name permutations against a mail server.
  • It does not sign in to Google Play and reads nothing behind a login.
  • It does not pick an address at random when a page carries several; the row stays empty instead.
  • It does not cover the Apple App Store. Google Play only.
  • It does not return phone numbers. A developer can add a phone number to a listing, but there is no phone field in the output.

Public contact information only

The Actor returns the contact address that developers publish on their own Google Play listing, plus the public app details around it. Google's help text describes this address as the one Play Store users can use to contact the developer about the app, so keep any outreach relevant to that app and its developer.

A published address can still be personal data, for example when an individual developer uses a personal inbox, and in the EU and the UK that brings the GDPR into play. Use the output in line with the rules that apply to you, including the GDPR and the CAN-SPAM Act: identify yourself, send relevant messages only, and honour opt-out requests. You are responsible for how you use the data and for following the terms of the services it comes from. If you are unsure, ask a lawyer before a campaign.

Limits

  • Apps per search term: up to 200 (maxPerSearchTerm).
  • Apps per run: up to 1,000 (maxApps).
  • Parallel listing reads: 1 to 12 (concurrency, default 5). Google Play limits request rates, so raising this does not always make a run faster.
  • One storefront and language per run. country and language each take a single code; run the Actor once per market to cover several.
  • Run length: the default run timeout is 300 seconds with 1 GB of memory. For large lists, raise the timeout in the run options in Console, or split the list into several runs.
  • What a developer publishes can change. Re-run a list before a campaign rather than relying on an old export.

Use the Google Play developer email scraper through the API

Start a run and receive the rows in one HTTP call:

curl -X POST \
"https://api.apify.com/v2/actors/hllerdgn80~app-developer-contact-finder/run-sync-get-dataset-items" \
-H "Authorization: Bearer <YOUR_APIFY_TOKEN>" \
-H "Content-Type: application/json" \
-d '{"searchTerms": ["habit tracker"], "maxApps": 25, "onlyAppsWithEmail": true}'

The synchronous endpoint returns HTTP 408 if the run takes more than 300 seconds. For longer runs, start the Actor asynchronously and read the dataset afterwards, for example with the Python client:

from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("hllerdgn80/app-developer-contact-finder").call(
run_input={"searchTerms": ["budget planner", "meditation"], "country": "GB", "language": "en", "maxApps": 200}
)
for row in client.dataset(run.default_dataset_id).iterate_items():
if row.get("developerEmail"):
print(row["appName"], row["developerEmail"], row.get("installs"))

The API tab on this page has JavaScript, Python and CLI examples and the OpenAPI definition. Your token is in Console under Settings > API & Integrations; send it in the Authorization header.

Integrations: Google Sheets, CRM, Make, Zapier, n8n and MCP

  • Make: the Apify Run an Actor module, then Get Dataset Items, then a Google Sheets module that adds rows, gives you a lead sheet that fills itself.
  • Zapier: use the Finished Actor run trigger or the Run Actor action, followed by Fetch dataset items, to pass each row to a CRM or a spreadsheet. Zapier stops synchronous runs after 30 seconds, so start bigger runs asynchronously and let the trigger pick up the result.
  • n8n: add the Apify node (@apify/n8n-nodes-apify under Settings > Community Nodes on self-hosted n8n, or straight from the canvas on n8n Cloud).
  • AI agents: connect an MCP client to https://mcp.apify.com/?tools=fetch-actor-details,hllerdgn80/app-developer-contact-finder.
  • Schedules: re-check a category every month and compare the result with your last export to spot new apps.

FAQ

The Actor collects only the contact address that developers publish on their public Google Play listing. In some jurisdictions such an address is still personal data. Use the output in line with the rules that apply to you, including the GDPR and the CAN-SPAM Act, send relevant messages only, and honour opt-out requests. If you are unsure, ask a lawyer before a campaign.

Why do apps on Google Play have a contact e-mail?

Google's Play Console Help lists a contact e-mail address as required when an app is set up, next to an optional phone number and website, and says the contact details are shown on the store listing.

Why did an app come back without an address?

The page had no labelled support link and more than one address, so the Actor could not tell which one belongs to the developer; or the listing could not be read during the run; or the app no longer exists. The error field says which.

Am I charged for apps without an address?

No. The contact event is charged only when a developer address is delivered. Listings without one, and listings that cannot be read, are free.

Which app formats can I paste?

A full Google Play URL such as https://play.google.com/store/apps/details?id=com.duolingo or the bare package name com.duolingo. Both can sit in the same list.

Does it work for the Apple App Store?

No. The Actor reads Google Play listings only.

Why is installs a range such as 5M+ and not a number?

Because that is what Google publishes. The store shows install buckets, not exact counts, and the Actor keeps the bucket as printed.

Can I search other countries and languages?

Yes. Set Play storefront country and Listing language to two-letter codes, for example DE and de. Each run covers one storefront and one language.

Can I export straight to Google Sheets or my CRM?

Yes, through Make, Zapier or n8n (see Integrations), or download the dataset as CSV or Excel from the Output tab.

Other Actors from the same developer

Support and feedback

If a listing shows a support e-mail but the Actor missed it, or a row's error message is unclear, open a thread in the Issues tab and include the app's Play URL or package name and the input you used. Threads are public, so the answer helps others with the same question. Ideas for new fields are welcome there too.

Changelog

  • October 2026: summary box at the top, pricing comparison section.
  • September 2026: README rewritten with a step-by-step guide, output example, pricing examples, limits, API and integration notes, and FAQ.
  • 13 September 2026: Actor created and published at $0.05 per delivered contact (build 0.1.1); tested on six apps from a habit tracker search.