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 required.
- You can submit with only `query`; omitted optional fields (`validators`, `enrichments`, `start_date`, `end_date`) are auto-selected/generated by the API.
- Optional fields are independent: you can pass any subset (for example, custom `validators` but no `enrichments`), and omitted fields are still auto-selected/generated.
- When `connected_dataset_ids` is set, the `query` must describe the **topic or event type only**
(e.g. "M&A activity", "regulatory filings", "executive changes"). Do NOT write things like
"for my companies", "for the selected list of companies", or "news about my watchlist" — the
entity filtering is applied automatically by the connected dataset. Mentioning companies in
the query when a dataset is attached is redundant and degrades retrieval quality.
- When `connected_dataset_ids` is set, entity-relevance validators (e.g.
`company_is_primary_subject`) are generated automatically by the API. Do NOT add them
manually to `validators` — they are redundant and may conflict with the auto-generated ones.
Only pass validators that describe the **event or topic**, not entity filtering.
- `start_date` and `end_date` filter by web page discovery date, not event date.
- Discovery dates and extracted event dates can differ. For event-time accuracy, use event-focused validators/enrichments and verify `event_date` in pulled results.
- `end_date` must be after `start_date`.
- Dates outside your plan lookback limits return API 400.
- `limit` controls processed record count (cost-affecting). Omit it to retrieve everything
up to your plan's maximum.
輸入參數modelimitquery必填schemaapi_keycontextend_dateproject_idstart_datevalidatorsenrichmentswebhook_ids另有 4 個
initialize_query
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 create a job and does not start processing.
- Suggestions are LLM-generated and not deterministic across calls.
- To reuse suggestions, pass them explicitly to `submit_query`.
輸入參數query必填api_keycontextfetch_all_watchlist_news
get_job_status
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 call this tool in a tight loop.
Stop polling when status is `completed` or `failed`.
Treat `submitted`, `analyzing`, `fetching`, `clustering`, and `enriching`
as active states and continue polling.
You don't need to wait for completion to pull results. Partial results are
available during `enriching` — call pull_results after ~2 minutes, then
poll status every 30-60 seconds and pull again for fresher results.
Do not stop pulling just because an intermediate pull is empty/unchanged.
Use `progress_validated` vs `candidate_records` to track whether more
results may still appear (`progress_validated < candidate_records`).
If transport/session fails, resume using the same `job_id`.
輸入參數job_id必填api_key
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.
輸入參數pagejob_id必填api_keypage_size
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.
輸入參數job_id必填api_key
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 when provided.
If omitted, API defaults to your plan maximum.
輸入參數job_id必填api_keynew_limit
list_user_jobs
List User Jobs
List all jobs submitted by you.
Returns your job history with IDs, queries, statuses, and timestamps.
輸入參數modepagesearchapi_keyownershippage_sizeproject_id
Permanently delete a job and its results.
Use when:
- You want to remove a job you no longer need from your account.
輸入參數job_id必填api_key
validate_query
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 run a search (use `submit_query`).
輸入參數query必填api_key
list_source_groups
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.
輸入參數pageapi_keypage_size
create_monitor
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 `backfill=true`, reference job end_date must be within the last 7 days
- If `backfill=false`, reference job age does not matter
- Minimum schedule frequency depends on your plan
Webhooks are now centralized: register them with `create_webhook`, then pass
their IDs here via `webhook_ids` (there is no inline webhook config anymore).
輸入參數limitapi_keybackfillschedule必填timezoneproject_idwebhook_idsreference_job_id必填
list_monitors
List Monitors
List all your monitors.
Returns all monitors with their schedule, status, reference query, and webhook config.
輸入參數pagesearchapi_keyownershippage_sizeproject_id
pull_monitor_results
Pull Monitor Results
Retrieve the latest results from a monitor.
Returns the most recent run's results including run_info, records, and all_records.
輸入參數api_keymonitor_id必填
pull_monitor_csv
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.
輸入參數api_keymonitor_id必填
list_monitor_jobs
List Monitor Jobs
List all jobs spawned by a monitor.
Returns the history of scheduled runs for a monitor.
輸入參數sortapi_keymonitor_id必填
disable_monitor
Disable Monitor
Disable a monitor to stop its scheduled runs.
The monitor can be re-enabled later with enable_monitor.
輸入參數api_keymonitor_id必填
enable_monitor
Enable Monitor
Enable a previously disabled monitor to resume its scheduled runs.
輸入參數api_keybackfillmonitor_id必填
update_monitor
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`).
輸入參數limitapi_keyscheduletimezonemonitor_id必填webhook_ids
delete_monitor
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).
輸入參數api_keymonitor_id必填
get_monitor_status
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.
輸入參數api_keymonitor_id必填
list_webhooks
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.
輸入參數pageapi_keypage_sizeproject_id
create_webhook
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`).
輸入參數url必填authname必填typemethodparamsapi_keyheadersproject_iddelivery_modeformatter_config
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.
輸入參數api_keywebhook_id必填
update_webhook
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.
輸入參數urlauthnametypemethodparamsapi_keyheadersis_activewebhook_id必填delivery_modeformatter_config
delete_webhook
Delete Webhook
Permanently delete a webhook endpoint.
Use when:
- You want to remove a webhook from your account.
輸入參數api_keywebhook_id必填
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.
輸入參數api_keypayloadwebhook_id必填
assign_webhook_resource
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.
輸入參數api_keywebhook_id必填resource_id必填resource_type必填
list_webhook_resources
List Webhook Resources
List the resources mapped to a webhook.
Use when:
- You want to see which jobs/monitors a webhook is attached to.
輸入參數pageapi_keypage_sizewebhook_id必填resource_type
remove_webhook_resource
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.
輸入參數api_keywebhook_id必填resource_id必填resource_type必填
list_resource_webhooks
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.
輸入參數pageapi_keyis_activepage_sizeresource_id必填resource_type必填
get_webhook_history
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 monitor and only appear in this mode.
輸入參數pageapi_keypage_sizewebhook_idresource_idresource_type
trigger_webhook
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.
輸入參數job_idapi_keywebhook_id必填resource_id必填resource_type必填
create_dataset
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.
輸入參數name必填api_keyentity_idsproject_iddescription
list_datasets
List Datasets
List your datasets.
輸入參數pagesearchapi_keysort_byownershippage_sizeproject_idsort_orderlatest_status
Get a single dataset's details.
輸入參數api_keydataset_id必填
update_dataset
Update Dataset
Update a dataset's name and/or description.
輸入參數nameapi_keydataset_id必填description
delete_dataset
Delete Dataset
Permanently delete a dataset.
The entities the dataset referenced are not deleted; only the dataset and its
entity associations are removed.
輸入參數api_keydataset_id必填
add_dataset_entities
Add Dataset Entities
Add existing entities to a dataset.
輸入參數api_keydataset_id必填entity_ids必填
remove_dataset_entities
Remove Dataset Entities
Remove entities from a dataset (the entities themselves are not deleted).
輸入參數api_keydataset_id必填entity_ids必填
list_dataset_entities
List Dataset Entities
List the entities contained in a dataset.
輸入參數pagesearchstatusapi_keysort_bypage_sizedataset_id必填sort_orderentity_type
get_dataset_status
Get Dataset Status
Get the status history of a dataset (e.g. its enrichment progress over time).
輸入參數api_keydataset_id必填
create_dataset_from_csv
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 dataset, use `append_csv_to_dataset` instead.
輸入參數file必填name必填api_keyproject_iddescription
append_csv_to_dataset
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.
輸入參數file必填api_keydataset_id必填
create_entity
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``.
輸入參數name必填api_keydescriptionentity_typeexternal_entity_idadditional_attributes
list_entities
List Entities
List your entities.
輸入參數pagesearchstatusapi_keysort_bypage_sizeproject_idsort_orderentity_type
create_entities_batch
Create Entities Batch
Create multiple entities in one call.
輸入參數api_keyentities必填
Get a single entity's details.
輸入參數api_keyentity_id必填
update_entity
Update Entity
Update an entity's name, description, external_entity_id, and/or attributes.
輸入參數nameapi_keyentity_id必填descriptionexternal_entity_idadditional_attributes
delete_entity
Delete Entity
Permanently delete an entity.
輸入參數api_keyentity_id必填
create_project
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`.
輸入參數name必填api_keydescription
list_projects
List Projects
List your projects.
輸入參數pagesearchapi_keyownershippage_size
Get a single project's details.
輸入參數api_keyproject_id必填
update_project
Update Project
Update a project's name and/or description.
Only the fields you provide are changed.
輸入參數nameapi_keyproject_id必填description
delete_project
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 independently of this one).
輸入參數api_keyproject_id必填delete_resources
get_project_overview
Get Project Overview
Get a project's resource overview (counts grouped by resource type and status).
輸入參數api_keyproject_id必填
add_project_resources
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.
輸入參數api_keyresources必填project_id必填
list_project_resources
List Project Resources
List the resources contained in a project.
輸入參數pageapi_keypage_sizeproject_id必填resource_type
remove_project_resource
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).
輸入參數api_keyproject_id必填resource_id必填resource_type必填
get_user_limits
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.
輸入參數api_key
Check API health status.
This tool maps to GET /health and does not require an API key.
輸入參數api_key
Get current API version.
This tool maps to GET /version and does not require an API key.
輸入參數api_key