Twilio Bulk Exports API

The BulkExport API allows users to easily retrieve all activity logs from the Twilio platform in a streamlined manner. Users can choose to download logs either on a recurring basis or as a one-time download. With BulkExport, users can access daily dumps of Messages, Calls, Conferences, or conference Participants from the previous day without having to paginate through the list resource. These files are automatically deleted after seven days.

OpenAPI Specification

bulk-exports-openapi-original.yml Raw ↑
components:
  schemas:
    bulkexports.v1.export.day:
      type: object
      properties:
        day:
          type: string
          nullable: true
          description: The ISO 8601 format date of the resources in the file, for a UTC day
        size:
          type: integer
          nullable: true
          description: The size of the day's data file in bytes
        create_date:
          type: string
          nullable: true
          description: The ISO 8601 format date when resources is created
        friendly_name:
          type: string
          nullable: true
          description: The friendly name specified when creating the job
        resource_type:
          type: string
          nullable: true
          description: >-
            The type of communication – Messages, Calls, Conferences, and
            Participants
    bulkexports.v1.export.day-instance:
      type: object
      properties:
        redirect_to:
          type: string
          format: uri
          nullable: true
    bulkexports.v1.export:
      type: object
      properties:
        resource_type:
          type: string
          nullable: true
          description: >-
            The type of communication – Messages, Calls, Conferences, and
            Participants
        url:
          type: string
          format: uri
          nullable: true
          description: The URL of this resource.
        links:
          type: object
          format: uri-map
          nullable: true
          description: >-
            Contains a dictionary of URL links to nested resources of this
            Export.
    bulkexports.v1.export_configuration:
      type: object
      properties:
        enabled:
          type: boolean
          nullable: true
          description: >-
            If true, Twilio will automatically generate every day's file when
            the day is over.
        webhook_url:
          type: string
          format: uri
          nullable: true
          description: >-
            Stores the URL destination for the method specified in
            webhook_method.
        webhook_method:
          type: string
          nullable: true
          description: >-
            Sets whether Twilio should call a webhook URL when the automatic
            generation is complete, using GET or POST. The actual destination is
            set in the webhook_url
        resource_type:
          type: string
          nullable: true
          description: >-
            The type of communication – Messages, Calls, Conferences, and
            Participants
        url:
          type: string
          format: uri
          nullable: true
          description: The URL of this resource.
    bulkexports.v1.export.export_custom_job:
      type: object
      properties:
        friendly_name:
          type: string
          nullable: true
          description: The friendly name specified when creating the job
        resource_type:
          type: string
          nullable: true
          description: >-
            The type of communication – Messages, Calls, Conferences, and
            Participants
        start_day:
          type: string
          nullable: true
          description: The start day for the custom export specified when creating the job
        end_day:
          type: string
          nullable: true
          description: The end day for the export specified when creating the job
        webhook_url:
          type: string
          nullable: true
          description: >-
            The optional webhook url called on completion of the job. If this is
            supplied, `WebhookMethod` must also be supplied.
        webhook_method:
          type: string
          nullable: true
          description: >-
            This is the method used to call the webhook on completion of the
            job. If this is supplied, `WebhookUrl` must also be supplied.
        email:
          type: string
          nullable: true
          description: The optional email to send the completion notification to
        job_sid:
          type: string
          minLength: 34
          maxLength: 34
          pattern: ^JS[0-9a-fA-F]{32}$
          nullable: true
          description: The unique job_sid returned when the custom export was created
        details:
          nullable: true
          description: >-
            The details of a job which is an object that contains an array of
            status grouped by `status` state.  Each `status` object has a
            `status` string, a count which is the number of days in that
            `status`, and list of days in that `status`. The day strings are in
            the format yyyy-MM-dd. As an example, a currently running job may
            have a status object for COMPLETED and a `status` object for
            SUBMITTED each with its own count and list of days.
        job_queue_position:
          type: string
          nullable: true
          description: >-
            This is the job position from the 1st in line. Your queue position
            will never increase. As jobs ahead of yours in the queue are
            processed, the queue position number will decrease
        estimated_completion_time:
          type: string
          nullable: true
          description: >-
            this is the time estimated until your job is complete. This is
            calculated each time you request the job list. The time is
            calculated based on the current rate of job completion (which may
            vary) and your job queue position
    export_custom_job_enum_status:
      type: string
      enum:
        - ErrorDuringRun
        - Submitted
        - Running
        - CompletedEmptyRecords
        - Completed
        - Failed
        - RunningToBeDeleted
        - DeletedByUserRequest
    bulkexports.v1.export.job:
      type: object
      properties:
        resource_type:
          type: string
          nullable: true
          description: >-
            The type of communication – Messages, Calls, Conferences, and
            Participants
        friendly_name:
          type: string
          nullable: true
          description: The friendly name specified when creating the job
        details:
          nullable: true
          description: >-
            The details of a job which is an object that contains an array of
            status grouped by `status` state.  Each `status` object has a
            `status` string, a count which is the number of days in that
            `status`, and list of days in that `status`. The day strings are in
            the format yyyy-MM-dd. As an example, a currently running job may
            have a status object for COMPLETED and a `status` object for
            SUBMITTED each with its own count and list of days.
        start_day:
          type: string
          nullable: true
          description: The start time for the export specified when creating the job
        end_day:
          type: string
          nullable: true
          description: The end time for the export specified when creating the job
        job_sid:
          type: string
          minLength: 34
          maxLength: 34
          pattern: ^JS[0-9a-fA-F]{32}$
          nullable: true
          description: The job_sid returned when the export was created
        webhook_url:
          type: string
          nullable: true
          description: The optional webhook url called on completion
        webhook_method:
          type: string
          nullable: true
          description: This is the method used to call the webhook
        email:
          type: string
          nullable: true
          description: The optional email to send the completion notification to
        url:
          type: string
          format: uri
          nullable: true
        job_queue_position:
          type: string
          nullable: true
          description: >-
            This is the job position from the 1st in line. Your queue position
            will never increase. As jobs ahead of yours in the queue are
            processed, the queue position number will decrease
        estimated_completion_time:
          type: string
          nullable: true
          description: >-
            this is the time estimated until your job is complete. This is
            calculated each time you request the job list. The time is
            calculated based on the current rate of job completion (which may
            vary) and your job queue position
    job_enum_status:
      type: string
      enum:
        - ErrorDuringRun
        - Submitted
        - Running
        - CompletedEmptyRecords
        - Completed
        - Failed
        - RunningToBeDeleted
        - DeletedByUserRequest
    ListDayResponse:
      type: object
      properties:
        days:
          type: array
          items:
            $ref: '#/components/schemas/bulkexports.v1.export.day'
        meta:
          type: object
          properties:
            first_page_url:
              type: string
              format: uri
            next_page_url:
              type: string
              format: uri
              nullable: true
            page:
              type: integer
            page_size:
              type: integer
            previous_page_url:
              type: string
              format: uri
              nullable: true
            url:
              type: string
              format: uri
            key:
              type: string
    UpdateExportConfigurationRequest:
      type: object
      properties:
        Enabled:
          type: boolean
          description: >-
            If true, Twilio will automatically generate every day's file when
            the day is over.
        WebhookUrl:
          type: string
          format: uri
          description: >-
            Stores the URL destination for the method specified in
            webhook_method.
        WebhookMethod:
          type: string
          description: >-
            Sets whether Twilio should call a webhook URL when the automatic
            generation is complete, using GET or POST. The actual destination is
            set in the webhook_url
    ListExportCustomJobResponse:
      type: object
      properties:
        jobs:
          type: array
          items:
            $ref: '#/components/schemas/bulkexports.v1.export.export_custom_job'
        meta:
          type: object
          properties:
            first_page_url:
              type: string
              format: uri
            next_page_url:
              type: string
              format: uri
              nullable: true
            page:
              type: integer
            page_size:
              type: integer
            previous_page_url:
              type: string
              format: uri
              nullable: true
            url:
              type: string
              format: uri
            key:
              type: string
    CreateExportCustomJobRequest:
      type: object
      required:
        - StartDay
        - EndDay
        - FriendlyName
      properties:
        StartDay:
          type: string
          description: >-
            The start day for the custom export specified as a string in the
            format of yyyy-mm-dd
        EndDay:
          type: string
          description: >-
            The end day for the custom export specified as a string in the
            format of yyyy-mm-dd. End day is inclusive and must be 2 days
            earlier than the current UTC day.
        FriendlyName:
          type: string
          description: The friendly name specified when creating the job
        WebhookUrl:
          type: string
          description: >-
            The optional webhook url called on completion of the job. If this is
            supplied, `WebhookMethod` must also be supplied. If you set neither
            webhook nor email, you will have to check your job's status
            manually.
        WebhookMethod:
          type: string
          description: >-
            This is the method used to call the webhook on completion of the
            job. If this is supplied, `WebhookUrl` must also be supplied.
        Email:
          type: string
          description: >-
            The optional email to send the completion notification to. You can
            set both webhook, and email, or one or the other. If you set
            neither, the job will run but you will have to query to determine
            your job's status.
  securitySchemes:
    accountSid_authToken:
      type: http
      scheme: basic
