App Developer Contact Finder - Google Play Emails
Pricing
from $50.00 / 1,000 developer contacts
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
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
22 days ago
Last modified
Categories
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 withapps, or use both in the same run. - URLs or package names. Google Play URLs and bare package names such as
com.duolingocan be mixed in one list. - Any storefront.
countryandlanguagechoose 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+stays5M+; 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.
maxAppskeeps 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
- Open the Actor in Apify Console. Sign in or create a free Apify account.
- Search Google Play on the Input tab: add one or more keywords to Search Google Play, for example
habit trackerorinvoice scanner. Each keyword is expanded into apps. - Pick the storefront. Set Play storefront country (default
US) and Listing language (defaulten), for exampleGBanden, orDEandde. - Or paste specific apps into Or paste specific apps: Google Play URLs or package names, one per line.
- 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.
- 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.
- Click Start, then open the Output tab. Click Export to download JSON, CSV or Excel.
Input
| Field in Console | JSON key | Type | Default | What it does |
|---|---|---|---|---|
| Search Google Play | searchTerms | array | ["habit tracker"] prefilled | Keywords; each is expanded into apps, and each listing is read |
| Or paste specific apps | apps | array | empty | Google Play URLs or package names such as com.duolingo, mixed formats allowed |
| Apps per search term | maxPerSearchTerm | integer | 25 | 1 to 200. How many apps each keyword contributes |
| Maximum apps in this run | maxApps | integer | 200 | 1 to 1,000. Hard stop for the whole run |
| Play storefront country | country | string | US | Two-letter country code of the Play catalogue to search |
| Listing language | language | string | en | Two-letter language code for the listing text |
| Only output apps that have a contact e-mail | onlyAppsWithEmail | boolean | false | Hide listings that publish no address |
| Parallel listing reads | concurrency | integer | 5 | 1 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}]
| Field | Meaning |
|---|---|
developerEmail | The contact e-mail the developer published on the listing. Empty when none was found |
emailSource | support 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, playUrl | Which app the row is about |
developer, website | Who publishes it and where their own site is. website is an empty string when the listing shows none |
installs | The install range exactly as Google prints it, such as 5M+ or 500K+ |
rating, ratingCount | The store rating, and the review count as Google prints it, as text such as 11.5K |
error | Why 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:
| Event | Price | When it is charged |
|---|---|---|
contact | $0.05 ($50 per 1,000) | Once per app whose developer contact e-mail is delivered |
apify-actor-start | $0.001 | When 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:
| Run | Apps checked | Contacts delivered | You pay at most |
|---|---|---|---|
| One keyword, default setting | 25 | up to 25 | $1.25 + $0.001 |
| Default run cap | 200 | up to 200 | $10.00 + $0.001 |
| The largest possible run | 1,000 | up 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.
countryandlanguageeach 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 ApifyClientclient = 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-apifyunder 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
Is it legal to scrape Google Play developer emails?
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
- Podcast Contact Finder: owner e-mail addresses from podcast RSS feeds, for sponsorship and guest pitches.
- YouTube Channel Contact Finder: business e-mails that YouTube creators publish on their channels, by niche or channel list.
- YouTube Transcript Scraper: transcripts from YouTube videos, playlists and channels in bulk, as text, timestamped segments or SRT.
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 trackersearch.