BOINC Project Extractor
Pricing
from $0.35 / 1,000 records
BOINC Project Extractor
Point at ANY BOINC volunteer-computing project (PrimeGrid, Einstein@Home, Rosetta@Home, yoyo@home, NFS@Home) and extract its public XML: applications & versions, server status & daemons, or the user/team/host stats exports. Sniffs the body, gunzips file-gzip stats. One uniform runner.
Pricing
from $0.35 / 1,000 records
Rating
0.0
(0)
Developer
Datamule
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
25 days ago
Last modified
Categories
Share
Point this actor at any BOINC volunteer-computing project and extract its uniform public XML — no per-project code, no API key.
BOINC powers ~40 distributed-computing projects (PrimeGrid, Einstein@Home, Rosetta@Home, yoyo@home, NFS@Home, World Community Grid, …). Because BOINC is one open-source framework, every project serves the same server-side XML endpoints. This actor is a single generic runner over all of them.
Modes
| Mode | Endpoint | Output |
|---|---|---|
apps (default) | apps.php?xml=1 | One row per application version: name, friendly name, platform, version number, plan class, release date. |
serverStatus | server_status.php?xml=1 | One row per daemon (host, command, status) + one summary row (queue counters, users, results). |
userStats | stats/user.gz | One row per user: total credit, exp-avg credit, country, team, created. |
teamStats | stats/team.gz | One row per team. |
hostStats | stats/host.gz | One row per host: CPU vendor/model, OS, cores, credit. |
Input
{"projectUrl": "https://www.primegrid.com","mode": "apps","maxRecords": 20000}
- projectUrl (required) — the project master URL. The actor appends the mode's path.
- mode —
apps|serverStatus|userStats|teamStats|hostStats(defaultapps). - maxRecords — cap on emitted rows (default 20000). Stats exports can be very large (Rosetta's user export is ~1.4M rows); parsing streams so the cap is honored without loading the whole export.
- userAgent, timeoutSecs — optional overrides.
Example projects (verified live)
https://www.primegrid.com— apps (25 apps / 265 versions), serverStatushttps://einsteinathome.org— apps (8 apps / 61 versions)https://escatter11.fullerton.edu/nfs— open stats (21k+ users)https://www.rechenkraft.net/yoyo— apps, serverStatus, stats
Note: some projects (e.g. PrimeGrid, Einstein@Home) auth-wall their
stats/*.gzexports. UseappsorserverStatuson those, or point stats modes at a project that publishes open stats such as NFS@Home.
How it handles the awkward parts
- Content-Type lies. Some projects serve XML as
text/html. The actor sniffs the body for the expected root element rather than trusting the header. - Stats are file-gzip, not transport-gzip. They're fetched with
Accept-Encoding: identityand gunzipped as a file, then streamed withiterparseso multi-million-row exports don't blow memory. - Daemon status is served two ways (a
<status>child on some projects, trailing text on others) — both are handled. - A non-200, an HTML/auth-wall page, or a body missing the expected BOINC root fails fast — it never reports an unreachable or empty endpoint as a success.
Output
Structured JSON rows in the dataset, plus one trailing metadata record (_recordType: "meta") summarizing the run (mode, endpoint, emitted-row count, whether the cap was hit). Every row carries projectUrl and _source.
Pricing
Pay-per-event: $0.0005 per record (one application version, daemon, or user/team/host stat). The trailing metadata record is not billed.
Maximum charge per run
The Actor respects the maximum charge you set for a run. Each record is written and billed in the same step, so the dataset never holds more paid records than you were charged for, and never more than maxRecords.
- If the budget cannot cover even one record, the Actor makes no request to the project and ends successfully with only the free metadata record.
- When the budget runs out mid-run, it stops, logs
Max total charge reached, and the metadata record showsbudgetStopped: true. - If the platform reports a billing error, the run fails instead of continuing unbilled.
- A restarted or migrated run resumes after the records it already delivered, without writing or charging them twice, as long as the project still serves the same data. If the data changed in between, or a restart happens while a batch was being written, the run stops rather than guess. A run that fails part-way keeps (and is billed for) the records it already delivered.
Note: each mode fetches one endpoint once. For the stats modes (userStats/teamStats/hostStats) the whole .gz export is downloaded before rows are counted, so a large project's export is transferred even for a small maxRecords.