curl --request PATCH \
--url https://api.autogrowth.farm/v1/bindings/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"captionPipelineId": "<string>",
"mediaPipelineIds": [
"<string>"
],
"brief": {
"postsPerDay": 50,
"postTypes": [
"<string>"
],
"postingWindows": [
"<string>"
],
"timezone": "<string>",
"engagementLevel": "<string>",
"notes": "<string>"
}
}
'import requests
url = "https://api.autogrowth.farm/v1/bindings/{id}"
payload = {
"captionPipelineId": "<string>",
"mediaPipelineIds": ["<string>"],
"brief": {
"postsPerDay": 50,
"postTypes": ["<string>"],
"postingWindows": ["<string>"],
"timezone": "<string>",
"engagementLevel": "<string>",
"notes": "<string>"
}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
captionPipelineId: '<string>',
mediaPipelineIds: ['<string>'],
brief: {
postsPerDay: 50,
postTypes: ['<string>'],
postingWindows: ['<string>'],
timezone: '<string>',
engagementLevel: '<string>',
notes: '<string>'
}
})
};
fetch('https://api.autogrowth.farm/v1/bindings/{id}', 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.autogrowth.farm/v1/bindings/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'captionPipelineId' => '<string>',
'mediaPipelineIds' => [
'<string>'
],
'brief' => [
'postsPerDay' => 50,
'postTypes' => [
'<string>'
],
'postingWindows' => [
'<string>'
],
'timezone' => '<string>',
'engagementLevel' => '<string>',
'notes' => '<string>'
]
]),
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://api.autogrowth.farm/v1/bindings/{id}"
payload := strings.NewReader("{\n \"captionPipelineId\": \"<string>\",\n \"mediaPipelineIds\": [\n \"<string>\"\n ],\n \"brief\": {\n \"postsPerDay\": 50,\n \"postTypes\": [\n \"<string>\"\n ],\n \"postingWindows\": [\n \"<string>\"\n ],\n \"timezone\": \"<string>\",\n \"engagementLevel\": \"<string>\",\n \"notes\": \"<string>\"\n }\n}")
req, _ := http.NewRequest("PATCH", 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.patch("https://api.autogrowth.farm/v1/bindings/{id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"captionPipelineId\": \"<string>\",\n \"mediaPipelineIds\": [\n \"<string>\"\n ],\n \"brief\": {\n \"postsPerDay\": 50,\n \"postTypes\": [\n \"<string>\"\n ],\n \"postingWindows\": [\n \"<string>\"\n ],\n \"timezone\": \"<string>\",\n \"engagementLevel\": \"<string>\",\n \"notes\": \"<string>\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.autogrowth.farm/v1/bindings/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"captionPipelineId\": \"<string>\",\n \"mediaPipelineIds\": [\n \"<string>\"\n ],\n \"brief\": {\n \"postsPerDay\": 50,\n \"postTypes\": [\n \"<string>\"\n ],\n \"postingWindows\": [\n \"<string>\"\n ],\n \"timezone\": \"<string>\",\n \"engagementLevel\": \"<string>\",\n \"notes\": \"<string>\"\n }\n}"
response = http.request(request)
puts response.read_body{
"binding": {
"id": "<string>",
"organizationId": "<string>",
"accountId": "<string>",
"hiKatiePersonaId": "<string>",
"mediaPipelineIds": [
"<string>"
],
"createdAt": "<string>",
"updatedAt": "<string>",
"captionPipelineId": "<string>",
"contentCollectionId": "<string>",
"brief": {
"postsPerDay": 50,
"postTypes": [
"<string>"
],
"postingWindows": [
"<string>"
],
"timezone": "<string>",
"engagementLevel": "<string>",
"notes": "<string>"
},
"lastSyncAt": "<string>",
"lastError": "<string>"
}
}{
"success": true,
"error": {
"name": "<string>",
"issues": [
{}
]
}
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}Update persona binding
Updates the pipelines, brief, mode, or status of a binding. The bound account cannot be changed — delete and recreate instead. The sync-job-owned fields (contentCollectionId, lastSyncAt, lastError) are not settable here.
curl --request PATCH \
--url https://api.autogrowth.farm/v1/bindings/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"captionPipelineId": "<string>",
"mediaPipelineIds": [
"<string>"
],
"brief": {
"postsPerDay": 50,
"postTypes": [
"<string>"
],
"postingWindows": [
"<string>"
],
"timezone": "<string>",
"engagementLevel": "<string>",
"notes": "<string>"
}
}
'import requests
url = "https://api.autogrowth.farm/v1/bindings/{id}"
payload = {
"captionPipelineId": "<string>",
"mediaPipelineIds": ["<string>"],
"brief": {
"postsPerDay": 50,
"postTypes": ["<string>"],
"postingWindows": ["<string>"],
"timezone": "<string>",
"engagementLevel": "<string>",
"notes": "<string>"
}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
captionPipelineId: '<string>',
mediaPipelineIds: ['<string>'],
brief: {
postsPerDay: 50,
postTypes: ['<string>'],
postingWindows: ['<string>'],
timezone: '<string>',
engagementLevel: '<string>',
notes: '<string>'
}
})
};
fetch('https://api.autogrowth.farm/v1/bindings/{id}', 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.autogrowth.farm/v1/bindings/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'captionPipelineId' => '<string>',
'mediaPipelineIds' => [
'<string>'
],
'brief' => [
'postsPerDay' => 50,
'postTypes' => [
'<string>'
],
'postingWindows' => [
'<string>'
],
'timezone' => '<string>',
'engagementLevel' => '<string>',
'notes' => '<string>'
]
]),
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://api.autogrowth.farm/v1/bindings/{id}"
payload := strings.NewReader("{\n \"captionPipelineId\": \"<string>\",\n \"mediaPipelineIds\": [\n \"<string>\"\n ],\n \"brief\": {\n \"postsPerDay\": 50,\n \"postTypes\": [\n \"<string>\"\n ],\n \"postingWindows\": [\n \"<string>\"\n ],\n \"timezone\": \"<string>\",\n \"engagementLevel\": \"<string>\",\n \"notes\": \"<string>\"\n }\n}")
req, _ := http.NewRequest("PATCH", 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.patch("https://api.autogrowth.farm/v1/bindings/{id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"captionPipelineId\": \"<string>\",\n \"mediaPipelineIds\": [\n \"<string>\"\n ],\n \"brief\": {\n \"postsPerDay\": 50,\n \"postTypes\": [\n \"<string>\"\n ],\n \"postingWindows\": [\n \"<string>\"\n ],\n \"timezone\": \"<string>\",\n \"engagementLevel\": \"<string>\",\n \"notes\": \"<string>\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.autogrowth.farm/v1/bindings/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"captionPipelineId\": \"<string>\",\n \"mediaPipelineIds\": [\n \"<string>\"\n ],\n \"brief\": {\n \"postsPerDay\": 50,\n \"postTypes\": [\n \"<string>\"\n ],\n \"postingWindows\": [\n \"<string>\"\n ],\n \"timezone\": \"<string>\",\n \"engagementLevel\": \"<string>\",\n \"notes\": \"<string>\"\n }\n}"
response = http.request(request)
puts response.read_body{
"binding": {
"id": "<string>",
"organizationId": "<string>",
"accountId": "<string>",
"hiKatiePersonaId": "<string>",
"mediaPipelineIds": [
"<string>"
],
"createdAt": "<string>",
"updatedAt": "<string>",
"captionPipelineId": "<string>",
"contentCollectionId": "<string>",
"brief": {
"postsPerDay": 50,
"postTypes": [
"<string>"
],
"postingWindows": [
"<string>"
],
"timezone": "<string>",
"engagementLevel": "<string>",
"notes": "<string>"
},
"lastSyncAt": "<string>",
"lastError": "<string>"
}
}{
"success": true,
"error": {
"name": "<string>",
"issues": [
{}
]
}
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}Authorizations
Developer API key from Dashboard → Settings → Developer API
Path Parameters
ID of the binding.
Body
The bound account cannot be changed — delete the binding and create a new one instead. An empty object is accepted and returns the binding untouched.
Caption workflow ID, or null to clear it (captions then fall back to the static input). Omit to leave it alone.
1 - 1001 - 100Replaces the stored brief in full.
Show child attributes
Show child attributes
Trust dial. draft_only = the persona generates and a human schedules; review = auto-scheduled from human-approved assets only; autopilot = pipeline output posts unattended.
draft_only, review, autopilot Setting this back to active also clears lastError.
active, paused, error Response
Binding updated
Show child attributes
Show child attributes