openapi: 3.2.0 info: title: Anomalo Public Notification Channels API version: v1 summary: Data quality monitoring, table configuration and check orchestration for the Anomalo platform. description: 'The Anomalo Public API (`/api/public/v1/`) drives Anomalo''s data quality monitoring platform: connect and refresh warehouses, configure which tables are monitored, create and run data quality checks, read check-run results and table data profiles, manage table/check labels, administer users, API keys and access groups, record table lineage edges, and manage notification channels. DERIVATION NOTE: this description was derived mechanically by API Evangelist from the first-party, Apache-2.0 licensed `anomalo` Python client published by Anomalo on PyPI (version 0.46.0). Every path, HTTP method and parameter below is read from that client''s `_api_call()` invocations. Anomalo does not publish an OpenAPI description or public API reference of its own; its documentation is gated to customers. Response schemas are therefore left open (`type: object`) rather than invented. This is an unofficial, derived description and is not endorsed by Anomalo.' contact: name: Anomalo url: https://www.anomalo.com/contact-us/ license: name: Apache-2.0 identifier: Apache-2.0 x-derived-from: https://pypi.org/project/anomalo/0.46.0/ x-derived-by: API Evangelist enrichment pipeline x-unofficial: true servers: - url: https://{instance}/api/public/v1 description: Anomalo is deployed per-tenant. The client reads the host from the `ANOMALO_INSTANCE_HOST` environment variable. variables: instance: default: app.anomalo.com description: Your Anomalo instance host, e.g. app.anomalo.com or my-company.anomalo.com security: - AnomaloToken: [] tags: - name: Notification Channels paths: /list_notification_channels: get: operationId: list_notification_channels summary: List notification channels tags: - Notification Channels x-client-methods: - list_notification_channels responses: '200': description: Successful response. The client returns the decoded JSON body. content: application/json: schema: type: object '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/ServerError' /notification_channels: post: operationId: create_notification_channel summary: Create notification channel tags: - Notification Channels x-client-methods: - create_notification_channel requestBody: required: false content: application/json: schema: type: object additionalProperties: true responses: '200': description: Successful response. The client returns the decoded JSON body. content: application/json: schema: type: object '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/ServerError' /notification_channels/{channel_id}: get: operationId: get_notification_channel summary: Get notification channel tags: - Notification Channels x-client-methods: - get_notification_channel parameters: - name: channel_id in: path required: true description: Path identifier `channel_id`. schema: type: integer responses: '200': description: Successful response. The client returns the decoded JSON body. content: application/json: schema: type: object '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/ServerError' patch: operationId: update_notification_channel summary: Update notification channel tags: - Notification Channels x-client-methods: - update_notification_channel requestBody: required: false content: application/json: schema: type: object additionalProperties: true parameters: - name: channel_id in: path required: true description: Path identifier `channel_id`. schema: type: integer responses: '200': description: Successful response. The client returns the decoded JSON body. content: application/json: schema: type: object '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/ServerError' delete: operationId: delete_notification_channel summary: Delete notification channel tags: - Notification Channels x-client-methods: - delete_notification_channel parameters: - name: channel_id in: path required: true description: Path identifier `channel_id`. schema: type: integer responses: '200': description: Successful response. The client returns the decoded JSON body. content: application/json: schema: type: object '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/ServerError' components: responses: Forbidden: description: Authenticated but not permitted for the active organization or resource. content: application/json: schema: $ref: '#/components/schemas/Error' NotFound: description: Resource not found. content: application/json: schema: $ref: '#/components/schemas/Error' Unauthorized: description: Missing or invalid API token. content: application/json: schema: $ref: '#/components/schemas/Error' BadRequest: description: Bad request. Raised by the client as BadRequestException (not retried). content: application/json: schema: $ref: '#/components/schemas/Error' ServerError: description: Server error. The first-party client retries these up to 5 times with exponential jitter backoff. content: application/json: schema: $ref: '#/components/schemas/Error' schemas: Error: type: object description: Error body. The first-party client raises BadRequestException for 4xx and RuntimeError for 5xx, carrying the raw response text; Anomalo does not publish a documented error envelope schema. additionalProperties: true securitySchemes: AnomaloToken: type: apiKey in: header name: X-Anomalo-Token description: Anomalo API secret token. The first-party client sends it as `X-Anomalo-Token` by default (`legacy_auth=True`), read from the `ANOMALO_API_SECRET_TOKEN` environment variable. BearerToken: type: http scheme: bearer description: 'Anomalo API secret token sent as `Authorization: Bearer `. Selected in the first-party client with `legacy_auth=False`.'