Overview
The Kinboardly API is organized around REST. Our API accepts JSON-encoded request bodies, returns JSON-encoded responses, and uses standard HTTP response codes and verbs. All API access is over HTTPS.
Base URL
https://api.kinboardly.aiAPI Version
v1 (stable)Format
JSONQuick start
curl https://api.kinboardly.ai/v1/candidates \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Sarah Chen",
"email": "sarah@example.com",
"role": "Senior Product Manager"
}'Authentication
Authenticate by passing your API key as a Bearer token in the Authorization header. You can generate and manage API keys from your workspace settings. Keys are scoped to your organization and can be revoked at any time.
# All requests must include your API key curl https://api.kinboardly.ai/v1/candidates \ -H "Authorization: Bearer kb_live_abc123xyz" \ -H "Content-Type: application/json"
Security: Never expose your API key in client-side code or public repositories. Use server-to-server calls only.
Endpoints
All endpoints return JSON responses. Standard HTTP methods are used: GET for retrieval, POST for creation, PATCH for updates, DELETE for removal.
/v1/candidates/v1/candidates/v1/candidates/:id/v1/candidates/:id/invite/v1/checks/v1/checks/:id/v1/packages/v1/reports/:candidateId/v1/usageExample: Create a candidate
POST /v1/candidates
Request:
{
"name": "Sarah Chen",
"email": "sarah@example.com",
"role": "Senior Product Manager",
"package_id": "pkg_standard"
}
Response (201 Created):
{
"id": "cand_8x2f9a",
"status": "invited",
"progress": 0,
"created_date": "2026-08-10T12:00:00Z"
}Webhooks
Receive real-time notifications when verification events occur. Configure webhook endpoints in your workspace settings. We'll send a POST request with the event payload.
candidate.invitedcandidate.startedcheck.completedcheck.flaggedverification.completereference.submittedPOST https://your-app.com/webhooks/kinboardly
{
"event": "check.completed",
"data": {
"check_id": "chk_abc123",
"candidate_id": "cand_8x2f9a",
"type": "identity_verification",
"result": "verified",
"completed_at": "2026-08-10T14:30:00Z"
}
}Rate Limits
API requests are rate-limited to ensure fair usage. Limits vary by plan tier and are included in response headers.
| Plan | Requests/min | Burst | Concurrent |
|---|---|---|---|
| Pay-as-you-go | 60 | 100 | 5 |
| Starter | 120 | 200 | 10 |
| Growth | 300 | 500 | 20 |
| Scale | 600 | 1000 | 50 |
| Enterprise | Custom | Custom | Custom |
Error Codes
Kinboardly uses conventional HTTP status codes. Errors include a machine-readable code and a human-readable message.
200Success — The request was completed successfully.
201Created — A new resource was successfully created.
400Bad Request — The request was malformed or missing required parameters.
401Unauthorised — Authentication credentials were missing or invalid.
403Forbidden — You don't have permission to access this resource.
404Not Found — The requested resource could not be found.
429Rate Limited — You've exceeded the API rate limit. Retry with backoff.
500Server Error — Something went wrong on our end. Our team has been notified.