Limited availability. The workflow API is currently enabled for selected sub-accounts only; any other sub-account receives 403 WORKFLOW_API_NOT_ENABLED_FOR_LOCATION.
Browse or fetch the action and trigger schemas available to a sub-account, so a definition can be built against real field names before saving.
Every response is paged and every entry carries its full field schema, including the assetReferences that say which fields must hold IDs of assets that already exist. Default page size is 20.
Narrow with types, which matches on the step type key and matches partially — email returns send_email as well as email. Use query instead to match names and descriptions too. Page with limit and skip.
Authorizations
Authorizationstringheaderrequired
Bearer authentication header of the form Bearer <token>, where <token> is your access token.
Comma-separated step type filters (max 50 terms). Each term matches any step type whose key contains it, so email returns send_email as well as email, and an exact key still matches itself. Matching looks only at the type key — not the name or description — so a step merely described as emailing something will not appear.
A term matching nothing is reported in notFound. Results are paged like any other request.
Example:email,add_contact_tag
kindstring
Restrict results to actions or triggers
Available optionsactiontrigger
Example:action
querystring
Free-text match over type, name and description — broader than types, which matches the type key only. Ignored when types is supplied.
Example:tag
limitnumber
Page size. Kept small by default because every entry carries its full field schema.
Default:20
Example:20
skipnumber
Number of results to skip before the page starts
Default:0
Example:0
Response
application/json
Successful response
locationIdstringrequired
Sub-account the catalog was scoped to
Example:ve9EPM428h8vShlRW1KT
totalnumberrequired
Total matching step types before paging
Example:1440
countnumberrequired
Number returned in this response
Example:20
skipnumberrequired
The skip this page started at — echoed back so a caller paging through can tell which slice it received without tracking the request.
Example:0
stepTypesobject[]required
The step types
stepTypes[].kindstringrequired
Whether this is an action or a trigger
Example:action
stepTypes[].typestringrequired
Type key to use in the definition
Example:add_contact_tag
stepTypes[].namestringrequired
Display name
Example:Add Contact Tag
stepTypes[].descriptionstring
What the step does
Example:Adds one or more tags to the contact
stepTypes[].categorystring
Grouping shown in the builder
Example:Contact
stepTypes[].providerstring
Whether the step is native or from a marketplace app
Example:native
stepTypes[].fieldsobject[]
Configurable fields. Returned in detail mode only.
stepTypes[].fields[].fieldstringrequired
Attribute name inside attributes
Example:tags
stepTypes[].fields[].fieldTypestringrequired
Value type
Example:array
stepTypes[].fields[].requiredbooleanrequired
Whether the step will not save without it
Example:true
stepTypes[].fields[].requiredEnforcementstring
Where a required: true obligation is actually enforced. Present only when it is builder-only, meaning the builder makes the omission unreachable but validation here does NOT reject it — the value is generated client-side and may belong in __customInputFields__ rather than under this field name. A successful validate or save is not evidence the field was present. Ordinary fields are unannotated.
Available optionsbuilder-and-irbuilder-only
Example:builder-only
stepTypes[].fields[].itemsTypestring
Element type when fieldType is array
Example:string
stepTypes[].fields[].titlestring
Human label
Example:Tags
stepTypes[].fields[].helpTextstring
Guidance shown next to the field
Example:Shown beneath the field in the builder
stepTypes[].fields[].optionsstring[]
Allowed values, when constrained
stepTypes[].fields[].assetTypestring
Set when this field must hold the ID of an existing asset of this type
Example:pipeline
stepTypes[].fields[].hasDynamicOptionsboolean
True when valid values must be looked up rather than hard-coded
Example:true
stepTypes[].assetReferencesobject[]
Assets this step references. Returned in detail mode only.
Triggers only. definitions is the filter catalogue: one entry per configurable filter, with its field, label, fieldType, required, allowed operators and valueSource. filtersComplete: false means that list is partial — do not treat it as exhaustive. For marketplace triggers feedNormalization: "incomplete" means the same thing: definitions is a lower bound, because the app declared filters this projection could not normalize. incompleteFields names filters with no derivable operators, which cannot be authored.
stepTypes[].triggerFilters.property name*any
Triggers only. definitions is the filter catalogue: one entry per configurable filter, with its field, label, fieldType, required, allowed operators and valueSource. filtersComplete: false means that list is partial — do not treat it as exhaustive. For marketplace triggers feedNormalization: "incomplete" means the same thing: definitions is a lower bound, because the app declared filters this projection could not normalize. incompleteFields names filters with no derivable operators, which cannot be authored.
notFoundobject[]required
types terms that matched no step type key
notFound[].typestringrequired
A types term that matched no step type key. Terms match partially, so this means nothing contained it — not that an exact key is missing.
Example:send_smss
warningsobject[]required
Non-blocking findings
warnings[].pathstring
Path within the definition
Example:actions[4]
warnings[].messagestring
What to be aware of
Example:Action 'orphan-step' has no incoming edges and may be unreachable.