Integrations
Poll backfill status
Returns the pollable backfill status for one integration. Requires scope read:integrations.
GET
/
v1
/
connections
/
{id}
/
backfill
Poll backfill status
curl --request GET \
--url https://api.casa-layer.com/v1/connections/{id}/backfill \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.casa-layer.com/v1/connections/{id}/backfill"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.casa-layer.com/v1/connections/{id}/backfill', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.casa-layer.com/v1/connections/{id}/backfill",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.casa-layer.com/v1/connections/{id}/backfill"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.casa-layer.com/v1/connections/{id}/backfill")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.casa-layer.com/v1/connections/{id}/backfill")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"data": {
"state": "not_started",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"started_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"finished_at": "2023-11-07T05:31:56Z",
"enqueued": 123,
"windows_done": 123,
"windows_total": 123,
"date_basis": "stay_date",
"range": {
"start": "2023-12-25",
"end": "2023-12-25"
},
"error": "<string>",
"workflow_instance_id": "<string>",
"ingested_guests": 123,
"ingested_reservations": 123,
"ingested_reviews": 123,
"ingested_channels": 123,
"ingested_spaces": 123
}
}{
"error": "unauthorized"
}{
"error": "forbidden",
"scope": "read:guests"
}Authorizations
Authorization: Bearer <token>. Token types resolve to the same scoped credential: a user-generated API key (casa_…, from Account settings — recommended for machines and MCP clients), a WorkOS AuthKit session JWT (the web app; org and role come from verified token claims), or a static token. API keys are group-scoped, optionally pinned to one property at creation. MCP OAuth connector tokens authenticate the MCP server only and are rejected on these REST routes.
Path Parameters
Resource id (UUID).
Query Parameters
Response
Backfill status.
Show child attributes
Show child attributes
⌘I
Poll backfill status
curl --request GET \
--url https://api.casa-layer.com/v1/connections/{id}/backfill \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.casa-layer.com/v1/connections/{id}/backfill"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.casa-layer.com/v1/connections/{id}/backfill', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.casa-layer.com/v1/connections/{id}/backfill",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.casa-layer.com/v1/connections/{id}/backfill"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.casa-layer.com/v1/connections/{id}/backfill")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.casa-layer.com/v1/connections/{id}/backfill")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"data": {
"state": "not_started",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"started_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"finished_at": "2023-11-07T05:31:56Z",
"enqueued": 123,
"windows_done": 123,
"windows_total": 123,
"date_basis": "stay_date",
"range": {
"start": "2023-12-25",
"end": "2023-12-25"
},
"error": "<string>",
"workflow_instance_id": "<string>",
"ingested_guests": 123,
"ingested_reservations": 123,
"ingested_reviews": 123,
"ingested_channels": 123,
"ingested_spaces": 123
}
}{
"error": "unauthorized"
}{
"error": "forbidden",
"scope": "read:guests"
}