PlanRadar Ticket Attachments API

New APIs to manage all ticket related attachments (Audio, Video, Images, Documents)

Operations 7

GET /api/v2/{customer_id}/projects/{project_id}/tickets/{ticket_uuid}/attachments Returns all attachments of one ticket #
POST /api/v2/{customer_id}/projects/{project_id}/tickets/{ticket_uuid}/attachments Uploads new attachment #
GET /api/v2/{customer_id}/projects/{project_id}/tickets/{ticket_uuid}/attachments/{attachment_id} Returns one attachment of one ticket #
DELETE /api/v2/{customer_id}/projects/{project_id}/tickets/{ticket_uuid}/attachments/{attachment_id} Deletes specific attachment #
PUT /api/v2/{customer_id}/projects/{project_id}/tickets/{ticket_uuid}/attachments/{attachment_id} Updates specific attachment #
POST /api/v2/{customer_id}/projects/{project_id}/tickets/{ticket_uuid}/attachments/batch_delete Deletes multiple attachments at once #
POST /api/v2/{customer_id}/projects/{project_id}/tickets/{ticket_uuid}/attachments/batch_export Exports multiple attachments at once #

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/planradar-ticket-attachments-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

planradar-ticket-attachments-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: PlanRadar's API Documentation Ticket Attachments API
  version: '2.0'
  description: Welcome to PlanRadar's API documentation, here you can find all the details about our APIs as well as test them online.
servers:
- url: /
tags:
- name: Ticket Attachments
  description: New APIs to manage all ticket related attachments (Audio, Video, Images, Documents)
