Endpoints API
Read the endpoints ApiTraffic detected in a bucket with their traffic and latency, manage endpoint rules, and triage attention signals.
ApiTraffic groups requests into endpoints, such as /v1/orders/{order_id}, from your framework’s routes, your endpoint rules and the paths it sees. These operations list those endpoints with their metrics, manage the endpoint rules that name endpoints your framework does not, and read and triage the attention signals raised about them (error spikes, latency regressions and other things worth a look). See Endpoint handling for how endpoints are detected.
Permissions: any member, or a user or administrator API token, for every operation on this page.
List endpoints
GET https://api.apitraffic.io/v1/accounts/{accountSid}/buckets/{bucketSid}/endpoints
Returns the endpoints seen in a bucket during a time range, busiest first.
Path parameters
-
accountSid (path, string, required): The account identifier.
-
bucketSid (path, string, required): The bucket identifier.
Query parameters
-
startTime (query, string, required): Start of the range (ISO 8601, UTC, ending in
Z). -
endTime (query, string, required): End of the range.
-
environmentSid (query, string): Only this environment.
-
direction (query, string, default in):
infor your API’s own endpoints,outfor the calls it makes, grouped per upstream host. -
limit (query, integer, default 100): Endpoints to return, 1 to 1000.
Response
-
endpoints (object[], required): One entry per endpoint:
endpoint,host(for outbound endpoints, otherwisenull),direction,requestCount,avgResponseTime(ms),errorCount(status 400 or above),errorRate(percent, 0 to 100),firstSeenandlastSeen. -
total (number, required): The number of endpoints returned.
curl -G https://api.apitraffic.io/v1/accounts/acc_2mXq7RbT4kPz9WvN3cHd8LsYfQa/buckets/k3m9p2x/endpoints \
-H "Authorization: Bearer $APITRAFFIC_TOKEN" \
--data-urlencode 'startTime=2026-10-19T00:00:00.000Z' \
--data-urlencode 'endTime=2026-10-20T00:00:00.000Z' \
--data-urlencode 'environmentSid=prd7k2'
const accountSid = 'acc_2mXq7RbT4kPz9WvN3cHd8LsYfQa';
const params = new URLSearchParams({
startTime: '2026-10-19T00:00:00.000Z',
endTime: '2026-10-20T00:00:00.000Z',
environmentSid: 'prd7k2',
});
const response = await fetch(
`https://api.apitraffic.io/v1/accounts/${accountSid}/buckets/k3m9p2x/endpoints?${params}`,
{ headers: { Authorization: `Bearer ${process.env.APITRAFFIC_TOKEN}` } },
);
const { endpoints } = await response.json();
{
"endpoints": [
{
"endpoint": "/v1/products/{product_id}",
"host": null,
"direction": "in",
"requestCount": 3120,
"avgResponseTime": 48.2,
"errorCount": 94,
"errorRate": 3.01,
"firstSeen": "2026-10-19T00:00:03.000Z",
"lastSeen": "2026-10-19T23:59:58.000Z"
},
{
"endpoint": "/v1/payments/{payment_id}/capture",
"host": null,
"direction": "in",
"requestCount": 402,
"avgResponseTime": 612.4,
"errorCount": 61,
"errorRate": 15.17,
"firstSeen": "2026-10-19T00:04:11.000Z",
"lastSeen": "2026-10-19T23:57:40.000Z"
}
],
"total": 2
}
Get endpoint metrics
GET https://api.apitraffic.io/v1/accounts/{accountSid}/buckets/{bucketSid}/endpoints/{endpoint}
Returns latency percentiles, error rates, status classes and a time series for one endpoint.
Path parameters
-
accountSid (path, string, required): The account identifier.
-
bucketSid (path, string, required): The bucket identifier.
-
endpoint (path, string, required): The endpoint pattern exactly as List endpoints returns it, URL-encoded. For example
/v1/orders/{order_id}becomes%2Fv1%2Forders%2F%7Border_id%7D.
Query parameters
-
startTime (query, string, required): Start of the range.
-
endTime (query, string, required): End of the range.
-
environmentSid (query, string): Only this environment.
-
direction (query, string, default in):
inorout. -
host (query, string): For an outbound endpoint, the upstream host. Needed to tell apart the same path on two services.
-
resolution (query, string): Width of each period:
1min,10min,1hr,2hr,1dor1mo. Defaults to1minfor a range of an hour or less, otherwise10min.
Response
-
endpoint (string | null, required): The endpoint.
-
host (string | null): The upstream host for an outbound endpoint.
-
direction (string | null):
inorout. -
summary (object, required): The whole range:
requestCount,avgResponseTime,minResponseTime,maxResponseTime,p50ResponseTime,p95ResponseTime,p99ResponseTime(all ms),errorCount,errorRate(percent),throughputRps,statusCodes(2xx,3xx,4xx,5xxcounts),firstSeenandlastSeen. -
timeseries (object[], required): One entry per period:
timestamp,requestCount,avgResponseTime,p95ResponseTime,errorCount,errorRateandthroughputRps.
curl -G "https://api.apitraffic.io/v1/accounts/acc_2mXq7RbT4kPz9WvN3cHd8LsYfQa/buckets/k3m9p2x/endpoints/%2Fv1%2Fpayments%2F%7Bpayment_id%7D%2Fcapture" \
-H "Authorization: Bearer $APITRAFFIC_TOKEN" \
--data-urlencode 'startTime=2026-10-19T13:00:00.000Z' \
--data-urlencode 'endTime=2026-10-19T16:00:00.000Z' \
--data-urlencode 'resolution=10min'
const accountSid = 'acc_2mXq7RbT4kPz9WvN3cHd8LsYfQa';
const endpoint = encodeURIComponent('/v1/payments/{payment_id}/capture');
const params = new URLSearchParams({
startTime: '2026-10-19T13:00:00.000Z',
endTime: '2026-10-19T16:00:00.000Z',
resolution: '10min',
});
const response = await fetch(
`https://api.apitraffic.io/v1/accounts/${accountSid}/buckets/k3m9p2x/endpoints/${endpoint}?${params}`,
{ headers: { Authorization: `Bearer ${process.env.APITRAFFIC_TOKEN}` } },
);
const { summary, timeseries } = await response.json();
{
"endpoint": "/v1/payments/{payment_id}/capture",
"host": null,
"direction": "in",
"summary": {
"requestCount": 51,
"avgResponseTime": 2310.5,
"maxResponseTime": 4120,
"minResponseTime": 180,
"p50ResponseTime": 2600,
"p95ResponseTime": 3980,
"p99ResponseTime": 4060,
"errorCount": 22,
"errorRate": 43.14,
"throughputRps": 0.005,
"statusCodes": { "2xx": 29, "3xx": 0, "4xx": 0, "5xx": 22 },
"firstSeen": "2026-10-19T13:02:10.000Z",
"lastSeen": "2026-10-19T15:58:31.000Z"
},
"timeseries": [
{
"timestamp": "2026-10-19T14:00:00.000Z",
"requestCount": 6,
"avgResponseTime": 3610.2,
"p95ResponseTime": 4010,
"errorCount": 4,
"errorRate": 66.67,
"throughputRps": 0.01
}
]
}
The endpoint rule object
An endpoint rule assigns an endpoint pattern to requests whose path matches, for paths your framework cannot name itself.
-
sid (string, required): The rule’s identifier (
epr_followed by 27 letters and digits). -
accountSid (string, required): The account.
-
description (string | null): A short description.
-
matchPattern (string, required): The path to match.
{*}matches one path segment, for example/v1/orders/{*}/items. -
endpointPattern (string, required): The endpoint to assign, for example
/v1/orders/{orderId}/items. -
priority (integer, required): Lower numbers are checked first. Default
0. -
direction (string, required):
in(requests your API serves),out(calls it makes) or*(both). Default*. -
hosts (string[], required): For outbound traffic, the upstream hosts the rule applies to, or
["*"]. -
buckets (string[]): The buckets the rule applies to, or
["*"]. -
environments (string[]): The environments the rule applies to, or
["*"]. -
enabled (boolean): Whether the rule is active. Default
true. -
stream (boolean): Whether matching requests are long-lived connections (streams, long polling). They still count as traffic but are left out of response-time metrics. Responses sent as
text/event-streamare treated this way without a rule. Defaultfalse. -
source (string, required):
manual(written by someone) orlearned(proposed from observed traffic). -
observedValues (string[]): For learned rules, some of the segment values that led to the rule.
-
createdAt (string, required): When the rule was created (ISO 8601).
List endpoint rules
GET https://api.apitraffic.io/v1/accounts/{accountSid}/endpointRules
Returns every endpoint rule in the account.
Path parameters
- accountSid (path, string, required): The account identifier.
Response
-
hasMore (boolean, required): Always
false. -
records (object[], required): The rules, as endpoint rule objects.
curl https://api.apitraffic.io/v1/accounts/acc_2mXq7RbT4kPz9WvN3cHd8LsYfQa/endpointRules \
-H "Authorization: Bearer $APITRAFFIC_TOKEN"
const accountSid = 'acc_2mXq7RbT4kPz9WvN3cHd8LsYfQa';
const response = await fetch(`https://api.apitraffic.io/v1/accounts/${accountSid}/endpointRules`, {
headers: { Authorization: `Bearer ${process.env.APITRAFFIC_TOKEN}` },
});
const { records } = await response.json();
{
"hasMore": false,
"records": [
{
"sid": "epr_2aB4cD6eF8gH1iJ3kL5mN7oP9qR",
"accountSid": "acc_2mXq7RbT4kPz9WvN3cHd8LsYfQa",
"description": "Freight tracking calls",
"matchPattern": "/v1/shipments/{*}/tracking",
"endpointPattern": "/v1/shipments/{shipmentId}/tracking",
"priority": 0,
"direction": "out",
"hosts": ["api.acme-freight.example"],
"buckets": ["*"],
"environments": ["*"],
"enabled": true,
"stream": false,
"source": "manual",
"observedValues": [],
"createdAt": "2026-05-12T08:30:00.000Z"
}
]
}
Get endpoint rule
GET https://api.apitraffic.io/v1/accounts/{accountSid}/endpointRules/{endpointRuleSid}
Returns one endpoint rule.
Path parameters
-
accountSid (path, string, required): The account identifier.
-
endpointRuleSid (path, string, required): The rule’s identifier (
epr_…).
Response
curl https://api.apitraffic.io/v1/accounts/acc_2mXq7RbT4kPz9WvN3cHd8LsYfQa/endpointRules/epr_2aB4cD6eF8gH1iJ3kL5mN7oP9qR \
-H "Authorization: Bearer $APITRAFFIC_TOKEN"
const accountSid = 'acc_2mXq7RbT4kPz9WvN3cHd8LsYfQa';
const ruleSid = 'epr_2aB4cD6eF8gH1iJ3kL5mN7oP9qR';
const response = await fetch(`https://api.apitraffic.io/v1/accounts/${accountSid}/endpointRules/${ruleSid}`, {
headers: { Authorization: `Bearer ${process.env.APITRAFFIC_TOKEN}` },
});
const rule = await response.json();
{
"sid": "epr_2aB4cD6eF8gH1iJ3kL5mN7oP9qR",
"accountSid": "acc_2mXq7RbT4kPz9WvN3cHd8LsYfQa",
"description": "Freight tracking calls",
"matchPattern": "/v1/shipments/{*}/tracking",
"endpointPattern": "/v1/shipments/{shipmentId}/tracking",
"priority": 0,
"direction": "out",
"hosts": ["api.acme-freight.example"],
"buckets": ["*"],
"environments": ["*"],
"enabled": true,
"stream": false,
"source": "manual",
"observedValues": [],
"createdAt": "2026-05-12T08:30:00.000Z"
}
Create endpoint rule
POST https://api.apitraffic.io/v1/accounts/{accountSid}/endpointRules
Creates an endpoint rule. It applies to requests captured from then on.
Limit: the number of endpoint rules depends on the plan; past it, the API answers 409 with code 2213.
Path parameters
- accountSid (path, string, required): The account identifier.
Body parameters
-
matchPattern (body, string, required): The path to match, with
{*}for one segment. -
endpointPattern (body, string, required): The endpoint to assign.
-
description (body, string | null): A short description.
-
priority (body, integer, default 0): 0 or more; lower numbers are checked first.
-
direction (body, string, default *):
in,outor*. -
hosts (body, string[], default [“*”]): Upstream hosts, for outbound traffic.
-
buckets (body, string[]): Bucket sids, or
["*"]. -
environments (body, string[]): Environment sids, or
["*"]. -
enabled (body, boolean, default true): Whether the rule is active.
-
stream (body, boolean, default false): Treat matching requests as long-lived connections.
Response
The new endpoint rule object.
curl -X POST https://api.apitraffic.io/v1/accounts/acc_2mXq7RbT4kPz9WvN3cHd8LsYfQa/endpointRules \
-H "Authorization: Bearer $APITRAFFIC_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"description": "Freight tracking calls",
"matchPattern": "/v1/shipments/{*}/tracking",
"endpointPattern": "/v1/shipments/{shipmentId}/tracking",
"direction": "out",
"hosts": ["api.acme-freight.example"]
}'
const accountSid = 'acc_2mXq7RbT4kPz9WvN3cHd8LsYfQa';
const response = await fetch(`https://api.apitraffic.io/v1/accounts/${accountSid}/endpointRules`, {
method: 'POST',
headers: {
Authorization: `Bearer ${process.env.APITRAFFIC_TOKEN}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
description: 'Freight tracking calls',
matchPattern: '/v1/shipments/{*}/tracking',
endpointPattern: '/v1/shipments/{shipmentId}/tracking',
direction: 'out',
hosts: ['api.acme-freight.example'],
}),
});
const rule = await response.json();
{
"sid": "epr_2aB4cD6eF8gH1iJ3kL5mN7oP9qR",
"accountSid": "acc_2mXq7RbT4kPz9WvN3cHd8LsYfQa",
"description": "Freight tracking calls",
"matchPattern": "/v1/shipments/{*}/tracking",
"endpointPattern": "/v1/shipments/{shipmentId}/tracking",
"priority": 0,
"direction": "out",
"hosts": ["api.acme-freight.example"],
"buckets": ["*"],
"environments": ["*"],
"enabled": true,
"stream": false,
"source": "manual",
"observedValues": [],
"createdAt": "2026-10-20T11:40:00.000Z"
}
Update endpoint rule
PUT https://api.apitraffic.io/v1/accounts/{accountSid}/endpointRules/{endpointRuleSid}
Replaces an endpoint rule. matchPattern and endpointPattern are required; send the other fields with the values you want, as for Create endpoint rule. stream keeps its value when omitted.
Path parameters
-
accountSid (path, string, required): The account identifier.
-
endpointRuleSid (path, string, required): The rule’s identifier.
Body parameters
The same as Create endpoint rule.
Response
The updated endpoint rule object.
curl -X PUT https://api.apitraffic.io/v1/accounts/acc_2mXq7RbT4kPz9WvN3cHd8LsYfQa/endpointRules/epr_2aB4cD6eF8gH1iJ3kL5mN7oP9qR \
-H "Authorization: Bearer $APITRAFFIC_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"description": "Freight tracking calls",
"matchPattern": "/v1/shipments/{*}/tracking",
"endpointPattern": "/v1/shipments/{shipmentId}/tracking",
"direction": "out",
"hosts": ["api.acme-freight.example"],
"enabled": false
}'
const accountSid = 'acc_2mXq7RbT4kPz9WvN3cHd8LsYfQa';
const ruleSid = 'epr_2aB4cD6eF8gH1iJ3kL5mN7oP9qR';
const response = await fetch(`https://api.apitraffic.io/v1/accounts/${accountSid}/endpointRules/${ruleSid}`, {
method: 'PUT',
headers: {
Authorization: `Bearer ${process.env.APITRAFFIC_TOKEN}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
description: 'Freight tracking calls',
matchPattern: '/v1/shipments/{*}/tracking',
endpointPattern: '/v1/shipments/{shipmentId}/tracking',
direction: 'out',
hosts: ['api.acme-freight.example'],
enabled: false,
}),
});
const rule = await response.json();
{
"sid": "epr_2aB4cD6eF8gH1iJ3kL5mN7oP9qR",
"accountSid": "acc_2mXq7RbT4kPz9WvN3cHd8LsYfQa",
"description": "Freight tracking calls",
"matchPattern": "/v1/shipments/{*}/tracking",
"endpointPattern": "/v1/shipments/{shipmentId}/tracking",
"priority": 0,
"direction": "out",
"hosts": ["api.acme-freight.example"],
"buckets": ["*"],
"environments": ["*"],
"enabled": false,
"stream": false,
"source": "manual",
"observedValues": [],
"createdAt": "2026-10-20T11:40:00.000Z"
}
Delete endpoint rule
DELETE https://api.apitraffic.io/v1/accounts/{accountSid}/endpointRules/{endpointRuleSid}
Deletes an endpoint rule.
Path parameters
-
accountSid (path, string, required): The account identifier.
-
endpointRuleSid (path, string, required): The rule’s identifier.
Response
-
sid (string, required): The deleted rule’s identifier.
-
deleted (boolean, required):
true.
curl -X DELETE https://api.apitraffic.io/v1/accounts/acc_2mXq7RbT4kPz9WvN3cHd8LsYfQa/endpointRules/epr_2aB4cD6eF8gH1iJ3kL5mN7oP9qR \
-H "Authorization: Bearer $APITRAFFIC_TOKEN"
const accountSid = 'acc_2mXq7RbT4kPz9WvN3cHd8LsYfQa';
const ruleSid = 'epr_2aB4cD6eF8gH1iJ3kL5mN7oP9qR';
await fetch(`https://api.apitraffic.io/v1/accounts/${accountSid}/endpointRules/${ruleSid}`, {
method: 'DELETE',
headers: { Authorization: `Bearer ${process.env.APITRAFFIC_TOKEN}` },
});
{
"sid": "epr_2aB4cD6eF8gH1iJ3kL5mN7oP9qR",
"deleted": true
}
The attention signal object
Attention signals are raised by a background evaluation of each bucket’s recent traffic, independent of any time range you pick in the app.
Plan: signals are raised for plans that include Attention signals. Reading and triaging existing signals keeps working if the plan changes.
-
sid (string, required): The signal’s identifier (
asig_followed by 27 letters and digits). -
accountSid (string, required): The account.
-
bucketSid (string, required): The bucket.
-
environmentSid (string | null): The environment.
-
signalType (string, required):
error_rate,error_hotspot,latency_regression,error_regression,slow_endpoint,waf_blocked,waf_would_block,drift_breaking,drift_highordrift_open. -
subjectType (string, required):
bucketorendpoint. -
subject (string | null): The endpoint, for endpoint signals.
-
severity (string, required):
critical,warningorinfo. -
status (string, required):
open,acknowledged,snoozed,dismissedorresolved. -
title (string | null): A one-line summary.
-
detail (string | null): More detail.
-
metricValue (number | null): The number that raised the signal, in
metricUnit(percent,msorcount). -
context (object): Supporting counts; the shape depends on
signalType. -
occurrenceCount (number, required): How many evaluations have seen the signal firing.
-
firstSeenAt (string | null): First seen.
-
lastSeenAt (string | null): Last seen.
-
resolvedAt (string | null): When the problem stopped.
-
dismissedAt (string | null): When it was dismissed, and
dismissedByUserSidby whom. -
snoozedUntil (string | null): When a snoozed signal comes back.
-
createdAt (string | null): When the signal was first raised.
List attention signals
GET https://api.apitraffic.io/v1/accounts/{accountSid}/buckets/{bucketSid}/attentionSignals
Returns a bucket’s signals. By default only those someone should see now: firing, and not dismissed or snoozed.
Path parameters
-
accountSid (path, string, required): The account identifier.
-
bucketSid (path, string, required): The bucket identifier.
Query parameters
-
environmentSid (query, string): Only this environment.
-
status (query, string): Only this status:
open,acknowledged,snoozed,dismissedorresolved. -
signalType (query, string): Only this type.
-
severity (query, string):
critical,warningorinfo. -
visibleOnly (query, boolean, default true): Pass
falseto include dismissed, snoozed and resolved signals. -
limit (query, integer, default 250): Signals to return, 1 to 1000.
Response
-
hasMore (boolean, required): Whether more signals match than were returned.
-
records (object[], required): The signals, as attention signal objects.
curl -G https://api.apitraffic.io/v1/accounts/acc_2mXq7RbT4kPz9WvN3cHd8LsYfQa/buckets/k3m9p2x/attentionSignals \
-H "Authorization: Bearer $APITRAFFIC_TOKEN" \
--data-urlencode 'severity=critical'
const accountSid = 'acc_2mXq7RbT4kPz9WvN3cHd8LsYfQa';
const response = await fetch(
`https://api.apitraffic.io/v1/accounts/${accountSid}/buckets/k3m9p2x/attentionSignals?severity=critical`,
{ headers: { Authorization: `Bearer ${process.env.APITRAFFIC_TOKEN}` } },
);
const { records } = await response.json();
{
"hasMore": false,
"records": [
{
"sid": "asig_2fG4hJ6kL8mN1pQ3rS5tU7vW9xY",
"accountSid": "acc_2mXq7RbT4kPz9WvN3cHd8LsYfQa",
"bucketSid": "k3m9p2x",
"environmentSid": "prd7k2",
"signalType": "error_hotspot",
"subjectType": "endpoint",
"subject": "/v1/payments/{payment_id}/capture",
"severity": "critical",
"status": "open",
"title": "POST /v1/payments/{payment_id}/capture is failing",
"detail": "43% of requests returned 5xx in the last hour.",
"metricValue": 43.1,
"metricUnit": "percent",
"context": {},
"occurrenceCount": 4,
"firstSeenAt": "2026-10-19T14:05:00.000Z",
"lastSeenAt": "2026-10-19T14:35:00.000Z",
"resolvedAt": null,
"dismissedAt": null,
"dismissedByUserSid": null,
"snoozedUntil": null,
"createdAt": "2026-10-19T14:05:00.000Z"
}
]
}
Update attention signal
PATCH https://api.apitraffic.io/v1/accounts/{accountSid}/buckets/{bucketSid}/attentionSignals/{signalSid}
Acknowledges, snoozes, dismisses or reopens a signal. A dismissal applies to everyone in the account and records who made it. A dismissed signal comes back on its own if it escalates in severity or its metric gets materially worse. resolved cannot be set by hand; it is set when the problem stops.
Path parameters
-
accountSid (path, string, required): The account identifier.
-
bucketSid (path, string, required): The bucket identifier.
-
signalSid (path, string, required): The signal’s identifier (
asig_…).
Body parameters
-
status (body, string, required):
open,acknowledged,snoozedordismissed. -
snoozeMinutes (body, integer): How long to hide the signal, 1 to 43200 minutes (30 days). Required with
snoozed.
Response
The updated attention signal object.
curl -X PATCH https://api.apitraffic.io/v1/accounts/acc_2mXq7RbT4kPz9WvN3cHd8LsYfQa/buckets/k3m9p2x/attentionSignals/asig_2fG4hJ6kL8mN1pQ3rS5tU7vW9xY \
-H "Authorization: Bearer $APITRAFFIC_TOKEN" \
-H "Content-Type: application/json" \
-d '{ "status": "snoozed", "snoozeMinutes": 120 }'
const accountSid = 'acc_2mXq7RbT4kPz9WvN3cHd8LsYfQa';
const signalSid = 'asig_2fG4hJ6kL8mN1pQ3rS5tU7vW9xY';
const response = await fetch(
`https://api.apitraffic.io/v1/accounts/${accountSid}/buckets/k3m9p2x/attentionSignals/${signalSid}`,
{
method: 'PATCH',
headers: {
Authorization: `Bearer ${process.env.APITRAFFIC_TOKEN}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({ status: 'snoozed', snoozeMinutes: 120 }),
},
);
const signal = await response.json();
{
"sid": "asig_2fG4hJ6kL8mN1pQ3rS5tU7vW9xY",
"accountSid": "acc_2mXq7RbT4kPz9WvN3cHd8LsYfQa",
"bucketSid": "k3m9p2x",
"environmentSid": "prd7k2",
"signalType": "error_hotspot",
"subjectType": "endpoint",
"subject": "/v1/payments/{payment_id}/capture",
"severity": "critical",
"status": "snoozed",
"title": "POST /v1/payments/{payment_id}/capture is failing",
"detail": "43% of requests returned 5xx in the last hour.",
"metricValue": 43.1,
"metricUnit": "percent",
"context": {},
"occurrenceCount": 4,
"firstSeenAt": "2026-10-19T14:05:00.000Z",
"lastSeenAt": "2026-10-19T14:35:00.000Z",
"resolvedAt": null,
"dismissedAt": null,
"dismissedByUserSid": null,
"snoozedUntil": "2026-10-19T16:40:00.000Z",
"createdAt": "2026-10-19T14:05:00.000Z"
}
Errors
| Status | Code | Meaning |
|---|---|---|
400 |
1000 |
A parameter is missing or invalid, for example snoozed without snoozeMinutes. |
403 |
2509 |
Changing a rule or signal for the read-only sample bucket. |
404 |
4000 |
No rule or signal with that sid. |
409 |
2213 |
The plan’s endpoint rule limit is reached. |
503, 504 |
5101 to 5104 |
Endpoint metrics could not be read right now. Retry after Retry-After seconds. |
Related
-
Endpoint rules: When and how to write endpoint rules.
-
Drift API: Changes in an endpoint’s shape over time.