Skip to content

Observe API

REST endpoints for the Observe area of Lepsto.

The Observe area publishes 35 REST endpoints. Paths are relative to https://api.lepsto.com; see Authentication for the required header.

GET/observe/alerts

List the alert rules of this product, newest first, with what each one measures and whether it is firing right now.

MCP tool: observe_alerts_list

Parameters

No parameters.

Response

Returns object[].

Item fieldTypeAlwaysDescription
id
string
•
Identifier of the rule
kind
stringone of: error_rate, log_match
•
What the rule measures
name
string
•
Human name the rule was registered under
state
stringone of: ok, firing
•
firing means the condition is met right now
enabled
boolean
•
Whether the evaluator measures it every minute
condition
object
•
The kind’s parameters: threshold and window, plus q for log_match
createdAt
string
•
ISO 8601 creation timestamp
updatedAt
string
•
ISO 8601 timestamp of the last change
lastFiredAt
string | null
•
ISO 8601 time it last fired, or null
throttleMinutes
number
•
How long after firing the rule stays quiet
POST/observe/alerts

Create an alert rule for this product. error_rate counts error events in the window; log_match counts log lines matching a Lucene expression, the same one observe_logs_search takes. The rule fires when the count reaches the threshold and resolves when it drops back below it; throttleMinutes is how long it stays quiet after firing. An expression that cannot be parsed is rejected here rather than failing silently on every evaluation.

MCP tool: observe_alerts_create

Parameters

NameInTypeRequiredDescription
namebody
string
•
What to call the rule, up to 200 characters
kindbody
stringone of: error_rate, log_match
•
error_rate counts error events in the window; log_match counts log lines matching q
conditionbody
object
•
The kind’s parameters
enabledbody
boolean
—
false registers the rule without evaluating it
throttleMinutesbody
integer
—
How long after firing the rule stays quiet. Default 60, up to a week

Response

Returns object.

FieldTypeAlwaysDescription
id
string
•
Identifier of the rule
kind
stringone of: error_rate, log_match
•
What the rule measures
name
string
•
Human name the rule was registered under
state
stringone of: ok, firing
•
firing means the condition is met right now
enabled
boolean
•
Whether the evaluator measures it every minute
condition
object
•
The kind’s parameters: threshold and window, plus q for log_match
createdAt
string
•
ISO 8601 creation timestamp
updatedAt
string
•
ISO 8601 timestamp of the last change
lastFiredAt
string | null
•
ISO 8601 time it last fired, or null
throttleMinutes
number
•
How long after firing the rule stays quiet
DELETE/observe/alerts/:id

Remove an alert rule and its firing history. To stop being alerted while keeping the history, set the rule disabled instead.

MCP tool: observe_alerts_delete

Parameters

NameInTypeRequiredDescription
idpath
string
•
Identifier of the rule

Response

Returns object.

FieldTypeAlwaysDescription
id
string
•
Identifier of the removed rule
deleted
booleanone of: true
•
Always true; the call fails otherwise
GET/observe/alerts/:id

Read one alert rule of this product, with its current state and last firing.

MCP tool: observe_alerts_get

Parameters

NameInTypeRequiredDescription
idpath
string
•
Identifier of the rule

Response

Returns object.

FieldTypeAlwaysDescription
id
string
•
Identifier of the rule
kind
stringone of: error_rate, log_match
•
What the rule measures
name
string
•
Human name the rule was registered under
state
stringone of: ok, firing
•
firing means the condition is met right now
enabled
boolean
•
Whether the evaluator measures it every minute
condition
object
•
The kind’s parameters: threshold and window, plus q for log_match
createdAt
string
•
ISO 8601 creation timestamp
updatedAt
string
•
ISO 8601 timestamp of the last change
lastFiredAt
string | null
•
ISO 8601 time it last fired, or null
throttleMinutes
number
•
How long after firing the rule stays quiet
PATCH/observe/alerts/:id

Edit an alert rule: its name, its condition, its throttle, or whether it is enabled. What the rule measures — its kind — is not editable; create a second rule instead. Omit a field to leave it alone.

MCP tool: observe_alerts_update

Parameters

NameInTypeRequiredDescription
idpath
string
•
Identifier of the rule to change
namebody
string
—
New name for the rule
conditionbody
object
—
The kind’s parameters
enabledbody
boolean
—
false stops evaluation and keeps the rule
throttleMinutesbody
integer
—
New quiet period after a firing, in minutes

Response

Returns object.

