F-Droid App Catalog Scraper
Pricing
from $0.35 / 1,000 app scrapeds
F-Droid App Catalog Scraper
Returns open-source Android app metadata from F-Droid: package ID, license, categories, author, source and issue links, version, anti-features, icon and APK URL. Filter by keyword, package ID or category. $0.0005 per app returned (about $0.05 per 100 apps), no API key.
Pricing
from $0.35 / 1,000 app scrapeds
Rating
0.0
(0)
Developer
Datamule
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
1
Monthly active users
8 days ago
Last modified
Categories
Share
F-Droid App Catalog Scraper: open-source Android app metadata
Returns structured metadata for open-source Android apps from F-Droid's official public index: package name, license, categories, author, source/issue/changelog links, suggested version, anti-features, icon and APK URL. For developers, license reviewers, researchers and AI agents building app directories or datasets. Price: $0.0005 per app returned (about $0.05 per 100 apps; lower on paid Apify plans). No login or API key.
Running it with an empty input {} returns the first 100 apps in the catalog (about $0.05).
Example input
{ "query": "messaging", "categories": ["Internet"], "maxItems": 25 }
Other shapes: { "packageIds": ["org.fdroid.fdroid"] } (exact lookup; an F-Droid or Google Play URL also works) or { "categories": ["Weather"], "maxItems": 40 }.
Example output (real run, description shortened)
{"packageName": "InfinityLoop1309.NewPipeEnhanced","name": "PipePipe","summary": "A FLOSS Android app to let you browse YouTube, NicoNico and BiliBili freely.","license": "GPL-3.0-or-later","categories": ["Internet", "Multimedia", "Online Media Player"],"authorName": "NullPointerException","webSite": null,"sourceCode": "https://github.com/InfinityLoop1308/PipePipe","issueTracker": "https://github.com/InfinityLoop1308/PipePipe/issues","changelog": "https://github.com/InfinityLoop1308/PipePipe/releases","donate": ["https://ko-fi.com/pipepipe"],"added": "2023-01-19","lastUpdated": "2026-09-28","suggestedVersionName": "5.4.0","suggestedVersionCode": 110904,"antiFeatures": ["NonFreeNet"],"iconUrl": "https://f-droid.org/repo/InfinityLoop1309.NewPipeEnhanced/en-US/icon_CWQFN3-pZavxIDWYPYl4GHg-v7k6uCvk6PkmD9S8gSo=.png","latestApkUrl": "https://f-droid.org/repo/InfinityLoop1309.NewPipeEnhanced_110904.apk","url": "https://f-droid.org/packages/InfinityLoop1309.NewPipeEnhanced"}
Output fields
packageName, name, summary, description, license (SPDX), categories, authorName, webSite, sourceCode, issueTracker, changelog, translation, donate, added and lastUpdated (YYYY-MM-DD), suggestedVersionName, suggestedVersionCode, antiFeatures, iconUrl, latestApkUrl, url. Fields absent for an app are null, so the shape is stable.
Input
| Field | Description |
|---|---|
query | Keyword matched (case-insensitive) against name, summary, description and package ID. |
packageIds | Exact package IDs, F-Droid page URLs or Google Play links. Always returned. |
categories | F-Droid categories, any case; partial names expand (Games = every game category). Unknown names return nothing and the log lists valid ones. |
maxItems | Cap on records returned and charged. Default 100. |
Filters combine: an app must match query AND any selected category; packageIds are always added. The full category list is in the Input tab dropdown (115 categories at last check, e.g. Browser, Messaging, Password & 2FA, Security, VPN & Proxy, Weather).
Pricing
Pay per event: one app event at $0.0005 per app record returned on the Free plan (tiered lower on Bronze to Diamond). Nothing is charged for apps not returned. You can cap spend with Apify's maximum cost per run.
Limits
- Returns the current snapshot only: no history, change alerts, APK scanning, vulnerability verdicts or install counts.
- Each run downloads the full official index first, then filters, even for a small result.
- A capped run is not a complete catalog: compare the returned count to your
maxItems. - Default memory is 256 MB (measured peak about 62 MB at 100 apps; 60-126 MB in earlier larger runs).
Use from an AI agent / API
Python:
from apify_client import ApifyClientclient = ApifyClient("<APIFY_TOKEN>")run = client.actor("datamule/f-droid-scraper").call(run_input={"categories": ["Password & 2FA"], "maxItems": 20})apps = list(client.dataset(run["defaultDatasetId"]).iterate_items())
MCP (Claude, Cursor and other agents): add https://mcp.apify.com?tools=datamule/f-droid-scraper as a remote MCP server with your Apify token. The Actor appears as a tool whose arguments are the Input fields above.
Agent tip: always pass maxItems; to look up one app, use packageIds only and leave query out.
FAQ
Why did I get fewer apps than expected? query and categories are ANDed. Clear the query to list a whole category.
Why does {} return apps with no filter? An empty input means "first 100 apps"; pass maxItems to change it.
Is the data live? It is read from F-Droid's public index at run time.
Can I export CSV or Excel? Yes, from the run's dataset in Apify.
Can I schedule it? Yes. Schedule the same input and compare packageName, suggestedVersionCode and lastUpdated yourself; the Actor does not store diffs.