Teamleader Tickets API

The Tickets API from Teamleader — 9 operation(s) for tickets.

Operations 9

POST /tickets.addInternalMessage Adds an internal message to a ticket #
POST /tickets.addReply Adds a message to a ticket #
POST /tickets.create Create a ticket #
POST /tickets.getMessage Gets the ticket message #
POST /tickets.importMessage Imports an existing message to a ticket #
POST /tickets.info Get details for a single ticket #
POST /tickets.list Get a list of tickets #
POST /tickets.listMessages Lists messages of a ticket #
POST /tickets.update Update a ticket #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/teamleader-tickets-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

teamleader-tickets-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Teamleader Tickets API
  version: '2026-09-22'
  description: 'GENERATED FROM DOCUMENTATION by API Evangelist on 2026-09-22: 58 operation(s) read from 60 public documentation page(s) (each operation names its page in x-source). This is not the provider''s published contract; Teamleader has published no machine-readable contract that the pipeline could find. Engine: anthropic.'
  x-generated-from: documentation
  x-provenance: generated
  x-authored-by: API Evangelist
  x-generated: '2026-09-22'
  x-generator: generate-contract-from-docs.py
  x-engine: anthropic
  x-sources:
  - https://developer.focus.teamleader.eu/docs/authentication
  - https://developer.focus.teamleader.eu/docs/general-principles
  - https://developer.focus.teamleader.eu/docs/api/deals-list
  - https://developer.focus.teamleader.eu/docs/api/deals-info
  - https://developer.focus.teamleader.eu/docs/api/deals-create
  - https://developer.focus.teamleader.eu/docs/api/deals-update
  - https://developer.focus.teamleader.eu/docs/api/deals-move
  - https://developer.focus.teamleader.eu/docs/api/deals-win
  - https://developer.focus.teamleader.eu/docs/api/deals-lose
  - https://developer.focus.teamleader.eu/docs/api/deals-delete
  - https://developer.focus.teamleader.eu/docs/api/lost-reasons-list
  - https://developer.focus.teamleader.eu/docs/api/level-two-areas-list
  - https://developer.focus.teamleader.eu/docs/api/files-list
  - https://developer.focus.teamleader.eu/docs/api/files-info
  - https://developer.focus.teamleader.eu/docs/api/files-download
  - https://developer.focus.teamleader.eu/docs/api/files-upload
  - https://developer.focus.teamleader.eu/docs/api/files-delete
  - https://developer.focus.teamleader.eu/docs/api/ticket-status-list
  - https://developer.focus.teamleader.eu/docs/api/tasks-list
  - https://developer.focus.teamleader.eu/docs/api/tasks-info
  - https://developer.focus.teamleader.eu/docs/api/tasks-create
  - https://developer.focus.teamleader.eu/docs/api/tasks-update
  - https://developer.focus.teamleader.eu/docs/api/tasks-complete
  - https://developer.focus.teamleader.eu/docs/api/tasks-reopen
  - https://developer.focus.teamleader.eu/docs/api/tasks-delete
  - https://developer.focus.teamleader.eu/docs/api/tasks-schedule
  - https://developer.focus.teamleader.eu/docs/api/user-availability-daily
  - https://developer.focus.teamleader.eu/docs/api/tickets-list
  - https://developer.focus.teamleader.eu/docs/api/tickets-info
  - https://developer.focus.teamleader.eu/docs/api/tickets-create
  - https://developer.focus.teamleader.eu/docs/api/tickets-update
  - https://developer.focus.teamleader.eu/docs/api/tickets-list-messages
  - https://developer.focus.teamleader.eu/docs/api/tickets-get-message
  - https://developer.focus.teamleader.eu/docs/api/tickets-import-message
  - https://developer.focus.teamleader.eu/docs/api/tickets-add-reply
  - https://developer.focus.teamleader.eu/docs/api/tickets-add-internal-message
  - https://developer.focus.teamleader.eu/docs/api/timers-update
  - https://developer.focus.teamleader.eu/docs/api/contacts-list
  - https://developer.focus.teamleader.eu/docs/api/contacts-info
  - https://developer.focus.teamleader.eu/docs/api/contacts-add
  - https://developer.focus.teamleader.eu/docs/api/contacts-update
  - https://developer.focus.teamleader.eu/docs/api/contacts-delete
  - https://developer.focus.teamleader.eu/docs/api/contacts-tag
  - https://developer.focus.teamleader.eu/docs/api/contacts-untag
  - https://developer.focus.teamleader.eu/docs/api/contacts-link-to-company
  - https://developer.focus.teamleader.eu/docs/api/contacts-unlink-from-company
  - https://developer.focus.teamleader.eu/docs/api/contacts-update-company-link
  - https://developer.focus.teamleader.eu/docs/api/contacts-upload-avatar
  - https://developer.focus.teamleader.eu/docs/api/days-off-bulk-delete
  - https://developer.focus.teamleader.eu/docs/api/expenses-list
  - https://developer.focus.teamleader.eu/docs/api/payment-methods-list
  - https://developer.focus.teamleader.eu/docs/api/invoices-list
  - https://developer.focus.teamleader.eu/docs/api/invoices-info
  - https://developer.focus.teamleader.eu/docs/api/invoices-download
  - https://developer.focus.teamleader.eu/docs/api/invoices-draft
  - https://developer.focus.teamleader.eu/docs/api/invoices-update
  - https://developer.focus.teamleader.eu/docs/api/invoices-update-booked
  - https://developer.focus.teamleader.eu/docs/api/invoices-copy
  - https://developer.focus.teamleader.eu/docs/api/invoices-book
  - https://developer.focus.teamleader.eu/docs/api/invoices-delete