FieldTypeAlwaysDescription
id
string
•
Identifier of the rule
kind
stringone of: error_rate, log_match
•
What the rule measures
name
string
•
Human name the rule was registered under
state
stringone of: ok, firing
•
firing means the condition is met right now
enabled
boolean
•
Whether the evaluator measures it every minute
condition
object
•
The kind’s parameters: threshold and window, plus q for log_match
createdAt
string
•
ISO 8601 creation timestamp
updatedAt
string
•
ISO 8601 timestamp of the last change
lastFiredAt
string | null
•
ISO 8601 time it last fired, or null
throttleMinutes
number
•
How long after firing the rule stays quiet
GET/observe/alerts/events

List past and current firings for this product, newest first. A row with a null resolvedAt is an alert that is happening now. Each carries what the measure was and the condition as it stood at that moment.

MCP tool: observe_alerts_events_list

Parameters

NameInTypeRequiredDescription
ruleIdquery
string
—
Only firings of this rule
limitquery
integer
—
Page size, 1..200
offsetquery
integer
—
Number of firings to skip

Response

Returns object[].

Item fieldTypeAlwaysDescription
id
string
•
Identifier of the firing
ruleId
string
•
Rule that fired
firedAt
string
•
ISO 8601 time the condition was first met
measured
number
•
What the measure was when it fired
condition
object
•
The condition as it stood then, not as the rule reads today
resolvedAt
string | null
•
ISO 8601 time it cleared, or null while it is still firing
GET/observe/artifacts

List the source map artifacts stored for the current product, newest first. Filter by debug ID to see what is available for one build output.

MCP tool: observe_artifacts_list

Parameters

NameInTypeRequiredDescription
debugIdquery
string
—
Only return artifacts carrying this debug ID; omit to list all of them
limitquery
integer
—
Maximum number of artifacts to return, 1..200 (default 50)

Response

Returns object[].

Item fieldTypeAlwaysDescription
id
string
•
Identifier of the stored artifact
kind
stringone of: source, sourcemap
•
Whether this is the minified source or its map
debugId
string
•
Debug ID the build stamped into the file and its source map
byteSize
number
•
Size of the stored artifact in bytes
fileName
string
•
Name the file was uploaded under, e.g. "app.min.js.map"
uploadedAt
string
•
ISO 8601 timestamp of the upload
DELETE/observe/artifacts/:id

Delete one stored artifact and the bytes behind it. An artifact belonging to another product is reported as not found.

MCP tool: observe_artifacts_delete

Parameters

NameInTypeRequiredDescription
idpath
string
•
Identifier of the artifact to delete. An artifact of another product is reported as not found

Response

Returns object.

FieldTypeAlwaysDescription
id
string
•
Identifier of the stored artifact
kind
stringone of: source, sourcemap
•
Whether this is the minified source or its map
debugId
string
•
Debug ID the build stamped into the file and its source map
byteSize
number
•
Size of the stored artifact in bytes
fileName
string
•
Name the file was uploaded under, e.g. "app.min.js.map"
uploadedAt
string
•
ISO 8601 timestamp of the upload
GET/observe/artifacts/:issueId/resolve

Resolve the stack trace of an issue's latest event against the stored source maps, turning minified frames into original file, function, line and column. Frames with no matching debug ID are returned unchanged: a partially resolved trace is the normal result.

MCP tool: observe_artifacts_resolve

Parameters

NameInTypeRequiredDescription
issueIdpath
string
•
Issue whose latest event should have its stack resolved. An issue of another product is reported as not found

Response

Returns object.

FieldTypeAlwaysDescription
frames
object[]
•
The stack, resolved where a source map matched
eventId
string
•
Identifier of the event the stack was taken from
issueId
string
•
The issue whose stack this is
GET/observe/issues

List error tracking issues of the current product, most recently seen first. Filter by status or assignee.

MCP tool: observe_issues_list

Parameters

NameInTypeRequiredDescription
statusquery
stringone of: unresolved, resolved, archived
—
Only return issues in this state; omit to list every state
assigneequery
string
—
Only return issues owned by this assignee
limitquery
integer
—
How many issues to return, most recently seen first. 1-200, default 50

Response

Returns object[].

