Skip to content

REST API

The REST API follows predictable JSON conventions. Base URL:

https://kiket.dev/api/v1

Authentication

  • Bearer tokens (personal access tokens, OAuth access tokens) for user endpoints.
  • Extension API keys (X-Kiket-API-Key header) for extension endpoints.
  • Include Authorization: Bearer <token> on each request for user endpoints.

Common Resources

Projects

Method Path Description
GET /projects List projects visible to the token
POST /projects Create a project (requires organization admin)
GET /projects/:id Retrieve project metadata
PATCH /projects/:id Update description, settings, repository links
DELETE /projects/:id Archive a project

Issues

Method Path Description
GET /issues List issues (filter by project, status, assignee, label)
POST /issues Create an issue
GET /issues/:id Retrieve an issue by ID or key (e.g., PROJ-123)
PATCH /issues/:id Update fields
DELETE /issues/:id Delete an issue
POST /issues/:id/transition Execute a workflow transition

Comments

Method Path Description
GET /issues/:issue_id/comments List comments on an issue
POST /issues/:issue_id/comments Add a comment
PATCH /issues/:issue_id/comments/:id Update a comment
DELETE /issues/:issue_id/comments/:id Delete a comment

Milestones

Method Path Description
GET /projects/:project_id/milestones List milestones for a project
POST /projects/:project_id/milestones Create a milestone
GET /projects/:project_id/milestones/:id Retrieve milestone details
PATCH /projects/:project_id/milestones/:id Update milestone
DELETE /projects/:project_id/milestones/:id Delete milestone

Users

Method Path Description
GET /users List organization members
GET /users/current Get current authenticated user
GET /users/:id Get user profile

Issue Schema

Method Path Description
GET /issue_schema Get available issue types, priorities, statuses, and custom fields

Capacity Planning

Method Path Description
GET /capacity/team Get team workload and utilization data
GET /capacity/recommendations Get AI-powered workload recommendations
POST /capacity/reassign Reassign issues between team members

Custom Data

Method Path Description
GET /custom_data/:module_key/:table List records for a module table
GET /custom_data/:module_key/:table/:id Fetch a record by ID
POST /custom_data/:module_key/:table Create a record
PATCH /custom_data/:module_key/:table/:id Update a record
DELETE /custom_data/:module_key/:table/:id Delete a record

Pass either project_id or project_key query parameter to scope the module binding.

SLA Events

Method Path Description
GET /sla_events List SLA alert history

Extensions Management

Method Path Description
GET /extensions List installed extensions
POST /extensions Register extension from manifest
GET /extensions/:id Get extension details
DELETE /extensions/:id Uninstall extension
GET /extensions/:id/secrets List secret keys
POST /extensions/:id/secrets Set a secret
GET /extensions/:id/secrets/:key Get a secret value
DELETE /extensions/:id/secrets/:key Delete a secret

Extension API

Extensions use the /api/v1/ext/* endpoints with X-Kiket-API-Key authentication.

Extension Issues

Method Path Description
GET /ext/issues List issues visible to extension
POST /ext/issues Create an issue
GET /ext/issues/:id Get issue details
PATCH /ext/issues/:id Update issue
POST /ext/issues/:issue_id/comments Add a comment

Extension Workflows

Method Path Description
GET /ext/workflows/states Get available workflow states
POST /ext/workflows/trigger Trigger a workflow action

Extension Project

Method Path Description
GET /ext/project Get project the extension is installed in
GET /ext/project/members Get project members

Extension Webhooks

Method Path Description
POST /ext/webhooks/subscribe Subscribe to events
DELETE /ext/webhooks/:id Unsubscribe

Extension Storage

Method Path Description
GET /ext/storage/:key Get storage value
PUT /ext/storage/:key Set storage value (max 64KB)

Extension Custom Data

Method Path Description
GET /ext/custom_data/:module/:table List records
POST /ext/custom_data/:module/:table Create record
GET /ext/custom_data/:module/:table/:id Get record
PATCH /ext/custom_data/:module/:table/:id Update record
DELETE /ext/custom_data/:module/:table/:id Delete record

Extension SLA & Telemetry

Method Path Description
GET /ext/sla/events List SLA events
GET /ext/rate_limit Check rate limit status
POST /ext/telemetry Record telemetry data

Pagination & Sorting

  • Query params: page, per_page, sort (e.g., sort=created_at desc).
  • Responses include meta with pagination info:
    {
      "meta": {
        "total": 150,
        "page": 1,
        "per_page": 25,
        "total_pages": 6
      }
    }
    

Errors

  • JSON responses include error, code, and optional details arrays.
  • HTTP status codes:
  • 400 - Bad request (invalid parameters)
  • 401 - Unauthorized (missing or invalid token)
  • 403 - Forbidden (insufficient permissions)
  • 404 - Not found
  • 422 - Validation errors
  • 429 - Rate limit exceeded
  • 500 - Internal server error

Rate Limiting

  • Default: 1000 requests per 15-minute window for user endpoints
  • Extensions: 500 requests per 15-minute window
  • Rate limit headers included in responses:
  • X-RateLimit-Limit
  • X-RateLimit-Remaining
  • X-RateLimit-Reset

Webhook Events

Certain endpoints (issue creation, transitions) fire webhooks. See Webhooks for payload shapes.

Available events: - issue.created, issue.updated, issue.status_changed, issue.assigned, issue.closed - comment.created - workflow.triggered, workflow.sla_status, workflow.before_transition - project.updated

SDK Usage

Example (Node.js):

import { KiketSDK } from '@kiket-dev/sdk';

const sdk = new KiketSDK({
  workspaceToken: process.env.KIKET_TOKEN,
  baseUrl: 'https://kiket.dev'
});

// Handle webhook events
sdk.on('issue.created', async (payload, context) => {
  console.log(`New issue: ${payload.issue.title}`);

  // Access custom data
  const records = await context.endpoints.customData(payload.project_id)
    .list('my-module', 'my-table');
});

OpenAPI Specification

Refer to the interactive Swagger UI or the raw OpenAPI specification for exhaustive endpoint definitions.