> ## 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.

# Initialize job

> Get suggested validators, enrichments, and date ranges for a query.



## OpenAPI

````yaml catch-all-api post /catchAll/initialize
openapi: 3.1.0
info:
  title: NewsCatcher CatchAll API
  version: 1.6.3
  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/initialize:
    post:
      tags:
        - Jobs
      summary: Initialize job
      description: Get suggested validators, enrichments, and date ranges for a query.
      operationId: initialize
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InitializeRequestDto'
            example:
              query: Series B funding rounds for SaaS startups
              context: Focus on funding amount and company name
      responses:
        '200':
          $ref: '#/components/responses/InitializeResponse'
        '403':
          $ref: '#/components/responses/ForbiddenError'
        '422':
          $ref: '#/components/responses/ValidationError'
      externalDocs:
        description: Learn about validator and enrichment suggestions
        url: >-
          https://www.newscatcherapi.com/docs/web-search-api/api-reference/jobs/initialize-job
components:
  schemas:
    InitializeRequestDto:
      type: object
      required:
        - query
      properties:
        query:
          $ref: '#/components/schemas/Query'
        context:
          $ref: '#/components/schemas/Context'
        connected_dataset_ids:
          type: array
          items:
            type: string
            format: uuid
          description: Optional list of watchlist dataset IDs connected to this job.
        fetch_all_watchlist_news:
          type: boolean
          default: false
          description: >
            When true, returns generic news validators and enrichments suitable
            for

            watchlist-based article collection instead of query-specific fields.
      description: >-
        Request to get validator, enrichment, and date range suggestions for a
        query.
    Query:
      type: string
      description: >
        Plain text question describing what to find.


        The system analyzes your input to generate search queries, validators,
        and extractors. More specific queries produce more focused results.
      example: Series B funding rounds for SaaS startups
    Context:
      type: string
      description: |
        Additional context to focus on specific aspects of your query.
      example: Focus on funding amount and company name
    InitializeResponseDto:
      type: object
      required:
        - query
        - validators
        - enrichments
      properties:
        query:
          type: string
          description: Echo of the query from the request.
          example: Series B funding rounds for SaaS startups
        context:
          type:
            - string
            - 'null'
          description: Echo of the context from the request. Null if not provided.
          example: Focus on funding amount and company name
        validators:
          type: array
          items:
            $ref: '#/components/schemas/ValidatorSchema'
          description: >
            Suggested validators for filtering relevant web pages. When the job
            is

            submitted, the system may inject additional validators during the
            `analyzing`

            stage — check the returned `validators[]` in the job status to see
            the

            complete applied set.
          minItems: 0
        enrichments:
          type: array
          items:
            $ref: '#/components/schemas/EnrichmentSchema'
          description: Suggested enrichment fields for data extraction.
          minItems: 0
        start_date:
          $ref: '#/components/schemas/StartDate'
        end_date:
          $ref: '#/components/schemas/EndDate'
        date_modification_message:
          type: array
          items:
            type: string
          description: >
            Messages explaining date adjustments due to plan limits.


            Empty array if no modifications were needed. Contains human-readable
            messages when requested dates exceed plan's allowed lookback period.
          default: []
          example:
            - >-
              start_date must be >= 2025-01-23, your plan limited to lookback
              365 days; we modified start_date to 2025-01-23.
    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'
    ValidatorSchema:
      type: object
      required:
        - name
        - description
      properties:
        name:
          type: string
          description: Validator field name (snake_case recommended).
          example: is_series_b_funding
        description:
          type: string
          description: What this validator checks for in the web page.
          example: true if the web page describes a Series B funding round
        type:
          type: string
          enum:
            - boolean
          default: boolean
          description: Validator type (currently only boolean supported).
      description: >
        Schema for a single validator that filters clusters of web pages.


        Validators are applied during the enriching stage to determine which
        clusters are relevant.
    EnrichmentSchema:
      type: object
      required:
        - name
        - description
        - type
      properties:
        name:
          type: string
          description: Enrichment field name (snake_case recommended).
          example: investee_company
        description:
          type: string
          description: What information this field extracts.
          example: Extract the name of the SaaS startup receiving the funding
        type:
          $ref: '#/components/schemas/EnrichmentType'
      description: >
        Schema for a single enrichment field that extracts structured data.


        Enrichments are applied during the enriching stage to extract
        information from validated clusters.
    StartDate:
      type: string
      format: date-time
      description: >
        Start date for web search (ISO 8601 format with UTC timezone).


        Defines the start of the search window by web page discovery date, not
        event date. Web pages discovered within this range may describe events
        from any time period.


        Must be within plan's allowed search depth. Default is 5 days before
        current date if not specified.
      example: '2026-01-30T00:00:00Z'
    EndDate:
      type: string
      format: date-time
      description: >
        End date for web search (ISO 8601 format with UTC timezone).


        Defines the end of the search window by web page discovery date, not
        event date. Web pages discovered within this range may describe events
        from any time period.


        Must be within plan's allowed search depth and after start_date. Default
        is current date if not specified.
      example: '2026-02-05T00:00:00Z'
    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
    EnrichmentType:
      type: string
      enum:
        - text
        - number
        - date
        - option
        - url
        - company
      description: >
        Canonical enrichment types supported by the system.


        - `text`: Free-form text strings (names, descriptions, summaries)

        - `number`: Numeric values (amounts, counts, percentages)

        - `date`: ISO format dates (YYYY-MM-DD)

        - `option`: Enum-like fixed values (status, category)

        - `url`: Web URLs

        - `company`: Structured company data. Returns `source_text`,
        `confidence`, and `metadata`. 


        See [Company
        enrichment](https://www.newscatcherapi.com/docs/web-search-api/api-reference/jobs/company-enrichment-dto)
        data model.
  responses:
    InitializeResponse:
      description: Suggestions retrieved successfully
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/InitializeResponseDto'
          example:
            query: Series B funding rounds for SaaS startups
            context: Focus on funding amount and company name
            validators:
              - name: is_series_b_funding
                description: true if the web page describes a Series B funding round
                type: boolean
              - name: is_saas_startup
                description: true if the company receiving funding is a SaaS startup
                type: boolean
            enrichments:
              - name: funding_amount
                description: Extract the amount of funding received in the Series B round
                type: number
              - name: investee_company
                description: Extract the name of the SaaS startup receiving the funding
                type: company
              - name: investor_company
                description: Extract the name of the lead investor
                type: company
              - name: funding_date
                description: Extract the date when the funding round was announced
                type: date
            start_date: '2026-02-19T00:00:00Z'
            end_date: '2026-02-24T00:00:00Z'
            date_modification_message:
              - No dates were provided; using a default window of 5 days.
    ForbiddenError:
      description: Invalid or missing API key
      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.

````