Skip to content

API reference

List rules

automation.ListRulesReadMember delegation

List workspace automations and your own personal automations, with the status of their latest runs. Execution definitions stay in Brigg; this view contains no SQL, action payloads or generated run contents.

POST/v1/operations/automation.ListRules
On this page

Access & visibility

Allow automation.ListRules on your API key.

Acting member required. Send Brigg-Act-As with an approved member account ID. The key supplies permissions; the member selects whose data is used.

The selected member must be active and approved by the credential. This selects whose private data is used; the credential supplies permissions. Private ownership and project boundaries still apply.

Set up authentication · Choose permissions

Request fields

Send a JSON object with the following fields. Required fields must be included; omit optional fields you do not need.

app_idstringOptional

Use the owning app's app_id from ListApps, or core for workspace-native automations. This is not a public operation namespace. Omit only when the request field is optional. workspace.ListApps.

limitintegerOptional

Maximum number of visible rules to return, newest-created first. Defaults to 50; this operation has no continuation cursor. Use app_id to narrow the catalogue.

Maximum: 50. Greater than 0.

Inspect before changing an automation

Find a rule with List rules, then read Get rule for its current configuration and recent runs. Preserve the rule_id and app_id pair. enabled controls future trigger handling; it is not a report that an earlier run succeeded.

Check can_manage before offering an edit or delete action. Built-in locked rules may be visible without being editable. The public update can pause a rule with enabled: false. It cannot resume a rule or author new actions; perform those steps in Brigg.

Response

Returns 200 OK with a JSON body.

This operation has no continuation cursor. An empty items array means no matching visible results were returned.

This is a bounded operational view, not a full export or change feed. If the result reaches limit, additional matching rules may exist. Use an app filter for a narrower view; do not invent a cursor or offset.

itemsarray of Automation ruleRequired

Rules visible to the acting member, optionally restricted to app_id and bounded by limit. This operation has no cursor pagination.

Item fields
rule_idstringRequired

Rule ID returned by the rule catalogue; use it with GetRule or UpdateRule.

app_idstringRequired

App that owns the rule. This is an app ID, not a public operation namespace.

descriptionstring or nullOptional

Descriptive text.

triggerobjectOptional

Event or schedule that starts this rule; the fields depend on type.

Nested fields
typestringRequired

Type identifying which variant of this model applies.

Allowed: "on_cron", "on_create", "on_update", "on_delete", "on_message".

schedulestringOptional

Cron expression for an on_cron trigger, typically minute hour day-of-month month day-of-week. For example, 0 9 * * 1-5 runs at 09:00 on weekdays in timezone. Not present on record-change triggers.

timezonestringOptional

IANA time zone, for example Europe/Oslo.

resource_typestringOptional

Resource type whose changes can trigger this automation.

fieldsarray of stringOptional

Record fields whose changes the trigger observes.

transitionobjectOptional

Field-value transition that qualifies a record change.

Nested fields
fieldstringRequired

Record field whose change the trigger observes.

tostring or boolean or numberRequired

Destination value that the field must change to.

channelstringOptional

Communication channel to which this trigger applies.

enabledbooleanRequired

Whether new matching events can start this rule. It does not report the outcome of past runs.

lockedbooleanRequired

Built-in: neither disabled nor deleted.

scopestringRequired

org for an org-level rule, mine for the caller's own.

can_managebooleanRequired

Whether the acting member can manage this rule. Locked built-in rules cannot be disabled or deleted.

created_atnumberRequired

Creation time in Unix milliseconds.

last_runobject or nullRequired

Most recent execution summary, or null if the rule has never run.

Nested fields
run_idstringOptional

Run identifier.

rule_idstringOptional

Rule identifier.

app_idstringOptional

App identifier.

trigger_typestringOptional

Trigger category identifying how the automation starts.

statusstringOptional

ok / partial / error / skipped — the roll-up over the rule's actions.

fired_atnumberOptional

Time of this trigger activation, in Unix milliseconds.

Errors & retries

This operation reads data. It needs no idempotency key and can be retried after a transient failure.

For rate limits, follow the server’s retry guidance and back off. See HTTP errors and safe retries and limits.

HTTP status Code What to do
400 invalid_json Send a JSON object with Content-Type: application/json.
400 invalid_input Check the request fields and types.
401 invalid_key The workspace API key is missing, invalid or revoked.
403 forbidden Check the key’s operation and resource grants. Supply Brigg-Act-As with a member authorized by the key’s delegation grant. The selected member must be active and approved by the credential. This selects whose private data is used; the credential supplies permissions. Private ownership and project boundaries still apply.
404 not_found The requested operation or resource is not available to this credential.
429 rate_limited Wait for Retry-After before retrying.

Next steps

Download OpenAPI · Versioning & retirement

JSON schemas

Use the complete schemas for validation or client generation.

