curl --request POST \
--url https://automations-api.vortexiq.ai/v1/automations/schedule/preview \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"schedule": {
"cadence": "weekly",
"day_of_week": 1,
"run_at": "07:00"
},
"timezone": "Europe/London"
}
'import requests
url = "https://automations-api.vortexiq.ai/v1/automations/schedule/preview"
payload = {
"schedule": {
"cadence": "weekly",
"day_of_week": 1,
"run_at": "07:00"
},
"timezone": "Europe/London"
}
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({
schedule: {cadence: 'weekly', day_of_week: 1, run_at: '07:00'},
timezone: 'Europe/London'
})
};
fetch('https://automations-api.vortexiq.ai/v1/automations/schedule/preview', 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/schedule/preview",
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([
'schedule' => [
'cadence' => 'weekly',
'day_of_week' => 1,
'run_at' => '07:00'
],
'timezone' => 'Europe/London'
]),
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://automations-api.vortexiq.ai/v1/automations/schedule/preview"
payload := strings.NewReader("{\n \"schedule\": {\n \"cadence\": \"weekly\",\n \"day_of_week\": 1,\n \"run_at\": \"07:00\"\n },\n \"timezone\": \"Europe/London\"\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://automations-api.vortexiq.ai/v1/automations/schedule/preview")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"schedule\": {\n \"cadence\": \"weekly\",\n \"day_of_week\": 1,\n \"run_at\": \"07:00\"\n },\n \"timezone\": \"Europe/London\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://automations-api.vortexiq.ai/v1/automations/schedule/preview")
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 \"schedule\": {\n \"cadence\": \"weekly\",\n \"day_of_week\": 1,\n \"run_at\": \"07:00\"\n },\n \"timezone\": \"Europe/London\"\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"contract_version": 1,
"data": {
"slots": [
"2026-10-19T06:00:00.000Z",
"2026-10-26T07:00:00.000Z"
]
}
}{
"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": {}
}Preview schedule
The next three times a schedule would run in a timezone, before you save it. Nothing is saved. A scheduled run starts within ten minutes after its time, so treat the times as “at about”.
Cadences: manual, once (with date and run_at), hourly, every_6_hours, daily, weekdays (with
days, 1 is Monday), weekly (with day_of_week) and monthly (with day_of_month, or week_of_month
and day_of_week). run_at is HH:MM in the timezone.
Needs the automations:read scope.
curl --request POST \
--url https://automations-api.vortexiq.ai/v1/automations/schedule/preview \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"schedule": {
"cadence": "weekly",
"day_of_week": 1,
"run_at": "07:00"
},
"timezone": "Europe/London"
}
'import requests
url = "https://automations-api.vortexiq.ai/v1/automations/schedule/preview"
payload = {
"schedule": {
"cadence": "weekly",
"day_of_week": 1,
"run_at": "07:00"
},
"timezone": "Europe/London"
}
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({
schedule: {cadence: 'weekly', day_of_week: 1, run_at: '07:00'},
timezone: 'Europe/London'
})
};
fetch('https://automations-api.vortexiq.ai/v1/automations/schedule/preview', 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/schedule/preview",
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([
'schedule' => [
'cadence' => 'weekly',
'day_of_week' => 1,
'run_at' => '07:00'
],
'timezone' => 'Europe/London'
]),
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://automations-api.vortexiq.ai/v1/automations/schedule/preview"
payload := strings.NewReader("{\n \"schedule\": {\n \"cadence\": \"weekly\",\n \"day_of_week\": 1,\n \"run_at\": \"07:00\"\n },\n \"timezone\": \"Europe/London\"\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://automations-api.vortexiq.ai/v1/automations/schedule/preview")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"schedule\": {\n \"cadence\": \"weekly\",\n \"day_of_week\": 1,\n \"run_at\": \"07:00\"\n },\n \"timezone\": \"Europe/London\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://automations-api.vortexiq.ai/v1/automations/schedule/preview")
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 \"schedule\": {\n \"cadence\": \"weekly\",\n \"day_of_week\": 1,\n \"run_at\": \"07:00\"\n },\n \"timezone\": \"Europe/London\"\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"contract_version": 1,
"data": {
"slots": [
"2026-10-19T06:00:00.000Z",
"2026-10-26T07:00:00.000Z"
]
}
}{
"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
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.
Body
Was this page helpful?