Skip to main content

Passthrough Requests

Using Calry API's authenticated passthrough request, you can make requests directly to the PMS Source Systems (Hostaway, Guesty, Hostfully etc). Passthrough requests allow you to a Source System's endpoints before Calry API supports them in a unified way.

HTTP Request​

POST https://dev.calry.app/api/v1/vrs/passthrough

Request Headers​

HeaderValue
AuthorizationBearer YOUR_ACCESS_TOKEN
workspaceIdYOUR_WORKSPACE_ID
integrationAccountIdYOUR_INTEGRATION_ACCOUNT_ID

Request Body​

The request body should be in JSON format with the following parameters:

KeyTypeDescriptionRequired
methodstringThe HTTP method to use for the request.Yes
sourceUrlstringThe URL to send the request to.Yes
dataJSONThe data to send in the request body.No

Data Object​

The data object should contain the following parameters:

KeyTypeDescriptionRequired
queryParametersJSONThe query parameters to send with the request.No
pathParametersJSONThe path parameters to send with the request.No
headersJSONThe headers to send with the request.No
bodyJSONThe body of the request.No

Example Request​

Get all reservations from Hostaway

curl --location 'https://dev.calry.app/api/v1/vrs/passthrough' \
--header 'Authorization: Bearer eyJraWQiOiJzLTk2MWQyNmY2LTUwOTEtNDMxZS05NTRlLWM4MDJhMGNkNjY5NCIsInR5cCI6IkpXVCIsImFsZyI6IlJTMjU2In0.eyJpc3MiOiJodHRwOi8vbG9jYWxob3N0OjMwMDAvYXV0aCIsInVzZXJJZCI6ImY4NTkxMGVkLTc0MzAtNGMxYi04NGVhLWUxNGE5YjViNjkyNCIsIndvcmtzcGFjZUlkIjoiNzMzZWQ1NDEtZmQ3MC00OWZkLTg0MjUtNmMyNWQzNjNkNDdhIiwibmFtZSI6ImFzZGZhcyIsInNvdXJjZSI6Im1pY3Jvc2VydmljZSIsImlhdCI6MTcxOTczMjQxOSwiZXhwIjoxNzQyOTY0NzQyfQ.gvTv3vk9Ez_efUZ-EUfMPOJKC-6QoDnk7cIppKl9Z4tvBUtAKEDnOPE6Av-m121XEp5sysCmpE0Coqv6sqv2Ag1e6yiGKKj0xCwWXlcWv131jCyIwugppQLVHbpPiTKn3RADY2HsnGX3rfzfJNn5Rwr0Yv-m19B9DyQXctAUr4U3Qyo1QoVsRcbOyMonazqUYJRV-zsRTFtxu5QIgtzKTMB_rLF8WKcCiI07EBQmmPpEZt4g3Jk8B3OV97bGr4Yz3vE7v4mHJbWaZiB-HWqyk5JEsGtkrlXMZfZfanSTbWzb64WW9MZiJRp1XUDuFuVr-pDHi1lYgIP0fSsJRZtwHA' \
--header 'workspaceId: 733ed541-fd70-49fd-8425-6c25d363d47a' \
--header 'integrationAccountId: 3b7a1083-90c4-461b-8d09-bf12317f981f' \
--header 'Content-Type: application/json' \
--data '{
"method": "GET",
"sourceUrl": "https://api.hostaway.com/v1/reservations",
"data": {
"queryParams": {
"include_related_objects": 1,
"limit": 10
},
"pathParams": {},
"body": {}
}
}'

Get a property from Guesty

curl --location 'https://dev.calry.app/api/v1/vrs/passthrough' \
--header 'Authorization: Bearer eyJraWQiOiJzLTk2MWQyNmY2LTUwOTEtNDMxZS05NTRlLWM4MDJhMGNkNjY5NCIsInR5cCI6IkpXVCIsImFsZyI6IlJTMjU2In0.eyJpc3MiOiJodHRwOi8vbG9jYWxob3N0OjMwMDAvYXV0aCIsInVzZXJJZCI6ImY4NTkxMGVkLTc0MzAtNGMxYi04NGVhLWUxNGE5YjViNjkyNCIsIndvcmtzcGFjZUlkIjoiNzMzZWQ1NDEtZmQ3MC00OWZkLTg0MjUtNmMyNWQzNjNkNDdhIiwibmFtZSI6ImFzZGZhcyIsInNvdXJjZSI6Im1pY3Jvc2VydmljZSIsImlhdCI6MTcxOTczMjQxOSwiZXhwIjoxNzQyOTY0NzQyfQ.gvTv3vk9Ez_efUZ-EUfMPOJKC-6QoDnk7cIppKl9Z4tvBUtAKEDnOPE6Av-m121XEp5sysCmpE0Coqv6sqv2Ag1e6yiGKKj0xCwWXlcWv131jCyIwugppQLVHbpPiTKn3RADY2HsnGX3rfzfJNn5Rwr0Yv-m19B9DyQXctAUr4U3Qyo1QoVsRcbOyMonazqUYJRV-zsRTFtxu5QIgtzKTMB_rLF8WKcCiI07EBQmmPpEZt4g3Jk8B3OV97bGr4Yz3vE7v4mHJbWaZiB-HWqyk5JEsGtkrlXMZfZfanSTbWzb64WW9MZiJRp1XUDuFuVr-pDHi1lYgIP0fSsJRZtwHA' \
--header 'workspaceId: 733ed541-fd70-49fd-8425-6c25d363d47a' \
--header 'integrationAccountId: 3b7a1083-90c4-461b-8d09-bf12317f981f' \
--header 'Content-Type: application/json' \
--data '{
"method": "GET",
"sourceUrl": "https://open-api.guesty.com/v1/listings/{listingId}",
"data": {
"queryParams": {},
"pathParams": {
"listingId": "66137b0c954f5a0012a0fd1a"
},
"body": {}
}
}'

