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.

FieldTypeDescription
templateIdstringUnique identifier for the template
versionstringTemplate version number
namestringDisplay name of the template
statusstringTemplate status (e.g., ACTIVE)
assigneeInstructionsstringDefault 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

FieldTypeRequiredDescription
namestringYesName of the upload request
dueDatestringYesDue date and time in ISO 8601 format (e.g., 2025-03-21T16:18:09.450Z)
folderIdstringYesID of the folder where uploaded files will be stored
templateIdstringYesTemplate ID obtained from the List Templates endpoint
assigneesarrayYesArray of assignee objects. Each object contains either userId (integer) for internal users or externalEmail (string) for external users
assigneeInstructionsstringYesInstructions 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.

FieldTypeDescription
idstringUnique identifier for the upload request

Example Response

{
  "id": "e250227d-044c-45b5-9dbb-c1120a856b84"
}

Error Codes

StatusErrorDescriptionResolution
400Bad RequestInvalid request body or missing required fieldsVerify all required fields are present and correctly formatted. Ensure dueDate is in ISO 8601 format
401UnauthorizedInvalid or expired tokenRefresh your OAuth token
403ForbiddenMissing Egnyte.uploadrequests scope or insufficient permissionsEnsure your OAuth token includes the Egnyte.uploadrequests scope and the user has permission to create upload requests
404Not FoundTemplate ID or folder ID does not existVerify the templateId using the List Templates endpoint and confirm the folderId is valid
429Rate LimitedToo many requestsImplement 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"
}'