checking…
Loading...
Loading...
REST API and MCP server, newest first
Every release that changes what the API or the MCP server accepts or returns is listed here. The REST version is the info.version field of the OpenAPI schema; the MCP server reports its version in the connection handshake. Breaking marks a change that can make a request that used to work fail or return something different.
October 8, 2026
https://mcp.ensemblai.com/mcp returns the OAuth sign-in challenge (HTTP 401), so Claude asks you to sign in, and a free account then has its own 10 a day. The /try address, and clients that send an empty or placeholder key, still get a message instead._trial.caps (10 rows, 6 months, monthly data). A trial call from a signed-in account that passes an argument the trial cannot apply (domain, category, offset) is refused without using a call, instead of answering without it.October 3, 2026
https://mcp.ensemblai.com/mcp without signing in now lists all 32 tools. The five trial tools work as before; calling any other tool returns an OAuth sign-in challenge (HTTP 401), so Claude asks you to sign in and runs the call once you are signed in with a Pro account. Signing in and API keys work as before. The /try address, and clients that send an empty or placeholder key (the Claude Code plugin before a key is set), still list only the five trial tools.https://clerk.ensemblai.com, without a trailing slash) and is also served at /.well-known/oauth-protected-resource.October 2, 2026
breakdown=arch adds other_arch_downloads: the downloads in neither x86_64_downloads nor arm_downloads (Windows, which reports AMD64 / ARM64; clients that report no CPU; rarer chips). The three now add up to total_downloads. It is derived from the stored counts, so it covers all history, and it is null for npm, which has no architecture split. It is also returned wherever both architecture fields are: with breakdown=full, on ensemble analytics, and on /v1/packages/{name}/metrics./v1/packages, and for the domain and category lookups behind leaderboards, time series and aggregates. Results are unchanged.llms.txt and these docs state the current classification (20 domains and 80 categories) and 2.5M pre-computed rollup rows, and the trial instructions say that a key or sign-in upgrades the same connection. The tools are unchanged.October 1, 2026
/v1/analytics/time-series returns 422 instead of 400, like every other validation error. The error code and message are unchanged./v1/leaderboards/downloads, and the MCP top_downloads tool, answer a filter value that matches no packages with a NO_MATCHING_PACKAGES warning next to the empty list. Before, the list was empty with no explanation, which reads as “nothing in this domain” when the value is usually misspelled./v1/ecosystem takes top_domains and categories_per_domain, and the /v1/reference/* lists take contains and limit. Without them the responses are exactly as before.period parameters of /v1/companies, /v1/organizations, /v1/organizations/{github_org}/packages and /v1/analytics/version-adoption list their accepted values (the schema already enumerated them); breakdown=arch says which downloads fall in neither column; compare_packages is documented as taking up to 10 names, one included.September 29, 2026
September 25, 2026
error.code, error.message and, where there is more to say, error.details. The legacy top-level detail field was removed./v1/reference/* lists take an optional ecosystem; without it they cover both ecosystems, as before.September 24, 2026
Several parameters were accepted and silently ignored or truncated. They now either work as documented or return a 422 that says why. Where the dashboard or a saved agent artifact can send a value, it is served and explained in warnings instead.
/v1/ecosystem accepts only period=30d. The map has always covered the latest complete month; 90d and 365d were accepted and ignored. For longer windows use /v1/analytics/time-series with domain aggregates.ecosystem_map tool no longer takes period; top_domains, categories_per_domain and top_packages size the answer.period on companies, organizations and version adoption is limited to its listed values; anything else returns 422 instead of being served as 30 days./v1/analytics/growth takes mom, qoq or yoy (30d, 90d and 365d are accepted as aliases), and returns 422 for anything else or for more than 25 packages, instead of cutting the list. Geography over 10 packages and version adoption over 10 versions return 422 instead of being cut.country_grouping or metric on the time series returns 422. Aggregates past the limit, or that match nothing, are named in warnings.YYYY-MM-DD on every dated endpoint; a malformed date used to fail with a 500.compare_packages refuses more than 10 names instead of dropping the rest, and tool failures are reported as errors rather than as successful results./v1/status is public and returns status, version, a timestamp and data freshness only. On API-key requests the x-ratelimit-* headers carry your real limit. Adding a package already on your watchlist returns 409.