> ## Documentation Index
> Fetch the complete documentation index at: https://docs.enginy.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Add blocklist entries by value

> Add raw blocklist entries by `(type, value)`. LinkedIn URL values are normalized; entries that cannot be normalized are skipped and reported in the response.

    > **Required scope:** `BLOCKLIST_WRITE`
    >
    > **Rate limit:** 30 requests per minute



## OpenAPI

````yaml https://openapi.enginy.ai/definitions.json post /v1/blocklist/items
openapi: 3.1.0
info:
  title: Enginy API
  version: 1.0.0
  description: Public API for Enginy platform
servers:
  - url: https://openapi.enginy.ai
    description: Configured server
security: []
tags:
  - name: AI Variables
    description: >-
      Manage AI variables and discover the entity fields you can reference in
      prompts and entity requests.
  - name: Inbox
    description: >-
      Inbox endpoints for listing contact threads, reading thread messages,
      managing tags, and sending manual replies.
  - name: Workflows
    description: >-
      Build, validate, publish, run, and inspect advanced (graph) workflows,
      plus the block/condition catalog needed to author a workflow plan.
paths:
  /v1/blocklist/items:
    post:
      tags:
        - Blocklist
      summary: Add blocklist entries by value
      description: >-
        Add raw blocklist entries by `(type, value)`. LinkedIn URL values are
        normalized; entries that cannot be normalized are skipped and reported
        in the response.

            > **Required scope:** `BLOCKLIST_WRITE`
            >
            > **Rate limit:** 30 requests per minute
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                items:
                  type: array
                  items:
                    type: object
                    properties:
                      type:
                        type: string
                        enum:
                          - EMAIL
                          - LINKEDIN_URL
                          - DOMAIN
                          - COMPANY_LINKEDIN_URL
                        description: The kind of value being blocked.
                      value:
                        type: string
                        minLength: 1
                        description: >-
                          The raw value to block. For `LINKEDIN_URL` and
                          `COMPANY_LINKEDIN_URL` the value is normalized
                          server-side; entries that cannot be normalized are
                          skipped.
                      reason:
                        type: string
                        enum:
                          - NOT_INTERESTED
                          - COMPETITOR
                          - CUSTOMER
                          - NOT_TARGET
                          - OTHER
                          - CHURN
                        description: Reason classification for the entry.
                      source:
                        type: string
                        enum:
                          - BLACKLIST
                          - INBOX
                          - WORKFLOW
                          - CAMPAIGN
                          - LIST
                        description: >-
                          Source attribution. Defaults to `BLACKLIST` when
                          omitted.
                      periodDays:
                        type: integer
                        exclusiveMinimum: 0
                        description: >-
                          If provided, the entry expires `periodDays` days after
                          creation. Omit for a permanent entry.
                      expiresAt:
                        type: string
                        format: date-time
                        description: >-
                          Explicit ISO-8601 expiry. Takes precedence over
                          `periodDays`. Omit both for a permanent entry.
                    required:
                      - type
                      - value
                      - reason
                  minItems: 1
                  maxItems: 500
                  description: Items to add. Up to 500 per request.
              required:
                - items
            examples:
              mixed:
                summary: Block a domain and an email
                value:
                  items:
                    - type: DOMAIN
                      value: competitor.com
                      reason: COMPETITOR
                    - type: EMAIL
                      value: ada@analytical-engines.com
                      reason: NOT_INTERESTED
                      periodDays: 90
      responses:
        '200':
          description: Items added
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    enum:
                      - success
                  message:
                    type: string
                  data:
                    type: object
                    properties:
                      added:
                        type: number
                        description: Number of items persisted.
                      skipped:
                        type: number
                        description: >-
                          Number of items that could not be normalized and were
                          skipped.
                    required:
                      - added
                      - skipped
                required:
                  - status
                  - message
                  - data
        '400':
          description: Bad request - no valid items after normalization
      security:
        - apiKey: []
components:
  securitySchemes:
    apiKey:
      type: apiKey
      in: header
      name: x-api-key

````