Revert Ticketing API

Unified ticketing models - tasks, users, comments, collections.

OpenAPI Specification

revert-api-ticketing-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Revert Unified Chat Ticketing API
  description: 'Revert is an open-source unified API for building product integrations. A single set of REST endpoints normalizes third-party CRMs, chat/messaging, ticketing, accounting, and ATS providers into unified data models, while Revert manages OAuth connections, token refresh, retries, and a passthrough proxy for provider-native calls.


    Authentication uses an `x-revert-api-token` header (your Revert API key) plus an `x-revert-t-id` tenant header identifying the linked customer connection, and an optional `x-api-version` header.


    STATUS - The hosted Revert Cloud service (https://api.revert.dev) has been retired; Revert has joined Ampersand and revert.dev no longer resolves as of 2026-07-12. This specification is preserved from the open-source, self-hostable backend (github.com/revertinc/revert). Paths, methods, headers, and unified fields were read from the repository''s Fern API definition (fern/definition/) and Express route registration; response payload schemas are modeled from the unified type definitions and are simplified where noted.'
  version: '1.0'
  contact:
    name: Revert
    url: https://github.com/revertinc/revert
  license:
    name: AGPL-3.0
    url: https://github.com/revertinc/revert/blob/main/LICENSE
servers:
- url: https://api.revert.dev
  description: Revert Cloud (hosted) - RETIRED, DNS no longer resolves as of 2026-07-12.
- url: http://localhost:4001
  description: Self-hosted (default SERVER_PORT=4001).
security:
- revertApiToken: []
  revertTenantId: []
tags:
- name: Ticketing
  description: Unified ticketing models - tasks, users, comments, collections.
paths:
  /ticket/tasks:
    get:
      operationId: getTicketTasks
      tags:
      - Ticketing
      summary: List ticket tasks
      responses:
        '200':
          $ref: '#/components/responses/EntityList'
        '401':
          $ref: '#/components/responses/Unauthorized'
    post:
      operationId: createTicketTask
      tags:
      - Ticketing
      summary: Create a ticket task
      responses:
        '200':
          $ref: '#/components/responses/CreateOrUpdate'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /ticket/tasks/{id}:
    parameters:
    - $ref: '#/components/parameters/Id'
    get:
      operationId: getTicketTask
      tags:
      - Ticketing
      summary: Get a ticket task
      responses:
        '200':
          $ref: '#/components/responses/EntitySingle'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
    patch:
      operationId: updateTicketTask
      tags:
      - Ticketing
      summary: Update a ticket task
      responses:
        '200':
          $ref: '#/components/responses/CreateOrUpdate'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /ticket/users:
    get:
      operationId: getTicketUsers
      tags:
      - Ticketing
      summary: List ticket users
      responses:
        '200':
          $ref: '#/components/responses/EntityList'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /ticket/users/{id}:
    parameters:
    - $ref: '#/components/parameters/Id'
    get:
      operationId: getTicketUser
      tags:
      - Ticketing
      summary: Get a ticket user
      responses:
        '200':
          $ref: '#/components/responses/EntitySingle'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
  /ticket/comments:
    get:
      operationId: getTicketComments
      tags:
      - Ticketing
      summary: List ticket comments
      responses:
        '200':
          $ref: '#/components/responses/EntityList'
        '401':
          $ref: '#/components/responses/Unauthorized'
    post:
      operationId: createTicketComment
      tags:
      - Ticketing
      summary: Create a ticket comment
      responses:
        '200':
          $ref: '#/components/responses/CreateOrUpdate'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /ticket/comments/{id}:
    parameters:
    - $ref: '#/components/parameters/Id'
    get:
      operationId: getTicketComment
      tags:
      - Ticketing
      summary: Get a ticket comment
      responses:
        '200':
          $ref: '#/components/responses/EntitySingle'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
    patch:
      operationId: updateTicketComment
      tags:
      - Ticketing
      summary: Update a ticket comment
      responses:
        '200':
          $ref: '#/components/responses/CreateOrUpdate'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /ticket/collections:
    get:
      operationId: getTicketCollections
      tags:
      - Ticketing
      summary: List ticket collections
      description: Collections (projects/boards) available in the linked ticketing provider.
      responses:
        '200':
          $ref: '#/components/responses/EntityList'
        '401':
          $ref: '#/components/responses/Unauthorized'
components:
  parameters:
    Id:
      name: id
      in: path
      required: true
      description: The unified Revert id (or downstream remote id) of the object.
      schema:
        type: string
  schemas:
    Error:
      type: object
      properties:
        status:
          type: string
        error:
          type: string
        errorMessage: {}
  responses:
    CreateOrUpdate:
      description: Create/update result.
      content:
        application/json:
          schema:
            type: object
            properties:
              status:
                type: string
              message:
                type: string
              result: {}
    Unauthorized:
      description: Missing or invalid x-revert-api-token / x-revert-t-id.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    EntitySingle:
      description: A single unified object.
      content:
        application/json:
          schema:
            type: object
            properties:
              status:
                type: string
              result:
                type: object
                additionalProperties: true
    EntityList:
      description: A list of unified objects.
      content:
        application/json:
          schema:
            type: object
            properties:
              status:
                type: string
              next:
                type: string
                nullable: true
              previous:
                type: string
                nullable: true
              results:
                type: array
                items:
                  type: object
                  additionalProperties: true
    NotFound:
      description: The requested resource was not found.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  securitySchemes:
    revertApiToken:
      type: apiKey
      in: header
      name: x-revert-api-token
      description: Your Revert API key (private token) for the environment.
    revertTenantId:
      type: apiKey
      in: header
      name: x-revert-t-id
      description: The tenant / customer id of the linked connection.