---
title: "Read an export page and refresh signed download URLs"
method: GET
path: "/v1/research-workspaces/{id}/files/exports/{export}"
tags: ["Research workspaces"]
---

# Read an export page and refresh signed download URLs

`GET /v1/research-workspaces/{id}/files/exports/{export}`

## Request

- Base URL: `/` (relative, and the document was published on a file host, not at the API’s origin)
- URL: `/v1/research-workspaces/{id}/files/exports/{export}`
- Auth: HTTP bearer

Each page has at most 256 segment URLs. Existing exports remain readable after current saved files are deleted or compute resumes, until the fixed export expiry. This does not extend that expiry.

## Path parameters

- `id` string, required
- `export` string, required

## Query parameters

- `offset` integer

## Response `200`

Pinned export page

- ResearchWorkspaceFileExport
  - `id` string, uuid, required
  - `workspace_id` string, required
  - `storage_revision` integer, required
  - `format` 'research-archive-v3', required
  - `expires_at` string, date-time, required: Fixed expiry of the retained export revision, 24 hours after admission.
  - `urls_expire_at` string, date-time, required: Earliest signed URL expiry on this page, at most 15 minutes. Read the page again for fresh URLs.
  - `manifest` WorkspaceArchiveManifest, required: Version 3 canonical workspace archive commitment, limited to 16 MiB of manifest JSON. Requires a qualified archive writer. Arbitrary tar, zip or compressed bytes are not accepted. The archive permits ordered regular files, directories and confined symbolic links, with at most 10 GB of payload and 512 MiB of archive metadata. Verification checks the complete archive and inventory before replacing saved files.
    - `version` 3, required
    - `archive_sha256` string, required
    - `archive_bytes` integer, required
    - `inventory` WorkspaceArchiveInventory, required
      - `sha256` string, required: Versioned inventory digest derived from ordered paths, file bytes and metadata. The server verifies it against the uploaded archive.
      - `payload_bytes` integer, required
      - `entries` integer, required
    - `segments` WorkspaceArchiveSegment[], required
      - `sha256` string, required
      - `offset` integer, required
      - `bytes` integer, required
  - `segments` ResearchWorkspaceExportSegment[], required
    - `index` integer, required
    - `sha256` string, required
    - `offset` integer, required
    - `bytes` integer, required
    - `url` string, uri, required: Short-lived signed HTTPS object URL. Do not forward Nodus authentication or cookies to this URL.
    - `download_path` string, required: Authenticated API-relative path for downloading this segment without cross-origin browser requests.
  - `next_offset` integer: Read the next page at this offset. Omitted on the final page.

## Other responses

- `default`: 404 for an unavailable owned workspace or export, 409 for stale revision, active compute, pending transfer, empty files or legacy format, 410 for expired export, 429 for too many retained export revisions, and 503 for temporary storage failures. Authentication and rate limits apply. No credit balance is required.

---

[API](https://skmtc.dev/nodus-compute/apis/nodus-infrastructure-execution-api.md) - [All operations](https://skmtc.dev/nodus-compute/apis/nodus-infrastructure-execution-api/llms.txt) - [OpenAPI document](https://skmtc.dev/nodus-compute/apis/nodus-infrastructure-execution-api/revisions/a59210899d95?raw)
