This document describes the endpoints, data contracts and operations that can be used to upload and retrieve documents in the PageUp system.
The document API enables systems to integrate with PageUp for the common purpose of obtaining recruitment documents (files) from PageUp or uploading recruitment documents (files) to PageUp.
For information on how to obtain API credentials and to start integrating with the API, please visit the Getting started page.
To begin using any of the APIs, there are a few things that you will need:
See the implementation notes under each endpoint below to see which scope it's needed for each of the endpoint.
Calling the Document API endpoints follow the following root URI format:
https://<environment>.<dataCentreId>.pageuppeople.com/v3/<tenantId>/recruitment/document/...
The following values are to be used in the above URI. Note that authentication credentials used in your API calls must match these values.
218
,1234
, etc.)
The following list specifies the data centres used by PageUp:Region | dataCentreId |
---|---|
AUS | dc2 |
UK / EMEA | dc3 |
US | dc4 |
SEA | dc5 |
Please contact PageUp representative to find out the data centre and organisation's tenant Id if not known.
Example - connect to the 218 production environment on dc2
https://api.dc2.pageuppeople.com/v3/218/recruitment/document/1234
Example - connect to the 218 development or testing environment on dc2
https://apiuat.dc2.pageuppeople.com/v3/218/recruitment/document/1234
Take note of the following values, as these would be used in the next steps:
test.txt
, the URI you use would be:https://api.dc2.pageuppeople.com/v3/000/recruitment/document/prepareTempDirectUpload?filename=test.txt
Calling this endpoint will return a response that looks like the following:
{
"url": "https://pageup-storage-temp-au.s3.ap-southeast-2.amazonaws.com/543/Document/5b7f3246-12c5-495d-b5ed-77e257808d3e.txt?X-Amz-Expires=1800&X-Amz-Security-Token=IQoJb3JpZ2luX2VjEHEaDmFwLXNvdXRoZWFzdC0yIkcwRQIgEY8n3TCVyXv0IlPxJU%2FbLVSVfBBNvj2dMRlEuirW6T8CIQD%2FMCfbFZX9HrVZ5hHWrBT%2BlQvNPo6MnHyU%2FEHzaQevfCrMBQhaEAUaDDU3MjAyMjYzOTM4OSIMFi09RsEQFtpUrTgBKqkFubegLgG9gfYqgAT46wGA6yx5WGD%2FiWVj7WjNT3R7JAjv%2Bj2YM7OiIXB117f6SnQ4TmLL7YW9751oX%2BDeVdOr%2FUONZuzVMJKHx%2FRYerlHrHMQP7VD8yXiPAQ18%2B6RsTDwyoRp33WkZP%2BEIm76YJaGGXtzIvncWpLe%2FRaTgAqq5Pfy5td9z0yV5T%2BFXibCJCEzbdf5aEmOGWrkA7HcP72CUQ3tJ5RKadXLI8q5GeJ9PhQKL%2BVJxOg%2B9XshbRrVIpg8gsLPJcX7jpvyqbTILhlb%2FlwJumrFealPV72UpckxHpN9mYsL5t33yaTAxsirqZDwFjFQXZqfT0k0TZSnz1jghsylxkxwsmeagHe8frKloRnogD9AGzbf0RdkNrna%2Fn6eoE0gjveaJnPg6K%2FXfcZLggJjctCLnx8OWBMyvHRxbqMKn14f6QstF1S3SRrlSjWbZizdyPzozojnAYKF%2BnYuYVITeWjnnS48WvXNaqpuRgfSjf5RB4ZtNe3S4Hezjy9IJfJjLwpRp3zVJZPI08GJkWcweco6nkF8iBaiGsA5AIv%2FPsue9dFRPyUP7rjfEJ9icTYmnUObTznmecpszzIGCLHfSUMWM0rJv5MaL787Pl1ze7x%2F5XLqWp%2FMxBYt7Rog3z%2BEnFFRbZgvZwmIjtXxKKD5vE9UNru06Qf2qsmd4uYoLd%2FmXJUmZYv4Oa7hcRr1njNfzICcBOGiUjQj%2B1%2BMkTcnJOtrA0AsbOQbPrNhcGNZAkJgfisMgb%2BGSMI8RlsIwBll1lEamLjhxu2Qjp0o0Rg03uqlYxWgYk0yHMhvQkSATI61ZsxTQ9S5OVElebTa31C9%2BrJ5e9lzWA25UKS83dLztkno%2FgnsI6iaMI1fyZvTcc4E9CyS7v09BoIE3Js6RN8ao%2B2xj%2FiuML%2Bwv8IGOrEBuaM23WStn%2FUeNG5OzAY2LnZ%2Bcw6ivqLT3grKBL%2Bl3Ti3MZ%2FeaoXoRkpNUiFR1B6ngHPYrw1SfQy7X6MV7%2B3vYTai%2FnTgXXwbqW05NIbmiIR15whOkACLN8tuERfoQUb8Vj2iiV6yUf1eJBxcwfaKb8mttd9JvdARMowU%2FHp2A2wPE2dlN%2BSpWEnp44XfpHluXiujwxgzI6vmOYsKFQgLO11YUGRI6tUS0OxZIlFUjsP6&response-content-disposition=attachment%3Bfilename%3D%22test.txt%22%3B%20filename%2A%3Dutf-8%27%27test.txt&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=ASIAYKLZUZMO5JQZKT7O%2F20250616%2Fap-southeast-2%2Fs3%2Faws4_request&X-Amz-Date=20250616T092044Z&X-Amz-SignedHeaders=content-type%3Bhost%3Bx-amz-acl%3Bx-amz-server-side-encryption&X-Amz-Signature=50009de31439fbc6e7418d8aec0f01f93d7f4c2054e1fb6223181921d0893e1a",
"contentType": "text/plain",
"physicalFile": "5b7f3246-12c5-495d-b5ed-77e257808d3e.txt",
"headers": {
"Content-Disposition": "attachment;filename=\"test.txt\"; filename*=utf-8''test.txt",
"x-amz-server-side-encryption": "AES256",
"x-amz-acl": "bucket-owner-full-control"
},
"method": "PUT",
"fallbackUrl": null
}
url
value from the prepareTempDirectUpload
responseUse the PUT
HTTP verb to call the URL indicated in the url
attribute of the response in Step 1.
You will need to include all the HTTP headers and their values included in the headers
attribute. Optionally you may set the content-type
of your attachment manually, corresponding to the contentType
attribute from the same response in Step 1.
Continuing with the example from the previous step, our new request headers will look like:
content-type: text/plain
content-disposition: attachment;filename=\"test.txt\"; filename*=utf-8''test.txt
x-amz-server-side-encryption: AES256
x-amz-acl: bucket-owner-full-control
This should then be attached to the following HTTP Verb and URL to call the request:
PUT https://pageup-storage-temp-au.s3.ap-southeast-2.amazonaws.com/543/Document/5b7f3246-12c5-495d-b5ed-77e257808d3e.txt?X-Amz-Expires=1800&X-Amz-Security-Token=IQoJb3JpZ2luX2VjEHEaDmFwLXNvdXRoZWFzdC0yIkcwRQIgEY8n3TCVyXv0IlPxJU%2FbLVSVfBBNvj2dMRlEuirW6T8CIQD%2FMCfbFZX9HrVZ5hHWrBT%2BlQvNPo6MnHyU%2FEHzaQevfCrMBQhaEAUaDDU3MjAyMjYzOTM4OSIMFi09RsEQFtpUrTgBKqkFubegLgG9gfYqgAT46wGA6yx5WGD%2FiWVj7WjNT3R7JAjv%2Bj2YM7OiIXB117f6SnQ4TmLL7YW9751oX%2BDeVdOr%2FUONZuzVMJKHx%2FRYerlHrHMQP7VD8yXiPAQ18%2B6RsTDwyoRp33WkZP%2BEIm76YJaGGXtzIvncWpLe%2FRaTgAqq5Pfy5td9z0yV5T%2BFXibCJCEzbdf5aEmOGWrkA7HcP72CUQ3tJ5RKadXLI8q5GeJ9PhQKL%2BVJxOg%2B9XshbRrVIpg8gsLPJcX7jpvyqbTILhlb%2FlwJumrFealPV72UpckxHpN9mYsL5t33yaTAxsirqZDwFjFQXZqfT0k0TZSnz1jghsylxkxwsmeagHe8frKloRnogD9AGzbf0RdkNrna%2Fn6eoE0gjveaJnPg6K%2FXfcZLggJjctCLnx8OWBMyvHRxbqMKn14f6QstF1S3SRrlSjWbZizdyPzozojnAYKF%2BnYuYVITeWjnnS48WvXNaqpuRgfSjf5RB4ZtNe3S4Hezjy9IJfJjLwpRp3zVJZPI08GJkWcweco6nkF8iBaiGsA5AIv%2FPsue9dFRPyUP7rjfEJ9icTYmnUObTznmecpszzIGCLHfSUMWM0rJv5MaL787Pl1ze7x%2F5XLqWp%2FMxBYt7Rog3z%2BEnFFRbZgvZwmIjtXxKKD5vE9UNru06Qf2qsmd4uYoLd%2FmXJUmZYv4Oa7hcRr1njNfzICcBOGiUjQj%2B1%2BMkTcnJOtrA0AsbOQbPrNhcGNZAkJgfisMgb%2BGSMI8RlsIwBll1lEamLjhxu2Qjp0o0Rg03uqlYxWgYk0yHMhvQkSATI61ZsxTQ9S5OVElebTa31C9%2BrJ5e9lzWA25UKS83dLztkno%2FgnsI6iaMI1fyZvTcc4E9CyS7v09BoIE3Js6RN8ao%2B2xj%2FiuML%2Bwv8IGOrEBuaM23WStn%2FUeNG5OzAY2LnZ%2Bcw6ivqLT3grKBL%2Bl3Ti3MZ%2FeaoXoRkpNUiFR1B6ngHPYrw1SfQy7X6MV7%2B3vYTai%2FnTgXXwbqW05NIbmiIR15whOkACLN8tuERfoQUb8Vj2iiV6yUf1eJBxcwfaKb8mttd9JvdARMowU%2FHp2A2wPE2dlN%2BSpWEnp44XfpHluXiujwxgzI6vmOYsKFQgLO11YUGRI6tUS0OxZIlFUjsP6&response-content-disposition=attachment%3Bfilename%3D%22test.txt%22%3B%20filename%2A%3Dutf-8%27%27test.txt&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=ASIAYKLZUZMO5JQZKT7O%2F20250616%2Fap-southeast-2%2Fs3%2Faws4_request&X-Amz-Date=20250616T092044Z&X-Amz-SignedHeaders=content-type%3Bhost%3Bx-amz-acl%3Bx-amz-server-side-encryption&X-Amz-Signature=50009de31439fbc6e7418d8aec0f01f93d7f4c2054e1fb6223181921d0893e1a
Using values from Step 1, construct the request body with these values:
physicalFile
from the response in Step 1For the document category attribute, ONE AND ONLY ONE of either attribute should be present in the request:
The table below describes the available System Document Categories (i.e. documentCategoryName
) and their corresponding documentCategoryId
values:
System Document Category | documentCategoryId |
---|---|
Resume | 7 |
Agency | 10 |
MailMatcherEmail | 13 |
PositionDescription | 14 |
ReportBuilderTemplate | 17 |
EmployeeDocument | 18 |
JobNote | 19 |
For the following attributes, you would only typically need to include only the relevant ids among the next set of fields, depending on if you are associating the document with a job, applicant, application, or offer:
Here is an example of a request body for this endpoint:
{
"fileName": "uploadtest.txt",
"title": "Test Document",
"physicalFile": "61d1b6ab-19b5-415e-a62a-bf5db265665b.txt",
"providerId": 9552,
"documentCategoryId": 7,
"applicationId": 16142309,
"applicantId": 26459460
}
If this request is successful, you would receive a response similar to the following:
{
"id": "8621",
"title": "Test Document",
"providerID": 9552,
"fileName": "uploadtest.txt",
"physicalFile": "74b6fdd9-7b3e-4d47-9762-8878d47bb03b.txt",
"documentCategoryName": "Resume",
"documentCategoryId": 1,
"applicationId": 16142309,
"applicantId": 26459460,
"jobId": null,
"offerId": null
}
This endpoint accepts the following values: