BYTETOOLS

Ecosyste.ms API

Free Ecosyste.ms API with no key: package metadata, dependencies, repository data and usage statistics across 60+ package registries. Tested curl example.

No API key requiredHTTPSFree tier

Endpoint tested and returned HTTP 200 on 20 Aug 2026

What is the Ecosyste.ms API?

Ecosyste.ms is a free, key-free API providing open source ecosystem data — package metadata, dependency relationships, repository information and usage statistics — aggregated across more than 60 package registries.

Ecosyste.ms is an openly funded infrastructure project mapping the open source ecosystem as a whole rather than one registry at a time. It covers registries most tools ignore entirely, including smaller language ecosystems.

Its distinguishing angle is dependent counts: knowing how many packages depend on a given library is a far better measure of its importance than downloads, and it is data that individual registries rarely expose.

Quick facts

Base URL
https://packages.ecosyste.ms/api/v1
Authentication
No API key required. A contact email in the User-Agent is appreciated.
Rate limit
No published hard limit; the project asks for reasonable use.
Pricing
Free, grant-funded open infrastructure.
CORS
Not enabled — call it from your server
Official docs
Read the docs

How to use the Ecosyste.ms API

Every request below was executed against the live API on 20 Aug 2026, and the response shown is the real body it returned — not an illustration.

1. List supported package registries

GET https://packages.ecosyste.ms/api/v1/registries

curl
curl 'https://packages.ecosyste.ms/api/v1/registries'
JavaScript (fetch)
const res = await fetch("https://packages.ecosyste.ms/api/v1/registries");
if (!res.ok) throw new Error(`Request failed: ${res.status}`);
const data = await res.json();
console.log(data);
Python (requests)
import requests

res = requests.get("https://packages.ecosyste.ms/api/v1/registries", timeout=20)
res.raise_for_status()
print(res.json())
Response — HTTP 200 (truncated)
[
  {
    "name": "npmjs.org",
    "url": "https://registry.npmjs.org",
    "ecosystem": "npm",
    "default": true,
    "packages_count": 5760001,
    "versions_count": 75555380,
    "maintainers_count": 1232642,
    "namespaces_count": 419110,
    "keywords_count": 877561,
    "downloads": 789575299535,
    "github": "npm",
    "metadata": {
      "funded_packages_count": 188204,
      "rate_limit": 2
    },
    "icon_url": "https://github.com/npm.png",
    "purl_type": "npm",
    "created_at": "2022-04-04T15:19:23.081Z",
    "updated_at": "2026-08-20T05:03:15.932Z",
    "packages_url": "https://packages.ecosyste.ms/api/v1/registries/npmjs.org/packages",
    "maintainers_url": "https://packages.ecosyste.ms/api/v1/registries/npmjs.org/maintainers",
    "namespaces_url": "https://packages.ecosyste.ms/api/v1/registries/npmjs.org/namespaces"
  },
  {
    "name": "proxy.golang.org",
    "url": "https://proxy.golang.org",
    "ecosystem": "go",
    "default": true,
    "packages_count": 2281813,
    "versions_count": 24309759,
    "maintainers_count": 0,
    "namespaces_count": 839441,
    "keywords_count": 124461,
    "downloads": 0,
    "github": "golang",
    "metadata": {
      "funded_packages_count": 67285,
      "sync_missing_packages_cursor": {
        "timestamp": "2026-08-17T00:00:58.969562Z",
        "path": "github.com/Tektoncd/operator",
        "version": "v0.78.0"
      },
      "rate_limit": 1
    },
    "icon_url": "https://github.com/golang.png",
    "purl_type": "golang",
    "created_at": "2022-04-04T15:19:22.939Z",
    "updated_at": "2026-08-20T05:01:26.475

Parameters

ParameterTypeRequiredDescription
registriespathOptionalAll supported registries with package counts. registries
registries/<name>/packages/<pkg>pathOptionalOne package in a registry. registries/npmjs.org/packages/react
page / per_pageintegerOptionalPagination controls. 1

Response fields

namestring
Registry hostname, e.g. npmjs.org.
ecosystemstring
Ecosystem identifier such as npm or pypi.
packages_countinteger
How many packages the registry holds.
defaultboolean
Whether this is the ecosystem's canonical registry.
(package) dependent_packages_countinteger
How many packages depend on it — a better importance signal than downloads.
(package) repository_urlstring
Source repository.

What you can build with the Ecosyste.ms API

  • Measure a library's importance by dependent count rather than downloads
  • Research open source ecosystem structure across languages
  • Find packages in registries other tools do not cover
  • Support open source sustainability and funding research

Common errors and how to fix them

Registry name is a hostname

Registries are identified by domain.

Fix: Use npmjs.org, pypi.org, rubygems.org rather than short ecosystem names.

Slow on large queries

It aggregates a great deal of data.

Fix: Paginate and cache; this is grant-funded infrastructure, not a commercial CDN.

Package not found

Coverage varies by registry.

Fix: Smaller registries are indexed less completely than npm or PyPI.

Ecosyste.ms API — frequently asked questions

Is Ecosyste.ms free?

Yes, free with no API key. It is grant-funded open infrastructure, so please include a contact email in your User-Agent and cache responses.

How many registries does it cover?

More than 60, including many smaller language ecosystems that mainstream tooling ignores entirely.

What is dependent_packages_count useful for?

It measures how many other packages depend on a library, which is a much better signal of ecosystem importance than raw download counts — and something individual registries rarely expose.

How do I identify a registry?

By hostname — npmjs.org, pypi.org, rubygems.org — rather than by short ecosystem name.

Tools that pair with this API

Alternatives to Ecosyste.ms API

If Ecosyste.ms does not fit, these developer & testing apis cover similar ground. Every one was called before publishing, and each links to its own reference page with a working curl command and the response it returned.

APIWhat it doesAuthCORSLast verified
GitHub REST APIGitHub REST API with no key for public data: repository details, users, issues, releases and commits. 60 req/hour unauthenticated, 5,000 with a token.No keyYes19 Aug 2026
JSONPlaceholderFree fake REST API for testing and prototyping. Posts, comments, users and todos with full GET, POST, PUT and DELETE support. No key. Real curl examples.No keyYes19 Aug 2026
Postman EchoPostman Echo reflects your HTTP request back as JSON: headers, body, query params and auth. Free, no key, ideal for debugging clients. Real POST example.No keyNo19 Aug 2026
DummyJSONFree fake REST API with realistic products, users, carts, recipes and auth. Supports search, pagination, sorting and POST. No key. Tested GET and POST examples.No keyYes19 Aug 2026
endoflife.dateFree end-of-life API with no key: support and security-EOL dates for 300+ products — Node, Python, Ubuntu, Django, PHP and more. Tested curl example.No keyYes20 Aug 2026
Fake Store APIFree fake e-commerce API with products, categories, carts and users. Built for building shop prototypes and React tutorials. No key. Tested curl example.No keyYes19 Aug 2026
All Developer & Testing APIs

Ecosyste.ms is an independent third-party service and is not affiliated with ByteTools or ByteVancer. Details on this page were verified on 20 Aug 2026; always check the official documentation before relying on this API in production, as terms and limits can change.