Skip to content
Scalekit Docs
Talk to an Engineer Dashboard

List available triggers Beta

GET/api/v1/connections/{connection_id}/triggers

This endpoint is in beta. Its request and response may change.

Lists every trigger the connection's app offers. A trigger that can't run on this connection is still listed, with available set to false and a reason and remedy. Each trigger says whether it's a webhook or polling trigger, which scopes it needs, which filters it takes in config_fields, and for a polling trigger its default and minimum interval.

Authorization

Authorization: Bearer $TOKEN, an access token from the client credentials grant. See Authentication.

Path parameters

connection_idstringrequired
ID of the connection, in this environment. Up to 64 characters.

Response 200

connection_uses_shared_appboolean
Whether the connection is configured to use Scalekit's shared provider app rather than your own. Read from the connection's saved configuration. When true, any trigger with platform_credentials UNSUPPORTED is unavailable until you add your own provider app to the connection.
triggersarray of object
Every trigger the connection's provider publishes, including unavailable ones. Check available on each before offering it.
Show 19 child attributes
availableboolean
Whether this trigger can run on this connection. False does not mean the trigger is unsupported by the provider — it means something about THIS connection prevents it, and reason and remedy say what.
config_fieldsarray of object
Values a subscription can set in its config map to narrow which events it receives. A config key not listed here is refused.
Show 5 child attributes
display_namestring
Human-readable label for the field.
help_textstring
Guidance on what to enter. Empty when the trigger provides none.
keystring
The key to send in a subscription's config map. Send it exactly as returned, without changing its case: a key that does not match is refused.
placeholderstring
Example value to show in an empty input. Empty when the trigger provides none.
requiredboolean
Whether a subscription must set this field to a non-empty value. A subscription request that omits a required field is refused.
default_interval_secondsinteger
Polling interval, in seconds, a subscription uses when it does not set interval_seconds. Zero for a webhook trigger.
delivery_scopestring (enum)
Whether this trigger delivers one event per connected account or one event for the whole connection, whatever accounts exist on it. Decides how the trigger is subscribed: an account-scoped trigger is subscribed on one connected account, a connection-scoped one on the connection itself, naming no account.
ACCOUNTCONNECTION
descriptionstring
What event the trigger reports.
display_namestring
Human-readable name of the trigger.
min_interval_secondsinteger
Shortest polling interval, in seconds, a subscription to this trigger may request. A lower interval_seconds is refused rather than rounded up. Zero for a webhook trigger, which has no interval.
modestring (enum)
How the trigger detects events. WEBHOOK - the provider sends each event to the connection's webhook URL, so the connection needs a webhook URL registered with the provider. POLL - Scalekit checks the provider on an interval, so a subscription can set interval_seconds.
WEBHOOKPOLL
namestring
Unique name of the trigger within its provider. Pass it as trigger_name when listing eligible accounts or creating a subscription.
platform_credentialsstring (enum)
Whether this trigger works on a connection that uses Scalekit's shared provider app. UNSUPPORTED means the connection needs your own provider app before this trigger can run; combine it with connection_uses_shared_app on the list response to decide whether to ask for one. UNSPECIFIED when the trigger declares a value this server does not recognise.
SUPPORTEDUNSUPPORTED
providerstring
The provider the trigger belongs to, the same as the connection's provider.
provides_bearer_secretboolean
Whether Scalekit generates this trigger's signing secret (Generate a signing secret) rather than you copying one from the provider's console. True only for providers that send no signature of their own. Always false for a polled trigger.
reasonstring
Why the trigger is unavailable on this connection. Populated whenever available is false.
refusal_codestring (enum)
The stable code of the connection-level rule that made this trigger unavailable. SHARED_APP — the connection uses Scalekit's shared provider app. POLL_CONNECTION_SCOPE — a polled trigger cannot be connection-scoped. UNSPECIFIED when the trigger is available, or when a rule without a code refused it; reason and remedy are populated either way.
SHARED_APPPOLL_CONNECTION_SCOPE
register_hintstring
Provider-specific guidance on where to register the connection's ingress URL in the provider's console, written by the connector author. At most 500 characters, with no control characters. Empty when the connector provides none, and always empty for a polled trigger.
remedystring
What to do to make the trigger available. Populated whenever available is false.
required_scopesarray of object
Permissions a connected account's grant must include to subscribe to this trigger. A subscription for an account whose grant lacks one of them is refused, naming the missing scope.
Show 2 child attributes
grantstring
Which grant channel must carry the scope. Some providers fan events out differently for a bot install than for a user install, so this is not merely descriptive.
scopestring
The provider's own name for the permission, exactly as it appears in their console.
requires_signing_secretboolean
Whether the provider signs this trigger's events with a secret you copy from the provider's console and sets on the connection's ingress endpoint. Always false for a polled trigger, which receives no inbound requests.
secret_hintstring
Provider-specific guidance on where the provider shows the signing secret to copy, written by the connector author. At most 500 characters, with no control characters. Empty when the connector provides none, and always empty for a polled trigger.

Errors

Every error has the same body: code, message and details. See Errors and rate limits.

400Invalid request - connection_id is not a valid connection ID
404Not found - the connection does not exist in this environment, or Triggers isn't turned on for your environment
500Internal error - the triggers for this connection could not be read; retry the request