Kaminari Ad Alert Notifications API

The alert-notifications API from Kaminari Ad — 4 operation(s) for alert-notifications.

GitHub OpenAPI

Operations 5

GET /api/v1/alert-notifications/destinations List Destinations #
DELETE /api/v1/alert-notifications/destinations/{destination_id} Delete Destination #
PATCH /api/v1/alert-notifications/destinations/{destination_id}/version Set Destination Version #
GET /api/v1/alert-notifications/campaigns/{campaign_id}/overrides Get Campaign Overrides #
PUT /api/v1/alert-notifications/campaigns/{campaign_id}/overrides Set Campaign Overrides #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/kaminari-ad:kaminari-ad-alert-notifications-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

kaminari-ad-alert-notifications-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Kaminari Ad Alert Notifications API
  description: 'REST API for Kaminari Ad, the ad quality and ad security platform for publishers, ad networks, SSPs and DSPs. Submit ad creatives, ad tags and landing pages for scanning, read verdicts with evidence, manage policies, alerts and webhooks.


    Authenticate with an API key as a Bearer token: https://kaminari.ad/docs/developers/authentication'
  contact:
    name: Kaminari Ad Support
    url: https://kaminari.ad/contact
    email: support@kaminari.ad
  version: 0.1.0
servers:
- url: https://app.kaminari.ad
tags:
- name: alert-notifications
paths:
  /api/v1/alert-notifications/destinations:
    get:
      tags:
      - alert-notifications
      summary: List Destinations
      description: List every destination owned by the caller's organization.
      operationId: list_destinations_api_v1_alert_notifications_destinations_get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/AlertNotificationDestinationResponse'
                type: array
                title: Response List Destinations Api V1 Alert Notifications Destinations Get
      security:
      - HTTPBearer: []
  /api/v1/alert-notifications/destinations/{destination_id}:
    delete:
      tags:
      - alert-notifications
      summary: Delete Destination
      description: Delete one destination.
      operationId: delete_destination_api_v1_alert_notifications_destinations__destination_id__delete
      security:
      - HTTPBearer: []
      parameters:
      - name: destination_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Destination Id
      responses:
        '204':
          description: Successful Response
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/alert-notifications/destinations/{destination_id}/version:
    patch:
      tags:
      - alert-notifications
      summary: Set Destination Version
      description: Switch the destination's report-link version (public vs internal).
      operationId: set_destination_version_api_v1_alert_notifications_destinations__destination_id__version_patch
      security:
      - HTTPBearer: []
      parameters:
      - name: destination_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Destination Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SetDestinationVersionRequest'
      responses:
        '204':
          description: Successful Response
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/alert-notifications/campaigns/{campaign_id}/overrides:
    get:
      tags:
      - alert-notifications
      summary: Get Campaign Overrides
      description: Read the campaign's notification mode + override list.
      operationId: get_campaign_overrides_api_v1_alert_notifications_campaigns__campaign_id__overrides_get
      security:
      - HTTPBearer: []
      parameters:
      - name: campaign_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Campaign Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CampaignOverridesResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    put:
      tags:
      - alert-notifications
      summary: Set Campaign Overrides
      description: Replace the campaign's notification mode + override list.
      operationId: set_campaign_overrides_api_v1_alert_notifications_campaigns__campaign_id__overrides_put
      security:
      - HTTPBearer: []
      parameters:
      - name: campaign_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Campaign Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SetCampaignOverridesRequest'
      responses:
        '204':
          description: Successful Response
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
components:
  schemas:
    SetDestinationVersionRequest:
      properties:
        version:
          $ref: '#/components/schemas/AlertNotificationVersion'
      type: object
      required:
      - version
      title: SetDestinationVersionRequest
      description: Body for ``PATCH /api/internal/alert-notifications/destinations/{id}/version``.
    CampaignOverrideMode:
      type: string
      enum:
      - inherit
      - override
      - silence
      title: CampaignOverrideMode
      description: 'Routing mode a client sends / reads for one campaign.


        ``INHERIT`` -> fall back to the org-global destinations.

        ``OVERRIDE`` -> route only to the campaign''s explicit destination list.

        ``SILENCE`` -> send nothing for this campaign.


        Distinct from :class:`CampaignSettingsMode`, which is the *persisted*

        enum and has no ``inherit`` member because inherit is the absence of a

        ``campaign_notification_settings`` row.'
    SetCampaignOverridesRequest:
      properties:
        mode:
          $ref: '#/components/schemas/CampaignOverrideMode'
        destination_ids:
          items:
            type: string
            format: uuid
          type: array
          title: Destination Ids
          default: []
        routing_label_key:
          anyOf:
          - type: string
            maxLength: 64
          - type: 'null'
          title: Routing Label Key
          description: 'Route by this scan label key on top of inherit or override: destinations with a label rule on the key receive only scans whose label value matches. Not allowed with silence.'
      type: object
      required:
      - mode
      title: SetCampaignOverridesRequest
      description: Persist a campaign's notification mode + override list atomically.
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
            - type: string
            - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
        input:
          title: Input
        ctx:
          type: object
          title: Context
      type: object
      required:
      - loc
      - msg
      - type
      title: ValidationError
    AlertNotificationDestinationResponse:
      properties:
        id:
          type: string
          format: uuid
          title: Id
        organization_id:
          type: string
          format: uuid
          title: Organization Id
        channel:
          type: string
          title: Channel
        name:
          type: string
          title: Name
        is_active:
          type: boolean
          title: Is Active
        is_default_target:
          type: boolean
          title: Is Default Target
        version:
          $ref: '#/components/schemas/AlertNotificationVersion'
        consecutive_failures:
          type: integer
          title: Consecutive Failures
        last_delivery_at:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Last Delivery At
        last_delivery_status:
          anyOf:
          - type: integer
          - type: 'null'
          title: Last Delivery Status
        slack_workspace_id:
          anyOf:
          - type: string
            format: uuid
          - type: 'null'
          title: Slack Workspace Id
        slack_channel_id:
          anyOf:
          - type: string
          - type: 'null'
          title: Slack Channel Id
        slack_channel_name:
          anyOf:
          - type: string
          - type: 'null'
          title: Slack Channel Name
        telegram_chat_id:
          anyOf:
          - type: integer
          - type: 'null'
          title: Telegram Chat Id
        telegram_chat_title:
          anyOf:
          - type: string
          - type: 'null'
          title: Telegram Chat Title
        telegram_chat_type:
          anyOf:
          - type: string
          - type: 'null'
          title: Telegram Chat Type
        email_address:
          anyOf:
          - type: string
          - type: 'null'
          title: Email Address
        included_label_keys:
          items:
            type: string
          type: array
          title: Included Label Keys
        included_statuses:
          items:
            type: string
          type: array
          title: Included Statuses
        route_label_key:
          anyOf:
          - type: string
          - type: 'null'
          title: Route Label Key
        route_label_values:
          items:
            type: string
          type: array
          title: Route Label Values
        created_at:
          type: string
          format: date-time
          title: Created At
        updated_at:
          type: string
          format: date-time
          title: Updated At
      type: object
      required:
      - id
      - organization_id
      - channel
      - name
      - is_active
      - is_default_target
      - version
      - consecutive_failures
      - last_delivery_at
      - last_delivery_status
      - slack_workspace_id
      - slack_channel_id
      - slack_channel_name
      - telegram_chat_id
      - telegram_chat_title
      - telegram_chat_type
      - email_address
      - included_label_keys
      - included_statuses
      - route_label_key
      - route_label_values
      - created_at
      - updated_at
      title: AlertNotificationDestinationResponse
      description: Public projection of one configured destination.
    AlertNotificationVersion:
      type: string
      enum:
      - public
      - internal
      title: AlertNotificationVersion
      description: 'Per-destination preference for the scan-report link in alert messages.


        ``PUBLIC`` -> ``/public/scans/{id}`` (anonymous, no auth required).

        ``INTERNAL`` -> ``/scans/{id}`` (authenticated full report).


        Default is ``PUBLIC`` to preserve the historical behaviour of every

        Slack/Telegram destination linking to the public report.'
    CampaignOverridesResponse:
      properties:
        campaign_id:
          type: string
          format: uuid
          title: Campaign Id
        mode:
          $ref: '#/components/schemas/CampaignOverrideMode'
        destination_ids:
          items:
            type: string
            format: uuid
          type: array
          title: Destination Ids
        routing_label_key:
          anyOf:
          - type: string
          - type: 'null'
          title: Routing Label Key
      type: object
      required:
      - campaign_id
      - mode
      - destination_ids
      - routing_label_key
      title: CampaignOverridesResponse
      description: Read projection of a campaign's notification configuration.
  securitySchemes:
    HTTPBearer:
      type: http
      scheme: bearer