Create a ticket
Changed onOpen a ticket on the project's board. title and status are required — status names the column it lands in and has no default, because where a ticket belongs depends on who opened it. A new ticket lands at the top of its column. Labels are named by ID from the project's label list, so create the label there first. A board holds at most 5,000 tickets; past that a create is refused with 400 until some are deleted. The ticket is recorded as opened by an API key — origin is api and author is null — which is how the board tells your automation's tickets from a person's. Requires a read_write key.
Request
- Base URL: https://api.competlab.com
- URL: https://api.competlab.com/v1/projects/{projectId}/tickets
- Auth: API key in header CL-API-Key
Path parameters
Project ID
Request body
Example request
{
"title": "Get onto the 2026 buyer guide",
"description": "The guide names three of our competitors and not us.",
"labelIds": [
"3f2a9c6e-1b77-4c1e-9a54-5c7b2f0a91d2"
],
"assigneeUserId": "507f1f77bcf86cd799439031",
"dueDate": "2026-10-01",
"impact": 3
}Response
Example response
{
"item": {
"id": "507f1f77bcf86cd799439011",
"number": 14,
"author": {
"userId": "507f1f77bcf86cd799439011",
"fullName": "Dana Ellis"
},
"briefing": {
"runId": "6a3950c06bda450a1372048e",
"estimatedMinutes": 90,
"extendsTicketId": "507f1f77bcf86cd799439012"
},
"title": "Get onto the 2026 buyer guide",
"description": "The guide names three of our competitors and not us.",
"labels": [
{
"id": "3f2a9c6e-1b77-4c1e-9a54-5c7b2f0a91d2",
"name": "Pricing page",
"color": "#3b82f6"
}
],
"statusChangedAt": "2026-09-15T10:00:00.000Z",
"assignee": {
"userId": "507f1f77bcf86cd799439011",
"fullName": "Dana Ellis"
},
"dueDate": "2026-10-01",
"impact": 3,
"commentCount": 2,
"deletable": true,
"createdAt": "2026-09-15T10:00:00.000Z",
"updatedAt": "2026-09-16T08:30:00.000Z",
"lastActivityAt": "2026-09-17T11:02:00.000Z"
}
}Changes
- info
removed the non-success response with the status
- info
- warning
added the new
nothing_to_returnenum value to the/response property for the response status - warning
added the new
paging_requires_compact_viewenum value to the/response property for the response status - warning
added the new
paging_requires_summaryenum value to the/response property for the response status - info
added the required property
//////to the response with the status
- warning