Alerts
Alerts endpoints of the Ellipsis REST API.
Optionally filtered by status and source. Available to all credential types, so an agent can check "is this org near budget?" mid-task.
curl "https://api.ellipsis.dev/alerts" \
-H "Authorization: Bearer $ELLIPSIS_API_KEY"{
"alerts": [
{
"body": "string",
"created_at": "2026-01-01T00:00:00Z",
"cta_label": "string",
"cta_url": "string",
"id": "string",
"resolved_at": "2026-01-01T00:00:00Z",
"resolved_by": 0,
"severity": "info",
"source": "budget",
"status": "open",
"title": "string",
"updated_at": "2026-01-01T00:00:00Z"
}
],
"has_more": false,
"next_cursor": "string"
}import os
from ellipsis import Ellipsis
client = Ellipsis(api_key=os.environ["ELLIPSIS_API_TOKEN"])
for item in client.alerts.list():
print(item){
"alerts": [
{
"body": "string",
"created_at": "2026-01-01T00:00:00Z",
"cta_label": "string",
"cta_url": "string",
"id": "string",
"resolved_at": "2026-01-01T00:00:00Z",
"resolved_by": 0,
"severity": "info",
"source": "budget",
"status": "open",
"title": "string",
"updated_at": "2026-01-01T00:00:00Z"
}
],
"has_more": false,
"next_cursor": "string"
}import { Ellipsis } from '@ellipsis-dev/sdk';
const client = new Ellipsis({
apiKey: process.env.ELLIPSIS_API_TOKEN!,
});
for await (const item of client.alerts.list()) {
console.log(item);
}{
"alerts": [
{
"body": "string",
"created_at": "2026-01-01T00:00:00Z",
"cta_label": "string",
"cta_url": "string",
"id": "string",
"resolved_at": "2026-01-01T00:00:00Z",
"resolved_by": 0,
"severity": "info",
"source": "budget",
"status": "open",
"title": "string",
"updated_at": "2026-01-01T00:00:00Z"
}
],
"has_more": false,
"next_cursor": "string"
}No request body.
{
"properties": {
"alerts": {
"items": {
"properties": {
"body": {
"type": "string"
},
"created_at": {
"format": "date-time",
"type": "string"
},
"cta_label": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"cta_url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"id": {
"type": "string"
},
"resolved_at": {
"anyOf": [
{
"format": "date-time",
"type": "string"
},
{
"type": "null"
}
]
},
"resolved_by": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
]
},
"severity": {
"enum": [
"info",
"warning"
],
"type": "string"
},
"source": {
"enum": [
"budget"
],
"type": "string"
},
"status": {
"enum": [
"open",
"dismissed",
"expired"
],
"type": "string"
},
"title": {
"type": "string"
},
"updated_at": {
"format": "date-time",
"type": "string"
}
},
"required": [
"id",
"created_at",
"updated_at",
"source",
"severity",
"title",
"body",
"status"
],
"type": "object"
},
"type": "array"
},
"has_more": {
"default": false,
"type": "boolean"
},
"next_cursor": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
}
},
"required": [
"alerts"
],
"type": "object"
}Request
statusenum
The alert's lifecycle state: open until a human dismisses it or the system resolves it (the condition cleared or the alert went stale).
one of
opendismissedexpiredsourceenum
What raised the alert.
one of
budgetlimitdefault
100integercursorstring
Responses
404 if it doesn't exist or belongs to another organization.
curl "https://api.ellipsis.dev/alerts/{alert_id}" \
-H "Authorization: Bearer $ELLIPSIS_API_KEY"{
"alert": {
"body": "string",
"created_at": "2026-01-01T00:00:00Z",
"cta_label": "string",
"cta_url": "string",
"id": "string",
"resolved_at": "2026-01-01T00:00:00Z",
"resolved_by": 0,
"severity": "info",
"source": "budget",
"status": "open",
"title": "string",
"updated_at": "2026-01-01T00:00:00Z"
}
}import os
from ellipsis import Ellipsis
client = Ellipsis(api_key=os.environ["ELLIPSIS_API_TOKEN"])
result = client.alerts.get("...")
print(result){
"alert": {
"body": "string",
"created_at": "2026-01-01T00:00:00Z",
"cta_label": "string",
"cta_url": "string",
"id": "string",
"resolved_at": "2026-01-01T00:00:00Z",
"resolved_by": 0,
"severity": "info",
"source": "budget",
"status": "open",
"title": "string",
"updated_at": "2026-01-01T00:00:00Z"
}
}import { Ellipsis } from '@ellipsis-dev/sdk';
const client = new Ellipsis({
apiKey: process.env.ELLIPSIS_API_TOKEN!,
});
const result = await client.alerts.get('...');
console.log(result);{
"alert": {
"body": "string",
"created_at": "2026-01-01T00:00:00Z",
"cta_label": "string",
"cta_url": "string",
"id": "string",
"resolved_at": "2026-01-01T00:00:00Z",
"resolved_by": 0,
"severity": "info",
"source": "budget",
"status": "open",
"title": "string",
"updated_at": "2026-01-01T00:00:00Z"
}
}No request body.
{
"properties": {
"alert": {
"properties": {
"body": {
"type": "string"
},
"created_at": {
"format": "date-time",
"type": "string"
},
"cta_label": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"cta_url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"id": {
"type": "string"
},
"resolved_at": {
"anyOf": [
{
"format": "date-time",
"type": "string"
},
{
"type": "null"
}
]
},
"resolved_by": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
]
},
"severity": {
"enum": [
"info",
"warning"
],
"type": "string"
},
"source": {
"enum": [
"budget"
],
"type": "string"
},
"status": {
"enum": [
"open",
"dismissed",
"expired"
],
"type": "string"
},
"title": {
"type": "string"
},
"updated_at": {
"format": "date-time",
"type": "string"
}
},
"required": [
"id",
"created_at",
"updated_at",
"source",
"severity",
"title",
"body",
"status"
],
"type": "object"
}
},
"required": [
"alert"
],
"type": "object"
}Request
alert_idstringrequired
Responses
409 when the alert is not open; 404 when it doesn't exist.
curl -X POST "https://api.ellipsis.dev/alerts/{alert_id}/dismiss" \
-H "Authorization: Bearer $ELLIPSIS_API_KEY"{
"alert": {
"body": "string",
"created_at": "2026-01-01T00:00:00Z",
"cta_label": "string",
"cta_url": "string",
"id": "string",
"resolved_at": "2026-01-01T00:00:00Z",
"resolved_by": 0,
"severity": "info",
"source": "budget",
"status": "open",
"title": "string",
"updated_at": "2026-01-01T00:00:00Z"
}
}import os
from ellipsis import Ellipsis
client = Ellipsis(api_key=os.environ["ELLIPSIS_API_TOKEN"])
result = client.alerts.dismiss("...")
print(result){
"alert": {
"body": "string",
"created_at": "2026-01-01T00:00:00Z",
"cta_label": "string",
"cta_url": "string",
"id": "string",
"resolved_at": "2026-01-01T00:00:00Z",
"resolved_by": 0,
"severity": "info",
"source": "budget",
"status": "open",
"title": "string",
"updated_at": "2026-01-01T00:00:00Z"
}
}import { Ellipsis } from '@ellipsis-dev/sdk';
const client = new Ellipsis({
apiKey: process.env.ELLIPSIS_API_TOKEN!,
});
const result = await client.alerts.dismiss('...');
console.log(result);{
"alert": {
"body": "string",
"created_at": "2026-01-01T00:00:00Z",
"cta_label": "string",
"cta_url": "string",
"id": "string",
"resolved_at": "2026-01-01T00:00:00Z",
"resolved_by": 0,
"severity": "info",
"source": "budget",
"status": "open",
"title": "string",
"updated_at": "2026-01-01T00:00:00Z"
}
}No request body.
{
"properties": {
"alert": {
"properties": {
"body": {
"type": "string"
},
"created_at": {
"format": "date-time",
"type": "string"
},
"cta_label": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"cta_url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"id": {
"type": "string"
},
"resolved_at": {
"anyOf": [
{
"format": "date-time",
"type": "string"
},
{
"type": "null"
}
]
},
"resolved_by": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
]
},
"severity": {
"enum": [
"info",
"warning"
],
"type": "string"
},
"source": {
"enum": [
"budget"
],
"type": "string"
},
"status": {
"enum": [
"open",
"dismissed",
"expired"
],
"type": "string"
},
"title": {
"type": "string"
},
"updated_at": {
"format": "date-time",
"type": "string"
}
},
"required": [
"id",
"created_at",
"updated_at",
"source",
"severity",
"title",
"body",
"status"
],
"type": "object"
}
},
"required": [
"alert"
],
"type": "object"
}Request
alert_idstringrequired