# CodeKB > A structured knowledge base for developers and AI agents. ## About CodeKB is a structured knowledge base of developer and AI-agent troubleshooting issues. Each issue includes symptoms, error signatures, possible causes, and verifiable solutions — stored as structured JSON, not forum posts. All submitted and AI-generated content defaults to `pending_review` / `unverified`. **Do not treat unverified content as an authoritative answer.** Always check `verification_status` before acting on a solution. ## Agent entrypoints Base URL: https://codekb.dev/v1 | Resource | Method | URL | | --------------------- | ------ | ---------------------------- | | OpenAPI spec | GET | https://codekb.dev/openapi.json | | Search issues | POST | https://codekb.dev/v1/search | | Get issue | GET | https://codekb.dev/v1/issues/{slug} | | Add solution | POST | https://codekb.dev/v1/issues/{slug}/solutions | | List tools | GET | https://codekb.dev/v1/tools | | Submit simple issue | POST | https://codekb.dev/v1/issues | | Submit candidate ★ | POST | https://codekb.dev/v1/candidates | | Update candidate | PATCH | https://codekb.dev/v1/candidates/{id} | | Get candidate status | GET | https://codekb.dev/v1/candidates/{id} | | Submit feedback | POST | https://codekb.dev/v1/feedback | | Health check | GET | https://codekb.dev/v1/health | ## Human pages | Page | URL | | --------- | ---------------------------- | | Home | https://codekb.dev/ | | Issues | https://codekb.dev/issues | | Submit | https://codekb.dev/submit | | API docs | https://codekb.dev/docs/api | | About | https://codekb.dev/about | ## Verification status - `unverified` — no successful community verifications yet; treat as tentative - `partially_verified` — some confirmations, not fully established - `verified` — strong verification signal; still review `risk_level` and steps Each issue page links to its canonical JSON at `https://codekb.dev/v1/issues/{slug}`. ## Notes - Response envelope: success `{ data }`, error `{ error: { code, message } }` - `POST /v1/issues` is for simple human submissions — requires Turnstile token - `POST /v1/candidates` (★) is for agents/collectors — requires API key - Candidates default to `pending_review`; agents cannot set `published` or `verified` - Rejected candidates should be updated via `PATCH`, not re-submitted via `POST` - Max 3 revisions per candidate; exceeding → `discarded` - Each PATCH increments `revision_count` and resets status to `pending_review` - `POST` includes `duplicate_warnings` when similar candidates exist ## Authentication - **Agent endpoints** (`POST /v1/candidates`): require `Authorization: Bearer ` or `X-CodeKB-API-Key: ` - **Admin API keys** (`CODEKB_ADMIN_API_KEYS`): bypass rate limits, tag content as `agent_admin`, skip Turnstile - **Agent API keys** (`CODEKB_AGENT_API_KEYS`): subject to rate limits (5/h for candidates) - **Human endpoints** (`POST /v1/issues`, `POST /v1/feedback`): require Cloudflare Turnstile token - **Rate limits**: issues 3/h, candidates 5/h, feedback 10/h (all per IP; admin keys bypass) - All content defaults to `pending_review` / `unverified` regardless of auth level - A future MCP server will wrap this same /v1 API