Every API here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for apis
7 MCP tools reach this
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.
All 92 tools →
Call it yourself
curl for this page
This API
curl "https://apis.io/api/v1/apis/observeinc:observeinc-tags-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Get an API key
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: Observeinc Tags API
version: 1.0.230307
x-assembled-from:
- https://docs.observeinc.com/reference/createapitoken.md
- https://docs.observeinc.com/reference/createdashboard.md
- https://docs.observeinc.com/reference/createdatasetqueryfilter.md
- https://docs.observeinc.com/reference/createingestfilter.md
- https://docs.observeinc.com/reference/createingestroute.md
- https://docs.observeinc.com/reference/createingesttoken.md
- https://docs.observeinc.com/reference/createmonitor.md
- https://docs.observeinc.com/reference/createmonitormute.md
- https://docs.observeinc.com/reference/createmonitormuterule.md
- https://docs.observeinc.com/reference/createreferencetable.md
- https://docs.observeinc.com/reference/createserviceaccount.md
- https://docs.observeinc.com/reference/createskill.md
- https://docs.observeinc.com/reference/deleteapitoken.md
- https://docs.observeinc.com/reference/deletedashboard.md
- https://docs.observeinc.com/reference/deletedatasetqueryfilter.md
- https://docs.observeinc.com/reference/deleteingestfilter.md
- https://docs.observeinc.com/reference/deleteingestroute.md
- https://docs.observeinc.com/reference/deleteingesttoken.md
- https://docs.observeinc.com/reference/deletemonitor.md
- https://docs.observeinc.com/reference/deletemonitormute.md
- https://docs.observeinc.com/reference/deletemonitormuterule.md
- https://docs.observeinc.com/reference/deletereferencetable.md
- https://docs.observeinc.com/reference/deleteserviceaccount.md
- https://docs.observeinc.com/reference/deleteskill.md
- https://docs.observeinc.com/reference/exportquery.md
- https://docs.observeinc.com/reference/exportquerypage.md
- https://docs.observeinc.com/reference/exportworksheet.md
- https://docs.observeinc.com/reference/generateapitoken.md
- https://docs.observeinc.com/reference/getalert.md
- https://docs.observeinc.com/reference/getapitoken.md
- https://docs.observeinc.com/reference/getapminvocationgraph.md
- https://docs.observeinc.com/reference/getdashboard.md
- https://docs.observeinc.com/reference/getdataset.md
- https://docs.observeinc.com/reference/getdatasetbyid.md
- https://docs.observeinc.com/reference/getdatasetgraph.md
- https://docs.observeinc.com/reference/getdatasetqueryfilterbyid.md
- https://docs.observeinc.com/reference/getdatasetstats.md
- https://docs.observeinc.com/reference/getingestfilter.md
- https://docs.observeinc.com/reference/getingestroute.md
- https://docs.observeinc.com/reference/getingesttoken.md
- https://docs.observeinc.com/reference/getmonitor-1.md
- https://docs.observeinc.com/reference/getmonitormute.md
- https://docs.observeinc.com/reference/getmonitormuterule.md
- https://docs.observeinc.com/reference/getmonitorstats.md
- https://docs.observeinc.com/reference/getreferencetable.md
- https://docs.observeinc.com/reference/getserviceaccount.md
- https://docs.observeinc.com/reference/getskill.md
- https://docs.observeinc.com/reference/listalerts.md
- https://docs.observeinc.com/reference/listapitokens.md
- https://docs.observeinc.com/reference/listapmenvironments.md
- https://docs.observeinc.com/reference/listapmservices.md
- https://docs.observeinc.com/reference/listdashboards.md
- https://docs.observeinc.com/reference/listdatasetgraph.md
- https://docs.observeinc.com/reference/listdatasetqueryfilters.md
- https://docs.observeinc.com/reference/listdatasets-1.md
- https://docs.observeinc.com/reference/listdatasets.md
- https://docs.observeinc.com/reference/listdatasettags.md
- https://docs.observeinc.com/reference/listfilterabledatasets.md
- https://docs.observeinc.com/reference/listingestfilters.md
- https://docs.observeinc.com/reference/listingestroutes.md
- https://docs.observeinc.com/reference/listingesttokens.md
- https://docs.observeinc.com/reference/listmetrics.md
- https://docs.observeinc.com/reference/listmonitormuterules.md
- https://docs.observeinc.com/reference/listmonitormutes.md
- https://docs.observeinc.com/reference/listmonitors-1.md
- https://docs.observeinc.com/reference/listserviceaccounts.md
- https://docs.observeinc.com/reference/listskills.md
- https://docs.observeinc.com/reference/polldelegatedlogin.md
- https://docs.observeinc.com/reference/queryreferencetables.md
- https://docs.observeinc.com/reference/searchdocumentation.md
- https://docs.observeinc.com/reference/searchobjecttagkeys.md
- https://docs.observeinc.com/reference/searchobjecttagvalues.md
- https://docs.observeinc.com/reference/searchtagvalues.md
- https://docs.observeinc.com/reference/startdelegatedlogin.md
- https://docs.observeinc.com/reference/updateapitoken.md
- https://docs.observeinc.com/reference/updatedashboard.md
- https://docs.observeinc.com/reference/updatedatasetqueryfilter.md
- https://docs.observeinc.com/reference/updateingestfilter.md
- https://docs.observeinc.com/reference/updateingestroute.md
- https://docs.observeinc.com/reference/updateingestroutepriorities.md
- https://docs.observeinc.com/reference/updateingesttoken.md
- https://docs.observeinc.com/reference/updatemonitor.md
- https://docs.observeinc.com/reference/updatemonitormute.md
- https://docs.observeinc.com/reference/updatereferencetable.md
- https://docs.observeinc.com/reference/updatereferencetablemetadata.md
- https://docs.observeinc.com/reference/updateserviceaccount.md
- https://docs.observeinc.com/reference/updateskill.md
- https://docs.observeinc.com/reference/validateingestfilterexpression.md
x-retrieved: '2026-10-13'
x-source: Assembled verbatim from the OpenAPI 3.1 definitions ReadMe embeds in each of 88 operation pages under https://docs.observeinc.com/reference/ (no single downloadable spec is published); paths and components merged, nothing authored.
description: 'Operations tagged Tags across 2 of this provider''s published API definitions: observeinc-openapi-assembled.json, observeinc-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://{customerid}.observeinc.com
description: US west server
variables:
customerid:
default: OBSERVE_CUSTOMERID
description: The customer ID for your instance.
- url: https://{customerid}.{cluster}.observeinc.com
description: Specific regional cluster (prod)
variables:
customerid:
default: OBSERVE_CUSTOMERID
description: The customer ID for your instance.
cluster:
enum:
- eu-1
- ap-1
default: eu-1
description: For regional clusters, choose one.
- url: https://{customerid}.{domain}.com
description: Specific Observe server
variables:
customerid:
default: OBSERVE_CUSTOMERID
description: The customer ID for your instance.
domain:
default: OBSERVE_DOMAIN
description: The Observe domain for your instance.
security:
- bearerAuth: []
tags:
- name: Tags
paths:
/v1/tags:
get:
summary: List tags
description: 'Returns a paginated list of tags (both correlation and metric kinds)
defined across the tenant''s datasets. Each entry groups all per-dataset
definitions of a single `(name, kind)` pair.
Use `GET /v1/tags/values` to search tag *values*.
## Filtering and ordering with CEL
The `filter` and `orderBy` query parameters are evaluated as
Common Expression Language (CEL) expressions over
each tag in the response.
### Available CEL fields
- `name` (string) — tag name; supports `.matches("regex")`
- `kind` (string) — `"Correlation"` or `"Metric"`
- `datasetCount` (int) — number of distinct datasets defining the tag
- `mappings` (list) — per-dataset definitions; supports `.exists(m, ...)`
quantifier. Each `m` exposes:
- `m.dataset.id` (int) — dataset id
- `m.dataset.label` (string) — dataset label (available without
`expand`); matches the `dataset.record.label` returned in the body
- `m.path.field` (string)
- `m.path.path` (string)
- `m.origin.id` (int, null for Metric) — dataset where the mapping
was originally declared. Equals `m.dataset.id` when declared
directly on that dataset; differs when inherited from upstream.
- `m.origin.label` (string, null for Metric) — label of the origin
dataset; guard with `m.origin != null` before accessing.
- `m.createdBy.id` (int, null for Metric)
### Available CEL functions
The tag CEL environment registers the CEL standard
definitions
(operators, `in`, `?:`, `size()`, `string.contains`, `string.startsWith`,
`string.endsWith`, `matches`, etc.) plus the following extension
libraries from
cel-go v0.28.0:
- `ext.Strings` — `charAt`, `indexOf`, `join`, `lowerAscii`, `replace`, `split`, `substring`, `trim`, `upperAscii`, `format`
- `ext.Lists` — `lists.flatten`, `lists.range`, `lists.slice`
- `ext.Math` — `math.greatest`, `math.least`
- `ext.Sets` — `sets.contains`, `sets.equivalent`, `sets.intersects`
- `ext.Regex` — `re.capture`, `re.extract`
- `ext.Encoders` — `base64.encode`, `base64.decode`
- `ext.Bindings` — `cel.bind` for let-binding sub-expressions
- `ext.Protos` — protobuf helpers
- `cel.OptionalTypes` — `optional.of`, `optional.ofNonZero`, `optional.none`
### Defaults
- Default page size: 50; maximum: 100.
- Default order: `kind` ascending, then `name` ascending.
Set `expand=true` to inline the `dataset.record` brief (label,
description, iconUrl, contentType) on every dataset reference.
Set `sampleValues=true` to attach a bounded sample of each tag''s
values (see the `sampleValues` parameter).'
operationId: ListDatasetTags
tags:
- Tags
parameters:
- name: filter
in: query
required: false
description: 'CEL expression that response tags must match. Must evaluate to
`bool`. Must be URL-encoded. See the operation description for
available fields.
'
schema:
type: string
examples:
byNameRegex:
summary: Tags whose name matches a regex
value: name.matches("^env.*")
byExactName:
summary: Tags with an exact name
value: name == "service"
correlationOnDataset:
summary: Correlation tags defined on dataset 41000123
value: kind == "Correlation" && mappings.exists(m, m.dataset.id == 41000123)
anyTagOnDataset:
summary: Any tag (either kind) defined on a particular dataset
value: mappings.exists(m, m.dataset.id == 41000123)
byDatasetNameSubstring:
summary: Tags whose dataset name contains a substring (case-insensitive)
value: mappings.exists(m, m.dataset.label.lowerAscii().contains("orders"))
byDatasetNameRegex:
summary: Tags on datasets whose name matches a regex
value: mappings.exists(m, m.dataset.label.matches("(?i)^orders"))
declaredDirectly:
summary: Correlation tags declared directly on a dataset (not inherited)
value: kind == "Correlation" && mappings.exists(m, m.origin != null && m.origin.id == m.dataset.id)
inheritedFromUpstream:
summary: Correlation tags inherited from a different upstream dataset
value: kind == "Correlation" && mappings.exists(m, m.origin != null && m.origin.id != m.dataset.id)
inheritedFromSpecificDataset:
summary: Correlation tags inherited specifically from dataset 41000999
value: mappings.exists(m, m.origin != null && m.origin.id == 41000999 && m.dataset.id != 41000999)
- name: orderBy
in: query
required: false
description: 'CSV CEL expressions; default `kind,name`. Prefix an item with `-`
for descending. Supported expressions evaluate to comparable values
(e.g. `name`, `kind`, `datasetCount`).
'
schema:
type: string
example: kind,name
- $ref: '#/components/parameters/OffsetParam'
- $ref: '#/components/parameters/LimitParam'
- $ref: '#/components/parameters/ExpandParam'
- name: sampleValues
in: query
required: false
description: 'When `true`, each returned tag includes up to 20 sample values in
`sampleValues`. This is a bounded, non-paginated sample, NOT the
full value set. Sampling is best-effort: `sampleValues` may be
empty or absent for a tag whose values could not be retrieved.
Use `GET /v1/tags/values` to search across tag values.
'
schema:
type: boolean
default: false
responses:
'200':
description: Tags retrieved successfully.
content:
application/json:
schema:
$ref: '#/components/schemas/Tag-ListResponse'
'400':
$ref: '#/components/responses/ErrorResponse-400'
'401':
$ref: '#/components/responses/ErrorResponse-401'
'403':
$ref: '#/components/responses/ErrorResponse-403'
'429':
$ref: '#/components/responses/ErrorResponse-429'
5XX:
$ref: '#/components/responses/ErrorResponse-5XX'
servers:
- url: https://{customerid}.observeinc.com
description: US west server
variables:
customerid:
default: OBSERVE_CUSTOMERID
description: The customer ID for your instance.
- url: https://{customerid}.{cluster}.observeinc.com
description: Specific regional cluster (prod)
variables:
customerid:
default: OBSERVE_CUSTOMERID
description: The customer ID for your instance.
cluster:
enum:
- eu-1
- ap-1
default: eu-1
description: For regional clusters, choose one.
- url: https://{customerid}.{domain}.com
description: Specific Observe server
variables:
customerid:
default: OBSERVE_CUSTOMERID
description: The customer ID for your instance.
domain:
default: OBSERVE_DOMAIN
description: The Observe domain for your instance.
components:
parameters:
ExpandParam:
name: expand
in: query
description: Whether to expand resources referenced in the response to include additional fields
schema:
type: boolean
OffsetParam:
name: offset
in: query
description: Number of items to skip before starting to collect the result set
schema:
type: integer
format: int64
LimitParam:
name: limit
in: query
description: Maximum number of items to return in the response
schema:
type: integer
format: int64
schemas:
DatasetRef:
title: DatasetRef
type: object
description: 'A reference to a dataset. Always carries the id; the optional `record` field carries the brief metadata, populated when expand=true. Mirrors ObjectRef (see ObjectRef / ObjectBrief in this file).
'
required:
- id
properties:
id:
$ref: '#/components/schemas/ObjectId'
record:
$ref: '#/components/schemas/DatasetBrief'
DatasetBrief:
title: DatasetBrief
type: object
description: 'Brief record fields for a DatasetRef (label, description, iconUrl, contentType). Field naming mirrors ObjectBrief in this same file (iconUrl, not icon) for consistency across reference-brief pairs.
'
required:
- label
- description
- iconUrl
- contentType
properties:
label:
type: string
description:
type: string
iconUrl:
type: string
contentType:
$ref: '#/components/schemas/DatasetContentType'
description: 'The type of data the referenced dataset contains — Resource, Log,
Metric, OTelSpan, OTelTrace, or Unknown. Derived from the dataset''s
kind and interface bindings.
'
Meta:
description: List Response Metadata
type: object
required:
- totalCount
properties:
totalCount:
description: 'The total number of resources available, independent of pagination.
The API may return -1 if the total count is unknown or cannot be computed
in reasonable time.
'
type: integer
format: int64
Tag-Resource:
title: TagObject
type: object
description: 'A tag (correlation or metric) along with every dataset that defines
it. Tags are identified by `(name, kind)`; there is no ObjectId for
a tag — `name` is the natural identifier within a kind.
'
required:
- name
- kind
- datasetCount
- mappings
properties:
name:
type: string
description: Tag name. Natural identifier within `kind`.
kind:
$ref: '#/components/schemas/TagKind'
datasetCount:
type: integer
format: int64
description: Number of distinct datasets in which this tag is defined.
mappings:
type: array
description: 'Per-dataset definitions of the tag. Always populated; use the
`mappings.exists(m, m.dataset.id == ...)` CEL quantifier to
filter tags scoped to a specific dataset.
Limited to 20 entries.
'
items:
$ref: '#/components/schemas/Tag-Mapping'
sampleValues:
type: array
description: 'Up to 20 sample values observed for this tag, scoped to the
datasets the caller can view. Present only when the request sets
`sampleValues=true`. This is a bounded, non-paginated sample, NOT
the full value set; it may be empty or absent when values could
not be retrieved. Use `GET /v1/tags/values` to search values.
'
items:
type: string
Tag-ListResponse:
title: TagListResponse
type: object
required:
- tags
- meta
properties:
tags:
type: array
items:
$ref: '#/components/schemas/Tag-Resource'
meta:
$ref: '#/components/schemas/Meta'
Dataset-FieldPath:
title: FieldPath
type: object
required:
- field
- path
properties:
field:
type: string
path:
type: string
ObjectId:
type: string
format: ObjectId
User:
title: User
type: object
required:
- id
properties:
id:
title: User Identifier
$ref: '#/components/schemas/ObjectId'
label:
title: User Label
type: string
timezone:
type: string
locale:
type: string
TagKind:
title: TagKind
type: string
enum:
- Metric
- Correlation
description: Kind of tag.
DatasetContentType:
title: DatasetContentType
type: string
description: 'The type of data a dataset contains. For Resource datasets, this is
determined by the dataset kind. For other kinds, it is derived from the
dataset''s interface bindings. Returns Unknown if no recognized interface
is found.
'
enum:
- Unknown
- Resource
- Log
- Metric
- OTelSpan
- OTelTrace
ErrorMessage:
type: object
properties:
type:
type: string
description: A stable, machine-readable identifier for the kind of error.
message:
type: string
description: Error message
required:
- type
- message
Tag-Mapping:
title: TagMapping
type: object
description: 'A single per-dataset definition of a tag.
'
required:
- dataset
- path
- origin
- discoveryRuleAlias
- createdBy
properties:
dataset:
$ref: '#/components/schemas/DatasetRef'
path:
$ref: '#/components/schemas/Dataset-FieldPath'
origin:
anyOf:
- $ref: '#/components/schemas/DatasetRef'
- type: 'null'
description: 'The dataset in which this mapping was originally declared. When
the tag was declared directly on `dataset`, `origin.id` equals
`dataset.id`. When the tag was inherited from an upstream
dataset, `origin` points to that upstream dataset. Only
meaningful for `kind=Correlation`; always `null` for
`kind=Metric`. Mirrors the GraphQL `TagSourceInfo.origin`
convention.
'
discoveryRuleAlias:
type:
- string
- 'null'
description: 'The discovery rule alias that created this mapping, or `null` when
the mapping was not created by a discovery rule. Only meaningful
for `kind=Correlation`; always `null` for `kind=Metric`. If the tag
is inherited from an upstream dataset, this field points to the
discovery rule alias that created the mapping on the origin
dataset.
'
createdBy:
anyOf:
- $ref: '#/components/schemas/User'
- type: 'null'
description: 'User who declared this mapping on `origin`. Only meaningful for
`kind=Correlation`; always `null` for `kind=Metric`.
'
responses:
ErrorResponse-400:
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
ErrorResponse-403:
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
ErrorResponse-5XX:
description: Internal server error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
ErrorResponse-429:
description: Rate limit reached
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
ErrorResponse-401:
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
securitySchemes:
bearerAuth:
type: http
scheme: bearer
bearerFormat: 'Authorization: Bearer <customerid> <apitoken>
'
x-refined-from:
- observeinc-openapi-assembled.json
- observeinc-openapi.yml