from engini import Engini
client = Engini() # reads ENGINI_API_KEY
errored = client.triggers.list(status="errored")import { Engini } from "@engini/sdk";
const client = new Engini(); // reads ENGINI_API_KEY
const errored = await client.triggers.list({ status: "errored" });engini triggers list --status errored --jsonconst options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.engini.io/v1/triggers', 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.engini.io/v1/triggers",
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://api.engini.io/v1/triggers"
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://api.engini.io/v1/triggers")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.engini.io/v1/triggers")
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{
"items": [
{
"kind": "api",
"status": "enabled",
"id": "<string>",
"trigger_slug": "<string>",
"connection_id": 123,
"activity_id": 123,
"destination_id": 123,
"dedupe_window_hours": 123,
"status_reason": "max_consecutive_failures",
"blocked_since": "2023-11-07T05:31:56Z",
"last_event_at": "2023-11-07T05:31:56Z",
"last_error_at": "2023-11-07T05:31:56Z",
"last_error": "<string>",
"next_run_at": "2023-11-07T05:31:56Z",
"subscription_count": 123,
"created_at": "2023-11-07T05:31:56Z",
"config": "<unknown>",
"schedule": {
"frequency": "seconds",
"interval": 123,
"start_date": "2023-11-07T05:31:56Z",
"start_time": "<string>",
"week_days": [
123
],
"time_frames": [
{
"start_hour": "<string>",
"end_hour": "<string>",
"every_minutes": 123
}
],
"effective": {
"frequency": "seconds",
"interval": 123,
"clamped": true,
"min_interval_minutes": 123
}
},
"listen_columns": [
"<string>"
],
"webhook_url": "<string>"
}
],
"totalCount": 123,
"offset": 123,
"top": 123
}{
"errorCode": "<string>",
"message": "<string>",
"requestId": "<string>",
"timestamp": "<string>",
"details": [
{
"field": "<string>",
"issue": "<string>"
}
]
}{
"errorCode": "<string>",
"message": "<string>",
"requestId": "<string>",
"timestamp": "<string>",
"details": [
{
"field": "<string>",
"issue": "<string>"
}
]
}{
"errorCode": "<string>",
"message": "<string>",
"requestId": "<string>",
"timestamp": "<string>",
"details": [
{
"field": "<string>",
"issue": "<string>"
}
]
}{
"errorCode": "<string>",
"message": "<string>",
"requestId": "<string>",
"timestamp": "<string>",
"details": [
{
"field": "<string>",
"issue": "<string>"
}
]
}{
"errorCode": "<string>",
"message": "<string>",
"requestId": "<string>",
"timestamp": "<string>",
"details": [
{
"field": "<string>",
"issue": "<string>"
}
]
}{
"errorCode": "<string>",
"message": "<string>",
"requestId": "<string>",
"timestamp": "<string>",
"details": [
{
"field": "<string>",
"issue": "<string>"
}
]
}List triggers
The account’s own API triggers, newest first. status filters on the DERIVED status, not the stored column - an instance auto-blocked by the failure guard is errored here even though nothing wrote that to its row, which is the whole point of deriving it. Pass include=workflow to append the account’s designer-built triggers as well; those carry kind: “workflow” and a wf_ id, and are read-only - no route here operates on one. The response is one concatenated sequence - every API trigger, then the designer-built tail - with offset/top split across both halves, so a page never holds more than top items and a sequential walk visits every row exactly once, on either side of the boundary. applicationSlug narrows to instances whose trigger step belongs to that application (matched on the trigger step’s own application, not the connection it happens to be pointed at - the same way PATCH re-pointing a connection derives the application); with include=workflow it narrows the designer tail the same way. An unrecognised slug returns an empty page rather than 400, since unlike status/include this is not a closed enum a typo could be confused with a different valid value.
from engini import Engini
client = Engini() # reads ENGINI_API_KEY
errored = client.triggers.list(status="errored")import { Engini } from "@engini/sdk";
const client = new Engini(); // reads ENGINI_API_KEY
const errored = await client.triggers.list({ status: "errored" });engini triggers list --status errored --jsonconst options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.engini.io/v1/triggers', 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.engini.io/v1/triggers",
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://api.engini.io/v1/triggers"
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://api.engini.io/v1/triggers")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.engini.io/v1/triggers")
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{
"items": [
{
"kind": "api",
"status": "enabled",
"id": "<string>",
"trigger_slug": "<string>",
"connection_id": 123,
"activity_id": 123,
"destination_id": 123,
"dedupe_window_hours": 123,
"status_reason": "max_consecutive_failures",
"blocked_since": "2023-11-07T05:31:56Z",
"last_event_at": "2023-11-07T05:31:56Z",
"last_error_at": "2023-11-07T05:31:56Z",
"last_error": "<string>",
"next_run_at": "2023-11-07T05:31:56Z",
"subscription_count": 123,
"created_at": "2023-11-07T05:31:56Z",
"config": "<unknown>",
"schedule": {
"frequency": "seconds",
"interval": 123,
"start_date": "2023-11-07T05:31:56Z",
"start_time": "<string>",
"week_days": [
123
],
"time_frames": [
{
"start_hour": "<string>",
"end_hour": "<string>",
"every_minutes": 123
}
],
"effective": {
"frequency": "seconds",
"interval": 123,
"clamped": true,
"min_interval_minutes": 123
}
},
"listen_columns": [
"<string>"
],
"webhook_url": "<string>"
}
],
"totalCount": 123,
"offset": 123,
"top": 123
}{
"errorCode": "<string>",
"message": "<string>",
"requestId": "<string>",
"timestamp": "<string>",
"details": [
{
"field": "<string>",
"issue": "<string>"
}
]
}{
"errorCode": "<string>",
"message": "<string>",
"requestId": "<string>",
"timestamp": "<string>",
"details": [
{
"field": "<string>",
"issue": "<string>"
}
]
}{
"errorCode": "<string>",
"message": "<string>",
"requestId": "<string>",
"timestamp": "<string>",
"details": [
{
"field": "<string>",
"issue": "<string>"
}
]
}{
"errorCode": "<string>",
"message": "<string>",
"requestId": "<string>",
"timestamp": "<string>",
"details": [
{
"field": "<string>",
"issue": "<string>"
}
]
}{
"errorCode": "<string>",
"message": "<string>",
"requestId": "<string>",
"timestamp": "<string>",
"details": [
{
"field": "<string>",
"issue": "<string>"
}
]
}{
"errorCode": "<string>",
"message": "<string>",
"requestId": "<string>",
"timestamp": "<string>",
"details": [
{
"field": "<string>",
"issue": "<string>"
}
]
}Authorizations
Enter your JWT token
Query Parameters
Optional filter limiting results to one application's triggers.
Optional filter limiting results to triggers on one connection.
Optional derived-status filter: enabled, disabled or errored.
Pass workflow to also return designer-built triggers. Any other value 400s.
Zero-based index of the first item to return.
Maximum number of items to return.
Response
A paginated list of trigger instances, each with its derived status and parameter blocks.
Offset-based paginated wrapper for a list of items.
The items in the current page.
Show child attributes
Show child attributes
Total number of items available across all pages.
Number of items skipped before this page (the requested offset).
Maximum number of items requested for this page.