paths:
  /api/v2/{customer_id}/projects/{project_id}/tickets/{ticket_uuid}/attachments:
    get:
      summary: Returns all attachments of one ticket
      tags:
      - Ticket Attachments
      description: 'This API returns all attachments of one ticket. An attachment can be of type image, audio, video or document.


        By default, this endpoint returns both ticket attachments and form field attachments. Use only_ticket_attachments=true to exclude form field attachments.


        Extra parameters can be added to filter and sort the results.


        Attachment Sorting:

        The results can be sorted by the attributes of the attachment object e.g title, attachment type, creation time or creator.

        The sort is always ascending unless the field name is prefixed with a minus i.e. -created-at.


        Example#1: sorting attachments by the creator

        `/attachments?sort=created-by`


        Example#2: sorting attachments by descending creation time

        `/attachments?sort=-created-at`


        Example#3: sorting attachments by attachment type

        `/attachments?sort=attachable-type`


        Attachment Filtering:

        The results can be filtered by attachment types [images, audios, videos, documents]


        Example:

        `/attachments?page=1&types[]=images&types[]=videos`'
      parameters:
      - name: customer_id
        in: path
        required: true
        schema:
          type: string
      - name: project_id
        in: path
        required: true
        schema:
          type: string
      - name: ticket_uuid
        in: path
        required: true
        schema:
          type: string
      - name: last_sync_date
        in: query
        description: is a Unix Timestamp. If it is set, only attachments that were created after that timestamp will be returned
        schema:
          type: string
      - name: sort
        in: query
        schema:
          type: string
      - name: pagesize
        in: query
        description: sets the number of attachments that should be returned per page
        schema:
          type: string
      - name: page
        in: query
        description: sets the number of pages for the returned attachments
        schema:
          type: string
      - name: types
        in: query
        description: 'limits the response to specific attachment types: images, audios, videos, documents'
        schema:
          type: array
          items:
            type: string
      - name: only_ticket_attachments
        in: query
        description: when true, excludes form field attachments and returns only regular ticket attachments
        schema:
          type: boolean
      responses:
        '404':
          description: Attachments not found
      operationId: getApiV2ByCustomerIdProjectsByProjectIdTicketsByTicketUuidAttachments
      x-operation-id-source: derived
    post:
      summary: Uploads new attachment
      tags:
      - Ticket Attachments
      description: 'This API is used for uploading a new ticket attachment.


        If you want to attach a google drive document the following array structure is necessary

        data[attributes][attachment][type] - type is google_drive

        data[attributes][attachment][token] - token is the google drive access token


        Supported document types: PDF, Word (doc/docx), Excel (xls/xlsx), CSV, ODS, ODT, DWG, DXF, EML, MSG, RTF, ZIP, RAR. Images, audio and video files are also accepted.'
      x-websocket-response:
      - channel: customer_{customerId}
        message_type: dms_documents
        payload:
          type: object
          description: Serialized file attachment version with processing status
      - channel: customer_{customerId}
        message_type: dms_log_created
        payload:
          type: object
          description: ActivityLog entry broadcast when attachment is created
          properties:
            node_ids:
              type: array
              items:
                type: string
              description: Encoded node IDs
      security:
      - apiKey: []
      parameters:
      - name: customer_id
        in: path
        required: true
        schema:
          type: string
      - name: project_id
        in: path
        required: true
        schema:
          type: string
      - name: ticket_uuid
        in: path
        required: true
        schema:
          type: string
      responses:
        '400':
          description: Attachment type is not supported.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                data:
                  type: object
                  properties:
                    attributes:
                      type: object
                      properties:
                        uuid:
                          type: string
                          description: unique identifier of the attachment - is optional
                        attachment:
                          type: string
                          example: data:application/zip;base64,string
                          description: 'Data URI or binary data of the attachment. Supported MIME types include images, audio, video, application/pdf, application/msword, application/vnd.ms-excel, application/zip, application/vnd.rar, application/x-rar-compressed, application/x-rar and other common document types.</br><i style="color:#9999CC"> base64 schema: data:mime_type;base64,string<i>'
                        attachment-name:
                          type: string
                          example: archive.zip
                          description: name of the attachment including extension (e.g. archive.zip, backup.rar) - required when a Data URI is sent
                        caption:
                          type: string
                          example: this is a caption
                          description: caption - is the attachment name by default but can be edited
      operationId: postApiV2ByCustomerIdProjectsByProjectIdTicketsByTicketUuidAttachments
      x-operation-id-source: derived
  /api/v2/{customer_id}/projects/{project_id}/tickets/{ticket_uuid}/attachments/{attachment_id}:
    get:
      summary: Returns one attachment of one ticket
      tags:
      - Ticket Attachments
      description: This API returns one attachment of one ticket.
      security:
      - apiKey: []
      parameters:
      - name: customer_id
        in: path
        required: true
        schema:
          type: string
      - name: project_id
        in: path
        required: true
        schema:
          type: string
      - name: ticket_uuid
        in: path
        required: true
        schema:
          type: string
      - name: attachment_id
        in: path
        required: true
        schema:
          type: string
      responses:
        '404':
          description: Attachment Not Found
      operationId: getApiV2ByCustomerIdProjectsByProjectIdTicketsByTicketUuidAttachmentsByAttachmentId
      x-operation-id-source: derived
    delete:
      summary: Deletes specific attachment
      tags:
      - Ticket Attachments
      description: This API is used for deleting a specific ticket attachment based on its id.
      security:
      - apiKey: []
      parameters:
      - name: customer_id
        in: path
        required: true
        schema:
          type: string
      - name: project_id
        in: path
        required: true
        schema:
          type: string
      - name: ticket_uuid
        in: path
        required: true
        schema:
          type: string
      - name: attachment_id
        in: path
        required: true
        schema:
          type: string
      responses:
        '404':
          description: Attachment Not Found
      operationId: deleteApiV2ByCustomerIdProjectsByProjectIdTicketsByTicketUuidAttachmentsByAttachmentId
      x-operation-id-source: derived
    put:
      summary: Updates specific attachment
      tags:
      - Ticket Attachments
      description: This API is used for updating a specific ticket attachment based on its id.
      x-websocket-response:
      - channel: customer_{customerId}
        message_type: dms_documents
        payload:
          type: object
          description: Serialized file attachment version with updated attributes
      - channel: customer_{customerId}
        message_type: dms_log_created
        payload:
          type: object
          description: ActivityLog entry broadcast when attachment is updated
          properties:
            node_ids:
              type: array
              items:
                type: string
              description: Encoded node IDs
      security:
      - apiKey: []
      parameters:
      - name: customer_id
        in: path
        required: true
        schema:
          type: string
      - name: project_id
        in: path
        required: true
        schema:
          type: string
      - name: ticket_uuid
        in: path
        required: true
        schema:
          type: string
      - name: attachment_id
        in: path
        required: true
        schema:
          type: string
      responses:
        '404':
          description: Attachment Not Found
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                data:
                  type: object
                  properties:
                    attributes:
                      type: object
                      properties:
                        attachment:
                          type: string
                          example: 'data: image/png;base64,string'
                          description: 'Data URI or binary data of the attachment</br><i style="color:#9999CC"> base64 schema: data:mime_type;base64,string<i>'
                        attachment-name:
                          type: string
                          example: image.png
                          description: name of the attachment - is required when a Data URI is sent
                        caption:
                          type: string
                          example: this is a caption
                          description: 'caption - is the attachment name by default but can be edited '
        description: "\n      both the attachment itself and the caption can be updated\n      "
      operationId: putApiV2ByCustomerIdProjectsByProjectIdTicketsByTicketUuidAttachmentsByAttachmentId
      x-operation-id-source: derived
  /api/v2/{customer_id}/projects/{project_id}/tickets/{ticket_uuid}/attachments/batch_delete:
    post:
      summary: Deletes multiple attachments at once
      tags:
      - Ticket Attachments
      description: This API is used for deleting multiple attachments at once.
      security:
      - apiKey: []
      parameters:
      - name: customer_id
        in: path
        required: true
        schema:
          type: string
      - name: project_id
        in: path
        required: true
        schema:
          type: string
      - name: ticket_uuid
        in: path
        required: true
        schema:
          type: string
      responses:
        '404':
          description: Attachments Not Found
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                data:
                  type: object
                  properties:
                    attributes:
                      $ref: '#/components/schemas/Attachments'
        description: In order to delete multiple attachments at once you have to send an array that contains the ids of the attachments that you want to delete i.e [122, 123]
      operationId: postApiV2ByCustomerIdProjectsByProjectIdTicketsByTicketUuidAttachmentsBatchDelete
      x-operation-id-source: derived
  /api/v2/{customer_id}/projects/{project_id}/tickets/{ticket_uuid}/attachments/batch_export:
    post:
      summary: Exports multiple attachments at once
      tags:
      - Ticket Attachments
      description: This API is used for exporting multiple attachments at once.
      security:
      - apiKey: []
      parameters:
      - name: customer_id
        in: path
        required: true
        schema:
          type: string
      - name: project_id
        in: path
        required: true
        schema:
          type: string
      - name: ticket_uuid
        in: path
        required: true
        schema:
          type: string
      responses:
        '404':
          description: Attachments Not Found
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                data:
                  type: object
                  properties:
                    attributes:
                      $ref: '#/components/schemas/Attachments'
        description: ' In order to export multiple attachments at once you have to send an array that contains the ids of the attachments that you want to export'
      operationId: postApiV2ByCustomerIdProjectsByProjectIdTicketsByTicketUuidAttachmentsBatchExport
      x-operation-id-source: derived
components:
  schemas:
    Attachments:
      type: object
      properties:
        attachment-ids:
          type: array
          items:
            type: string
          example: ' ["id1", "id2"]'
          description: 'array of the ids of the attachments that should be deleted</br><i style=color:red> minimum number of ids: 1</i>'
  securitySchemes:
    apiKey:
      type: apiKey
      name: X-PlanRadar-API-Key
      in: header
externalDocs:
  description: Find out more about our development portal
  url: https://www.planradar.com/knowledge-base-overview/