Datafold Monitors API
The Monitors API from Datafold — 11 operation(s) for monitors.
The Monitors API from Datafold — 11 operation(s) for monitors.
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/datafold-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:
contact:
email: support@datafold.com
name: API Support
description: "The Datafold API reference is a guide to our available endpoints and authentication methods.\nIf you're just getting started with Datafold, we recommend first checking out our [documentation](https://docs.datafold.com).\n\n:::info\n To use the Datafold API, you should first create a Datafold API Key,\n which should be stored as a local environment variable named DATAFOLD_API_KEY.\n This can be set in your Datafold Cloud's Settings under the Account page.\n:::"
title: Datafold Audit Logs Monitors API
version: latest
servers:
- description: Default server
url: https://app.datafold.com
security:
- ApiKeyAuth: []
tags:
- name: Monitors
paths:
/api/v1/monitors:
get:
operationId: list_monitors_api_v1_monitors_get
parameters:
- description: The page number to retrieve.
in: query
name: page
required: false
schema:
default: 1
description: The page number to retrieve.
title: Page
type: integer
- description: The number of items to retrieve per page.
in: query
name: page_size
required: false
schema:
default: 20
description: The number of items to retrieve per page.
title: Page Size
type: integer
- description: Field to order the monitors by.
in: query
name: order_by
required: false
schema:
anyOf:
- $ref: '#/components/schemas/SortableFields'
- type: 'null'
description: Field to order the monitors by.
title: Order By
- description: Specify the order direction for the monitors.
in: query
name: sort_order
required: false
schema:
default: desc
description: Specify the order direction for the monitors.
enum:
- asc
- desc
title: Sort Order
type: string
- description: Comma-separated tags to filter monitors by.
in: query
name: tags
required: false
schema:
description: Comma-separated tags to filter monitors by.
title: Tags
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/ApiPublicListMonitorsOut'
description: Successful Response
'422':
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
description: Validation Error
summary: List Monitors
tags:
- Monitors
/api/v1/monitors/create/diff:
post:
operationId: create_monitor_diff_api_v1_monitors_create_diff_post
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/DataDiffMonitorSpecPublic'
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/ApiPublicCreateMonitorOut'
description: Successful Response
'422':
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
description: Validation Error
summary: Create a Data Diff Monitor
tags:
- Monitors
/api/v1/monitors/create/metric:
post:
operationId: create_monitor_metric_api_v1_monitors_create_metric_post
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/MetricMonitorSpecPublic'
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/ApiPublicCreateMonitorOut'
description: Successful Response
'422':
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
description: Validation Error
summary: Create a Metric Monitor
tags:
- Monitors
/api/v1/monitors/create/schema:
post:
operationId: create_monitor_schema_api_v1_monitors_create_schema_post
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/SchemaChangeMonitorSpecPublic'
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/ApiPublicCreateMonitorOut'
description: Successful Response
'422':
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
description: Validation Error
summary: Create a Schema Change Monitor
tags:
- Monitors
/api/v1/monitors/create/test:
post:
operationId: create_monitor_test_api_v1_monitors_create_test_post
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/DataTestMonitorSpecPublic'
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/ApiPublicCreateMonitorOut'
description: Successful Response
'422':
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
description: Validation Error
summary: Create a Data Test Monitor
tags:
- Monitors
/api/v1/monitors/{id}:
delete:
operationId: delete_monitor_api_v1_monitors__id__delete
parameters:
- description: The unique identifier of the monitor.
in: path
name: id
required: true
schema:
description: The unique identifier of the monitor.
title: Id
type: integer
responses:
'200':
content:
application/json:
schema: {}
description: Successful Response
'422':
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
description: Validation Error
summary: Delete a Monitor
tags:
- Monitors
get:
operationId: get_monitor_api_v1_monitors__id__get
parameters:
- description: The unique identifier of the monitor.
in: path
name: id
required: true
schema:
description: The unique identifier of the monitor.
title: Id
type: integer
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/ApiPublicGetMonitorOutFull'
description: Successful Response
'422':
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
description: Validation Error
summary: Get Monitor
tags:
- Monitors
/api/v1/monitors/{id}/run:
post:
operationId: start_monitor_run_api_v1_monitors__id__run_post
parameters:
- description: The unique identifier of the monitor for which to start the run.
in: path
name: id
required: true
schema:
description: The unique identifier of the monitor for which to start the run.
title: Id
type: integer
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/ApiPublicMonitorTriggerRunResultOut'
description: Successful Response
'422':
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
description: Validation Error
summary: Trigger a run
tags:
- Monitors
/api/v1/monitors/{id}/runs:
get:
operationId: list_monitor_runs_api_v1_monitors__id__runs_get
parameters:
- description: The unique identifier of the monitor.
in: path
name: id
required: true
schema:
description: The unique identifier of the monitor.
title: Id
type: integer
- description: The page number to retrieve.
in: query
name: page
required: false
schema:
default: 1
description: The page number to retrieve.
title: Page
type: integer
- description: The number of items to retrieve per page.
in: query
name: page_size
required: false
schema:
default: 10
description: The number of items to retrieve per page.
title: Page Size
type: integer
- description: Include runs with a timestamp >= this value.
in: query
name: start_time
required: false
schema:
anyOf:
- format: date-time
type: string
- type: 'null'
description: Include runs with a timestamp >= this value.
title: Start Time
- description: Include runs with a timestamp <= this value.
in: query
name: end_time
required: false
schema:
anyOf:
- format: date-time
type: string
- type: 'null'
description: Include runs with a timestamp <= this value.
title: End Time
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/ApiPublicListMonitorRunsOut'
description: Successful Response
'422':
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
description: Validation Error
summary: List Monitor Runs
tags:
- Monitors
/api/v1/monitors/{id}/runs/{run_id}:
get:
operationId: get_monitor_run_api_v1_monitors__id__runs__run_id__get
parameters:
- description: The unique identifier of the run to retrieve.
in: path
name: run_id
required: true
schema:
description: The unique identifier of the run to retrieve.
title: Run Id
type: integer
- description: The unique identifier of the monitor associated with the run.
in: path
name: id
required: true
schema:
description: The unique identifier of the monitor associated with the run.
title: Id
type: integer
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/ApiPublicMonitorRunResultOut'
description: Successful Response
'422':
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
description: Validation Error
summary: Get Monitor Run
tags:
- Monitors
/api/v1/monitors/{id}/toggle:
put:
operationId: toggle_monitor_on_off_api_v1_monitors__id__toggle_put
parameters:
- description: The unique identifier of the monitor.
in: path
name: id
required: true
schema:
description: The unique identifier of the monitor.
title: Id
type: integer
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/Body_toggle_monitor_on_off_api_v1_monitors__id__toggle_put'
required: true
responses:
'200':
content:
application/json:
schema: {}
description: Successful Response
'422':
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
description: Validation Error
summary: Toggle a Monitor
tags:
- Monitors
/api/v1/monitors/{id}/update:
patch:
operationId: update_monitor_api_v1_monitors__id__update_patch
parameters:
- description: The unique identifier of the monitor.
in: path
name: id
required: true
schema:
description: The unique identifier of the monitor.
title: Id
type: integer
requestBody:
content:
application/json:
schema:
discriminator:
mapping:
diff: '#/components/schemas/DataDiffUpdateMonitorSpecPublic'
metric: '#/components/schemas/MetricUpdateMonitorSpecPublic'
schema: '#/components/schemas/SchemaChangeUpdateMonitorSpecPublic'
test: '#/components/schemas/DataTestUpdateMonitorSpecPublic'
propertyName: type
oneOf:
- $ref: '#/components/schemas/DataDiffUpdateMonitorSpecPublic'
- $ref: '#/components/schemas/MetricUpdateMonitorSpecPublic'
- $ref: '#/components/schemas/SchemaChangeUpdateMonitorSpecPublic'
- $ref: '#/components/schemas/DataTestUpdateMonitorSpecPublic'
required: true
responses:
'200':
content:
application/json:
schema: {}
description: Successful Response
'422':
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
description: Validation Error
summary: Update a Monitor
tags:
- Monitors
components:
schemas:
RelativeColumnTolerance:
properties:
type:
const: relative
default: relative
description: The type of Column Tolerance.
title: Type
type: string
value:
anyOf:
- type: number
- type: integer
description: Value of Column Tolerance.
title: Value
required:
- value
title: Relative
type: object
AnomalyDetectionThreshold:
properties:
sensitivity:
description: Sensitivity level for anomaly detection, ranging from 0 to 100.
maximum: 100.0
minimum: 0.0
title: Sensitivity
type: integer
type:
const: automatic
title: Type
type: string
required:
- type
- sensitivity
title: Anomaly Detection
type: object
AbsoluteThreshold:
properties:
max:
anyOf:
- type: number
- type: 'null'
description: Maximum value for the absolute threshold.
title: Max
min:
anyOf:
- type: number
- type: 'null'
description: Minimum value for the absolute threshold.
title: Min
type:
const: absolute
title: Type
type: string
required:
- type
title: Absolute
type: object
InDbQueryDataset:
properties:
connection_id:
description: The identifier for the data source configuration.
title: Connection Id
type: integer
query:
description: The SQL query to be evaluated.
title: Query
type: string
session_parameters:
anyOf:
- additionalProperties: true
type: object
- type: 'null'
description: Parameters for the database session.
title: Session Parameters
time_travel_point:
anyOf:
- type: string
- type: integer
- type: 'null'
description: Point in time for querying historical data.
title: Time Travel Point
required:
- connection_id
- query
title: Query
type: object
TableMetricAlias:
enum:
- row_count
- freshness
title: TableMetricAlias
type: string
InDbDataDiffConfig:
properties:
column_remapping:
anyOf:
- additionalProperties:
type: string
type: object
- type: 'null'
description: Mapping of columns from one dataset to another for comparison.
title: Column Remapping
columns_to_compare:
anyOf:
- items:
type: string
type: array
- type: 'null'
description: Optional list of columns to compare between the datasets.
title: Columns To Compare
compare_duplicates:
anyOf:
- type: boolean
- type: 'null'
description: Compare rows with duplicate primary keys. Defaults to true.
title: Compare Duplicates
dataset_a:
anyOf:
- $ref: '#/components/schemas/InDbTableDataset'
- $ref: '#/components/schemas/InDbQueryDataset'
description: The first dataset to compare.
dataset_b:
anyOf:
- $ref: '#/components/schemas/InDbTableDataset'
- $ref: '#/components/schemas/InDbQueryDataset'
description: The second dataset to compare.
exclude_columns:
anyOf:
- items:
type: string
type: array
- type: 'null'
description: Columns to exclude from the comparison. InDb diffs accept gitignore-style patterns (e.g. '*_ts'); InMem diffs require exact column names. Primary-key columns are never excluded.
title: Exclude Columns
ignore_string_case:
default: false
description: Indicates whether to ignore case differences in string comparisons.
title: Ignore String Case
type: boolean
include_columns:
anyOf:
- items:
type: string
type: array
- type: 'null'
description: Columns to include in the comparison. InDb diffs accept gitignore-style patterns (e.g. '*_ts'); InMem diffs require exact column names. Alias of columns_to_compare; set only one.
title: Include Columns
materialize_results:
default: false
description: Indicates whether to materialize the results of the comparison.
title: Materialize Results
type: boolean
null_equals_empty_string:
default: false
description: Treat NULL and empty string ('') as equal in string comparisons and PK joins.
title: Null Equals Empty String
type: boolean
primary_key:
description: List of columns that make up the primary key for the datasets.
items:
type: string
title: Primary Key
type: array
sampling:
anyOf:
- $ref: '#/components/schemas/ToleranceBasedSampling'
- $ref: '#/components/schemas/PercentageSampling'
- $ref: '#/components/schemas/MaxRowsSampling'
- type: 'null'
description: Sampling configuration for the data comparison.
sort_array_columns:
anyOf:
- type: boolean
- type: 'null'
description: Sort array elements before comparison to ignore insertion order differences.
title: Sort Array Columns
timeseries_dimension_column:
anyOf:
- type: string
- type: 'null'
description: Column used for time series dimensioning in the comparison.
title: Timeseries Dimension Column
tolerance:
anyOf:
- $ref: '#/components/schemas/DataDiffToleranceConfig'
- type: 'null'
description: Configuration for tolerance.
required:
- primary_key
- dataset_a
- dataset_b
title: In-Database
type: object
SchemaChangeUpdateMonitorSpecPublic:
properties:
description:
anyOf:
- type: string
- type: 'null'
description: The description of the monitor.
title: Description
name:
anyOf:
- type: string
- type: 'null'
description: The name of the monitor.
title: Name
notifications:
description: Notification configuration for the monitor.
items:
discriminator:
mapping:
email: '#/components/schemas/EmailNotification'
pagerduty: '#/components/schemas/PagerDutyNotification'
slack: '#/components/schemas/SlackNotification'
teams: '#/components/schemas/TeamsNotification'
webhook: '#/components/schemas/WebhookNotification'
propertyName: type
oneOf:
- $ref: '#/components/schemas/EmailNotification'
- $ref: '#/components/schemas/PagerDutyNotification'
- $ref: '#/components/schemas/WebhookNotification'
- $ref: '#/components/schemas/SlackNotification'
- $ref: '#/components/schemas/TeamsNotification'
title: Notifications
type: array
owner:
anyOf:
- type: string
- type: 'null'
description: Email of the monitor owner.
title: Owner
schedule:
anyOf:
- $ref: '#/components/schemas/IntervalSchedule'
- $ref: '#/components/schemas/CronSchedule'
- $ref: '#/components/schemas/NoneSchedule'
- type: 'null'
description: The schedule at which the monitor runs.
tags:
description: Tags associated with the monitor.
items:
type: string
title: Tags
type: array
type:
const: schema
description: The type of monitor.
title: Type
type: string
required:
- type
title: Schema
type: object
HourIntervalSchedule:
properties:
every:
const: hour
title: Every
type: string
type:
const: hourly
default: hourly
title: Type
type: string
required:
- every
title: Hour
type: object
DestinationFeatures:
enum:
- attach_csv
- notify_first_triggered_only
- disable_recovery_notifications
- notify_every_run
title: DestinationFeatures
type: string
StandardDataTestMonitorSpec:
properties:
tables:
anyOf:
- items:
$ref: '#/components/schemas/SDTTable'
type: array
- type: 'null'
title: Tables
type:
$ref: '#/components/schemas/StandardDataTestTypes'
variables:
anyOf:
- additionalProperties:
$ref: '#/components/schemas/SDTVariable'
type: object
- type: 'null'
title: Variables
required:
- type
title: Standard DT
type: object
SortableFields:
enum:
- id
- name
- last_triggered
- last_run
- created_by
title: SortableFields
type: string
ToleranceBasedSampling:
properties:
confidence:
description: The confidence level for the sampling results.
title: Confidence
type: number
threshold:
anyOf:
- type: integer
- type: 'null'
description: Threshold for triggering actions based on sampling.
title: Threshold
tolerance:
description: The allowable margin of error for sampling.
title: Tolerance
type: number
required:
- tolerance
- confidence
title: Tolerance
type: object
ValidationError:
properties:
loc:
items:
anyOf:
- type: string
- type: integer
title: Location
type: array
msg:
title: Message
type: string
type:
title: Error Type
type: string
required:
- loc
- msg
- type
title: ValidationError
type: object
DataTestUpdateMonitorSpecPublic:
properties:
description:
anyOf:
- type: string
- type: 'null'
description: The description of the monitor.
title: Description
name:
anyOf:
- type: string
- type: 'null'
description: The name of the monitor.
title: Name
notifications:
description: Notification configuration for the monitor.
items:
discriminator:
mapping:
email: '#/components/schemas/EmailNotification'
pagerduty: '#/components/schemas/PagerDutyNotification'
slack: '#/components/schemas/SlackNotification'
teams: '#/components/schemas/TeamsNotification'
webhook: '#/components/schemas/WebhookNotification'
propertyName: type
oneOf:
- $ref: '#/components/schemas/EmailNotification'
- $ref: '#/components/schemas/PagerDutyNotification'
- $ref: '#/components/schemas/WebhookNotification'
- $ref: '#/components/schemas/SlackNotification'
- $ref: '#/components/schemas/TeamsNotification'
title: Notifications
type: array
owner:
anyOf:
- type: string
- type: 'null'
description: Email of the monitor owner.
title: Owner
query:
anyOf:
- type: string
- type: 'null'
description: The SQL query to be evaluated.
title: Query
schedule:
anyOf:
- $ref: '#/components/schemas/IntervalSchedule'
- $ref: '#/components/schemas/CronSchedule'
- $ref: '#/components/schemas/NoneSchedule'
- type: 'null'
description: The schedule at which the monitor runs.
tags:
description: Tags associated with the monitor.
items:
type: string
title: Tags
type: array
test:
anyOf:
- $ref: '#/components/schemas/StandardDataTestMonitorSpec'
- type: 'null'
type:
const: test
description: The type of monitor.
title: Type
type: string
required:
- type
title: Data
type: object
MaxRowsSampling:
properties:
max_rows:
description: The maximum number of rows to sample.
title: Max Rows
type: integer
threshold:
anyOf:
- type: integer
- type: 'null'
description: Threshold for triggering actions based on sampling.
title: Threshold
required:
- max_rows
title: MaxRows
type: object
SDTVariable:
properties:
quote:
default: true
title: Quote
type: boolean
value:
anyOf:
- type: string
- type: integer
- type: number
- items:
type: string
type: array
- items:
type: integer
type: array
- items:
type: number
type: array
- items:
anyOf:
- type: string
- type: integer
- type: number
type: array
title: Value
required:
- value
title: SDTVariable
type: object
WebhookNotification:
properties:
features:
anyOf:
- items:
$ref: '#/components/schemas/DestinationFeatures'
type: array
- type: 'null'
description: A list of features to enable for this notification.
title: Features
integration:
description: The identifier for the integration.
title: Integration
type: integer
type:
const: webhook
default: webhook
title: Type
type: string
required:
- integration
title: Webhook
type: object
ApiPublicListMonitorsOut:
properties:
count:
description: Total number of monitors.
title: Count
type: integer
monitors:
description: List of monitor details.
items:
$ref: '#/components/schemas/ApiPublicGetMonitorOut'
title: Monitors
type: array
page:
description: Current page number in the paginated result.
title: Page
type: integer
page_size:
description: Number of monitors per page.
title: Page Size
type: integer
total_pages:
description: Total number of pages available.
title: Total Pages
type: integer
required:
- count
- monitors
- page
- page_size
- total_pages
title: ApiPublicListMonitorsOut
type: object
AbsoluteColumnTolerance:
properties:
type:
const: absolute
default: absolute
description: The type of Column Tolerance.
title: Type
type: string
value:
description: Value of Column Tolerance.
title: Value
type: number
required:
- value
title: Absolute
type: object
ApiPublicGetMonitorOutFull:
properties:
alert:
anyOf:
- discriminator:
mapping:
absolute: '#/components/schemas/AbsoluteThreshold'
automatic: '#/components/schemas/AnomalyDetectionThreshold'
diff: '#/components/schemas/datafold__api__v1__monitors__DiffAlertCondition'
percentage: '#/components/schemas/PercentageThreshold'
propertyName: type
oneOf:
- $ref: '#/components/schemas/datafold__api__v1__monitors__DiffAlertCondition'
- $ref: '#/components/schemas/AnomalyDetectionThreshold'
- $ref: '#/components/schemas/AbsoluteThreshold'
- $ref: '#/components/schemas/PercentageThreshold'
- type: 'null'
description: Condition for triggering alerts based on the data diff.
created_at:
description: Timestamp when the monitor was created.
format: date-time
title: Created At
type: string
dataset:
description: Dataset configuration for the monitor.
items:
$ref: '#/components/schemas/MonitorDataset'
title: Dataset
type: array
description:
anyOf:
- type: string
- type: 'null'
description: The description of the monitor.
title: Description
enabled:
description: Indicates whether the monitor is enabled.
title: Enabled
type: boolean
id:
description: Unique identifier for the monitor.
title: Id
type: integer
last_alert:
anyOf:
- format: date-time
type: string
- type: 'null'
description: Timestamp of the last alert.
title: Last Alert
last_run:
anyOf:
- format: date-time
type: string
- type: 'null'
description: Timestamp of the last monitor run.
title: Last Run
modified_at:
description: Timestamp when the monitor was last modified.
format: date-time
title: Modified At
type: string
monitor_type:
anyOf:
- enum:
- diff
- metric
- schema
- test
type: string
- type: 'null'
description: Type of the monitor.
title: Monitor Type
name:
anyOf:
- type: string
- type: 'null'
description: Name of the monitor.
title: Name
notifications:
description: Notification co
# --- truncated at 32 KB (84 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/datafold/refs/heads/main/openapi/datafold-monitors-api-openapi.yml