Edit a live post's automation
curl -X POST https://api.xholic.ai/v1/queue/update-automation-step \ -H "Authorization: Bearer $XHOLIC_API_KEY" \ -H "Content-Type: application/json" \ -d '{"postId":"<postId>","ruleId":"<ruleId>","type":"AUTO_REPOST","dryRun":true,"idempotencyKey":"my-unique-key-1"}'xholic queue update-automation-step --post-id '<postId>' --rule-id '<ruleId>' --type 'AUTO_REPOST' --dry-run --idempotency-key 'my-unique-key-1'{ "name": "queue_update_automation_step", "arguments": { "postId": "<postId>", "ruleId": "<ruleId>", "type": "AUTO_REPOST", "dryRun": true, "idempotencyKey": "my-unique-key-1" }}const response = await fetch("https://api.xholic.ai/v1/queue/update-automation-step", { method: "POST", headers: { Authorization: `Bearer ${process.env.XHOLIC_API_KEY}`, "Content-Type": "application/json", }, body: JSON.stringify({ "postId": "<postId>", "ruleId": "<ruleId>", "type": "AUTO_REPOST", "dryRun": true, "idempotencyKey": "my-unique-key-1" }),});const result = await response.json();console.log(result.summary);import axios from "axios";
const { data } = await axios.post( "https://api.xholic.ai/v1/queue/update-automation-step", { "postId": "<postId>", "ruleId": "<ruleId>", "type": "AUTO_REPOST", "dryRun": true, "idempotencyKey": "my-unique-key-1" }, { headers: { Authorization: `Bearer ${process.env.XHOLIC_API_KEY}` } },);console.log(data.summary);import osimport requests
response = requests.post( "https://api.xholic.ai/v1/queue/update-automation-step", headers={"Authorization": f"Bearer {os.environ['XHOLIC_API_KEY']}"}, json={ "postId": "<postId>", "ruleId": "<ruleId>", "type": "AUTO_REPOST", "dryRun": True, "idempotencyKey": "my-unique-key-1" },)print(response.json()["summary"])package main
import ( "fmt" "io" "net/http" "os" "strings")
func main() { body := strings.NewReader(`{"postId":"<postId>","ruleId":"<ruleId>","type":"AUTO_REPOST","dryRun":true,"idempotencyKey":"my-unique-key-1"}`) req, _ := http.NewRequest("POST", "https://api.xholic.ai/v1/queue/update-automation-step", body) req.Header.Set("Authorization", "Bearer "+os.Getenv("XHOLIC_API_KEY")) req.Header.Set("Content-Type", "application/json") res, err := http.DefaultClient.Do(req) if err != nil { panic(err) } defer res.Body.Close() out, _ := io.ReadAll(res.Body) fmt.Println(string(out))}<?php$ch = curl_init("https://api.xholic.ai/v1/queue/update-automation-step");curl_setopt_array($ch, [ CURLOPT_RETURNTRANSFER => true, CURLOPT_POST => true, CURLOPT_HTTPHEADER => [ 'Authorization: Bearer ' . getenv('XHOLIC_API_KEY'), 'Content-Type: application/json', ], CURLOPT_POSTFIELDS => '{"postId":"<postId>","ruleId":"<ruleId>","type":"AUTO_REPOST","dryRun":true,"idempotencyKey":"my-unique-key-1"}',]);$result = json_decode(curl_exec($ch), true);echo $result['summary'];require "net/http"require "json"
uri = URI("https://api.xholic.ai/v1/queue/update-automation-step")req = Net::HTTP::Post.new(uri, "Content-Type" => "application/json")req["Authorization"] = "Bearer #{ENV.fetch("XHOLIC_API_KEY")}"req.body = '{"postId":"<postId>","ruleId":"<ruleId>","type":"AUTO_REPOST","dryRun":true,"idempotencyKey":"my-unique-key-1"}'res = Net::HTTP.start(uri.host, uri.port, use_ssl: true) { |http| http.request(req) }puts JSON.parse(res.body)["summary"]Change a pending automation step on a live post. Send the whole step with its type. Call it only when the user asked for this in the conversation; never on your own initiative.
Authorizations
Section titled “Authorizations”Request Bodyrequired
Section titled “Request Bodyrequired”object
Xholic scheduled post id, from get_queue.
The step. Each type takes only its own fields.
AUTO_REPOST, AUTO_UNREPOST, AUTO_DELETE: minutes after the post went live.
AUTO_DELETE: delete only if the post has fewer views than this.
AUTO_PLUG: likes that trigger the plug reply.
AUTO_PLUG: a short name for the plug.
AUTO_PLUG: the plug reply text.
AUTO_PLUG: minutes after posting when watching for likes stops.
AUTO_DM_DISCOVERY: one word repliers type.
AUTO_DM_DISCOVERY: DM only people who also reposted.
AUTO_DM_DISCOVERY: most DMs to send.
AUTO_DM_DISCOVERY: the DM to send.
X account to act on, as @handle. Leave it out to use the connection’s default account.
Return exactly what would happen without doing it.
A unique key for this write. Repeating a call with the same key returns the first result instead of acting twice.
Example
{ "postId": "<postId>", "ruleId": "<ruleId>", "type": "AUTO_REPOST", "dryRun": true, "idempotencyKey": "my-unique-key-1"}Responses
Section titled “Responses”Success
object
One or two readable sentences about the result.
The result. Its shape depends on the action.
object
Example
{ "ok": true}default
Section titled “default”Error
object
object
Example
{ "ok": false, "error": { "code": "UNAUTHENTICATED", "scope": "account" }}