curl --request POST \
--url https://dally.ai/v1/holding.read \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"platform": "instagram"
}
'import requests
url = "https://dally.ai/v1/holding.read"
payload = { "platform": "instagram" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({platform: 'instagram'})
};
fetch('https://dally.ai/v1/holding.read', 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://dally.ai/v1/holding.read",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'platform' => 'instagram'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://dally.ai/v1/holding.read"
payload := strings.NewReader("{\n \"platform\": \"instagram\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://dally.ai/v1/holding.read")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"platform\": \"instagram\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://dally.ai/v1/holding.read")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"platform\": \"instagram\"\n}"
response = http.request(request)
puts response.read_body{
"platform": "instagram",
"state": "connected",
"connected": true,
"handle": "sarahcreates",
"missing_permissions": [],
"sync": [
{
"key": "posts",
"label": "Posts",
"value": "128 of 412",
"state": "waiting"
},
{
"key": "comments",
"label": "Comments",
"value": "2,304",
"state": "landed"
},
{
"key": "messages",
"label": "DMs",
"value": "not shared",
"state": "muted"
},
{
"key": "followers",
"label": "Followers",
"value": "12,480",
"state": "landed"
},
{
"key": "insights",
"label": "Insights",
"value": "",
"state": "waiting"
}
],
"request_id": "req_01j8zkq"
}{
"error": {
"code": "invalid_request",
"message": "<string>",
"details": {}
},
"request_id": "<string>"
}holding.read
Access: public. Send a JSON body; unknown keys are rejected with 400 invalid_request (inputs are strict). Responses may gain fields additively — never remove or repurpose; ignore unknown response fields.
curl --request POST \
--url https://dally.ai/v1/holding.read \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"platform": "instagram"
}
'import requests
url = "https://dally.ai/v1/holding.read"
payload = { "platform": "instagram" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({platform: 'instagram'})
};
fetch('https://dally.ai/v1/holding.read', 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://dally.ai/v1/holding.read",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'platform' => 'instagram'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://dally.ai/v1/holding.read"
payload := strings.NewReader("{\n \"platform\": \"instagram\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://dally.ai/v1/holding.read")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"platform\": \"instagram\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://dally.ai/v1/holding.read")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"platform\": \"instagram\"\n}"
response = http.request(request)
puts response.read_body{
"platform": "instagram",
"state": "connected",
"connected": true,
"handle": "sarahcreates",
"missing_permissions": [],
"sync": [
{
"key": "posts",
"label": "Posts",
"value": "128 of 412",
"state": "waiting"
},
{
"key": "comments",
"label": "Comments",
"value": "2,304",
"state": "landed"
},
{
"key": "messages",
"label": "DMs",
"value": "not shared",
"state": "muted"
},
{
"key": "followers",
"label": "Followers",
"value": "12,480",
"state": "landed"
},
{
"key": "insights",
"label": "Insights",
"value": "",
"state": "waiting"
}
],
"request_id": "req_01j8zkq"
}{
"error": {
"code": "invalid_request",
"message": "<string>",
"details": {}
},
"request_id": "<string>"
}Authorizations
A WorkOS-dashboard-issued internal API key on Authorization: Bearer.
Body
The platform a row belongs to. v1 supports instagram; more platforms will be added to this enum additively — treat unknown values as new platforms, never as errors.
instagram Response
Success. request_id is present on every response.
The platform a row belongs to. v1 supports instagram; more platforms will be added to this enum additively — treat unknown values as new platforms, never as errors.
instagram absent when this room has never connected the platform, connected while Dally holds a live connection, degraded when the connection stands but a permission was withheld, invalid when every connection this room opened is dead.
absent, connected, degraded, invalid Whether Dally holds a live connection right now.
The connected account's handle, for display only; null when nothing is connected or the platform never named one.
The permissions the platform withheld, named as the person will recognize them; empty unless the state is degraded.
The five rows of this account's first sync, in the order the card prints them; null when nothing is connected or the sync cannot be read.
Show child attributes
Show child attributes
Server-minted id for this request. Present on every response, success and error — quote it when reporting a problem.
1