Metaplane Tags API
The Tags API from Metaplane — 7 operations for bulk-labelling tables and monitors, removing tags, fetching tag definitions and reading tagged objects and monitors back. Tags are the routing dimension for incident alerts.
The Tags API from Metaplane — 7 operations for bulk-labelling tables and monitors, removing tags, fetching tag definitions and reading tagged objects and monitors back. Tags are the routing dimension for incident alerts.
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/metaplane-tags-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: Metaplane Tags API
description: MetaplanePublicApi API description
version: '1.0'
contact:
name: Metaplane
url: https://docs.metaplane.dev/reference/getting-started
servers:
- url: https://dev.api.metaplane.dev
security:
- Authorization: []
tags:
- name: Tags
paths:
/v1/tags/batch/fetch-tags:
post:
tags:
- Tags
summary: Batch fetch tag definitions
description: Fetch the Metaplane definition for the given tag name. POST is just for a more expressive request body, no mutation occurs
operationId: fetchTagDefinitions
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/TagDefinitionRequest'
required: false
responses:
'200':
description: Success
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/PublicTagDefinition'
/v1/tags/tagged-monitors/{tag}:
get:
tags:
- Tags
summary: Fetch monitors for a tag
description: Fetch all monitors associated with a tag
operationId: fetchTaggedMonitors
parameters:
- name: tag
in: path
required: true
schema:
type: string
- name: includeDisabled
in: query
schema:
type: boolean
- name: fetchGroups
in: query
schema:
type: boolean
responses:
'200':
description: Success
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/PublicMonitor'
/v1/tags/tagged-objects/{tag}:
get:
tags:
- Tags
summary: Fetch all objects for tag
description: Fetches all objects that have the target tag. This response is paginated
operationId: fetchTaggedObjects
parameters:
- name: tag
in: path
required: true
schema:
type: string
- name: nextPageToken
in: query
schema:
type: string
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/TaggedObjectResponse'
/v1/tags/remove-monitor-tags:
post:
tags:
- Tags
summary: Remove monitor tags
description: Removes specified tags from a monitor
operationId: removeMonitorTags
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/RemoveMonitorTagsRequest'
required: false
responses:
'200':
description: Success
/v1/tags/remove-table-tags:
post:
tags:
- Tags
summary: Remove table tags
description: Remove specified tags from the table at "{database}.{schema}.{table}"
operationId: removeTableTags
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/RemoveTableTagsRequest'
required: false
responses:
'200':
description: Success
/v1/tags/batch/tag-monitors:
post:
tags:
- Tags
summary: Batch tag monitors
description: Apply a tag to a collection of monitors
operationId: tagMonitors
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/TagMonitorsRequest'
required: false
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/TagMonitorsResult'
/v1/tags/batch/tag-tables:
post:
tags:
- Tags
summary: Batch tag tables
description: Apply a tag to a collection of tables identified by absolute paths like "{database}.{schema}.{table}"
operationId: tagTables
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/TagTablesRequest'
required: false
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/TagTablesResult'
components:
schemas:
TagMonitorsResult:
type: object
properties:
successfullyTaggedMonitors:
uniqueItems: true
type: array
items:
type: string
format: uuid
notFoundMonitors:
uniqueItems: true
type:
- array
- 'null'
items:
type:
- string
- 'null'
format: uuid
PublicManualThresholdRule:
type: object
properties:
thresholds:
uniqueItems: true
type: array
items:
$ref: '#/components/schemas/PublicManualThreshold'
LabelNameValue:
type: object
properties:
name:
type: string
value:
type: string
TagMonitorsRequest:
type: object
properties:
tagName:
type: string
monitorIds:
uniqueItems: true
type: array
items:
type: string
format: uuid
TagTablesResult:
type: object
properties:
successfullyTaggedTablePaths:
uniqueItems: true
type: array
items:
type: string
notFoundTablePaths:
uniqueItems: true
type:
- array
- 'null'
items:
type:
- string
- 'null'
PublicAnomalyAlertRule:
type: object
properties:
sensitivity:
type: number
description: 'Control the bounds of the model. The default value is 3.0.
0.3 high is the highest sensitivity correlating with smallest bounds.
6.0 Is lowest sensitivity corresponding with the largest bounds.
'
format: double
default: 3
monitorTypeOverride:
type: string
enum:
- ROW_COUNT
- COLUMN_COUNT
- CARDINALITY
- UNIQUENESS
- NULLNESS
- PERCENT_ZERO
- PERCENT_NEGATIVE
- MIN
- MAX
- MEAN
- STDDEV
- FRESHNESS
- CUSTOM
- PUSH
- SUM
- DURATION
- GENERIC_OBJECT
modelClassType:
type: string
enum:
- STATIONARY
- NONE
modelBoundsOverride:
type:
- string
- 'null'
description: Flags to completely override part of the model bounds
enum:
- UPPER_ONLY
- LOWER_ONLY
minLowerBoundSize:
type:
- number
- 'null'
description: 'Controls the minimum size for the lower bound of the models predictive range
'
format: double
default: 3
minUpperBoundSize:
type:
- number
- 'null'
description: 'Controls the minimum size for the upper bound of the models predictive range
'
format: double
default: 3
TimeDuration:
type: object
properties:
days:
type: integer
format: int64
hours:
type: integer
format: int64
minutes:
type: integer
format: int64
RemoveTableTagsRequest:
type: object
properties:
tagNames:
uniqueItems: true
type: array
items:
type: string
connectionId:
type: string
format: uuid
absoluteTablePath:
type: string
description: The target tables represented as an absolute path like "{database}.{schema}.{table}"
PublicTagDefinition:
type: object
properties:
tagId:
type: integer
format: int64
name:
type: string
createdAt:
type: string
format: date-time
PublicAlertRule:
type:
- object
- 'null'
properties:
type:
type: string
enum:
- ANOMALY
- MANUAL
numFailuresBeforeAlert:
type:
- integer
- 'null'
description: Number of time a monitor can fail before an incident is created
format: int32
description: Optional alert rule configuration. Defaults to ANOMALY
discriminator:
propertyName: type
mapping:
MANUAL: '#/components/schemas/PublicManualThresholdRule'
ANOMALY: '#/components/schemas/PublicAnomalyAlertRule'
oneOf:
- $ref: '#/components/schemas/PublicAnomalyAlertRule'
- $ref: '#/components/schemas/PublicManualThresholdRule'
PublicEntity:
type: object
properties:
type:
type: string
enum:
- TABLE
- COLUMN
- DATABASE
- SCHEMA
absolutePath:
type: string
description: Path of entity type delimited by `.`
TagDefinitionRequest:
type: object
properties:
names:
uniqueItems: true
type: array
items:
type: string
TaggedObjectResponse:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/PublicEntity'
nextPageToken:
type:
- string
- 'null'
hasMore:
type: boolean
MonitorConfig:
type:
- object
- 'null'
properties:
customSql:
type:
- string
- 'null'
customMetricUnitType:
type:
- string
- 'null'
description: Overrides the display type in the metaplane UI. Default to float if not specified. Only applies to custom sql monitors
enum:
- INT
- FLOAT
- PERCENT
- SECOND
- BYTE
- MILLISECOND
incrementalClause:
$ref: '#/components/schemas/PublicIncrementalClause'
customWhereClause:
type:
- string
- 'null'
alertRule:
$ref: '#/components/schemas/PublicAlertRule'
groupByColumns:
type:
- array
- 'null'
description: List of columns to group query by
items:
type:
- string
- 'null'
description: List of columns to group query by
timeZone:
type:
- string
- 'null'
description: 'Timezone identifier like: America/New_York'
MonitorGrouping:
type:
- object
- 'null'
properties:
groupings:
uniqueItems: true
type: array
items:
$ref: '#/components/schemas/LabelNameValue'
description: List of all groups that have seen at least one datapoint for this monitor
PublicMonitor:
type: object
properties:
id:
type: string
format: uuid
type:
type: string
enum:
- ROW_COUNT
- COLUMN_COUNT
- CARDINALITY
- UNIQUENESS
- NULLNESS
- PERCENT_ZERO
- PERCENT_NEGATIVE
- MIN
- MAX
- MEAN
- STDDEV
- FRESHNESS
- CUSTOM
- PUSH
- SUM
- DURATION
- GENERIC_OBJECT
genericObjectSubtype:
type: string
valueType:
type: string
enum:
- METRIC
- SOURCE_TO_TARGET
cronTab:
type: string
name:
type:
- string
- 'null'
description:
type:
- string
- 'null'
isEnabled:
type: boolean
config:
$ref: '#/components/schemas/MonitorConfig'
createdAt:
type: string
format: date-time
updatedAt:
type: string
format: date-time
absolutePath:
type: string
entityType:
type: string
connectionId:
type: string
format: uuid
monitorTags:
uniqueItems: true
type: array
items:
type: string
monitorGroups:
type:
- array
- 'null'
description: List of all groups that have seen at least one datapoint for this monitor
items:
$ref: '#/components/schemas/MonitorGrouping'
PublicIncrementalClause:
type:
- object
- 'null'
properties:
columnName:
type: string
duration:
$ref: '#/components/schemas/TimeDuration'
RemoveMonitorTagsRequest:
type: object
properties:
tagNames:
uniqueItems: true
type: array
items:
type: string
monitorId:
type: string
format: uuid
PublicManualThreshold:
type: object
properties:
operatorType:
type: string
enum:
- GREATER_THAN
- GREATER_THAN_EQUALS
- LESS_THAN
- LESS_THAN_EQUALS
- EQUAL
- NOT_EQUAL
value:
type: number
format: double
TagTablesRequest:
type: object
properties:
tagName:
type: string
connectionId:
type: string
format: uuid
absoluteTablePaths:
uniqueItems: true
type: array
description: A collection of tables represented as absolute paths like "{database}.{schema}.{table}"
items:
type: string
description: A collection of tables represented as absolute paths like "{database}.{schema}.{table}"
securitySchemes:
Authorization:
type: apiKey
description: Copy in your API key generated from metaplane
name: Authorization
in: header
x-api-evangelist:
harvested: '2026-08-29'
method: searched
source: https://docs.metaplane.dev/reference/<operation>.md — Metaplane publishes a complete, verbatim OpenAPI document for each of its 23 API reference operations on its own ReadMe docs host; this file is the faithful union of those 23 published documents (paths, components.schemas, servers, security merged; nothing authored).
operations: 23
note: 'Replaces an earlier scaffolded spec in this repo whose paths (/createmonitor, /getallconnections …) were ReadMe page slugs, not real API paths. The real paths are /v1/* and /v2/*. Verified live: https://dev.api.metaplane.dev/v1/connections returns 401 (auth required); https://api.metaplane.dev/v1/connections returns 404.'