Back to top

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 token
POST/api/v1/oauth/login

Example URI

POST https://teams-api.operto.com/api/v1/oauth/login
Request
HideShow
Headers
Content-Type: application/json
Body
{
  "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)"
    }
  }
}
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "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 token
GET/api/v1/oauth/refresh

Send the refresh token in the Authorization header to receive a new access token.

Example URI

GET https://teams-api.operto.com/api/v1/oauth/refresh
Request
HideShow
Headers
Authorization: VRS <refresh_token>
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "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 Properties
GET/api/v1/properties{?OwnerID,Active,RegionID,Sort,per_page,page}

Example URI

GET https://teams-api.operto.com/api/v1/properties?OwnerID=256&Active=1&RegionID=1&Sort=PropertyID asc&per_page=20&page=1
URI Parameters
HideShow
OwnerID
number (optional) Example: 256

The unique identifier for the owner.

RegionID
number (optional) Example: 1

The unique identifier for the region.

Active
boolean (optional) Example: 1

1 = Active, 0 = Inactive. If omitted, only active properties are returned by default.

Sort
string (optional) Default: PropertyID asc Example: PropertyID asc

Example: CreateDate desc, PropertyID asc. Available fields: PropertyID, PropertyName, CreateDate. Order: asc|desc.

per_page
number (optional) Default: 20 Example: 20

Results per page.

page
number (optional) Default: 1 Example: 1

Page number.

Request
HideShow
Headers
Authorization: VRS <access_token>
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "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 ID
GET/api/v1/properties/{PropertyID}

Example URI

GET https://teams-api.operto.com/api/v1/properties/256
URI Parameters
HideShow
PropertyID
number (required) Example: 256

The unique identifier for the property.

Request
HideShow
Headers
Authorization: VRS <access_token>
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "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 Property
POST/api/v1/properties

Example URI

POST https://teams-api.operto.com/api/v1/properties
Request
HideShow
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"
    }
  }
}
Response  201
HideShow
Headers
Content-Type: application/json
Body
{
  "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 ID
PUT/api/v1/properties/{PropertyID}

Note: Some or all property fields may be updated. Only included fields will be updated.

Example URI

PUT https://teams-api.operto.com/api/v1/properties/1236
URI Parameters
HideShow
PropertyID
number (required) Example: 1236

The unique identifier for the property.

Request
HideShow
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"
    }
  }
}
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "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 Statuses
GET/api/v1/propertystatuses{?PropertyStatusID,PropertyStatus,Sort,per_page,page}

Example URI

GET https://teams-api.operto.com/api/v1/propertystatuses?PropertyStatusID=256&PropertyStatus=Service&Sort=PropertyStatusID asc&per_page=20&page=1
URI Parameters
HideShow
PropertyStatusID
number (optional) Example: 256

The unique identifier for the property status.

PropertyStatus
string (optional) Example: Service

Filter by status name.

Sort
string (optional) Default: PropertyStatusID asc Example: PropertyStatusID asc

Example: 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
Request
HideShow
Headers
Authorization: VRS <access_token>
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "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 Status
PATCH/api/v1/properties/{PropertyID}/status

Sets the status of a property (by PropertyStatusID).

Example URI

PATCH https://teams-api.operto.com/api/v1/properties/256/status
URI Parameters
HideShow
PropertyID
number (required) Example: 256

The unique identifier for the property.

Request
HideShow
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"
    }
  }
}
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "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 Issues
GET/api/v1/issues{?StatusID,IssueType,Billable,CreateStartDate,CreateEndDate,ClosedStartDate,ClosedEndDate,Urgent,PropertyID,Sort,per_page,page,closed}

Example URI

GET https://teams-api.operto.com/api/v1/issues?StatusID=2&IssueType=1&Billable=1&CreateStartDate=20190101&CreateEndDate=20190102&ClosedStartDate=20190102&ClosedEndDate=20190102&Urgent=1&PropertyID=13&Sort=IssueID asc&per_page=20&page=1&closed=0
URI Parameters
HideShow
StatusID
number (optional) Example: 2

