NuGet v3 Feed Extractor avatar

NuGet v3 Feed Extractor

Pricing

from $0.35 / 1,000 records

Go to Apify Store
NuGet v3 Feed Extractor

NuGet v3 Feed Extractor

Point at any NuGet v3 service index (nuget.org, Azure Artifacts, MyGet, GitLab, self-hosted BaGet/Gitea) and get one structured row per package: version, downloads, tags, license, authors.

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 day ago

Last modified

Categories

Share

Point at any NuGet v3 service index and export its packages as a clean, structured dataset — one row per package, straight from the feed's own self-describing v3 API.

The NuGet v3 protocol is self-describing: a feed's service index.json advertises its capabilities as a list of resources keyed by @type (SearchQueryService, RegistrationsBaseUrl, PackageBaseAddress, …). This actor resolves the feed's own advertised search endpoint and queries it, so one actor works against every v3 feed in existence — no per-host scraper, no hardcoded endpoints.

Unlike the nuget.org-only scrapers, this runner points at any v3 feed:

  • nuget.org — the central public registry (450k+ packages)
  • Azure Artifacts — Azure DevOps package feeds
  • GitLab — the GitLab package registry
  • MyGet, JFrog Artifactory, Sonatype Nexus
  • self-hosted BaGet / Gitea / Forgejo package registries

Modes

The run mode is auto-selected from the input fields you set:

modewhenemits
searchquery is setone row per package matching the search
list (default)query is emptyone row per package the feed returns for an empty query
discoverydiscoveryOnly: truea single row describing the feed — advertised services, resource count, resolved search URL, total package count

Input

{
"indexUrl": "https://api.nuget.org/v3/index.json",
"query": "json",
"prerelease": true,
"maxRecords": 100
}
  • indexUrl (required) — the v3 service index URL. Examples: https://api.nuget.org/v3/index.json, https://www.myget.org/F/nunit/api/v3/index.json.
  • query — search term. Leave empty for list mode (all packages).
  • prerelease — include beta/rc/alpha versions (bool).
  • packageType — optional type filter (Dependency, DotnetTool, Template, …) — honoured by feeds that implement it.
  • discoveryOnly — describe the feed only (one row).
  • maxRecords — global cap; pagination stops when reached. Leave empty for everything.
  • apiKey / extraHeaders — optional auth for private feeds (sent as X-NuGet-ApiKey / raw headers). Never required for public feeds, never logged.

Output

One flat, fully-nullable row per package:

fieldexample
packageIdNewtonsoft.Json
latestVersion13.0.5-beta1
title / description / summaryJson.NET / …
authors / ownersJames Newton-King
tags["json"]
totalDownloads8621110743
verifiedtrue
versionCount54
projectUrl / licenseUrl / iconUrl
packageTypes["Dependency"]
latestVersionUrl / registrationUrl
_indexUrl / _searchUrl / _totalHitsfeed + resolved-search metadata
_rawthe lossless original search entry

Every optional field is nullable and read by key presence, so a feed that spells totalDownloads differently (nuget.org totalDownloads vs MyGet totaldownloads) or omits iconUrl/tags never drops data or crashes — it just yields null for that column.

Behaviour

  • A body that is not a v3 service index (HTML, 404 text, JSON without a resources list) fails fast with a clear message.
  • A feed that advertises no SearchQueryService fails fast honestly in search/list mode (discovery mode still reports what it does support).
  • An empty result is 0 records and a clean exit — never a crash.
  • Transient 5xx / 429 responses are retried with backoff (honours Retry-After).

Pricing

Pay-per-event: one record event per package row returned.