{"serverId":"mcp-registry/com.newscatcherapi/catchall","tools":[{"name":"add_dataset_entities","fixed":{"name":"add_dataset_entities","description":"Add existing entities to a dataset.","inputSchema":{"type":"object","required":["dataset_id","entity_ids"],"properties":{"api_key":{"type":"string","default":"","description":"CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var."},"dataset_id":{"type":"string","description":"The dataset ID to add entities to."},"entity_ids":{"type":"array","items":{"type":"string"},"description":"List of entity IDs to add (required)."}},"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false},"title":"Add Dataset Entities"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":149,"tokensAfter":149},{"name":"add_project_resources","fixed":{"name":"add_project_resources","description":"Add one or more resources to a project.\n\nWebhooks are first-class project resources: a webhook can belong to several\nprojects at the same time, and deleting a project only detaches its\nwebhooks — it never deletes them.","inputSchema":{"type":"object","required":["project_id","resources"],"properties":{"api_key":{"type":"string","default":"","description":"CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var."},"resources":{"anyOf":[{"type":"array","items":{"type":"object","additionalProperties":{"type":"string"}}},{"type":"string"}],"description":"A list of resource objects, each `{\"resource_type\": ..., \"resource_id\": ...}`.\n`resource_type` is one of: 'job', 'monitor', 'dataset', 'monitor_group', 'webhook'.\nMay also be passed as a JSON-string array for client compatibility."},"project_id":{"type":"string","description":"The project ID to add resources to."}},"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false},"title":"Add Project Resources"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":276,"tokensAfter":276},{"name":"assign_webhook_resource","fixed":{"name":"assign_webhook_resource","description":"Map a resource (job, monitor, or monitor_group) to a webhook.\n\nUse when:\n- You want a webhook to fire for a specific job or monitor's deliveries.","inputSchema":{"type":"object","required":["webhook_id","resource_type","resource_id"],"properties":{"api_key":{"type":"string","default":"","description":"CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var."},"webhook_id":{"type":"string","description":"The webhook ID to attach the resource to."},"resource_id":{"type":"string","description":"The ID of the job/monitor/monitor_group to map."},"resource_type":{"type":"string","description":"Resource type: 'job', 'monitor', or 'monitor_group'."}},"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false},"title":"Assign Webhook Resource"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":213,"tokensAfter":213},{"name":"check_health","fixed":{"name":"check_health","description":"Check API health status.\n\nThis tool maps to GET /health and does not require an API key.","inputSchema":{"type":"object","properties":{"api_key":{"type":"string","default":"","description":"Optional CatchAll API key."}},"additionalProperties":false},"annotations":{"readOnlyHint":true},"title":"Check Health"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":81,"tokensAfter":81},{"name":"create_dataset","fixed":{"name":"create_dataset","description":"Create a new dataset.\n\nDatasets are collections of entities (companies/people). Connect a dataset to\na job via `submit_query(connected_dataset_ids=[...])` to narrow retrieval scope.","inputSchema":{"type":"object","required":["name"],"properties":{"name":{"type":"string","description":"Human-readable dataset name (required)."},"api_key":{"type":"string","default":"","description":"CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var."},"entity_ids":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"default":null,"description":"Optional list of existing entity IDs to seed the dataset with."},"project_id":{"type":"string","default":"","description":"Optional project ID to associate this dataset with."},"description":{"type":"string","default":"","description":"Optional dataset description."}},"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false},"title":"Create Dataset"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":259,"tokensAfter":259},{"name":"create_dataset_from_csv","fixed":{"name":"create_dataset_from_csv","description":"Create a new dataset by uploading a CSV file.\n\nThe CSV must have at least a `name` column. For meaningful entity\nenrichment each row should also include a `domain` column or a\n`description` column (or both) — a row with only a name is accepted but\nproduces lower-quality enrichment. Additional columns are mapped to entity\nattributes. Max file size is plan-dependent. To add CSV rows to an\nexisting dataset, use `append_csv_to_dataset` instead.","inputSchema":{"type":"object","required":["name","file"],"properties":{"file":{"type":"string","description":"CSV content (required) — raw CSV text or standard base64-encoded\nCSV, capped at 10 MB after decoding. Server-side file paths are\nnot accepted."},"name":{"type":"string","description":"Human-readable dataset name (required)."},"api_key":{"type":"string","default":"","description":"CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var."},"project_id":{"type":"string","default":"","description":"Optional project ID to associate this dataset with (new in 1.6.1)."},"description":{"type":"string","default":"","description":"Optional dataset description."}},"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false},"title":"Create Dataset From Csv"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":344,"tokensAfter":344},{"name":"create_entities_batch","fixed":{"name":"create_entities_batch","description":"Create multiple entities in one call.","inputSchema":{"type":"object","required":["entities"],"properties":{"api_key":{"type":"string","default":"","description":"CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var."},"entities":{"anyOf":[{"type":"array","items":{"type":"object","additionalProperties":true}},{"type":"string"}],"description":"A list of entity objects. Each object requires a ``name``\nplus one identifying field for good enrichment: either a top-level\n``\"description\"`` or ``\"additional_attributes\": {\"company_attributes\": {\"domain\": \"...\"}}``.\nAlso accepts optional ``entity_type`` ('company'/'person').\nMay also be passed as a JSON-string array."}},"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false},"title":"Create Entities Batch"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":221,"tokensAfter":221},{"name":"create_entity","fixed":{"name":"create_entity","description":"Create a single entity (a company or person).\n\n``name`` is required plus at least one identifying\nfield: either ``description`` or ``additional_attributes.company_attributes.domain``.","inputSchema":{"type":"object","required":["name"],"properties":{"name":{"type":"string","description":"Entity name (required)."},"api_key":{"type":"string","default":"","description":"CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var."},"description":{"type":"string","default":"","description":"Optional description of the entity."},"entity_type":{"type":"string","default":"","description":"Optional entity type: 'company' (default) or 'person'."},"external_entity_id":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Optional customer-supplied identifier linking this entity to\nan external system's record (new in 1.6.3)."},"additional_attributes":{"anyOf":[{"type":"object","additionalProperties":true},{"type":"null"}],"default":null,"description":"Optional structured attributes. For companies, use\n`{\"company_attributes\": {\"alternative_names\": [...], \"domain\": \"...\",\n\"key_persons\": [...], \"description\": \"...\"}}`."}},"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false},"title":"Create Entity"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":352,"tokensAfter":352},{"name":"create_monitor","fixed":{"name":"create_monitor","description":"Create a recurring monitor from a completed job.\n\nMonitors re-run a job's query on a schedule. Use the explore -> refine -> automate\npattern: submit a job, refine until results match, then create a monitor.\n\nThe schedule is defined in natural language (e.g., 'every day at 9 AM EST').\nAlways include a timezone (in the schedule text or via the `timezone` arg).\nAPI-enforced constraints apply:\n- If `backfill=true`, reference job end_date must be within the last 7 days\n- If `backfill=false`, referenc","inputSchema":{"type":"object","required":["reference_job_id","schedule"],"properties":{"limit":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Optional max records per run (minimum 10). If omitted, API uses plan default."},"api_key":{"type":"string","default":"","description":"CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var."},"backfill":{"type":"boolean","default":true,"description":"Optional gap-fill toggle before first run (default true)."},"schedule":{"type":"string","description":"Natural language schedule (e.g., 'every day at 9 AM EST', 'every Monday at 8 AM UTC', 'every 48 hours')"},"timezone":{"type":"string","default":"","description":"Optional IANA timezone for the schedule (e.g. 'America/New_York').\nDefaults to UTC. A timezone written into the schedule text overrides this."},"project_id":{"type":"string","default":"","description":"Optional project ID to associate this monitor with."},"webhook_ids":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"default":null,"description":"Optional list of webhook IDs to notify on each run completion (max 5)."},"reference_job_id":{"type":"string","description":"ID of a completed job to use as the template"}},"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false},"title":"Create Monitor"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":513,"tokensAfter":513},{"name":"create_project","fixed":{"name":"create_project","description":"Create a new project.\n\nProjects group related resources (jobs, monitors, datasets, monitor_groups)\nso you can organize work and filter listings by `project_id`.","inputSchema":{"type":"object","required":["name"],"properties":{"name":{"type":"string","description":"Human-readable project name (required)."},"api_key":{"type":"string","default":"","description":"CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var."},"description":{"type":"string","default":"","description":"Optional project description."}},"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false},"title":"Create Project"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":172,"tokensAfter":172},{"name":"create_webhook","fixed":{"name":"create_webhook","description":"Create a new webhook endpoint.\n\nUse when:\n- You want to register a URL to receive job or monitor result deliveries.\n- You need a webhook_id to attach to a monitor (via webhook_ids) or a job submission.\n- You want the webhook associated with a project from the start (pass `project_id`).","inputSchema":{"type":"object","required":["name","url"],"properties":{"url":{"type":"string","description":"Target URL that will receive webhook deliveries (required)."},"auth":{"anyOf":[{"type":"object","additionalProperties":true},{"type":"null"}],"default":null,"description":"Optional auth object forwarded with each delivery. One of:\n- {\"type\": \"bearer\", \"token\": \"...\"}\n- {\"type\": \"api_key\", \"header\": \"X-API-Key\", \"value\": \"...\"}\n- {\"type\": \"basic\", \"username\": \"...\", \"password\": \"...\"}"},"name":{"type":"string","description":"Human-readable name for the webhook (required)."},"type":{"type":"string","default":"","description":"Optional webhook target type: 'generic' (default), 'slack', 'teams', or 'custom'.\n'slack'/'teams' send pre-formatted payloads; 'generic'/'custom' send the raw result payload."},"method":{"type":"string","default":"POST","description":"HTTP method for delivery (default 'POST'). One of GET, POST, PUT, PATCH, DELETE."},"params":{"anyOf":[{"type":"object","additionalProperties":{"type":"string"}},{"type":"null"}],"default":null,"description":"Optional dict of query string parameters appended to the webhook URL."},"api_key":{"type":"string","default":"","description":"CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var."},"headers":{"anyOf":[{"type":"object","additionalProperties":{"type":"string"}},{"type":"null"}],"default":null,"description":"Optional dict of custom HTTP headers to include in deliveries."},"project_id":{"type":"string","default":"","description":"Optional project ID to associate this webhook with immediately\nupon creation. A webhook can belong to several projects at once; use\n`add_project_resources` (resource_type 'webhook') to attach it to more."},"delivery_mode":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Optional delivery mode: 'full' (default, whole result set in one call)\nor 'per_record' (one call per article)."},"formatter_config":{"anyOf":[{"type":"object","additionalProperties":true},{"type":"null"}],"default":null,"description":"Optional custom payload transformation config dict."}},"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false},"title":"Create Webhook"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":705,"tokensAfter":705},{"name":"delete_dataset","fixed":{"name":"delete_dataset","description":"Permanently delete a dataset.\n\nThe entities the dataset referenced are not deleted; only the dataset and its\nentity associations are removed.","inputSchema":{"type":"object","required":["dataset_id"],"properties":{"api_key":{"type":"string","default":"","description":"CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var."},"dataset_id":{"type":"string","description":"The dataset ID to delete."}},"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true},"title":"Delete Dataset"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: true, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":141,"tokensAfter":141},{"name":"delete_entity","fixed":{"name":"delete_entity","description":"Permanently delete an entity.","inputSchema":{"type":"object","required":["entity_id"],"properties":{"api_key":{"type":"string","default":"","description":"CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var."},"entity_id":{"type":"string","description":"The entity ID to delete."}},"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true},"title":"Delete Entity"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: true, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":108,"tokensAfter":108},{"name":"delete_job","fixed":{"name":"delete_job","description":"Permanently delete a job and its results.\n\nUse when:\n- You want to remove a job you no longer need from your account.","inputSchema":{"type":"object","required":["job_id"],"properties":{"job_id":{"type":"string","description":"The job ID to delete."},"api_key":{"type":"string","default":"","description":"CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var."}},"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true},"title":"Delete Job"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: true, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":130,"tokensAfter":130},{"name":"delete_monitor","fixed":{"name":"delete_monitor","description":"Permanently delete a monitor and stop its scheduled runs.\n\nUse when:\n- You want to remove a monitor entirely (use `disable_monitor` to only pause it).","inputSchema":{"type":"object","required":["monitor_id"],"properties":{"api_key":{"type":"string","default":"","description":"CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var."},"monitor_id":{"type":"string","description":"The monitor ID to delete."}},"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true},"title":"Delete Monitor"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: true, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":144,"tokensAfter":144},{"name":"delete_project","fixed":{"name":"delete_project","description":"Delete a project.\n\nBy default the project's resources (jobs, monitors, etc.) are detached but\nkept. Set `delete_resources=true` to also delete the contained jobs,\nmonitors, datasets, and monitor groups. Webhooks are the exception: they\nare never deleted by this operation — an attached webhook is only detached\nfrom the project and keeps working (it may belong to other projects or\nresources independently of this one).","inputSchema":{"type":"object","required":["project_id"],"properties":{"api_key":{"type":"string","default":"","description":"CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var."},"project_id":{"type":"string","description":"The project ID to delete."},"delete_resources":{"type":"boolean","default":false,"description":"If true, also delete the project's resources except\nwebhooks, which are always detached rather than deleted (default false)."}},"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true},"title":"Delete Project"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: true, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":274,"tokensAfter":274},{"name":"delete_webhook","fixed":{"name":"delete_webhook","description":"Permanently delete a webhook endpoint.\n\nUse when:\n- You want to remove a webhook from your account.","inputSchema":{"type":"object","required":["webhook_id"],"properties":{"api_key":{"type":"string","default":"","description":"CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var."},"webhook_id":{"type":"string","description":"The webhook ID to delete."}},"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true},"title":"Delete Webhook"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: true, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":130,"tokensAfter":130},{"name":"disable_monitor","fixed":{"name":"disable_monitor","description":"Disable a monitor to stop its scheduled runs.\n\nThe monitor can be re-enabled later with enable_monitor.","inputSchema":{"type":"object","required":["monitor_id"],"properties":{"api_key":{"type":"string","default":"","description":"CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var."},"monitor_id":{"type":"string","description":"The monitor ID to disable"}},"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true},"title":"Disable Monitor"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":131,"tokensAfter":131},{"name":"enable_monitor","fixed":{"name":"enable_monitor","description":"Enable a previously disabled monitor to resume its scheduled runs.","inputSchema":{"type":"object","required":["monitor_id"],"properties":{"api_key":{"type":"string","default":"","description":"CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var."},"backfill":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"Optional backfill behavior for resume."},"monitor_id":{"type":"string","description":"The monitor ID to enable"}},"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true},"title":"Enable Monitor"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":155,"tokensAfter":155},{"name":"get_dataset","fixed":{"name":"get_dataset","description":"Get a single dataset's details.","inputSchema":{"type":"object","required":["dataset_id"],"properties":{"api_key":{"type":"string","default":"","description":"CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var."},"dataset_id":{"type":"string","description":"The dataset ID to retrieve."}},"additionalProperties":false},"annotations":{"readOnlyHint":true},"title":"Get Dataset"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":110,"tokensAfter":110},{"name":"get_dataset_status","fixed":{"name":"get_dataset_status","description":"Get the status history of a dataset (e.g. its enrichment progress over time).","inputSchema":{"type":"object","required":["dataset_id"],"properties":{"api_key":{"type":"string","default":"","description":"CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var."},"dataset_id":{"type":"string","description":"The dataset ID to inspect."}},"additionalProperties":false},"annotations":{"readOnlyHint":true},"title":"Get Dataset Status"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":124,"tokensAfter":124},{"name":"get_entity","fixed":{"name":"get_entity","description":"Get a single entity's details.","inputSchema":{"type":"object","required":["entity_id"],"properties":{"api_key":{"type":"string","default":"","description":"CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var."},"entity_id":{"type":"string","description":"The entity ID to retrieve."}},"additionalProperties":false},"annotations":{"readOnlyHint":true},"title":"Get Entity"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":108,"tokensAfter":108},{"name":"get_job_status","fixed":{"name":"get_job_status","description":"Check the status of a submitted job.\n\nCall this after submit_query to see if your job is ready.\nStatus progression: submitted -> analyzing -> fetching -> clustering -> enriching -> completed/failed\n\nIMPORTANT: Jobs take several minutes to process.\nFirst check after ~1-2 minutes, then poll every 30-60 seconds.\nBroad searches can take 10-30+ minutes; for long jobs, poll every 60-120 seconds.\nDo NOT call this tool in a tight loop.\nStop polling when status is `completed` or `failed`.\nTreat `submitte","inputSchema":{"type":"object","required":["job_id"],"properties":{"job_id":{"type":"string","description":"The job ID returned from submit_query"},"api_key":{"type":"string","default":"","description":"CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var."}},"additionalProperties":false},"annotations":{"readOnlyHint":true},"title":"Get Job Status"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":244,"tokensAfter":244},{"name":"get_monitor_status","fixed":{"name":"get_monitor_status","description":"Get the status history of a monitor.\n\nUse when:\n- You want to see the timeline of a monitor's state changes (e.g. active,\n  disabled, errored) and any related details.","inputSchema":{"type":"object","required":["monitor_id"],"properties":{"api_key":{"type":"string","default":"","description":"CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var."},"monitor_id":{"type":"string","description":"The monitor ID to inspect."}},"additionalProperties":false},"annotations":{"readOnlyHint":true},"title":"Get Monitor Status"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":150,"tokensAfter":150},{"name":"get_project","fixed":{"name":"get_project","description":"Get a single project's details.","inputSchema":{"type":"object","required":["project_id"],"properties":{"api_key":{"type":"string","default":"","description":"CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var."},"project_id":{"type":"string","description":"The project ID to retrieve."}},"additionalProperties":false},"annotations":{"readOnlyHint":true},"title":"Get Project"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":110,"tokensAfter":110},{"name":"get_project_overview","fixed":{"name":"get_project_overview","description":"Get a project's resource overview (counts grouped by resource type and status).","inputSchema":{"type":"object","required":["project_id"],"properties":{"api_key":{"type":"string","default":"","description":"CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var."},"project_id":{"type":"string","description":"The project ID to summarize."}},"additionalProperties":false},"annotations":{"readOnlyHint":true},"title":"Get Project Overview"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":126,"tokensAfter":126},{"name":"get_user_limits","fixed":{"name":"get_user_limits","description":"Retrieve plan features and current usage limits for your API key.\n\nUse when:\n- You want to know how many records/jobs/monitors your plan allows.\n- You want to check current usage against plan limits before running a large job.","inputSchema":{"type":"object","properties":{"api_key":{"type":"string","default":"","description":"CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var."}},"additionalProperties":false},"annotations":{"readOnlyHint":true},"title":"Get User Limits"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":138,"tokensAfter":138},{"name":"get_version","fixed":{"name":"get_version","description":"Get current API version.\n\nThis tool maps to GET /version and does not require an API key.","inputSchema":{"type":"object","properties":{"api_key":{"type":"string","default":"","description":"Optional CatchAll API key."}},"additionalProperties":false},"annotations":{"readOnlyHint":true},"title":"Get Version"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":81,"tokensAfter":81},{"name":"get_webhook","fixed":{"name":"get_webhook","description":"Retrieve the full configuration of a specific webhook.\n\nUse when:\n- You want to inspect a webhook's URL, method, headers, or status by its ID.","inputSchema":{"type":"object","required":["webhook_id"],"properties":{"api_key":{"type":"string","default":"","description":"CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var."},"webhook_id":{"type":"string","description":"The webhook ID to retrieve."}},"additionalProperties":false},"annotations":{"readOnlyHint":true},"title":"Get Webhook"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":141,"tokensAfter":141},{"name":"get_webhook_history","fixed":{"name":"get_webhook_history","description":"Get webhook delivery history, either for a resource or for a webhook.\n\nQuery in exactly one of two modes:\n- By resource: pass `resource_type` + `resource_id` to see deliveries made\n  for a specific job/monitor/monitor_group.\n- By webhook: pass `webhook_id` to see every delivery made through one\n  webhook — including manual test deliveries (from `test_webhook`), which\n  are not tied to a job or monitor and only appear in this mode.","inputSchema":{"type":"object","properties":{"page":{"type":"integer","default":1,"description":"Page number for pagination (default: 1)."},"api_key":{"type":"string","default":"","description":"CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var."},"page_size":{"type":"integer","default":50,"description":"Number of results per page (default: 50, max: 500)."},"webhook_id":{"type":"string","default":"","description":"Webhook ID to fetch history for. Mutually exclusive with\n`resource_type`/`resource_id`."},"resource_id":{"type":"string","default":"","description":"The ID of the job/monitor/monitor_group."},"resource_type":{"type":"string","default":"","description":"Resource type: 'job', 'monitor', or 'monitor_group'.\nRequired together with `resource_id` when `webhook_id` is not given."}},"additionalProperties":false},"annotations":{"readOnlyHint":true},"title":"Get Webhook History"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":377,"tokensAfter":377},{"name":"initialize_query","fixed":{"name":"initialize_query","description":"Preview suggested validators, enrichments, and date ranges before submitting.\n\nUse when:\n- You want to inspect/edit auto-generated validators/enrichments before submitting.\n- You want to preview date adjustments via `date_modification_message`.\n\nDo not use when:\n- You want to start processing immediately with final inputs (use `submit_query`).\n\nKey behavior:\n- Preview-only endpoint: does not create a job and does not start processing.\n- Suggestions are LLM-generated and not deterministic across ","inputSchema":{"type":"object","required":["query"],"properties":{"query":{"type":"string","description":"Natural language query to preview (required). If you plan to attach a\ncompany dataset via `connected_dataset_ids` in the subsequent `submit_query`,\ndo NOT reference the company list here — entity filtering is applied\nautomatically by the dataset, not by the query text."},"api_key":{"type":"string","default":"","description":"CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var."},"context":{"type":"string","default":"","description":"Optional guidance on what to prioritize so suggested validators,\nenrichments, and dates align with your target data points. If a company\ndataset will be attached in `submit_query`, note that entity-relevance\nvalidators (e.g. `company_is_primary_subject`) will be auto-generated —\ndo not ask for them here. Do not mention things like \"company list will be attached\".\nFocus on the event or topic only."},"fetch_all_watchlist_news":{"type":"boolean","default":false,"description":"When `True`, signals that the subsequent job will\nretrieve all news for connected watchlist entities without topic filtering.\nPass this when you intend to use `fetch_all_watchlist_news=True` in\n`submit_query` so the previewed validators/enrichments are generated\naccordingly. Requires `connected_dataset_ids` to be set in `submit_query`.\nDefault: `False`."}},"additionalProperties":false},"annotations":{"readOnlyHint":true},"title":"Initialize Query"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":560,"tokensAfter":560},{"name":"list_dataset_entities","fixed":{"name":"list_dataset_entities","description":"List the entities contained in a dataset.","inputSchema":{"type":"object","required":["dataset_id"],"properties":{"page":{"type":"integer","default":1,"description":"Page number for pagination (default: 1)."},"search":{"type":"string","default":"","description":"Optional text filter on entity name."},"status":{"type":"string","default":"","description":"Optional status filter: 'pending', 'enriching', 'ready', or 'failed'."},"api_key":{"type":"string","default":"","description":"CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var."},"sort_by":{"type":"string","default":"","description":"Optional sort field: 'created_at', 'name', or 'status'."},"page_size":{"type":"integer","default":100,"description":"Number of results per page (default: 100)."},"dataset_id":{"type":"string","description":"The dataset ID whose entities you want."},"sort_order":{"type":"string","default":"","description":"Optional sort direction: 'asc' or 'desc'."},"entity_type":{"type":"string","default":"","description":"Optional type filter: 'company' or 'person'."}},"additionalProperties":false},"annotations":{"readOnlyHint":true},"title":"List Dataset Entities"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":324,"tokensAfter":324},{"name":"list_datasets","fixed":{"name":"list_datasets","description":"List your datasets.","inputSchema":{"type":"object","properties":{"page":{"type":"integer","default":1,"description":"Page number for pagination (default: 1)."},"search":{"type":"string","default":"","description":"Optional text filter on the dataset name."},"api_key":{"type":"string","default":"","description":"CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var."},"sort_by":{"type":"string","default":"","description":"Optional sort field: 'name', 'created_at', or 'status'."},"ownership":{"type":"string","default":"","description":"Optional ownership filter: 'all', 'own', or 'shared'."},"page_size":{"type":"integer","default":100,"description":"Number of results per page (default: 100, max: 1000)."},"project_id":{"type":"string","default":"","description":"Optional filter to datasets belonging to a specific project."},"sort_order":{"type":"string","default":"","description":"Optional sort direction: 'asc' or 'desc'."},"latest_status":{"type":"string","default":"","description":"Optional status filter: 'pending', 'enriching', 'ready', or 'failed'."}},"additionalProperties":false},"annotations":{"readOnlyHint":true},"title":"List Datasets"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":326,"tokensAfter":326},{"name":"list_entities","fixed":{"name":"list_entities","description":"List your entities.","inputSchema":{"type":"object","properties":{"page":{"type":"integer","default":1,"description":"Page number for pagination (default: 1)."},"search":{"type":"string","default":"","description":"Optional text filter on entity name."},"status":{"type":"string","default":"","description":"Optional status filter: 'pending', 'enriching', 'ready', or 'failed'."},"api_key":{"type":"string","default":"","description":"CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var."},"sort_by":{"type":"string","default":"","description":"Optional sort field: 'created_at', 'name', or 'status'."},"page_size":{"type":"integer","default":100,"description":"Number of results per page (default: 100, max: 1000)."},"project_id":{"type":"string","default":"","description":"Optional filter to entities belonging to a specific project."},"sort_order":{"type":"string","default":"","description":"Optional sort direction: 'asc' or 'desc'."},"entity_type":{"type":"string","default":"","description":"Optional type filter: 'company' or 'person'."}},"additionalProperties":false},"annotations":{"readOnlyHint":true},"title":"List Entities"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":321,"tokensAfter":321},{"name":"list_monitor_jobs","fixed":{"name":"list_monitor_jobs","description":"List all jobs spawned by a monitor.\n\nReturns the history of scheduled runs for a monitor.","inputSchema":{"type":"object","required":["monitor_id"],"properties":{"sort":{"type":"string","default":"asc","description":"Sort order by start_date: 'asc' (default) or 'desc'"},"api_key":{"type":"string","default":"","description":"CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var."},"monitor_id":{"type":"string","description":"The monitor ID to list jobs for"}},"additionalProperties":false},"annotations":{"readOnlyHint":true},"title":"List Monitor Jobs"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":159,"tokensAfter":159},{"name":"list_monitors","fixed":{"name":"list_monitors","description":"List all your monitors.\n\nReturns all monitors with their schedule, status, reference query, and webhook config.","inputSchema":{"type":"object","properties":{"page":{"type":"integer","default":1,"description":"Page number for pagination (default: 1)."},"search":{"type":"string","default":"","description":"Optional text filter on the monitor query."},"api_key":{"type":"string","default":"","description":"CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var."},"ownership":{"type":"string","default":"","description":"Optional ownership filter: 'all', 'own', or 'shared'."},"page_size":{"type":"integer","default":100,"description":"Number of results per page (default: 100, max: 1000)."},"project_id":{"type":"string","default":"","description":"Optional filter to monitors belonging to a specific project."}},"additionalProperties":false},"annotations":{"readOnlyHint":true},"title":"List Monitors"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":256,"tokensAfter":256},{"name":"list_project_resources","fixed":{"name":"list_project_resources","description":"List the resources contained in a project.","inputSchema":{"type":"object","required":["project_id"],"properties":{"page":{"type":"integer","default":1,"description":"Page number for pagination (default: 1)."},"api_key":{"type":"string","default":"","description":"CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var."},"page_size":{"type":"integer","default":100,"description":"Number of results per page (default: 100, max: 1000)."},"project_id":{"type":"string","description":"The project ID whose resources you want."},"resource_type":{"type":"string","default":"","description":"Optional filter: 'job', 'monitor', 'dataset', 'monitor_group', or 'webhook'."}},"additionalProperties":false},"annotations":{"readOnlyHint":true},"title":"List Project Resources"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":217,"tokensAfter":217},{"name":"list_projects","fixed":{"name":"list_projects","description":"List your projects.","inputSchema":{"type":"object","properties":{"page":{"type":"integer","default":1,"description":"Page number for pagination (default: 1)."},"search":{"type":"string","default":"","description":"Optional text filter on the project name."},"api_key":{"type":"string","default":"","description":"CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var."},"ownership":{"type":"string","default":"","description":"Optional ownership filter: 'all', 'own', or 'shared'."},"page_size":{"type":"integer","default":100,"description":"Number of results per page (default: 100, max: 1000)."}},"additionalProperties":false},"annotations":{"readOnlyHint":true},"title":"List Projects"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":196,"tokensAfter":196},{"name":"list_resource_webhooks","fixed":{"name":"list_resource_webhooks","description":"List the webhooks mapped to a specific resource (job/monitor/monitor_group).\n\nUse when:\n- You have a job or monitor ID and want to know which webhooks will fire for it.","inputSchema":{"type":"object","required":["resource_type","resource_id"],"properties":{"page":{"type":"integer","default":1,"description":"Page number for pagination (default: 1)."},"api_key":{"type":"string","default":"","description":"CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var."},"is_active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"Optional filter — only active (true) or inactive (false) webhooks."},"page_size":{"type":"integer","default":100,"description":"Number of results per page (default: 100, max: 1000)."},"resource_id":{"type":"string","description":"The ID of the job/monitor/monitor_group."},"resource_type":{"type":"string","description":"Resource type: 'job', 'monitor', or 'monitor_group'."}},"additionalProperties":false},"annotations":{"readOnlyHint":true},"title":"List Resource Webhooks"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":291,"tokensAfter":291},{"name":"list_source_groups","fixed":{"name":"list_source_groups","description":"List source groups (named domain allowlists).\n\nUse when:\n- You want to discover reusable, named sets of source domains (public groups\n  plus any organization-visibility groups your organization can access).\n- You need a group's `slug` to attach to `submit_query` via `source_groups`\n  to scope fetching to that domain allowlist.","inputSchema":{"type":"object","properties":{"page":{"type":"integer","default":1,"description":"Page number for pagination (default: 1)."},"api_key":{"type":"string","default":"","description":"CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var."},"page_size":{"type":"integer","default":100,"description":"Number of results per page (default: 100, max: 500)."}},"additionalProperties":false},"annotations":{"readOnlyHint":true},"title":"List Source Groups"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":226,"tokensAfter":226},{"name":"list_user_jobs","fixed":{"name":"list_user_jobs","description":"List all jobs submitted by you.\n\nReturns your job history with IDs, queries, statuses, and timestamps.","inputSchema":{"type":"object","properties":{"mode":{"type":"string","default":"","description":"Optional filter by job processing mode: 'base' or 'lite'."},"page":{"type":"integer","default":1,"description":"Page number for pagination (default: 1)"},"search":{"type":"string","default":"","description":"Optional text filter on the job query."},"api_key":{"type":"string","default":"","description":"CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var."},"ownership":{"type":"string","default":"","description":"Optional ownership filter: 'all', 'own', or 'shared'."},"page_size":{"type":"integer","default":100,"description":"Number of results per page (default: 100, max: 1000)"},"project_id":{"type":"string","default":"","description":"Optional filter to jobs belonging to a specific project."}},"additionalProperties":false},"annotations":{"readOnlyHint":true},"title":"List User Jobs"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":282,"tokensAfter":282},{"name":"list_webhook_resources","fixed":{"name":"list_webhook_resources","description":"List the resources mapped to a webhook.\n\nUse when:\n- You want to see which jobs/monitors a webhook is attached to.","inputSchema":{"type":"object","required":["webhook_id"],"properties":{"page":{"type":"integer","default":1,"description":"Page number for pagination (default: 1)."},"api_key":{"type":"string","default":"","description":"CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var."},"page_size":{"type":"integer","default":100,"description":"Number of results per page (default: 100, max: 1000)."},"webhook_id":{"type":"string","description":"The webhook ID whose resource mappings you want."},"resource_type":{"type":"string","default":"","description":"Optional filter: 'job', 'monitor', or 'monitor_group'."}},"additionalProperties":false},"annotations":{"readOnlyHint":true},"title":"List Webhook Resources"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":234,"tokensAfter":234},{"name":"list_webhooks","fixed":{"name":"list_webhooks","description":"List all your webhooks.\n\nUse when:\n- You want to see all webhook endpoints configured in your account.\n- You need to find a webhook_id to pass to monitors (via webhook_ids) or jobs.","inputSchema":{"type":"object","properties":{"page":{"type":"integer","default":1,"description":"Page number for pagination (default: 1)."},"api_key":{"type":"string","default":"","description":"CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var."},"page_size":{"type":"integer","default":100,"description":"Number of results per page (default: 100, max: 1000)."},"project_id":{"type":"string","default":"","description":"Optional filter to webhooks belonging to a specific project."}},"additionalProperties":false},"annotations":{"readOnlyHint":true},"title":"List Webhooks"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":217,"tokensAfter":217},{"name":"remove_dataset_entities","fixed":{"name":"remove_dataset_entities","description":"Remove entities from a dataset (the entities themselves are not deleted).","inputSchema":{"type":"object","required":["dataset_id","entity_ids"],"properties":{"api_key":{"type":"string","default":"","description":"CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var."},"dataset_id":{"type":"string","description":"The dataset ID to remove entities from."},"entity_ids":{"type":"array","items":{"type":"string"},"description":"List of entity IDs to remove (required)."}},"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true},"title":"Remove Dataset Entities"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: true, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":163,"tokensAfter":163},{"name":"remove_project_resource","fixed":{"name":"remove_project_resource","description":"Remove a single resource from a project.\n\nThis detaches the resource from the project without deleting the resource\nitself (e.g. removing a webhook only ends its membership in this project;\nthe webhook keeps existing and stays attached to any other projects).","inputSchema":{"type":"object","required":["project_id","resource_type","resource_id"],"properties":{"api_key":{"type":"string","default":"","description":"CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var."},"project_id":{"type":"string","description":"The project ID to remove the resource from."},"resource_id":{"type":"string","description":"The ID of the resource to remove."},"resource_type":{"type":"string","description":"Resource type: 'job', 'monitor', 'dataset', 'monitor_group', or 'webhook'."}},"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true},"title":"Remove Project Resource"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: true, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":248,"tokensAfter":248},{"name":"remove_webhook_resource","fixed":{"name":"remove_webhook_resource","description":"Unmap a resource from a webhook.\n\nUse when:\n- You want to stop a webhook from firing for a specific job or monitor.","inputSchema":{"type":"object","required":["webhook_id","resource_type","resource_id"],"properties":{"api_key":{"type":"string","default":"","description":"CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var."},"webhook_id":{"type":"string","description":"The webhook ID to detach the resource from."},"resource_id":{"type":"string","description":"The ID of the mapped job/monitor/monitor_group."},"resource_type":{"type":"string","description":"Resource type: 'job', 'monitor', or 'monitor_group'."}},"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true},"title":"Remove Webhook Resource"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: true, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":205,"tokensAfter":205},{"name":"submit_query","fixed":{"name":"submit_query","description":"Create a new CatchAll processing job from a natural-language query.\n\nUse when:\n- You want to start a new CatchAll web research run from a user query.\n- You want the API to fetch/process sources and then return structured results.\n\nDo not use when:\n- You want status for an existing job (use `get_job_status`).\n- You want records for an existing job (use `pull_results`).\n\nKey rules:\n- `query` is required.\n- You can submit with only `query`; omitted optional fields (`validators`, `enrichments`, `sta","inputSchema":{"type":"object","required":["query"],"properties":{"mode":{"type":"string","default":"","description":"Optional job processing mode: `\"lite\"` (faster, lower cost, less detail) or `\"base\"` (default,\nfull extraction). If omitted, the API defaults to `\"base\"`."},"limit":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Optional processing cap (minimum 10); affects cost. Omit to retrieve everything\nup to your plan's maximum."},"query":{"type":"string","description":"Plain text search intent (required)."},"schema":{"type":"string","default":"","description":"Optional advanced custom JSON schema string that overrides the default extraction\nschema. Use `initialize_query` to discover a suitable schema."},"api_key":{"type":"string","default":"","description":"CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var."},"context":{"type":"string","default":"","description":"Optional guidance on what to prioritize (for example, target entities,\nevent types, and specific data points you want captured in enrichments).\nIf a company dataset will be attached, note that entity-relevance\nvalidators (e.g. `company_is_primary_subject`) will be auto-generated —\ndo not ask for them here. Do not mention things like \"company list will be attached\"."},"end_date":{"type":"string","default":"","description":"Optional ISO 8601 UTC end of search window."},"project_id":{"type":"string","default":"","description":"Optional project ID to associate this job with."},"start_date":{"type":"string","default":"","description":"Optional ISO 8601 UTC start of search window."},"validators":{"anyOf":[{"type":"array","items":{"type":"object","required":["name","description","type"],"properties":{"name":{"type":"string"},"type":{"type":"string","const":"boolean"},"description":{"type":"string"}},"description":"Schema for a custom validator."}},{"type":"string"},{"type":"null"}],"default":null,"description":"Optional custom boolean validators (`name`, `description`, `type`), as array or JSON-string array.\nWhen `connected_dataset_ids` is set, do NOT include entity-relevance validators such as\n`company_is_primary_subject` — the API generates those automatically. Only add validators\nthat describe the event or topic (e.g. `is_acquisition_event`)."},"enrichments":{"anyOf":[{"type":"array","items":{"type":"object","required":["name","description","type"],"properties":{"name":{"type":"string"},"type":{"enum":["text","number","date","option","url","company"],"type":"string"},"description":{"type":"string"}},"description":"Schema for a custom enrichment."}},{"type":"string"},{"type":"null"}],"default":null,"description":"Optional custom enrichments (`name`, `description`, `type`), as array or JSON-string array."},"webhook_ids":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"default":null,"description":"Optional list of webhook IDs to notify when the job completes (max 5 per job).\nUse `list_webhooks` / `create_webhook` to get IDs."},"ed_score_min":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Optional minimum entity-domain relevance score (1-10). Only relevant when\n`connected_dataset_ids` is set."},"ed_association_type":{"type":"string","default":"","description":"Optional filter on how strongly a watchlist entity must appear in\neach event. Only relevant when `connected_dataset_ids` is set.\n- `\"event_associated\"`: keep only events where the entity is a **direct actor** (default when connected_dataset_ids is set).\n- `\"mention\"`: keep all even where the entity is **merely referenced**."},"connected_dataset_ids":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"default":null,"description":"Optional list of dataset IDs whose entities narrow the retrieval\nscope. When set: (1) entity filtering is applied automatically — do NOT mention the\ncompany list or watchlist in `query`; (2) entity-relevance validators such as\n`company_is_primary_subject` are generated automatically — do NOT add them to\n`validators`. `ed_score_min` defaults to 2 if not provided."},"fetch_all_watchlist_news":{"type":"boolean","default":false,"description":"When `True`, retrieves **all** news for connected watchlist\nentities without applying topic filtering from `query`. Requires\n`connected_dataset_ids` to be set. Default: `False`."}},"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false},"title":"Submit Query"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":1385,"tokensAfter":1385},{"name":"update_dataset","fixed":{"name":"update_dataset","description":"Update a dataset's name and/or description.","inputSchema":{"type":"object","required":["dataset_id"],"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Optional new dataset name."},"api_key":{"type":"string","default":"","description":"CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var."},"dataset_id":{"type":"string","description":"The dataset ID to update."},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Optional new dataset description."}},"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true},"title":"Update Dataset"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":179,"tokensAfter":179},{"name":"update_entity","fixed":{"name":"update_entity","description":"Update an entity's name, description, external_entity_id, and/or attributes.","inputSchema":{"type":"object","required":["entity_id"],"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Optional new entity name."},"api_key":{"type":"string","default":"","description":"CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var."},"entity_id":{"type":"string","description":"The entity ID to update."},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Optional new description."},"external_entity_id":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Optional customer-supplied identifier linking this entity to\nan external system's record (new in 1.6.3)."},"additional_attributes":{"anyOf":[{"type":"object","additionalProperties":true},{"type":"null"}],"default":null,"description":"Optional updated structured attributes\n(see `create_entity` for the company_attributes shape)."}},"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true},"title":"Update Entity"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":304,"tokensAfter":304},{"name":"update_monitor","fixed":{"name":"update_monitor","description":"Update a monitor's schedule, timezone, webhook assignments, and per-run limit.\n\nNote: reference_job_id cannot be modified through this endpoint.\nWebhooks are centralized — pass webhook IDs (from `create_webhook`/`list_webhooks`).","inputSchema":{"type":"object","required":["monitor_id"],"properties":{"limit":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Optional updated maximum records per run (minimum 10)."},"api_key":{"type":"string","default":"","description":"CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var."},"schedule":{"type":"string","default":"","description":"Optional new natural-language schedule to replace the monitor's current\none (e.g. 'every day at 9 AM', 'every Monday at 6 PM EST'). Leave unset to keep\nthe current schedule. The scheduler picks up the new schedule on its next\nreload and the old schedule stops firing."},"timezone":{"type":"string","default":"","description":"Optional IANA timezone for the new schedule (e.g. 'America/New_York').\nDefaults to UTC. Overridden if the schedule text itself contains a timezone.\nIgnored if `schedule` is not set."},"monitor_id":{"type":"string","description":"The monitor ID to update"},"webhook_ids":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"default":null,"description":"Optional list of webhook IDs to assign to this monitor.\nPass an empty list `[]` to clear all webhook assignments."}},"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true},"title":"Update Monitor"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":427,"tokensAfter":427},{"name":"update_project","fixed":{"name":"update_project","description":"Update a project's name and/or description.\n\nOnly the fields you provide are changed.","inputSchema":{"type":"object","required":["project_id"],"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Optional new project name."},"api_key":{"type":"string","default":"","description":"CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var."},"project_id":{"type":"string","description":"The project ID to update."},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Optional new project description."}},"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true},"title":"Update Project"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":191,"tokensAfter":191},{"name":"update_webhook","fixed":{"name":"update_webhook","description":"Update an existing webhook's configuration.\n\nUse when:\n- You want to change a webhook's URL, method, headers, or other settings.\n- You want to enable or disable a webhook (set `is_active`).\n- Only the fields you provide are updated; omitted fields remain unchanged.","inputSchema":{"type":"object","required":["webhook_id"],"properties":{"url":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Updated target URL."},"auth":{"anyOf":[{"type":"object","additionalProperties":true},{"type":"null"}],"default":null,"description":"Updated auth object. One of:\n- {\"type\": \"bearer\", \"token\": \"...\"}\n- {\"type\": \"api_key\", \"header\": \"X-API-Key\", \"value\": \"...\"}\n- {\"type\": \"basic\", \"username\": \"...\", \"password\": \"...\"}"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Updated webhook name."},"type":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Updated webhook type: 'generic', 'slack', 'teams', or 'custom'."},"method":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Updated HTTP method: one of GET, POST, PUT, PATCH, DELETE."},"params":{"anyOf":[{"type":"object","additionalProperties":{"type":"string"}},{"type":"null"}],"default":null,"description":"Updated dict of query string parameters."},"api_key":{"type":"string","default":"","description":"CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var."},"headers":{"anyOf":[{"type":"object","additionalProperties":{"type":"string"}},{"type":"null"}],"default":null,"description":"Updated dict of custom HTTP headers."},"is_active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"Set to false to disable the webhook (stop deliveries), true to re-enable it."},"webhook_id":{"type":"string","description":"The webhook ID to update."},"delivery_mode":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Updated delivery mode: 'full' or 'per_record'."},"formatter_config":{"anyOf":[{"type":"object","additionalProperties":true},{"type":"null"}],"default":null,"description":"Updated formatter configuration dict."}},"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true},"title":"Update Webhook"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":631,"tokensAfter":631},{"name":"validate_query","fixed":{"name":"validate_query","description":"Check the quality of a query before submitting a job (\"Check Query Quality\").\n\nUse when:\n- You want quick feedback on whether a query is well-formed for CatchAll\n  before spending credits on a job.\n- You want concrete suggestions to improve a vague or overly broad query.\n\nDo not use when:\n- You want to preview auto-generated validators/enrichments (use `initialize_query`).\n- You want to actually run a search (use `submit_query`).","inputSchema":{"type":"object","required":["query"],"properties":{"query":{"type":"string","description":"The natural-language query to assess (required)."},"api_key":{"type":"string","default":"","description":"CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var."}},"additionalProperties":false},"annotations":{"readOnlyHint":true},"title":"Validate Query"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":228,"tokensAfter":228}],"toolsChanged":53,"tokensSaved":0,"todo":[],"note":"Deterministic fixes. Changes marked verify need a human look before shipping (renames, inferred annotations, inferred types, removed text). Parameter descriptions in `todo` need to be written by someone who knows the API."}