BOINC Project Extractor avatar

BOINC Project Extractor

Pricing

from $0.35 / 1,000 records

Go to Apify Store
BOINC Project Extractor

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

Datamule

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a month ago

Last modified

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

ModeEndpointOutput
apps (default)apps.php?xml=1One row per application version: name, friendly name, platform, version number, plan class, release date.
serverStatusserver_status.php?xml=1One row per daemon (host, command, status) + one summary row (queue counters, users, results).
userStatsstats/user.gzOne row per user: total credit, exp-avg credit, country, team, created.
teamStatsstats/team.gzOne row per team.
hostStatsstats/host.gzOne 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.
  • modeapps | serverStatus | userStats | teamStats | hostStats (default apps).
  • 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), serverStatus
  • https://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/*.gz exports. Use apps or serverStatus on 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: identity and gunzipped as a file, then streamed with iterparse so 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.