Data & API
AgentSpot publishes its full directory as static JSON at stable, versioned URLs. No key, no rate limit, CORS enabled — built for agents and developers.
Start here
These are files, not a query service: there are no ?q=, ?tag=, or ?sort= parameters, and adding one is ignored. Search is served by shape instead — fetch the compact index, filter it in your own process, then fetch the single listing you care about. The index is a fraction of the size of the full dataset and carries every field you need to shortlist.
curl -s https://agentspot.dev/data/index.json # all 81, search fields only
curl -s https://agentspot.dev/data/listings/agent/openclaw.json # one listing, every field
Endpoints
| URL | Contents |
|---|---|
/data/index.json | Compact index. Every active listing (81) with search fields only. Fetch this first. |
/data/listings/<id>.json | A single listing, in full — the id verbatim, e.g. /data/listings/agent/openclaw.json. |
/data/all.json | Every active listing with every published field. |
/data/agents.json | Agents (27), in full. |
/data/skills.json | Skills (15), in full. |
/data/tools.json | Tools (21), in full. |
/data/coding.json | Coding (10), in full. |
/data/learn.json | Learn (8), in full. |
/data/schema.json | JSON Schema (2020-12) for every payload above. |
/data/openapi.json | OpenAPI 3.1 description of these endpoints. |
/.well-known/agent.json | Discovery document — every URL on this page, machine-readable, so nothing has to be guessed. |
Shape
Every payload is the same envelope: a _license attribution block, a generated timestamp, an api_version, a count, and a listings array — even the single-listing files, so one parser handles all of them. Internal bookkeeping (raw metric history, review notes) is never published.
{
"_license": "CC-BY-4.0",
"_license_url": "https://creativecommons.org/licenses/by/4.0/",
"_attribution": "Data from AgentSpot (https://agentspot.dev)",
"api_version": 2,
"generated": "…",
"count": 81,
"listings": [ … ]
}
Listing fields
Fields marked index also appear in the compact index; the rest are in the full payloads only.
| Field | Type | Meaning |
|---|---|---|
id index |
string |
Stable identifier, `<category>/<slug>`. Never reused. |
name index |
string |
The project's own name. |
category index |
string |
One of: agent, skill, tool, coding, education. |
description index |
string |
A one- or two-sentence summary written by us — never copied from the README. |
url index |
string |
Canonical AgentSpot page for this listing. |
repo_url index |
string |
Source repository. Read this before running anything. |
website_url |
string ∣ null |
The project's own site or docs, when it has one. |
license |
string |
SPDX identifier where GitHub could classify it, otherwise "Other (see repo)". |
package index |
object ∣ null |
Registry coordinates for the published package, when one exists. `null` means the project is installed from source. |
install index |
string ∣ null |
One-line install command derived from `package`. A starting point, not a substitute for the project's own instructions — check the repo for required flags, runtimes, and configuration. |
can_run_locally index |
boolean ∣ null |
Whether the project can run entirely on your own machine, with no required hosted service. `null` where the question does not apply (a book, a prompt pack) or has not been assessed. |
is_mcp_server index |
boolean |
Heuristic: the project describes itself with MCP (Model Context Protocol) topics. A shortlisting hint, not a verified capability — we do not currently publish per-listing MCP endpoint URLs or config snippets. |
open_source |
boolean |
False for listings whose source is not publicly available. |
first_party |
boolean |
True for tools published by the lab or vendor whose model they serve. |
derivative_of |
object ∣ null |
Set when this listing is a fork that has overtaken the project it came from; points back at the original. |
github_stars index |
integer ∣ null |
Stars at `last_verified`. |
downloads |
object ∣ null |
Downloads over the trailing 7 days, from the registry named in `source`. Container pulls count restarts as well as installs, so they are discounted in the score. |
popularity_score index |
number ∣ null |
Composite 0–100 score. `null` when the listing is `unranked`. The formula is published at /methodology/. |
unranked |
boolean |
Listed and shown, but deliberately excluded from popularity ordering. `editorial_note` says why. |
growth |
object ∣ null |
Change over the trailing week, held steady between weekly updates. `null` until a listing has enough history. |
tags index |
array |
The project's own repository topics, lightly cleaned. |
first_listed |
string |
The date this listing first appeared here. |
last_verified |
string |
The date the metrics above were last refreshed from public APIs. |
editorial_note |
string ∣ null |
A public note from us, where a listing needs one. |
sponsored |
object |
Sponsorship never affects inclusion, ordering, or `popularity_score`. `active` is false on every listing today. |
tier |
string |
"standard" for every listing today; reserved for a future curated tier. |
curation |
object ∣ null |
Reserved for future independent evaluation results. `null` today. |
On install: it is derived mechanically from the package a project publishes, and it is a starting point rather than an instruction. Nothing here is vetted; read the repository, pin the version, and prefer rebuilding a capability from source over installing an artifact blindly. See the disclaimer.
Stability
api_version is 2. Listing ids are stable and never reused. New fields may be added without a version bump — parse defensively and ignore what you do not recognise; removing or retyping a field would bump the version.
Licensing & attribution
Factual data (names, star counts, links) is not copyrightable, but we publish the compiled dataset under CC-BY-4.0: reuse it freely with attribution to AgentSpot (https://agentspot.dev). The same license is declared in every payload and in llms.txt.
For LLMs & answer engines
An orientation file for AI crawlers lives at llms.txt (mirrored at /.well-known/llms.txt), with a full prose index of every listing at llms-full.txt. Every page carries Schema.org JSON-LD, and new listings are announced in the RSS feed. We deliberately welcome AI crawlers — see our robots.txt.