pub.dev Package Rankings & Score Change Monitor avatar

pub.dev Package Rankings & Score Change Monitor

Pricing

from $0.60 / 1,000 package results

Go to Apify Store
pub.dev Package Rankings & Score Change Monitor

pub.dev Package Rankings & Score Change Monitor

Export and monitor pub.dev package rankings for Dart and Flutter. Track downloads, likes and pub points with top-N snapshots and saved change history.

Pricing

from $0.60 / 1,000 package results

Rating

0.0

(0)

Developer

Vadim Bezrukov

Vadim Bezrukov

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Export pub.dev package rankings and track changes in Dart and Flutter package downloads, likes and pub points. Compare libraries you maintain, follow competing packages, or refresh a dashboard in Sheets, n8n or Make.

Start with the top 20 packages or supply a watchlist. A snapshot returns one observation per checked package, a query status and a run summary. Monitor mode stores and emits a baseline on the first successful run, then identifies rank, score and composition changes on later runs.

The source is the documented pub.dev JSON API. Rank is the package's position in pub.dev's completion list, not a local sort by downloads. Ranking data is cached for eight hours; this is not real-time data.

Get your first result

{"mode": "snapshot", "topN": 20}

With a healthy source containing at least 20 packages, this returns 20 package observations marked BASELINE, one query_status and one run_summary. Open the Packages Dataset view or export JSON/CSV. At FREE/BRONZE prices, the example costs $0.02005. Set a maximum-charge budget of at least $0.021.

Choose a workflow

WorkflowInputResult
Export top pub.dev packagessnapshot, topN: 20Official rank, 30-day downloads, likes and pub points
Monitor rank and score changesmonitor, changesOnly, stable namespaceBaseline first; changed, exited and returning packages later
Compare named Dart or Flutter packageswatchlist: ["http", "uuid", "dio"]Only the selected packages, with their full-list ranks

Prepared saved examples cover these workflows with distinct inputs, Dataset views and spending limits. When available in the Actor's Examples section, copy an example and replace its sample values.

Monitor daily or weekly

{
"mode": "monitor",
"outputMode": "changesOnly",
"stateNamespace": "top20",
"topN": 20
}

Keep the same namespace and query on repeat runs. First-run BASELINE rows are included with changesOnly. Later UNCHANGED packages are omitted; query status and summary remain available. Snapshot mode does not read or write monitoring history. Switching to monitor creates a new baseline.

Compare a watchlist

{
"mode": "snapshot",
"watchlist": ["http", "uuid", "dio"],
"includePackageMetadata": false
}

Use up to 50 Dart package names or https://pub.dev/packages/{name} URLs. Duplicate names are checked once. A watchlist ignores topN for filtering: a package may rank above that number. An existing package outside the ranking list has rank: null; the score endpoint determines NOT_FOUND separately. To monitor this watchlist, choose monitor, changesOnly and a stable namespace. Optional metadata adds description, homepage and latest version; those fields do not trigger change alerts.

Output and change events

FieldMeaning
package, source_id, source_urlPackage name, stable identity and source link
rankOfficial 1-based completion-list position; null when unranked or exited
download_count_30dSource-reported 30-day downloads; null when not calculated
like_count, granted_points, max_pointsSource-reported likes and pub points
status, errorVerification status and structured failure code/message
change_type, changed_fields, previous_valuesChange relative to last-successful state
scraped_atUTC time of this check
ranking_observed_at, ranking_cache_hitRanking fetch time and whether its cached list was reused
schema_version, fingerprint, event_idSchema version, semantic fingerprint and monitor event ID

pub.dev does not provide native ranking history through these endpoints. Your history begins with your first successful monitor. BASELINE does not mean that the package was published that day. Rows are append-only observations.

  • NEW: first entry into the monitored composition after the baseline.
  • UPDATED: downloads, likes, pub points or multiple tracked fields changed.
  • RANK_UP / RANK_DOWN: only the rank changed.
  • EXITED: a previously ranked package was absent in two successfully checked, separately fetched ranking lists. Reusing the same cache does not advance confirmation. This does not mean the package was unpublished.
  • REAPPEARED: a previously exited package returned to the ranking window.
  • UNCHANGED: no tracked field changed; omitted in changesOnly.

Dataset views are Packages, Changes, Query checks and Run summary. The raw Dataset includes package, query-status and run-summary records; filter by record_type in integrations. RUN_SUMMARY is also stored in the default KVS.

Freshness and failures

The completion list is cached in an account-local Actor key-value store for at least eight hours, as requested by pub.dev. Snapshots and monitors share this cache. Scores are fetched on each check, so downloads or likes may change while ranks are reused. Prefer daily or weekly ranking monitoring.

An expired cache is not used to hide a failed refresh. Failed checks never replace good monitoring state or advance pending exits. Invalid score fields, malformed ranking lists, HTML challenges and exhausted retries are failures.

