Dash0 Manage Spam Filters API

The Manage Spam Filters API from Dash0 — 2 operation(s) for manage spam filters.

Operations 5

DELETE /api/spam-filters/{originOrId} Delete a spam filter by origin or ID #
GET /api/spam-filters/{originOrId} Get a specific spam filter by origin or ID #
PUT /api/spam-filters/{originOrId} Update or create a spam filter by origin or ID #
GET /api/spam-filters List all spam filters for the organization #
POST /api/spam-filters Create a new spam filter #

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/dash0-manage-spam-filters-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

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

dash0-manage-spam-filters-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Dash0 Edge Collectors Manage Spam Filters API
  version: 1.0.0
  description: '## Request body size limit


    Most API endpoints enforce a maximum request body size of 256KB. Bulk

    endpoints accept a larger body size per request to accommodate batched

    payloads.


    Requests exceeding the applicable limit are rejected with a

    `413 Content Too Large` response.

    '
servers:
- url: https://api.eu-west-1.aws.dash0.com
  description: API endpoint for AWS region EU (Ireland)
- url: https://api.eu-central-1.aws.dash0.com
  description: API endpoint for AWS region EU (Germany)
- url: https://api.us-west-2.aws.dash0.com
  description: API endpoint for AWS region US (Oregon)
- url: https://api.europe-west4.gcp.dash0.com
  description: API endpoint for GCP region EU (Netherlands)
tags:
- name: Manage Spam Filters
paths:
  /api/spam-filters/{originOrId}:
    delete:
      summary: Delete a spam filter by origin or ID
      description: Deletes a specific spam filter identified by its origin label or UUID.
      tags:
      - Manage Spam Filters
      parameters:
      - in: path
        name: originOrId
        schema:
          type: string
        required: true
        description: Spam filter origin or UUID
      - in: query
        name: dataset
        schema:
          $ref: '#/components/schemas/Dataset'
      responses:
        '200':
          description: Successfully deleted
        '403':
          description: Forbidden - Admin access required
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        default:
          description: In case any error happens.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      operationId: delete_api-spam-filters-originorid
    get:
      summary: Get a specific spam filter by origin or ID
      description: Returns a specific spam filter identified by its origin label or UUID.
      tags:
      - Manage Spam Filters
      parameters:
      - in: path
        name: originOrId
        schema:
          type: string
        required: true
        description: Spam filter origin or UUID
      - in: query
        name: dataset
        schema:
          $ref: '#/components/schemas/Dataset'
      responses:
        '200':
          description: The requested spam filter
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SpamFilterResponse'
        default:
          description: In case any error happens.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      operationId: get_api-spam-filters-originorid
    put:
      summary: Update or create a spam filter by origin or ID
      description: 'Updates an existing spam filter or creates a new one if it doesn''t exist.

        Useful for Infrastructure-as-Code workflows. Provide either structured `filter`

        criteria or a raw OTTL `condition` in the spec, but not both.

        '
      tags:
      - Manage Spam Filters
      parameters:
      - in: path
        name: originOrId
        schema:
          type: string
        required: true
        description: Spam filter origin or UUID
      - in: query
        name: dataset
        schema:
          $ref: '#/components/schemas/Dataset'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SpamFilterResponse'
      responses:
        '200':
          description: The updated or created spam filter
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SpamFilterResponse'
        '403':
          description: Forbidden - Admin access required
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        default:
          description: In case any error happens.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      operationId: put_api-spam-filters-originorid
  /api/spam-filters:
    get:
      summary: List all spam filters for the organization
      description: Returns all spam filters configured for your organization.
      tags:
      - Manage Spam Filters
      parameters:
      - in: query
        name: dataset
        schema:
          $ref: '#/components/schemas/Dataset'
      responses:
        '200':
          description: List of spam filters
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetSpamFiltersResponse'
        default:
          description: In case any error happens.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      operationId: get_api-spam-filters
    post:
      summary: Create a new spam filter
      description: 'Create a new spam filter for your organization. Provide either structured `filter`

        criteria or a raw OTTL `condition` in the spec, but not both.


        If `metadata.labels["dash0.com/origin"]` is provided, it must be unique within

        the organization and dataset. A request with a duplicate origin returns 400.

        If no origin is provided, the server auto-generates one (`api-<uuid>`).

        '
      tags:
      - Manage Spam Filters
      parameters:
      - in: query
        name: dataset
        schema:
          $ref: '#/components/schemas/Dataset'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SpamFilterCreateRequest'
      responses:
        '200':
          description: The created spam filter
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SpamFilterResponse'
        '400':
          description: 'Bad request. Possible reasons include: a spam filter with the submitted

            origin already exists in this organization and dataset, or `dash0.com/id`

            was provided in the request body.

            '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Forbidden - Admin access required
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        default:
          description: In case any error happens.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      operationId: post_api-spam-filters