Item fieldTypeAlwaysDescription
id
string
•
Identifier of the issue
title
string
•
Display title, set when the issue opened and never rewritten
status
string
•
unresolved, resolved or archived
culprit
string | null
•
Where the error appears to come from, or null
service
string | null
•
Service the most recent event came from, or null if none was reported
assignee
string | null
•
Who owns the issue, or null if unassigned
lastSeen
string
•
ISO 8601 timestamp of the most recent event
firstSeen
string
•
ISO 8601 timestamp of the first event
archivedAt
string | null
•
ISO 8601 archive timestamp, or null
eventCount
number
•
How many events have landed on this issue
resolvedAt
string | null
•
ISO 8601 resolution timestamp, or null
environment
string | null
•
Environment the issue was first seen in, or null
fingerprint
string
•
Stable grouping hash the issue is keyed on
lastEventId
string | null
•
Identifier of the most recent event that landed on the issue, or null for issues rolled up before this was recorded
lastRelease
string | null
•
Release the most recent event was reported from, or null if none was reported
regressedAt
string | null
•
ISO 8601 timestamp of the last regression, or null if it never regressed
groupingRule
string
•
Which rule of the ladder matched: explicit, stack, exception or message
exceptionType
string | null
•
Exception class of the first event, or null
groupingVersion
string
•
Grouping config version that produced the fingerprint; part of the issue identity
GET/observe/issues/:id

Read one error tracking issue by id, together with the resolved stack of its most recent event. Frames with no matching source map are returned unchanged, and an issue whose stack cannot be read still comes back — with a null stack.

MCP tool: observe_issues_get

Parameters

NameInTypeRequiredDescription
idpath
string
•
Identifier of the issue

Response

Returns object.

FieldTypeAlwaysDescription
id
string
•
Identifier of the issue
stack
object | null
•
Stack of the most recent event, or null when the issue has no events yet or the stack could not be read
title
string
•
Display title, set when the issue opened and never rewritten
status
string
•
unresolved, resolved or archived
culprit
string | null
•
Where the error appears to come from, or null
service
string | null
•
Service the most recent event came from, or null if none was reported
assignee
string | null
•
Who owns the issue, or null if unassigned
lastSeen
string
•
ISO 8601 timestamp of the most recent event
firstSeen
string
•
ISO 8601 timestamp of the first event
archivedAt
string | null
•
ISO 8601 archive timestamp, or null
eventCount
number
•
How many events have landed on this issue
resolvedAt
string | null
•
ISO 8601 resolution timestamp, or null
environment
string | null
•
Environment the issue was first seen in, or null
fingerprint
string
•
Stable grouping hash the issue is keyed on
lastEventId
string | null
•
Identifier of the most recent event that landed on the issue, or null for issues rolled up before this was recorded
lastRelease
string | null
•
Release the most recent event was reported from, or null if none was reported
regressedAt
string | null
•
ISO 8601 timestamp of the last regression, or null if it never regressed
groupingRule
string
•
Which rule of the ladder matched: explicit, stack, exception or message
exceptionType
string | null
•
Exception class of the first event, or null
groupingVersion
string
•
Grouping config version that produced the fingerprint; part of the issue identity
POST/observe/issues/:id/archive

Archive an issue: it stops being reported and stays archived even when new events keep landing on it.

MCP tool: observe_issues_archive

Parameters

NameInTypeRequiredDescription
idpath
string
•
Identifier of the issue

Response

Returns object.

FieldTypeAlwaysDescription
id
string
•
Identifier of the issue
title
string
•
Display title, set when the issue opened and never rewritten
status
string
•
unresolved, resolved or archived
culprit
string | null
•
Where the error appears to come from, or null
service
string | null
•
Service the most recent event came from, or null if none was reported
assignee
string | null
•
Who owns the issue, or null if unassigned
lastSeen
string
•
ISO 8601 timestamp of the most recent event
firstSeen
string
•
ISO 8601 timestamp of the first event
archivedAt
string | null
•
ISO 8601 archive timestamp, or null
eventCount
number
•
How many events have landed on this issue
resolvedAt
string | null
•
ISO 8601 resolution timestamp, or null
environment
string | null
•
Environment the issue was first seen in, or null
fingerprint
string
•
Stable grouping hash the issue is keyed on
lastEventId
string | null
•
Identifier of the most recent event that landed on the issue, or null for issues rolled up before this was recorded
lastRelease
string | null
•
Release the most recent event was reported from, or null if none was reported
regressedAt
string | null
•
ISO 8601 timestamp of the last regression, or null if it never regressed
groupingRule
string
•
Which rule of the ladder matched: explicit, stack, exception or message
exceptionType
string | null
•
Exception class of the first event, or null
groupingVersion
string
•
Grouping config version that produced the fingerprint; part of the issue identity
POST/observe/issues/:id/assign

Assign an issue to someone, or pass a null assignee to clear the assignment.

MCP tool: observe_issues_assign

Parameters

NameInTypeRequiredDescription
idpath
string
•
Identifier of the issue
assigneebody
string | null
•
Who should own the issue; null clears the assignment

Response

Returns object.

