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

# Get a done OTLP export's download links

> Each file of a done export, and its manifest.json, with a link that downloads it without credentials for 15 minutes (5 for an agent, whose links land in its model's context): a bearer URL, so treat it as the data itself and do not paste it where others read. Ask again for fresh links until the files are deleted, 7 days after the export finished. Owners and admins only: the console session, the CLI signed in as you (apsio login), or an agent with your exports:write grant (Settings > Agents and tokens); never a project token (person_required, D115). Every call is audited as export.links, with the number of files, never a link. Answered with Cache-Control: no-store.



## OpenAPI

````yaml /api-reference/openapi.json get /projects/{projectId}/exports/{exportId}/files
openapi: 3.1.0
info:
  title: Apsio API
  version: 0.1.0
  description: >-
    Read API v0: your projects, release health and comparisons, missing symbols,
    issues, sessions, vitals, cohort comparisons, performance (app start,
    screens, hangs, MetricKit) and network endpoints and traces for one project.
    Authenticate with a project token as a bearer token, with an OAuth access
    token from Apsio's authorization server (MCP clients), or, from the console,
    with the session cookie of a member of the project's organization.
servers:
  - url: https://api.apsio.io/v1
security: []
paths:
  /projects/{projectId}/exports/{exportId}/files:
    get:
      summary: Get a done OTLP export's download links
      description: >-
        Each file of a done export, and its manifest.json, with a link that
        downloads it without credentials for 15 minutes (5 for an agent, whose
        links land in its model's context): a bearer URL, so treat it as the
        data itself and do not paste it where others read. Ask again for fresh
        links until the files are deleted, 7 days after the export finished.
        Owners and admins only: the console session, the CLI signed in as you
        (apsio login), or an agent with your exports:write grant (Settings >
        Agents and tokens); never a project token (person_required, D115). Every
        call is audited as export.links, with the number of files, never a link.
        Answered with Cache-Control: no-store.
      parameters:
        - schema:
            type: string
            pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
            example: 0192f3a4-0000-7000-8000-00000000a101
          required: true
          name: projectId
          in: path
        - schema:
            type: string
            pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
            example: 0192f3a4-0000-7000-8000-0000000e0001
          required: true
          name: exportId
          in: path
      responses:
        '200':
          description: The links.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OtlpExportFiles'
        '400':
          description: The request is not valid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: No valid bearer token or console session.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: >-
            Not allowed: the sandbox; a project token (person_required: exports
            need a person, D115); a member (owners and admins only); or an agent
            without the person's exports:write grant (grant_required,
            grant_expired, with grant_url).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WriteRefusal'
        '404':
          description: No such project, or no such export in it.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '409':
          description: The export is not done yet.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '410':
          description: The export's files were deleted.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          description: >-
            Over a rate limit (the caller's, the client address's, or the
            plan's); Retry-After says when to retry.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '503':
          description: Exports are not set up here.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
        - bearer: []
        - session: []
components:
  schemas:
    OtlpExportFiles:
      type: object
      properties:
        files:
          type: array
          items:
            type: object
            properties:
              signal:
                type: string
                enum:
                  - logs
                  - traces
                  - metrics
                description: >-
                  logs (crashes, hangs and events included), traces (spans) or
                  metrics.
              name:
                type: string
                example: logs-0001.ndjson.gz
              bytes:
                type: number
              records:
                type: number
              url:
                type: string
                description: Downloads the file until links_expire_at.
            required:
              - signal
              - name
              - bytes
              - records
              - url
        manifest_url:
          type: string
        manifest_bytes:
          type: number
          description: manifest.json's size.
        links_expire_at:
          type: string
        files_expire_at:
          type: string
      required:
        - files
        - manifest_url
        - manifest_bytes
        - links_expire_at
        - files_expire_at
    Error:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
              example: invalid_request
            message:
              type: string
            subject:
              type: string
              enum:
                - organization
                - project
              description: >-
                With `erasing` (410) only: what is being deleted, the
                organization or the project.
          required:
            - code
            - message
      required:
        - error
    WriteRefusal:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
              example: grant_required
            message:
              type: string
            grant_url:
              type: string
              description: >-
                grant_required and grant_expired for an OAuth client: the
                console page (Settings > Agents and tokens) where the user gives
                this client the capability.
          required:
            - code
            - message
      required:
        - error
  securitySchemes:
    bearer:
      type: http
      scheme: bearer
      description: >-
        A project token (apsio_pt_v0...), which reads exactly one project, or an
        OAuth access token issued for the API, which reads what its user can.
        Access tokens issued for Apsio's MCP server are accepted only from the
        MCP server itself.
    session:
      type: apiKey
      in: cookie
      name: apsio_session
      description: >-
        The console session, set by /v1/auth/callback (`__Host-apsio_session`
        when host-only).

````

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