Skip to main content
Search

Export Contact Data

Requires the `contacts:export` permission.

GET /api/v1/contacts/{id}/export

Requires the contacts:export permission.

Authentication

Use an agent API key and secret.

Parameters

Name Location Type Required Description
id path integer Yes

Responses

200

All stored data for the contact, sent as an attachment named contact-<id>-data.json.

Content type: application/json.

Field Type Required Description
contact object No
contact.id integer No example: 1
contact.created_at string (date-time) No example: "2025-08-28T10:00:00Z"
contact.first_name string No example: "Customer"
contact.last_name string No nullable: true example: "A"
contact.email string No nullable: true example: "[email protected]"
contact.phone_number_country_code string No nullable: true
contact.phone_number string No nullable: true
contact.country string No nullable: true
contact.avatar_url string No nullable: true
contact.external_user_id string No nullable: true
contact.custom_attributes object No
contact.availability_status string No example: "offline"
contact.last_active_at string (date-time) No nullable: true example: "2025-08-28T10:00:00Z"
contact.last_login_at string (date-time) No nullable: true example: "2025-08-28T10:00:00Z"
contact.enabled boolean No example: true
conversations array of object No
conversations[].reference_number string No example: "100"
conversations[].created_at string (date-time) No example: "2025-08-28T10:00:00Z"
conversations[].subject string No nullable: true
conversations[].status string No example: "Open"
conversations[].custom_attributes object No
conversations[].messages array of object No
conversations[].messages[].created_at string (date-time) No example: "2025-08-28T10:00:00Z"
conversations[].messages[].type string (enum) No enum: ["incoming", "outgoing"] example: "incoming"
conversations[].messages[].sender_type string No example: "contact"
conversations[].messages[].content string No nullable: true example: "Hello"
conversations[].csat_responses array of object No
conversations[].csat_responses[].created_at string (date-time) No example: "2025-08-28T10:00:00Z"
conversations[].csat_responses[].rating integer No example: 5
conversations[].csat_responses[].feedback string No nullable: true
conversations[].csat_responses[].response_timestamp string (date-time) No nullable: true example: "2025-08-28T10:00:00Z"

400

Invalid request

Content type: application/json.

Field Type Required Description
status string No example: "error"
message string No Error message example: "Invalid request"
data unspecified No Additional error data nullable: true
error_type string (enum) No enum: ["GeneralException", "PermissionException", "InputException", "DataException", "NetworkException", "NotFoundException", "ConflictException", "UnauthorizedException", "RateLimitException"]

401

Unauthorized

Content type: application/json.

Field Type Required Description
status string No example: "error"
message string No Error message example: "Invalid request"
data unspecified No Additional error data nullable: true
error_type string (enum) No enum: ["GeneralException", "PermissionException", "InputException", "DataException", "NetworkException", "NotFoundException", "ConflictException", "UnauthorizedException", "RateLimitException"]

403

Permission denied

Content type: application/json.

Field Type Required Description
status string No example: "error"
message string No Error message example: "Invalid request"
data unspecified No Additional error data nullable: true
error_type string (enum) No enum: ["GeneralException", "PermissionException", "InputException", "DataException", "NetworkException", "NotFoundException", "ConflictException", "UnauthorizedException", "RateLimitException"]

404

Not found

Content type: application/json.

Field Type Required Description
status string No example: "error"
message string No Error message example: "Invalid request"
data unspecified No Additional error data nullable: true
error_type string (enum) No enum: ["GeneralException", "PermissionException", "InputException", "DataException", "NetworkException", "NotFoundException", "ConflictException", "UnauthorizedException", "RateLimitException"]

500

Internal server error

Content type: application/json.

Field Type Required Description
status string No example: "error"
message string No Error message example: "Invalid request"
data unspecified No Additional error data nullable: true
error_type string (enum) No enum: ["GeneralException", "PermissionException", "InputException", "DataException", "NetworkException", "NotFoundException", "ConflictException", "UnauthorizedException", "RateLimitException"]

Specification

Download the complete OpenAPI specification.

