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/v2/vrs/passthrough
Request Headers​
Header | Value |
---|---|
Authorization | Bearer YOUR_ACCESS_TOKEN |
workspaceId | YOUR_WORKSPACE_ID |
integrationAccountId | YOUR_INTEGRATION_ACCOUNT_ID |
Request Body​
The request body should be in JSON format with the following parameters:
Key | Type | Description | Required |
---|---|---|---|
method | string | The HTTP method to use for the request. | Yes |
sourceUrl | string | The URL to send the request to. | Yes |
data | JSON | The data to send in the request body. | No |
Data Object​
The data object should contain the following parameters:
Key | Type | Description | Required |
---|---|---|---|
queryParameters | JSON | The query parameters to send with the request. | No |
pathParameters | JSON | The path parameters to send with the request. | No |
headers | JSON | The headers to send with the request. | No |
body | JSON | The body of the request. | No |
Example Request​
Get all reservations from Hostaway
curl --location 'https://dev.calry.app/api/v2/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/v2/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/v2/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:
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/v2/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": {}
}
}'