Execute an automation manually
curl --request POST \
--url https://api.getgranite.ai/api/organizations/{org_id}/automations/{run_id}/execute \
--header 'Content-Type: application/json' \
--data '
{
"parameters": [
{
"name": "<string>",
"value": "<unknown>"
}
],
"timeout": 300
}
'import requests
url = "https://api.getgranite.ai/api/organizations/{org_id}/automations/{run_id}/execute"
payload = {
"parameters": [
{
"name": "<string>",
"value": "<unknown>"
}
],
"timeout": 300
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({parameters: [{name: '<string>', value: '<unknown>'}], timeout: 300})
};
fetch('https://api.getgranite.ai/api/organizations/{org_id}/automations/{run_id}/execute', 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://api.getgranite.ai/api/organizations/{org_id}/automations/{run_id}/execute",
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([
'parameters' => [
[
'name' => '<string>',
'value' => '<unknown>'
]
],
'timeout' => 300
]),
CURLOPT_HTTPHEADER => [
"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://api.getgranite.ai/api/organizations/{org_id}/automations/{run_id}/execute"
payload := strings.NewReader("{\n \"parameters\": [\n {\n \"name\": \"<string>\",\n \"value\": \"<unknown>\"\n }\n ],\n \"timeout\": 300\n}")
req, _ := http.NewRequest("POST", url, payload)
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://api.getgranite.ai/api/organizations/{org_id}/automations/{run_id}/execute")
.header("Content-Type", "application/json")
.body("{\n \"parameters\": [\n {\n \"name\": \"<string>\",\n \"value\": \"<unknown>\"\n }\n ],\n \"timeout\": 300\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.getgranite.ai/api/organizations/{org_id}/automations/{run_id}/execute")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"parameters\": [\n {\n \"name\": \"<string>\",\n \"value\": \"<unknown>\"\n }\n ],\n \"timeout\": 300\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"run_id": "<string>",
"execution_id": "<string>",
"return_code": 123,
"stdout": "<string>",
"stderr": "<string>",
"execution_time": 123,
"error": "<string>",
"data": {}
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Automation Execution
Execute
Execute an automation with optional parameters (authenticated users, no API key required)
POST
/
api
/
organizations
/
{org_id}
/
automations
/
{run_id}
/
execute
Execute an automation manually
curl --request POST \
--url https://api.getgranite.ai/api/organizations/{org_id}/automations/{run_id}/execute \
--header 'Content-Type: application/json' \
--data '
{
"parameters": [
{
"name": "<string>",
"value": "<unknown>"
}
],
"timeout": 300
}
'import requests
url = "https://api.getgranite.ai/api/organizations/{org_id}/automations/{run_id}/execute"
payload = {
"parameters": [
{
"name": "<string>",
"value": "<unknown>"
}
],
"timeout": 300
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({parameters: [{name: '<string>', value: '<unknown>'}], timeout: 300})
};
fetch('https://api.getgranite.ai/api/organizations/{org_id}/automations/{run_id}/execute', 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://api.getgranite.ai/api/organizations/{org_id}/automations/{run_id}/execute",
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([
'parameters' => [
[
'name' => '<string>',
'value' => '<unknown>'
]
],
'timeout' => 300
]),
CURLOPT_HTTPHEADER => [
"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://api.getgranite.ai/api/organizations/{org_id}/automations/{run_id}/execute"
payload := strings.NewReader("{\n \"parameters\": [\n {\n \"name\": \"<string>\",\n \"value\": \"<unknown>\"\n }\n ],\n \"timeout\": 300\n}")
req, _ := http.NewRequest("POST", url, payload)
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://api.getgranite.ai/api/organizations/{org_id}/automations/{run_id}/execute")
.header("Content-Type", "application/json")
.body("{\n \"parameters\": [\n {\n \"name\": \"<string>\",\n \"value\": \"<unknown>\"\n }\n ],\n \"timeout\": 300\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.getgranite.ai/api/organizations/{org_id}/automations/{run_id}/execute")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"parameters\": [\n {\n \"name\": \"<string>\",\n \"value\": \"<unknown>\"\n }\n ],\n \"timeout\": 300\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"run_id": "<string>",
"execution_id": "<string>",
"return_code": 123,
"stdout": "<string>",
"stderr": "<string>",
"execution_time": 123,
"error": "<string>",
"data": {}
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Body
application/json
Response
Successful Response
Execution result response.
Whether execution succeeded
RPA run ID
Execution record ID
Process return code
Standard output
Standard error
Execution time in seconds
Error message if failed
Structured output data from script
⌘I