curl --request GET \
--url https://automations-api.vortexiq.ai/v1/automations/templates \
--header 'Authorization: Bearer <token>'import requests
url = "https://automations-api.vortexiq.ai/v1/automations/templates"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://automations-api.vortexiq.ai/v1/automations/templates', 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/templates",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
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/templates"
req, _ := http.NewRequest("GET", 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.get("https://automations-api.vortexiq.ai/v1/automations/templates")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://automations-api.vortexiq.ai/v1/automations/templates")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"success": true,
"contract_version": 1,
"data": {
"templates": [
{
"id": "aws-cost-report",
"version": 2,
"platform": "aws",
"outcome": "run",
"name": "Cloud cost report · AWS",
"description": "See what your AWS account has been charged so far this month, by service, as AWS estimates it, and have the summary emailed to the addresses you give. Each run asks AWS Cost Explorer, which AWS charges about one US cent per request.",
"sentence": "See what your AWS account has been charged so far this month, by service, as AWS estimates it, and have the summary emailed to the addresses you give. Each run asks AWS Cost Explorer, which AWS charges about one US cent per request.",
"inputs": [
{
"max": 20,
"min": null,
"hint": "The email addresses the report goes to after every run, up to 20",
"kind": "list",
"name": "recipients",
"label": "Send the report to",
"format": "email",
"choices": null,
"default": null,
"example": "finance@example.com, you@example.com",
"required": true
}
],
"connections": [
"aws",
"email"
],
"reads": [
{
"tier": "billing",
"what": "what your AWS account was charged, by day and service"
}
],
"writes": [
"email.message:send"
],
"steps": [
{
"n": 1,
"kind": "Reads",
"note": "This operation is imported by the workflow and may be used when it runs.",
"gives": [],
"label": "Read daily costs by service (AWS Cost Explorer).",
"paged": false,
"title": "Read daily costs by service (AWS Cost Explorer).",
"checks": [],
"inputs": [],
"on_fail": null,
"connector": "aws",
"operation": "aws.costExplorer:getCostAndUsage"
},
{
"n": 2,
"kind": "Sends",
"note": "Sends the report to the addresses you give. An email changes nothing in your account, so it is sent on every run without asking you first.",
"gives": [],
"label": "send message",
"paged": false,
"title": "Send the report by email",
"checks": [],
"inputs": [],
"on_fail": null,
"connector": "email",
"operation": "email.message:send"
}
],
"result_view": {
"version": 1,
"title": "Costs by service",
"description": "What each service has cost so far this month, as AWS estimates it. Not your invoice.",
"collection": "records",
"columns": [
"service",
"cost"
],
"filters": [],
"page_size": 50
},
"uses_ai": false,
"has_approval_step": false,
"weight": "ordinary",
"default_schedule": {
"run_at": "09:15",
"cadence": "daily"
},
"status": "available",
"readiness": {
"ready": true,
"missing": []
},
"records_called": "service lines"
},
{
"id": "azure-cost-report",
"version": 2,
"platform": "azure",
"outcome": "run",
"name": "Cloud cost report · Azure",
"description": "See what your Azure subscription has been charged so far this billing period, by service, as Azure estimates it, and have the summary emailed to the addresses you give.",
"sentence": "See what your Azure subscription has been charged so far this billing period, by service, as Azure estimates it, and have the summary emailed to the addresses you give.",
"inputs": [
{
"max": 28,
"min": 1,
"hint": "The day of the month your Azure billing period starts, as your Azure invoice shows it. Leave 1 for calendar months. A period that starts on the 29th, 30th or 31st is not supported yet.",
"kind": "number",
"name": "billing_start_day",
"label": "Billing period starts on day",
"format": null,
"choices": null,
"default": 1,
"example": null,
"required": false
},
{
"max": 20,
"min": null,
"hint": "The email addresses the report goes to after every run, up to 20",
"kind": "list",
"name": "recipients",
"label": "Send the report to",
"format": "email",
"choices": null,
"default": null,
"example": "finance@example.com, you@example.com",
"required": true
}
],
"connections": [
"azure",
"email"
],
"reads": [
{
"tier": "billing",
"what": "what your Azure subscription was charged, by day and service"
}
],
"writes": [
"email.message:send"
],
"steps": [
{
"n": 1,
"kind": "Reads",
"note": "This operation is imported by the workflow and may be used when it runs.",
"gives": [],
"label": "Read daily costs by service (Azure Cost Management).",
"paged": false,
"title": "Read daily costs by service (Azure Cost Management).",
"checks": [],
"inputs": [],
"on_fail": null,
"connector": "azure",
"operation": "azure.costManagement:query"
},
{
"n": 2,
"kind": "Sends",
"note": "Sends the report to the addresses you give. An email changes nothing in your account, so it is sent on every run without asking you first.",
"gives": [],
"label": "send message",
"paged": false,
"title": "Send the report by email",
"checks": [],
"inputs": [],
"on_fail": null,
"connector": "email",
"operation": "email.message:send"
}
],
"result_view": {
"version": 1,
"title": "Costs by service",
"description": "What each service has cost so far this billing period, as Azure estimates it before tax. Not your invoice.",
"collection": "records",
"columns": [
"service",
"cost"
],
"filters": [],
"page_size": 50
},
"uses_ai": false,
"has_approval_step": false,
"weight": "ordinary",
"default_schedule": {
"run_at": "09:15",
"cadence": "daily"
},
"status": "available",
"readiness": {
"ready": true,
"missing": []
},
"records_called": "service lines"
}
],
"platforms": [
"shopify",
"bigcommerce"
],
"kinds": [
{
"kind": "aws",
"role": "store",
"name": "Amazon Web Services",
"noun": "account"
},
{
"kind": "azure",
"role": "store",
"name": "Microsoft Azure",
"noun": "account"
}
]
}
}{
"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": {}
}List templates
The templates your organisation can set up: for every platform it has a connected store or account on. Each
template says what it does, what it reads and writes, its inputs and default schedule, and whether it is ready
(readiness.ready). A template that needs a connection your organisation does not have yet says which in
readiness.
Pass a template’s id as template_id when you create an automation.
Needs the automations:read scope.
curl --request GET \
--url https://automations-api.vortexiq.ai/v1/automations/templates \
--header 'Authorization: Bearer <token>'import requests
url = "https://automations-api.vortexiq.ai/v1/automations/templates"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://automations-api.vortexiq.ai/v1/automations/templates', 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/templates",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
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/templates"
req, _ := http.NewRequest("GET", 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.get("https://automations-api.vortexiq.ai/v1/automations/templates")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://automations-api.vortexiq.ai/v1/automations/templates")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"success": true,
"contract_version": 1,
"data": {
"templates": [
{
"id": "aws-cost-report",
"version": 2,
"platform": "aws",
"outcome": "run",
"name": "Cloud cost report · AWS",
"description": "See what your AWS account has been charged so far this month, by service, as AWS estimates it, and have the summary emailed to the addresses you give. Each run asks AWS Cost Explorer, which AWS charges about one US cent per request.",
"sentence": "See what your AWS account has been charged so far this month, by service, as AWS estimates it, and have the summary emailed to the addresses you give. Each run asks AWS Cost Explorer, which AWS charges about one US cent per request.",
"inputs": [
{
"max": 20,
"min": null,
"hint": "The email addresses the report goes to after every run, up to 20",
"kind": "list",
"name": "recipients",
"label": "Send the report to",
"format": "email",
"choices": null,
"default": null,
"example": "finance@example.com, you@example.com",
"required": true
}
],
"connections": [
"aws",
"email"
],
"reads": [
{
"tier": "billing",
"what": "what your AWS account was charged, by day and service"
}
],
"writes": [
"email.message:send"
],
"steps": [
{
"n": 1,
"kind": "Reads",
"note": "This operation is imported by the workflow and may be used when it runs.",
"gives": [],
"label": "Read daily costs by service (AWS Cost Explorer).",
"paged": false,
"title": "Read daily costs by service (AWS Cost Explorer).",
"checks": [],
"inputs": [],
"on_fail": null,
"connector": "aws",
"operation": "aws.costExplorer:getCostAndUsage"
},
{
"n": 2,
"kind": "Sends",
"note": "Sends the report to the addresses you give. An email changes nothing in your account, so it is sent on every run without asking you first.",
"gives": [],
"label": "send message",
"paged": false,
"title": "Send the report by email",
"checks": [],
"inputs": [],
"on_fail": null,
"connector": "email",
"operation": "email.message:send"
}
],
"result_view": {
"version": 1,
"title": "Costs by service",
"description": "What each service has cost so far this month, as AWS estimates it. Not your invoice.",
"collection": "records",
"columns": [
"service",
"cost"
],
"filters": [],
"page_size": 50
},
"uses_ai": false,
"has_approval_step": false,
"weight": "ordinary",
"default_schedule": {
"run_at": "09:15",
"cadence": "daily"
},
"status": "available",
"readiness": {
"ready": true,
"missing": []
},
"records_called": "service lines"
},
{
"id": "azure-cost-report",
"version": 2,
"platform": "azure",
"outcome": "run",
"name": "Cloud cost report · Azure",
"description": "See what your Azure subscription has been charged so far this billing period, by service, as Azure estimates it, and have the summary emailed to the addresses you give.",
"sentence": "See what your Azure subscription has been charged so far this billing period, by service, as Azure estimates it, and have the summary emailed to the addresses you give.",
"inputs": [
{
"max": 28,
"min": 1,
"hint": "The day of the month your Azure billing period starts, as your Azure invoice shows it. Leave 1 for calendar months. A period that starts on the 29th, 30th or 31st is not supported yet.",
"kind": "number",
"name": "billing_start_day",
"label": "Billing period starts on day",
"format": null,
"choices": null,
"default": 1,
"example": null,
"required": false
},
{
"max": 20,
"min": null,
"hint": "The email addresses the report goes to after every run, up to 20",
"kind": "list",
"name": "recipients",
"label": "Send the report to",
"format": "email",
"choices": null,
"default": null,
"example": "finance@example.com, you@example.com",
"required": true
}
],
"connections": [
"azure",
"email"
],
"reads": [
{
"tier": "billing",
"what": "what your Azure subscription was charged, by day and service"
}
],
"writes": [
"email.message:send"
],
"steps": [
{
"n": 1,
"kind": "Reads",
"note": "This operation is imported by the workflow and may be used when it runs.",
"gives": [],
"label": "Read daily costs by service (Azure Cost Management).",
"paged": false,
"title": "Read daily costs by service (Azure Cost Management).",
"checks": [],
"inputs": [],
"on_fail": null,
"connector": "azure",
"operation": "azure.costManagement:query"
},
{
"n": 2,
"kind": "Sends",
"note": "Sends the report to the addresses you give. An email changes nothing in your account, so it is sent on every run without asking you first.",
"gives": [],
"label": "send message",
"paged": false,
"title": "Send the report by email",
"checks": [],
"inputs": [],
"on_fail": null,
"connector": "email",
"operation": "email.message:send"
}
],
"result_view": {
"version": 1,
"title": "Costs by service",
"description": "What each service has cost so far this billing period, as Azure estimates it before tax. Not your invoice.",
"collection": "records",
"columns": [
"service",
"cost"
],
"filters": [],
"page_size": 50
},
"uses_ai": false,
"has_approval_step": false,
"weight": "ordinary",
"default_schedule": {
"run_at": "09:15",
"cadence": "daily"
},
"status": "available",
"readiness": {
"ready": true,
"missing": []
},
"records_called": "service lines"
}
],
"platforms": [
"shopify",
"bigcommerce"
],
"kinds": [
{
"kind": "aws",
"role": "store",
"name": "Amazon Web Services",
"noun": "account"
},
{
"kind": "azure",
"role": "store",
"name": "Microsoft Azure",
"noun": "account"
}
]
}
}{
"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.
Query Parameters
Only the templates for this platform, such as shopify or bigcommerce.
What an automation runs on: a store's platform (shopify, bigcommerce), or an account a template runs on, such as a cloud account (aws).
^[a-z][a-z0-9_]{1,63}$"shopify"
1 also lists the templates whose automations start when the store sends an event, such as a stock change (their trigger). Without it they are left out.
1 Was this page helpful?