Upload Requests
The Upload Requests API allows you to send upload requests to internal or external users and retrieve available upload request templates. Use this API to automate document collection workflows.
Note: All Upload Requests API endpoints require the Egnyte.uploadrequests OAuth scope.
Base URL
https://{domain}.egnyte.com/pubapi/v1/upload-requests
Authentication
All requests require an OAuth 2.0 Bearer token in the Authorization header:
Authorization: Bearer {access_token}
See Authentication for details on obtaining a token.
List Templates
Retrieves a list of available upload request templates. Use this endpoint to obtain template IDs and default instructions needed when creating upload requests.
Request
GET /pubapi/v1/upload-requests/templates
Path Parameters
This endpoint does not require path parameters.
Query Parameters
This endpoint does not require query parameters.
Example Request
curl -i -X GET "https://{domain}.egnyte.com/pubapi/v1/upload-requests/templates" \ -H "Authorization: Bearer YOUR_ACCESS_TOKEN"
Response
200 OK
Returns an array of template objects.
| Field | Type | Description |
|---|---|---|
templateId | string | Unique identifier for the template |
version | string | Template version number |
name | string | Display name of the template |
status | string | Template status (e.g., ACTIVE) |
assigneeInstructions | string | Default instructions shown to assignees |
Example Response
[
{
"templateId": "74403afb-1f9b-43f4-b219-a5acd29c41e0",
"version": "1.0",
"name": "Account Onboarding",
"status": "ACTIVE",
"assigneeInstructions": "Provide the following documents to help us create your account"
}
]
Create Upload Request
Creates a new upload request and sends it to one or more assignees. Assignees can be internal users (identified by userId) or external users (identified by externalEmail).
Request
POST /pubapi/v1/upload-requests
Path Parameters
This endpoint does not require path parameters.
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
name | string | Yes | Name of the upload request |
dueDate | string | Yes | Due date and time in ISO 8601 format (e.g., 2025-03-21T16:18:09.450Z) |
folderId | string | Yes | ID of the folder where uploaded files will be stored |
templateId | string | Yes | Template ID obtained from the List Templates endpoint |
assignees | array | Yes | Array of assignee objects. Each object contains either userId (integer) for internal users or externalEmail (string) for external users |
assigneeInstructions | string | Yes | Instructions displayed to assignees. You can use the default instructions from the template or provide custom text |
Example Request
curl -i -X POST "https://{domain}.egnyte.com/pubapi/v1/upload-requests" \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \ -d '{ "name": "Account Onboarding", "dueDate": "2025-03-21T16:18:09.450Z", "folderId": "6e4465e9-2713-4b16-a787-3560b50f2236", "templateId": "0af99f3d-a2d6-4a4e-af81-b2aab2d58787", "assignees": [ { "userId": 47 }, { "externalEmail": "bob@example.com" } ], "assigneeInstructions": "Provide the following documents to help us create your account" }'
Response
201 Created
Returns the ID of the newly created upload request.
| Field | Type | Description |
|---|---|---|
id | string | Unique identifier for the upload request |
Example Response
{
"id": "e250227d-044c-45b5-9dbb-c1120a856b84"
}
Error Codes
| Status | Error | Description | Resolution |
|---|---|---|---|
| 400 | Bad Request | Invalid request body or missing required fields | Verify all required fields are present and correctly formatted. Ensure dueDate is in ISO 8601 format |
| 401 | Unauthorized | Invalid or expired token | Refresh your OAuth token |
| 403 | Forbidden | Missing Egnyte.uploadrequests scope or insufficient permissions | Ensure your OAuth token includes the Egnyte.uploadrequests scope and the user has permission to create upload requests |
| 404 | Not Found | Template ID or folder ID does not exist | Verify the templateId using the List Templates endpoint and confirm the folderId is valid |
| 429 | Rate Limited | Too many requests | Implement exponential backoff; check Retry-After header |
Code Examples
List Templates
curl -i -X GET "https://{domain}.egnyte.com/pubapi/v1/upload-requests/templates" \ -H "Authorization: Bearer YOUR_ACCESS_TOKEN"
Create Upload Request
curl -i -X POST "https://{domain}.egnyte.com/pubapi/v1/upload-requests" \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \ -d '{ "name": "Account Onboarding", "dueDate": "2025-03-21T16:18:09.450Z", "folderId": "6e4465e9-2713-4b16-a787-3560b50f2236", "templateId": "0af99f3d-a2d6-4a4e-af81-b2aab2d58787", "assignees": [ { "userId": 47 }, { "externalEmail": "bob@example.com" } ], "assigneeInstructions": "Provide the following documents to help us create your account" }'
Related Resources
- Authentication — How to obtain and refresh OAuth tokens
- File System API — Manage folders and retrieve folder IDs
- User Management API — Retrieve user IDs for internal assignees