FieldTypeAlwaysDescription
id
string
•
Identifier of the issue
title
string
•
Display title, set when the issue opened and never rewritten
status
string
•
unresolved, resolved or archived
culprit
string | null
•
Where the error appears to come from, or null
service
string | null
•
Service the most recent event came from, or null if none was reported
assignee
string | null
•
Who owns the issue, or null if unassigned
lastSeen
string
•
ISO 8601 timestamp of the most recent event
firstSeen
string
•
ISO 8601 timestamp of the first event
archivedAt
string | null
•
ISO 8601 archive timestamp, or null
eventCount
number
•
How many events have landed on this issue
resolvedAt
string | null
•
ISO 8601 resolution timestamp, or null
environment
string | null
•
Environment the issue was first seen in, or null
fingerprint
string
•
Stable grouping hash the issue is keyed on
lastEventId
string | null
•
Identifier of the most recent event that landed on the issue, or null for issues rolled up before this was recorded
lastRelease
string | null
•
Release the most recent event was reported from, or null if none was reported
regressedAt
string | null
•
ISO 8601 timestamp of the last regression, or null if it never regressed
groupingRule
string
•
Which rule of the ladder matched: explicit, stack, exception or message
exceptionType
string | null
•
Exception class of the first event, or null
groupingVersion
string
•
Grouping config version that produced the fingerprint; part of the issue identity
GET/observe/issues/:id/event

Read one event of an error tracking issue in full — the most recent one by default, or a specific one by id. Returns where and in what it happened: service, environment, release, trace, tags, and for OTel events the span with its HTTP method, route, status and target address. An issue whose events are no longer stored still comes back, with a null event.

MCP tool: observe_issues_event

Parameters

NameInTypeRequiredDescription
idpath
string
•
Identifier of the issue
eventIdquery
string
—
Which event to read; omit to read the most recent one. Must be an event of this issue

Response

Returns object.

FieldTypeAlwaysDescription
event
object | null
•
The event, or null when the issue has no event id or the event is no longer stored — events live 30 days and an issue outlives them. Neither case is an error
source
string | nullone of: sentry, otel
•
Which store the event id addresses, derived from its shape. Null when there is no event id
eventId
string | null
•
Identifier of the event that was read, or null when the issue has recorded no event id yet
issueId
string
•
Identifier of the issue the event belongs to
GET/observe/issues/:id/events

List the events of an error tracking issue, newest first. Each row identifies one event; pass its eventId to observe_issues_event to open it. Page with nextCursor.

MCP tool: observe_issues_events

Parameters

NameInTypeRequiredDescription
idpath
string
•
Identifier of the issue
limitquery
integer
—
How many events to return, newest first. 1-100, default 50
cursorquery
string
—
The nextCursor of the previous page; omit for the first page

Response

Returns object.

FieldTypeAlwaysDescription
rows
object[]
•
The events, newest first
nextCursor
string | null
•
Pass back as cursor for the next page; null when the last page was reached
GET/observe/issues/:id/histogram

Count the events of an error tracking issue per bucket over a window, so a reader can see when it started and whether it is still going. Bucket width is derived from the window; quiet buckets come back as zeros, never as gaps.

MCP tool: observe_issues_histogram

Parameters

NameInTypeRequiredDescription
idpath
string
•
Identifier of the issue
windowquery
string
—
How far back to count, e.g. "1h", "24h", "7d". Up to 30d, default "24h"

Response

Returns object.

FieldTypeAlwaysDescription
to
string
•
ISO 8601 end of the last bucket, exclusive
from
string
•
ISO 8601 start of the first bucket
window
string
•
The window that was counted, e.g. "24h"
buckets
object[]
•
Every bucket of the window, oldest first. Quiet buckets are zeros, never gaps
bucketSeconds
number
•
Width of one bucket in seconds, derived from the window
POST/observe/issues/:id/resolve

Mark an issue resolved. A later event flips it back to unresolved and emits observe/issue.regressed.

MCP tool: observe_issues_resolve

Parameters

NameInTypeRequiredDescription
idpath
string
•
Identifier of the issue

Response

Returns object.

FieldTypeAlwaysDescription
id
string
•
Identifier of the issue
title
string
•
Display title, set when the issue opened and never rewritten
status
string
•
unresolved, resolved or archived
culprit
string | null
•
Where the error appears to come from, or null
service
string | null
•
Service the most recent event came from, or null if none was reported
assignee
string | null
•
Who owns the issue, or null if unassigned
lastSeen
string
•
ISO 8601 timestamp of the most recent event
firstSeen
string
•
ISO 8601 timestamp of the first event
archivedAt
string | null
•
ISO 8601 archive timestamp, or null
eventCount
number
•
How many events have landed on this issue
resolvedAt
string | null
•
ISO 8601 resolution timestamp, or null
environment
string | null
•
Environment the issue was first seen in, or null
fingerprint
string
•
Stable grouping hash the issue is keyed on
lastEventId
string | null
•
Identifier of the most recent event that landed on the issue, or null for issues rolled up before this was recorded
lastRelease
string | null
•
Release the most recent event was reported from, or null if none was reported
regressedAt
string | null
•
ISO 8601 timestamp of the last regression, or null if it never regressed
groupingRule
string
•
Which rule of the ladder matched: explicit, stack, exception or message
exceptionType
string | null
•
Exception class of the first event, or null
groupingVersion
string
•
Grouping config version that produced the fingerprint; part of the issue identity
GET/observe/keys