servers:
- url: https://api.focus.teamleader.eu
security:
- bearer: []
tags:
- name: Tickets
paths:
  /tickets.addInternalMessage:
    post:
      operationId: post_tickets_addInternalMessage
      tags:
      - Tickets
      summary: Adds an internal message to a ticket
      x-source: https://developer.focus.teamleader.eu/docs/api/tickets-add-internal-message
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostTicketsAddinternalmessageRequest'
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostTicketsAddinternalmessageResponse'
  /tickets.addReply:
    post:
      operationId: post_tickets_addReply
      tags:
      - Tickets
      summary: Adds a message to a ticket
      x-source: https://developer.focus.teamleader.eu/docs/api/tickets-add-reply
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostTicketsAddreplyRequest'
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostTicketsAddreplyResponse'
  /tickets.create:
    post:
      operationId: post_tickets_create
      tags:
      - Tickets
      summary: Create a ticket
      x-source: https://developer.focus.teamleader.eu/docs/api/tickets-create
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostTicketsCreateRequest'
      responses:
        '201':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostTicketsCreateResponse'
  /tickets.getMessage:
    post:
      operationId: post_tickets_getMessage
      tags:
      - Tickets
      summary: Gets the ticket message
      x-source: https://developer.focus.teamleader.eu/docs/api/tickets-get-message
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostTicketsGetmessageRequest'
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostTicketsGetmessageResponse'
  /tickets.importMessage:
    post:
      operationId: post_tickets_importMessage
      tags:
      - Tickets
      summary: Imports an existing message to a ticket
      x-source: https://developer.focus.teamleader.eu/docs/api/tickets-import-message
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostTicketsImportmessageRequest'
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostTicketsImportmessageResponse'
  /tickets.info:
    post:
      operationId: post_tickets_info
      tags:
      - Tickets
      summary: Get details for a single ticket
      x-source: https://developer.focus.teamleader.eu/docs/api/tickets-info
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostTicketsInfoRequest'
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostTicketsInfoResponse'
  /tickets.list:
    post:
      operationId: post_tickets_list
      tags:
      - Tickets
      summary: Get a list of tickets
      x-source: https://developer.focus.teamleader.eu/docs/api/tickets-list
      requestBody:
        required: false
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostTicketsListRequest'
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostTicketsListResponse'
  /tickets.listMessages:
    post:
      operationId: post_tickets_listMessages
      tags:
      - Tickets
      summary: Lists messages of a ticket
      x-source: https://developer.focus.teamleader.eu/docs/api/tickets-list-messages
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostTicketsListmessagesRequest'
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostTicketsListmessagesResponse'
  /tickets.update:
    post:
      operationId: post_tickets_update
      tags:
      - Tickets
      summary: Update a ticket
      x-source: https://developer.focus.teamleader.eu/docs/api/tickets-update
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostTicketsUpdateRequest'
      responses:
        '204':
          description: Success (status as documented)
