> ## Documentation Index
> Fetch the complete documentation index at: https://help.gorelo.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Creates an approval on a ticket

> Creates an approval on a ticket. Every listed contact starts Pending. The approval is created empty — post into it afterwards with the comments endpoint, using the returned `Id` as `conversationId` and `conversationType` 4, which is also what sends the approvers their confirmation email.



## OpenAPI

````yaml /api-reference/openapi.json post /v1/tickets/{ticketId}/conversations/approval
openapi: 3.0.4
info:
  title: Public API
  description: Gorelo Public API documentation.
  version: 1.0.0
servers:
  - url: https://api.usw.gorelo.io
    description: US
  - url: https://api.aue.gorelo.io
    description: Australia
security:
  - ApiKeyAuth: []
tags:
  - name: Attachments
    description: "Uploading a file, for anything that can carry one. One endpoint rather than one per record\r\ntype, because the upload itself is identical - only the record it is checked against differs."
  - name: Alerts
    description: Alerts management operations
  - name: Assets
    description: Assets management operations
  - name: Billing
    description: Billing management operations
  - name: Tickets
    description: Tickets management operations
  - name: Clients
    description: Clients management operations
  - name: Contacts
    description: Contacts management operations
  - name: Deletions
    description: Deletions management operations
  - name: Documents
    description: Documents management operations
  - name: Forms
    description: Forms management operations
  - name: Organization
    description: Organization management operations
  - name: Projects
    description: Projects management operations
paths:
  /v1/tickets/{ticketId}/conversations/approval:
    post:
      tags:
        - Tickets
      summary: Creates an approval on a ticket
      description: >-
        Creates an approval on a ticket. Every listed contact starts Pending.
        The approval is created empty — post into it afterwards with the
        comments endpoint, using the returned `Id` as `conversationId` and
        `conversationType` 4, which is also what sends the approvers their
        confirmation email.
      operationId: post_v1_tickets_ticketId_conversations_approval
      parameters:
        - name: ticketId
          in: path
          description: Ticket identifier.
          required: true
          schema:
            type: string
            format: uuid
      requestBody:
        description: Approval details.
        content:
          application/json-patch+json:
            schema:
              $ref: '#/components/schemas/CreateApprovalCommand'
          application/json:
            schema:
              $ref: '#/components/schemas/CreateApprovalCommand'
          text/json:
            schema:
              $ref: '#/components/schemas/CreateApprovalCommand'
          application/*+json:
            schema:
              $ref: '#/components/schemas/CreateApprovalCommand'
      responses:
        '200':
          description: OK
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/CreateApprovalResultBaseResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/CreateApprovalResultBaseResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/CreateApprovalResultBaseResponse'
        '400':
          description: Bad Request
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ObjectBaseResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/ObjectBaseResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/ObjectBaseResponse'
        '401':
          description: Unauthorized
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ObjectBaseResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/ObjectBaseResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/ObjectBaseResponse'
        '404':
          description: Not Found
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ObjectBaseResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/ObjectBaseResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/ObjectBaseResponse'
        '500':
          description: Internal Server Error
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ObjectBaseResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/ObjectBaseResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/ObjectBaseResponse'
components:
  schemas:
    CreateApprovalCommand:
      required:
        - ContactIds
        - Name
      type: object
      properties:
        Name:
          minLength: 1
          type: string
          description: Short label for the approval.
        ContactIds:
          type: array
          items:
            type: integer
            format: int64
          description: "Identifiers of the contacts asked to approve. At least one is required. Every id must be\r\nActive, belong to this ticket's client (any client when the ticket has none) and carry a\r\ncontact tag marked as an approver — the same restriction the app's own approver picker\r\napplies."
        AttachPublicConversation:
          type: boolean
          description: "When true, the public comments already on the ticket's main thread are attached the first\r\ntime a comment is posted into this approval. Matches the in-app checkbox (\"Attach all\r\nPublic comments to this Approval\")."
      additionalProperties: false
    CreateApprovalResultBaseResponse:
      type: object
      properties:
        StatusCode:
          $ref: '#/components/schemas/HttpStatusCode'
        IsSuccess:
          type: boolean
        Data:
          $ref: '#/components/schemas/CreateApprovalResult'
        DataContext:
          type: object
          additionalProperties: false
          nullable: true
          example: null
        Notifications:
          type: array
          items:
            $ref: '#/components/schemas/Error'
      additionalProperties: false
    ObjectBaseResponse:
      type: object
      properties:
        StatusCode:
          $ref: '#/components/schemas/HttpStatusCode'
        IsSuccess:
          type: boolean
        Data:
          nullable: true
        DataContext:
          $ref: '#/components/schemas/ErrorDataContext'
        Notifications:
          type: array
          items:
            $ref: '#/components/schemas/Error'
      additionalProperties: false
    HttpStatusCode:
      enum:
        - 100
        - 101
        - 102
        - 103
        - 200
        - 201
        - 202
        - 203
        - 204
        - 205
        - 206
        - 207
        - 208
        - 226
        - 300
        - 301
        - 302
        - 303
        - 304
        - 305
        - 306
        - 307
        - 308
        - 400
        - 401
        - 402
        - 403
        - 404
        - 405
        - 406
        - 407
        - 408
        - 409
        - 410
        - 411
        - 412
        - 413
        - 414
        - 415
        - 416
        - 417
        - 421
        - 422
        - 423
        - 424
        - 426
        - 428
        - 429
        - 431
        - 451
        - 500
        - 501
        - 502
        - 503
        - 504
        - 505
        - 506
        - 507
        - 508
        - 510
        - 511
      type: integer
      format: int32
    CreateApprovalResult:
      type: object
      properties:
        Id:
          type: string
          description: >-
            Identifier of the created approval. Matches the conversations list's
            `Id`.
      additionalProperties: false
    Error:
      type: object
      properties:
        Code:
          pattern: ^[0-9]{6}$
          type: string
          description: 6-digit MMTTNN error code. See the Public API error-code registry.
          example: '070101'
        Message:
          type: string
        PropertyName:
          type: string
          nullable: true
        ActionHint:
          type: string
          nullable: true
        DocUrl:
          type: string
          nullable: true
      additionalProperties: false
    ErrorDataContext:
      type: object
      properties:
        TraceId:
          type: string
          description: Request correlation id. Quote this when reporting a problem.
          nullable: true
      additionalProperties: false
      description: "The `DataContext` of an error response: carries the correlation id for the failed\r\nrequest."
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      description: >-
        Your Gorelo API key. See [Generate API key](/generate-api-key). If your
        data is hosted in Australia, click the base URL at the top of this page
        and select `https://api.aue.gorelo.io`.
      name: X-API-Key
      in: header

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.