List the OTLP ingest keys of the current product. Tokens are never returned.

MCP tool: observe_keys_list

Parameters

NameInTypeRequiredDescription
environmentquery
string
—
Only return keys of this environment; omit to list all of them

Response

Returns object[].

Item fieldTypeAlwaysDescription
id
string
•
Identifier of the ingest key
kind
stringone of: ingest, dsn
•
ingest = Bearer OTLP key; dsn = public Sentry key that ships in client code
name
string | null
•
Human label given at creation, or null
prefix
string
•
First characters of the token, shown for recognition
createdAt
string
•
ISO 8601 creation timestamp
revokedAt
string | null
•
ISO 8601 revocation timestamp, or null if active
environment
string
•
Environment the key writes telemetry for
POST/observe/keys

Create an ingest credential for one environment: a Bearer OTLP token (kind "ingest") or a public Sentry DSN (kind "dsn"). The credential is returned once and cannot be retrieved again.

MCP tool: observe_keys_create

Parameters

NameInTypeRequiredDescription
environmentbody
string
•
Environment this key sends telemetry for, e.g. "staging" or "production"
namebody
string
—
Optional human label for the key, e.g. "ci" or "backend pods"
kindbody
stringone of: ingest, dsn
—
ingest (default) issues a Bearer OTLP token; dsn issues a public Sentry key returned as a full DSN

Response

Returns object.

FieldTypeAlwaysDescription
id
string
•
Identifier of the ingest key
dsn
string
—
The full DSN, for kind "dsn" — shown only here, store it now
kind
stringone of: ingest, dsn
•
ingest = Bearer OTLP key; dsn = public Sentry key that ships in client code
name
string | null
•
Human label given at creation, or null
token
string
—
The full ingest token, for kind "ingest" — shown only here, store it now
prefix
string
•
First characters of the token, shown for recognition
createdAt
string
•
ISO 8601 creation timestamp
revokedAt
string | null
•
ISO 8601 revocation timestamp, or null if active
environment
string
•
Environment the key writes telemetry for
POST/observe/keys/:id/revoke

Revoke an OTLP ingest key. Telemetry sent with it is rejected immediately.

MCP tool: observe_keys_revoke

Parameters

NameInTypeRequiredDescription
idpath
string
•
Identifier of the ingest key to revoke

Response

Returns object.

FieldTypeAlwaysDescription
id
string
•
Identifier of the revoked key
revokedAt
string
•
ISO 8601 timestamp of the revocation
GET/observe/logs/facets

Count the environments, services and severities present in the logs of the current product over a window, so a filter can offer the values that actually exist. Counts are cached for up to a minute.

MCP tool: observe_logs_facets

Parameters

NameInTypeRequiredDescription
windowquery
string
—
How far back to count, e.g. "1h", "24h", "7d". Up to 30d, default "24h"

Response

Returns object.

FieldTypeAlwaysDescription
to
string
•
Newest timestamp counted, ISO 8601
from
string
•
Oldest timestamp counted, ISO 8601
window
string
•
The window that was counted, e.g. "24h"
services
object[]
•
Services, most frequent first
severities
object[]
•
Severities, most frequent first
environments
object[]
•
Environments, most frequent first
GET/observe/logs/search

Search the log lines of the current product, newest first. Reads the last 24 hours unless from/to say otherwise, and answers windows of up to 7 days — wider when a traceId or a single-word search pins the read to an index. Filters are structured; there is no SQL surface. Page with nextCursor.

MCP tool: observe_logs_search

Parameters

