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

# Test webhook delivery

> Sends a test HTTP request to the webhook URL using the webhook's configured method, headers, and auth. Returns the response from the target endpoint.

Use this to verify URL reachability and authentication before attaching the webhook to a live job or monitor.




## OpenAPI

````yaml catch-all-api post /catchAll/webhooks/{webhook_id}/test
openapi: 3.1.0
info:
  title: NewsCatcher CatchAll API
  version: 1.6.4
  description: >
    CatchAll is a web search API that generates unique datasets that don't exist
    anywhere else on the web. Built on NewsCatcher's proprietary real-world
    event index, it delivers state-of-the-art recall—finding all relevant
    events, not just top results.


    ### Authentication


    All endpoints except /health and /version require `x-api-key` header. If the
    key is invalid or missing, the API returns the `403 Forbidden` error.


    ### Job workflow


    1. (Optional) Get suggestions via /catchAll/initialize

    2. Submit a query via /catchAll/submit with optional date ranges and custom
    validators/enrichments

    3. Poll /catchAll/status/{job_id} until completed (10-15 minutes)

    4. Retrieve results via /catchAll/pull/{job_id}


    ### Monitor workflow


    1. Create successful job via /catchAll/submit

    2. Create monitor via /catchAll/monitors/create with schedule

    3. Retrieve aggregated results via /catchAll/monitors/pull/{monitor_id}


    ### Webhook workflow


    1. Create a webhook via `POST /catchAll/webhooks`

    2. Attach it to a job or monitor via `POST
    /catchAll/webhooks/{webhook_id}/resources`,
       or pass `webhook_ids` at job or monitor creation time
    3. Receive HTTP notifications at the configured URL when each job completes


    ### Company search workflow


    1. Create a dataset via `POST /catchAll/datasets/` or `POST
    /catchAll/datasets/upload`

    2. Wait for the dataset `latest_status` to reach `ready`

    3. Submit a job with `connected_dataset_ids` pointing to your dataset

    4. Retrieve results — each record includes a `connected_entities` array
       with relevance scores per matched company

    ### Important notes


    **Dynamic schemas**: Response schemas are generated dynamically by LLMs.
    Field names in the `enrichment` object may vary and are not deterministic
    across jobs unless explicitly specified.
  contact:
    name: NewsCatcher
    url: https://newscatcherapi.com
    email: support@newscatcherapi.com
servers:
  - url: https://catchall.newscatcherapi.com
    description: Production server
security:
  - ApiKeyAuth: []
tags:
  - name: Jobs
    description: Operations to create, monitor, and retrieve job results.
    externalDocs:
      description: Learn about job lifecycle and status tracking
      url: >-
        https://www.newscatcherapi.com/docs/web-search-api/get-started/quickstart
  - name: Monitors
    description: Operations to create, operate and retrieve monitor results.
    externalDocs:
      description: >-
        Automate recurring queries with scheduled jobs and webhook
        notifications.
      url: >-
        https://www.newscatcherapi.com/docs/web-search-api/guides-and-concepts/monitors
  - name: Webhooks
    description: >
      Operations to create and manage reusable webhook endpoints.


      A webhook is a named HTTP endpoint that receives a POST notification

      when a job or monitor completes. Create webhooks once at the organization

      level and attach them to any number of jobs or monitors via `webhook_ids`.

      Supports Slack, Microsoft Teams, and generic HTTP targets with
      configurable

      delivery modes, authentication, and headers.
    externalDocs:
      description: Learn about centralized webhooks and notification setup
      url: >-
        https://www.newscatcherapi.com/docs/web-search-api/guides-and-concepts/webhooks
  - name: Entities
    description: >
      Operations to create, update, and delete company entities.


      Entities are the building blocks of Company Watchlist. Each entity
      represents

      a company (or person) you want to track. Add identifying information such
      as

      domain, alternative names, and key persons to improve matching quality.
    externalDocs:
      description: Learn about Company Watchlist and entities
      url: >-
        https://www.newscatcherapi.com/docs/web-search-api/guides-and-concepts/company-search
  - name: Datasets
    description: >
      Operations to create and manage datasets of entities.


      A dataset is a named collection of entities — think of it as a watchlist
      or

      portfolio. Connect a dataset to a job via `connected_dataset_ids` to
      activate

      Company Watchlist. Datasets can be reused across multiple jobs and
      monitors.
    externalDocs:
      description: Learn about datasets and Company Watchlist
      url: >-
        https://www.newscatcherapi.com/docs/web-search-api/guides-and-concepts/company-search
  - name: Projects
    description: |
      Operations to create, organize, and manage projects.

      A project is a named container for jobs, monitors, and datasets. Group
      related resources by use case, team, or client, and share them with
      teammates. Resources can be assigned at creation time or post-hoc.
    externalDocs:
      description: Learn about projects and resource organization
      url: >-
        https://www.newscatcherapi.com/docs/web-search-api/guides-and-concepts/projects
  - name: Meta
    description: Operations to check API health and version.