Create a reservation in Hostify

curl --location 'https://dev.calry.app/api/v1/vrs/passthrough' \
--header 'Authorization: Bearer eyJraWQiOiJzLTk2MWQyNmY2LTUwOTEtNDMxZS05NTRlLWM4MDJhMGNkNjY5NCIsInR5cCI6IkpXVCIsImFsZyI6IlJTMjU2In0.eyJpc3MiOiJodHRwOi8vbG9jYWxob3N0OjMwMDAvYXV0aCIsInVzZXJJZCI6ImY4NTkxMGVkLTc0MzAtNGMxYi04NGVhLWUxNGE5YjViNjkyNCIsIndvcmtzcGFjZUlkIjoiNzMzZWQ1NDEtZmQ3MC00OWZkLTg0MjUtNmMyNWQzNjNkNDdhIiwibmFtZSI6ImFzZGZhcyIsInNvdXJjZSI6Im1pY3Jvc2VydmljZSIsImlhdCI6MTcxOTczMjQxOSwiZXhwIjoxNzQyOTY0NzQyfQ.gvTv3vk9Ez_efUZ-EUfMPOJKC-6QoDnk7cIppKl9Z4tvBUtAKEDnOPE6Av-m121XEp5sysCmpE0Coqv6sqv2Ag1e6yiGKKj0xCwWXlcWv131jCyIwugppQLVHbpPiTKn3RADY2HsnGX3rfzfJNn5Rwr0Yv-m19B9DyQXctAUr4U3Qyo1QoVsRcbOyMonazqUYJRV-zsRTFtxu5QIgtzKTMB_rLF8WKcCiI07EBQmmPpEZt4g3Jk8B3OV97bGr4Yz3vE7v4mHJbWaZiB-HWqyk5JEsGtkrlXMZfZfanSTbWzb64WW9MZiJRp1XUDuFuVr-pDHi1lYgIP0fSsJRZtwHA' \
--header 'workspaceId: 733ed541-fd70-49fd-8425-6c25d363d47a' \
--header 'integrationAccountId: 3b7a1083-90c4-461b-8d09-bf12317f981f' \
--header 'Content-Type: application/json' \
--data-raw '{
"method": "POST",
"sourceUrl": "https://api-rms.hostify.com/reservations",
"data": {
"queryParams": {},
"pathParams": {},
"body": {
"listing_id": 232113,
"start_date": "2024-07-01",
"end_date": "2024-07-10",
"guests": 4,
"name": "Alice Jhonson",
"email": "alice@gmail.com",
"phone": "+1-541-754-3010",
"total_price": 5000,
"note": "Approximate time of arrival: between 13:00 and 14:00"
}
}
}'

Step-by-step Guide​

Before starting, you need to reference the API docs for the endpoint you want to use in the PMS Source System.

Example API docs:

  1. Hostaway
  2. Guesty
  3. Hostfully
  4. Hostify
  5. Ownerrez

Step 1: Identify Method​

Identify the method you want to use for the request. The method can be GET, POST, PUT, DELETE, etc.

Common values:

  • GET Requests a representation of the specified resource. Should only retrieve data.
  • PATCH Applies partial modifications to a resource.
  • POST Submits an entity to the specified resource.
  • PUT Replaces all current representations of the target resource with the request payload.
  • DELETE Deletes the specified resource.

Step 2: Identify Source URL​

Identify the sourceUrl you want to use for the request. The source URL is the URL of the endpoint you want to access in the PMS Source System.

Example source URLs:

  • Hostaway: https://api.hostaway.com/v1/reservations
  • Guesty: https://open-api.guesty.com/v1/listings/{listingId}
  • Hostfully: https://api.hostfully.com/api/v3/properties/{propertyUid}
  • Hostify: https://api-rms.hostify.com/reservations

Step 3: Add Data Object​

Add the data object to the request body. The data object should contain the following parameters:

  • queryParameters: The query parameters to send with the request.
  • pathParameters: The path parameters to send with the request. It is used when the URL contains a dynamic parameter.
  • headers: The headers to send with the request.
  • body: The body of the request.

Step 4: Make Request​

With the method, sourceUrl, and data parameters filled out, you can make a passthrough request to Calry API:

curl --location 'https://dev.calry.app/api/v1/vrs/passthrough' \
--header 'Authorization: Bearer YOUR_ACCESS_TOKEN' \
--header 'workspaceId: YOUR_WORKSPACE_ID' \
--header 'integrationAccountId: YOUR_INTEGRATION_ACCOUNT_ID' \
--header 'Content-Type: application/json' \
--data '{
"method": "method_from_step1",
"sourceUrl": "method_from_step2",
"data": {
"queryParams": {},
"pathParams": {},
"body": {}
}
}'