NameInTypeRequiredDescription
environmentquery
string
—
Only lines of this environment, e.g. "production"
servicequery
string
—
Only lines of this service, e.g. "api"
severityInquery
string[]
—
Only lines whose severity is one of these, e.g. ["ERROR", "FATAL"]
searchquery
string
—
Match the message body. A single word matches whole words and is indexed; anything longer is a case-insensitive substring match
traceIdquery
string
—
Only lines of this trace
qquery
string
—
Lucene-style expression, ANDed with the structured filters. `key:value` (service, environment, severity, trace_id, span_id, body; any other key matches an attribute), "quoted phrases", AND / OR / NOT in uppercase, parentheses. A bare word matches a whole word in the message body. Example: service:api AND NOT severity:INFO AND "connection refused"
fromquery
string
—
Oldest timestamp to include, ISO 8601. Defaults to 24 hours before `to`. A window longer than 7 days is rejected unless the read is answered by an index — a `traceId`, or a single-word `search`/body term in `q` — in which case it may reach back to the edge of this product’s retention, and does so by default
toquery
string
—
Newest timestamp to include, ISO 8601. Defaults to now
limitquery
integer
—
How many lines to return, 1-1000, default 100
cursorquery
string
—
The nextCursor of the previous page; omit for the first page

Response

Returns object.

FieldTypeAlwaysDescription
rows
object[]
•
The matching log lines, newest first
nextCursor
string | null
•
Pass back as cursor for the next page; null when the last page was reached
GET/observe/logs/tail

Follow the log lines of the current product. The first call returns the last 50 lines of the past 15 minutes, oldest-first; pass the returned cursor back to get only what arrived since.

MCP tool: observe_logs_tail

Parameters

NameInTypeRequiredDescription
environmentquery
string
—
Only lines of this environment
servicequery
string
—
Only lines of this service
severityInquery
string[]
—
Only lines whose severity is one of these
cursorquery
string
—
The nextCursor of the previous poll; omit to start at the newest lines

Response

Returns object.

FieldTypeAlwaysDescription
rows
object[]
•
The new log lines, oldest first
nextCursor
string | null
•
Pass back as cursor on the next poll; null only while the product has no logs
GET/observe/metrics/catalog

Catalogue the metrics of the current product: what exists, whether it is a counter or a histogram, its unit, which services report it and which attribute keys its series carry. Read this before observe_metrics_query — it is where a name, a type and a groupBy key come from.

MCP tool: observe_metrics_list

Parameters

NameInTypeRequiredDescription
environmentquery
string
—
Only metrics reported in this environment, e.g. "production"
servicequery
string
—
Only metrics reported by this service, e.g. "api"
searchquery
string
—
Only metrics whose name contains this text, case-insensitively
windowquery
stringone of: 15m, 1h, 24h, 7d, 30d
—
How far back to look for metrics; default "24h"

Response

Returns object.

FieldTypeAlwaysDescription
window
string
•
The window that was catalogued
metrics
object[]
•
The metrics seen in the window, by name
GET/observe/metrics/query

Read one metric of the current product as a time series. Cumulative counters are differenced at read time, so a process restart reads as its own increase rather than as a negative spike; histogram percentiles are interpolated across the emitter's buckets. Up to 100 series and 500 points each, over at most 31 days; truncated says when a ceiling was reached.

MCP tool: observe_metrics_query

Parameters

NameInTypeRequiredDescription
namequery
string
•
The metric to read, exactly as observe_metrics_list names it
aggregationquery
stringone of: rate, increase, value, p50, p90, p99, avg, count
•
How to aggregate each step. A counter takes "rate" (per second), "increase" (over the step) or "value" (its last reading); a histogram takes "p50", "p90", "p99", "avg" or "count". A pair that does not match the metric is rejected.
fromquery
string
—
Start of the window, ISO 8601; default one hour ago
toquery
string
—
End of the window, ISO 8601; default now
stepquery
stringone of: 1m, 5m, 15m, 1h, 6h, 1d
—
Bucket width; default the finest that renders at most 500 points
environmentquery
string
—
Only points from this environment
servicequery
string
—
Only points from this service
attributesquery
object
—
Only points whose attributes match every one of these key/value pairs
groupByquery
string[]
—
Attribute keys to keep as the series labels, aggregating every other attribute into them; default one series per distinct attribute set

Response

Returns object.

FieldTypeAlwaysDescription
to
string
•
End of the window that was read, ISO 8601
from
string
•
Start of the window that was read, ISO 8601
name
string
•
The metric that was read
step
string
•
The bucket width the series is rendered at
type
stringone of: sum, histogram
•
What the metric holds: a counter ("sum") or an explicit-bucket histogram
unit
string
•
Unit as the emitter declared it; empty when none
series
object[]
•
One series per label set, ordered stably
truncated
boolean
•
True when a ceiling cut the answer — more series exist than were returned
aggregation
string
•
The aggregation that was applied
stepSeconds
number
•
That width in seconds — what a rate was divided by
GET/observe/traces/:traceId

Read every span of one trace of the current product, oldest first, as a flat list carrying parentSpanId and depth — enough to draw a waterfall without a second call. Span events are returned exactly as the emitter sent them. Up to 5000 spans.