components:
  schemas:
    SpamFilterSpec:
      description: 'v1alpha1 spam filter specification. The `filter` field defines structured

        criteria that the server compiles into an OTTL condition for evaluation.

        '
      properties:
        contexts:
          type: array
          description: 'The signal types this spam filter applies to.

            '
          items:
            $ref: '#/components/schemas/TelemetryFilterContext'
          maxItems: 1
        filter:
          $ref: '#/components/schemas/FilterCriteria'
          description: 'Structured filter criteria. The server compiles this into an OTTL condition

            for evaluation.

            '
      required:
      - contexts
      - filter
    FilterCriteria:
      type: array
      items:
        $ref: '#/components/schemas/AttributeFilter'
      example:
      - key: service.name
        operator: is
        value: foo
    SpamFilterDefinition:
      description: 'v1alpha1 spam filter definition. Uses `contexts` (array) in the spec.

        '
      properties:
        apiVersion:
          $ref: '#/components/schemas/SpamFilterApiVersionV1Alpha1'
        kind:
          type: string
          enum:
          - Dash0SpamFilter
        metadata:
          $ref: '#/components/schemas/SpamFilterMetadata'
        spec:
          $ref: '#/components/schemas/SpamFilterSpec'
      required:
      - kind
      - metadata
      - spec
    Error:
      properties:
        code:
          type: integer
        message:
          type: string
        traceId:
          type: string
      required:
      - code
      - message
    SpamFilterApiVersionV1Alpha2:
      type: string
      enum:
      - v1alpha2
    TelemetryFilterContext:
      type: string
      enum:
      - datapoint
      - span
      - log
      - web_event
    SpamFilterResponse:
      anyOf:
      - $ref: '#/components/schemas/SpamFilterDefinition'
      - $ref: '#/components/schemas/SpamFilterDefinitionV1Alpha2'
    AttributeFilterStringValue:
      description: AttributeFilterStringValue may contain a primitive value such as a regex pattern or string.
      type: string
    AttributeFilterKey:
      type: string
      description: The attribute key to be filtered.
    SpamFilterMetadata:
      properties:
        name:
          type: string
          description: 'Human-readable name for the spam filter.

            '
        labels:
          $ref: '#/components/schemas/SpamFilterLabels'
        annotations:
          $ref: '#/components/schemas/SpamFilterAnnotations'
      required:
      - name
    GetSpamFiltersResponse:
      properties:
        spamFilters:
          type: array
          items:
            $ref: '#/components/schemas/SpamFilterDefinition'
      required:
      - spamFilters
    AttributeFilter:
      type: object
      properties:
        key:
          $ref: '#/components/schemas/AttributeFilterKey'
        operator:
          $ref: '#/components/schemas/AttributeFilterOperator'
        value:
          oneOf:
          - $ref: '#/components/schemas/AttributeFilterStringValue'
          - $ref: '#/components/schemas/AttributeFilterAnyValue'
        values:
          type: array
          description: 'List of values to match against. This parameter is mandatory for the is_one_of and is_not_one_of operators.

            '
          items:
            oneOf:
            - $ref: '#/components/schemas/AttributeFilterStringValue'
            - $ref: '#/components/schemas/AttributeFilterAnyValue'
      required:
      - key
      - operator
    SpamFilterDefinitionV1Alpha2:
      description: 'v1alpha2 spam filter definition. Uses `context` (scalar) in the spec.

        '
      properties:
        apiVersion:
          $ref: '#/components/schemas/SpamFilterApiVersionV1Alpha2'
        kind:
          type: string
          enum:
          - Dash0SpamFilter
        metadata:
          $ref: '#/components/schemas/SpamFilterMetadata'
        spec:
          $ref: '#/components/schemas/SpamFilterSpecV1Alpha2'
      required:
      - apiVersion
      - kind
      - metadata
      - spec
    AttributeFilterAnyValue:
      description: AttributeFilterAnyValue may contain any AnyValue value.
      $ref: '#/components/schemas/AnyValue'
    SpamFilterApiVersionV1Alpha1:
      type: string
      enum:
      - v1alpha1
    AttributeFilterOperator:
      type: string
      enum:
      - is
      - is_not
      - is_set
      - is_not_set
      - is_one_of
      - is_not_one_of
      - gt
      - lt
      - gte
      - lte
      - matches
      - does_not_match
      - contains
      - does_not_contain
      - starts_with
      - does_not_start_with
      - ends_with
      - does_not_end_with
      - is_any
      description: 'The match operation for filtering attributes.


        #### Equality Operators

        - `is` - equals (attribute exists and has a matching value)

        - `is_not` - not equals (attribute exists and has a different value)


        #### Existence Operators

        - `is_set` - is set (attribute exists)

        - `is_not_set` - is not set (attribute does not exist)


        #### Multiple Value Operators

        - `is_one_of` - is any of (attribute exists and has a value that is in the specified values)

        - `is_not_one_of` - is not any of (attribute exists and has a value that is not in the specified values)


        #### Comparison Operators

        - `gt` - greater than

        - `lt` - less than

        - `gte` - greater than or equal

        - `lte` - less than or equal


        #### Pattern Matching Operators

        - `matches` - match regex expression (attribute exists and matches the regular expression)

        - `does_not_match` - does not match regex expression (attribute exists and does not match the regular expression)


        #### String Operators

        - `contains` - contains (attribute exists and contains the specified value)

        - `does_not_contain` - does not contain (attribute exists and does not contain the specified value)

        - `starts_with` - starts with (attribute exists and starts with the specified value)

        - `does_not_start_with` - does not start with (attribute exists and does not start with the specified value)

        - `ends_with` - ends with (attribute exists and ends with the specified value)

        - `does_not_end_with` - does not end with (attribute exists and does not end with the specified value)


        #### Special Operators

        - `is_any` - matches any value, ignoring whether the key exists or not

        '
    SpamFilterCreateRequest:
      anyOf:
      - $ref: '#/components/schemas/SpamFilterDefinition'
      - $ref: '#/components/schemas/SpamFilterDefinitionV1Alpha2'
    SpamFilterAnnotations:
      description: 'Spam filters use hard delete (removed from the dataset settings array),

        so there is no `dash0.com/deleted-at` annotation. Timestamps

        (`created-at`, `updated-at`) are not tracked because filters are stored

        as elements of a JSONB array inside the dataset settings, which has no

        per-element timestamp support.

        '
      properties:
        dash0.com/enabled:
          description: 'Whether this spam filter is active. Defaults to `"true"`.

            When set to `"false"`, the filter is skipped.

            '
          type: string
          enum:
          - 'true'
          - 'false'
    SpamFilterSpecV1Alpha2:
      description: 'v1alpha2 spam filter specification. The `filter` field defines structured

        criteria that the server compiles into an OTTL condition for evaluation.

        '
      properties:
        context:
          $ref: '#/components/schemas/TelemetryFilterContext'
          description: 'The signal type this spam filter applies to.

            '
        filter:
          $ref: '#/components/schemas/FilterCriteria'
          description: 'Structured filter criteria. The server compiles this into an OTTL condition

            for evaluation.

            '
      required:
      - context
      - filter
    CrdSource:
      description: 'Origin of a Dash0 resource.

        - `ui`: created interactively in the Dash0 UI.

        - `terraform`: managed via the Dash0 Terraform provider.

        - `operator`: managed via the Dash0 Kubernetes operator.

        - `api`: created directly through the internal API.

        '
      type: string
      enum:
      - ui
      - terraform
      - operator
      - api
    SpamFilterLabels:
      properties:
        dash0.com/id:
          type: string
        dash0.com/origin:
          type: string
          description: 'External identifier for this spam filter. Must be unique per

            organization and dataset when set. Used by Infrastructure-as-Code

            tools (Terraform, Kubernetes operator). Auto-generated as

            `api-<uuid>` on POST if not provided.

            '
        dash0.com/dataset:
          type: string
        dash0.com/source:
          $ref: '#/components/schemas/CrdSource'
        custom:
          type: object
          additionalProperties:
            type: string
    AnyValue:
      description: AnyValue is used to represent any type of attribute value. AnyValue may contain a primitive value such as a string or integer or it may contain an arbitrary nested object containing arrays, key-value lists and primitives.
      type: object
      properties:
        stringValue:
          type: string
        boolValue:
          type: boolean
        intValue:
          type: string
          format: int64
        doubleValue:
          type: number
          format: double
        bytesValue:
          type: string
          format: byte
    ErrorResponse:
      type: object
      properties:
        error:
          $ref: '#/components/schemas/Error'
      required:
      - error
    Dataset:
      type: string
      pattern: ^[a-zA-Z0-9_-]{3,26}$
      description: Optional dataset to query across. Defaults to whatever is configured to be the default dataset for the organization.