0 = New, 1 = In Progress, 2 = On Hold, 3 = Cataloged.

IssueType
number (optional) Example: 1

0 = Damage, 1 = Maintenance, 2 = Lost and Found, 3 = Supply Flag, -1 = None.

Billable
boolean (optional) Example: 1

Whether the issue should be billed to owner.

CreateStartDate
string (optional) Example: 20190101

Start created date (YYYYMMDD).

CreateEndDate
string (optional) Example: 20190102

End created date (YYYYMMDD).

ClosedStartDate
string (optional) Example: 20190102

Start closed date (YYYYMMDD).

ClosedEndDate
string (optional) Example: 20190102

End closed date (YYYYMMDD).

Urgent
boolean (optional) Example: 1

Whether the issue is urgent.

PropertyID
number (optional) Example: 13

Property identifier.

closed
number (optional) Example: 0

0 = ClosedDate IS NULL, 1 = ClosedDate IS NOT NULL.

Sort
string (optional) Default: IssueID asc Example: IssueID asc

Example: 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
Request
HideShow
Headers
Authorization: VRS <access_token>
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "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 ID
GET/api/v1/issues/{IssueID}

Example URI

GET https://teams-api.operto.com/api/v1/issues/1236
URI Parameters
HideShow
IssueID
number (required) Example: 1236

The unique identifier for the issue.

Request
HideShow
Headers
Authorization: VRS <access_token>
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "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 request field containing JSON

  • Add image file fields whose names match each item’s ImageKey in the request JSON

Example URI

POST https://teams-api.operto.com/api/v1/issues
Request
HideShow
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#"
}
Response  201
HideShow
Headers
Content-Type: application/json
Body
{
  "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

PUT https://teams-api.operto.com/api/v1/issues/62071
URI Parameters
HideShow
IssueID
number (required) Example: 62071
Request
HideShow
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#"
}
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "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 TaskRules
GET/api/v1/taskrules{?Active,Sort,per_page,page}

Example URI

GET https://teams-api.operto.com/api/v1/taskrules?Active=true&Sort=TaskRuleID asc&per_page=20&page=1
URI Parameters
HideShow
Active
boolean (optional) Default: true Example: true

Whether the task rule is active.

Sort
string (optional) Default: TaskRuleID asc Example: TaskRuleID asc

Example: 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
Request
HideShow
Headers
Authorization: VRS <access_token>
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "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 ID
GET/api/v1/taskrules/{TaskRuleID}

Example URI

GET https://teams-api.operto.com/api/v1/taskrules/132
URI Parameters
HideShow
TaskRuleID
number (required) Example: 132

Unique identifier for the task rule.

Request
HideShow
Headers
Authorization: VRS <access_token>
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "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 Rule
POST/api/v1/propertyTaskRules

Example URI

