Developers
Use the index from software
VibeLeaderboard exposes its public catalog and Intel through ordinary REST, an OpenAPI contract, read-only MCP and WebMCP tools, an agent skill, and RSS. Public MCP reads need no API key. REST reads may require a key or x402 payment when enforcement is enabled; HTTP 402 is a payment challenge. Account-specific operations and catalog writes require authentication. Start with the interface that matches your runtime, then use the same IDs to move between search results, tool details, and cited Intel.
Interfaces
OpenAPI 3.1
Typed REST contract for client generation and function calling.
Agent guide
Plain-text examples, field semantics, rate limits, and when-to-use guidance.
MCP discovery
Streamable HTTP endpoint and tool inventory.
WebMCP
Browser-local tools for WebMCP-aware agents.
Agent skill
Installable instructions for tool and Intel discovery.
News events
Durable MCP event feed with a resumable listener and handler example.
RSS
One permalinked Daily Brief edition per item.
React to news
Call MCP get_events with a saved string cursor for publications, updates, corrections and withdrawals. Poll every 120 seconds; all MCP tools share 60 calls per hour per IP. Checkpoint after successful handling and deduplicate by event ID. The feed begins at installation, without archive backfill. Your runtime runs the listener and decides which authorized actions to take; this is not a push subscription or a hosted agent runner.
Event contract and listener setup · Runnable listener and handler
WebMCP
WebMCP-aware browsers can discover five read-only tools while a VibeLeaderboard page is open: search_tools, get_app,latest_brief, search_intel, and what_changed. Calls use the same schemas and backend handlers as the remote MCP server.
Browsers without WebMCP support continue normally. Remote agents should connect to /api/mcp; WebMCP is a browser-local complement to that endpoint, not a replacement for it.
Quick start
curl 'https://www.vibeleaderboard.ai/api/v1/apps?search=local+coding+agent&limit=5'
curl https://www.vibeleaderboard.ai/api/mcp \
-H 'content-type: application/json' \
-H 'accept: application/json, text/event-stream' \
--data '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'Follow a submission
Sign in to My submissions to view your private review history and published listings. A rejected submission can receive one evidence correction for an editor to consider; this does not guarantee another review or acceptance. Submission history and corrections use your website session and are not public MCP tools or stable v1 REST operations.
Claiming a listing
A listing is claimed by proving control of its URL: a meta tag in the page, or a TXT record on its hostname. Start a challenge with a signed-in browser session on the app page, or from software with an API key. A challenge is valid for 24 hours; API keys expire after 1 hour, so create a fresh key before completing if yours has lapsed. GitHub repository listings cannot be claimed yet.
curl -X POST https://www.vibeleaderboard.ai/api/v1/apps/APP_ID/verify \
-H 'authorization: Bearer vl_sk_YOUR_KEY' \
-H 'content-type: application/json' \
--data '{"method":"meta_tag"}'
# → 201 { request_id, code, expires_at, instructions }
<meta name="vibeleaderboard" content="CODE"> # meta_tag: in the served HTML
vibeleaderboard-verify=CODE # dns_txt: TXT value, Name/Host @ or the hostname
curl -X PUT https://www.vibeleaderboard.ai/api/v1/apps/APP_ID/verify \
-H 'authorization: Bearer vl_sk_YOUR_KEY' \
-H 'content-type: application/json' \
--data '{"request_id":"REQUEST_ID"}'
# → 200 { verified: true } or 422 { error, reason }Meta tag. The listing URL is fetched as stored with the user agent VibeLeaderboard-Verify/1.0; allow it if a firewall or bot challenge blocks non-browser clients. Only redirects to the same host, the same host with www added or removed, or an http-to-https upgrade are followed; an http listing is requested over https first. The response must be 200 with an HTML content type, and only the first 1 MB is scanned. The tag must be a real element in the HTML the server sends. Tags injected by JavaScript, or appearing inside a script, comment or attribute value, do not count. Apps on a provider's subdomain must use this method.
DNS TXT. Records on the URL's hostname are checked, then on the same host with the leading www removed. The value must equal vibeleaderboard-verify=CODE exactly. Propagation can take up to an hour.
Failures are 422 with a stable reason (for example redirect_not_allowed, not_html, proof_not_found, dns_lookup_failed); an expired challenge is 410 expired. Branch on reason, not on the error text, which may change. There is no verification CLI; these two HTTP calls are the CLI path.
Versioning and deprecation
Stable REST operations carry a major version in the path, beginning with /api/v1. Backward-compatible fields may be added within v1. A breaking contract change requires a new major path.
Before removing a stable version, VibeLeaderboard publishes migration guidance, sends the RFC 9745 Deprecation header, and announces a dated Sunset header at least 90 days before removal. Rate-limited responses include structured RateLimit-Policy and RateLimitfields. A rejected request also includes Retry-After.
The error string in a failure body is human-readable and may be reworded; code and, on verification responses, reason are the stable values to branch on.
Support
Send reproducible API or MCP issues through the contact page. Include the endpoint, response status, and a redacted request. Catalog corrections and new entries use the same evidence-first review process as the public site.