---
title: "Service: /upload [GET]"
source: https://dev.pageseeder.com/api/services/upload-GET.html
last_updated: 2026-08-07T17:09:54+10:00
document_type: api_endpoint
operation_id: load-GET
resource_id: load
path_template: /upload
http_method: GET
api_category: load
implementation_version: 6.3000
api_since: 6.3000
deprecated_since: null
obsolete_since: null
api_support: supported
cache_control: null
generated_at: 2026-06-29
tokens: ~342
---

# /upload \[GET\]

## Description

Retrieves a file from the loading zone.

## Parameters

| Name | Description | Required | Type | Default |
| --- | --- | --- | --- | --- |
| group | The group for the loading zone | yes | string |  |
| path | The path of the file to retrieve (relative to loading zone root) | yes | string |  |
| uploadid | An ID to uniquely identify this upload (overrides xlinkid) | no | string |  |
| xlinkid | A draft comment ID to attach files to | no | string |  |

## Permission

Must have the role of contributor or higher in the group.

## Response

This service returns the file that corresponds to the specified group and path.

The HTTP headers include:

- `Content-Type` based on the file extension.
- `Last-Modified` user for HTTP caching based date the file was uploaded.
- `Content-Disposition` set to `attachment; filename="[filename]"` .

This service supports HTTP caching with the `If-Modified-Since` HTTP header.

## Error handling

| HTTP Status | Error condition |
| --- | --- |
| **400** | The group or path is not specified |
| **400** | If specified, the uploadid or xlinkid  is not valid |
| **401** | The user is not authenticated |
| **403** | The user does not have permission to access the path in this group |
| **404** | The specified group does not exist |
| **404** | The specified path does not match any file |