components:
  schemas:
    PostTicketsGetmessageRequest:
      type: object
      properties:
        message_id:
          type: string
      required:
      - message_id
    PostTicketsUpdateRequest:
      type: object
      properties:
        id:
          type: string
        subject:
          type: string
        description:
          type: string
        ticket_status_id:
          type: string
        customer:
          type: object
        assignee:
          type: object
        participant:
          type: object
        custom_fields:
          type: object
        milestone_id:
          type: string
        project_id:
          type: string
      required:
      - id
    PostTicketsAddinternalmessageResponse:
      type: object
      properties:
        data:
          type: object
    PostTicketsImportmessageRequest:
      type: object
      properties:
        id:
          type: string
        body:
          type: string
          description: Uses HTML formatting
        sent_by:
          type: object
        sent_at:
          type: string
        attachments:
          type: string
          description: All files must have the ticket as a subject
      required:
      - id
      - body
      - sent_by
      - sent_at
    PostTicketsImportmessageResponse:
      type: object
      properties:
        data:
          type: object
    PostTicketsAddreplyRequest:
      type: object
      properties:
        id:
          type: string
        body:
          type: string
          description: Uses HTML formatting
        ticket_status_id:
          type: string
        attachments:
          type: string
          description: All files must have the ticket as a subject
      required:
      - id
      - body
    PostTicketsInfoResponse:
      type: object
      properties:
        id:
          type: string
        reference:
          type: number
        subject:
          type: string
        status:
          type: object
        assignee:
          type: object
        created_at:
          type: string
        closed_at:
          type: string
        customer:
          type: object
        participant:
          type: object
        last_message_at:
          type: string
        description:
          type: string
        project:
          type: object
        milestone:
          type: object
        custom_fields:
          type: object
    PostTicketsCreateRequest:
      type: object
      properties:
        subject:
          type: string
        customer:
          type: object
        ticket_status_id:
          type: string
        assignee:
          type: object
        custom_fields:
          type: object
        description:
          type: string
          description: Uses Markdown formatting
        participant:
          type: object
        initial_reply:
          type: string
          description: 'Create & send an initial autoreply according to configuration (default: automatic). Possible values: [automatic, disabled]'
        milestone_id:
          type: string
          description: Links the ticket to a milestone. Only applicable to accounts using legacy projects. A ticket can be linked to either a milestone_id or a project_id, but not both.
        project_id:
          type: string
          description: Links the ticket to a project. Only applicable to accounts using the new projects. A ticket can be linked to either a milestone_id or a project_id, but not both.
      required:
      - subject
      - customer
      - ticket_status_id
    PostTicketsListmessagesResponse:
      type: object
      properties:
        data:
          type: object
        meta:
          type: object
    PostTicketsAddreplyResponse:
      type: object
      properties:
        data:
          type: object
    PostTicketsListRequest:
      type: object
      properties:
        filter:
          type: object
        page:
          type: object
    PostTicketsListResponse:
      type: object
      properties:
        data:
          type: object
    PostTicketsAddinternalmessageRequest:
      type: object
      properties:
        id:
          type: string
        body:
          type: string
          description: Uses HTML formatting
        ticket_status_id:
          type: string
        attachments:
          type: string
          description: All files must have the ticket as a subject
      required:
      - id
      - body
    PostTicketsGetmessageResponse:
      type: object
      properties:
        message_id:
          type: string
        body:
          type: string
        raw_body:
          type: string
        created_at:
          type: string
        sent_by:
          type: object
        ticket:
          type: object
        attachments:
          type: object
        type:
          type: string
    PostTicketsCreateResponse:
      type: object
      properties:
        data:
          type: object
    PostTicketsListmessagesRequest:
      type: object
      properties:
        id:
          type: string
        filter:
          type: object
        page:
          type: object
      required:
      - id
    PostTicketsInfoRequest:
      type: object
      properties:
        id:
          type: string
      required:
      - id
  securitySchemes:
    bearer:
      type: http
      scheme: bearer