CA

CatchAll

com.newscatcherapi/catchall

Web search API: find every relevant event across the open web, not just the top results.

Yes, your AI can use this right now.Answered a live MCP handshake in 556 ms with no sign-in needed and exposes 61 tools.

Connect it

Settings → Connectors → Add custom connector
URL: https://catchall-mcp.newscatcherapi.com/mcp

61 tools, verified live

Pulled straight from the server with tools/list on 2026-10-17.
submit_query

Create a new CatchAll processing job from a natural-language query. Use when: - You want to start a new CatchAll web research run from a user query. - You want the API to fetch/process sources and then return structured results. Do not use when: - You want status for an existing job (use `get_job_status`). - You want records for an existing job (use `pull_results`). Key rules: - `query` is requ

initialize_query

Preview suggested validators, enrichments, and date ranges before submitting. Use when: - You want to inspect/edit auto-generated validators/enrichments before submitting. - You want to preview date adjustments via `date_modification_message`. Do not use when: - You want to start processing immediately with final inputs (use `submit_query`). Key behavior: - Preview-only endpoint: does not creat

get_job_status

Check the status of a submitted job. Call this after submit_query to see if your job is ready. Status progression: submitted -> analyzing -> fetching -> clustering -> enriching -> completed/failed IMPORTANT: Jobs take several minutes to process. First check after ~1-2 minutes, then poll every 30-60 seconds. Broad searches can take 10-30+ minutes; for long jobs, poll every 60-120 seconds. Do NOT

pull_results

Retrieve the results of a job. Can be called before completion for partial results, or after completion for the full set. Returns clustered, validated, and enriched web results. While job status is active, call this repeatedly (typically page=1) to refresh partial output. When job reaches completed, iterate all pages. If job fails, call once more to capture any partial output.

pull_job_csv

Download a job's results as a CSV file. Use when: - You want the full job output as a CSV for offline analysis or export. - Prefer this over `pull_results` when the consumer needs spreadsheet/CSV format.

continue_job

Expand a job by processing more records beyond the initial limit. This increases the number of records the system processes (which costs additional credits). Only use this when the user wants MORE data processed. This only applies to jobs originally submitted with `limit`. If a job was submitted without `limit`, there is nothing to continue. The new_limit must be greater than the previous limit

list_user_jobs

List all jobs submitted by you. Returns your job history with IDs, queries, statuses, and timestamps.

delete_job

Permanently delete a job and its results. Use when: - You want to remove a job you no longer need from your account.

validate_query

Check the quality of a query before submitting a job ("Check Query Quality"). Use when: - You want quick feedback on whether a query is well-formed for CatchAll before spending credits on a job. - You want concrete suggestions to improve a vague or overly broad query. Do not use when: - You want to preview auto-generated validators/enrichments (use `initialize_query`). - You want to actually r

list_source_groups

List source groups (named domain allowlists). Use when: - You want to discover reusable, named sets of source domains (public groups plus any organization-visibility groups your organization can access). - You need a group's `slug` to attach to `submit_query` via `source_groups` to scope fetching to that domain allowlist.

create_monitor

Create a recurring monitor from a completed job. Monitors re-run a job's query on a schedule. Use the explore -> refine -> automate pattern: submit a job, refine until results match, then create a monitor. The schedule is defined in natural language (e.g., 'every day at 9 AM EST'). Always include a timezone (in the schedule text or via the `timezone` arg). API-enforced constraints apply: - If `b

list_monitors

List all your monitors. Returns all monitors with their schedule, status, reference query, and webhook config.

pull_monitor_results

Retrieve the latest results from a monitor. Returns the most recent run's results including run_info, records, and all_records.

pull_monitor_csv

Download the latest monitor run's results as a CSV file. Use when: - You want the most recent monitor run output as a CSV for offline analysis or export. - Prefer this over `pull_monitor_results` when the consumer needs spreadsheet/CSV format.

list_monitor_jobs

List all jobs spawned by a monitor. Returns the history of scheduled runs for a monitor.

disable_monitor

Disable a monitor to stop its scheduled runs. The monitor can be re-enabled later with enable_monitor.

enable_monitor

Enable a previously disabled monitor to resume its scheduled runs.

update_monitor

Update a monitor's schedule, timezone, webhook assignments, and per-run limit. Note: reference_job_id cannot be modified through this endpoint. Webhooks are centralized — pass webhook IDs (from `create_webhook`/`list_webhooks`).

delete_monitor

Permanently delete a monitor and stop its scheduled runs. Use when: - You want to remove a monitor entirely (use `disable_monitor` to only pause it).

get_monitor_status

Get the status history of a monitor. Use when: - You want to see the timeline of a monitor's state changes (e.g. active, disabled, errored) and any related details.

list_webhooks

List all your webhooks. Use when: - You want to see all webhook endpoints configured in your account. - You need to find a webhook_id to pass to monitors (via webhook_ids) or jobs.

create_webhook

Create a new webhook endpoint. Use when: - You want to register a URL to receive job or monitor result deliveries. - You need a webhook_id to attach to a monitor (via webhook_ids) or a job submission. - You want the webhook associated with a project from the start (pass `project_id`).