info:
  title: Twilio - Bulkexports
  description: This is the public Twilio REST API.
  termsOfService: https://www.twilio.com/legal/tos
  contact:
    name: Twilio Support
    url: https://support.twilio.com
    email: [email protected]
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0.html
  version: 1.52.0
openapi: 3.0.1
paths:
  /v1/Exports/{ResourceType}/Days/{Day}:
    servers:
      - url: https://bulkexports.twilio.com
    description: 'TODO: Resource-level docs'
    x-twilio:
      defaultOutputProperties:
        - friendly_name
        - create_date
        - day
        - resource_type
        - size
        - redirectTo
      pathType: instance
      parent: /Exports/{ResourceType}
    get:
      description: Fetch a specific Day.
      tags:
        - Exports
      parameters:
        - name: ResourceType
          in: path
          description: >-
            The type of communication – Messages, Calls, Conferences, and
            Participants
          schema:
            type: string
          required: true
        - name: Day
          in: path
          description: The ISO 8601 format date of the resources in the file, for a UTC day
          schema:
            type: string
          required: true
      responses:
        '307':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/bulkexports.v1.export.day-instance'
          description: Temporary Redirect
      security:
        - accountSid_authToken: []
      operationId: FetchDay
      x-maturity:
        - GA
  /v1/Exports/{ResourceType}/Days:
    servers:
      - url: https://bulkexports.twilio.com
    description: 'TODO: Resource-level docs'
    x-twilio:
      defaultOutputProperties:
        - friendly_name
        - create_date
        - day
        - resource_type
        - size
        - redirectTo
      pathType: list
      parent: /Exports/{ResourceType}
    get:
      description: Retrieve a list of all Days for a resource.
      tags:
        - Exports
      parameters:
        - name: ResourceType
          in: path
          description: >-
            The type of communication – Messages, Calls, Conferences, and
            Participants
          schema:
            type: string
          required: true
        - name: PageSize
          in: query
          description: >-
            How many resources to return in each list page. The default is 50,
            and the maximum is 1000.
          schema:
            type: integer
            minimum: 1
            maximum: 1000
        - name: Page
          in: query
          description: The page index. This value is simply for client state.
          schema:
            type: integer
            minimum: 0
        - name: PageToken
          in: query
          description: The page token. This is provided by the API.
          schema:
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListDayResponse'
          description: OK
      security:
        - accountSid_authToken: []
      operationId: ListDay
      x-maturity:
        - GA
  /v1/Exports/{ResourceType}:
    servers:
      - url: https://bulkexports.twilio.com
    description: 'TODO: Resource-level docs'
    x-twilio:
      defaultOutputProperties: []
      pathType: instance
      dependentProperties:
        days:
          mapping:
            resource_type: resource_type
          resource_url: /v1/Exports/{resource_type}/Days
        export_custom_jobs:
          mapping:
            resource_type: resource_type
          resource_url: /v1/Exports/{resource_type}/Jobs
    get:
      description: Fetch a specific Export.
      tags:
        - Exports
      parameters:
        - name: ResourceType
          in: path
          description: >-
            The type of communication – Messages, Calls, Conferences, and
            Participants
          schema:
            type: string
          required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/bulkexports.v1.export'
          description: OK
      security:
        - accountSid_authToken: []
      operationId: FetchExport
      x-maturity:
        - GA
  /v1/Exports:
    servers:
      - url: https://bulkexports.twilio.com
    description: 'TODO: Resource-level docs'
    x-twilio:
      defaultOutputProperties: []
      pathType: list
      dependentProperties:
        days:
          mapping:
            resource_type: resource_type
          resource_url: /v1/Exports/{resource_type}/Days
        export_custom_jobs:
          mapping:
            resource_type: resource_type
          resource_url: /v1/Exports/{resource_type}/Jobs
  /v1/Exports/{ResourceType}/Configuration:
    servers:
      - url: https://bulkexports.twilio.com
    description: 'TODO: Resource-level docs'
    x-twilio:
      defaultOutputProperties:
        - enabled
        - resource_type
        - url
        - webhook_method
        - webhook_url
      pathType: instance
      mountName: export_configuration
    get:
      description: Fetch a specific Export Configuration.
      tags:
        - Exports
      parameters:
        - name: ResourceType
          in: path
          description: >-
            The type of communication – Messages, Calls, Conferences, and
            Participants
          schema:
            type: string
          required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/bulkexports.v1.export_configuration'
          description: OK
      security:
        - accountSid_authToken: []
      operationId: FetchExportConfiguration
      x-maturity:
        - GA
    post:
      description: Update a specific Export Configuration.
      tags:
        - Exports
      parameters:
        - name: ResourceType
          in: path
          description: >-
            The type of communication – Messages, Calls, Conferences, and
            Participants
          schema:
            type: string
          required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/bulkexports.v1.export_configuration'
          description: OK
      security:
        - accountSid_authToken: []
      operationId: UpdateExportConfiguration
      x-maturity:
        - GA
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/UpdateExportConfigurationRequest'
  /v1/Exports/{ResourceType}/Jobs:
    servers:
      - url: https://bulkexports.twilio.com
    description: 'TODO: Resource-level docs'
    x-twilio:
      defaultOutputProperties:
        - details
        - email
        - end_day
        - estimated_completion_time
        - friendly_name
        - job_queue_position
        - job_sid
        - resource_type
        - start_day
        - webhook_method
        - webhook_url
      pathType: list
      parent: /Exports/{ResourceType}
      mountName: export_custom_jobs
    get:
      description: ''
      tags:
        - Exports
      parameters:
        - name: ResourceType
          in: path
          description: >-
            The type of communication – Messages, Calls, Conferences, and
            Participants
          schema:
            type: string
          required: true
        - name: PageSize
          in: query
          description: >-
            How many resources to return in each list page. The default is 50,
            and the maximum is 1000.
          schema:
            type: integer
            minimum: 1
            maximum: 1000
        - name: Page
          in: query
          description: The page index. This value is simply for client state.
          schema:
            type: integer
            minimum: 0
        - name: PageToken
          in: query
          description: The page token. This is provided by the API.
          schema:
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListExportCustomJobResponse'
          description: OK
      security:
        - accountSid_authToken: []
      operationId: ListExportCustomJob
      x-maturity:
        - GA
    post:
      description: ''
      tags:
        - Exports
      parameters:
        - name: ResourceType
          in: path
          description: >-
            The type of communication – Messages or Calls, Conferences, and
            Participants
          schema:
            type: string
          required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/bulkexports.v1.export.export_custom_job'
          description: Created
      security:
        - accountSid_authToken: []
      operationId: CreateExportCustomJob
      x-maturity:
        - GA
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/CreateExportCustomJobRequest'
  /v1/Exports/Jobs/{JobSid}:
    servers:
      - url: https://bulkexports.twilio.com
    description: 'TODO: Resource-level docs'
    x-twilio:
      defaultOutputProperties:
        - details
        - email
        - end_day
        - estimated_completion_time
        - friendly_name
        - job_queue_position
        - job_sid
        - resource_type
        - start_day
        - webhook_method
        - webhook_url
      pathType: instance
      parent: /Exports
    get:
      description: ''
      tags:
        - Exports
      parameters:
        - name: JobSid
          in: path
          description: >-
            The unique string that that we created to identify the Bulk Export
            job
          schema:
            type: string
            minLength: 34
            maxLength: 34
            pattern: ^JS[0-9a-fA-F]{32}$
          required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/bulkexports.v1.export.job'
          description: OK
      security:
        - accountSid_authToken: []
      operationId: FetchJob
      x-maturity:
        - GA
    delete:
      description: ''
      tags:
        - Exports
      parameters:
        - name: JobSid
          in: path
          description: >-
            The unique string that that we created to identify the Bulk Export
            job
          schema:
            type: string
            minLength: 34
            maxLength: 34
            pattern: ^JS[0-9a-fA-F]{32}$
          required: true
      responses:
        '204':
          description: The resource was deleted successfully.
      security:
        - accountSid_authToken: []
      operationId: DeleteJob
      x-maturity:
        - GA
  /v1/Exports/Jobs:
    servers:
      - url: https://bulkexports.twilio.com
    description: 'TODO: Resource-level docs'
    x-twilio:
      defaultOutputProperties:
        - details
        - email
        - end_day
        - estimated_completion_time
        - friendly_name
        - job_queue_position
        - job_sid
        - resource_type
        - start_day
        - webhook_method
        - webhook_url
      pathType: list
      parent: /Exports
servers:
  - url: https://bulkexports.twilio.com
tags:
  - name: Exports
x-maturity:
  - name: GA
    description: This product is Generally Available.