{"openapi":"3.1.0","info":{"title":"Agent Mart API","version":"1.0.0","description":"Search and read the Agent Mart catalog of AI agent building blocks: MCP servers, skills, plugins, frameworks, models and more, with install configs and automated freshness and security grades. No key needed for light use (60 requests per hour per IP); keys raise the limits. Attribution required: \"Data from Agent Mart\" with a link to https://agentmart.dev.","contact":{"name":"Agent Mart","url":"https://agentmart.dev/developers"},"license":{"name":"Agent Mart API terms (draft)","url":"https://agentmart.dev/developers#terms"}},"servers":[{"url":"https://agentmart.dev/api/v1"}],"security":[{},{"apiKey":[]}],"paths":{"/search":{"get":{"operationId":"search","summary":"Search listings","parameters":[{"name":"q","in":"query","required":false,"description":"Search text. Typos, synonyms and words like \"mcp\" or \"skill\" are understood.","schema":{"description":"Search text. Typos, synonyms and words like \"mcp\" or \"skill\" are understood.","type":"string","maxLength":200}},{"name":"type","in":"query","required":false,"description":"Listing type","schema":{"type":"string","enum":["connector","skill","plugin","harness","agent","builder","model","infrastructure","observability","identity","template","reference"],"description":"Listing type"}},{"name":"host","in":"query","required":false,"description":"Only listings that work with this host","schema":{"description":"Only listings that work with this host","type":"string","enum":["claude-code","codex","cursor","vscode","windsurf","claude-desktop","gemini-cli","github-copilot","claude-apps","mcp-json","agents-dir","claude-code-project","claude-code-cli","vscodium","skills-cli","opencode","goose","download"]}},{"name":"transport","in":"query","required":false,"schema":{"type":"string","enum":["streamable-http","sse","stdio"]}},{"name":"auth","in":"query","required":false,"schema":{"type":"string","enum":["none","api-key","oauth","bearer","unknown"]}},{"name":"license","in":"query","required":false,"schema":{"type":"string","enum":["open-source"]}},{"name":"official","in":"query","required":false,"description":"true: only listings from the product's own publisher","schema":{"description":"true: only listings from the product's own publisher","type":"string"}},{"name":"include_low","in":"query","required":false,"description":"true: include listings below the quality bar","schema":{"description":"true: include listings below the quality bar","type":"string"}},{"name":"read_only","in":"query","required":false,"description":"true: only listings whose tools are all known and only read (none write, delete or are unclassified)","schema":{"description":"true: only listings whose tools are all known and only read (none write, delete or are unclassified)","type":"string"}},{"name":"live","in":"query","required":false,"description":"true: only remote connectors that answered their last daily check (up, or asking for auth)","schema":{"description":"true: only remote connectors that answered their last daily check (up, or asking for auth)","type":"string"}},{"name":"no_secrets","in":"query","required":false,"description":"true: only listings whose permission manifest asks for no API keys, tokens or passwords","schema":{"description":"true: only listings whose permission manifest asks for no API keys, tokens or passwords","type":"string"}},{"name":"sort","in":"query","required":false,"schema":{"default":"relevance","type":"string","enum":["relevance","rank","newest","stars","downloads","updated","name"]}},{"name":"limit","in":"query","required":false,"schema":{"default":20,"type":"integer","minimum":1,"maximum":100}},{"name":"cursor","in":"query","required":false,"description":"Opaque cursor from the previous page's next_cursor","schema":{"description":"Opaque cursor from the previous page's next_cursor","type":"string","maxLength":40}}],"responses":{"200":{"description":"Results, same ranking as the website","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SearchResponse"}}}},"400":{"description":"Bad parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited; see Retry-After","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"},"Retry-After":{"schema":{"type":"integer"},"description":"Seconds to wait"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/listings/{type}/{slug}":{"get":{"operationId":"getListing","summary":"One listing","parameters":[{"name":"type","in":"path","required":true,"description":"Type slug as in the site URL, e.g. connectors, skills, plugins","schema":{"type":"string"}},{"name":"slug","in":"path","required":true,"description":"Listing slug","schema":{"type":"string"}},{"name":"fields","in":"query","required":false,"description":"Comma-separated top-level fields to return, e.g. id,name,grades","schema":{"description":"Comma-separated top-level fields to return, e.g. id,name,grades","type":"string","maxLength":400}},{"name":"expand","in":"query","required":false,"description":"Comma-separated: tools, relations, sources","schema":{"description":"Comma-separated: tools, relations, sources","type":"string","maxLength":100}}],"responses":{"200":{"description":"The listing","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListingDetail"}}}},"400":{"description":"Bad parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited; see Retry-After","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"},"Retry-After":{"schema":{"type":"integer"},"description":"Seconds to wait"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/listings/{type}/{slug}/install":{"get":{"operationId":"getInstall","summary":"Install command or config for one host","parameters":[{"name":"type","in":"path","required":true,"description":"Type slug as in the site URL, e.g. connectors, skills, plugins","schema":{"type":"string"}},{"name":"slug","in":"path","required":true,"description":"Listing slug","schema":{"type":"string"}},{"name":"host","in":"query","required":true,"description":"Host to install into","schema":{"type":"string","enum":["claude-code","codex","cursor","vscode","windsurf","claude-desktop","gemini-cli","github-copilot","claude-apps","mcp-json","agents-dir","claude-code-project","claude-code-cli","vscodium","skills-cli","opencode","goose","download"],"description":"Host to install into"}}],"responses":{"200":{"description":"Install options for the host","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstallResponse"}}}},"400":{"description":"Bad parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited; see Retry-After","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"},"Retry-After":{"schema":{"type":"integer"},"description":"Seconds to wait"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/listings/{type}/{slug}/alternatives":{"get":{"operationId":"getAlternatives","summary":"Similar listings of the same type","parameters":[{"name":"type","in":"path","required":true,"description":"Type slug as in the site URL, e.g. connectors, skills, plugins","schema":{"type":"string"}},{"name":"slug","in":"path","required":true,"description":"Listing slug","schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"schema":{"default":10,"type":"integer","minimum":1,"maximum":50}}],"responses":{"200":{"description":"Nearest listings by description embedding","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AlternativesResponse"}}}},"400":{"description":"Bad parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited; see Retry-After","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"},"Retry-After":{"schema":{"type":"integer"},"description":"Seconds to wait"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/compare":{"get":{"operationId":"compare","summary":"Compare 2 to 4 listings","parameters":[{"name":"ids","in":"query","required":true,"description":"2 to 4 listing ids, comma-separated (connector:io.github.foo/bar)","schema":{"description":"2 to 4 listing ids, comma-separated (connector:io.github.foo/bar)","type":"string"}}],"responses":{"200":{"description":"Full details side by side","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompareResponse"}}}},"400":{"description":"Bad parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited; see Retry-After","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"},"Retry-After":{"schema":{"type":"integer"},"description":"Seconds to wait"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/types":{"get":{"operationId":"listTypes","summary":"Listing types with counts","responses":{"200":{"description":"Types","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TypesResponse"}}}},"400":{"description":"Bad parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited; see Retry-After","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"},"Retry-After":{"schema":{"type":"integer"},"description":"Seconds to wait"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/taxonomy":{"get":{"operationId":"taxonomy","summary":"Ids accepted by the search filters","responses":{"200":{"description":"Types, hosts, transports, auth methods, protocols","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TaxonomyResponse"}}}},"400":{"description":"Bad parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited; see Retry-After","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"},"Retry-After":{"schema":{"type":"integer"},"description":"Seconds to wait"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/publishers/{slug}":{"get":{"operationId":"getPublisher","summary":"A publisher and its top listings","parameters":[{"name":"slug","in":"path","required":true,"description":"gh-<org> or dns-<domain>","schema":{"type":"string"}}],"responses":{"200":{"description":"The publisher","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublisherResponse"}}}},"400":{"description":"Bad parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited; see Retry-After","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"},"Retry-After":{"schema":{"type":"integer"},"description":"Seconds to wait"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/listings/{type}/{slug}/reviews":{"get":{"operationId":"getReviews","summary":"Published reviews of a listing","parameters":[{"name":"type","in":"path","required":true,"description":"Type slug as in the site URL, e.g. connectors, skills, plugins","schema":{"type":"string"}},{"name":"slug","in":"path","required":true,"description":"Listing slug","schema":{"type":"string"}},{"name":"host","in":"query","required":false,"schema":{"type":"string","maxLength":40,"pattern":"^[a-z0-9-]+$"}},{"name":"version","in":"query","required":false,"schema":{"type":"string","maxLength":80}},{"name":"limit","in":"query","required":false,"schema":{"default":20,"type":"integer","minimum":1,"maximum":50}},{"name":"cursor","in":"query","required":false,"schema":{"type":"string","maxLength":40}}],"responses":{"200":{"description":"Reviews, newest first, with the aggregate","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReviewsResponse"}}}},"400":{"description":"Bad parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited; see Retry-After","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"},"Retry-After":{"schema":{"type":"integer"},"description":"Seconds to wait"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/stacks":{"get":{"operationId":"listStacks","summary":"Public stacks","parameters":[{"name":"use_case","in":"query","required":false,"description":"Use case id, e.g. coding, data, research, support","schema":{"description":"Use case id, e.g. coding, data, research, support","type":"string","maxLength":60,"pattern":"^[a-z-]+$"}},{"name":"host","in":"query","required":false,"description":"Only stacks that install fully into this host","schema":{"description":"Only stacks that install fully into this host","type":"string","enum":["claude-code","codex","cursor","vscode","windsurf","gemini-cli","claude-desktop"]}},{"name":"sort","in":"query","required":false,"schema":{"default":"installs","type":"string","enum":["installs","newest"]}},{"name":"limit","in":"query","required":false,"schema":{"default":24,"type":"integer","minimum":1,"maximum":100}},{"name":"cursor","in":"query","required":false,"description":"Opaque cursor from the previous page's next_cursor","schema":{"description":"Opaque cursor from the previous page's next_cursor","type":"string","maxLength":40}}],"responses":{"200":{"description":"Stacks, most installed first by default","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StacksResponse"}}}},"400":{"description":"Bad parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited; see Retry-After","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"},"Retry-After":{"schema":{"type":"integer"},"description":"Seconds to wait"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/stacks/{slug}":{"get":{"operationId":"getStack","summary":"One stack and its items","parameters":[{"name":"slug","in":"path","required":true,"description":"Stack slug","schema":{"type":"string"}}],"responses":{"200":{"description":"The stack","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StackDetail"}}}},"400":{"description":"Bad parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited; see Retry-After","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"},"Retry-After":{"schema":{"type":"integer"},"description":"Seconds to wait"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/stacks/{slug}/install-plan":{"get":{"operationId":"getStackInstallPlan","summary":"What installing the stack into one host does","parameters":[{"name":"slug","in":"path","required":true,"description":"Stack slug","schema":{"type":"string"}},{"name":"host","in":"query","required":true,"description":"Host to install the stack into","schema":{"type":"string","enum":["claude-code","codex","cursor","vscode","windsurf","gemini-cli","claude-desktop"],"description":"Host to install the stack into"}}],"responses":{"200":{"description":"One action per item, and the items this host cannot take","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StackInstallPlan"}}}},"400":{"description":"Bad parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited; see Retry-After","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"},"Retry-After":{"schema":{"type":"integer"},"description":"Seconds to wait"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/stats":{"get":{"operationId":"stats","summary":"Catalog size and last sync","responses":{"200":{"description":"Counts","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StatsResponse"}}}},"400":{"description":"Bad parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited; see Retry-After","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"},"Retry-After":{"schema":{"type":"integer"},"description":"Seconds to wait"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"components":{"schemas":{"ListingSummary":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["connector","skill","plugin","harness","agent","builder","model","infrastructure","observability","identity","template","reference"],"description":"Listing type"},"slug":{"type":"string"},"name":{"type":"string"},"tagline":{"type":"string"},"url":{"type":"string"},"api_url":{"type":"string"},"publisher":{"type":"object","properties":{"name":{"type":"string"},"official":{"type":"boolean"},"verified_by":{"type":["string","null"]}},"required":["name","official","verified_by"],"additionalProperties":false},"license":{"type":"object","properties":{"kind":{"type":"string"},"spdx":{"type":["string","null"]}},"required":["kind","spdx"],"additionalProperties":false},"pricing":{"type":"string"},"hosts":{"type":"array","items":{"type":"string"}},"transports":{"type":"array","items":{"type":"string"}},"github_stars":{"type":["number","null"]},"weekly_downloads":{"type":["number","null"]},"last_release_at":{"type":["string","null"]},"grades":{"type":"object","properties":{"freshness":{"anyOf":[{"type":"string","enum":["A","B","C","D","F"]},{"type":"null"}],"description":"A–F from release and commit recency (automated)"},"security":{"anyOf":[{"type":"string","enum":["A","B","C","D","F"]},{"type":"null"}],"description":"A–F from static scans (automated); null until graded"}},"required":["freshness","security"],"additionalProperties":false},"rank_score":{"type":"number"},"quality_tier":{"type":["string","null"]},"read_only":{"description":"true: tools are known and none write or delete; null until the permission manifest is built","type":["boolean","null"]},"secrets_count":{"description":"Secrets (API keys, tokens) it asks for; null until the permission manifest is built","type":["number","null"]},"live_status":{"description":"Last daily check of the remote endpoint: up, auth_required, down, timeout, invalid_protocol, dns_error, tls_error, blocked (not checkable); null if never checked","type":["string","null"]},"uptime_30d":{"description":"Percent of daily checks in the last 30 days that answered","type":["number","null"]}},"required":["id","type","slug","name","tagline","url","api_url","publisher","license","pricing","hosts","transports","github_stars","weekly_downloads","last_release_at","grades","rank_score","quality_tier"],"additionalProperties":false},"InstallOption":{"type":"object","properties":{"host":{"type":"string"},"method":{"type":"string"},"command":{"type":["string","null"]},"config":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},{"type":"null"}]},"env_vars":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"description":{"type":["string","null"]},"required":{"type":"boolean"},"secret":{"type":"boolean"}},"required":["name","description","required","secret"],"additionalProperties":false}},"notes":{"type":["string","null"]}},"required":["host","method","command","config","env_vars","notes"],"additionalProperties":false},"ListingDetail":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["connector","skill","plugin","harness","agent","builder","model","infrastructure","observability","identity","template","reference"],"description":"Listing type"},"slug":{"type":"string"},"name":{"type":"string"},"tagline":{"type":"string"},"url":{"type":"string"},"api_url":{"type":"string"},"publisher":{"type":"object","properties":{"name":{"type":"string"},"official":{"type":"boolean"},"verified_by":{"type":["string","null"]}},"required":["name","official","verified_by"],"additionalProperties":false},"license":{"type":"object","properties":{"kind":{"type":"string"},"spdx":{"type":["string","null"]}},"required":["kind","spdx"],"additionalProperties":false},"pricing":{"type":"string"},"hosts":{"type":"array","items":{"type":"string"}},"transports":{"type":"array","items":{"type":"string"}},"github_stars":{"type":["number","null"]},"weekly_downloads":{"type":["number","null"]},"last_release_at":{"type":["string","null"]},"grades":{"type":"object","properties":{"freshness":{"anyOf":[{"type":"string","enum":["A","B","C","D","F"]},{"type":"null"}],"description":"A–F from release and commit recency (automated)"},"security":{"anyOf":[{"type":"string","enum":["A","B","C","D","F"]},{"type":"null"}],"description":"A–F from static scans (automated); null until graded"}},"required":["freshness","security"],"additionalProperties":false},"rank_score":{"type":"number"},"quality_tier":{"type":["string","null"]},"read_only":{"description":"true: tools are known and none write or delete; null until the permission manifest is built","type":["boolean","null"]},"secrets_count":{"description":"Secrets (API keys, tokens) it asks for; null until the permission manifest is built","type":["number","null"]},"live_status":{"description":"Last daily check of the remote endpoint: up, auth_required, down, timeout, invalid_protocol, dns_error, tls_error, blocked (not checkable); null if never checked","type":["string","null"]},"uptime_30d":{"description":"Percent of daily checks in the last 30 days that answered","type":["number","null"]},"description":{"type":"string"},"status":{"type":"string"},"repo_url":{"type":["string","null"]},"homepage_url":{"type":["string","null"]},"docs_url":{"type":["string","null"]},"protocols":{"type":"array","items":{"type":"string"}},"tags":{"type":"array","items":{"type":"string"}},"install":{"type":"array","items":{"$ref":"#/components/schemas/InstallOption"}},"first_seen_at":{"type":["string","null"]},"last_checked_at":{"type":["string","null"]},"tools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"description":{"type":["string","null"]}},"required":["name","description"],"additionalProperties":false}},"relations":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"array","items":{"type":"string"}}},"sources":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"url":{"type":"string"},"fetched_at":{"type":"string"}},"required":["name","url","fetched_at"],"additionalProperties":false}}},"required":["id","type","slug","name","tagline","url","api_url","publisher","license","pricing","hosts","transports","github_stars","weekly_downloads","last_release_at","grades","rank_score","quality_tier","description","status","repo_url","homepage_url","docs_url","protocols","tags","install","first_seen_at","last_checked_at"],"additionalProperties":false},"SearchResponse":{"type":"object","properties":{"query":{"type":"object","properties":{"q":{"type":["string","null"]},"type":{"type":["string","null"]},"host":{"type":["string","null"]},"sort":{"type":"string"},"limit":{"type":"number"},"engine":{"type":"string"},"rewrite":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},{"type":"null"}]}},"required":["q","type","host","sort","limit","engine","rewrite"],"additionalProperties":false},"total":{"type":"number"},"results":{"type":"array","items":{"$ref":"#/components/schemas/ListingSummary"}},"next_cursor":{"type":["string","null"]}},"required":["query","total","results","next_cursor"],"additionalProperties":false},"InstallResponse":{"type":"object","properties":{"id":{"type":"string"},"host":{"type":"string"},"options":{"type":"array","items":{"$ref":"#/components/schemas/InstallOption"}},"other_hosts":{"type":"array","items":{"type":"string"}},"note":{"type":"string"}},"required":["id","host","options","other_hosts","note"],"additionalProperties":false},"AlternativesResponse":{"type":"object","properties":{"id":{"type":"string"},"method":{"type":"string"},"results":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["connector","skill","plugin","harness","agent","builder","model","infrastructure","observability","identity","template","reference"],"description":"Listing type"},"slug":{"type":"string"},"name":{"type":"string"},"tagline":{"type":"string"},"url":{"type":"string"},"grades":{"type":"object","properties":{"freshness":{"anyOf":[{"type":"string","enum":["A","B","C","D","F"]},{"type":"null"}],"description":"A–F from release and commit recency (automated)"},"security":{"anyOf":[{"type":"string","enum":["A","B","C","D","F"]},{"type":"null"}],"description":"A–F from static scans (automated); null until graded"}},"required":["freshness","security"],"additionalProperties":false},"rank_score":{"type":"number"},"similarity":{"type":"number"}},"required":["id","type","slug","name","tagline","url","grades","rank_score","similarity"],"additionalProperties":false}}},"required":["id","method","results"],"additionalProperties":false},"CompareResponse":{"type":"object","properties":{"results":{"type":"array","items":{"$ref":"#/components/schemas/ListingDetail"}},"missing":{"type":"array","items":{"type":"string"}}},"required":["results","missing"],"additionalProperties":false},"TypesResponse":{"type":"object","properties":{"types":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string"},"label":{"type":"string"},"description":{"type":"string"},"url":{"type":"string"},"visible_listings":{"type":"number"}},"required":["type","label","description","url","visible_listings"],"additionalProperties":false}}},"required":["types"],"additionalProperties":false},"TaxonomyResponse":{"type":"object","properties":{"types":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"label":{"type":"string"}},"required":["id","label"],"additionalProperties":false}},"hosts":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"label":{"type":"string"}},"required":["id","label"],"additionalProperties":false}},"transports":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"label":{"type":"string"}},"required":["id","label"],"additionalProperties":false}},"auth":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"label":{"type":"string"}},"required":["id","label"],"additionalProperties":false}},"protocols":{"type":"array","items":{"type":"string"}}},"required":["types","hosts","transports","auth","protocols"],"additionalProperties":false},"PublisherResponse":{"type":"object","properties":{"slug":{"type":"string"},"id":{"type":"string"},"name":{"type":"string"},"kind":{"type":"string"},"url":{"type":["string","null"]},"official":{"type":"boolean"},"verified_by":{"type":["string","null"]},"listing_count":{"type":"number"},"visible_listing_count":{"type":"number"},"top_listings":{"type":"array","items":{"$ref":"#/components/schemas/ListingSummary"}}},"required":["slug","id","name","kind","url","official","verified_by","listing_count","visible_listing_count","top_listings"],"additionalProperties":false},"StatsResponse":{"type":"object","properties":{"visible_listings":{"type":"number"},"by_type":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"number"}},"last_synced_at":{"type":["string","null"]}},"required":["visible_listings","by_type","last_synced_at"],"additionalProperties":false},"Error":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs_url":{"type":"string"}},"required":["code","message","docs_url"],"additionalProperties":false}},"required":["error"],"additionalProperties":false},"StackSummary":{"type":"object","properties":{"slug":{"type":"string"},"title":{"type":"string"},"summary":{"type":"string"},"use_case":{"type":["string","null"]},"hosts":{"type":"array","items":{"type":"string"},"description":"Hosts every required item installs into"},"is_editorial":{"type":"boolean"},"install_count":{"type":"number"},"item_count":{"type":"number"},"url":{"type":"string"},"api_url":{"type":"string"},"created_at":{"type":"string"},"updated_at":{"type":"string"}},"required":["slug","title","summary","use_case","hosts","is_editorial","install_count","item_count","url","api_url","created_at","updated_at"],"additionalProperties":false},"StackDetail":{"type":"object","properties":{"slug":{"type":"string"},"title":{"type":"string"},"summary":{"type":"string"},"use_case":{"type":["string","null"]},"hosts":{"type":"array","items":{"type":"string"},"description":"Hosts every required item installs into"},"is_editorial":{"type":"boolean"},"install_count":{"type":"number"},"url":{"type":"string"},"api_url":{"type":"string"},"created_at":{"type":"string"},"updated_at":{"type":"string"},"body_md":{"type":"string"},"visibility":{"type":"string","enum":["public","unlisted","private"]},"owner":{"anyOf":[{"type":"object","properties":{"name":{"type":"string"},"github_login":{"type":["string","null"]}},"required":["name","github_login"],"additionalProperties":false},{"type":"null"}]},"installable_hosts":{"type":"array","items":{"type":"string"}},"items":{"type":"array","items":{"type":"object","properties":{"listing_id":{"type":"string"},"ref":{"type":"string","description":"type/slug, what the CLI takes"},"name":{"type":"string"},"tagline":{"type":"string"},"required":{"type":"boolean"},"note":{"type":["string","null"]},"position":{"type":"number"},"grades":{"type":"object","properties":{"freshness":{"anyOf":[{"type":"string","enum":["A","B","C","D","F"]},{"type":"null"}],"description":"A–F from release and commit recency (automated)"},"security":{"anyOf":[{"type":"string","enum":["A","B","C","D","F"]},{"type":"null"}],"description":"A–F from static scans (automated); null until graded"}},"required":["freshness","security"],"additionalProperties":false},"hosts":{"type":"array","items":{"type":"string"}},"url":{"type":"string"}},"required":["listing_id","ref","name","tagline","required","note","position","grades","hosts","url"],"additionalProperties":false}}},"required":["slug","title","summary","use_case","hosts","is_editorial","install_count","url","api_url","created_at","updated_at","body_md","visibility","owner","installable_hosts","items"],"additionalProperties":false},"StacksResponse":{"type":"object","properties":{"total":{"type":"number"},"results":{"type":"array","items":{"$ref":"#/components/schemas/StackSummary"}},"next_cursor":{"type":["string","null"]}},"required":["total","results","next_cursor"],"additionalProperties":false},"StackInstallPlan":{"type":"object","properties":{"schemaVersion":{"type":"string","const":"1.0"},"stack":{"type":"object","properties":{"slug":{"type":"string"},"title":{"type":"string"},"url":{"type":"string"}},"required":["slug","title","url"],"additionalProperties":false},"host":{"type":"string","enum":["claude-code","codex","cursor","vscode","windsurf","gemini-cli","claude-desktop"]},"complete":{"type":"boolean","description":"true when every required item installs into this host"},"actions":{"type":"array","items":{"type":"object","properties":{"listingId":{"type":"string"},"ref":{"type":"string"},"name":{"type":"string"},"required":{"type":"boolean"},"method":{"type":"string","enum":["mcp-config","skill","plugin","command","manual"]},"command":{"type":["string","null"]},"configPatch":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},{"type":"null"}]},"envVars":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"description":{"type":["string","null"]},"required":{"type":"boolean"},"secret":{"type":"boolean"}},"required":["name","description","required","secret"],"additionalProperties":false}},"securityGrade":{"anyOf":[{"type":"string","enum":["A","B","C","D","F"]},{"type":"null"}]},"note":{"type":["string","null"]},"url":{"type":"string"}},"required":["listingId","ref","name","required","method","command","configPatch","envVars","securityGrade","note","url"],"additionalProperties":false}},"unsupported":{"type":"array","items":{"type":"object","properties":{"listingId":{"type":"string"},"ref":{"type":"string"},"name":{"type":"string"},"required":{"type":"boolean"},"reason":{"type":"string"},"url":{"type":"string"},"alternatives":{"type":"array","items":{"type":"object","properties":{"listingId":{"type":"string"},"ref":{"type":"string"},"name":{"type":"string"},"url":{"type":"string"}},"required":["listingId","ref","name","url"],"additionalProperties":false}}},"required":["listingId","ref","name","required","reason","url","alternatives"],"additionalProperties":false}},"envVars":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"description":{"type":["string","null"]},"required":{"type":"boolean"},"secret":{"type":"boolean"}},"required":["name","description","required","secret"],"additionalProperties":false},"description":"Env vars across all items; values are never included"},"generatedAt":{"type":"string"}},"required":["schemaVersion","stack","host","complete","actions","unsupported","envVars","generatedAt"],"additionalProperties":false},"ReviewsResponse":{"type":"object","properties":{"id":{"type":"string"},"summary":{"type":"object","properties":{"count":{"type":"number"},"average_rating":{"type":["number","null"]},"worked_first_try_rate":{"type":["number","null"]}},"required":["count","average_rating","worked_first_try_rate"],"additionalProperties":false},"total":{"type":"number"},"results":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"listing_version":{"type":"string"},"host":{"type":"string"},"os":{"type":["string","null"]},"worked_first_try":{"type":"boolean"},"time_to_success":{"type":"string","enum":["lt5m","5to30m","30mto2h","gt2h","never"]},"rating":{"type":"integer","minimum":1,"maximum":5},"body":{"type":"string"},"verification":{"type":"string","enum":["install","github"],"description":"install: the author installed it with the logged-in CLI; github: an established GitHub account"},"author":{"anyOf":[{"type":"object","properties":{"name":{"type":"string"},"github_login":{"type":["string","null"]}},"required":["name","github_login"],"additionalProperties":false},{"type":"null"}]},"publisher_reply":{"type":["string","null"]},"publisher_reply_at":{"type":["string","null"]},"created_at":{"type":"string"}},"required":["id","listing_version","host","os","worked_first_try","time_to_success","rating","body","verification","author","publisher_reply","publisher_reply_at","created_at"],"additionalProperties":false}},"next_cursor":{"type":["string","null"]}},"required":["id","summary","total","results","next_cursor"],"additionalProperties":false}},"securitySchemes":{"apiKey":{"type":"http","scheme":"bearer","description":"API key: Authorization: Bearer am_live_…"}},"headers":{"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-RateLimit-Reset":{"schema":{"type":"integer"},"description":"Unix time when the window resets"}}}}