get_webhook

Retrieve the full configuration of a specific webhook. Use when: - You want to inspect a webhook's URL, method, headers, or status by its ID.

update_webhook

Update an existing webhook's configuration. Use when: - You want to change a webhook's URL, method, headers, or other settings. - You want to enable or disable a webhook (set `is_active`). - Only the fields you provide are updated; omitted fields remain unchanged.

delete_webhook

Permanently delete a webhook endpoint. Use when: - You want to remove a webhook from your account.

test_webhook

Send a test delivery to a webhook endpoint. Use when: - You want to verify a webhook URL is reachable and correctly configured before attaching it to a monitor or job.

assign_webhook_resource

Map a resource (job, monitor, or monitor_group) to a webhook. Use when: - You want a webhook to fire for a specific job or monitor's deliveries.

list_webhook_resources

List the resources mapped to a webhook. Use when: - You want to see which jobs/monitors a webhook is attached to.

remove_webhook_resource

Unmap a resource from a webhook. Use when: - You want to stop a webhook from firing for a specific job or monitor.

list_resource_webhooks

List the webhooks mapped to a specific resource (job/monitor/monitor_group). Use when: - You have a job or monitor ID and want to know which webhooks will fire for it.

get_webhook_history

Get webhook delivery history, either for a resource or for a webhook. Query in exactly one of two modes: - By resource: pass `resource_type` + `resource_id` to see deliveries made for a specific job/monitor/monitor_group. - By webhook: pass `webhook_id` to see every delivery made through one webhook — including manual test deliveries (from `test_webhook`), which are not tied to a job or m

trigger_webhook

Manually trigger webhook delivery for a resource (job/monitor/monitor_group). Use when: - You want to (re-)send a webhook delivery on demand instead of waiting for the automatic dispatch — e.g. to replay a missed or failed delivery.

create_dataset

Create a new dataset. Datasets are collections of entities (companies/people). Connect a dataset to a job via `submit_query(connected_dataset_ids=[...])` to narrow retrieval scope.

list_datasets

List your datasets.

get_dataset

Get a single dataset's details.

update_dataset

Update a dataset's name and/or description.

delete_dataset

Permanently delete a dataset. The entities the dataset referenced are not deleted; only the dataset and its entity associations are removed.

add_dataset_entities

Add existing entities to a dataset.

remove_dataset_entities

Remove entities from a dataset (the entities themselves are not deleted).

list_dataset_entities

List the entities contained in a dataset.

get_dataset_status

Get the status history of a dataset (e.g. its enrichment progress over time).

create_dataset_from_csv

Create a new dataset by uploading a CSV file. The CSV must have at least a `name` column. For meaningful entity enrichment each row should also include a `domain` column or a `description` column (or both) — a row with only a name is accepted but produces lower-quality enrichment. Additional columns are mapped to entity attributes. Max file size is plan-dependent. To add CSV rows to an existing

append_csv_to_dataset

Append entities from a CSV file to an existing dataset. Parses the CSV and appends its entities to the dataset. Each row must have a `name` column; include a `domain` or `description` column (or both) for meaningful enrichment. Duplicate rows (by name) are skipped. To create a new dataset from a CSV, use `create_dataset_from_csv` instead.

create_entity

Create a single entity (a company or person). ``name`` is required plus at least one identifying field: either ``description`` or ``additional_attributes.company_attributes.domain``.

list_entities

List your entities.

create_entities_batch

Create multiple entities in one call.

get_entity

Get a single entity's details.

update_entity

Update an entity's name, description, external_entity_id, and/or attributes.

delete_entity

Permanently delete an entity.

create_project

Create a new project. Projects group related resources (jobs, monitors, datasets, monitor_groups) so you can organize work and filter listings by `project_id`.

list_projects

List your projects.

get_project

Get a single project's details.

update_project

Update a project's name and/or description. Only the fields you provide are changed.

delete_project

Delete a project. By default the project's resources (jobs, monitors, etc.) are detached but kept. Set `delete_resources=true` to also delete the contained jobs, monitors, datasets, and monitor groups. Webhooks are the exception: they are never deleted by this operation — an attached webhook is only detached from the project and keeps working (it may belong to other projects or resources indepe

get_project_overview

Get a project's resource overview (counts grouped by resource type and status).

add_project_resources

Add one or more resources to a project. Webhooks are first-class project resources: a webhook can belong to several projects at the same time, and deleting a project only detaches its webhooks — it never deletes them.

list_project_resources

List the resources contained in a project.

remove_project_resource

Remove a single resource from a project. This detaches the resource from the project without deleting the resource itself (e.g. removing a webhook only ends its membership in this project; the webhook keeps existing and stays attached to any other projects).

get_user_limits

Retrieve plan features and current usage limits for your API key. Use when: - You want to know how many records/jobs/monitors your plan allows. - You want to check current usage against plan limits before running a large job.

check_health

Check API health status. This tool maps to GET /health and does not require an API key.

get_version

Get current API version. This tool maps to GET /version and does not require an API key.

Alternatives in Search & Research

Compare →
Try “Notion”, “Stripe”, “create invoice”, “browser”