POST https://teams-api.operto.com/api/v1/propertyTaskRules
Request
HideShow
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"
    }
  }
}
Response  201
HideShow
Headers
Content-Type: application/json
Body
{
  "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 TaskRules
GET/api/v1/propertyTaskRules{?PropertyToTaskRuleID,PropertyID,TaskRuleID,LaborAmount,MaterialsAmount,MinTimeToComplete,MaxTimeToComplete,LeadStaffID,LeadStaffPiecePay,LeadStaffName,StaffID,StaffPiecePay,StaffName,PropertyActive,TaskRuleActive,page,sort,per_page}

Example URI

GET https://teams-api.operto.com/api/v1/propertyTaskRules?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&page=1&sort=TaskRuleID asc&per_page=20
URI Parameters
HideShow
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 asc

Example: 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
Request
HideShow
Headers
Authorization: VRS <access_token>
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "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 ID
DELETE/api/v1/propertyTaskRules/{PropertyTaskRuleID}

Example URI

DELETE https://teams-api.operto.com/api/v1/propertyTaskRules/1236
URI Parameters
HideShow
PropertyTaskRuleID
number (required) Example: 1236

The unique identifier for the propertyTaskRuleID.

Request
HideShow
Headers
Authorization: VRS <access_token>
Response  204

Owners

The Owner object represents owners of managed properties.

Note: All query parameters are optional unless stated otherwise.

Get Owners
GET/api/v1/owners{?Active,Sort,per_page,page}

Example URI

GET https://teams-api.operto.com/api/v1/owners?Active=true&Sort=OwnerID asc&per_page=20&page=1
URI Parameters
HideShow
Active
boolean (optional) Default: true Example: true
Sort
string (optional) Default: OwnerID asc Example: OwnerID asc

Example: 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
Request
HideShow
Headers
Authorization: VRS <access_token>
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "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 Owner
POST/api/v1/owners

Example URI

POST https://teams-api.operto.com/api/v1/owners
Request
HideShow
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"
    }
  }
}
Response  201
HideShow
Headers
Content-Type: application/json
Body
{
  "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 Regions
GET/api/v1/regions{?Sort,per_page,page}

Example URI

GET https://teams-api.operto.com/api/v1/regions?Sort=RegionID asc&per_page=20&page=1
URI Parameters
HideShow
Sort
string (optional) Default: RegionID asc Example: RegionID asc

Example: 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
Request
HideShow
Headers
Authorization: VRS <access_token>
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "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 Groups
GET/api/v1/regiongroups{?Sort,per_page,page}

Example URI

GET https://teams-api.operto.com/api/v1/regiongroups?Sort=RegionGroupID asc&per_page=20&page=1
URI Parameters
HideShow
Sort
string (optional) Default: RegionGroupID asc Example: RegionGroupID asc

Example: 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
Request
HideShow
Headers
Authorization: VRS <access_token>
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "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 StaffTaskTimes
GET/api/v1/stafftasktimes{?StaffID,TaskID,PropertyID,StartDate,EndDate,Sort,per_page,page}

Example URI

GET https://teams-api.operto.com/api/v1/stafftasktimes?StaffID=12&TaskID=144&PropertyID=91860&StartDate=20190101&EndDate=20190202&Sort=StaffTaskTimeID asc&per_page=20&page=1
URI Parameters
HideShow
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 asc

Example: 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
Request
HideShow
Headers
Authorization: VRS <access_token>
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "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 StaffDayTimes
GET/api/v1/staffdaytimes{?StaffID,StartDate,EndDate,Sort,per_page,page}

Example URI

GET https://teams-api.operto.com/api/v1/staffdaytimes?StaffID=12&StartDate=20190101&EndDate=20190202&Sort=StaffDayTimeID asc&per_page=20&page=1
URI Parameters
HideShow
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 asc

Example: 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
Request
HideShow
Headers
Authorization: VRS <access_token>
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "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 PropertyBookings
GET/api/v1/propertybookings{?PropertyID,ReferenceID,Active,CheckInStartDate,CheckInEndDate,CheckOutStartDate,CheckOutEndDate,Sort,per_page,page}

Example URI

GET https://teams-api.operto.com/api/v1/propertybookings?PropertyID=13&ReferenceID=ABC123&Active=1&CheckInStartDate=20190101&CheckInEndDate=20190102&CheckOutStartDate=20190102&CheckOutEndDate=20190102&Sort=PropertyBookingID asc&per_page=20&page=1
URI Parameters
HideShow
PropertyID
number (optional) Example: 13
ReferenceID
string (optional) Example: ABC123

External/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 asc

Example: 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
Request
HideShow
Headers
Authorization: VRS <access_token>
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "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 ID
GET/api/v1/propertybookings/{PropertyBookingID}

Example URI

GET https://teams-api.operto.com/api/v1/propertybookings/1236
URI Parameters
HideShow
PropertyBookingID
number (required) Example: 1236
Request
HideShow
Headers
Authorization: VRS <access_token>
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "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 PropertyBooking
POST/api/v1/propertybookings

Example URI

POST https://teams-api.operto.com/api/v1/propertybookings
Request
HideShow
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"
  ]
}
Response  201
HideShow
Headers
Content-Type: application/json
Body
{
  "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 PropertyBooking
PUT/api/v1/propertybookings/{PropertyBookingID}

Example URI

PUT https://teams-api.operto.com/api/v1/propertybookings/1236
URI Parameters
HideShow
PropertyBookingID
number (required) Example: 1236
Request
HideShow
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"
  ]
}
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "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 ID
DELETE/api/v1/propertybookings/{PropertyBookingID}

