Shifts
The API- functions for Shifts in Papershift
Create a new Shift
Creates a new shift in your Papershift account
URL
https://app.papershift.com/public_api/v1/shifts
Method
POST
Parameters
Parameter | Type | Required |
---|---|---|
api_token | String | required |
location_id | Integer | required |
location_external_id | String | required if location_id is not set |
working_area_id | Integer | required |
working_area_external_id | String | required if working_area_id is not set |
starts_at | String (use ISO) | required |
ends_at | String (use ISO) | required |
number_of_employees | Integer | required |
note | String | optional |
visible | Boolean | optional |
tags | String | optional |
Information
Creating shifts requires a valid location and working area
within the authorized Enterprise. You either get these through
the external ID you simply set by yourself or the record's ID
from the database.
Example
{
"api_token": "6ooIiSZaiBwaFBLxveJkm7pP8uTOPLPSwDL6QsOK",
"shift": {
"location_external_id": "Company-A",
"working_area_external_id": "Area-Alpha",
"starts_at": "2016-06-02T07:00:00Z",
"ends_at": "2016-06-02T17:00:00Z",
"number_of_employees": 3,
"tags": "3,7,15"
}
}
function createShift() {
var params = {
"api_token": "6ooIiSZaiBwaFBLxveJkm7pP8uTOPLPSwDL6QsOK",
"shift": {
"location_external_id": "Company-A",
"working_area_external_id": "Area-Alpha",
"starts_at": "2016-06-02T07:00:00Z",
"ends_at": "2016-06-02T17:00:00Z",
"number_of_employees": 3,
"tags": "3,7,15"
}
};
$.ajax({
url: "https://app.papershift.com/public_api/v1/shifts",
type: 'POST',
dataType: 'json',
data: JSON.stringify(params),
complete: function (data) {
console.log(data.responseText);
}
});
}
{
"id": 747,
"company_id": 60,
"working_area_id": 74
"starts_at": "2016-06-02T07:00:00Z",
"ends_at": "2016-06-02T17:00:00Z",
"number_of_employees": 3,
"note": null,
"outlook_id": null,
"shift_id": null,
"user_shift": null,
"visible": null,
"edited": false,
"created_at": "2016-06-07T09:59:13Z",
"updated_at": "2016-06-07T09:59:13Z",
"tags": [
{
"id": 3,
"title": "Tag 3",
"active": true,
"external_id": null
},
{
"id": 7,
"title": "Tag 7",
"active": true,
"external_id": null
},
{
"id": 15,
"title": "Tag 15",
"active": true,
"external_id": null
}
]
}
Update an existing Shift
Update an existing shift in your Papershift account
URL
https://app.papershift.com/public_api/v1/shifts
Method
PUT
Parameters
Parameter | Type | Required |
---|---|---|
api_token | String | required |
id | Integer | required |
starts_at | String (use ISO) | required |
ends_at | String (use ISO) | required |
number_of_employees | Integer | required |
note | String | optional |
visible | Boolean | optional |
tags | String | optional |
Information
To update an existing shift requires finding the specific
record in the database. This can be achieved via the shift’s record ID.
Example
{
"api_token": "6ooIiSZaiBwaFBLxveJkm7pP8uTOPLPSwDL6QsOK",
"shift": {
"id": 745,
"starts_at": "2016-06-06T07:00:00Z",
"ends_at": "2016-06-06T17:00:00Z",
"number_of_employees": 5,
"tags": "3"
}
}
function updateShift() {
var params = {
"api_token": "6ooIiSZaiBwaFBLxveJkm7pP8uTOPLPSwDL6QsOK",
"shift": {
"id": 745,
"starts_at": "2016-06-06T07:00:00Z",
"ends_at": "2016-06-06T17:00:00Z",
"number_of_employees": 5,
"tags": "3"
}
};
$.ajax({
url: "https://app.papershift.com/public_api/v1/shifts",
type: 'PUT',
dataType: 'json',
data: JSON.stringify(params),
complete: function (data) {
console.log(data.responseText);
}
});
}
{
"id": 745,
"company_id": 60,
"working_area_id": 34
"starts_at": "2016-06-06T07:00:00Z",
"ends_at": "2016-06-06T17:00:00Z",
"number_of_employees": 5,
"note": null,
"outlook_id": null,
"shift_id": null,
"user_shift": null,
"visible": null,
"edited": false,
"created_at": "2016-06-06T12:26:08Z",
"updated_at": "2016-06-06T12:26:08Z",
"tags": [
{
"id": 3,
"title": "Tag 3",
"active": true,
"external_id": null
}
]
}
Get Shift by ID
Get shift by its unique ID or external ID
URL
https://app.papershift.com/public_api/v1/shifts
Method
GET
Parameters
Parameters | Type | Required |
---|---|---|
api_token | string | required |
id | integer | required |
external_id | string | required if id not set |
Example
{
"api_token": "XXXX",
"id": 83201907
}
{
"company_id": 72214,
"created_at": "2019-07-10T10:38:02+02:00",
"ends_at": "2019-07-03T17:00:00+02:00",
"exact_pause_duration": null,
"id": 83201907,
"import_id": null,
"number_of_employees": 1,
"outlook_id": null,
"recurrence_id": null,
"remove": false,
"starts_at": "2019-07-03T13:00:00+02:00",
"status": null,
"updated_at": "2019-07-10T14:32:23+02:00",
"uuid": "15c65589-4a2a-4b84-b537-0f36fef61a41",
"working_area_id": 164359
}
Get Shifts in Range
Get existing shift(s) in range from your Papershift account
URL
https://app.papershift.com/public_api/v1/shifts
Method
GET
Parameters
Parameter | Type | Required |
---|---|---|
api_token | String | required |
location_id | Integer | required |
location_external_id | String | required if location_id is not set |
working_area_id | Integer | optional |
working_area_external_id | String | optional if working_area_id is not set |
range_start (just Date) | String (use ISO) | required |
range_end (just Date) | String (use ISO) | required |
page | Integer | optional |
tags | String, comma-separated string for multiple IDs | optional |
Information
A successful request returns an array of the n-th 25 Shifts
depending on the page param. You can also pass a working area’s external-
or record ID to only query for shifts of this specific working area.
When setting the visible_only param to true, only visible shifts are shown.
It is possible to pass a list of tag IDs to only query shifts
with tags specified by the given IDs. The list of tags IDs can also
contain a zero to include shifts without any tags. The list of
tag IDs must be a comma-separated string that must contain positive
integers including zero, e.g. ‚3,7,15,0,8‘.
Example
{
"api_token" : "6ooIiSZaiBwaFBLxveJkm7pP8uTOPLPSwDL6QsOK",
"location_external_id": "Company-A",
"range_start": "2016-06-01",
"range_end": "2016-06-30"
}
function getShifts() {
var api_token = "6ooIiSZaiBwaFBLxveJkm7pP8uTOPLPSwDL6QsOK";
var location_external_id = "Company-A";
var range_start = "2016-06-01";
var range_end = "2016-06-30";
$.ajax({
url: "https://app.papershift.com/public_api/v1/shifts?api_token=" + api_token + "&location_external_id=" + location_external_id + "&range_start=" + range_start + "&range_end=" + range_end,
type: 'GET',
dataType: 'json',
complete: function (data) {
console.log(data.responseText);
}
});
}
{
"shifts": [
{
"id": 747,
"company_id": 60,
"working_area_id": 74
"starts_at": "2016-06-02T07:00:00Z",
"ends_at": "2016-06-02T17:00:00Z",
"number_of_employees": 3,
"note": null,
"outlook_id": null,
"shift_id": null,
"user_shift": null,
"visible": null,
"edited": false,
"created_at": "2016-06-07T09:59:13Z",
"updated_at": "2016-06-07T09:59:13Z",
},
{
"id": 745,
"company_id": 60,
"working_area_id": 34
"starts_at": "2016-06-06T07:00:00Z",
"ends_at": "2016-06-06T17:00:00Z",
"number_of_employees": 5,
"note": null,
"outlook_id": null,
"shift_id": null,
"user_shift": null,
"visible": null,
"edited": false,
"created_at": "2016-06-06T12:26:08Z",
"updated_at": "2016-06-06T12:26:08Z",
}
],
"next_page": "http://localhost:5000/public_api/v1/shifts?api_token=6ooIiSZaiBwaFBLxveJkm7pP8uTOPLPSwDL6QsOK&range_start=2016-06-01&range_end=2016-06-30&location_external_id=Company-A"
}
Delete an existing Shift
Delete an existing shift in your Papershift account
URL
https://app.papershift.com/public_api/v1/shifts
Method
DELETE
Parameters
Parameter | Type | Required |
---|---|---|
api_token | String | required |
id | Integer | required |
Information
To delete an existing shift requires finding the specific
record in the database. This can be achieved via the shift’s record ID.
Example
{
"api_token": "6ooIiSZaiBwaFBLxveJkm7pP8uTOPLPSwDL6QsOK",
"shift": {
"id": 746
}
}
function deleteShift() {
var params = {
"api_token": "6ooIiSZaiBwaFBLxveJkm7pP8uTOPLPSwDL6QsOK",
"shift": {
"id": 746
}
};
$.ajax({
url: "https://app.papershift.com/public_api/v1/shifts",
type: 'DELETE',
dataType: 'json',
data: JSON.stringify(params),
complete: function (data) {
console.log(data.responseText);
}
});
}
Response 200 (application/json)
Updated 5 months ago