MCP tool: observe_traces_get

Parameters

NameInTypeRequiredDescription
traceIdpath
string
•
The trace to render, by its 32-character hex id

Response

Returns object.

FieldTypeAlwaysDescription
spans
object[]
•
Every span of the trace, oldest first; empty when the product has no such trace
traceId
string
•
The trace that was read
GET/observe/traces/search

Search the traces of the current product, newest first. Reads the last hour unless from/to say otherwise, and answers windows of up to 24 hours unless traceId pins the read. One row per trace: its root span, how long the whole trace took, how many spans it has and whether any of them failed. Filters are structured; there is no SQL surface. Page with nextCursor.

MCP tool: observe_traces_search

Parameters

NameInTypeRequiredDescription
environmentquery
string
—
Only traces of this environment, e.g. "production"
servicequery
string
—
Only traces one of whose spans belongs to this service, e.g. "api"
namequery
string
—
Only traces one of whose spans carries this exact span name, e.g. "GET /users"
statusquery
stringone of: ok, error, unset
—
Only traces in this state: "error" when any span failed, "ok" when none did and at least one reported OK, "unset" when no span reported a status
minDurationMsquery
number
—
Only traces that took at least this many milliseconds end to end
maxDurationMsquery
number
—
Only traces that took at most this many milliseconds end to end
traceIdquery
string
—
Only this trace, by its 32-character hex id
fromquery
string
—
Oldest span start to include, ISO 8601. Defaults to 1 hour before `to`. A window longer than 24 hours is rejected unless `traceId` pins the read, in which case it may reach back to the edge of span retention, and does so by default
toquery
string
—
Newest span start to include, ISO 8601. Defaults to now
limitquery
integer
—
How many traces to return, 1-1000, default 100
cursorquery
string
—
The nextCursor of the previous page; omit for the first page

Response

Returns object.

FieldTypeAlwaysDescription
traces
object[]
•
The matching traces, newest first
nextCursor
string | null
•
Pass back as cursor for the next page; null when the last page was reached
GET/observe/webhooks

List the webhook endpoints registered for this product. Signing secrets are never returned.

MCP tool: observe_webhooks_list

Parameters

No parameters.

Response

Returns object[].

Item fieldTypeAlwaysDescription
id
string
•
Identifier of the endpoint
url
string
•
HTTPS endpoint events are POSTed to
active
boolean
•
Whether deliveries are being attempted for it
createdAt
string
•
ISO 8601 registration timestamp
updatedAt
string
•
ISO 8601 timestamp of the last change
description
string | null
•
Free-form note given at registration, or null
POST/observe/webhooks

Register an HTTPS endpoint to receive this product’s observe issue events, and mint its signing secret. The secret is returned here and NOWHERE ELSE — store it now: it cannot be read back and can only be replaced by rotating it. Plain http:// endpoints are rejected.

MCP tool: observe_webhooks_create

Parameters

NameInTypeRequiredDescription
urlbody
string (uri)
•
HTTPS endpoint the event is POSTed to. Plain http:// is rejected
descriptionbody
string
—
Free-form note about what this endpoint is for, up to 1000 characters

Response

Returns object.

FieldTypeAlwaysDescription
id
string
•
Identifier of the endpoint
url
string
•
HTTPS endpoint events are POSTed to
active
boolean
•
Whether deliveries are being attempted for it
secret
string
•
The signing secret — shown only here, store it now; it cannot be read back
createdAt
string
•
ISO 8601 registration timestamp
updatedAt
string
•
ISO 8601 timestamp of the last change
description
string | null
•
Free-form note given at registration, or null
DELETE/observe/webhooks/:id

Remove a webhook endpoint and its delivery log. Delivery stops immediately. To stop delivery while keeping the history, set the endpoint inactive instead.

MCP tool: observe_webhooks_delete

Parameters

NameInTypeRequiredDescription
idpath
string
•
Identifier of the endpoint

Response

Returns object.

FieldTypeAlwaysDescription
id
string
•
Identifier of the removed endpoint
deleted
booleanone of: true
•
Always true; the call fails otherwise
GET/observe/webhooks/:id

Read one registered webhook endpoint of this product. Its signing secret is never returned.

MCP tool: observe_webhooks_get

Parameters

NameInTypeRequiredDescription
idpath
string
•
Identifier of the endpoint

Response

Returns object.

FieldTypeAlwaysDescription
id
string
•
Identifier of the endpoint
url
string
•
HTTPS endpoint events are POSTed to
active
boolean
•
Whether deliveries are being attempted for it
createdAt
string
•
ISO 8601 registration timestamp
updatedAt
string
•
ISO 8601 timestamp of the last change
description
string | null
•
Free-form note given at registration, or null
PATCH/observe/webhooks/:id

