Newscatcher Monitors API
Operations to create, operate and retrieve monitor results.
Operations to create, operate and retrieve monitor results.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/newscatcher-monitors-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: NewsCatcher CatchAll Monitors API
version: 1.6.1
description: "CatchAll is a web search API that generates unique datasets that don't exist anywhere else on the web. Built on NewsCatcher's proprietary real-world event index, it delivers state-of-the-art recall—finding all relevant events, not just top results.\n\n### Authentication\n\nAll endpoints except /health and /version require `x-api-key` header. If the key is invalid or missing, the API returns the `403 Forbidden` error.\n\n### Job workflow\n\n1. (Optional) Get suggestions via /catchAll/initialize\n2. Submit a query via /catchAll/submit with optional date ranges and custom validators/enrichments\n3. Poll /catchAll/status/{job_id} until completed (10-15 minutes)\n4. Retrieve results via /catchAll/pull/{job_id}\n\n### Monitor workflow\n\n1. Create successful job via /catchAll/submit\n2. Create monitor via /catchAll/monitors/create with schedule\n3. Retrieve aggregated results via /catchAll/monitors/pull/{monitor_id}\n\n### Webhook workflow\n\n1. Create a webhook via `POST /catchAll/webhooks`\n2. Attach it to a job or monitor via `POST /catchAll/webhooks/{webhook_id}/resources`,\n or pass `webhook_ids` at job or monitor creation time\n3. Receive HTTP notifications at the configured URL when each job completes\n\n### Company search workflow\n\n1. Create a dataset via `POST /catchAll/datasets/` or `POST /catchAll/datasets/upload`\n2. Wait for the dataset `latest_status` to reach `ready`\n3. Submit a job with `connected_dataset_ids` pointing to your dataset\n4. Retrieve results — each record includes a `connected_entities` array\n with relevance scores per matched company\n\n### Important notes\n\n**Dynamic schemas**: Response schemas are generated dynamically by LLMs. Field names in the `enrichment` object may vary and are not deterministic across jobs unless explicitly specified.\n"
contact:
name: NewsCatcher
url: https://newscatcherapi.com
email: support@newscatcherapi.com
servers:
- url: https://catchall.newscatcherapi.com
description: Production server
security:
- ApiKeyAuth: []
tags:
- name: Monitors
description: Operations to create, operate and retrieve monitor results.
externalDocs:
description: Automate recurring queries with scheduled jobs and webhook notifications.
url: https://www.newscatcherapi.com/docs/web-search-api/guides-and-concepts/monitors
paths:
/catchAll/monitors:
get:
tags:
- Monitors
summary: List monitors
description: Returns all monitors created by the authenticated user.
operationId: listMonitors
parameters:
- $ref: '#/components/parameters/Page'
- $ref: '#/components/parameters/PageSize'
- $ref: '#/components/parameters/Search'
- $ref: '#/components/parameters/Ownership'
- $ref: '#/components/parameters/ProjectIdQuery'
responses:
'200':
$ref: '#/components/responses/ListMonitorsResponse'
'403':
$ref: '#/components/responses/ForbiddenError'
'422':
$ref: '#/components/responses/ValidationError'
/catchAll/monitors/create:
post:
tags:
- Monitors
summary: Create monitor
description: Create a scheduled monitor based on a reference job.
operationId: createMonitor
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreateMonitorRequestDto'
example:
reference_job_id: 5f0c9087-85cb-4917-b3c7-e5a5eff73a0c
schedule: every day at 12 PM
timezone: UTC
backfill: true
limit: 10
webhook_ids:
- a1b2c3d4-e5f6-7890-abcd-ef1234567890
responses:
'200':
$ref: '#/components/responses/CreateMonitorResponse'
'422':
$ref: '#/components/responses/ValidationError'
/catchAll/monitors/pull/{monitor_id}:
get:
tags:
- Monitors
summary: Get monitor results
description: Retrieve aggregated results from all jobs executed by a monitor.
operationId: pullMonitorResults
parameters:
- name: monitor_id
in: path
required: true
schema:
type: string
format: uuid
description: Monitor identifier.
responses:
'200':
$ref: '#/components/responses/PullMonitorResponse'
'404':
$ref: '#/components/responses/NotFoundError'
'422':
$ref: '#/components/responses/ValidationError'
/catchAll/monitors/{monitor_id}/jobs:
get:
tags:
- Monitors
summary: List monitor jobs
description: Return all jobs executed by a monitor.
operationId: listMonitorJobs
parameters:
- name: monitor_id
in: path
required: true
schema:
type: string
format: uuid
description: Monitor identifier.
- name: sort
in: query
required: false
schema:
type: string
enum:
- asc
- desc
default: asc
description: Sort by start_date (asc or desc).
responses:
'200':
$ref: '#/components/responses/ListMonitorJobsResponse'
'404':
$ref: '#/components/responses/NotFoundError'
'422':
$ref: '#/components/responses/ValidationError'
/catchAll/monitors/{monitor_id}/status:
get:
tags:
- Monitors
summary: Get monitor status history
description: 'Returns the full execution history of a monitor as a list of status entries, ordered from newest to oldest.
'
operationId: getMonitorStatusHistory
parameters:
- name: monitor_id
in: path
required: true
schema:
type: string
format: uuid
description: Monitor identifier.
responses:
'200':
$ref: '#/components/responses/MonitorStatusHistoryResponse'
'401':
$ref: '#/components/responses/UnauthorizedError'
'404':
$ref: '#/components/responses/NotFoundError'
/catchAll/monitors/{monitor_id}/enable:
post:
tags:
- Monitors
summary: Enable monitor
description: Resume scheduled job execution for a monitor.
operationId: enableMonitor
parameters:
- name: monitor_id
in: path
required: true
schema:
type: string
format: uuid
description: Monitor identifier.
requestBody:
required: false
content:
application/json:
schema:
$ref: '#/components/schemas/EnableMonitorRequestDto'
example:
backfill: true
responses:
'200':
description: Monitor enabled successfully
content:
application/json:
schema:
type: object
required:
- success
- message
- monitor_id
properties:
success:
type: boolean
description: True if the operation succeeded; false otherwise.
example: true
message:
type: string
description: Human-readable success message.
example: Monitor enabled successfully.
monitor_id:
type: string
format: uuid
description: ID of the enabled monitor.
'403':
$ref: '#/components/responses/ForbiddenError'
'404':
$ref: '#/components/responses/NotFoundError'
'422':
$ref: '#/components/responses/ValidationError'
/catchAll/monitors/{monitor_id}/disable:
post:
tags:
- Monitors
summary: Disable monitor
description: Stop scheduled job execution for a monitor.
operationId: disableMonitor
parameters:
- name: monitor_id
in: path
required: true
schema:
type: string
format: uuid
description: Monitor identifier.
responses:
'200':
description: Monitor disabled successfully
content:
application/json:
schema:
type: object
required:
- success
- message
- monitor_id
properties:
success:
type: boolean
description: True if the operation succeeded; false otherwise.
example: true
message:
type: string
description: Human-readable success message.
example: Monitor disabled successfully.
monitor_id:
type: string
format: uuid
description: ID of the disabled monitor.
'403':
$ref: '#/components/responses/ForbiddenError'
'404':
$ref: '#/components/responses/NotFoundError'
'422':
$ref: '#/components/responses/ValidationError'
/catchAll/monitors/{monitor_id}:
patch:
tags:
- Monitors
summary: Update monitor
description: Update the webhook configuration for an existing monitor.
operationId: updateMonitor
externalDocs:
description: Learn about monitor configuration
url: https://www.newscatcherapi.com/docs/web-search-api/how-to/configure-monitors
parameters:
- name: monitor_id
in: path
required: true
schema:
type: string
format: uuid
description: Monitor identifier.
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateMonitorRequestDto'
example:
webhook_ids:
- a1b2c3d4-e5f6-7890-abcd-ef1234567890
responses:
'200':
$ref: '#/components/responses/UpdateMonitorResponse'
'403':
$ref: '#/components/responses/ForbiddenError'
'404':
$ref: '#/components/responses/NotFoundError'
'422':
$ref: '#/components/responses/ValidationError'
delete:
tags:
- Monitors
summary: Delete monitor
description: 'Soft-deletes a monitor. The monitor is flagged as deleted, stops
executing scheduled jobs immediately, and no longer appears in list
results.
Only the monitor owner can delete a monitor. Returns `404` if the
monitor is not found or does not belong to the authenticated user.
Deleting an already-deleted monitor returns `200`.
'
operationId: deleteMonitor
parameters:
- name: monitor_id
in: path
required: true
schema:
type: string
format: uuid
description: Monitor identifier.
responses:
'200':
$ref: '#/components/responses/DeleteMonitorResponse'
'401':
$ref: '#/components/responses/UnauthorizedError'
'404':
$ref: '#/components/responses/NotFoundError'
components:
schemas:
WebhookDto:
type: object
required:
- url
properties:
url:
type: string
format: uri
description: Webhook endpoint URL.
method:
type: string
enum:
- POST
- PUT
default: POST
description: HTTP method to use.
headers:
type: object
additionalProperties:
type: string
description: HTTP headers to include in request.
params:
type: object
description: Query string parameters.
auth:
type: array
items:
type: string
minItems: 2
maxItems: 2
description: Basic auth credentials [username, password].
ValidationErrorDetail:
type: object
properties:
loc:
type: array
items:
oneOf:
- type: string
- type: integer
description: Location of the validation error
msg:
type: string
description: Error message
type:
type: string
description: Error type
UpdateMonitorRequestDto:
type: object
properties:
webhook_ids:
type: array
items:
type: string
format: uuid
description: "Updated list of centralized webhook IDs for this monitor. \n\nReplaces all existing webhook assignments. Pass an empty array `[]` to clear all assignments. Omit to leave existing assignments unchanged.\n"
example:
- a1b2c3d4-e5f6-7890-abcd-ef1234567890
limit:
type: integer
minimum: 10
description: Updated maximum number of records per monitor run.
SharingInfo:
type: object
description: 'Present on resources shared with the authenticated user by another
organization member. Omitted entirely on resources the user owns.
'
required:
- shared_at
- permission
- shared_by
properties:
shared_at:
type: string
format: date-time
description: When the resource was shared.
example: '2026-04-15T12:00:00Z'
permission:
type: string
enum:
- view
- edit
- manage
description: Permission level granted to the recipient.
example: view
shared_by:
type: string
description: 'Display name of the user who shared the resource (first + last
name). Falls back to email address, then user ID.
'
example: John Doe
OwnershipFilter:
type: string
enum:
- all
- own
- shared
default: all
description: "Controls which resources are returned based on ownership.\n\n- `all`: Returns resources owned by the user and resources shared\n with them (default, backward compatible).\n- `own`: Returns only resources created by the authenticated user.\n- `shared`: Returns only resources shared with the user by others.\n"
BaseRecord:
type: object
required:
- record_id
- record_title
- enrichment
properties:
record_id:
type: string
description: Unique identifier for the record.
example: '6983973854314692457'
record_title:
type: string
description: Short title summarizing the record.
example: VulnCheck Raises $25M Series B Funding
enrichment:
type: object
description: "Structured data extracted from web pages. Schema is dynamically generated per job. Field names are chosen semantically to match the content.\n\n**Note:** The system always includes the `enrichment_confidence` field within the `enrichment` object, regardless of whether enrichments are generated or specified by you.\n\n For integration guidance, see [Dynamic schemas](https://www.newscatcherapi.com/docs/web-search-api/guides-and-concepts/dynamic-schemas)\n"
properties:
enrichment_confidence:
type:
- string
- 'null'
enum:
- low
- medium
- high
- null
description: Overall confidence score for the enrichment extraction.
example: high
additionalProperties: {}
example:
enrichment_confidence: high
funding_amount: 25000000
funding_currency: USD
funding_date: '2026-02-17'
investee_company:
source_text: VulnCheck
confidence: 0.99
metadata:
name: VulnCheck
domain_url: vulncheck.com
domain_url_confidence: high
investor_company:
source_text: Sorenson Capital
confidence: 0.99
metadata:
name: Sorenson Capital
domain_url: null
domain_url_confidence: null
valuation: 25000000
other_investors: National Grid Partners, Ten Eleven Ventures, In-Q-Tel
Citation:
type: object
required:
- title
- link
- published_date
properties:
title:
type: string
description: The title of the source document.
example: 'Exclusive: VulnCheck raises $25M funding to help companies patch software bugs'
link:
type: string
format: uri
description: URL to the source document.
example: https://www.msn.com/en-us/money/other/exclusive-vulncheck-raises-25m-funding-to-help-companies-patch-software-bugs/ar-AA1WwdjW
published_date:
type: string
format: date-time
description: The publication date of the source document in ISO 8601 format (UTC timezone).
example: '2026-02-17T14:01:05Z'
UpdateMonitorResponseDto:
type: object
required:
- monitor_id
- status
properties:
monitor_id:
type: string
format: uuid
description: Monitor identifier.
example: 3fec5b07-8786-46d7-9486-d43ff67eccd4
status:
type: string
description: Confirmation message.
default: Monitor updated Successfully
example: Monitor updated Successfully
Error:
type: object
properties:
detail:
type: string
description: Error message.
example: Invalid API key
ValidationErrorResponse:
type: object
properties:
detail:
type: array
items:
$ref: '#/components/schemas/ValidationErrorDetail'
MonitorStatusEntry:
type: object
required:
- status
- created_at
properties:
status:
type: string
enum:
- created
- enable
- disable
- scheduled
- dump
description: "Type of lifecycle event.\n\n- `created`: Monitor was created.\n- `enable`: Monitor was enabled.\n- `disable`: Monitor was disabled.\n- `scheduled`: A job was triggered for execution.\n `additional_information` contains `job_id`, `start_date`,\n and `end_date`.\n- `dump`: Results were collected after a job completed.\n `additional_information` contains `nb_existing_records`,\n `nb_final_records`, and optionally `webhook`.\n"
created_at:
type: string
format: date-time
description: Timestamp of this event in ISO 8601 format with UTC timezone.
example: '2026-02-05T12:04:00Z'
additional_information:
type:
- object
- 'null'
description: "Event-specific metadata. `null` for `created`, `enable`, and `disable` events.\n\nFor `scheduled`:\n```json\n{\n \"job_id\": \"c3d4e5f6-a7b8-9012-cdef-345678901234\",\n \"start_date\": \"2026-02-04T12:00:00\",\n \"end_date\": \"2026-02-05T12:00:00\"\n}\n```\n\nFor `dump`:\n```json\n{\n \"nb_existing_records\": 408,\n \"nb_final_records\": 28,\n \"webhook\": {\n \"success\": true,\n \"status_code\": 200,\n \"error_message\": null\n }\n}\n```\nThe `webhook` key is only present if the monitor has a webhook configured.\n"
MonitorCitation:
allOf:
- $ref: '#/components/schemas/Citation'
- type: object
required:
- id
- job_id
- added_on
properties:
id:
type: string
description: Unique identifier of the document in the search index.
example: 8760624448e9815f9fb4abd114c75e76
job_id:
type: string
format: uuid
description: Job ID that found this citation.
example: 6269aa54-c332-4fff-8a65-0d4e82a365e8
added_on:
type: string
format: date-time
description: The date when the citation was added to the record in ISO 8601 format with UTC timezone.
example: '2025-11-14T21:00:00Z'
description: 'Citation with monitor-specific metadata. Used in monitor results and webhook payloads.
Extends base citation with tracking information for job_id and timestamps.
'
MonitorJobItem:
type: object
required:
- job_id
- start_date
- end_date
properties:
job_id:
type: string
format: uuid
description: Unique identifier for this job execution.
start_date:
type: string
format: date-time
description: Start of the data collection time window for this job execution (based on monitor schedule) in ISO 8601 format with UTC timezone.
example: '2025-11-14T21:00:00Z'
end_date:
type: string
format: date-time
description: End of the data collection time window for this job execution (based on monitor schedule) in ISO 8601 format with UTC timezone.
example: '2025-11-15T00:00:00Z'
CreateMonitorResponseDto:
type: object
required:
- status
properties:
monitor_id:
type:
- string
- 'null'
format: uuid
description: Monitor ID if successful, null if error.
status:
type: string
description: Creation status or error message
example: Monitor Created Successfully
MonitorListItemDto:
type: object
required:
- monitor_id
- reference_job_id
- reference_job_query
- enabled
properties:
monitor_id:
type: string
format: uuid
description: Monitor identifier.
example: 7f3a8b2c-1e4d-4a5b-9c8d-6e7f8a9b0c1d
reference_job_id:
type: string
format: uuid
description: Job identifier used as a reference for this monitor.
example: 5f0c9087-85cb-4917-b3c7-e5a5eff73a0c
reference_job_query:
type: string
description: Plain text query from the reference job.
example: Series B funding rounds for SaaS startups
enabled:
type: boolean
description: True if the monitor is currently active; false otherwise.
example: true
schedule:
type: string
description: Cron expression for monitor schedule.
example: 0 12 * * *
schedule_human_readable:
type: string
description: The monitor schedule in a plain text format.
example: Every 24 hours
timezone:
type: string
description: Timezone for schedule execution.
example: UTC
created_at:
type: string
format: date-time
description: The date when the monitor was created.
example: '2025-10-23T14:30:00Z'
webhook:
oneOf:
- $ref: '#/components/schemas/WebhookDto'
- type: 'null'
description: Webhook configuration for this monitor, or null if not set.
user_key:
type: string
description: Masked API key associated with this monitor.
example: '***...a1b2'
sharing_info:
allOf:
- $ref: '#/components/schemas/SharingInfo'
description: 'Present when this monitor was shared with the authenticated user. Omitted when the user owns the monitor.
'
CreateMonitorRequestDto:
type: object
required:
- reference_job_id
- schedule
properties:
reference_job_id:
type: string
format: uuid
description: 'Job ID to use as template for scheduled runs. Defines the query, validators, and enrichments used for each scheduled run.
If [`backfill`](https://www.newscatcherapi.com/docs/web-search-api/api-reference/monitors/create-monitor#body-backfill) is true, the job''s `end_date` must be within the last 7 days.
'
schedule:
type: string
description: 'Monitor schedule in plain text format. Minimum frequency depends on your plan.
'
example: every day at 12 PM UTC
timezone:
type: string
description: "The IANA timezone identifier used as the fallback when the `schedule` string does not include an explicit timezone.\n\nIf the schedule includes a timezone abbreviation (for example, `\"every day at 9am EST\"`), the parsed timezone takes priority and this value is ignored. \n"
example: America/New_York
default: UTC
webhook_ids:
type: array
items:
type: string
format: uuid
description: 'IDs of centralized webhooks to notify on each run completion.
Passing IDs here is equivalent to calling
`POST /catchAll/webhooks/{webhook_id}/resources` for each ID after creation.
Maximum 5 per monitor.
'
example:
- a1b2c3d4-e5f6-7890-abcd-ef1234567890
limit:
type: integer
minimum: 10
description: 'Maximum number of records per monitor run. If not provided, defaults to the plan limit.
'
backfill:
type: boolean
default: true
description: "If true, fills the data gap between the reference job's `end_date` and the first scheduled run. The reference job's `end_date` must be within the last 7 days. \n\nIf false, no gap filling occurs and the first run uses the current cron window only — the reference job's age does not matter.\n"
project_id:
type: string
format: uuid
description: 'Project to assign this monitor to. The monitor appears in the project''s resource list after creation.
'
example: 60a85db4-78ec-4b78-876a-bc7d9cdadd04
DeleteMonitorResponseDto:
type: object
required:
- success
- message
- monitor_id
properties:
success:
type: boolean
description: True if the delete operation succeeded; false otherwise.
example: true
message:
type:
- string
- 'null'
description: Human-readable result message.
example: Monitor deleted successfully.
monitor_id:
type:
- string
- 'null'
format: uuid
description: ID of the deleted monitor. `null` on failure.
example: 7f3a8b2c-1e4d-4a5b-9c8d-6e7f8a9b0c1d
EnableMonitorRequestDto:
type: object
description: Optional request body for enabling a monitor.
properties:
backfill:
type: boolean
default: true
description: "If true, fills the data gap between the last job's `end_date` and the first scheduled run after enabling. The last job's `end_date` must be within the last 7 days. \n\nIf false, no gap filling occurs and the first run uses the current cron window only — the last job's age does not matter.\n"
ListMonitorsResponseDto:
type: object
required:
- total
- page
- page_size
- total_pages
- monitors
properties:
total:
type: integer
description: Total number of monitors for this user.
example: 3
page:
type: integer
description: Current page number.
example: 1
page_size:
type: integer
description: Number of monitors per page.
example: 100
total_pages:
type: integer
description: Total number of pages available.
example: 1
monitors:
type: array
items:
$ref: '#/components/schemas/MonitorListItemDto'
description: Array of monitor summaries.
ReferenceJob:
type: object
properties:
query:
type: string
description: Plain text query from the reference job.
example: Series B funding rounds for SaaS startups
context:
type: string
description: Context provided with the reference job query.
example: Focus on funding amount and company name
MonitorStatusHistoryResponseDto:
type: object
required:
- success
- monitor_id
- total_statuses
- statuses
properties:
success:
type: boolean
description: True if the request succeeded; false otherwise.
example: true
message:
type:
- string
- 'null'
description: Optional message. `null` on success.
monitor_id:
type:
- string
- 'null'
format: uuid
description: Monitor identifier. `null` on failure.
example: a1b2c3d4-e5f6-7890-abcd-ef1234567890
total_statuses:
type:
- integer
- 'null'
description: Total number of status entries in the history.
example: 39
statuses:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/MonitorStatusEntry'
description: Full status history, ordered newest to oldest.
PullMonitorResponseDto:
type: object
required:
- monitor_id
- reference_job
- status
properties:
monitor_id:
type: string
format: uuid
description: Unique identifier for the monitor.
example: 7f3a8b2c-1e4d-4a5b-9c8d-6e7f8a9b0c1d
cron_expression:
type: string
description: 'The cron expression for a monitor schedule parsed from the text schedule you provide.
Standard cron format (minute hour day month day-of-week).
'
example: 0 12 * * *
timezone:
type: string
description: Timezone used for schedule execution.
example: UTC
reference_job:
$ref: '#/components/schemas/ReferenceJob'
run_info:
type: object
description: Execution time range for this monitor.
properties:
first_run:
type: string
format: date-time
description: Timestamp of the first job execution.
example: '2025-10-23T12:00:00Z'
last_run:
type: string
format: date-time
description: Timestamp of the most recent job execution.
example: '2025-11-07T12:00:00Z'
records:
type: integer
default: 0
description: Total number of records collected across all monitor jobs.
example: 487
status:
type: string
description: Current monitor status or error message if monitor creation failed.
example: Done
all_records:
type: array
items:
$ref: '#/components/schemas/MonitorRecord'
description: 'Aggregated records from all jobs executed by this monitor. Each record includes structured data extracted from web sources with citations.
'
limit:
type:
- integer
- 'null'
description: Record limit applied to this monitor's jobs.
example: 100
MonitorRecord:
allOf:
- $ref: '#/components/schemas/BaseRecord'
- type: object
required:
- citations
properties:
citations:
type: array
items:
$ref: '#/components/schemas/MonitorCitation'
description: Source documents with monitor-specific metadata (job_id, added_on timestamps).
added_on:
type: string
format: date-time
description: The date when this record was first added to monitor results in ISO 8601 format with UTC timezone.
example: '2025-11-14T21:00:00Z'
updated_on:
type: string
format: date-time
description: The date when this record was last updated in monitor results in ISO 8601 format with UTC timezone.
# --- truncated at 32 KB (38 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/newscatcher/refs/heads/main/openapi/newscatcher-monitors-api-openapi.yml