Example URI

DELETE https://teams-api.operto.com/api/v1/propertybookings/1236
URI Parameters
HideShow
PropertyBookingID
number (required) Example: 1236
Request
HideShow
Headers
Authorization: VRS <access_token>
Response  204

Staff

Staff represents staff members.

Note: All query parameters are optional unless stated otherwise.

Get Staff
GET/api/v1/staff{?Sort,per_page,page}

Example URI

GET https://teams-api.operto.com/api/v1/staff?Sort=StaffID asc&per_page=20&page=1
URI Parameters
HideShow
Sort
string (optional) Default: StaffID asc Example: StaffID asc

Example: 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
Request
HideShow
Headers
Authorization: VRS <access_token>
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "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 ID
GET/api/v1/staff/{StaffID}

Example URI

GET https://teams-api.operto.com/api/v1/staff/132
URI Parameters
HideShow
StaffID
number (required) Example: 132
Request
HideShow
Headers
Authorization: VRS <access_token>
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "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 StaffTasks
GET/api/v1/stafftasks{?StaffID,TaskRuleID,TaskID,PayType,Approved,PropertyID,ApprovedStartDate,ApprovedEndDate,Completed,CompletedStartDate,CompletedEndDate,TaskStartDate,TaskEndDate,Sort,per_page,page}

Example URI

GET https://teams-api.operto.com/api/v1/stafftasks?StaffID=123&TaskRuleID=12345&TaskID=123&PayType=1&Approved=1&PropertyID=123&ApprovedStartDate=2026&ApprovedEndDate=2026&Completed=1&CompletedStartDate=2026&CompletedEndDate=2026&TaskStartDate=2026&TaskEndDate=2026&Sort=StaffTaskID asc&per_page=20&page=1
URI Parameters
HideShow
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: 2026

01-01 (string, optional) - (YYYY-MM-DD)

ApprovedEndDate
string (required) Example: 2026

01-02 (string, optional) - (YYYY-MM-DD)

Completed
number (optional) Example: 1

1 = Completed, 0 = Not completed.

CompletedStartDate
string (required) Example: 2026

01-01 (string, optional) - (YYYY-MM-DD)

CompletedEndDate
string (required) Example: 2026

01-02 (string, optional) - (YYYY-MM-DD)

TaskStartDate
string (required) Example: 2026

01-01 (string, optional) - (YYYY-MM-DD)

TaskEndDate
string (required) Example: 2026

01-02 (string, optional) - (YYYY-MM-DD)

Sort
string (optional) Default: StaffTaskID asc Example: StaffTaskID asc

Example: 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
Request
HideShow
Headers
Authorization: VRS <access_token>
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "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 ID
GET/api/v1/stafftasks/{StaffTaskID}

Example URI

GET https://teams-api.operto.com/api/v1/stafftasks/1236
URI Parameters
HideShow
StaffTaskID
number (required) Example: 1236
Request
HideShow
Headers
Authorization: VRS <access_token>
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "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 StaffTask
POST/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

POST https://teams-api.operto.com/api/v1/stafftasks
Request
HideShow
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"
  ]
}
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "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 ID
PUT/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

PUT https://teams-api.operto.com/api/v1/stafftasks/72157
URI Parameters
HideShow
StaffTaskID
number (required) Example: 72157
Request
HideShow
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"
    }
  }
}
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "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 Tasks
GET/api/v1/tasks{?TaskRuleID,PropertyBookingID,PropertyID,Approved,ApprovedStartDate,ApprovedEndDate,Completed,CompletedStartDate,CompletedEndDate,TaskStartDate,TaskEndDate,Sort,per_page,page}

