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

# Read Export

> Returns the status of a single export job. For a SUCCEEDED job owned by the caller, `files` carries freshly-presigned download URLs; non-owners get the row with `downloadable=false`.

<span style={{display: "flex", gap: "10px", flexDirection: "row", alignItems: "center"}}>
  <img src="https://cdn.peaka.com/badges/partner-api-key-badge.png" />

  <img src="https://cdn.peaka.com/badges/project-api-key-badge.png" />
</span>


## OpenAPI

````yaml get /data/projects/{projectId}/exports/{exportId}
openapi: 3.0.1
info:
  title: Peaka Gateway API
  description: Peaka Gateway API Documentation
  version: '1.0'
servers:
  - url: https://partner.peaka.studio/api/v1
    description: Default Server URL (US Zone)
  - url: https://partner.eu.peaka.studio/api/v1
    description: EU Zone
security:
  - bearerAuth: []
paths:
  /data/projects/{projectId}/exports/{exportId}:
    get:
      tags:
        - Data -- Exports
      summary: Read Export
      description: >-
        Returns the status of a single export job. For a SUCCEEDED job owned by
        the caller, `files` carries freshly-presigned download URLs; non-owners
        get the row with `downloadable=false`.
      operationId: readExport
      parameters:
        - name: projectId
          in: path
          description: ID of the Project
          required: true
          schema:
            type: string
          example: mtKDhe1U
        - name: exportId
          in: path
          description: Export job id (UUID)
          required: true
          schema:
            type: string
          example: 4c9fcb44-126a-45f8-99a0-f1d245083d78
      responses:
        '200':
          description: Export job status
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExportJobResponse'
        '404':
          description: Export job not found
          content:
            '*/*':
              schema:
                type: object
                additionalProperties:
                  type: object
components:
  schemas:
    ExportJobResponse:
      type: object
      properties:
        id:
          type: string
          description: Export job id
          example: 4c9fcb44-126a-45f8-99a0-f1d245083d78
        status:
          type: string
          description: >-
            Job status. EXPIRED is derived when the artifacts have been removed
            by the lifecycle rule; exports are point-in-time snapshots and are
            never regenerated.
          example: SUCCEEDED
          enum:
            - PENDING
            - RUNNING
            - SUCCEEDED
            - FAILED
            - CANCELLED
            - EXPIRED
        format:
          type: string
          description: Output format
          example: JSONL
        compression:
          type: string
          description: Output compression
          example: NONE
        rowCount:
          type: integer
          description: Number of exported rows
          format: int64
          example: 993
        bytes:
          type: integer
          description: Total output size in bytes
          format: int64
          example: 3706920
        durationMs:
          type: integer
          description: Execution time in milliseconds
          format: int64
          example: 1055
        files:
          type: array
          description: Downloadable artifacts (only for the owner of a SUCCEEDED job)
          items:
            $ref: '#/components/schemas/ExportFile'
        expiresAt:
          type: string
          description: Expiry of the presigned URLs (ISO-8601); re-call GET for fresh links
          example: '2026-06-10T13:24:20Z'
        downloadable:
          type: boolean
          description: >-
            Whether the calling user may download this export (owner-only
            access)
          example: true
        error:
          type: string
          description: Error message when the job failed
        createdAt:
          type: string
          description: Submission time (ISO-8601)
          example: '2026-06-10T12:24:08Z'
        queryId:
          type: string
          description: Source query id (query exports)
          example: '709922802836177297'
        catalogId:
          type: string
          description: Source catalog id (table exports)
        schemaName:
          type: string
          description: Source schema name (table exports)
        tableName:
          type: string
          description: Source table name (table exports)
        source:
          type: string
          description: Quoted, fully-qualified source name for display
          example: peaka.query."charges_view"
        userId:
          type: string
          description: Initiator user id
        userName:
          type: string
          description: Initiator user name
          example: user@example.com
        apiKeyPrefix:
          type: string
          description: Public prefix of the initiator's API key
          example: hBWIQxjc
        clientSource:
          type: string
          description: Client source (X-Trino-Source, falling back to User-Agent)
          example: peaka-studio
      description: Status and result of an export job
    ExportFile:
      type: object
      properties:
        name:
          type: string
          description: File name
          example: query_709922802836177297_charges.jsonl
        url:
          type: string
          description: Presigned download URL (short-lived)
          example: https://<minio>/export/...&X-Amz-Signature=...
        bytes:
          type: integer
          description: Object size in bytes
          format: int64
          example: 3706920
      description: A downloadable export artifact with a freshly-minted presigned URL
  securitySchemes:
    bearerAuth:
      type: http
      description: >-
        Use the Authorization header with the value 'Bearer <apiKey>' to
        authenticate. Partner API Keys have full access; Project API Keys are
        limited to their project scope. Learn more:
        https://docs.peaka.com/api-reference/authentication
      scheme: bearer
      bearerFormat: Api Key

````