api reference · v1

Query 6wdb from code or from an agent.

Everything on this site is available as JSON. Reads need no key. Writing telemetry needs a free, self-serve API key. Base URL: this host.

also: openapi.json · interactive console · llms.txt · agent skill file

GET /api/v1/tools/{slug}

One tool, same shape as a search result plus reviews (count), created_at, and two relation lists: alternatives (similar tools, from embeddings within the same kind + domain) and works_with (complementary tools), each an array of {slug, name}. Returns 404 if the slug is unknown. Slugs appear in search results and in site URLs (/agents/{slug}).

curl "http://6wdb.com/api/v1/tools/langgraph"
POST /api/v1/keys

Register an API key. Only needed to write telemetry - every read endpoint is open. The key is returned once; store it. Limit: 5 registrations per address per hour.

fieldrequiredmeaning
nameyesWho or what reports - e.g. “acme-orchestrator”.
contactnoEmail or URL, used only to reach you about abuse.
curl -X POST "http://6wdb.com/api/v1/keys" \
  -H "content-type: application/json" \
  -d '{"name": "my-agent", "contact": "[email protected]"}'

{ "key_id": "…", "api_key": "6wdb_…", "note": "Shown once. …" }
POST /api/v1/telemetry

Report what happened when you executed a tool from this directory. Reports are proof-of-execution, not opinions - send the outcome you observed. Requires the X-API-Key header.

fieldrequiredmeaning
tool_slugyesThe tool you executed.
execution_statusyessuccess · schema_error · runtime_error · timeout
latency_msnoWall-clock time of the call.
tokens_consumednoTokens the tool interaction cost you.
error_messagenoShort error text when status isn’t success.
curl -X POST "http://6wdb.com/api/v1/telemetry" \
  -H "X-API-Key: 6wdb_…" -H "content-type: application/json" \
  -d '{"tool_slug": "playwright-mcp", "execution_status": "success", "latency_ms": 420}'

{ "recorded": true, "tool_slug": "playwright-mcp", "proof_score": 80.0,
  "success_rate": 75.0, "reports": 4 }

Limits: 30 reports per key per minute. Bursts of identical reports flag the key, block further writes, and retroactively remove all of its reports from every score. Report only executions that actually happened.

POST /api/v1/reviews - human star ratings - is closed until sign-in with GitHub launches, so stars can’t be botted. Agents: report telemetry instead.
POST /api/v1/submit

Two ways in. Humans: fill the form at /submit, in your own words. Agents / authors: add a 6w.json to your repository root - your six-word pitch, six Ws, and optional watch note, used verbatim, no LLM rewriting - then POST the repo URL below. Either way it lands in a review queue and a human approves it before it goes live. Schema: /static/6w.schema.json.

// 6w.json - at your repository root
{
  "name": "Your Tool",
  "kind": "MCP Server",
  "domains": ["Automation & Integration"],
  "tags": ["Python", "Docker"],
  "six_word_summary": "Exactly six words that pitch it.",
  "who":   "Who builds or backs it.",
  "what":  "The main capability.",
  "where": "Runtime / environment it runs in.",
  "when":  "When an agent should reach for it.",
  "why":   "The problem it removes.",
  "with":  "Key dependencies and integrations.",
  "watch": "Install-risk: credentials, outbound calls, maintainer (optional).",
  "docs_url": "https://…"
}
curl -X POST "http://6wdb.com/api/v1/submit" \
  -H "content-type: application/json" \
  -d '{"repo_url": "https://github.com/you/your-tool"}'

{ "status": "held_for_review", "owner_repo": "you/your-tool",
  "six_word_summary": "Exactly six words that pitch it." }

Errors say exactly what to fix - a missing file, a pitch that isn’t six words, an unknown kind or domain. 409 means the tool is already listed or queued. Discovery also reads 6w.json automatically: repos that carry one are ingested with their own words.

scoring

The Proof Score

A 0-100 measure of whether a tool works when agents actually run it - built on evidence, not stars alone.

weightcomponentsource
60%Execution success rateVerified telemetry reports
25%Human star ratingSigned-in human reviews (once open)
15%RecencyFull credit within 7 days of the last report, fading to zero at 90

Weights renormalise over the components that have data, so a tool with telemetry but no reviews still scores. No data at all means unrated (null) - never a default number.

Anti-farming (v2). Since keys are self-serve and telemetry is self-reported, the score assumes adversaries: one key, one vote (per-key success rates are blended, so 10,000 reports from a key count the same as one); votes are weighted by key age (0.2 rising to 1.0 over 30 days, so burner keys start nearly voiceless); and reports from flagged or revoked keys are excluded from every score, retroactively. The formula version ships as proof_score_version beside each score.

native mcp

6wdb is itself an MCP server

Point any MCP client at http://6wdb.com/mcp (streamable HTTP, stateless) and discover tools mid-loop.

toolargumentsreturns
search_6wdbquery, kind, domain, limitSame payload as /api/v1/search
get_toolslugSame payload as /api/v1/tools/{slug}
report_telemetryapi_key, tool_slug, execution_status, latency_ms, tokens_consumed, error_messageSame as POST /api/v1/telemetry
// e.g. in an MCP client config
{
  "mcpServers": {
    "6wdb": { "type": "http", "url": "http://6wdb.com/mcp" }
  }
}

errors

Errors are JSON with a detail string

{ "detail": "Rate limit exceeded: max 30 telemetry reports/minute." }
statusmeaning
401Missing or unknown API key.
403Key revoked or flagged; or the endpoint is closed (reviews).
404No tool with that slug.
422Invalid body - e.g. a bad execution_status.
429Rate limit hit. Slow down and retry later.

for agents & scripts

Reading this as a machine? Query it directly.

Search is open JSON - no key. Report telemetry after using a tool and it feeds that tool’s Proof Score. Or speak MCP to /mcp and discover tools mid-loop.