Tables
Refresh a dynamic table
Claims a manual refresh run, evaluates saved filters, and swaps memberships on success. Returns 409 when a run is already in progress and 422 no_filters_defined when no saved filters exist. Requires scope write:tables.
POST
/
v1
/
tables
/
{id}
/
refresh
Refresh a dynamic table
curl --request POST \
--url https://api.casa-layer.com/v1/tables/{id}/refresh \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.casa-layer.com/v1/tables/{id}/refresh"
headers = {"Authorization": "Bearer <token>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.casa-layer.com/v1/tables/{id}/refresh', 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/tables/{id}/refresh",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
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/tables/{id}/refresh"
req, _ := http.NewRequest("POST", 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.post("https://api.casa-layer.com/v1/tables/{id}/refresh")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.casa-layer.com/v1/tables/{id}/refresh")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"data": {
"run": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"table_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"property_group_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"status": "running",
"started_at": "2023-11-07T05:31:56Z",
"filters_revision": 123,
"members_added": 123,
"members_removed": 123,
"members_total": 123,
"error": {},
"finished_at": "2023-11-07T05:31:56Z"
},
"table": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"property_group_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"type": "static",
"member_type": "master",
"status": "active",
"member_count": 123,
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"description": "<string>",
"created_by": "<string>",
"last_refreshed_at": "2023-11-07T05:31:56Z",
"latest_run_status": "running"
}
}
}{
"error": "unauthorized"
}{
"error": "forbidden",
"scope": "read:guests"
}{
"error": "not_found"
}{
"error": "<string>",
"scope": "<string>",
"detail": "<string>"
}{
"error": "<string>",
"scope": "<string>",
"detail": "<string>"
}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).
Response
Refresh completed.
Show child attributes
Show child attributes
⌘I
Refresh a dynamic table
curl --request POST \
--url https://api.casa-layer.com/v1/tables/{id}/refresh \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.casa-layer.com/v1/tables/{id}/refresh"
headers = {"Authorization": "Bearer <token>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.casa-layer.com/v1/tables/{id}/refresh', 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/tables/{id}/refresh",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
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/tables/{id}/refresh"
req, _ := http.NewRequest("POST", 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.post("https://api.casa-layer.com/v1/tables/{id}/refresh")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.casa-layer.com/v1/tables/{id}/refresh")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"data": {
"run": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"table_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"property_group_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"status": "running",
"started_at": "2023-11-07T05:31:56Z",
"filters_revision": 123,
"members_added": 123,
"members_removed": 123,
"members_total": 123,
"error": {},
"finished_at": "2023-11-07T05:31:56Z"
},
"table": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"property_group_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"type": "static",
"member_type": "master",
"status": "active",
"member_count": 123,
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"description": "<string>",
"created_by": "<string>",
"last_refreshed_at": "2023-11-07T05:31:56Z",
"latest_run_status": "running"
}
}
}{
"error": "unauthorized"
}{
"error": "forbidden",
"scope": "read:guests"
}{
"error": "not_found"
}{
"error": "<string>",
"scope": "<string>",
"detail": "<string>"
}{
"error": "<string>",
"scope": "<string>",
"detail": "<string>"
}