Get automation canvas
curl --request GET \
--url https://automations-api.vortexiq.ai/v1/automations/{automationId}/canvas \
--header 'Authorization: Bearer <token>'import requests
url = "https://automations-api.vortexiq.ai/v1/automations/{automationId}/canvas"
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/{automationId}/canvas', 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}/canvas",
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/{automationId}/canvas"
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/{automationId}/canvas")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://automations-api.vortexiq.ai/v1/automations/{automationId}/canvas")
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": {
"canvas": {
"nodes": [
{
"name": "Daily",
"type": "n8n-nodes-base.scheduleTrigger",
"kind": "trigger",
"disposition": "run",
"reason": null,
"position": [
0,
0
],
"disabled": false,
"outputs": [
null
],
"inputs": 0,
"subtitle": "every day at 07:00"
},
{
"name": "Products",
"type": "n8n-nodes-base.httpRequest",
"kind": "step",
"disposition": "run",
"reason": null,
"position": [
200,
0
],
"disabled": false,
"outputs": [
null
],
"inputs": 1,
"subtitle": "GET: products.json"
}
],
"connections": [
{
"from": "Daily",
"output": 0,
"to": "Products",
"input": 0,
"type": "main"
},
{
"from": "Products",
"output": 0,
"to": "Summary",
"input": 0,
"type": "main"
}
],
"notes": [],
"bounds": {
"x": -40,
"y": 0,
"width": 580,
"height": 160
},
"trigger": {
"node": "Daily",
"kind": "schedule",
"rule": "every day at 07:00",
"timezone": null
},
"timezone_origin": "store"
}
}
}{
"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": {}
}Get automation canvas
A workflow automation drawn as n8n draws it, from its own copy of the workflow, so it still answers after the
import is deleted. Answers 404 for an automation that is not a workflow.
Needs the automations:read scope.
GET
/
v1
/
automations
/
{automationId}
/
canvas
Get automation canvas
curl --request GET \
--url https://automations-api.vortexiq.ai/v1/automations/{automationId}/canvas \
--header 'Authorization: Bearer <token>'import requests
url = "https://automations-api.vortexiq.ai/v1/automations/{automationId}/canvas"
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/{automationId}/canvas', 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}/canvas",
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/{automationId}/canvas"
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/{automationId}/canvas")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://automations-api.vortexiq.ai/v1/automations/{automationId}/canvas")
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": {
"canvas": {
"nodes": [
{
"name": "Daily",
"type": "n8n-nodes-base.scheduleTrigger",
"kind": "trigger",
"disposition": "run",
"reason": null,
"position": [
0,
0
],
"disabled": false,
"outputs": [
null
],
"inputs": 0,
"subtitle": "every day at 07:00"
},
{
"name": "Products",
"type": "n8n-nodes-base.httpRequest",
"kind": "step",
"disposition": "run",
"reason": null,
"position": [
200,
0
],
"disabled": false,
"outputs": [
null
],
"inputs": 1,
"subtitle": "GET: products.json"
}
],
"connections": [
{
"from": "Daily",
"output": 0,
"to": "Products",
"input": 0,
"type": "main"
},
{
"from": "Products",
"output": 0,
"to": "Summary",
"input": 0,
"type": "main"
}
],
"notes": [],
"bounds": {
"x": -40,
"y": 0,
"width": 580,
"height": 160
},
"trigger": {
"node": "Daily",
"kind": "schedule",
"rule": "every day at 07:00",
"timezone": null
},
"timezone_origin": "store"
}
}
}{
"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