Preparing your workspace...

assistant-chat.tsx2.5k
utils.ts850
button.tsx720
Quick Actions
codmir
Docs
Discord
Get started
API
  • Introduction
  • Installation
  • Your First Project
  • Your First Agent
  • REST API
  • Projects
  • Tickets
  • Users

Endpoints for ticket management, assignments, comments, search, and statistics.

Tickets API

The Tickets API provides endpoints for managing tickets, assignments, comments, and ticket-related statistics.

Endpoints

List Tickets

GET /api/tickets

Query Parameters:

  • page (number) — default 1
  • limit (number) — default 20, max 100
  • sort (string) — title, priority, status, createdAt, updatedAt (default updatedAt)
  • order (string) — asc, desc (default desc)
  • search (string)
  • status (string) — backlog, todo, in_progress, in_review, done, cancelled
  • priority (string) — lowest, low, medium, high, highest
  • type (string) — TASK, BUG, FEATURE, IMPROVEMENT, EPIC
  • assignee (string)
  • reporter (string)
  • project (string)
  • workspace (string)
  • group (string)

Response:

{
  "data": [
    {
      "id": "ticket_123",
      "title": "Fix login authentication bug",
      "description": "Users are unable to login with valid credentials",
      "key": "WEB-45",
      "type": "BUG",
      "status": "in_progress",
      "priority": "high",
      "stage": "DEVELOPMENT",
      "projectId": "project_456",
      "workspaceId": "workspace_789",
      "assigneeId": "user_101",
      "reporterId": "user_102",
      "groupId": "group_103",
      "assignee": {"id": "user_101", "name": "Jane Smith", "email": "[email protected]", "image": "https://example.com/jane.jpg"},
      "reporter": {"id": "user_102", "name": "John Doe", "email": "[email protected]", "image": "https://example.com/john.jpg"},
      "dueDate": "2024-02-01T00:00:00Z",
      "createdAt": "2024-01-15T10:00:00Z",
      "updatedAt": "2024-01-20T14:30:00Z",
      "_count": {"comments": 5, "attachments": 2, "timeLogs": 3}
    }
  ],
  "pagination": {"page": 1, "limit": 20, "total": 45, "totalPages": 3}
}

Create Ticket

POST /api/tickets

Request Body:

{
  "title": "Implement user dashboard",
  "description": "Create a comprehensive user dashboard with analytics and recent activity",
  "type": "FEATURE",
  "priority": "medium",
  "projectId": "project_456",
  "assigneeId": "user_101",
  "dueDate": "2024-02-15T00:00:00Z",
  "labelIds": ["label_1", "label_2"]
}

Get Ticket

GET /api/tickets/[id]

Update Ticket

PUT /api/tickets/[id]

Delete Ticket

DELETE /api/tickets/[id]

Update Ticket Status

PUT /api/tickets/[id]/status

Request Body:

{ "status": "done" }

Assign Ticket

PUT /api/tickets/[id]/assignee

Request Body:

{ "assigneeId": "user_105" }

Get Ticket Statistics

GET /api/tickets/stats

Query Parameters:

  • period (string) — week, month, quarter, year (default month)
  • project (string)
  • assignee (string)

Search Tickets

GET /api/tickets/search

Query Parameters:

  • q (string, required) — Search query
  • limit (number) — default 20, max 100
  • project (string)
  • status (string)

Data Models

interface Ticket { id: string; title: string; description?: string; key?: string; type?: 'TASK' | 'BUG' | 'FEATURE' | 'IMPROVEMENT' | 'EPIC'; status?: 'backlog' | 'todo' | 'in_progress' | 'in_review' | 'done' | 'cancelled'; priority?: 'lowest' | 'low' | 'medium' | 'high' | 'highest'; stage?: 'PLANNING' | 'DEVELOPMENT' | 'TESTING' | 'DEPLOYMENT' | 'COMPLETED'; projectId?: string; workspaceId?: string; assigneeId?: string; reporterId?: string; groupId?: string; dueDate?: Date; createdAt: Date; updatedAt: Date }
interface TicketWithDetails extends Ticket { assignee?: Pick<User, 'id' | 'name' | 'email' | 'image'> | null; reporter?: Pick<User, 'id' | 'name' | 'email' | 'image'> | null; project?: Project | null; workspace?: Workspace | null; group?: Group | null; labels: Label[]; comments: (Comment & { author: Pick<User, 'id' | 'name' | 'email' | 'image'> })[]; _count: { comments: number; attachments: number; timeLogs: number } }
interface TicketStats { period: 'week' | 'month' | 'quarter' | 'year'; startDate: Date; endDate: Date; total: number; byStatus: Record<string, number>; byPriority: Record<string, number>; byType: Record<string, number>; metrics: { averageCompletionTime: string; completionRate: number; overdue: number; createdThisPeriod: number; completedThisPeriod: number } }

Error Responses

{"error": {"code": "UNAUTHORIZED", "message": "Authentication required"}}
{"error": {"code": "FORBIDDEN", "message": "Insufficient permissions to access this ticket"}}
{"error": {"code": "NOT_FOUND", "message": "Ticket not found"}}
{"error": {"code": "VALIDATION_ERROR", "message": "Invalid input data", "details": {"title": ["Title is required"], "assigneeId": ["Invalid assignee ID"]}}}

Examples

curl -X POST "https://codmir.com/api/tickets" -H "Content-Type: application/json" -H "Cookie: next-auth.session-token=..." -d '{"title":"Login page crashes on mobile","description":"The login page crashes when accessed on mobile devices","type":"BUG","priority":"high","projectId":"project_456","assigneeId":"user_101"}'
curl -X GET "https://codmir.com/api/tickets?status=in_progress&priority=high&assignee=user_101&page=1&limit=10" -H "Cookie: next-auth.session-token=..."
curl -X PUT "https://codmir.com/api/tickets/ticket_123/status" -H "Content-Type: application/json" -H "Cookie: next-auth.session-token=..." -d '{"status":"done"}'
curl -X POST "https://codmir.com/api/tickets/ticket_123/comments" -H "Content-Type: application/json" -H "Cookie: next-auth.session-token=..." -d '{"content":"Fixed the issue and deployed to staging"}'
Open in ChatGPTOpen in ClaudeConnect MCP on CursorConnect MCP on WindsurfEdit on GitHub
codmir
Products
Desktop AppMobile AppIDE ExtensionAI AgentsOverseerVoice ModeCortex ProtocolHive MindGame Dev (Godat)PricingDownload
Solutions
AI Code AgentsCode ReviewError TrackingSelf-HealingDeploy TrackingAI Tracking SDKWorkflow AutomationTesting FrameworkTime TrackingVoice Control
Platform
ProjectsTickets & BoardsAgent MarketplaceIntegrationsTemplatesApp HubAdmin PanelAnalytics
Integrations
GitHubSlackDiscordVercelSentryRailwayLinearAll Integrations
Developers
DocumentationAPI ReferenceSDKCLIDeveloper PortalMarketplaceMCP ConnectorsWebhooksExamplesnpm Packages
Resources
BlogChangelogCommunityTutorialsGet StartedSupportStatusFeedback
Company
AboutCareersContact SalesKickstarterReferral Program
Legal
Terms of UsePrivacy PolicyEULATrademarkSecurity
Download on the App StoreGet it on Google Play

Codmir™ 2026. All rights reserved.

Free & open source SDK — Apache 2.0 License