---
title: "Lists Integration rules"
method: GET
path: "/apps/{app_id}/rules"
tags: ["rules"]
---

# Lists Integration rules

`GET /apps/{app_id}/rules`

## Path parameters

- `app_id` string, required

## Response `200`

Integration Rule list

- RuleResponse[]
  - union
    - HttpRuleResponse
      - `id` string
      - `appId` string
      - `version` string
      - `status` string
      - `created` number
      - `modified` number
      - `_links` object, nullable
      - `ruleType` 'http', required
      - `requestMode` string, required
      - `source` RuleSource, required
        - `channelFilter` string, required
        - `type` string, required
      - `target` object, required
        - `url` string, required
        - `headers` object[]
          - `name` string
          - `value` string
        - `signingKeyId` string, nullable
        - `enveloped` boolean, nullable
        - `format` string, required
    - IftttRuleResponse
      - `status` string
      - `ruleType` 'http/ifttt', required
      - `requestMode` string, required
      - `source` RuleSource, required
        - `channelFilter` string, required
        - `type` string, required
      - `target` object, required
        - `webhookKey` string, required
        - `eventName` string, required
      - `id` string
      - `appId` string
      - `version` string
      - `created` number
      - `modified` number
      - `_links` object, nullable
    - ZapierRuleResponse
      - `id` string
      - `appId` string
      - `version` string
      - `status` string
      - `created` number
      - `modified` number
      - `_links` object, nullable
      - `ruleType` 'http/zapier', required
      - `requestMode` string, required
      - `source` RuleSource, required
        - `channelFilter` string, required
        - `type` string, required
      - `target` object, required
        - `url` string, required
        - `headers` object[]
          - `name` string
          - `value` string
        - `signingKeyId` string, nullable
    - CloudflareWorkerRuleResponse
      - `id` string
      - `appId` string
      - `version` string
      - `status` string
      - `created` number
      - `modified` number
      - `_links` object, nullable
      - `ruleType` 'http/cloudflare-worker', required
      - `requestMode` string, required
      - `source` RuleSource, required
        - `channelFilter` string, required
        - `type` string, required
      - `target` object, required
        - `url` string, required
        - `headers` object[]
          - `name` string
          - `value` string
        - `signingKeyId` string, nullable
    - AzureFunctionRuleResponse
      - `id` string
      - `appId` string
      - `version` string
      - `status` string
      - `created` number
      - `modified` number
      - `_links` object, nullable
      - `ruleType` 'http/azure-function', required
      - `requestMode` string, required
      - `source` RuleSource, required
        - `channelFilter` string, required
        - `type` string, required
      - `target` object, required
        - `azureAppId` string, required
        - `azureFunctionName` string, required
        - `headers` object[]
          - `name` string
          - `value` string
        - `signingKeyId` string, nullable
        - `enveloped` boolean, nullable
        - `format` string
    - GoogleCloudFunctionRuleResponse
      - `id` string
      - `appId` string
      - `version` string
      - `status` string
      - `created` number
      - `modified` number
      - `_links` object, nullable
      - `ruleType` 'http/google-cloud-function', required
      - `requestMode` string, required
      - `source` RuleSource, required
        - `channelFilter` string, required
        - `type` string, required
      - `target` object, required
        - `region` string, required
        - `projectId` string, required
        - `functionName` string, required
        - `headers` object[]
          - `name` string
          - `value` string
        - `signingKeyId` string, nullable
        - `enveloped` boolean, nullable
        - `format` string
    - AwsLambdaRuleResponse
      - `id` string
      - `appId` string
      - `version` string
      - `status` string
      - `created` number
      - `modified` number
      - `_links` object, nullable
      - `ruleType` 'aws/lambda', required
      - `requestMode` string, required
      - `source` RuleSource, required
        - `channelFilter` string, required
        - `type` string, required
      - `target` object, required
        - `region` string, required
        - `functionName` string, required
        - `authentication` union, required
          - AwsAccessKeysResponse
            - `authenticationMode` 'credentials'
            - `accessKeyId` string
          - AwsAssumeRole
            - `authenticationMode` 'assumeRole'
            - `assumeRoleArn` string, required
        - `enveloped` boolean, nullable
        - `format` string
    - AwsKinesisRuleResponse
      - `id` string
      - `appId` string
      - `version` string
      - `status` string
      - `created` number
      - `modified` number
      - `_links` object, nullable
      - `ruleType` 'aws/kinesis', required
      - `requestMode` string, required
      - `source` RuleSource, required
        - `channelFilter` string, required
        - `type` string, required
      - `target` object, required
        - `region` string, required
        - `streamName` string, required
        - `partitionKey` string, required
        - `authentication` union, required
          - AwsAccessKeysResponse
            - `authenticationMode` 'credentials'
            - `accessKeyId` string
          - AwsAssumeRole
            - `authenticationMode` 'assumeRole'
            - `assumeRoleArn` string, required
        - `enveloped` boolean, nullable
        - `format` string, required
    - AwsSqsRuleResponse
      - `id` string
      - `appId` string
      - `version` string
      - `status` string
      - `created` number
      - `modified` number
      - `_links` object, nullable
      - `ruleType` 'aws/sqs', required
      - `requestMode` string, required
      - `source` RuleSource, required
        - `channelFilter` string, required
        - `type` string, required
      - `target` object, required
        - `region` string, required
        - `awsAccountId` string, required
        - `queueName` string, required
        - `authentication` union, required
          - AwsAccessKeysResponse
            - `authenticationMode` 'credentials'
            - `accessKeyId` string
          - AwsAssumeRole
            - `authenticationMode` 'assumeRole'
            - `assumeRoleArn` string, required
        - `enveloped` boolean, nullable
        - `format` string
    - BeforePublishAwsLambdaRuleResponse
      - `id` string
      - `appId` string
      - `version` string
      - `status` string
      - `created` number
      - `modified` number
      - `_links` object, nullable
      - `ruleType` 'aws/lambda/before-publish', required
      - `source` ChatMessageRuleSource
        - `type` 'chat.message', required
      - `invocationMode` 'BEFORE_PUBLISH', required
      - `beforePublishConfig` object, required
        - `retryTimeout` integer, required
        - `maxRetries` integer, required
        - `failedAction` 'REJECT' | 'PUBLISH', required
        - `tooManyRequestsAction` 'RETRY' | 'FAIL', required
      - `chatRoomFilter` string
      - `target` object, required
        - `region` string, required
        - `functionName` string, required
        - `authentication` union, required
          - AwsAccessKeysResponse
            - `authenticationMode` 'credentials'
            - `accessKeyId` string
          - AwsAssumeRole
            - `authenticationMode` 'assumeRole'
            - `assumeRoleArn` string, required
    - BeforePublishWebhookRuleResponse
      - `id` string
      - `appId` string
      - `version` string
      - `status` string
      - `created` number
      - `modified` number
      - `_links` object, nullable
      - `ruleType` 'http/before-publish', required
      - `source` ChatMessageRuleSource
        - `type` 'chat.message', required
      - `invocationMode` 'BEFORE_PUBLISH', required
      - `beforePublishConfig` object, required
        - `retryTimeout` integer, required
        - `maxRetries` integer, required
        - `failedAction` 'REJECT' | 'PUBLISH', required
        - `tooManyRequestsAction` 'RETRY' | 'FAIL', required
      - `chatRoomFilter` string
      - `target` object, required
        - `url` string, required
        - `headers` object[]
          - `name` string
          - `value` string
        - `format` string
    - AmqpRuleResponse
      - `id` string
      - `appId` string
      - `version` string
      - `status` string
      - `created` number
      - `modified` number
      - `_links` object, nullable
      - `ruleType` 'amqp', required
      - `requestMode` string, required
      - `source` RuleSource, required
        - `channelFilter` string, required
        - `type` string, required
      - `target` object, required
        - `queueId` string, required
        - `headers` object[]
          - `name` string
          - `value` string
        - `enveloped` boolean, nullable
        - `format` string
    - AmqpExternalRuleResponse
      - `id` string
      - `appId` string
      - `version` string
      - `status` string
      - `created` number
      - `modified` number
      - `_links` object, nullable
      - `ruleType` 'amqp/external', required
      - `requestMode` string, required
      - `source` RuleSource, required
        - `channelFilter` string, required
        - `type` string, required
      - `target` object, required
        - `url` string, required
        - `routingKey` string, required
        - `exchange` string
        - `mandatoryRoute` boolean, required
        - `persistentMessages` boolean, required
        - `messageTtl` integer
        - `headers` object[]
          - `name` string
          - `value` string
        - `enveloped` boolean, nullable
        - `format` string
    - KafkaRuleResponse
      - `id` string
      - `appId` string
      - `version` string
      - `status` string
      - `created` number
      - `modified` number
      - `_links` object, nullable
      - `ruleType` 'kafka', required
      - `requestMode` string, required
      - `source` RuleSource, required
        - `channelFilter` string, required
        - `type` string, required
      - `target` object, required
        - `routingKey` string, required
        - `brokers` string[], required
        - `auth` object, required
          - `sasl` object
            - `mechanism` 'plain' | 'scram-sha-256' | 'scram-sha-512'
            - `username` string
            - `password` string
        - `enveloped` boolean, nullable
        - `format` string
    - PulsarRuleResponse
      - `id` string
      - `appId` string
      - `version` string
      - `status` string
      - `created` number
      - `modified` number
      - `_links` object, nullable
      - `ruleType` 'pulsar', required
      - `requestMode` string, required
      - `source` RuleSource, required
        - `channelFilter` string, required
        - `type` string, required
      - `target` object, required
        - `routingKey` string
        - `topic` string
        - `serviceUrl` string
        - `tlsTrustCerts` string[], nullable
        - `authentication` PulsarTokenAuth
          - `authenticationMode` 'token', required
          - `token` string, required
        - `enveloped` boolean, nullable
        - `format` string
    - IngressPostgresOutboxRuleResponse
      - `id` string
      - `appId` string
      - `version` string
      - `status` string
      - `created` number
      - `modified` number
      - `_links` object, nullable
      - `ruleType` 'ingress-postgres-outbox', required
      - `target` object, required
        - `url` string
        - `outboxTableSchema` string
        - `outboxTableName` string
        - `nodesTableSchema` string
        - `nodesTableName` string
        - `sslMode` 'prefer' | 'require' | 'verify-ca' | 'verify-full'
        - `sslRootCert` string, nullable
        - `primarySite` string
        - `provisionedCapacity` integer
    - IngressMongodbRuleResponse
      - `id` string
      - `appId` string
      - `version` string
      - `status` string
      - `created` number
      - `modified` number
      - `_links` object, nullable
      - `ruleType` 'ingress/mongodb', required
      - `target` object, required
        - `watch` 'COLLECTION'
        - `url` string
        - `collection` string
        - `database` string
        - `pipeline` string
        - `fullDocument` 'updateLookup' | 'whenAvailable' | 'off'
        - `fullDocumentBeforeChange` 'whenAvailable' | 'off'
        - `primarySite` string
        - `provisionedCapacity` integer
    - HiveTextModelOnlyRuleResponse
      - `id` string
      - `appId` string
      - `version` string
      - `status` string
      - `created` number
      - `modified` number
      - `_links` object, nullable
      - `ruleType` 'hive/text-model-only', required
      - `source` ChatMessageRuleSource, required
        - `type` 'chat.message', required
      - `beforePublishConfig` object, required
        - `retryTimeout` integer, required
        - `maxRetries` integer, required
        - `failedAction` 'REJECT' | 'PUBLISH', required
        - `tooManyRequestsAction` 'RETRY' | 'FAIL', required
      - `chatRoomFilter` string
      - `invocationMode` 'BEFORE_PUBLISH', required
      - `target` object, required
        - `apiKey` string, required
        - `modelUrl` string
        - `thresholds` object
    - HiveDashboardRuleResponse
      - `id` string
      - `appId` string
      - `version` string
      - `status` string
      - `created` number
      - `modified` number
      - `_links` object, nullable
      - `ruleType` 'hive/dashboard', required
      - `source` ChatMessageRuleSource
        - `type` 'chat.message', required
      - `invocationMode` 'AFTER_PUBLISH', required
      - `chatRoomFilter` string
      - `target` object, required
        - `apiKey` string, required
        - `checkWatchLists` boolean, nullable
    - BodyguardTextModerationRuleResponse
      - `id` string
      - `appId` string
      - `version` string
      - `status` string
      - `created` number
      - `modified` number
      - `_links` object, nullable
      - `ruleType` 'bodyguard/text-moderation', required
      - `source` ChatMessageRuleSource, required
        - `type` 'chat.message', required
      - `invocationMode` 'BEFORE_PUBLISH', required
      - `beforePublishConfig` object, required
        - `retryTimeout` integer, required
        - `maxRetries` integer, required
        - `failedAction` 'REJECT' | 'PUBLISH', required
        - `tooManyRequestsAction` 'RETRY' | 'FAIL', required
      - `chatRoomFilter` string
      - `target` object, required
        - `apiKey` string, required
        - `apiUrl` string
        - `channelId` string
        - `defaultLanguage` string
    - TisaneTextModerationRuleResponse
      - `id` string
      - `appId` string
      - `version` string
      - `status` string
      - `created` number
      - `modified` number
      - `_links` object, nullable
      - `ruleType` 'tisane/text-moderation', required
      - `source` ChatMessageRuleSource, required
        - `type` 'chat.message', required
      - `beforePublishConfig` object, required
        - `retryTimeout` integer, required
        - `maxRetries` integer, required
        - `failedAction` 'REJECT' | 'PUBLISH', required
        - `tooManyRequestsAction` 'RETRY' | 'FAIL', required
      - `chatRoomFilter` string
      - `invocationMode` 'BEFORE_PUBLISH', required
      - `target` object, required
        - `apiKey` string, required
        - `modelUrl` string
        - `thresholds` object
        - `defaultLanguage` string, required
    - AzureTextModerationRuleResponse
      - `id` string
      - `appId` string
      - `version` string
      - `status` string
      - `created` number
      - `modified` number
      - `_links` object, nullable
      - `ruleType` 'azure/text-moderation', required
      - `source` ChatMessageRuleSource, required
        - `type` 'chat.message', required
      - `beforePublishConfig` object, required
        - `retryTimeout` integer, required
        - `maxRetries` integer, required
        - `failedAction` 'REJECT' | 'PUBLISH', required
        - `tooManyRequestsAction` 'RETRY' | 'FAIL', required
      - `chatRoomFilter` string
      - `invocationMode` 'BEFORE_PUBLISH', required
      - `target` object, required
        - `apiKey` string, required
        - `endpoint` string, required
        - `thresholds` object
    - WebhookRuleResponse
      - `id` string
      - `appId` string
      - `version` string
      - `status` string
      - `created` number
      - `modified` number
      - `_links` object, nullable
      - `ruleType` 'webhook', required
      - `requestMode` string, required
      - `source` RuleSource, required
        - `channelFilter` string, required
        - `type` string, required
      - `target` object, required
        - `url` string, required
    - UnsupportedRuleResponse
      - `id` string
      - `appId` string
      - `version` string
      - `status` string
      - `created` number
      - `modified` number
      - `_links` object, nullable
      - `ruleType` 'unsupported', required
      - `requestMode` string, required
      - `source` RuleSource, required
        - `channelFilter` string, required
        - `type` string, required
      - `target` object, required
        - `url` string, required

## Other responses

- `401` — Authentication failed
- `404` — App not found
- `500` — Internal server error
- `504` — Gateway timeout

---

[API](https://skmtc.net/ably/apis/api-v1.md) · [All operations](https://skmtc.net/ably/apis/api-v1/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/ably/api-v1/revisions/2b049ae2733f/schema)
