---
title: "Pull project files"
method: GET
path: "/v1/integration/advanced-dsl/projects/{projectId}/pull"
tags: ["Advanced DSL Project Management"]
---

# Pull project files

`GET /v1/integration/advanced-dsl/projects/{projectId}/pull`

## Request

- Base URL: `https://integration-adapter.connect.cloud.precisely.com`
- URL: `https://integration-adapter.connect.cloud.precisely.com/v1/integration/advanced-dsl/projects/{projectId}/pull`
- Auth: HTTP bearer

Retrieves DSL project files with optional content for a pull operation.

**Features:**
- Pull latest or specific revision
- Optional content inclusion for offline editing
- Selective field projection via relatedAssetFields
- Content is base64-encoded when includeContent=true

**Use Cases:**
- Initial project pull (includeContent=true)
- Pre-push metadata check (includeContent=false)
- Historical revision retrieval

**Scenarios:**
- Full pull of latest revision for local workspace hydration
- Selective pull via `assetIds` for targeted downloads
- Metadata-only pull to compare before push

**Required Permissions:** `replication-pipeline::view`

## Path parameters

- `projectId` string, required

## Query parameters

- `revisionNumber` integer
- `includeContent` boolean
- `relatedAssetFields` string[]
- `assetIds` string[]

## Response `200`

Successfully retrieved project files

- PullFilesResponse: Response containing project files for a pull operation
  - `revisionId` string: The revision ID from which files are being pulled
  - `revisionNumber` integer: The revision number from which files are being pulled
  - `files` ProjectFileRecord[]: List of project files
    - `catalogAssetId` string: The catalog asset ID for this file
    - `flattenedPath` string: The flattened path of the file within the project
    - `name` string: The file name
    - `version` integer: The version number of this file asset
    - `phase` 'draft' | 'approved' | 'pending_deletion': The lifecycle phase of the file
    - `content` string: Base64-encoded file content (present only when includeContent=true)
    - `contentHash` string: SHA-256 hash of the file content
    - `sizeBytes` integer: Size of the file in bytes
    - `mimeType` string: MIME type of the file
    - `encoding` string: Logical file encoding format
    - `createdAt` string, date-time: Timestamp when the file was created
    - `updatedAt` string, date-time: Timestamp when the file was last updated
    - `createdBy` string: User who created the file
    - `updatedBy` string: User who last updated the file
    - `catalogLink` string: Direct link to the asset in the Data Catalog UI
  - `includeContent` boolean: Whether file content is included in the response
  - `totalCount` integer: Total number of files in the project

## Other responses

- `401`: Unauthorized — authentication required
- `403`: Forbidden — user lacks 'replication-pipeline::view' permission
- `404`: Project or revision not found
- `500`: Internal server error during file retrieval

---

[API](https://skmtc.dev/precisely/apis/precisely-integration-adapter-service.md) · [All operations](https://skmtc.dev/precisely/apis/precisely-integration-adapter-service/llms.txt) · [OpenAPI document](https://skmtc.dev/precisely/apis/precisely-integration-adapter-service/revisions/2d2629f4987d?raw)