StatusMeaning and next action
SUCCESSConsume the verified observation
NOT_FOUNDScore endpoint returned a non-HTML 404; check the package name
NO_RESULTSVerified empty ranking for a top-N query; never a source failure
PARTIALInspect query diagnostics and per-package failures; state is unchanged
FAILEDInspect the source/protocol error; a fully failed query fails the run
INVALID_INPUTCorrect input before retrying; no source request was made
NOT_PROCESSEDIncrease the run budget or request a smaller window

An empty completion list does not skip watchlist score checks. Each failing score request receives its own package status while other successful results remain usable. snapshot plus changesOnly is rejected before fetching.

maxPackageRows bounds output. A window that does not fit is PARTIAL / OUTPUT_LIMIT, never silently truncated. If a top-N window retains under half its previous active packages, PARTIAL / MASS_REMOVAL keeps the old state. Watchlists and top-1 are exempt from this guard.

Pricing and spending limits

The Pricing tab is authoritative. Platform usage is included, not added to the buyer's bill.

EventCharged forFREE / BRONZE
apify-actor-startOne start event at supported 256-1024 MB memory settings$0.00005
package-resultEach successful snapshot package; in monitor, each delivered NEW, UPDATED, RANK_*, EXITED or REAPPEARED$0.001
window-checkOne complete monitor check, including baseline, no changes or verified empty ranking$0.01

Package results cost $0.0008 on SILVER and $0.0006 on GOLD, PLATINUM and DIAMOND. Start and window-check prices are the same across tiers. Monitor BASELINE/UNCHANGED rows, NOT_FOUND, retries and failed or partial windows do not incur package-result fees. Failed/partial windows do not incur window-check fees. The platform start event still applies. There is no additional automatic Dataset-item fee.

Example at FREE/BRONZE pricesExpected billSuggested run budget
Snapshot of 3 successful watchlist packages$0.00305$0.021
Snapshot top-20$0.02005$0.021 or more
Snapshot top-200$0.20005$0.21
First or unchanged top-20 monitor$0.01005$0.05
Top-20 monitor with 20 changed rows$0.03005$0.05
30 daily unchanged monitor checks$0.30150Budget applies separately to each run

The minimum budget is $0.021, not a minimum charge. A $0.05 snapshot budget fits 49 successful packages, not 50, because the start event also counts. Saved examples allow $0.21 for top-N snapshots, $0.06 for watchlists and $0.50 for monitors. These ceilings cover their supported input ranges and are not automatically charged. A top-200 monitor may include up to 400 billable package rows with confirmed exits, for a maximum $0.41005 at FREE/BRONZE prices.

If the entire window cannot be delivered and charged within the remaining budget, monitoring state stays unchanged. After interrupted delivery, resurrection does not replay charges. Inspect the previous run's partial output and start a new run for a fresh observation.

Automate with n8n, Make or the Apify API

  1. Schedule the monitor input daily or weekly in Apify.
  2. Add an ACTOR.RUN.SUCCEEDED webhook for your n8n or Make endpoint.
  3. Read resource.defaultDatasetId from its payload, then retrieve GET https://api.apify.com/v2/datasets/{datasetId}/items with your own authorization header.
  4. Check query_status and run_summary before alerting on successful package_observation rows with the desired change_type values.
  5. Handle ACTOR.RUN.FAILED separately so source outages reach your error path.

Schedules and webhooks are configured in your account. To run directly, send input JSON to POST https://api.apify.com/v2/acts/automa-flow~pub-dev-package-rankings-monitor/runs with your own authorization header. Never put tokens in shared inputs or URLs.

For authenticated agents, the direct MCP endpoint is https://mcp.apify.com?tools=automa-flow/pub-dev-package-rankings-monitor. Example: "Check my pub.dev top-20 monitor and return changed packages plus the query status." Access depends on the Actor's publication/access state and your account. MCP discovery and autonomous payment are separate; agentic payment readiness is not claimed.

Scope and limitations

  • Top-N is limited to 200; watchlists to 50. Completion-list membership is source-controlled and does not include every published Dart package.
  • Use sequential runs per namespace. Concurrent monitor writers are unsupported.
  • EXITED tombstones are retained for 180 days, at most 20,000 per query. Returns after pruning may be NEW.
  • Optional metadata does not trigger changes. Downloads do not establish package quality, security, unique users or production adoption.
  • The public pub.dev API is free to call directly. This Actor adds Apify delivery, bounded batches, explicit statuses and saved monitoring state.
  • This Actor is independent of pub.dev, Dart and Flutter. It uses public APIs, collects no publisher emails and bypasses no access controls. HTML packages?q= and undocumented /api/search are not used.

For support, provide the run ID, package/query and error code, never your token.