Example URI

GET https://teams-api.operto.com/api/v1/tasks?TaskRuleID=1&PropertyBookingID=1204&PropertyID=1&Approved=1&ApprovedStartDate=20190101&ApprovedEndDate=20190101&Completed=1&CompletedStartDate=20190101&CompletedEndDate=20190201&TaskStartDate=20190101&TaskEndDate=20190101&Sort=TaskID asc&per_page=20&page=1
URI Parameters
HideShow
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 asc

Example: 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
Request
HideShow
Headers
Authorization: VRS <access_token>
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "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 ID
GET/api/v1/tasks/{TaskID}

Example URI

GET https://teams-api.operto.com/api/v1/tasks/132
URI Parameters
HideShow
TaskID
number (required) Example: 132
Request
HideShow
Headers
Authorization: VRS <access_token>
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "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 Task
POST/api/v1/tasks

Example URI

POST https://teams-api.operto.com/api/v1/tasks
Request
HideShow
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"
    }
  }
}
Response  201
HideShow
Headers
Content-Type: application/json
Body
{
  "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 Image
POST/api/v1/tasksWithImage

Note: Request is multipart/form-data:

  • request contains JSON

  • Image1, Image2, etc contain image files

  • Each uploaded image field name must match an ImageKey in the request JSON.

Example URI

POST https://teams-api.operto.com/api/v1/tasksWithImage
Request
HideShow
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#"
}
Response  201
HideShow
Headers
Content-Type: application/json
Body
{
  "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 Task
PUT/api/v1/tasks/{TaskID}

Note: Not all fields are required. Only included fields will be updated.

Example URI

PUT https://teams-api.operto.com/api/v1/tasks/132
URI Parameters
HideShow
TaskID
number (required) Example: 132
Request
HideShow
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)"
    }
  }
}
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "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 Elements
GET/api/v1/taskformelements{?TaskID,PropertyID,CompletedStartDate,CompletedEndDate,ChecklistItemID,Sort,per_page,page}

Note: Filters are important to make use of this endpoint.

Example URI

GET https://teams-api.operto.com/api/v1/taskformelements?TaskID=132&PropertyID=456&CompletedStartDate=20230101&CompletedEndDate=20230131&ChecklistItemID=789&Sort=CompleteConfirmedDate asc&per_page=20&page=1
URI Parameters
HideShow
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
Request
HideShow
Headers
Authorization: VRS <access_token>
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "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 SchedulingCalendarNotes
GET/api/v1/schedulingcalendarnotes{?StaffID,ShowOnEmployeeDashboard,StartStartDate,StartEndDate,Sort,per_page,page}

Example URI

GET https://teams-api.operto.com/api/v1/schedulingcalendarnotes?StaffID=123&ShowOnEmployeeDashboard=true&StartStartDate=20190101&StartEndDate=20190131&Sort=SchedulingCalendarNoteID asc&per_page=20&page=1
URI Parameters
HideShow
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
Request
HideShow
Headers
Authorization: VRS <access_token>
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "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 ID
GET/api/v1/schedulingcalendarnotes/{ID}

Example URI

GET https://teams-api.operto.com/api/v1/schedulingcalendarnotes/2320
URI Parameters
HideShow
ID
number (required) Example: 2320
Request
HideShow
Headers
Authorization: VRS <access_token>
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "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 SchedulingCalendarNote
POST/api/v1/schedulingcalendarnotes

Example URI

POST https://teams-api.operto.com/api/v1/schedulingcalendarnotes
Request
HideShow
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"
    }
  }
}
Response  201
HideShow
Headers
Content-Type: application/json
Body
{
  "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 SchedulingCalendarNote
PUT/api/v1/schedulingcalendarnotes/{ID}

Example URI

PUT https://teams-api.operto.com/api/v1/schedulingcalendarnotes/2320
URI Parameters
HideShow
ID
number (required) Example: 2320
Request
HideShow
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"
    }
  }
}
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "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"
    }
  }
}

Generated by aglio on 16 Mar 2026