Full request JSON schema
{
  "type": "object",
  "properties": {
    "app_id": {
      "type": "string",
      "description": "Use the owning app's app_id from ListApps, or core for workspace-native automations. This is not a public operation namespace. Omit only when the request field is optional. [workspace.ListApps](/developers/reference/workspace/ListApps)."
    },
    "limit": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 50,
      "description": "Maximum number of visible rules to return, newest-created first. Defaults to 50; this operation has no continuation cursor. Use app_id to narrow the catalogue."
    }
  },
  "additionalProperties": false,
  "examples": [
    {
      "app_id": "core",
      "limit": 20
    }
  ]
}
Full response JSON schema
{
  "type": "object",
  "properties": {
    "items": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "rule_id": {
            "type": "string",
            "description": "Rule ID returned by the rule catalogue; use it with GetRule or UpdateRule.",
            "examples": [
              "rule_follow_up"
            ]
          },
          "app_id": {
            "type": "string",
            "description": "App that owns the rule. This is an app ID, not a public operation namespace.",
            "examples": [
              "core"
            ]
          },
          "description": {
            "type": [
              "string",
              "null"
            ],
            "description": "Descriptive text.",
            "examples": [
              "Create a follow-up task when a deal changes stage."
            ]
          },
          "trigger": {
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "on_cron",
                  "on_create",
                  "on_update",
                  "on_delete",
                  "on_message"
                ],
                "description": "Type identifying which variant of this model applies."
              },
              "schedule": {
                "type": "string",
                "description": "Cron expression for an on_cron trigger, typically minute hour day-of-month month day-of-week. For example, 0 9 * * 1-5 runs at 09:00 on weekdays in timezone. Not present on record-change triggers."
              },
              "timezone": {
                "type": "string",
                "description": "IANA time zone, for example Europe/Oslo."
              },
              "resource_type": {
                "type": "string",
                "description": "Resource type whose changes can trigger this automation."
              },
              "fields": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": "Record fields whose changes the trigger observes."
              },
              "transition": {
                "type": "object",
                "properties": {
                  "field": {
                    "type": "string",
                    "description": "Record field whose change the trigger observes."
                  },
                  "to": {
                    "type": [
                      "string",
                      "boolean",
                      "number"
                    ],
                    "description": "Destination value that the field must change to."
                  }
                },
                "required": [
                  "field",
                  "to"
                ],
                "additionalProperties": false,
                "description": "Field-value transition that qualifies a record change."
              },
              "channel": {
                "type": "string",
                "description": "Communication channel to which this trigger applies."
              }
            },
            "required": [
              "type"
            ],
            "additionalProperties": false,
            "description": "Event or schedule that starts this rule; the fields depend on type.",
            "examples": [
              {
                "type": "on_update",
                "resource_type": "core:Deal",
                "fields": [
                  "stage"
                ]
              }
            ]
          },
          "enabled": {
            "type": "boolean",
            "description": "Whether new matching events can start this rule. It does not report the outcome of past runs.",
            "examples": [
              true
            ]
          },
          "locked": {
            "type": "boolean",
            "description": "Built-in: neither disabled nor deleted.",
            "examples": [
              false
            ]
          },
          "scope": {
            "type": "string",
            "description": "`org` for an org-level rule, `mine` for the caller's own.",
            "examples": [
              "org"
            ]
          },
          "can_manage": {
            "type": "boolean",
            "description": "Whether the acting member can manage this rule. Locked built-in rules cannot be disabled or deleted.",
            "examples": [
              true
            ]
          },
          "created_at": {
            "type": "number",
            "description": "Creation time in Unix milliseconds."
          },
          "last_run": {
            "type": [
              "object",
              "null"
            ],
            "properties": {
              "run_id": {
                "type": "string",
                "description": "Run identifier."
              },
              "rule_id": {
                "type": "string",
                "description": "Rule identifier."
              },
              "app_id": {
                "type": "string",
                "description": "App identifier."
              },
              "trigger_type": {
                "type": "string",
                "description": "Trigger category identifying how the automation starts."
              },
              "status": {
                "type": "string",
                "description": "`ok` / `partial` / `error` / `skipped` — the roll-up over the rule's actions."
              },
              "fired_at": {
                "type": "number",
                "description": "Time of this trigger activation, in Unix milliseconds."
              }
            },
            "additionalProperties": false,
            "description": "Most recent execution summary, or null if the rule has never run.",
            "examples": [
              null
            ]
          }
        },
        "required": [
          "rule_id",
          "app_id",
          "enabled",
          "locked",
          "scope",
          "can_manage",
          "created_at",
          "last_run"
        ],
        "additionalProperties": false,
        "title": "Automation rule"
      },
      "description": "Rules visible to the acting member, optionally restricted to app_id and bounded by limit. This operation has no cursor pagination."
    }
  },
  "required": [
    "items"
  ],
  "additionalProperties": false,
  "examples": [
    {
      "items": [
        {
          "rule_id": "rule_follow_up",
          "app_id": "core",
          "description": "Create a follow-up task when a deal changes stage.",
          "trigger": {
            "type": "on_update",
            "resource_type": "core:Deal",
            "fields": [
              "stage"
            ]
          },
          "enabled": true,
          "locked": false,
          "scope": "org",
          "can_manage": true,
          "created_at": 1794301200000,
          "last_run": {
            "run_id": "run_follow_up_1",
            "rule_id": "rule_follow_up",
            "app_id": "core",
            "trigger_type": "on_update",
            "status": "error",
            "fired_at": 1794387600000
          }
        }
      ]
    }
  ]
}

Search by operation name or what you want to build.

Use arrow keys to browse. Enter opens a result.