Public API Documentation for Operto Teams
Authentication Header
All endpoints (except Login) require an access token in the request header:
Authorization: VRS <access_token>
Example: Authorization: VRS eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiIsImV4cCI6IjM2MDAwMDAwMDAwMDAwIn0.eyJDdXNYXNvbiIsInByb3BlcnRpZXMiOlt7InJlc29…
Rate Limiting
Currently, each account is limited to 50 requests per 2 minutes.
Endpoints ¶
Note: Auth token is required in the header of all APIs except the Login API.
Authentication
Used to get an access token and refresh token.
Note: All Login arguments are optional (as documented in your Login schema).
Note: Access token expiry is 1 hour and refresh token expiry is 24 hours.
Get an access token ¶
Get an access tokenPOST/api/v1/oauth/login
Example URI
Headers
Content-Type: application/jsonBody
{
"API_Key": "32C246C4",
"API_Value": "D9DC6018"
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"API_Key": {
"type": "string",
"description": "A4BC-4872-A0B56CA7633C886 (string, required)"
},
"API_Value": {
"type": "string",
"description": "E30B-4C70-AC88366EDA5D5F28 (string, required)"
}
}
}200Headers
Content-Type: application/jsonBody
{
"Access_Token": {
"token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiIsImV4cCI6IjM2MDAifQ...",
"Created": "202003011004",
"Expiry": 3600
},
"Refresh_Token": {
"token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiIsImV4cCI6IjM2MDAifQ...",
"Created": "202003011004",
"Expiry": 86400
}
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"Access_Token": {
"type": "object",
"properties": {
"token": {
"type": "string"
},
"Created": {
"type": "string"
},
"Expiry": {
"type": "number",
"description": "Seconds"
}
}
},
"Refresh_Token": {
"type": "object",
"properties": {
"token": {
"type": "string"
},
"Created": {
"type": "string"
},
"Expiry": {
"type": "number",
"description": "Seconds"
}
}
}
}
}Get an access token using a refresh token ¶
Get an access token using a refresh tokenGET/api/v1/oauth/refresh
Send the refresh token in the Authorization header to receive a new access token.
Example URI
Headers
Authorization: VRS <refresh_token>200Headers
Content-Type: application/jsonBody
{
"ReasonCode": 0,
"ReasonText": "Success",
"Access_Token": {
"token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiIsImV4cCI6IjM2MDAifQ...",
"Created": "202003011004",
"Expiry": 3600
}
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"ReasonCode": {
"type": "number"
},
"ReasonText": {
"type": "string"
},
"Access_Token": {
"type": "object",
"properties": {
"token": {
"type": "string"
},
"Created": {
"type": "string"
},
"Expiry": {
"type": "number",
"description": "Seconds"
}
}
}
}
}Properties ¶
The Property object is the core resource representing physical properties. Most other resources (like Tasks and Issues) attach to a Property.
Note: All query parameters are optional unless stated otherwise.
Get PropertiesGET/api/v1/properties{?OwnerID,Active,RegionID,Sort,per_page,page}
Example URI
- OwnerID
number(optional) Example: 256The unique identifier for the owner.
- RegionID
number(optional) Example: 1The unique identifier for the region.
- Active
boolean(optional) Example: 11= Active,0= Inactive. If omitted, only active properties are returned by default.- Sort
string(optional) Default: PropertyID asc Example: PropertyID ascExample:
CreateDate desc, PropertyID asc. Available fields: PropertyID, PropertyName, CreateDate. Order: asc|desc.- per_page
number(optional) Default: 20 Example: 20Results per page.
- page
number(optional) Default: 1 Example: 1Page number.
Headers
Authorization: VRS <access_token>200Headers
Content-Type: application/jsonBody
{
"url": "/api/v1/properties",
"has_more": true,
"data": [
{
"PropertyID": 4,
"Active": true,
"PropertyName": "Waterfront Cabin",
"PropertyAbbreviation": "WAT",
"Description": "description",
"InternalNotes": "Internal notes",
"Address": "123 Main St. Sunnyvale, CA 94086",
"Lat": 0,
"Lon": 0,
"DoorCode": "1234",
"DefaultCheckInTime": 15,
"DefaultCheckInTimeMinutes": 0,
"DefaultCheckOutTime": 11,
"DefaultCheckOutTimeMinutes": 0,
"OwnerID": 34,
"RegionID": 23,
"PropertyStatusID": 163,
"IntegrationCompanyProperties": [
{
"CustomerIntegrationID": 1234,
"PropertyIntegrationID": 2345,
"IntegrationCompanyPropertyID": "332b52aa"
}
],
"CreateDate": "20170616"
}
]
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"url": {
"type": "string"
},
"has_more": {
"type": "boolean"
},
"data": {
"type": "array"
}
}
}Get Property by IDGET/api/v1/properties/{PropertyID}
Example URI
- PropertyID
number(required) Example: 256The unique identifier for the property.
Headers
Authorization: VRS <access_token>200Headers
Content-Type: application/jsonBody
{
"url": "/api/v1/properties",
"has_more": true,
"data": [
{
"PropertyID": 4,
"Active": true,
"PropertyName": "Waterfront Cabin",
"PropertyAbbreviation": "WAT",
"Description": "description",
"InternalNotes": "Internal notes",
"Address": "123 Main St. Sunnyvale, CA 94086",
"Lat": 0,
"Lon": 0,
"DoorCode": "1234",
"DefaultCheckInTime": 15,
"DefaultCheckInTimeMinutes": 0,
"DefaultCheckOutTime": 11,
"DefaultCheckOutTimeMinutes": 0,
"OwnerID": 34,
"RegionID": 23,
"PropertyStatusID": 163,
"IntegrationCompanyProperties": [
{
"CustomerIntegrationID": 1234,
"PropertyIntegrationID": 2345,
"IntegrationCompanyPropertyID": "332b52aa"
}
],
"CreateDate": "20170616"
}
]
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"url": {
"type": "string"
},
"has_more": {
"type": "boolean"
},
"data": {
"type": "array"
}
}
}Create PropertyPOST/api/v1/properties
Example URI
Headers
Content-Type: application/json
Authorization: VRS <access_token>Body
{
"PropertyName": "PropertyName",
"Abbreviation": "PN",
"Address": "Property Address",
"OwnerID": 33,
"RegionID": 21,
"DefaultCheckInTime": 16,
"DefaultCheckInTimeMinutes": 30,
"DefaultCheckOutTime": 16,
"DefaultCheckOutTimeMinutes": 30
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"PropertyName": {
"type": "string"
},
"Abbreviation": {
"type": "string"
},
"Address": {
"type": "string"
},
"OwnerID": {
"type": "number"
},
"RegionID": {
"type": "number"
},
"DefaultCheckInTime": {
"type": "number"
},
"DefaultCheckInTimeMinutes": {
"type": "number"
},
"DefaultCheckOutTime": {
"type": "number"
},
"DefaultCheckOutTimeMinutes": {
"type": "number"
}
}
}201Headers
Content-Type: application/jsonBody
{
"PropertyID": 11,
"PropertyName": "PropertyName",
"Abbreviation": "PN",
"Address": "Property Address",
"OwnerID": 33,
"RegionID": 21,
"DefaultCheckInTime": 16,
"DefaultCheckInTimeMinutes": 30,
"DefaultCheckOutTime": 16,
"DefaultCheckOutTimeMinutes": 30,
"CreateDate": "20210401100453"
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"PropertyID": {
"type": "number"
},
"PropertyName": {
"type": "string"
},
"Abbreviation": {
"type": "string"
},
"Address": {
"type": "string"
},
"OwnerID": {
"type": "number"
},
"RegionID": {
"type": "number"
},
"DefaultCheckInTime": {
"type": "number"
},
"DefaultCheckInTimeMinutes": {
"type": "number"
},
"DefaultCheckOutTime": {
"type": "number"
},
"DefaultCheckOutTimeMinutes": {
"type": "number"
},
"CreateDate": {
"type": "string"
}
}
}Update Property by IDPUT/api/v1/properties/{PropertyID}
Note: Some or all property fields may be updated. Only included fields will be updated.
Example URI
- PropertyID
number(required) Example: 1236The unique identifier for the property.
Headers
Content-Type: application/json
Authorization: VRS <access_token>Body
{
"Active": 1,
"PropertyAbbreviation": "LJ",
"Description": "description",
"InternalNotes": "InternalNotes",
"Address": "Leavenworth",
"Lat": 123.4,
"Lon": 123.4,
"DoorCode": "1234",
"DefaultCheckInTime": 15,
"DefaultCheckInTimeMinutes": 0,
"DefaultCheckOutTime": 11,
"DefaultCheckOutTimeMinutes": 0,
"RegionID": 23
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"Active": {
"type": "number"
},
"PropertyAbbreviation": {
"type": "string"
},
"Description": {
"type": "string"
},
"InternalNotes": {
"type": "string"
},
"Address": {
"type": "string"
},
"Lat": {
"type": "number"
},
"Lon": {
"type": "number"
},
"DoorCode": {
"type": "string"
},
"DefaultCheckInTime": {
"type": "number"
},
"DefaultCheckInTimeMinutes": {
"type": "number"
},
"DefaultCheckOutTime": {
"type": "number"
},
"DefaultCheckOutTimeMinutes": {
"type": "number"
},
"RegionID": {
"type": "number"
}
}
}200Headers
Content-Type: application/jsonBody
{
"code": 200,
"message": "Data updated successfully"
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"code": {
"type": "number"
},
"message": {
"type": "string"
}
}
}Property Statuses ¶
The Property Statuses resource represents possible statuses for properties.
Note: All query parameters are optional unless stated otherwise.
Get Property StatusesGET/api/v1/propertystatuses{?PropertyStatusID,PropertyStatus,Sort,per_page,page}
Example URI
- PropertyStatusID
number(optional) Example: 256The unique identifier for the property status.
- PropertyStatus
string(optional) Example: ServiceFilter by status name.
- Sort
string(optional) Default: PropertyStatusID asc Example: PropertyStatusID ascExample:
PropertyStatusID asc, CreateDate asc. Fields: PropertyStatus, CreateDate, PropertyStatusID. Order: asc|desc.- per_page
number(optional) Default: 20 Example: 20- page
number(optional) Default: 1 Example: 1
Headers
Authorization: VRS <access_token>200Headers
Content-Type: application/jsonBody
{
"url": "/api/v1/propertystatuses",
"has_more": true,
"data": [
{
"PropertyStatusID": 163,
"PropertyStatus": "Service",
"SetOnCheckIn": 0,
"SetOnCheckOut": 0,
"CreateDate": 20170616
}
]
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"url": {
"type": "string"
},
"has_more": {
"type": "boolean"
},
"data": {
"type": "array"
}
}
}Set Property StatusPATCH/api/v1/properties/{PropertyID}/status
Sets the status of a property (by PropertyStatusID).
Example URI
- PropertyID
number(required) Example: 256The unique identifier for the property.
Headers
Content-Type: application/json
Authorization: VRS <access_token>Body
{
"PropertyStatusID": 2
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"PropertyStatusID": {
"type": "number"
}
}
}200Headers
Content-Type: application/jsonBody
{
"code": 200,
"message": "Data updated successfully"
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"code": {
"type": "number"
},
"message": {
"type": "string"
}
}
}Issues ¶
The Issue object represents issues associated with a Property. Issues may include images.
Note: All query parameters are optional unless stated otherwise.
Get IssuesGET/api/v1/issues{?StatusID,IssueType,Billable,CreateStartDate,CreateEndDate,ClosedStartDate,ClosedEndDate,Urgent,PropertyID,Sort,per_page,page,closed}
Example URI
- StatusID
number(optional) Example: 20 = New, 1 = In Progress, 2 = On Hold, 3 = Cataloged.
- IssueType
number(optional) Example: 10 = Damage, 1 = Maintenance, 2 = Lost and Found, 3 = Supply Flag, -1 = None.
- Billable
boolean(optional) Example: 1Whether the issue should be billed to owner.
- CreateStartDate
string(optional) Example: 20190101Start created date (YYYYMMDD).
- CreateEndDate
string(optional) Example: 20190102End created date (YYYYMMDD).
- ClosedStartDate
string(optional) Example: 20190102Start closed date (YYYYMMDD).
- ClosedEndDate
string(optional) Example: 20190102End closed date (YYYYMMDD).
- Urgent
boolean(optional) Example: 1Whether the issue is urgent.
- PropertyID
number(optional) Example: 13Property identifier.
- closed
number(optional) Example: 00 = ClosedDate IS NULL, 1 = ClosedDate IS NOT NULL.
- Sort
string(optional) Default: IssueID asc Example: IssueID ascExample:
IssueID asc, Urgent desc. Fields: IssueID, StatusID, IssueType, Urgent, PropertyID, CreateDate. Order: asc|desc.- per_page
number(optional) Default: 20 Example: 20- page
number(optional) Default: 1 Example: 1
Headers
Authorization: VRS <access_token>200Headers
Content-Type: application/jsonBody
{
"url": "/api/v1/issues",
"has_more": true,
"data": [
{
"IssueID": 135,
"StatusID": 2,
"IssueType": 1,
"Urgent": true,
"Issue": "Screen door off tracks.",
"Notes": "Add Notes",
"StaffNotes": "Staff Notes",
"SubmittedByServicerID": 1920,
"SubmittedByOwnerID": 101,
"Images": [
{
"IssueImageID": 123,
"Image": "https://teams",
"ShowOwner": 1
}
],
"Billable": false,
"PropertyID": 36,
"ClosedDate": 20170809,
"CreateDate": 20170804
}
]
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"url": {
"type": "string"
},
"has_more": {
"type": "boolean"
},
"data": {
"type": "array"
}
}
}Get Issue by IDGET/api/v1/issues/{IssueID}
Example URI
- IssueID
number(required) Example: 1236The unique identifier for the issue.
Headers
Authorization: VRS <access_token>200Headers
Content-Type: application/jsonBody
{
"url": "/api/v1/issues",
"has_more": true,
"data": [
{
"IssueID": 135,
"StatusID": 2,
"IssueType": 1,
"Urgent": true,
"Issue": "Screen door off tracks.",
"Notes": "Add Notes",
"StaffNotes": "Staff Notes",
"SubmittedByServicerID": 1920,
"SubmittedByOwnerID": 101,
"Images": [
{
"IssueImageID": 123,
"Image": "https://teams",
"ShowOwner": 1
}
],
"Billable": false,
"PropertyID": 36,
"ClosedDate": 20170809,
"CreateDate": 20170804
}
]
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"url": {
"type": "string"
},
"has_more": {
"type": "boolean"
},
"data": {
"type": "array"
}
}
}Create Issue (with optional image upload)POST/api/v1/issues
Note: If uploading images, the request must be multipart/form-data:
-
Add a
requestfield containing JSON -
Add image file fields whose names match each item’s
ImageKeyin the request JSON
Example URI
Headers
Content-Type: multipart/form-data
Authorization: VRS <access_token>Body
{
"request": {
"statusID": 2,
"IssueType": 1,
"Issue": "Screen door off tracks.",
"notes": "Issue Notes",
"internalNotes": "Internal Notes",
"showOnOwnerDashboard": true,
"billable": true,
"propertyID": 136,
"closedDateTime": "20220101",
"SubmittedByServicerID": 123,
"SubmittedByOwnerID": 456,
"Images": [
{
"ImageKey": "Image1",
"ShowOwner": 1
}
]
}
}Schema
{
"type": "object",
"properties": {
"request": {
"type": "object",
"properties": {
"statusID": {
"type": "number"
},
"IssueType": {
"type": "number"
},
"Issue": {
"type": "string"
},
"notes": {
"type": "string"
},
"internalNotes": {
"type": "string"
},
"showOnOwnerDashboard": {
"type": "boolean"
},
"billable": {
"type": "boolean"
},
"propertyID": {
"type": "number"
},
"closedDateTime": {
"type": "string"
},
"SubmittedByServicerID": {
"type": "number"
},
"SubmittedByOwnerID": {
"type": "number"
},
"Images": {
"type": "array",
"items": {
"type": "object",
"properties": {
"ImageKey": {
"type": "string"
},
"ShowOwner": {
"type": "number"
}
}
}
}
}
}
},
"$schema": "http://json-schema.org/draft-04/schema#"
}201Headers
Content-Type: application/jsonBody
{
"code": 201,
"message": "Data inserted successfully",
"Data": {
"IssueID": 62071,
"statusID": 2,
"IssueType": 1,
"Issue": "Screen door off tracks.",
"notes": "Issue Notes",
"internalNotes": "Internal Notes",
"showOnOwnerDashboard": true,
"billable": true,
"propertyID": 136,
"closedDateTime": "20220101",
"Images": [
{
"ImageKey": "Image1",
"ShowOwner": 1
}
]
}
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"code": {
"type": "number"
},
"message": {
"type": "string"
},
"Data": {
"type": "object",
"properties": {
"IssueID": {
"type": "number"
},
"statusID": {
"type": "number"
},
"IssueType": {
"type": "number"
},
"Issue": {
"type": "string"
},
"notes": {
"type": "string"
},
"internalNotes": {
"type": "string"
},
"showOnOwnerDashboard": {
"type": "boolean"
},
"billable": {
"type": "boolean"
},
"propertyID": {
"type": "number"
},
"closedDateTime": {
"type": "string"
},
"Images": {
"type": "array"
}
}
}
}
}Update Issue (with optional image upload)PUT/api/v1/issues/{IssueID}
Note: If uploading images, the request must be multipart/form-data (same format as Create Issue).
If no images are uploaded, you may send application/json with the same request body (if supported by the API).
Example URI
- IssueID
number(required) Example: 62071
Headers
Content-Type: multipart/form-data
Authorization: VRS <access_token>Body
{
"request": {
"IssueID": 62071,
"Update": true,
"statusID": 2,
"IssueType": 1,
"Issue": "Screen door off tracks.",
"notes": "Issue Notes",
"internalNotes": "Internal Notes",
"showOnOwnerDashboard": true,
"billable": true,
"propertyID": 136,
"closedDateTime": "20220101",
"Images": [
{
"ImageKey": "Image1",
"ShowOwner": 1
}
]
}
}Schema
{
"type": "object",
"properties": {
"request": {
"type": "object",
"properties": {
"IssueID": {
"type": "number"
},
"Update": {
"type": "boolean"
},
"statusID": {
"type": "number"
},
"IssueType": {
"type": "number"
},
"Issue": {
"type": "string"
},
"notes": {
"type": "string"
},
"internalNotes": {
"type": "string"
},
"showOnOwnerDashboard": {
"type": "boolean"
},
"billable": {
"type": "boolean"
},
"propertyID": {
"type": "number"
},
"closedDateTime": {
"type": "string"
},
"Images": {
"type": "array",
"items": {
"type": "object",
"properties": {
"ImageKey": {
"type": "string"
},
"ShowOwner": {
"type": "number"
}
}
}
}
}
}
},
"$schema": "http://json-schema.org/draft-04/schema#"
}200Headers
Content-Type: application/jsonBody
{
"code": 200,
"message": "Data updated successfully",
"Data": {
"IssueID": 62071,
"Update": true,
"statusID": 2,
"IssueType": 1,
"Issue": "Screen door off tracks.",
"notes": "Issue Notes",
"internalNotes": "Internal Notes",
"showOnOwnerDashboard": true,
"billable": true,
"propertyID": 136,
"closedDateTime": "20220101",
"Images": [
{
"ImageKey": "Image1",
"ShowOwner": 1
}
]
}
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"code": {
"type": "number"
},
"message": {
"type": "string"
},
"Data": {
"type": "object",
"properties": {
"IssueID": {
"type": "number"
},
"Update": {
"type": "boolean"
},
"statusID": {
"type": "number"
},
"IssueType": {
"type": "number"
},
"Issue": {
"type": "string"
},
"notes": {
"type": "string"
},
"internalNotes": {
"type": "string"
},
"showOnOwnerDashboard": {
"type": "boolean"
},
"billable": {
"type": "boolean"
},
"propertyID": {
"type": "number"
},
"closedDateTime": {
"type": "string"
},
"Images": {
"type": "array"
}
}
}
}
}TaskRules ¶
The TaskRule object represents task templates/rules.
Note: All query parameters are optional unless stated otherwise.
Get TaskRulesGET/api/v1/taskrules{?Active,Sort,per_page,page}
Example URI
- Active
boolean(optional) Default: true Example: trueWhether the task rule is active.
- Sort
string(optional) Default: TaskRuleID asc Example: TaskRuleID ascExample:
CreateDate desc, TaskRule asc. Fields: TaskRuleID, TaskRule, Abbreviation, CreateDate. Order: asc|desc.- per_page
number(optional) Default: 20 Example: 20- page
number(optional) Default: 1 Example: 1
Headers
Authorization: VRS <access_token>200Headers
Content-Type: application/jsonBody
{
"url": "/api/v1/taskrules",
"has_more": true,
"data": [
{
"TaskRuleID": 132,
"Active": true,
"TaskRule": "Bay View Bungalow",
"Abbreviation": "BVB",
"CreateDate": 20190302
}
]
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"url": {
"type": "string"
},
"has_more": {
"type": "boolean"
},
"data": {
"type": "array"
}
}
}Get TaskRule by IDGET/api/v1/taskrules/{TaskRuleID}
Example URI
- TaskRuleID
number(required) Example: 132Unique identifier for the task rule.
Headers
Authorization: VRS <access_token>200Headers
Content-Type: application/jsonBody
{
"url": "/api/v1/taskrules",
"has_more": true,
"data": [
{
"TaskRuleID": 132,
"Active": true,
"TaskRule": "Bay View Bungalow",
"Abbreviation": "BVB",
"CreateDate": 20190302
}
]
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"url": {
"type": "string"
},
"has_more": {
"type": "boolean"
},
"data": {
"type": "array"
}
}
}Property Task Rules ¶
This resource maps TaskRules to Properties (billing amounts, staff defaults, etc.).
Note: All query parameters are optional unless stated otherwise.
Create Property Task RulePOST/api/v1/propertyTaskRules
Example URI
Headers
Content-Type: application/json
Authorization: VRS <access_token>Body
{
"PropertyID": 123,
"TaskRuleID": 12345,
"LaborAmount": 100,
"MaterialsAmount": 100,
"MinTimeToComplete": 20,
"MaxTimeToComplete": 30,
"LeadStaffID": 142,
"LeadStaffPiecePay": 100,
"AdditionalStaff": [
{
"StaffID": 136,
"StaffPiecePay": 20
}
]
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"PropertyID": {
"type": "number"
},
"TaskRuleID": {
"type": "number"
},
"LaborAmount": {
"type": "number"
},
"MaterialsAmount": {
"type": "number"
},
"MinTimeToComplete": {
"type": "number"
},
"MaxTimeToComplete": {
"type": "number"
},
"LeadStaffID": {
"type": "number"
},
"LeadStaffPiecePay": {
"type": "number"
},
"AdditionalStaff": {
"type": "array"
}
}
}201Headers
Content-Type: application/jsonBody
{
"code": 201,
"message": "Data inserted successfully",
"PropertyToTaskRuleID": 431710
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"code": {
"type": "number"
},
"message": {
"type": "string"
},
"PropertyToTaskRuleID": {
"type": "number"
}
}
}Get Property TaskRulesGET/api/v1/propertyTaskRules{?PropertyToTaskRuleID,PropertyID,TaskRuleID,LaborAmount,MaterialsAmount,MinTimeToComplete,MaxTimeToComplete,LeadStaffID,LeadStaffPiecePay,LeadStaffName,StaffID,StaffPiecePay,StaffName,PropertyActive,TaskRuleActive,page,sort,per_page}
Example URI
- PropertyToTaskRuleID
number(optional) Example: 123- PropertyID
number(optional) Example: 132- TaskRuleID
number(optional) Example: 132- LaborAmount
number(optional) Example: 50- MaterialsAmount
number(optional) Example: 45- MinTimeToComplete
number(optional) Example: 20- MaxTimeToComplete
number(optional) Example: 30- LeadStaffID
number(optional) Example: 142- LeadStaffPiecePay
number(optional) Example: 100- LeadStaffName
string(optional) Example: John- StaffID
number(optional) Example: 132- StaffPiecePay
number(optional) Example: 100- StaffName
string(optional) Example: James- PropertyActive
boolean(optional) Example: true- TaskRuleActive
boolean(optional) Example: true- sort
string(optional) Default: TaskRuleID asc Example: TaskRuleID ascExample:
PropertyToTaskRuleID asc, PropertyID asc. Fields: PropertyToTaskRuleID, PropertyID, TaskRuleID, LaborAmount, LeadStaffName. Order: asc|desc.- per_page
number(optional) Default: 20 Example: 20- page
number(optional) Default: 1 Example: 1
Headers
Authorization: VRS <access_token>200Headers
Content-Type: application/jsonBody
{
"url": "/api/v1/propertyTaskRules",
"has_more": true,
"data": [
{
"PropertyToTaskRuleID": 123,
"PropertyID": 132,
"TaskRuleID": 132,
"LaborAmount": 50,
"MaterialsAmount": 45,
"MinTimeToComplete": 20,
"MaxTimeToComplete": 30,
"LeadStaffID": 142,
"LeadStaffPiecePay": 100,
"LeadStaffName": "John",
"StaffID": 132,
"StaffPiecePay": 100,
"StaffName": "James",
"PropertyActive": true,
"TaskRuleActive": true,
"AdditionalStaffResponse": [
{
"StaffID": 1921,
"StaffPiecePay": 152,
"StaffName": "Zoe Smith"
}
]
}
],
"page_count": 0,
"page_size": 25,
"page": 1,
"total_items": 0
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"url": {
"type": "string"
},
"has_more": {
"type": "boolean"
},
"data": {
"type": "array"
},
"page_count": {
"type": "number"
},
"page_size": {
"type": "number"
},
"page": {
"type": "number"
},
"total_items": {
"type": "number"
}
}
}Delete Property TaskRule by IDDELETE/api/v1/propertyTaskRules/{PropertyTaskRuleID}
Example URI
- PropertyTaskRuleID
number(required) Example: 1236The unique identifier for the propertyTaskRuleID.
Headers
Authorization: VRS <access_token>204Owners ¶
The Owner object represents owners of managed properties.
Note: All query parameters are optional unless stated otherwise.
Get OwnersGET/api/v1/owners{?Active,Sort,per_page,page}
Example URI
- Active
boolean(optional) Default: true Example: true- Sort
string(optional) Default: OwnerID asc Example: OwnerID ascExample:
OwnerID asc, CreateDate desc. Fields: OwnerID, OwnerName, CountryID, CreateDate. Order: asc|desc.- per_page
number(optional) Default: 20 Example: 20- page
number(optional) Default: 1 Example: 1
Headers
Authorization: VRS <access_token>200Headers
Content-Type: application/jsonBody
{
"url": "/api/v1/owners",
"has_more": true,
"data": [
{
"OwnerID": 132,
"Active": true,
"OwnerName": "Bay View Bungalow",
"OwnerEmail": "owner@teams.operto.com",
"OwnerPhone": "+1 541",
"CountryID": 224,
"CreateDate": 20190302
}
]
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"url": {
"type": "string"
},
"has_more": {
"type": "boolean"
},
"data": {
"type": "array"
}
}
}Create OwnerPOST/api/v1/owners
Example URI
Headers
Content-Type: application/json
Authorization: VRS <access_token>Body
{
"OwnerName": "OwnerName",
"OwnerEmail": "owner@email.com"
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"OwnerName": {
"type": "string"
},
"OwnerEmail": {
"type": "string"
}
}
}201Headers
Content-Type: application/jsonBody
{
"OwnerID": 15519,
"OwnerName": "OwnerName",
"OwnerEmail": "owner@email.com",
"CreateDate": "20210401100453"
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"OwnerID": {
"type": "number"
},
"OwnerName": {
"type": "string"
},
"OwnerEmail": {
"type": "string"
},
"CreateDate": {
"type": "string"
}
}
}Regions ¶
The Region object represents regions used for properties.
Note: All query parameters are optional unless stated otherwise.
Get RegionsGET/api/v1/regions{?Sort,per_page,page}
Example URI
- Sort
string(optional) Default: RegionID asc Example: RegionID ascExample:
RegionID asc, CreateDate desc. Fields: RegionID, RegionGroupID, Region, Color, TimeZoneID, CreateDate. Order: asc|desc.- per_page
number(optional) Default: 20 Example: 20- page
number(optional) Default: 1 Example: 1
Headers
Authorization: VRS <access_token>200Headers
Content-Type: application/jsonBody
{
"url": "/api/v1/regions",
"has_more": true,
"data": [
{
"RegionID": 132,
"Region": "NorthSide",
"Color": "#ffcccc",
"TimeZoneID": 3492,
"CreateDate": 20190302
}
]
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"url": {
"type": "string"
},
"has_more": {
"type": "boolean"
},
"data": {
"type": "array"
}
}
}Region Groups ¶
The RegionGroup object represents region groupings.
Note: All query parameters are optional unless stated otherwise.
Get Region GroupsGET/api/v1/regiongroups{?Sort,per_page,page}
Example URI
- Sort
string(optional) Default: RegionGroupID asc Example: RegionGroupID ascExample:
RegionGroupID asc, CreateDate desc. Fields: RegionGroupID, RegionGroup, CreateDate. Order: asc|desc.- per_page
number(optional) Default: 20 Example: 20- page
number(optional) Default: 1 Example: 1
Headers
Authorization: VRS <access_token>200Headers
Content-Type: application/jsonBody
{
"url": "/api/v1/regiongroups",
"has_more": true,
"data": [
{
"RegionGroupID": 67,
"RegionGroup": "USA",
"CreateDate": "20190905"
}
]
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"url": {
"type": "string"
},
"has_more": {
"type": "boolean"
},
"data": {
"type": "array"
}
}
}StaffTaskTimes ¶
StaffTaskTime represents time tracking entries for staff tasks.
Note: All query parameters are optional unless stated otherwise.
Get StaffTaskTimesGET/api/v1/stafftasktimes{?StaffID,TaskID,PropertyID,StartDate,EndDate,Sort,per_page,page}
Example URI
- StaffID
number(optional) Example: 12- TaskID
number(optional) Example: 144- PropertyID
number(optional) Example: 91860- StartDate
string(optional) Example: 20190101(YYYYMMDD)
- EndDate
string(optional) Example: 20190202(YYYYMMDD)
- Sort
string(optional) Default: StaffTaskTimeID asc Example: StaffTaskTimeID ascExample:
StaffTaskTimeID asc, StaffID asc. Fields: StaffTaskTimeID, StaffID, TaskID, ClockIn, ClockOut. Order: asc|desc.- per_page
number(optional) Default: 20 Example: 20- page
number(optional) Default: 1 Example: 1
Headers
Authorization: VRS <access_token>200Headers
Content-Type: application/jsonBody
{
"url": "/api/v1/stafftasktimes",
"has_more": true,
"data": [
{
"StaffTaskTimeID": 24,
"StaffID": 134,
"TaskID": 81530,
"ClockIn": "20170625030227",
"ClockOut": "20170625030231",
"InLat": 123.4,
"InLon": 123.4,
"OutLat": 111.23,
"OutLon": 11234.45,
"Note": "Test",
"AutoLogOutFlag": false
}
]
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"url": {
"type": "string"
},
"has_more": {
"type": "boolean"
},
"data": {
"type": "array"
}
}
}StaffDayTimes ¶
StaffDayTime represents clock-in/out entries per staff per day.
Note: All query parameters are optional unless stated otherwise.
Get StaffDayTimesGET/api/v1/staffdaytimes{?StaffID,StartDate,EndDate,Sort,per_page,page}
Example URI
- StaffID
number(optional) Example: 12- StartDate
string(optional) Example: 20190101(YYYYMMDD)
- EndDate
string(optional) Example: 20190202(YYYYMMDD)
- Sort
string(optional) Default: StaffDayTimeID asc Example: StaffDayTimeID ascExample:
StaffID asc, StaffDayTimeID asc. Fields: StaffDayTimeID, StaffID, ClockIn, ClockOut. Order: asc|desc.- per_page
number(optional) Default: 20 Example: 20- page
number(optional) Default: 1 Example: 1
Headers
Authorization: VRS <access_token>200Headers
Content-Type: application/jsonBody
{
"url": "/api/v1/staffdaytimes",
"has_more": true,
"data": [
{
"StaffDayTimeID": 24,
"StaffID": 134,
"ClockIn": "20170625030227",
"ClockOut": "20170625030231",
"InLat": "123.4",
"InLon": "123.4",
"OutLat": "111.23",
"OutLon": "11234.45",
"MileageIn": 45345345,
"MileageOut": 45345345,
"AutoLogOutFlag": false
}
]
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"url": {
"type": "string"
},
"has_more": {
"type": "boolean"
},
"data": {
"type": "array"
}
}
}PropertyBookings ¶
PropertyBooking represents property bookings/reservations.
Note: All query parameters are optional unless stated otherwise.
Get PropertyBookingsGET/api/v1/propertybookings{?PropertyID,ReferenceID,Active,CheckInStartDate,CheckInEndDate,CheckOutStartDate,CheckOutEndDate,Sort,per_page,page}
Example URI
- PropertyID
number(optional) Example: 13- ReferenceID
string(optional) Example: ABC123External/PMS booking reference for this booking (ImportBookingID).
- Active
boolean(optional) Example: 1- CheckInStartDate
string(optional) Example: 20190101(YYYYMMDD)
- CheckInEndDate
string(optional) Example: 20190102(YYYYMMDD)
- CheckOutStartDate
string(optional) Example: 20190102(YYYYMMDD)
- CheckOutEndDate
string(optional) Example: 20190102(YYYYMMDD)
- Sort
string(optional) Default: PropertyBookingID asc Example: PropertyBookingID ascExample:
CheckIn asc, CreateDate desc. Fields: PropertyBookingID, CheckIn, CheckOut, CreateDate. Order: asc|desc.- per_page
number(optional) Default: 20 Example: 20- page
number(optional) Default: 1 Example: 1
Headers
Authorization: VRS <access_token>200Headers
Content-Type: application/jsonBody
{
"url": "/api/v1/propertybookings",
"has_more": true,
"data": [
{
"PropertyBookingID": 4452,
"PropertyID": 167,
"CheckIn": "20170730",
"CheckInTime": 15,
"CheckInTimeMinutes": 0,
"CheckOut": "20170805",
"CheckOutTime": 11,
"CheckOutTimeMinutes": 0,
"Guest": "guest",
"GuestPhone": "12345",
"GuestEmail": "guest@email.com",
"NumberOfGuest": 0,
"NumberOfPets": 0,
"NumberOfChildren": 0,
"IsOwner": 1,
"BookingTags": "BeachChairs, MidClean",
"ManualBookingTags": "PoolHeat, AllBedsAsKing",
"ImportBookingID": 123,
"PMSNote": "PMSNote",
"PMSHousekeepingNote": "PMSHousekeepingNote",
"BookingNote": "BookingNote",
"InternalNote": "InternalNote",
"CreateDate": 20170509,
"Active": 1,
"LinenCounts": "1,3,4,5",
"ReferenceID": "ABC123"
}
]
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"url": {
"type": "string"
},
"has_more": {
"type": "boolean"
},
"data": {
"type": "array"
}
}
}Get PropertyBooking by IDGET/api/v1/propertybookings/{PropertyBookingID}
Example URI
- PropertyBookingID
number(required) Example: 1236
Headers
Authorization: VRS <access_token>200Headers
Content-Type: application/jsonBody
{
"url": "/api/v1/propertybookings",
"has_more": true,
"data": [
{
"PropertyBookingID": 4452,
"PropertyID": 167,
"CheckIn": "20170730",
"CheckInTime": 15,
"CheckInTimeMinutes": 0,
"CheckOut": "20170805",
"CheckOutTime": 11,
"CheckOutTimeMinutes": 0,
"Guest": "guest",
"GuestPhone": "12345",
"GuestEmail": "guest@email.com",
"NumberOfGuest": 0,
"NumberOfPets": 0,
"NumberOfChildren": 0,
"IsOwner": 1,
"BookingTags": "BeachChairs, MidClean",
"ManualBookingTags": "PoolHeat, AllBedsAsKing",
"ImportBookingID": 123,
"PMSNote": "PMSNote",
"PMSHousekeepingNote": "PMSHousekeepingNote",
"BookingNote": "BookingNote",
"InternalNote": "InternalNote",
"CreateDate": 20170509,
"Active": 1,
"LinenCounts": "1,3,4,5",
"ReferenceID": "ABC123"
}
]
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"url": {
"type": "string"
},
"has_more": {
"type": "boolean"
},
"data": {
"type": "array"
}
}
}Create PropertyBookingPOST/api/v1/propertybookings
Example URI
Headers
Content-Type: application/json
Authorization: VRS <access_token>Body
{
"PropertyID": 167,
"CheckIn": "20170730",
"CheckInTime": 15,
"CheckInTimeMinutes": 0,
"CheckOut": "20170805",
"CheckOutTime": 11,
"CheckOutTimeMinutes": 0,
"Guest": "guest",
"GuestPhone": "12345",
"GuestEmail": "guest@email.com",
"NumberOfGuest": 0,
"NumberOfPets": 0,
"NumberOfChildren": 0,
"IsOwner": 1,
"BookingTags": "BeachChairs, MidClean",
"Active": 1,
"ImportBookingID": "imp",
"BookingNote": "bn",
"InternalNote": "IN",
"PMSNote": "pms",
"PMSHousekeepingNote": "pmsh",
"LinenCounts": "1,3,4,5",
"ReferenceID": "ABC123"
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"PropertyID": {
"type": "number"
},
"CheckIn": {
"type": "string"
},
"CheckInTime": {
"type": "number"
},
"CheckInTimeMinutes": {
"type": "number"
},
"CheckOut": {
"type": "string"
},
"CheckOutTime": {
"type": "number"
},
"CheckOutTimeMinutes": {
"type": "number"
},
"Guest": {
"type": "string"
},
"GuestPhone": {
"type": "string"
},
"GuestEmail": {
"type": "string"
},
"NumberOfGuest": {
"type": "number"
},
"NumberOfPets": {
"type": "number"
},
"NumberOfChildren": {
"type": "number"
},
"IsOwner": {
"type": "number"
},
"BookingTags": {
"type": "string"
},
"Active": {
"type": "number"
},
"ImportBookingID": {
"type": "string"
},
"BookingNote": {
"type": "string"
},
"InternalNote": {
"type": "string"
},
"PMSNote": {
"type": "string"
},
"PMSHousekeepingNote": {
"type": "string"
},
"LinenCounts": {
"type": "string"
},
"ReferenceID": {
"type": "string"
}
},
"required": [
"PropertyID",
"CheckIn",
"CheckInTime",
"CheckInTimeMinutes",
"CheckOut",
"CheckOutTime",
"CheckOutTimeMinutes",
"Guest"
]
}201Headers
Content-Type: application/jsonBody
{
"propertybookings": [
{
"PropertyBookingID": 4452,
"PropertyID": 167,
"CheckIn": "20170730",
"CheckInTime": 15,
"CheckInTimeMinutes": 0,
"CheckOut": "20170805",
"CheckOutTime": 11,
"CheckOutTimeMinutes": 0,
"Guest": "guest",
"GuestPhone": "12345",
"GuestEmail": "guest@email.com",
"NumberOfGuest": 0,
"NumberOfPets": 0,
"NumberOfChildren": 0,
"IsOwner": 1,
"BookingTags": "BeachChairs, MidClean",
"ManualBookingTags": "PoolHeat, AllBedsAsKing",
"ImportBookingID": 123,
"PMSNote": "PMSNote",
"PMSHousekeepingNote": "PMSHousekeepingNote",
"BookingNote": "BookingNote",
"InternalNote": "InternalNote",
"CreateDate": 20170509,
"Active": 1,
"LinenCounts": "1,3,4,5",
"ReferenceID": "ABC123"
}
]
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"propertybookings": {
"type": "array"
}
}
}Update PropertyBookingPUT/api/v1/propertybookings/{PropertyBookingID}
Example URI
- PropertyBookingID
number(required) Example: 1236
Headers
Content-Type: application/json
Authorization: VRS <access_token>Body
{
"PropertyID": 167,
"CheckIn": "20170730",
"CheckInTime": 15,
"CheckInTimeMinutes": 0,
"CheckOut": "20170805",
"CheckOutTime": 11,
"CheckOutTimeMinutes": 0,
"Guest": "guest",
"GuestPhone": "12345",
"GuestEmail": "guest@email.com",
"NumberOfGuest": 0,
"NumberOfPets": 0,
"NumberOfChildren": 0,
"IsOwner": 1,
"BookingTags": "BeachChairs, MidClean",
"Active": 1,
"ImportBookingID": "imp",
"BookingNote": "bn",
"InternalNote": "IN",
"PMSNote": "pms",
"PMSHousekeepingNote": "pmsh",
"LinenCounts": "1,3,4,5",
"ReferenceID": "ABC123"
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"PropertyID": {
"type": "number"
},
"CheckIn": {
"type": "string"
},
"CheckInTime": {
"type": "number"
},
"CheckInTimeMinutes": {
"type": "number"
},
"CheckOut": {
"type": "string"
},
"CheckOutTime": {
"type": "number"
},
"CheckOutTimeMinutes": {
"type": "number"
},
"Guest": {
"type": "string"
},
"GuestPhone": {
"type": "string"
},
"GuestEmail": {
"type": "string"
},
"NumberOfGuest": {
"type": "number"
},
"NumberOfPets": {
"type": "number"
},
"NumberOfChildren": {
"type": "number"
},
"IsOwner": {
"type": "number"
},
"BookingTags": {
"type": "string"
},
"Active": {
"type": "number"
},
"ImportBookingID": {
"type": "string"
},
"BookingNote": {
"type": "string"
},
"InternalNote": {
"type": "string"
},
"PMSNote": {
"type": "string"
},
"PMSHousekeepingNote": {
"type": "string"
},
"LinenCounts": {
"type": "string"
},
"ReferenceID": {
"type": "string"
}
},
"required": [
"PropertyID",
"CheckIn",
"CheckInTime",
"CheckInTimeMinutes",
"CheckOut",
"CheckOutTime",
"CheckOutTimeMinutes",
"Guest"
]
}200Headers
Content-Type: application/jsonBody
{
"propertybookings": [
{
"PropertyBookingID": 4452,
"PropertyID": 167,
"CheckIn": "20170730",
"CheckInTime": 15,
"CheckInTimeMinutes": 0,
"CheckOut": "20170805",
"CheckOutTime": 11,
"CheckOutTimeMinutes": 0,
"Guest": "guest",
"GuestPhone": "12345",
"GuestEmail": "guest@email.com",
"NumberOfGuest": 0,
"NumberOfPets": 0,
"NumberOfChildren": 0,
"IsOwner": 1,
"BookingTags": "BeachChairs, MidClean",
"ManualBookingTags": "PoolHeat, AllBedsAsKing",
"ImportBookingID": 123,
"PMSNote": "PMSNote",
"PMSHousekeepingNote": "PMSHousekeepingNote",
"BookingNote": "BookingNote",
"InternalNote": "InternalNote",
"CreateDate": 20170509,
"Active": 1,
"LinenCounts": "1,3,4,5",
"ReferenceID": "ABC123"
}
]
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"propertybookings": {
"type": "array"
}
}
}Delete PropertyBooking by IDDELETE/api/v1/propertybookings/{PropertyBookingID}
Example URI
- PropertyBookingID
number(required) Example: 1236
Headers
Authorization: VRS <access_token>204Staff ¶
Staff represents staff members.
Note: All query parameters are optional unless stated otherwise.
Get StaffGET/api/v1/staff{?Sort,per_page,page}
Example URI
- Sort
string(optional) Default: StaffID asc Example: StaffID ascExample:
Name asc, CreateDate desc. Fields: StaffID, Name, CreateDate. Order: asc|desc.- per_page
number(optional) Default: 20 Example: 20- page
number(optional) Default: 1 Example: 1
Headers
Authorization: VRS <access_token>200Headers
Content-Type: application/jsonBody
{
"url": "/api/v1/staff",
"has_more": true,
"data": [
{
"StaffID": 132,
"Name": "Carol Worker",
"Abbreviation": "carol",
"Email": "carol@teams.operto.com",
"Phone": "+1 541",
"CountryID": 225,
"Active": true,
"CreateDate": 20190302
}
]
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"url": {
"type": "string"
},
"has_more": {
"type": "boolean"
},
"data": {
"type": "array"
}
}
}Get Staff by IDGET/api/v1/staff/{StaffID}
Example URI
- StaffID
number(required) Example: 132
Headers
Authorization: VRS <access_token>200Headers
Content-Type: application/jsonBody
{
"url": "/api/v1/staff",
"has_more": true,
"data": [
{
"StaffID": 132,
"Name": "Carol Worker",
"Abbreviation": "carol",
"Email": "carol@teams.operto.com",
"Phone": "+1 541",
"CountryID": 225,
"Active": true,
"CreateDate": 20190302
}
]
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"url": {
"type": "string"
},
"has_more": {
"type": "boolean"
},
"data": {
"type": "array"
}
}
}StaffTasks ¶
StaffTask represents staff assignments to tasks (payroll/tracking).
Note: All query parameters are optional unless stated otherwise.
Get StaffTasksGET/api/v1/stafftasks{?StaffID,TaskRuleID,TaskID,PayType,Approved,PropertyID,ApprovedStartDate,ApprovedEndDate,Completed,CompletedStartDate,CompletedEndDate,TaskStartDate,TaskEndDate,Sort,per_page,page}
Example URI
- StaffID
number(optional) Example: 123- TaskRuleID
number(optional) Example: 12345- TaskID
number(optional) Example: 123- PayType
number(optional) Example: 1-
0 - None
-
1 - Piece Pay (Flat Rate) Dollar Amount
-
2 - Piece Pay (Flat Rate) Time in hours
-
3 - Pay by Tracked Hour Amount
-
- Approved
number(optional) Example: 1-
0 - No Status
-
1 - Approved
-
2 - Paid
-
3 - Flagged
-
- PropertyID
number(optional) Example: 123- ApprovedStartDate
string(required) Example: 202601-01 (string, optional) - (YYYY-MM-DD)
- ApprovedEndDate
string(required) Example: 202601-02 (string, optional) - (YYYY-MM-DD)
- Completed
number(optional) Example: 11 = Completed, 0 = Not completed.
- CompletedStartDate
string(required) Example: 202601-01 (string, optional) - (YYYY-MM-DD)
- CompletedEndDate
string(required) Example: 202601-02 (string, optional) - (YYYY-MM-DD)
- TaskStartDate
string(required) Example: 202601-01 (string, optional) - (YYYY-MM-DD)
- TaskEndDate
string(required) Example: 202601-02 (string, optional) - (YYYY-MM-DD)
- Sort
string(optional) Default: StaffTaskID asc Example: StaffTaskID ascExample:
StaffName asc, CompleteConfirmedDate asc. Fields: StaffID, StaffTaskID, StaffName, TaskID, CompleteConfirmedDate. Order: asc|desc.- per_page
number(optional) Default: 20 Example: 20- page
number(optional) Default: 1 Example: 1
Headers
Authorization: VRS <access_token>200Headers
Content-Type: application/jsonBody
{
"url": "/api/v1/stafftasks",
"has_more": true,
"page": 1,
"page_count": 5,
"page_size": 20,
"total_items": 100,
"data": [
{
"StaffTaskID": 72157,
"TaskID": 81530,
"TaskName": "Ann Mason Check Out Clean",
"TaskDate": "2026",
"TaskRuleID": 57,
"StaffID": 134,
"StaffName": "Ann Mason",
"PayType": 3,
"PayRate": 0,
"PiecePay": 1.23,
"TimeTracked": "01:22:10",
"Completed": true,
"CompleteConfirmedDate": "2017",
"Pay": 25.5,
"Approved": 1,
"ApprovedDate": "2019",
"PropertyID": 165,
"Instructions": "Check under the sink.",
"AlreadyAssigned": 0
}
]
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"url": {
"type": "string"
},
"has_more": {
"type": "boolean"
},
"page": {
"type": "number"
},
"page_count": {
"type": "number"
},
"page_size": {
"type": "number"
},
"total_items": {
"type": "number"
},
"data": {
"type": "array"
}
}
}Get StaffTask by IDGET/api/v1/stafftasks/{StaffTaskID}
Example URI
- StaffTaskID
number(required) Example: 1236
Headers
Authorization: VRS <access_token>200Headers
Content-Type: application/jsonBody
{
"url": "/api/v1/stafftasks",
"has_more": true,
"page": 1,
"page_count": 5,
"page_size": 20,
"total_items": 100,
"data": [
{
"StaffTaskID": 72157,
"TaskID": 81530,
"TaskName": "Ann Mason Check Out Clean",
"TaskDate": "2026",
"TaskRuleID": 57,
"StaffID": 134,
"StaffName": "Ann Mason",
"PayType": 3,
"PayRate": 0,
"PiecePay": 1.23,
"TimeTracked": "01:22:10",
"Completed": true,
"CompleteConfirmedDate": "2017",
"Pay": 25.5,
"Approved": 1,
"ApprovedDate": "2019",
"PropertyID": 165,
"Instructions": "Check under the sink.",
"AlreadyAssigned": 0
}
]
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"url": {
"type": "string"
},
"has_more": {
"type": "boolean"
},
"page": {
"type": "number"
},
"page_count": {
"type": "number"
},
"page_size": {
"type": "number"
},
"total_items": {
"type": "number"
},
"data": {
"type": "array"
}
}
}Create StaffTaskPOST/api/v1/stafftasks
Note: If the StaffID is already assigned to the TaskID, the API returns 200 and returns the existing assignment with AlreadyAssigned = 1.
Example URI
Headers
Content-Type: application/json
Authorization: VRS <access_token>Body
{
"TaskID": 81530,
"StaffID": 134
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"TaskID": {
"type": "number"
},
"StaffID": {
"type": "number"
}
},
"required": [
"TaskID",
"StaffID"
]
}200Headers
Content-Type: application/jsonBody
{
"code": 200,
"message": "success",
"Data": {
"StaffTaskID": 72157,
"TaskID": 81530,
"TaskName": "Ann Mason Check Out Clean",
"TaskDate": "2026",
"TaskRuleID": 57,
"StaffID": 134,
"StaffName": "Ann Mason",
"PayType": 3,
"PayRate": 0,
"PiecePay": 1.23,
"TimeTracked": "01:22:10",
"Completed": true,
"CompleteConfirmedDate": "2017",
"Pay": 25.5,
"Approved": 1,
"ApprovedDate": "2019",
"PropertyID": 165,
"Instructions": "Check under the sink.",
"AlreadyAssigned": 0
}
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"code": {
"type": "number"
},
"message": {
"type": "string"
},
"Data": {
"type": "object",
"properties": {
"StaffTaskID": {
"type": "number"
},
"TaskID": {
"type": "number"
},
"TaskName": {
"type": "string"
},
"TaskDate": {
"type": "string",
"description": "01-14 (string) - (YYYY-MM-DD)"
},
"TaskRuleID": {
"type": "number"
},
"StaffID": {
"type": "number"
},
"StaffName": {
"type": "string"
},
"PayType": {
"type": "number",
"description": "0=None,1=Piece Pay Flat,2=Piece Pay Time,3=Tracked Hours"
},
"PayRate": {
"type": "number"
},
"PiecePay": {
"type": "number"
},
"TimeTracked": {
"type": "string",
"description": "(HH:MM:SS)"
},
"Completed": {
"type": "boolean"
},
"CompleteConfirmedDate": {
"type": "string",
"description": "06-24 14:30:05 (string) - (YYYY-MM-DD HH:MM:SS)"
},
"Pay": {
"type": "number"
},
"Approved": {
"type": "number",
"description": "0=No Status,1=Approved,2=Paid,3=Flagged"
},
"ApprovedDate": {
"type": "string",
"description": "01-01 (string) - (YYYY-MM-DD)"
},
"PropertyID": {
"type": "number"
},
"Instructions": {
"type": [
"string",
"null"
]
},
"AlreadyAssigned": {
"type": "number",
"description": "0 = newly created, 1 = existing assignment returned."
}
}
}
}
}Update StaffTask by IDPUT/api/v1/stafftasks/{StaffTaskID}
Note: If updating StaffID to one already assigned to the same TaskID, API returns 200 and updates the existing assignment, with AlreadyAssigned = 1.
Example URI
- StaffTaskID
number(required) Example: 72157
Headers
Content-Type: application/json
Authorization: VRS <access_token>Body
{
"StaffID": 135,
"PiecePay": 1.5,
"PayRate": 15,
"PayType": 3,
"Instructions": "Please check under the sink."
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"StaffID": {
"type": "number"
},
"PiecePay": {
"type": "number"
},
"PayRate": {
"type": "number"
},
"PayType": {
"type": "number"
},
"Instructions": {
"type": "string"
}
}
}200Headers
Content-Type: application/jsonBody
{
"code": 200,
"message": "success",
"Data": {
"StaffTaskID": 72157,
"TaskID": 81530,
"TaskName": "Ann Mason Check Out Clean",
"TaskDate": "2026",
"TaskRuleID": 57,
"StaffID": 134,
"StaffName": "Ann Mason",
"PayType": 3,
"PayRate": 0,
"PiecePay": 1.23,
"TimeTracked": "01:22:10",
"Completed": true,
"CompleteConfirmedDate": "2017",
"Pay": 25.5,
"Approved": 1,
"ApprovedDate": "2019",
"PropertyID": 165,
"Instructions": "Check under the sink.",
"AlreadyAssigned": 0
}
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"code": {
"type": "number"
},
"message": {
"type": "string"
},
"Data": {
"type": "object",
"properties": {
"StaffTaskID": {
"type": "number"
},
"TaskID": {
"type": "number"
},
"TaskName": {
"type": "string"
},
"TaskDate": {
"type": "string",
"description": "01-14 (string) - (YYYY-MM-DD)"
},
"TaskRuleID": {
"type": "number"
},
"StaffID": {
"type": "number"
},
"StaffName": {
"type": "string"
},
"PayType": {
"type": "number",
"description": "0=None,1=Piece Pay Flat,2=Piece Pay Time,3=Tracked Hours"
},
"PayRate": {
"type": "number"
},
"PiecePay": {
"type": "number"
},
"TimeTracked": {
"type": "string",
"description": "(HH:MM:SS)"
},
"Completed": {
"type": "boolean"
},
"CompleteConfirmedDate": {
"type": "string",
"description": "06-24 14:30:05 (string) - (YYYY-MM-DD HH:MM:SS)"
},
"Pay": {
"type": "number"
},
"Approved": {
"type": "number",
"description": "0=No Status,1=Approved,2=Paid,3=Flagged"
},
"ApprovedDate": {
"type": "string",
"description": "01-01 (string) - (YYYY-MM-DD)"
},
"PropertyID": {
"type": "number"
},
"Instructions": {
"type": [
"string",
"null"
]
},
"AlreadyAssigned": {
"type": "number"
}
}
}
}
}Tasks ¶
Task represents tasks associated with properties/bookings/issues.
Note: All query parameters are optional unless stated otherwise.
Get TasksGET/api/v1/tasks{?TaskRuleID,PropertyBookingID,PropertyID,Approved,ApprovedStartDate,ApprovedEndDate,Completed,CompletedStartDate,CompletedEndDate,TaskStartDate,TaskEndDate,Sort,per_page,page}
Example URI
- TaskRuleID
number(optional) Example: 1- PropertyBookingID
number(optional) Example: 1204- PropertyID
number(optional) Example: 1- Approved
number(optional) Example: 1- ApprovedStartDate
string(optional) Example: 20190101(YYYYMMDD)
- ApprovedEndDate
string(optional) Example: 20190101(YYYYMMDD)
- Completed
number(optional) Example: 1- CompletedStartDate
string(optional) Example: 20190101(YYYYMMDD)
- CompletedEndDate
string(optional) Example: 20190201(YYYYMMDD)
- TaskStartDate
string(optional) Example: 20190101(YYYYMMDD)
- TaskEndDate
string(optional) Example: 20190101(YYYYMMDD)
- Sort
string(optional) Default: TaskID asc Example: TaskID ascExample:
TaskID asc, TaskName asc. Fields: TaskID, TaskDate, TaskName, TaskStartDate, MinTimeToComplete. Order: asc|desc.- per_page
number(optional) Default: 20 Example: 20- page
number(optional) Default: 1 Example: 1
Headers
Authorization: VRS <access_token>200Headers
Content-Type: application/jsonBody
{
"url": "/api/v1/tasks",
"has_more": true,
"data": [
{
"TaskID": 132,
"IssueID": 16,
"PropertyBookingID": 2,
"ReferenceID": "123",
"TaskRuleID": 58,
"PropertyID": 4,
"TaskName": "Deep Clean",
"TaskDescription": "Bring the whole kit.",
"Approved": true,
"ApprovedDate": "2019",
"Completed": true,
"Billable": true,
"LaborAmount": 50,
"MaterialsAmount": 45,
"TaskDate": "2019",
"CompleteConfirmedDate": "2019",
"CreateDate": "2019",
"MinTimeToComplete": 0.25,
"MaxTimeToComplete": 0.25,
"TaskStartDate": "2019",
"TaskStartTime": "10:00",
"TaskCompleteByDate": "2019",
"TaskCompleteByTime": "11:00",
"TaskTime": "10:00:00",
"InternalNotes": "Premium Property",
"PackLinen": true,
"RetrieveLinen": true,
"TaskActive": true,
"Flag1": false,
"Flag2": false,
"LinenCounts": "1,3,4,5",
"ParentTaskID": 132,
"Property": {
"PropertyID": 4,
"Active": true,
"PropertyName": "Waterfront Cabin",
"PropertyAbbreviation": "WAT",
"Description": "description",
"InternalNotes": "Internal notes",
"Address": "123 Main St. Sunnyvale, CA 94086",
"Lat": 0,
"Lon": 0,
"DoorCode": "1234",
"DefaultCheckInTime": 15,
"DefaultCheckInTimeMinutes": 0,
"DefaultCheckOutTime": 11,
"DefaultCheckOutTimeMinutes": 0,
"OwnerID": 34,
"RegionID": 23,
"PropertyStatusID": 163,
"IntegrationCompanyProperties": [
{
"CustomerIntegrationID": 1234,
"PropertyIntegrationID": 2345,
"IntegrationCompanyPropertyID": "332b52aa"
}
],
"CreateDate": "20170616"
},
"Staff": [
{
"StaffID": 132,
"Name": "Carol Worker",
"Abbreviation": "carol",
"Email": "carol@teams.operto.com",
"Phone": "+1 541",
"CountryID": 225,
"Active": true,
"CreateDate": "2019"
}
],
"TaskImages": [
{
"TaskImageID": 123,
"Image": "https://teams"
}
]
}
]
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"url": {
"type": "string"
},
"has_more": {
"type": "boolean"
},
"data": {
"type": "array"
}
}
}Get Task by IDGET/api/v1/tasks/{TaskID}
Example URI
- TaskID
number(required) Example: 132
Headers
Authorization: VRS <access_token>200Headers
Content-Type: application/jsonBody
{
"url": "/api/v1/tasks",
"has_more": true,
"data": [
{
"TaskID": 132,
"IssueID": 16,
"PropertyBookingID": 2,
"ReferenceID": "123",
"TaskRuleID": 58,
"PropertyID": 4,
"TaskName": "Deep Clean",
"TaskDescription": "Bring the whole kit.",
"Approved": true,
"ApprovedDate": "2019",
"Completed": true,
"Billable": true,
"LaborAmount": 50,
"MaterialsAmount": 45,
"TaskDate": "2019",
"CompleteConfirmedDate": "2019",
"CreateDate": "2019",
"MinTimeToComplete": 0.25,
"MaxTimeToComplete": 0.25,
"TaskStartDate": "2019",
"TaskStartTime": "10:00",
"TaskCompleteByDate": "2019",
"TaskCompleteByTime": "11:00",
"TaskTime": "10:00:00",
"InternalNotes": "Premium Property",
"PackLinen": true,
"RetrieveLinen": true,
"TaskActive": true,
"Flag1": false,
"Flag2": false,
"LinenCounts": "1,3,4,5",
"ParentTaskID": 132,
"Property": {
"PropertyID": 4,
"Active": true,
"PropertyName": "Waterfront Cabin",
"PropertyAbbreviation": "WAT",
"Description": "description",
"InternalNotes": "Internal notes",
"Address": "123 Main St. Sunnyvale, CA 94086",
"Lat": 0,
"Lon": 0,
"DoorCode": "1234",
"DefaultCheckInTime": 15,
"DefaultCheckInTimeMinutes": 0,
"DefaultCheckOutTime": 11,
"DefaultCheckOutTimeMinutes": 0,
"OwnerID": 34,
"RegionID": 23,
"PropertyStatusID": 163,
"IntegrationCompanyProperties": [
{
"CustomerIntegrationID": 1234,
"PropertyIntegrationID": 2345,
"IntegrationCompanyPropertyID": "332b52aa"
}
],
"CreateDate": "20170616"
},
"Staff": [
{
"StaffID": 132,
"Name": "Carol Worker",
"Abbreviation": "carol",
"Email": "carol@teams.operto.com",
"Phone": "+1 541",
"CountryID": 225,
"Active": true,
"CreateDate": "2019"
}
],
"TaskImages": [
{
"TaskImageID": 123,
"Image": "https://teams"
}
]
}
]
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"url": {
"type": "string"
},
"has_more": {
"type": "boolean"
},
"data": {
"type": "array"
}
}
}Create TaskPOST/api/v1/tasks
Example URI
Headers
Content-Type: application/json
Authorization: VRS <access_token>Body
{
"PropertyID": 1,
"TaskRuleID": 1,
"TaskName": "TaskName",
"TaskDescription": "Some Description",
"TaskStartDate": "2019",
"TaskStartTime": "10:00",
"TaskCompleteByDate": "2019",
"TaskCompleteByTime": "10:00",
"TaskDate": "2019",
"TaskTime": "10:00:00",
"PropertyBookingID": 12345
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"PropertyID": {
"type": "number"
},
"TaskRuleID": {
"type": "number"
},
"TaskName": {
"type": "string"
},
"TaskDescription": {
"type": "string"
},
"TaskStartDate": {
"type": "string",
"description": "01-01 (string)"
},
"TaskStartTime": {
"type": "string"
},
"TaskCompleteByDate": {
"type": "string",
"description": "01-01 (string)"
},
"TaskCompleteByTime": {
"type": "string"
},
"TaskDate": {
"type": "string",
"description": "01-01 (string)"
},
"TaskTime": {
"type": "string"
},
"PropertyBookingID": {
"type": "number"
}
}
}201Headers
Content-Type: application/jsonBody
{
"TaskID": 2166295,
"TaskName": "TaskName",
"TaskDescription": "Some Description",
"CreateDate": "20210301",
"TaskStartDate": "20210301",
"TaskStartTime": "10:00",
"TaskCompleteByDate": "20210301",
"TaskCompleteByTime": "10:00",
"TaskDate": "20210301",
"TaskTime": "10:00:00",
"PropertyID": 171,
"PropertyBookingID": 12345
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"TaskID": {
"type": "number"
},
"TaskName": {
"type": "string"
},
"TaskDescription": {
"type": "string",
"description": "2 (string)"
},
"CreateDate": {
"type": "string"
},
"TaskStartDate": {
"type": "string"
},
"TaskStartTime": {
"type": "string"
},
"TaskCompleteByDate": {
"type": "string"
},
"TaskCompleteByTime": {
"type": "string"
},
"TaskDate": {
"type": "string"
},
"TaskTime": {
"type": "string"
},
"PropertyID": {
"type": "number"
},
"PropertyBookingID": {
"type": [
"number",
"null"
]
}
}
}Create Task With ImagePOST/api/v1/tasksWithImage
Note: Request is multipart/form-data:
-
requestcontains JSON -
Image1,Image2, etc contain image files -
Each uploaded image field name must match an
ImageKeyin the request JSON.
Example URI
Headers
Content-Type: multipart/form-data
Authorization: VRS <access_token>Body
{
"request": {
"PropertyID": 1,
"TaskRuleID": 1,
"TaskName": "TaskName",
"TaskDescription": "Some Description",
"TaskStartDate": "2019",
"TaskStartTime": "10:00",
"TaskCompleteByDate": "2019",
"TaskCompleteByTime": "10:00",
"TaskDate": "2019",
"TaskTime": "10:00:00",
"PropertyBookingID": 12345,
"Images": [
{
"ImageKey": "Image1"
}
]
},
"Image1": "image file"
}Schema
{
"type": "object",
"properties": {
"request": {
"type": "object",
"properties": {
"PropertyID": {
"type": "number"
},
"TaskRuleID": {
"type": "number"
},
"TaskName": {
"type": "string"
},
"TaskDescription": {
"type": "string"
},
"TaskStartDate": {
"type": "string",
"description": "01-01 (string, optional)"
},
"TaskStartTime": {
"type": "string"
},
"TaskCompleteByDate": {
"type": "string",
"description": "01-01 (string, optional)"
},
"TaskCompleteByTime": {
"type": "string"
},
"TaskDate": {
"type": "string",
"description": "01-01 (string, optional)"
},
"TaskTime": {
"type": "string"
},
"PropertyBookingID": {
"type": "number"
},
"Images": {
"type": "array",
"items": {
"type": "object",
"properties": {
"ImageKey": {
"type": "string"
}
}
}
}
}
},
"Image1": {
"type": "string"
}
},
"$schema": "http://json-schema.org/draft-04/schema#"
}201Headers
Content-Type: application/jsonBody
{
"TaskID": 2166295,
"TaskName": "TaskName",
"TaskDescription": "Some Description",
"CreateDate": "20210301",
"TaskStartDate": "20210301",
"TaskStartTime": "10:00",
"TaskCompleteByDate": "20210301",
"TaskCompleteByTime": "10:00",
"TaskDate": "20210301",
"TaskTime": "10:00:00",
"PropertyID": 171,
"PropertyBookingID": 12345
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"TaskID": {
"type": "number"
},
"TaskName": {
"type": "string"
},
"TaskDescription": {
"type": "string",
"description": "2 (string)"
},
"CreateDate": {
"type": "string"
},
"TaskStartDate": {
"type": "string"
},
"TaskStartTime": {
"type": "string"
},
"TaskCompleteByDate": {
"type": "string"
},
"TaskCompleteByTime": {
"type": "string"
},
"TaskDate": {
"type": "string"
},
"TaskTime": {
"type": "string"
},
"PropertyID": {
"type": "number"
},
"PropertyBookingID": {
"type": [
"number",
"null"
]
}
}
}Update TaskPUT/api/v1/tasks/{TaskID}
Note: Not all fields are required. Only included fields will be updated.
Example URI
- TaskID
number(required) Example: 132
Headers
Content-Type: application/json
Authorization: VRS <access_token>Body
{
"TaskName": "TaskName",
"TaskDescription": "Some Description",
"TaskDate": "2019",
"TaskTime": "15:00:00",
"TaskTimeMinutes": 30,
"TaskStartDate": "2019",
"TaskStartTime": "10:00",
"TaskCompleteByDate": "2019",
"TaskCompleteByTime": "10:00",
"Completed": 1,
"CompleteConfirmedDate": "2019"
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"TaskName": {
"type": "string"
},
"TaskDescription": {
"type": "string"
},
"TaskDate": {
"type": "string",
"description": "01-01 (string, optional)"
},
"TaskTime": {
"type": "string"
},
"TaskTimeMinutes": {
"type": "number"
},
"TaskStartDate": {
"type": "string",
"description": "01-01 (string, optional)"
},
"TaskStartTime": {
"type": "string"
},
"TaskCompleteByDate": {
"type": "string",
"description": "01-01 (string, optional)"
},
"TaskCompleteByTime": {
"type": "string"
},
"Completed": {
"type": "number"
},
"CompleteConfirmedDate": {
"type": "string",
"description": "02-22T23:00:00 (string, optional)"
}
}
}200Headers
Content-Type: application/jsonBody
{
"TaskID": 2166295,
"TaskName": "TaskName",
"TaskDescription": "Some Description",
"CreateDate": "20210301",
"TaskStartDate": "20210301",
"Completed": 1,
"CompleteConfirmedDate": "2025",
"TaskStartTime": "10:00",
"TaskCompleteByDate": "20210301",
"TaskCompleteByTime": "10:00",
"TaskDate": "20210301",
"TaskTime": "10:00:00",
"PropertyID": 171,
"PropertyBookingID": 12345
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"TaskID": {
"type": "number"
},
"TaskName": {
"type": "string"
},
"TaskDescription": {
"type": "string"
},
"CreateDate": {
"type": "string"
},
"TaskStartDate": {
"type": "string"
},
"Completed": {
"type": "number"
},
"CompleteConfirmedDate": {
"type": "string",
"description": "02-22T23:00:00 (string)"
},
"TaskStartTime": {
"type": "string"
},
"TaskCompleteByDate": {
"type": "string"
},
"TaskCompleteByTime": {
"type": "string"
},
"TaskDate": {
"type": "string"
},
"TaskTime": {
"type": "string"
},
"PropertyID": {
"type": "number"
},
"PropertyBookingID": {
"type": [
"number",
"null"
]
}
}
}Get Task Form ElementsGET/api/v1/taskformelements{?TaskID,PropertyID,CompletedStartDate,CompletedEndDate,ChecklistItemID,Sort,per_page,page}
Note: Filters are important to make use of this endpoint.
Example URI
- TaskID
number(optional) Example: 132- PropertyID
number(optional) Example: 456- CompletedStartDate
string(optional) Example: 20230101(YYYYMMDD)
- CompletedEndDate
string(optional) Example: 20230131(YYYYMMDD)
- ChecklistItemID
number(optional) Example: 789- Sort
string(optional) Example: CompleteConfirmedDate asc- per_page
number(optional) Default: 20 Example: 20- page
number(optional) Default: 1 Example: 1
Headers
Authorization: VRS <access_token>200Headers
Content-Type: application/jsonBody
{
"url": "/api/v1/taskformelements",
"has_more": true,
"data": [
{
"TaskID": 6667027,
"CompleteConfirmedDate": "20210614",
"ChecklistItem": "Stock Necessary Kitchen Items",
"InternalName": "Kitchen Stocking Checklist",
"Options": "Paper towels x 1\\r\\nDish Soap x 1\\r\\nDishwasher tabs x 4\\r\\nDish Sponge x 1\\r\\nBlack Garbage Bags x 3\\r\\nCompost bags x 3\\r\\nCoffee Filters min 24\\r\\nSalt and Pepper x 1\\r\\nLight bulbs",
"Checked": 0,
"Image": "kitchen_galley.jpeg",
"EnteredValue": "Dishwasher tabs x 4",
"EnteredValueAmount": 0,
"ImageUploaded": "Dish.jpeg",
"OptionSelected": "0",
"ColumnValue": 3
}
]
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"url": {
"type": "string"
},
"has_more": {
"type": "boolean"
},
"data": {
"type": "array"
}
}
}Scheduling Calendar Notes ¶
SchedulingCalendarNote represents notes placed on the scheduling calendar.
Note: All query parameters are optional unless stated otherwise.
Get SchedulingCalendarNotesGET/api/v1/schedulingcalendarnotes{?StaffID,ShowOnEmployeeDashboard,StartStartDate,StartEndDate,Sort,per_page,page}
Example URI
- StaffID
number(optional) Example: 123- ShowOnEmployeeDashboard
boolean(optional) Example: true- StartStartDate
string(optional) Example: 20190101(YYYYMMDD)
- StartEndDate
string(optional) Example: 20190131(YYYYMMDD)
- Sort
string(optional) Default: SchedulingCalendarNoteID asc Example: SchedulingCalendarNoteID asc- per_page
number(optional) Default: 20 Example: 20- page
number(optional) Default: 1 Example: 1
Headers
Authorization: VRS <access_token>200Headers
Content-Type: application/jsonBody
{
"url": "/api/v1/schedulingcalendarnotes",
"has_more": true,
"data": [
{
"SchedulingCalendarNoteID": 132,
"StaffID": 132,
"CustomerID": 100,
"HoverNote": "Hover note",
"ShortNote": "A short note",
"LongDescription": "This is a long description",
"StartDate": "20210614",
"ShowOnEmployeeDashboard": true
}
],
"page_count": 3,
"page_size": 25,
"page": 1,
"totalItems": 57
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"url": {
"type": "string"
},
"has_more": {
"type": "boolean"
},
"data": {
"type": "array"
},
"page_count": {
"type": "number"
},
"page_size": {
"type": "number"
},
"page": {
"type": "number"
},
"totalItems": {
"type": "number"
}
}
}Get SchedulingCalendarNote by IDGET/api/v1/schedulingcalendarnotes/{ID}
Example URI
- ID
number(required) Example: 2320
Headers
Authorization: VRS <access_token>200Headers
Content-Type: application/jsonBody
{
"SchedulingCalendarNoteID": 132,
"StaffID": 132,
"CustomerID": 100,
"HoverNote": "Hover note",
"ShortNote": "A short note",
"LongDescription": "This is a long description",
"StartDate": "20210614",
"ShowOnEmployeeDashboard": true
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"SchedulingCalendarNoteID": {
"type": "number"
},
"StaffID": {
"type": "number"
},
"CustomerID": {
"type": "number"
},
"HoverNote": {
"type": "string"
},
"ShortNote": {
"type": "string"
},
"LongDescription": {
"type": "string"
},
"StartDate": {
"type": "string"
},
"ShowOnEmployeeDashboard": {
"type": "boolean"
}
}
}Create SchedulingCalendarNotePOST/api/v1/schedulingcalendarnotes
Example URI
Headers
Content-Type: application/json
Authorization: VRS <access_token>Body
{
"StaffID": 132,
"HoverNote": "A hover note",
"ShortNote": "A short note",
"LongDescription": "This is a long description",
"StartDate": "20210614",
"ShowOnEmployeeDashboard": true
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"StaffID": {
"type": "number"
},
"HoverNote": {
"type": "string"
},
"ShortNote": {
"type": "string"
},
"LongDescription": {
"type": "string"
},
"StartDate": {
"type": "string"
},
"ShowOnEmployeeDashboard": {
"type": "boolean"
}
}
}201Headers
Content-Type: application/jsonBody
{
"CustomerID": 100,
"StaffID": 132,
"HoverNote": "A hover note",
"ShortNote": "A short note",
"LongDescription": "This is a long description",
"StartDate": "20210614",
"ShowOnEmployeeDashboard": true
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"CustomerID": {
"type": "number"
},
"StaffID": {
"type": "number"
},
"HoverNote": {
"type": "string"
},
"ShortNote": {
"type": "string"
},
"LongDescription": {
"type": "string"
},
"StartDate": {
"type": "string"
},
"ShowOnEmployeeDashboard": {
"type": "boolean"
}
}
}Update SchedulingCalendarNotePUT/api/v1/schedulingcalendarnotes/{ID}
Example URI
- ID
number(required) Example: 2320
Headers
Content-Type: application/json
Authorization: VRS <access_token>Body
{
"StaffID": 132,
"HoverNote": "A hover note",
"ShortNote": "A short note",
"LongDescription": "This is a long description",
"StartDate": "20210614",
"ShowOnEmployeeDashboard": true
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"StaffID": {
"type": "number"
},
"HoverNote": {
"type": "string"
},
"ShortNote": {
"type": "string"
},
"LongDescription": {
"type": "string"
},
"StartDate": {
"type": "string"
},
"ShowOnEmployeeDashboard": {
"type": "boolean"
}
}
}200Headers
Content-Type: application/jsonBody
{
"CustomerID": 100,
"StaffID": 132,
"HoverNote": "A hover note",
"ShortNote": "A short note",
"LongDescription": "This is a long description",
"StartDate": "20210614",
"ShowOnEmployeeDashboard": true
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"CustomerID": {
"type": "number"
},
"StaffID": {
"type": "number"
},
"HoverNote": {
"type": "string"
},
"ShortNote": {
"type": "string"
},
"LongDescription": {
"type": "string"
},
"StartDate": {
"type": "string"
},
"ShowOnEmployeeDashboard": {
"type": "boolean"
}
}
}