OpenAPI definition for this endpoint
openapi: 3.0.0
info:
  title: Libredesk API
  description: >-
    REST API documentation for Libredesk helpdesk system.


    ## Authentication


    The Libredesk API supports two authentication methods:


    ### 1. Basic Authentication

    Use your API key and secret with Basic authentication:

    ```

    Authorization: Basic <base64_encoded_api_key:api_secret>

    ```


    ### 2. Token Authentication  

    Use your API key and secret with token authentication:

    ```

    Authorization: token api_key:api_secret

    ```


    To obtain API credentials, generate them from your agent profile in the
    Libredesk dashboard.
  version: 1.0.0
servers:
  - url: http://localhost:8080
    description: Local development server
security:
  - basicAuth: []
  - tokenAuth: []
paths:
  /api/v1/contacts/{id}/export:
    get:
      tags:
        - Contacts
      summary: Export Contact Data
      description: Requires the `contacts:export` permission.
      operationId: handleExportContact
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: >-
            All stored data for the contact, sent as an attachment named
            `contact-<id>-data.json`.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContactDataExport'
        '400':
          description: Invalid request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Permission denied
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security:
        - basicAuth: []
        - tokenAuth: []
components:
  schemas:
    ContactDataExport:
      type: object
      properties:
        contact:
          type: object
          properties:
            id:
              type: integer
              example: 1
            created_at:
              type: string
              format: date-time
              example: '2025-08-28T10:00:00Z'
            first_name:
              type: string
              example: Customer
            last_name:
              type: string
              nullable: true
              example: A
            email:
              type: string
              nullable: true
              example: [email protected]
            phone_number_country_code:
              type: string
              nullable: true
            phone_number:
              type: string
              nullable: true
            country:
              type: string
              nullable: true
            avatar_url:
              type: string
              nullable: true
            external_user_id:
              type: string
              nullable: true
            custom_attributes:
              type: object
            availability_status:
              type: string
              example: offline
            last_active_at:
              type: string
              format: date-time
              nullable: true
              example: '2025-08-28T10:00:00Z'
            last_login_at:
              type: string
              format: date-time
              nullable: true
              example: '2025-08-28T10:00:00Z'
            enabled:
              type: boolean
              example: true
        conversations:
          type: array
          items:
            type: object
            properties:
              reference_number:
                type: string
                example: '100'
              created_at:
                type: string
                format: date-time
                example: '2025-08-28T10:00:00Z'
              subject:
                type: string
                nullable: true
              status:
                type: string
                example: Open
              custom_attributes:
                type: object
              messages:
                type: array
                items:
                  type: object
                  properties:
                    created_at:
                      type: string
                      format: date-time
                      example: '2025-08-28T10:00:00Z'
                    type:
                      type: string
                      enum:
                        - incoming
                        - outgoing
                      example: incoming
                    sender_type:
                      type: string
                      example: contact
                    content:
                      type: string
                      nullable: true
                      example: Hello
              csat_responses:
                type: array
                items:
                  type: object
                  properties:
                    created_at:
                      type: string
                      format: date-time
                      example: '2025-08-28T10:00:00Z'
                    rating:
                      type: integer
                      example: 5
                    feedback:
                      type: string
                      nullable: true
                    response_timestamp:
                      type: string
                      format: date-time
                      nullable: true
                      example: '2025-08-28T10:00:00Z'
    ErrorResponse:
      type: object
      description: Error response format
      properties:
        status:
          type: string
          example: error
        message:
          type: string
          description: Error message
          example: Invalid request
        data:
          nullable: true
          description: Additional error data
        error_type:
          type: string
          enum:
            - GeneralException
            - PermissionException
            - InputException
            - DataException
            - NetworkException
            - NotFoundException
            - ConflictException
            - UnauthorizedException
            - RateLimitException
  securitySchemes:
    basicAuth:
      type: http
      scheme: basic
      description: >-
        Basic authentication using base64 encoded API key and secret. Format:
        `Authorization: Basic <base64(api_key:api_secret)>`
    tokenAuth:
      type: apiKey
      name: Authorization
      in: header
      description: >-
        Token authentication using API key and secret. Format: `Authorization:
        token api_key:api_secret`

Was this article helpful?