Edit a registered endpoint: its url, its description, or whether it is active. Setting active to false keeps the registration and stops delivery. Omit a field to leave it alone; pass null to clear the description. The signing secret is not editable here — rotate it instead.

MCP tool: observe_webhooks_update

Parameters

NameInTypeRequiredDescription
idpath
string
•
Identifier of the endpoint to change
urlbody
string (uri)
—
New HTTPS endpoint. Plain http:// is rejected
activebody
boolean
—
false keeps the registration and stops delivery; true resumes it
descriptionbody
string | null
—
New note, or null to clear it

Response

Returns object.

FieldTypeAlwaysDescription
id
string
•
Identifier of the endpoint
url
string
•
HTTPS endpoint events are POSTed to
active
boolean
•
Whether deliveries are being attempted for it
createdAt
string
•
ISO 8601 registration timestamp
updatedAt
string
•
ISO 8601 timestamp of the last change
description
string | null
•
Free-form note given at registration, or null
POST/observe/webhooks/:id/rotate-secret

Replace the signing secret of an endpoint and return the new one, exactly once. The old secret stops verifying immediately — there is no grace window, so update the receiver before rotating.

MCP tool: observe_webhooks_rotate_secret

Parameters

NameInTypeRequiredDescription
idpath
string
•
Identifier of the endpoint

Response

Returns object.

FieldTypeAlwaysDescription
id
string
•
Identifier of the endpoint
url
string
•
HTTPS endpoint events are POSTed to
active
boolean
•
Whether deliveries are being attempted for it
secret
string
•
The signing secret — shown only here, store it now; it cannot be read back
createdAt
string
•
ISO 8601 registration timestamp
updatedAt
string
•
ISO 8601 timestamp of the last change
description
string | null
•
Free-form note given at registration, or null
GET/observe/webhooks/deliveries

List webhook delivery attempts for this product, newest first. Filter by endpoint or by state (pending, success, failed). Each row carries the event data that was sent, the last HTTP status and why the last attempt failed.

MCP tool: observe_webhooks_deliveries_list

Parameters

NameInTypeRequiredDescription
webhookIdquery
string
—
Only deliveries for this endpoint
statusquery
stringone of: pending, success, failed
—
Only deliveries in this state
limitquery
integer
—
Page size, 1..200
offsetquery
integer
—
Number of deliveries to skip

Response

Returns object[].

Item fieldTypeAlwaysDescription
id
string
•
Identifier of the delivery, also sent as the envelope id
status
stringone of: pending, success, failed
•
pending means attempts remain; failed means the retry ladder is spent
payload
string
—
The event data that was sent, before snake_case conversion
createdAt
string
•
ISO 8601 time the delivery was opened
eventName
string
•
Event that was delivered, e.g. "observe/issue.created"
lastError
string | null
•
Why the last attempt failed, or null
webhookId
string
•
Endpoint the delivery is for
deliveredAt
string | null
•
ISO 8601 time it succeeded, or null
attemptCount
number
•
How many attempts have been made so far
idempotencyKey
string
•
Identity of the source event, repeated on every attempt and on a redelivery
lastStatusCode
number | null
•
HTTP status of the last attempt, or null
POST/observe/webhooks/deliveries/:id/redeliver

Send a past delivery to its endpoint again, with the original payload and the original idempotency key — a receiver that already processed it can recognise and ignore the repeat. The original delivery is kept as history and a new one is opened for this attempt. If the endpoint has since been disabled, nothing is delivered.

MCP tool: observe_webhooks_redeliver

Parameters

NameInTypeRequiredDescription
idpath
string
•
Identifier of the delivery to send again

Response

Returns object.

FieldTypeAlwaysDescription
id
string
•
Identifier of the delivery, also sent as the envelope id
status
stringone of: pending, success, failed
•
pending means attempts remain; failed means the retry ladder is spent
payload
string
—
The event data that was sent, before snake_case conversion
createdAt
string
•
ISO 8601 time the delivery was opened
eventName
string
•
Event that was delivered, e.g. "observe/issue.created"
lastError
string | null
•
Why the last attempt failed, or null
webhookId
string
•
Endpoint the delivery is for
deliveredAt
string | null
•
ISO 8601 time it succeeded, or null
attemptCount
number
•
How many attempts have been made so far
idempotencyKey
string
•
Identity of the source event, repeated on every attempt and on a redelivery
lastStatusCode
number | null
•
HTTP status of the last attempt, or null
Was this page helpful?
Esc

Start typing to search the docs.

↑↓navigate↵select