Restore automation
curl --request POST \
--url https://automations-api.vortexiq.ai/v1/automations/{automationId}/restore \
--header 'Authorization: Bearer <token>'import requests
url = "https://automations-api.vortexiq.ai/v1/automations/{automationId}/restore"
headers = {"Authorization": "Bearer <token>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
fetch('https://automations-api.vortexiq.ai/v1/automations/{automationId}/restore', 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://automations-api.vortexiq.ai/v1/automations/{automationId}/restore",
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://automations-api.vortexiq.ai/v1/automations/{automationId}/restore"
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://automations-api.vortexiq.ai/v1/automations/{automationId}/restore")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://automations-api.vortexiq.ai/v1/automations/{automationId}/restore")
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{
"success": true,
"contract_version": 1,
"data": {
"automation": {
"id": "01M520GSDQH5TQ3CAAQ584TTKH",
"version": 6,
"kind": "template",
"import_id": null,
"template_id": "shopify-catalogue-quality",
"template_version": 4,
"platform": "shopify",
"integration_id": 101,
"store_label": "Example Shopify store",
"name": "Weekly catalogue check",
"state": "paused",
"trigger": {
"kind": "schedule"
},
"paused_by": "merchant",
"paused_reason": null,
"inputs": {},
"bindings": {},
"plan_version": 1,
"connections": [],
"schedule": {
"cadence": "weekly",
"run_at": "07:00",
"day_of_week": 1,
"day_of_month": null,
"date": null,
"days": null,
"week_of_month": null
},
"timezone": "Europe/London",
"spread_minutes": 2,
"next_run_at": null,
"last_run_at": "2026-10-16T09:26:06.219Z",
"consecutive_failures": 0,
"send_mode": "ask",
"created_at": "2026-10-16T09:26:03.448Z",
"updated_at": "2026-10-16T09:26:07.176Z",
"created_by": 7,
"created_via": "api-token",
"api_client_id": "viq_auto_Ab12Cd34Ef56Gh78Ij90Kl12"
}
}
}{
"success": false,
"contract_version": 2,
"message": "<string>",
"code": "<string>",
"errors": {}
}{
"success": false,
"contract_version": 2,
"message": "<string>",
"code": "<string>",
"errors": {}
}{
"success": false,
"contract_version": 2,
"message": "<string>",
"code": "<string>",
"errors": {}
}{
"success": false,
"contract_version": 2,
"message": "<string>",
"code": "<string>",
"errors": {}
}{
"success": false,
"contract_version": 2,
"message": "<string>",
"code": "<string>",
"errors": {}
}Restore automation
Bring an archived automation back. It returns paused, so nothing runs until you resume it.
Needs the automations:write scope.
POST
/
v1
/
automations
/
{automationId}
/
restore
Restore automation
curl --request POST \
--url https://automations-api.vortexiq.ai/v1/automations/{automationId}/restore \
--header 'Authorization: Bearer <token>'import requests
url = "https://automations-api.vortexiq.ai/v1/automations/{automationId}/restore"
headers = {"Authorization": "Bearer <token>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
fetch('https://automations-api.vortexiq.ai/v1/automations/{automationId}/restore', 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://automations-api.vortexiq.ai/v1/automations/{automationId}/restore",
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://automations-api.vortexiq.ai/v1/automations/{automationId}/restore"
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://automations-api.vortexiq.ai/v1/automations/{automationId}/restore")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://automations-api.vortexiq.ai/v1/automations/{automationId}/restore")
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{
"success": true,
"contract_version": 1,
"data": {
"automation": {
"id": "01M520GSDQH5TQ3CAAQ584TTKH",
"version": 6,
"kind": "template",
"import_id": null,
"template_id": "shopify-catalogue-quality",
"template_version": 4,
"platform": "shopify",
"integration_id": 101,
"store_label": "Example Shopify store",
"name": "Weekly catalogue check",
"state": "paused",
"trigger": {
"kind": "schedule"
},
"paused_by": "merchant",
"paused_reason": null,
"inputs": {},
"bindings": {},
"plan_version": 1,
"connections": [],
"schedule": {
"cadence": "weekly",
"run_at": "07:00",
"day_of_week": 1,
"day_of_month": null,
"date": null,
"days": null,
"week_of_month": null
},
"timezone": "Europe/London",
"spread_minutes": 2,
"next_run_at": null,
"last_run_at": "2026-10-16T09:26:06.219Z",
"consecutive_failures": 0,
"send_mode": "ask",
"created_at": "2026-10-16T09:26:03.448Z",
"updated_at": "2026-10-16T09:26:07.176Z",
"created_by": 7,
"created_via": "api-token",
"api_client_id": "viq_auto_Ab12Cd34Ef56Gh78Ij90Kl12"
}
}
}{
"success": false,
"contract_version": 2,
"message": "<string>",
"code": "<string>",
"errors": {}
}{
"success": false,
"contract_version": 2,
"message": "<string>",
"code": "<string>",
"errors": {}
}{
"success": false,
"contract_version": 2,
"message": "<string>",
"code": "<string>",
"errors": {}
}{
"success": false,
"contract_version": 2,
"message": "<string>",
"code": "<string>",
"errors": {}
}{
"success": false,
"contract_version": 2,
"message": "<string>",
"code": "<string>",
"errors": {}
}Authorizations
bearerAuthapiCredential
A bearer token from Login, sent as Authorization: Bearer <token>. Valid for 60 minutes; it acts as the person named at login, within their organisation, and never approves. Rotating or disabling the organisation's API credential ends every token made with it on its next call. See Authentication.
Path Parameters
The automation's id. A public id (a ULID).
Pattern:
^[0-9A-HJKMNP-TV-Z]{26}$Was this page helpful?
⌘I