externalDocs:
  description: Find out more about NewsCatcher CatchAll API
  url: https://www.newscatcherapi.com/docs/web-search-api/get-started/introduction
paths:
  /catchAll/webhooks/{webhook_id}/test:
    post:
      tags:
        - Webhooks
      summary: Test webhook delivery
      description: >
        Sends a test HTTP request to the webhook URL using the webhook's
        configured method, headers, and auth. Returns the response from the
        target endpoint.


        Use this to verify URL reachability and authentication before attaching
        the webhook to a live job or monitor.
      operationId: testWebhook
      parameters:
        - $ref: '#/components/parameters/WebhookId'
      requestBody:
        required: false
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TestWebhookRequestDto'
            example:
              payload:
                test: true
                message: CatchAll webhook test
      responses:
        '200':
          $ref: '#/components/responses/TestWebhookResponse'
        '403':
          $ref: '#/components/responses/ForbiddenError'
        '404':
          $ref: '#/components/responses/NotFoundError'
        '422':
          $ref: '#/components/responses/ValidationError'
components:
  parameters:
    WebhookId:
      name: webhook_id
      in: path
      required: true
      description: Unique webhook identifier.
      schema:
        type: string
        format: uuid
      example: a1b2c3d4-e5f6-7890-abcd-ef1234567890
  schemas:
    TestWebhookRequestDto:
      type: object
      properties:
        payload:
          type: object
          description: |
            Custom payload to send in the test request. If omitted, a synthetic
            test payload is sent.
          example:
            test: true
            message: CatchAll webhook test
    TestWebhookResponseDto:
      type: object
      required:
        - success
        - message
      properties:
        success:
          type: boolean
          description: True if the test delivery received a 2xx response; false otherwise.
          example: true
        message:
          type: string
          description: Human-readable result message.
          example: Test delivery succeeded.
        http_status_code:
          type: integer
          description: HTTP status code returned by the webhook endpoint.
          example: 200
        response_body:
          description: >-
            Response body returned by the webhook endpoint. Type varies by
            target.
          example: ok
    Error:
      type: object
      properties:
        detail:
          type: string
          description: Error message.
          example: Invalid API key
    ValidationErrorResponse:
      type: object
      properties:
        detail:
          type: array
          items:
            $ref: '#/components/schemas/ValidationErrorDetail'
    ValidationErrorDetail:
      type: object
      properties:
        loc:
          type: array
          items:
            oneOf:
              - type: string
              - type: integer
          description: Location of the validation error
        msg:
          type: string
          description: Error message
        type:
          type: string
          description: Error type
  responses:
    TestWebhookResponse:
      description: >-
        Test delivery attempted. Check `success` and `http_status_code` for the
        outcome.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/TestWebhookResponseDto'
          example:
            success: true
            message: Test delivery succeeded.
            http_status_code: 200
            response_body: ok
    ForbiddenError:
      description: Invalid or missing API key
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    NotFoundError:
      description: Job/monitor not found or results not available
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    ValidationError:
      description: Validation error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ValidationErrorResponse'
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: API key for authentication.

````