---
title: "Gets a Integration Rule by ID"
method: GET
path: "/apps/{app_id}/rules/{rule_id}"
tags: ["rules"]
---

# Gets a Integration Rule by ID

`GET /apps/{app_id}/rules/{rule_id}`

## Path parameters

- `app_id` string, required
- `rule_id` string, required

## Response `200`

Integration Rule

- 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` — 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)
