Skip to main content

tripl (0.1.0)

Download OpenAPI specification:Download

Analytics tracking plan service

auth

Login, registration, logout, and current-user lookup.

Get Status

Responses

Response samples

Content type
application/json
{
  • "has_users": true,
  • "registration_enabled": true
}

Register

Request Body schema: application/json
required
email
required
string <email> (Email)
password
required
string (Password) <= 255 characters
Name (string) or Name (null) (Name)

Responses

Request samples

Content type
application/json
{
  • "email": "user@example.com",
  • "password": "string",
  • "name": "string"
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "email": "string",
  • "name": "string",
  • "role": "owner",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Preview Invitation

Show who an invitation is for, before the invitee has an account.

Unauthenticated by necessity — the whole point is that this person cannot sign in yet. It discloses nothing the token holder does not already have: the address it was issued to, the role it grants, and when it lapses. It does not reveal whether the instance has other users, or who they are.

Shares the cheap /status bucket rather than the register bucket: previewing is a read, and it must not consume the quota the invitee needs to actually redeem. Unknown, expired and used tokens all return the same 400.

path Parameters
token
required
string (Token)

Responses

Response samples

Content type
application/json
{
  • "email": "string",
  • "role": "owner",
  • "expires_at": "2019-08-24T14:15:22Z"
}

Accept Invitation

Redeem an invitation into an account, and sign the new user straight in.

Reachable regardless of registration_mode — that is the entire point: an owner-issued, single-use, expiring, address-bound invitation is a different mechanism from the instance-wide door, so a closed instance can still onboard exactly the people its owner named.

On the register rate-limit bucket, so guessing tokens costs the same as hammering signup.

path Parameters
token
required
string (Token)
Request Body schema: application/json
required
password
required
string (Password) <= 255 characters
Name (string) or Name (null) (Name)

Responses

Request samples

Content type
application/json
{
  • "password": "string",
  • "name": "string"
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "email": "string",
  • "name": "string",
  • "role": "owner",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Login

Request Body schema: application/json
required
email
required
string (Email) [ 3 .. 320 ] characters
password
required
string (Password) [ 8 .. 255 ] characters

Responses

Request samples

Content type
application/json
{
  • "email": "string",
  • "password": "stringst"
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "email": "string",
  • "name": "string",
  • "role": "owner",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Request Password Reset

Request Body schema: application/json
required
email
required
string <email> (Email)

Responses

Request samples

Content type
application/json
{
  • "email": "user@example.com"
}

Response samples

Content type
application/json
{
  • "message": "string",
  • "email_configured": true
}

Confirm Password Reset

Request Body schema: application/json
required
token
required
string (Token) [ 1 .. 512 ] characters
new_password
required
string (New Password) <= 255 characters

Responses

Request samples

Content type
application/json
{
  • "token": "string",
  • "new_password": "string"
}

Response samples

Content type
application/json
{
  • "message": "string"
}

Logout

Responses

Get Me

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "email": "string",
  • "name": "string",
  • "role": "owner",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

users

User administration and role management.

List Invitations

Outstanding invitations. Owner-only: this is the roster of pending access.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create Invitation

Invite one person, at a role the owner picks.

OwnerUserDep is owner-only AND rejects API keys of any scope, so minting an account always requires an interactive owner session — an automation token can never conjure a new identity.

The redeem link is returned in the body, not merely emailed: SMTP is optional and unconfigured on many instances, so a body-only path is the one that always works. It appears here and nowhere else.

Request Body schema: application/json
required
email
required
string <email> (Email)
role
string (UserRole)
Default: "editor"
Enum: "owner" "editor" "viewer"

Responses

Request samples

Content type
application/json
{
  • "email": "user@example.com",
  • "role": "owner"
}

Response samples

Content type
application/json
{
  • "invitation": {
    },
  • "accept_path": "string",
  • "expires_at": "2019-08-24T14:15:22Z"
}

Revoke Invitation

Revoke an invitation; its link stops working immediately.

path Parameters
invitation_id
required
string <uuid> (Invitation Id)

Responses

Response samples

Content type
application/json
{
  • "detail": [
    ]
}

List Users

query Parameters
limit
integer (Limit) [ 1 .. 1000 ]
Default: 200
offset
integer (Offset) >= 0
Default: 0

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Update User Role

path Parameters
user_id
required
string <uuid> (User Id)
Request Body schema: application/json
required
role
required
string (UserRole)
Enum: "owner" "editor" "viewer"

Responses

Request samples

Content type
application/json
{
  • "role": "owner"
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "email": "string",
  • "name": "string",
  • "role": "owner",
  • "created_at": "2019-08-24T14:15:22Z"
}

projects

Projects (tracking plans) and their lifecycle.

List Projects

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create Project

Request Body schema: application/json
required
name
required
string (Name) [ 1 .. 255 ] characters
slug
required
string (Slug) [ 1 .. 255 ] characters ^[a-z0-9]+(?:-[a-z0-9]+)*$
description
string (Description)
Default: ""
app_version_keep_releases
integer (App Version Keep Releases) [ 1 .. 100 ]
Default: 5

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "slug": "string",
  • "description": "",
  • "app_version_keep_releases": 5
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "name": "string",
  • "slug": "string",
  • "description": "string",
  • "app_version_keep_releases": 5,
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "summary": {
    },
  • "is_demo": false,
  • "generation_status": "pending",
  • "generation_stage": "string",
  • "generation_error": "string",
  • "demo_recipe_version": "string",
  • "demo_seeded_at": "2019-08-24T14:15:22Z",
  • "demo_last_tick_at": "2019-08-24T14:15:22Z",
  • "created_by_user_id": "209f54c4-4c33-43bc-9c6a-ef4c65ad7473"
}

Create Demo Project

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "name": "string",
  • "slug": "string",
  • "description": "string",
  • "app_version_keep_releases": 5,
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "summary": {
    },
  • "is_demo": false,
  • "generation_status": "pending",
  • "generation_stage": "string",
  • "generation_error": "string",
  • "demo_recipe_version": "string",
  • "demo_seeded_at": "2019-08-24T14:15:22Z",
  • "demo_last_tick_at": "2019-08-24T14:15:22Z",
  • "created_by_user_id": "209f54c4-4c33-43bc-9c6a-ef4c65ad7473"
}

Cancel Demo Provisioning

Abandon this user's in-flight demo provision, if one is still seeding.

Deliberately ungated by the kill switch: it only ever removes work. Declared before /demo/{slug}/reset so the literal path is never shadowed.

Responses

Response samples

Content type
application/json
{
  • "cancelled": true,
  • "slug": "string"
}

Reset Demo Project

Re-seed a demo in place. Restricted to the demo's creator or an owner.

path Parameters
slug
required
string (Slug)

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "name": "string",
  • "slug": "string",
  • "description": "string",
  • "app_version_keep_releases": 5,
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "summary": {
    },
  • "is_demo": false,
  • "generation_status": "pending",
  • "generation_stage": "string",
  • "generation_error": "string",
  • "demo_recipe_version": "string",
  • "demo_seeded_at": "2019-08-24T14:15:22Z",
  • "demo_last_tick_at": "2019-08-24T14:15:22Z",
  • "created_by_user_id": "209f54c4-4c33-43bc-9c6a-ef4c65ad7473"
}

Delete Demo Project

Delete a demo and its owned synthetic warehouse. Creator or owner only.

path Parameters
slug
required
string (Slug)

Responses

Response samples

Content type
application/json
{
  • "detail": [
    ]
}

Get Project

path Parameters
slug
required
string (Slug)

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "name": "string",
  • "slug": "string",
  • "description": "string",
  • "app_version_keep_releases": 5,
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "summary": {
    },
  • "is_demo": false,
  • "generation_status": "pending",
  • "generation_stage": "string",
  • "generation_error": "string",
  • "demo_recipe_version": "string",
  • "demo_seeded_at": "2019-08-24T14:15:22Z",
  • "demo_last_tick_at": "2019-08-24T14:15:22Z",
  • "created_by_user_id": "209f54c4-4c33-43bc-9c6a-ef4c65ad7473"
}

Update Project

path Parameters
slug
required
string (Slug)
Request Body schema: application/json
required
Name (string) or Name (null) (Name)
Slug (string) or Slug (null) (Slug)
Description (string) or Description (null) (Description)
app_version_keep_releases
integer (App Version Keep Releases) [ 1 .. 100 ]

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "slug": "string",
  • "description": "string",
  • "app_version_keep_releases": 1
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "name": "string",
  • "slug": "string",
  • "description": "string",
  • "app_version_keep_releases": 5,
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "summary": {
    },
  • "is_demo": false,
  • "generation_status": "pending",
  • "generation_stage": "string",
  • "generation_error": "string",
  • "demo_recipe_version": "string",
  • "demo_seeded_at": "2019-08-24T14:15:22Z",
  • "demo_last_tick_at": "2019-08-24T14:15:22Z",
  • "created_by_user_id": "209f54c4-4c33-43bc-9c6a-ef4c65ad7473"
}

Delete Project

path Parameters
slug
required
string (Slug)

Responses

Response samples

Content type
application/json
{
  • "detail": [
    ]
}

Reset Anomalies

Owner-only: clear every anomaly (+ breakdown) in the project's period.

Destructive and irreversible. Derived monitoring signals disappear with the anomalies they are computed from.

path Parameters
slug
required
string (Slug)
Request Body schema: application/json
required
Before (string) or Before (null) (Before)
After (string) or After (null) (After)

Responses

Request samples

Content type
application/json
{
  • "before": "2019-08-24T14:15:22Z",
  • "after": "2019-08-24T14:15:22Z"
}

Response samples

Content type
application/json
{
  • "metric_anomalies": 0,
  • "metric_breakdown_anomalies": 0
}

Reset Drifts

Owner-only: clear every schema + distribution drift in the project's period.

Destructive and irreversible.

path Parameters
slug
required
string (Slug)
Request Body schema: application/json
required
Before (string) or Before (null) (Before)
After (string) or After (null) (After)

Responses

Request samples

Content type
application/json
{
  • "before": "2019-08-24T14:15:22Z",
  • "after": "2019-08-24T14:15:22Z"
}

Response samples

Content type
application/json
{
  • "schema_drifts": 0,
  • "distribution_drifts": 0
}

Retire Unused Variables

Owner-only: drop the variables a scan minted that nothing refers to.

A scan creates a variable for every placeholder it discovers and has never retired one, so a project whose warehouse holds a JSON column keyed by user-typed text accumulates a row per key forever (tripl-10h4). This deletes only rows that a scan created, no human has edited, no event field value names, and that carry no observed context, drift or override — see core.variable_retirement for why "no observed context" alone is not enough to be safe.

dry_run defaults to true, so the first call is always a preview. It returns the same counts the real pass would, broken down by why each surviving row was kept.

path Parameters
slug
required
string (Slug)
query Parameters
Branch (string) or Branch (null) (Branch)

Plan branch id (UUID) to read and write instead of the main branch.

Request Body schema: application/json
required
mode
string (Mode)
Default: "delete"
Enum: "delete" "exclude"
dry_run
boolean (Dry Run)
Default: true

Responses

Request samples

Content type
application/json
{
  • "mode": "delete",
  • "dry_run": true
}

Response samples

Content type
application/json
{
  • "scanned": 0,
  • "retirable": 0,
  • "retired": 0,
  • "kept_referenced": 0,
  • "kept_observed": 0,
  • "kept_documented": 0,
  • "kept_user_edited": 0,
  • "kept_excluded": 0
}

events

Tracked events within a project's plan.

List Events

path Parameters
slug
required
string (Slug)
query Parameters
Event Type Id (string) or Event Type Id (null) (Event Type Id)
Search (string) or Search (null) (Search)
Array of Status (strings) or Status (null) (Status)
Tag (string) or Tag (null) (Tag)
Silent Since Days (integer) or Silent Since Days (null) (Silent Since Days)
Reviewed (boolean) or Reviewed (null) (Reviewed)
Field Value (string) or Field Value (null) (Field Value)
Meta Value (string) or Meta Value (null) (Meta Value)
offset
integer (Offset) >= 0
Default: 0
limit
integer (Limit) [ 1 .. 10000 ]
Default: 200
order_by
string (Order By)
Default: "catalog"
Enum: "catalog" "volume"
Branch (string) or Branch (null) (Branch)

Plan branch id (UUID) to read and write instead of the main branch.

Responses

Response samples

Content type
application/json
{
  • "items": [
    ],
  • "total": 0
}

Create Event

path Parameters
slug
required
string (Slug)
query Parameters
Branch (string) or Branch (null) (Branch)

Plan branch id (UUID) to read and write instead of the main branch.

Request Body schema: application/json
required
event_type_id
required
string <uuid> (Event Type Id)
name
required
string (Name) [ 1 .. 500 ] characters
description
string (Description)
Default: ""
status
string (EventStatus)
Default: "draft"
Enum: "draft" "in_review" "ready_for_dev" "implemented" "live" "deprecated" "archived"
Sunset At (string) or Sunset At (null) (Sunset At)
Owner Id (string) or Owner Id (null) (Owner Id)
reviewed
boolean (Reviewed)
Default: false
metric_breakdown_columns
Array of strings (Metric Breakdown Columns)
Default: []
tags
Array of strings (Tags)
Default: []
Array of objects (Field Values)
Default: []
Array of objects (Meta Values)
Default: []

Responses

Request samples

Content type
application/json
{
  • "event_type_id": "a4ec4c3c-a3de-4a8a-983f-1791e72cea83",
  • "name": "string",
  • "description": "",
  • "status": "draft",
  • "sunset_at": "2019-08-24T14:15:22Z",
  • "owner_id": "8826ee2e-7933-4665-aef2-2393f84a0d05",
  • "reviewed": false,
  • "metric_breakdown_columns": [ ],
  • "tags": [ ],
  • "field_values": [ ],
  • "meta_values": [ ]
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
  • "event_type_id": "a4ec4c3c-a3de-4a8a-983f-1791e72cea83",
  • "event_type": {
    },
  • "name": "string",
  • "description": "string",
  • "order": 0,
  • "status": "draft",
  • "sunset_at": "2019-08-24T14:15:22Z",
  • "last_seen_at": "2019-08-24T14:15:22Z",
  • "owner_id": "8826ee2e-7933-4665-aef2-2393f84a0d05",
  • "reviewed": false,
  • "metric_breakdown_columns": [ ],
  • "drift_count": 0,
  • "tags": [ ],
  • "field_values": [ ],
  • "meta_values": [ ],
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "warnings": [
    ]
}

List Tags

path Parameters
slug
required
string (Slug)
query Parameters
Branch (string) or Branch (null) (Branch)

Plan branch id (UUID) to read and write instead of the main branch.

Responses

Response samples

Content type
application/json
[
  • "string"
]

Bulk Create Events

path Parameters
slug
required
string (Slug)
query Parameters
Branch (string) or Branch (null) (Branch)

Plan branch id (UUID) to read and write instead of the main branch.

Request Body schema: application/json
required
Array
event_type_id
required
string <uuid> (Event Type Id)
name
required
string (Name) [ 1 .. 500 ] characters
description
string (Description)
Default: ""
status
string (EventStatus)
Default: "draft"
Enum: "draft" "in_review" "ready_for_dev" "implemented" "live" "deprecated" "archived"
Sunset At (string) or Sunset At (null) (Sunset At)
Owner Id (string) or Owner Id (null) (Owner Id)
reviewed
boolean (Reviewed)
Default: false
metric_breakdown_columns
Array of strings (Metric Breakdown Columns)
Default: []
tags
Array of strings (Tags)
Default: []
Array of objects (Field Values)
Default: []
Array of objects (Meta Values)
Default: []

Responses

Request samples

Content type
application/json
[
  • {
    }
]

Response samples

Content type
application/json
[
  • {
    }
]

Bulk Delete Events

path Parameters
slug
required
string (Slug)
query Parameters
Branch (string) or Branch (null) (Branch)

Plan branch id (UUID) to read and write instead of the main branch.

Request Body schema: application/json
required
event_ids
required
Array of strings <uuid> (Event Ids) non-empty [ items <uuid > ]

Responses

Request samples

Content type
application/json
{
  • "event_ids": [
    ]
}

Response samples

Content type
application/json
{
  • "detail": [
    ]
}

Bulk Update Events

path Parameters
slug
required
string (Slug)
query Parameters
Branch (string) or Branch (null) (Branch)

Plan branch id (UUID) to read and write instead of the main branch.

Request Body schema: application/json
required
event_ids
required
Array of strings <uuid> (Event Ids) non-empty [ items <uuid > ]
EventStatus (string) or null
Sunset At (string) or Sunset At (null) (Sunset At)
Owner Id (string) or Owner Id (null) (Owner Id)
Reviewed (boolean) or Reviewed (null) (Reviewed)

Responses

Request samples

Content type
application/json
{
  • "event_ids": [
    ],
  • "status": "draft",
  • "sunset_at": "2019-08-24T14:15:22Z",
  • "owner_id": "8826ee2e-7933-4665-aef2-2393f84a0d05",
  • "reviewed": true
}

Response samples

Content type
application/json
{
  • "detail": [
    ]
}

Reorder Events

path Parameters
slug
required
string (Slug)
query Parameters
Branch (string) or Branch (null) (Branch)

Plan branch id (UUID) to read and write instead of the main branch.

Request Body schema: application/json
required
event_ids
required
Array of strings <uuid> (Event Ids) non-empty [ items <uuid > ]

Responses

Request samples

Content type
application/json
{
  • "event_ids": [
    ]
}

Response samples

Content type
application/json
[
  • {
    }
]

Get Event

path Parameters
slug
required
string (Slug)
event_id
required
string <uuid> (Event Id)
query Parameters
Branch (string) or Branch (null) (Branch)

Plan branch id (UUID) to read and write instead of the main branch.

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
  • "event_type_id": "a4ec4c3c-a3de-4a8a-983f-1791e72cea83",
  • "event_type": {
    },
  • "name": "string",
  • "description": "string",
  • "order": 0,
  • "status": "draft",
  • "sunset_at": "2019-08-24T14:15:22Z",
  • "last_seen_at": "2019-08-24T14:15:22Z",
  • "owner_id": "8826ee2e-7933-4665-aef2-2393f84a0d05",
  • "reviewed": false,
  • "metric_breakdown_columns": [ ],
  • "drift_count": 0,
  • "tags": [ ],
  • "field_values": [ ],
  • "meta_values": [ ],
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Update Event

path Parameters
slug
required
string (Slug)
event_id
required
string <uuid> (Event Id)
query Parameters
Branch (string) or Branch (null) (Branch)

Plan branch id (UUID) to read and write instead of the main branch.

Request Body schema: application/json
required
Name (string) or Name (null) (Name)
Description (string) or Description (null) (Description)
EventStatus (string) or null
Sunset At (string) or Sunset At (null) (Sunset At)
Owner Id (string) or Owner Id (null) (Owner Id)
Reviewed (boolean) or Reviewed (null) (Reviewed)
Array of Metric Breakdown Columns (strings) or Metric Breakdown Columns (null) (Metric Breakdown Columns)
Array of Tags (strings) or Tags (null) (Tags)
Array of Field Values (objects) or Field Values (null) (Field Values)
Array of Meta Values (objects) or Meta Values (null) (Meta Values)

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "description": "string",
  • "status": "draft",
  • "sunset_at": "2019-08-24T14:15:22Z",
  • "owner_id": "8826ee2e-7933-4665-aef2-2393f84a0d05",
  • "reviewed": true,
  • "metric_breakdown_columns": [
    ],
  • "tags": [
    ],
  • "field_values": [
    ],
  • "meta_values": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
  • "event_type_id": "a4ec4c3c-a3de-4a8a-983f-1791e72cea83",
  • "event_type": {
    },
  • "name": "string",
  • "description": "string",
  • "order": 0,
  • "status": "draft",
  • "sunset_at": "2019-08-24T14:15:22Z",
  • "last_seen_at": "2019-08-24T14:15:22Z",
  • "owner_id": "8826ee2e-7933-4665-aef2-2393f84a0d05",
  • "reviewed": false,
  • "metric_breakdown_columns": [ ],
  • "drift_count": 0,
  • "tags": [ ],
  • "field_values": [ ],
  • "meta_values": [ ],
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "warnings": [
    ]
}

Delete Event

path Parameters
slug
required
string (Slug)
event_id
required
string <uuid> (Event Id)
query Parameters
Branch (string) or Branch (null) (Branch)

Plan branch id (UUID) to read and write instead of the main branch.

Responses

Response samples

Content type
application/json
{
  • "detail": [
    ]
}

Get Event History

path Parameters
slug
required
string (Slug)
event_id
required
string <uuid> (Event Id)
query Parameters
Branch (string) or Branch (null) (Branch)

Plan branch id (UUID) to read and write instead of the main branch.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Move Event

path Parameters
slug
required
string (Slug)
event_id
required
string <uuid> (Event Id)
query Parameters
Branch (string) or Branch (null) (Branch)

Plan branch id (UUID) to read and write instead of the main branch.

Request Body schema: application/json
required
direction
required
string (Direction)
Enum: "up" "down"
Array of Visible Event Ids (strings) or Visible Event Ids (null) (Visible Event Ids)

Responses

Request samples

Content type
application/json
{
  • "direction": "up",
  • "visible_event_ids": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
  • "event_type_id": "a4ec4c3c-a3de-4a8a-983f-1791e72cea83",
  • "event_type": {
    },
  • "name": "string",
  • "description": "string",
  • "order": 0,
  • "status": "draft",
  • "sunset_at": "2019-08-24T14:15:22Z",
  • "last_seen_at": "2019-08-24T14:15:22Z",
  • "owner_id": "8826ee2e-7933-4665-aef2-2393f84a0d05",
  • "reviewed": false,
  • "metric_breakdown_columns": [ ],
  • "drift_count": 0,
  • "tags": [ ],
  • "field_values": [ ],
  • "meta_values": [ ],
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

event-types

Event type definitions and metadata.

List Event Types

path Parameters
slug
required
string (Slug)
query Parameters
Branch (string) or Branch (null) (Branch)

Plan branch id (UUID) to read and write instead of the main branch.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create Event Type

path Parameters
slug
required
string (Slug)
query Parameters
Branch (string) or Branch (null) (Branch)

Plan branch id (UUID) to read and write instead of the main branch.

Request Body schema: application/json
required
name
required
string (Name) [ 1 .. 100 ] characters
display_name
required
string (Display Name) [ 1 .. 255 ] characters
description
string (Description)
Default: ""
color
string (Color) ^#[0-9a-fA-F]{6}$
Default: "#6366f1"
order
integer (Order)
Default: 0
Array of objects (Field Definitions)

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "display_name": "string",
  • "description": "",
  • "color": "#6366f1",
  • "order": 0,
  • "field_definitions": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
  • "name": "string",
  • "display_name": "string",
  • "description": "string",
  • "color": "string",
  • "order": 0,
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "field_definitions": [ ]
}

Get Event Type

path Parameters
slug
required
string (Slug)
event_type_id
required
string <uuid> (Event Type Id)
query Parameters
Branch (string) or Branch (null) (Branch)

Plan branch id (UUID) to read and write instead of the main branch.

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
  • "name": "string",
  • "display_name": "string",
  • "description": "string",
  • "color": "string",
  • "order": 0,
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "field_definitions": [ ]
}

Update Event Type

path Parameters
slug
required
string (Slug)
event_type_id
required
string <uuid> (Event Type Id)
query Parameters
Branch (string) or Branch (null) (Branch)

Plan branch id (UUID) to read and write instead of the main branch.

Request Body schema: application/json
required
Display Name (string) or Display Name (null) (Display Name)
Description (string) or Description (null) (Description)
Color (string) or Color (null) (Color)
Order (integer) or Order (null) (Order)

Responses

Request samples

Content type
application/json
{
  • "display_name": "string",
  • "description": "string",
  • "color": "string",
  • "order": 0
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
  • "name": "string",
  • "display_name": "string",
  • "description": "string",
  • "color": "string",
  • "order": 0,
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "field_definitions": [ ]
}

Delete Event Type

path Parameters
slug
required
string (Slug)
event_type_id
required
string <uuid> (Event Type Id)
query Parameters
Branch (string) or Branch (null) (Branch)

Plan branch id (UUID) to read and write instead of the main branch.

Responses

Response samples

Content type
application/json
{
  • "detail": [
    ]
}

List Event Type Drifts

path Parameters
slug
required
string (Slug)
event_type_id
required
string <uuid> (Event Type Id)

Responses

Response samples

Content type
application/json
{
  • "items": [
    ],
  • "total": 0
}

Apply Schema Drift Action

path Parameters
slug
required
string (Slug)
drift_id
required
string <uuid> (Drift Id)
Request Body schema: application/json
required
action
required
string (Action)
Enum: "accept" "snooze" "false_positive" "reopen"
Note (string) or Note (null) (Note)
Snoozed Until (string) or Snoozed Until (null) (Snoozed Until)
force
boolean (Force)
Default: false

Override the guard that refuses to accept a missing_field drift for a column a scan config's event name format builds event names from (tripl-3mmh). API-only escape hatch for a project-wide config that names the column but never scans this event type; requires a note explaining why, which lands in the audit record. The UI does not offer it — a warning next to an Accept button is a thing operators click past, and clicking past it is what caused the outage.

Responses

Request samples

Content type
application/json
{
  • "action": "accept",
  • "note": "string",
  • "snoozed_until": "2019-08-24T14:15:22Z",
  • "force": false
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "event_type_id": "a4ec4c3c-a3de-4a8a-983f-1791e72cea83",
  • "scan_config_id": "73831784-3bab-4614-8856-92f95dec4914",
  • "field_name": "string",
  • "drift_type": "new_field",
  • "observed_type": "string",
  • "declared_type": "string",
  • "sample_value": "string",
  • "status": "open",
  • "resolution_note": "string",
  • "snoozed_until": "2019-08-24T14:15:22Z",
  • "resolved_at": "2019-08-24T14:15:22Z",
  • "resolved_by": "d0d57369-b08b-4db8-8952-8cdeedd9aebc",
  • "detected_at": "2019-08-24T14:15:22Z"
}

event-type-owners

Ownership assignments for event types.

List Owners

path Parameters
slug
required
string (Slug)
event_type_id
required
string <uuid> (Event Type Id)

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Add Owner

path Parameters
slug
required
string (Slug)
event_type_id
required
string <uuid> (Event Type Id)
Request Body schema: application/json
required
user_id
required
string <uuid> (User Id)

Responses

Request samples

Content type
application/json
{
  • "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5"
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "event_type_id": "a4ec4c3c-a3de-4a8a-983f-1791e72cea83",
  • "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5",
  • "user_email": "string",
  • "user_name": "string",
  • "granted_by": "a8e4a498-f971-4203-a849-4967743579d4",
  • "created_at": "2019-08-24T14:15:22Z"
}

Remove Owner

path Parameters
slug
required
string (Slug)
event_type_id
required
string <uuid> (Event Type Id)
owner_id
required
string <uuid> (Owner Id)

Responses

Response samples

Content type
application/json
{
  • "detail": [
    ]
}

fields

Field definitions attached to event types.

List Fields

path Parameters
slug
required
string (Slug)
event_type_id
required
string <uuid> (Event Type Id)
query Parameters
Branch (string) or Branch (null) (Branch)

Plan branch id (UUID) to read and write instead of the main branch.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create Field

path Parameters
slug
required
string (Slug)
event_type_id
required
string <uuid> (Event Type Id)
query Parameters
Branch (string) or Branch (null) (Branch)

Plan branch id (UUID) to read and write instead of the main branch.

Request Body schema: application/json
required
name
required
string (Name) [ 1 .. 100 ] characters
display_name
required
string (Display Name) [ 1 .. 255 ] characters
field_type
required
string (FieldDefinitionType)
Enum: "string" "number" "boolean" "json" "enum" "url"
is_required
boolean (Is Required)
Default: false
Array of Enum Options (strings) or Enum Options (null) (Enum Options)
description
string (Description)
Default: ""
order
integer (Order)
Default: 0
sensitivity
string (Sensitivity)
Default: "none"
Enum: "none" "pii" "phi" "financial" "secret"
Contract Required Max Null Rate (number) or Contract Required Max Null Rate (null) (Contract Required Max Null Rate)
Contract Regex (string) or Contract Regex (null) (Contract Regex)
Contract Min Value (number) or Contract Min Value (null) (Contract Min Value)
Contract Max Value (number) or Contract Max Value (null) (Contract Max Value)
contract_max_bad_rate
number (Contract Max Bad Rate) [ 0 .. 1 ]
Default: 0

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "display_name": "string",
  • "field_type": "string",
  • "is_required": false,
  • "enum_options": [
    ],
  • "description": "",
  • "order": 0,
  • "sensitivity": "none",
  • "contract_required_max_null_rate": 1,
  • "contract_regex": "string",
  • "contract_min_value": 0,
  • "contract_max_value": 0,
  • "contract_max_bad_rate": 0
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "event_type_id": "a4ec4c3c-a3de-4a8a-983f-1791e72cea83",
  • "name": "string",
  • "display_name": "string",
  • "field_type": "string",
  • "is_required": true,
  • "enum_options": [
    ],
  • "description": "string",
  • "order": 0,
  • "sensitivity": "none",
  • "contract_required_max_null_rate": 0,
  • "contract_regex": "string",
  • "contract_min_value": 0,
  • "contract_max_value": 0,
  • "contract_max_bad_rate": 0
}

Bulk Create Fields

path Parameters
slug
required
string (Slug)
event_type_id
required
string <uuid> (Event Type Id)
query Parameters
Branch (string) or Branch (null) (Branch)

Plan branch id (UUID) to read and write instead of the main branch.

Request Body schema: application/json
required
required
Array of objects (Fields) non-empty
Array (non-empty)
name
required
string (Name) [ 1 .. 100 ] characters
display_name
required
string (Display Name) [ 1 .. 255 ] characters
field_type
required
string (FieldDefinitionType)
Enum: "string" "number" "boolean" "json" "enum" "url"
is_required
boolean (Is Required)
Default: false
Array of Enum Options (strings) or Enum Options (null) (Enum Options)
description
string (Description)
Default: ""
order
integer (Order)
Default: 0
sensitivity
string (Sensitivity)
Default: "none"
Enum: "none" "pii" "phi" "financial" "secret"
Contract Required Max Null Rate (number) or Contract Required Max Null Rate (null) (Contract Required Max Null Rate)
Contract Regex (string) or Contract Regex (null) (Contract Regex)
Contract Min Value (number) or Contract Min Value (null) (Contract Min Value)
Contract Max Value (number) or Contract Max Value (null) (Contract Max Value)
contract_max_bad_rate
number (Contract Max Bad Rate) [ 0 .. 1 ]
Default: 0

Responses

Request samples

Content type
application/json
{
  • "fields": [
    ]
}

Response samples

Content type
application/json
[
  • {
    }
]

Reorder Fields

path Parameters
slug
required
string (Slug)
event_type_id
required
string <uuid> (Event Type Id)
query Parameters
Branch (string) or Branch (null) (Branch)

Plan branch id (UUID) to read and write instead of the main branch.

Request Body schema: application/json
required
field_ids
required
Array of strings <uuid> (Field Ids) [ items <uuid > ]

Responses

Request samples

Content type
application/json
{
  • "field_ids": [
    ]
}

Response samples

Content type
application/json
[
  • {
    }
]

Update Field

path Parameters
slug
required
string (Slug)
event_type_id
required
string <uuid> (Event Type Id)
field_id
required
string <uuid> (Field Id)
query Parameters
Branch (string) or Branch (null) (Branch)

Plan branch id (UUID) to read and write instead of the main branch.

Request Body schema: application/json
required
Display Name (string) or Display Name (null) (Display Name)
FieldDefinitionType (string) or null
Is Required (boolean) or Is Required (null) (Is Required)
Array of Enum Options (strings) or Enum Options (null) (Enum Options)
Description (string) or Description (null) (Description)
Order (integer) or Order (null) (Order)
Sensitivity (string) or null
Contract Required Max Null Rate (number) or Contract Required Max Null Rate (null) (Contract Required Max Null Rate)
Contract Regex (string) or Contract Regex (null) (Contract Regex)
Contract Min Value (number) or Contract Min Value (null) (Contract Min Value)
Contract Max Value (number) or Contract Max Value (null) (Contract Max Value)
Contract Max Bad Rate (number) or Contract Max Bad Rate (null) (Contract Max Bad Rate)

Responses

Request samples

Content type
application/json
{
  • "display_name": "string",
  • "field_type": "string",
  • "is_required": true,
  • "enum_options": [
    ],
  • "description": "string",
  • "order": 0,
  • "sensitivity": "none",
  • "contract_required_max_null_rate": 1,
  • "contract_regex": "string",
  • "contract_min_value": 0,
  • "contract_max_value": 0,
  • "contract_max_bad_rate": 1
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "event_type_id": "a4ec4c3c-a3de-4a8a-983f-1791e72cea83",
  • "name": "string",
  • "display_name": "string",
  • "field_type": "string",
  • "is_required": true,
  • "enum_options": [
    ],
  • "description": "string",
  • "order": 0,
  • "sensitivity": "none",
  • "contract_required_max_null_rate": 0,
  • "contract_regex": "string",
  • "contract_min_value": 0,
  • "contract_max_value": 0,
  • "contract_max_bad_rate": 0
}

Delete Field

path Parameters
slug
required
string (Slug)
event_type_id
required
string <uuid> (Event Type Id)
field_id
required
string <uuid> (Field Id)
query Parameters
Branch (string) or Branch (null) (Branch)

Plan branch id (UUID) to read and write instead of the main branch.

Responses

Response samples

Content type
application/json
{
  • "detail": [
    ]
}

meta-fields

Project-wide meta/context fields.

List Meta Fields

path Parameters
slug
required
string (Slug)
query Parameters
Branch (string) or Branch (null) (Branch)

Plan branch id (UUID) to read and write instead of the main branch.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create Meta Field

path Parameters
slug
required
string (Slug)
query Parameters
Branch (string) or Branch (null) (Branch)

Plan branch id (UUID) to read and write instead of the main branch.

Request Body schema: application/json
required
name
required
string (Name) [ 1 .. 100 ] characters
display_name
required
string (Display Name) [ 1 .. 255 ] characters
field_type
required
string (MetaFieldType)
Enum: "string" "url" "boolean" "enum" "date"
is_required
boolean (Is Required)
Default: false
Array of Enum Options (strings) or Enum Options (null) (Enum Options)
Default Value (string) or Default Value (null) (Default Value)
Link Template (string) or Link Template (null) (Link Template)
order
integer (Order)
Default: 0
sensitivity
string (Sensitivity)
Default: "none"
Enum: "none" "pii" "phi" "financial" "secret"

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "display_name": "string",
  • "field_type": "string",
  • "is_required": false,
  • "enum_options": [
    ],
  • "default_value": "string",
  • "link_template": "string",
  • "order": 0,
  • "sensitivity": "none"
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
  • "name": "string",
  • "display_name": "string",
  • "field_type": "string",
  • "is_required": true,
  • "enum_options": [
    ],
  • "default_value": "string",
  • "link_template": "string",
  • "order": 0,
  • "sensitivity": "none"
}

Update Meta Field

path Parameters
slug
required
string (Slug)
meta_field_id
required
string <uuid> (Meta Field Id)
query Parameters
Branch (string) or Branch (null) (Branch)

Plan branch id (UUID) to read and write instead of the main branch.

Request Body schema: application/json
required
Display Name (string) or Display Name (null) (Display Name)
MetaFieldType (string) or null
Is Required (boolean) or Is Required (null) (Is Required)
Array of Enum Options (strings) or Enum Options (null) (Enum Options)
Default Value (string) or Default Value (null) (Default Value)
Link Template (string) or Link Template (null) (Link Template)
Order (integer) or Order (null) (Order)
Sensitivity (string) or null

Responses

Request samples

Content type
application/json
{
  • "display_name": "string",
  • "field_type": "string",
  • "is_required": true,
  • "enum_options": [
    ],
  • "default_value": "string",
  • "link_template": "string",
  • "order": 0,
  • "sensitivity": "none"
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
  • "name": "string",
  • "display_name": "string",
  • "field_type": "string",
  • "is_required": true,
  • "enum_options": [
    ],
  • "default_value": "string",
  • "link_template": "string",
  • "order": 0,
  • "sensitivity": "none"
}

Delete Meta Field

path Parameters
slug
required
string (Slug)
meta_field_id
required
string <uuid> (Meta Field Id)
query Parameters
Branch (string) or Branch (null) (Branch)

Plan branch id (UUID) to read and write instead of the main branch.

Responses

Response samples

Content type
application/json
{
  • "detail": [
    ]
}

variables

Reusable variables referenced by the plan.

Bulk Update Variables

path Parameters
slug
required
string (Slug)
query Parameters
Branch (string) or Branch (null) (Branch)

Plan branch id (UUID) to read and write instead of the main branch.

Request Body schema: application/json
required
variable_ids
required
Array of strings <uuid> (Variable Ids) non-empty [ items <uuid > ]
VariableType (string) or null
Description (string) or Description (null) (Description)
Array of Allowed Values Add (strings) or Allowed Values Add (null) (Allowed Values Add)
Array of Allowed Values Remove (strings) or Allowed Values Remove (null) (Allowed Values Remove)

Responses

Request samples

Content type
application/json
{
  • "variable_ids": [
    ],
  • "variable_type": "string",
  • "description": "string",
  • "allowed_values_add": [
    ],
  • "allowed_values_remove": [
    ]
}

Response samples

Content type
application/json
{
  • "detail": [
    ]
}

Bulk Delete Variables

path Parameters
slug
required
string (Slug)
query Parameters
Branch (string) or Branch (null) (Branch)

Plan branch id (UUID) to read and write instead of the main branch.

Request Body schema: application/json
required
variable_ids
required
Array of strings <uuid> (Variable Ids) non-empty [ items <uuid > ]

Responses

Request samples

Content type
application/json
{
  • "variable_ids": [
    ]
}

Response samples

Content type
application/json
{
  • "detail": [
    ]
}

List Value Drifts

path Parameters
slug
required
string (Slug)
query Parameters
Variable Id (string) or Variable Id (null) (Variable Id)
Event Id (string) or Event Id (null) (Event Id)

Responses

Response samples

Content type
application/json
{
  • "items": [
    ],
  • "total": 0
}

Apply Value Drift Action

path Parameters
slug
required
string (Slug)
drift_id
required
string <uuid> (Drift Id)
Request Body schema: application/json
required
action
required
string (Action)
Enum: "accept" "snooze" "false_positive" "reopen"
scope
string (Scope)
Default: "global"
Enum: "global" "event"
Note (string) or Note (null) (Note)
Snoozed Until (string) or Snoozed Until (null) (Snoozed Until)

Responses

Request samples

Content type
application/json
{
  • "action": "accept",
  • "scope": "global",
  • "note": "string",
  • "snoozed_until": "2019-08-24T14:15:22Z"
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "variable_id": "8339bd98-4109-4958-960a-f55d5e3ec302",
  • "variable_name": "string",
  • "event_id": "a7a26ff2-e851-45b6-9634-d595f45458b7",
  • "event_name": "string",
  • "scan_config_id": "73831784-3bab-4614-8856-92f95dec4914",
  • "observed_values": [ ],
  • "status": "open",
  • "resolution_note": "string",
  • "snoozed_until": "2019-08-24T14:15:22Z",
  • "resolved_at": "2019-08-24T14:15:22Z",
  • "resolved_by": "d0d57369-b08b-4db8-8952-8cdeedd9aebc",
  • "detected_at": "2019-08-24T14:15:22Z"
}

List Variables

path Parameters
slug
required
string (Slug)
query Parameters
offset
integer (Offset) >= 0
Default: 0
limit
integer (Limit) [ 1 .. 5000 ]
Default: 200
usage
string (Usage)
Default: "all"
Enum: "all" "used" "unused"

Narrow to the variables nothing refers to ('unused' — exactly the set the retirement sweep would take) or to their complement ('used'). Declared as an enum rather than a free string so an unknown value is a 422 and not a 500 (tripl-57g0).

Branch (string) or Branch (null) (Branch)

Plan branch id (UUID) to read and write instead of the main branch.

Responses

Response samples

Content type
application/json
{
  • "items": [
    ],
  • "total": 0
}

Create Variable

path Parameters
slug
required
string (Slug)
query Parameters
Branch (string) or Branch (null) (Branch)

Plan branch id (UUID) to read and write instead of the main branch.

Request Body schema: application/json
required
name
required
string (Name) [ 1 .. 100 ] characters ^[a-z][a-z0-9_]*$
variable_type
string (VariableType)
Default: "string"
Enum: "string" "number" "boolean" "date" "datetime" "json" "string_array" "number_array"
description
string (Description)
Default: ""
allowed_values
Array of strings (Allowed Values) <= 500 items
bindings
Array of strings (Bindings) <= 100 items

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "variable_type": "string",
  • "description": "",
  • "allowed_values": [
    ],
  • "bindings": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
  • "name": "string",
  • "source_name": "string",
  • "variable_type": "string",
  • "description": "string",
  • "allowed_values": [ ],
  • "bindings": [ ],
  • "excluded_from_scans": false,
  • "event_count": 0,
  • "context_count": 0,
  • "low_context_count": 0,
  • "high_context_count": 0,
  • "sample_values": [ ],
  • "open_drift_count": 0,
  • "event_names": [ ]
}

List Variable Values

path Parameters
slug
required
string (Slug)
variable_id
required
string <uuid> (Variable Id)
query Parameters
Branch (string) or Branch (null) (Branch)

Plan branch id (UUID) to read and write instead of the main branch.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

List Event Overrides

path Parameters
slug
required
string (Slug)
variable_id
required
string <uuid> (Variable Id)
query Parameters
Branch (string) or Branch (null) (Branch)

Plan branch id (UUID) to read and write instead of the main branch.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Upsert Event Override

path Parameters
slug
required
string (Slug)
variable_id
required
string <uuid> (Variable Id)
event_id
required
string <uuid> (Event Id)
query Parameters
Branch (string) or Branch (null) (Branch)

Plan branch id (UUID) to read and write instead of the main branch.

Request Body schema: application/json
required
values
required
Array of strings (Values) <= 500 items

Responses

Request samples

Content type
application/json
{
  • "values": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "variable_id": "8339bd98-4109-4958-960a-f55d5e3ec302",
  • "event_id": "a7a26ff2-e851-45b6-9634-d595f45458b7",
  • "event_name": "string",
  • "values": [ ]
}

Delete Event Override

path Parameters
slug
required
string (Slug)
variable_id
required
string <uuid> (Variable Id)
event_id
required
string <uuid> (Event Id)
query Parameters
Branch (string) or Branch (null) (Branch)

Plan branch id (UUID) to read and write instead of the main branch.

Responses

Response samples

Content type
application/json
{
  • "detail": [
    ]
}

Update Variable

path Parameters
slug
required
string (Slug)
variable_id
required
string <uuid> (Variable Id)
query Parameters
Branch (string) or Branch (null) (Branch)

Plan branch id (UUID) to read and write instead of the main branch.

Request Body schema: application/json
required
Name (string) or Name (null) (Name)
VariableType (string) or null
Description (string) or Description (null) (Description)
Array of Allowed Values (strings) or Allowed Values (null) (Allowed Values)
Array of Bindings (strings) or Bindings (null) (Bindings)
Excluded From Scans (boolean) or Excluded From Scans (null) (Excluded From Scans)

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "variable_type": "string",
  • "description": "string",
  • "allowed_values": [
    ],
  • "bindings": [
    ],
  • "excluded_from_scans": true
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
  • "name": "string",
  • "source_name": "string",
  • "variable_type": "string",
  • "description": "string",
  • "allowed_values": [ ],
  • "bindings": [ ],
  • "excluded_from_scans": false,
  • "event_count": 0,
  • "context_count": 0,
  • "low_context_count": 0,
  • "high_context_count": 0,
  • "sample_values": [ ],
  • "open_drift_count": 0,
  • "event_names": [ ]
}

Delete Variable

path Parameters
slug
required
string (Slug)
variable_id
required
string <uuid> (Variable Id)
query Parameters
Branch (string) or Branch (null) (Branch)

Plan branch id (UUID) to read and write instead of the main branch.

Responses

Response samples

Content type
application/json
{
  • "detail": [
    ]
}

relations

Relationships between plan entities.

List Relations

path Parameters
slug
required
string (Slug)
query Parameters
Branch (string) or Branch (null) (Branch)

Plan branch id (UUID) to read and write instead of the main branch.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create Relation

path Parameters
slug
required
string (Slug)
query Parameters
Branch (string) or Branch (null) (Branch)

Plan branch id (UUID) to read and write instead of the main branch.

Request Body schema: application/json
required
source_event_type_id
required
string <uuid> (Source Event Type Id)
target_event_type_id
required
string <uuid> (Target Event Type Id)
source_field_id
required
string <uuid> (Source Field Id)
target_field_id
required
string <uuid> (Target Field Id)
relation_type
string (Relation Type)
Default: "belongs_to"
description
string (Description)
Default: ""

Responses

Request samples

Content type
application/json
{
  • "source_event_type_id": "e101ab89-ea5f-45aa-b5b7-983418675185",
  • "target_event_type_id": "825466c9-7393-4184-b9b0-7c4b77ed3fa0",
  • "source_field_id": "7b9c5fa5-6c9c-40e1-9dc3-cb2d44ecb47a",
  • "target_field_id": "64e4f54c-73d3-4f44-9b1b-25ec59b9d085",
  • "relation_type": "belongs_to",
  • "description": ""
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
  • "source_event_type_id": "e101ab89-ea5f-45aa-b5b7-983418675185",
  • "target_event_type_id": "825466c9-7393-4184-b9b0-7c4b77ed3fa0",
  • "source_field_id": "7b9c5fa5-6c9c-40e1-9dc3-cb2d44ecb47a",
  • "target_field_id": "64e4f54c-73d3-4f44-9b1b-25ec59b9d085",
  • "relation_type": "string",
  • "description": "string"
}

Delete Relation

path Parameters
slug
required
string (Slug)
relation_id
required
string <uuid> (Relation Id)
query Parameters
Branch (string) or Branch (null) (Branch)

Plan branch id (UUID) to read and write instead of the main branch.

Responses

Response samples

Content type
application/json
{
  • "detail": [
    ]
}

scans

Scan configs and warehouse scan/preview jobs.

List Scan Configs

path Parameters
slug
required
string (Slug)

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create Scan Config

path Parameters
slug
required
string (Slug)
Request Body schema: application/json
required
data_source_id
required
string <uuid> (Data Source Id)
Event Type Id (string) or Event Type Id (null) (Event Type Id)
name
required
string (Name) [ 1 .. 255 ] characters
base_query
required
string (Base Query) non-empty
Event Type Column (string) or Event Type Column (null) (Event Type Column)
Time Column (string) or Time Column (null) (Time Column)
Event Name Format (string) or Event Name Format (null) (Event Name Format)
json_value_paths
Array of strings (Json Value Paths)
Array of objects (Event Group Rules)
metric_breakdown_columns
Array of strings (Metric Breakdown Columns)
Metric Breakdown Values Limit (integer) or Metric Breakdown Values Limit (null) (Metric Breakdown Values Limit)
distribution_drift_fields
Array of strings (Distribution Drift Fields)
cardinality_threshold
integer (Cardinality Threshold) >= 1
Default: 100
ScanInterval (string) or null
ScanInterval (string) or null
Scan Lookback Hours (integer) or Scan Lookback Hours (null) (Scan Lookback Hours)
Scan Row Limit (integer) or Scan Row Limit (null) (Scan Row Limit)
Metrics Row Limit (integer) or Metrics Row Limit (null) (Metrics Row Limit)
App Version Column (string) or App Version Column (null) (App Version Column)
App Version Keep Releases (integer) or App Version Keep Releases (null) (App Version Keep Releases)
Deprecated

Deprecated compatibility mirror of Project.app_version_keep_releases; caller values are ignored.

App Version Prerelease Pattern (string) or App Version Prerelease Pattern (null) (App Version Prerelease Pattern)
App Version Active Share Min (number) or App Version Active Share Min (null) (App Version Active Share Min)
Platform Column (string) or Platform Column (null) (Platform Column)

Responses

Request samples

Content type
application/json
{
  • "data_source_id": "0e1e9a56-7994-41e2-9003-96f8ebac19a2",
  • "event_type_id": "a4ec4c3c-a3de-4a8a-983f-1791e72cea83",
  • "name": "string",
  • "base_query": "string",
  • "event_type_column": "string",
  • "time_column": "string",
  • "event_name_format": "string",
  • "json_value_paths": [
    ],
  • "event_group_rules": [
    ],
  • "metric_breakdown_columns": [
    ],
  • "metric_breakdown_values_limit": 1,
  • "distribution_drift_fields": [
    ],
  • "cardinality_threshold": 100,
  • "interval": "15m",
  • "replay_chunk_interval": "15m",
  • "scan_lookback_hours": 1,
  • "scan_row_limit": 1,
  • "metrics_row_limit": 1,
  • "app_version_column": "string",
  • "app_version_keep_releases": 1,
  • "app_version_prerelease_pattern": "string",
  • "app_version_active_share_min": 0,
  • "platform_column": "string"
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "data_source_id": "0e1e9a56-7994-41e2-9003-96f8ebac19a2",
  • "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
  • "event_type_id": "a4ec4c3c-a3de-4a8a-983f-1791e72cea83",
  • "name": "string",
  • "base_query": "string",
  • "event_type_column": "string",
  • "time_column": "string",
  • "event_name_format": "string",
  • "json_value_paths": [
    ],
  • "event_group_rules": [
    ],
  • "metric_breakdown_columns": [
    ],
  • "metric_breakdown_values_limit": 0,
  • "distribution_drift_fields": [
    ],
  • "cardinality_threshold": 0,
  • "interval": "15m",
  • "replay_chunk_interval": "15m",
  • "scan_lookback_hours": 0,
  • "scan_row_limit": 0,
  • "metrics_row_limit": 0,
  • "app_version_column": "string",
  • "app_version_keep_releases": 0,
  • "app_version_prerelease_pattern": "string",
  • "app_version_active_share_min": 0,
  • "platform_column": "string",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Preview Scan Config

Enqueue a preview job; poll GET /preview-jobs/{job_id} for the result.

path Parameters
slug
required
string (Slug)
Request Body schema: application/json
required
data_source_id
required
string <uuid> (Data Source Id)
base_query
required
string (Base Query) non-empty
limit
integer (Limit) [ 1 .. 50 ]
Default: 10
json_value_paths
Array of strings (Json Value Paths)
Time Column (string) or Time Column (null) (Time Column)
Scan Lookback Hours (integer) or Scan Lookback Hours (null) (Scan Lookback Hours)
include_json_paths
boolean (Include Json Paths)
Default: false

Responses

Request samples

Content type
application/json
{
  • "data_source_id": "0e1e9a56-7994-41e2-9003-96f8ebac19a2",
  • "base_query": "string",
  • "limit": 10,
  • "json_value_paths": [
    ],
  • "time_column": "string",
  • "scan_lookback_hours": 1,
  • "include_json_paths": false
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "status": "pending",
  • "started_at": "2019-08-24T14:15:22Z",
  • "completed_at": "2019-08-24T14:15:22Z",
  • "result_summary": { },
  • "error_message": "string",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Get Scan Preview Job

path Parameters
slug
required
string (Slug)
job_id
required
string <uuid> (Job Id)

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "status": "pending",
  • "started_at": "2019-08-24T14:15:22Z",
  • "completed_at": "2019-08-24T14:15:22Z",
  • "result_summary": { },
  • "error_message": "string",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Dry Run Scan Config

Enqueue a dry-run; poll GET /dry-run-jobs/{job_id} for the result.

Owner-only for the same reason preview is: the SQL is free text from a draft, executed verbatim against a stored warehouse credential.

path Parameters
slug
required
string (Slug)
Request Body schema: application/json
required
Scan Config Id (string) or Scan Config Id (null) (Scan Config Id)
Data Source Id (string) or Data Source Id (null) (Data Source Id)
Base Query (string) or Base Query (null) (Base Query)
Event Type Id (string) or Event Type Id (null) (Event Type Id)
Event Type Column (string) or Event Type Column (null) (Event Type Column)
Time Column (string) or Time Column (null) (Time Column)
Event Name Format (string) or Event Name Format (null) (Event Name Format)
Array of objects (Event Group Rules)
json_value_paths
Array of strings (Json Value Paths)
cardinality_threshold
integer (Cardinality Threshold) >= 1
Default: 100
App Version Column (string) or App Version Column (null) (App Version Column)
Platform Column (string) or Platform Column (null) (Platform Column)
Scan Lookback Hours (integer) or Scan Lookback Hours (null) (Scan Lookback Hours)
sample_row_limit
integer (Sample Row Limit) [ 100 .. 20000 ]
Default: 5000

Responses

Request samples

Content type
application/json
{
  • "scan_config_id": "73831784-3bab-4614-8856-92f95dec4914",
  • "data_source_id": "0e1e9a56-7994-41e2-9003-96f8ebac19a2",
  • "base_query": "string",
  • "event_type_id": "a4ec4c3c-a3de-4a8a-983f-1791e72cea83",
  • "event_type_column": "string",
  • "time_column": "string",
  • "event_name_format": "string",
  • "event_group_rules": [
    ],
  • "json_value_paths": [
    ],
  • "cardinality_threshold": 100,
  • "app_version_column": "string",
  • "platform_column": "string",
  • "scan_lookback_hours": 1,
  • "sample_row_limit": 5000
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "status": "pending",
  • "started_at": "2019-08-24T14:15:22Z",
  • "completed_at": "2019-08-24T14:15:22Z",
  • "result_summary": {
    },
  • "error_message": "string",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Get Scan Dry Run Job

path Parameters
slug
required
string (Slug)
job_id
required
string <uuid> (Job Id)

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "status": "pending",
  • "started_at": "2019-08-24T14:15:22Z",
  • "completed_at": "2019-08-24T14:15:22Z",
  • "result_summary": {
    },
  • "error_message": "string",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Get Scan Config

path Parameters
slug
required
string (Slug)
scan_id
required
string <uuid> (Scan Id)

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "data_source_id": "0e1e9a56-7994-41e2-9003-96f8ebac19a2",
  • "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
  • "event_type_id": "a4ec4c3c-a3de-4a8a-983f-1791e72cea83",
  • "name": "string",
  • "base_query": "string",
  • "event_type_column": "string",
  • "time_column": "string",
  • "event_name_format": "string",
  • "json_value_paths": [
    ],
  • "event_group_rules": [
    ],
  • "metric_breakdown_columns": [
    ],
  • "metric_breakdown_values_limit": 0,
  • "distribution_drift_fields": [
    ],
  • "cardinality_threshold": 0,
  • "interval": "15m",
  • "replay_chunk_interval": "15m",
  • "scan_lookback_hours": 0,
  • "scan_row_limit": 0,
  • "metrics_row_limit": 0,
  • "app_version_column": "string",
  • "app_version_keep_releases": 0,
  • "app_version_prerelease_pattern": "string",
  • "app_version_active_share_min": 0,
  • "platform_column": "string",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Update Scan Config

path Parameters
slug
required
string (Slug)
scan_id
required
string <uuid> (Scan Id)
Request Body schema: application/json
required
Event Type Id (string) or Event Type Id (null) (Event Type Id)
Name (string) or Name (null) (Name)
Base Query (string) or Base Query (null) (Base Query)
Event Type Column (string) or Event Type Column (null) (Event Type Column)
Time Column (string) or Time Column (null) (Time Column)
Event Name Format (string) or Event Name Format (null) (Event Name Format)
Array of Json Value Paths (strings) or Json Value Paths (null) (Json Value Paths)
Array of Event Group Rules (objects) or Event Group Rules (null) (Event Group Rules)
Array of Metric Breakdown Columns (strings) or Metric Breakdown Columns (null) (Metric Breakdown Columns)
Metric Breakdown Values Limit (integer) or Metric Breakdown Values Limit (null) (Metric Breakdown Values Limit)
Array of Distribution Drift Fields (strings) or Distribution Drift Fields (null) (Distribution Drift Fields)
Cardinality Threshold (integer) or Cardinality Threshold (null) (Cardinality Threshold)
ScanInterval (string) or null
ScanInterval (string) or null
Scan Lookback Hours (integer) or Scan Lookback Hours (null) (Scan Lookback Hours)
Scan Row Limit (integer) or Scan Row Limit (null) (Scan Row Limit)
Metrics Row Limit (integer) or Metrics Row Limit (null) (Metrics Row Limit)
App Version Column (string) or App Version Column (null) (App Version Column)
App Version Keep Releases (integer) or App Version Keep Releases (null) (App Version Keep Releases)
Deprecated

Deprecated compatibility mirror of Project.app_version_keep_releases; caller values are ignored.

App Version Prerelease Pattern (string) or App Version Prerelease Pattern (null) (App Version Prerelease Pattern)
App Version Active Share Min (number) or App Version Active Share Min (null) (App Version Active Share Min)
Platform Column (string) or Platform Column (null) (Platform Column)

Responses

Request samples

Content type
application/json
{
  • "event_type_id": "a4ec4c3c-a3de-4a8a-983f-1791e72cea83",
  • "name": "string",
  • "base_query": "string",
  • "event_type_column": "string",
  • "time_column": "string",
  • "event_name_format": "string",
  • "json_value_paths": [
    ],
  • "event_group_rules": [
    ],
  • "metric_breakdown_columns": [
    ],
  • "metric_breakdown_values_limit": 1,
  • "distribution_drift_fields": [
    ],
  • "cardinality_threshold": 1,
  • "interval": "15m",
  • "replay_chunk_interval": "15m",
  • "scan_lookback_hours": 1,
  • "scan_row_limit": 1,
  • "metrics_row_limit": 1,
  • "app_version_column": "string",
  • "app_version_keep_releases": 1,
  • "app_version_prerelease_pattern": "string",
  • "app_version_active_share_min": 0,
  • "platform_column": "string"
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "data_source_id": "0e1e9a56-7994-41e2-9003-96f8ebac19a2",
  • "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
  • "event_type_id": "a4ec4c3c-a3de-4a8a-983f-1791e72cea83",
  • "name": "string",
  • "base_query": "string",
  • "event_type_column": "string",
  • "time_column": "string",
  • "event_name_format": "string",
  • "json_value_paths": [
    ],
  • "event_group_rules": [
    ],
  • "metric_breakdown_columns": [
    ],
  • "metric_breakdown_values_limit": 0,
  • "distribution_drift_fields": [
    ],
  • "cardinality_threshold": 0,
  • "interval": "15m",
  • "replay_chunk_interval": "15m",
  • "scan_lookback_hours": 0,
  • "scan_row_limit": 0,
  • "metrics_row_limit": 0,
  • "app_version_column": "string",
  • "app_version_keep_releases": 0,
  • "app_version_prerelease_pattern": "string",
  • "app_version_active_share_min": 0,
  • "platform_column": "string",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Delete Scan Config

path Parameters
slug
required
string (Slug)
scan_id
required
string <uuid> (Scan Id)

Responses

Response samples

Content type
application/json
{
  • "detail": [
    ]
}

Get Platform Presence

Per-event platform presence matrix for the scan's platform_column.

Empty when the scan has no platform_column set (the platform dimension is inert), so callers can render the panel unconditionally.

path Parameters
slug
required
string (Slug)
scan_id
required
string <uuid> (Scan Id)

Responses

Response samples

Content type
application/json
{
  • "scan_config_id": "73831784-3bab-4614-8856-92f95dec4914",
  • "platform_column": "string",
  • "platforms": [
    ],
  • "items": [
    ]
}

Run Scan

path Parameters
slug
required
string (Slug)
scan_id
required
string <uuid> (Scan Id)

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "scan_config_id": "73831784-3bab-4614-8856-92f95dec4914",
  • "status": "pending",
  • "started_at": "2019-08-24T14:15:22Z",
  • "completed_at": "2019-08-24T14:15:22Z",
  • "result_summary": { },
  • "error_message": "string",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Apply Scan Event Groups

path Parameters
slug
required
string (Slug)
scan_id
required
string <uuid> (Scan Id)

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "scan_config_id": "73831784-3bab-4614-8856-92f95dec4914",
  • "status": "pending",
  • "started_at": "2019-08-24T14:15:22Z",
  • "completed_at": "2019-08-24T14:15:22Z",
  • "result_summary": { },
  • "error_message": "string",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Replay Scan Metrics

path Parameters
slug
required
string (Slug)
scan_id
required
string <uuid> (Scan Id)
Request Body schema: application/json
required
time_from
required
string <date-time> (Time From)
time_to
required
string <date-time> (Time To)

Responses

Request samples

Content type
application/json
{
  • "time_from": "2019-08-24T14:15:22Z",
  • "time_to": "2019-08-24T14:15:22Z"
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "scan_config_id": "73831784-3bab-4614-8856-92f95dec4914",
  • "status": "pending",
  • "started_at": "2019-08-24T14:15:22Z",
  • "completed_at": "2019-08-24T14:15:22Z",
  • "result_summary": { },
  • "error_message": "string",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

List Scan Jobs

Newest jobs first, capped.

This was uncapped, and the Scans tab fans it out over every scan config on a 10-second poll: production configs hold 1,366-1,551 jobs each, so an open tab pulled roughly 4,400 rows every 10 seconds and rendered them unvirtualized (tripl-jfm3.107).

path Parameters
slug
required
string (Slug)
scan_id
required
string <uuid> (Scan Id)
query Parameters
limit
integer (Limit) [ 1 .. 200 ]
Default: 50

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get Scan Job

path Parameters
slug
required
string (Slug)
scan_id
required
string <uuid> (Scan Id)
job_id
required
string <uuid> (Job Id)

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "scan_config_id": "73831784-3bab-4614-8856-92f95dec4914",
  • "status": "pending",
  • "started_at": "2019-08-24T14:15:22Z",
  • "completed_at": "2019-08-24T14:15:22Z",
  • "result_summary": { },
  • "error_message": "string",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Cancel Scan Job

path Parameters
slug
required
string (Slug)
scan_id
required
string <uuid> (Scan Id)
job_id
required
string <uuid> (Job Id)

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "scan_config_id": "73831784-3bab-4614-8856-92f95dec4914",
  • "status": "pending",
  • "started_at": "2019-08-24T14:15:22Z",
  • "completed_at": "2019-08-24T14:15:22Z",
  • "result_summary": { },
  • "error_message": "string",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

metrics

Computed metrics and metric definitions.

Get Events Metrics

path Parameters
slug
required
string (Slug)
query Parameters
Event Type Id (string) or Event Type Id (null) (Event Type Id)
Search (string) or Search (null) (Search)
Tag (string) or Tag (null) (Tag)
Array of Status (strings) or Status (null) (Status)
From (string) or From (null) (From)
To (string) or To (null) (To)

Responses

Response samples

Content type
application/json
{
  • "scope": "string",
  • "scan_config_id": "73831784-3bab-4614-8856-92f95dec4914",
  • "scan_config_name": "string",
  • "event_id": "a7a26ff2-e851-45b6-9634-d595f45458b7",
  • "event_type_id": "a4ec4c3c-a3de-4a8a-983f-1791e72cea83",
  • "interval": "15m",
  • "latest_signal": {
    },
  • "sigma_threshold": 4,
  • "data": [
    ],
  • "forecast": [ ]
}

Get Events Window Metrics

path Parameters
slug
required
string (Slug)
Request Body schema: application/json
required
event_ids
required
Array of strings <uuid> (Event Ids) [ items <uuid > ]
Time From (string) or Time From (null) (Time From)
Time To (string) or Time To (null) (Time To)

Responses

Request samples

Content type
application/json
{
  • "event_ids": [
    ],
  • "time_from": "2019-08-24T14:15:22Z",
  • "time_to": "2019-08-24T14:15:22Z"
}

Response samples

Content type
application/json
[
  • {
    }
]

Get Overview Kpi Series

path Parameters
slug
required
string (Slug)
query Parameters
days
integer (Days) [ 1 .. 365 ]
Default: 14

Responses

Response samples

Content type
application/json
{
  • "days": 0,
  • "new_events": [
    ]
}

Get Overview Top Events

path Parameters
slug
required
string (Slug)
query Parameters
window_hours
integer (Window Hours) [ 1 .. 720 ]
Default: 48
limit
integer (Limit) [ 1 .. 100 ]
Default: 6

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get Project Total Metrics

path Parameters
slug
required
string (Slug)
query Parameters
Scan Config Id (string) or Scan Config Id (null) (Scan Config Id)
From (string) or From (null) (From)
To (string) or To (null) (To)

Responses

Response samples

Content type
application/json
{
  • "scope": "string",
  • "scan_config_id": "73831784-3bab-4614-8856-92f95dec4914",
  • "scan_config_name": "string",
  • "event_id": "a7a26ff2-e851-45b6-9634-d595f45458b7",
  • "event_type_id": "a4ec4c3c-a3de-4a8a-983f-1791e72cea83",
  • "interval": "15m",
  • "latest_signal": {
    },
  • "sigma_threshold": 4,
  • "data": [
    ],
  • "forecast": [ ]
}

Get Event Metrics

path Parameters
slug
required
string (Slug)
event_id
required
string <uuid> (Event Id)
query Parameters
From (string) or From (null) (From)
To (string) or To (null) (To)

Responses

Response samples

Content type
application/json
{
  • "scope": "string",
  • "scan_config_id": "73831784-3bab-4614-8856-92f95dec4914",
  • "scan_config_name": "string",
  • "event_id": "a7a26ff2-e851-45b6-9634-d595f45458b7",
  • "event_type_id": "a4ec4c3c-a3de-4a8a-983f-1791e72cea83",
  • "interval": "15m",
  • "latest_signal": {
    },
  • "sigma_threshold": 4,
  • "data": [
    ],
  • "forecast": [ ]
}

Get Event Metric Breakdowns

path Parameters
slug
required
string (Slug)
event_id
required
string <uuid> (Event Id)
query Parameters
Column (string) or Column (null) (Column)
From (string) or From (null) (From)
To (string) or To (null) (To)

Responses

Response samples

Content type
application/json
{
  • "event_id": "a7a26ff2-e851-45b6-9634-d595f45458b7",
  • "scan_config_id": "73831784-3bab-4614-8856-92f95dec4914",
  • "interval": "15m",
  • "columns": [
    ],
  • "selected_column": "string",
  • "series": [
    ]
}

Get Event Type Metrics

path Parameters
slug
required
string (Slug)
event_type_id
required
string <uuid> (Event Type Id)
query Parameters
From (string) or From (null) (From)
To (string) or To (null) (To)

Responses

Response samples

Content type
application/json
{
  • "scope": "string",
  • "scan_config_id": "73831784-3bab-4614-8856-92f95dec4914",
  • "scan_config_name": "string",
  • "event_id": "a7a26ff2-e851-45b6-9634-d595f45458b7",
  • "event_type_id": "a4ec4c3c-a3de-4a8a-983f-1791e72cea83",
  • "interval": "15m",
  • "latest_signal": {
    },
  • "sigma_threshold": 4,
  • "data": [
    ],
  • "forecast": [ ]
}

Get Active Signals

Cacheable no-args variant. For filtering by a large event-id list (>>a few), prefer POST /anomalies/signals/query — GET's query-string overflow is real once you cross ~50 ids (proxy/browser limits).

expanded=true (the AnomaliesPage view) also surfaces per-event scopes and keeps each incident's child rows, tagged incident_child rather than collapsed into the parent project_total signal.

path Parameters
slug
required
string (Slug)
query Parameters
Array of Event Id (strings) or Event Id (null) (Event Id)
expanded
boolean (Expanded)
Default: false

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Query Active Signals

path Parameters
slug
required
string (Slug)
Request Body schema: application/json
required
event_ids
Array of strings <uuid> (Event Ids) [ items <uuid > ]
Default: []

Responses

Request samples

Content type
application/json
{
  • "event_ids": [ ]
}

Response samples

Content type
application/json
[
  • {
    }
]

Get Top Movers

Top-N breakdown rows that "moved" a given anomaly bucket, |z| desc.

path Parameters
slug
required
string (Slug)
scan_config_id
required
string <uuid> (Scan Config Id)
query Parameters
scope_type
required
string (MetricScopeType)
Enum: "project_total" "event_type" "event" "schema" "distribution" "release_regression" "metric" "variable_value_drift"
scope_ref
required
string (Scope Ref)
bucket
required
string <date-time> (Bucket)
limit
integer (Limit) [ 1 .. 100 ]
Default: 10

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get Seasonality Heatmap

7×24 hour-of-day × weekday heatmap of volume and anomaly density.

path Parameters
slug
required
string (Slug)
scan_config_id
required
string <uuid> (Scan Config Id)
query Parameters
scope_type
required
string (MetricScopeType)
Enum: "project_total" "event_type" "event" "schema" "distribution" "release_regression" "metric" "variable_value_drift"
scope_ref
required
string (Scope Ref)
From (string) or From (null) (From)
To (string) or To (null) (To)

Responses

Response samples

Content type
application/json
{
  • "scan_config_id": "73831784-3bab-4614-8856-92f95dec4914",
  • "scope_type": "project_total",
  • "scope_ref": "string",
  • "cells": [
    ],
  • "max_count": 0,
  • "total_count": 0,
  • "interval": "string",
  • "hourly_resolution": true
}

Get Breakdown Timeline

Per-bucket count timeline for one breakdown_value (drill-down).

path Parameters
slug
required
string (Slug)
scan_config_id
required
string <uuid> (Scan Config Id)
query Parameters
scope_type
required
string (MetricScopeType)
Enum: "project_total" "event_type" "event" "schema" "distribution" "release_regression" "metric" "variable_value_drift"
scope_ref
required
string (Scope Ref)
breakdown_column
required
string (Breakdown Column)
breakdown_value
required
string (Breakdown Value)
is_other
boolean (Is Other)
Default: false
From (string) or From (null) (From)
To (string) or To (null) (To)

Responses

Response samples

Content type
application/json
{
  • "scan_config_id": "73831784-3bab-4614-8856-92f95dec4914",
  • "scope_type": "project_total",
  • "scope_ref": "string",
  • "breakdown_column": "string",
  • "breakdown_value": "string",
  • "is_other": true,
  • "interval": "15m",
  • "data": [
    ]
}

Get App Version Series

path Parameters
slug
required
string (Slug)
scan_config_id
required
string <uuid> (Scan Config Id)
query Parameters
scope_type
string (MetricScopeType)
Default: "project_total"
Enum: "project_total" "event_type" "event" "schema" "distribution" "release_regression" "metric" "variable_value_drift"
Scope Ref (string) or Scope Ref (null) (Scope Ref)
From (string) or From (null) (From)
To (string) or To (null) (To)

Responses

Response samples

Content type
application/json
{
  • "scan_config_id": "73831784-3bab-4614-8856-92f95dec4914",
  • "scope_type": "project_total",
  • "scope_ref": "string",
  • "event_id": "a7a26ff2-e851-45b6-9634-d595f45458b7",
  • "event_type_id": "a4ec4c3c-a3de-4a8a-983f-1791e72cea83",
  • "app_version_column": "string",
  • "interval": "15m",
  • "latest_version": "string",
  • "sigma_threshold": 4,
  • "versions": [
    ],
  • "series": [
    ]
}

Get App Version Adoption

path Parameters
slug
required
string (Slug)
scan_config_id
required
string <uuid> (Scan Config Id)
query Parameters
From (string) or From (null) (From)
To (string) or To (null) (To)

Responses

Response samples

Content type
application/json
{
  • "scan_config_id": "73831784-3bab-4614-8856-92f95dec4914",
  • "scope_type": "project_total",
  • "scope_ref": "string",
  • "event_id": "a7a26ff2-e851-45b6-9634-d595f45458b7",
  • "event_type_id": "a4ec4c3c-a3de-4a8a-983f-1791e72cea83",
  • "app_version_column": "string",
  • "interval": "15m",
  • "latest_version": "string",
  • "sigma_threshold": 4,
  • "versions": [
    ],
  • "series": [
    ],
  • "totals": [
    ]
}

Get Release Regressions

path Parameters
slug
required
string (Slug)
scan_config_id
required
string <uuid> (Scan Config Id)
query Parameters
MetricScopeType (string) or Scope Type (null) (Scope Type)

Responses

Response samples

Content type
application/json
{
  • "scan_config_id": "73831784-3bab-4614-8856-92f95dec4914",
  • "app_version_column": "string",
  • "latest_version": "string",
  • "comparability": [
    ],
  • "items": [
    ]
}

Get Distribution Drifts

path Parameters
slug
required
string (Slug)
query Parameters
scope_type
required
string (MetricScopeType)
Enum: "project_total" "event_type" "event" "schema" "distribution" "release_regression" "metric" "variable_value_drift"
scope_ref
required
string (Scope Ref)
Scan Config Id (string) or Scan Config Id (null) (Scan Config Id)
From (string) or From (null) (From)
To (string) or To (null) (To)

Responses

Response samples

Content type
application/json
{
  • "scope": "string",
  • "scan_config_id": "73831784-3bab-4614-8856-92f95dec4914",
  • "event_type_id": "a4ec4c3c-a3de-4a8a-983f-1791e72cea83",
  • "fields": [
    ],
  • "data": [
    ]
}

reconciliation

Plan-vs-warehouse reconciliation runs.

List Shadow Events

path Parameters
slug
required
string (Slug)
query Parameters
ShadowEventStatus (string) or Status (null) (Status)
limit
integer (Limit) [ 1 .. 500 ]
Default: 100

Responses

Response samples

Content type
application/json
{
  • "items": [
    ],
  • "total": 0,
  • "new_count": 0
}

Accept Shadow Event

path Parameters
slug
required
string (Slug)
candidate_id
required
string <uuid> (Candidate Id)
query Parameters
Branch (string) or Branch (null) (Branch)

Plan branch id (UUID) to read and write instead of the main branch.

Request Body schema: application/json
required
Event Type Id (string) or Event Type Id (null) (Event Type Id)
Name (string) or Name (null) (Name)

Responses

Request samples

Content type
application/json
{
  • "event_type_id": "a4ec4c3c-a3de-4a8a-983f-1791e72cea83",
  • "name": "string"
}

Response samples

Content type
application/json
{
  • "candidate_id": "2f28f791-f0fd-4155-a356-c24e996beeda",
  • "event_id": "a7a26ff2-e851-45b6-9634-d595f45458b7",
  • "status": "new"
}

Dismiss Shadow Event

path Parameters
slug
required
string (Slug)
candidate_id
required
string <uuid> (Candidate Id)

Responses

Response samples

Content type
application/json
{
  • "candidate_id": "2f28f791-f0fd-4155-a356-c24e996beeda",
  • "status": "new"
}

List Dead Events

path Parameters
slug
required
string (Slug)
query Parameters
days
integer (Days) [ 1 .. 365 ]
Default: 30

Responses

Response samples

Content type
application/json
{
  • "items": [
    ],
  • "total": 0,
  • "days": 0
}

Archive Dead Events

path Parameters
slug
required
string (Slug)
query Parameters
Branch (string) or Branch (null) (Branch)

Plan branch id (UUID) to read and write instead of the main branch.

Request Body schema: application/json
required
event_ids
required
Array of strings <uuid> (Event Ids) non-empty [ items <uuid > ]
status
string (EventStatus)
Default: "archived"
Enum: "draft" "in_review" "ready_for_dev" "implemented" "live" "deprecated" "archived"

Responses

Request samples

Content type
application/json
{
  • "event_ids": [
    ],
  • "status": "draft"
}

Response samples

Content type
application/json
{
  • "event_ids": [
    ],
  • "status": "draft",
  • "archived_count": 0
}

Get Coverage

path Parameters
slug
required
string (Slug)
query Parameters
days
integer (Days) [ 1 .. 180 ]
Default: 14
Scan Config Id (string) or Scan Config Id (null) (Scan Config Id)

Responses

Response samples

Content type
application/json
{
  • "items": [
    ],
  • "summary": {
    },
  • "days": 0
}

plan-branches

Working branches of a tracking plan.

List Branches

List a project's branches.

include_diff_counts fills each feature branch's ahead / behind_base from a single shared main snapshot, so a branches list does not need one /branches/{id}/diff call per row. It is opt-in because it makes the response cost N+1 plan snapshots; leave it off when you only need the branch rows.

path Parameters
slug
required
string (Slug)
query Parameters
include_diff_counts
boolean (Include Diff Counts)
Default: false

Responses

Response samples

Content type
application/json
{
  • "items": [
    ],
  • "total": 0
}

Create Branch

path Parameters
slug
required
string (Slug)
Request Body schema: application/json
required
name
required
string (Name)
description
string (Description)
Default: ""

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "description": ""
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
  • "name": "string",
  • "kind": "main",
  • "status": "draft",
  • "description": "string",
  • "base_revision_id": "3ded3faf-b36b-49f9-84eb-022d2acef61c",
  • "created_by": "ee824cad-d7a6-4f48-87dc-e8461a9201c4",
  • "merged_at": "2019-08-24T14:15:22Z",
  • "merged_by": "4f4607b3-7f91-40a2-97ed-fdb9b72f68b8",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "ahead": 0,
  • "behind_base": true
}

Get Branch

path Parameters
slug
required
string (Slug)
branch_id
required
string <uuid> (Branch Id)

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
  • "name": "string",
  • "kind": "main",
  • "status": "draft",
  • "description": "string",
  • "base_revision_id": "3ded3faf-b36b-49f9-84eb-022d2acef61c",
  • "created_by": "ee824cad-d7a6-4f48-87dc-e8461a9201c4",
  • "merged_at": "2019-08-24T14:15:22Z",
  • "merged_by": "4f4607b3-7f91-40a2-97ed-fdb9b72f68b8",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "ahead": 0,
  • "behind_base": true,
  • "reviewers": [
    ],
  • "approvals": [
    ]
}

Delete Branch

path Parameters
slug
required
string (Slug)
branch_id
required
string <uuid> (Branch Id)

Responses

Response samples

Content type
application/json
{
  • "detail": [
    ]
}

Transition Branch

path Parameters
slug
required
string (Slug)
branch_id
required
string <uuid> (Branch Id)
Request Body schema: application/json
required
action
required
string (Action)
Enum: "submit" "request_changes" "approve" "reopen" "close"

Responses

Request samples

Content type
application/json
{
  • "action": "submit"
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
  • "name": "string",
  • "kind": "main",
  • "status": "draft",
  • "description": "string",
  • "base_revision_id": "3ded3faf-b36b-49f9-84eb-022d2acef61c",
  • "created_by": "ee824cad-d7a6-4f48-87dc-e8461a9201c4",
  • "merged_at": "2019-08-24T14:15:22Z",
  • "merged_by": "4f4607b3-7f91-40a2-97ed-fdb9b72f68b8",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "ahead": 0,
  • "behind_base": true,
  • "reviewers": [
    ],
  • "approvals": [
    ]
}

Add Reviewer

path Parameters
slug
required
string (Slug)
branch_id
required
string <uuid> (Branch Id)
Request Body schema: application/json
required
user_id
required
string <uuid> (User Id)

Responses

Request samples

Content type
application/json
{
  • "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5"
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5",
  • "created_at": "2019-08-24T14:15:22Z"
}

Remove Reviewer

path Parameters
slug
required
string (Slug)
branch_id
required
string <uuid> (Branch Id)
user_id
required
string <uuid> (User Id)

Responses

Response samples

Content type
application/json
{
  • "detail": [
    ]
}

List Comments

path Parameters
slug
required
string (Slug)
branch_id
required
string <uuid> (Branch Id)

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create Comment

path Parameters
slug
required
string (Slug)
branch_id
required
string <uuid> (Branch Id)
Request Body schema: application/json
required
body
required
string (Body)
Parent Id (string) or Parent Id (null) (Parent Id)

Responses

Request samples

Content type
application/json
{
  • "body": "string",
  • "parent_id": "1c6ca187-e61f-4301-8dcb-0e9749e89eef"
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "branch_id": "7a4e8e99-89f2-4a0f-b66c-fc595dda2dbc",
  • "parent_id": "1c6ca187-e61f-4301-8dcb-0e9749e89eef",
  • "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5",
  • "body": "string",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Delete Comment

path Parameters
slug
required
string (Slug)
branch_id
required
string <uuid> (Branch Id)
comment_id
required
string <uuid> (Comment Id)

Responses

Response samples

Content type
application/json
{
  • "detail": [
    ]
}

Diff Branch

path Parameters
slug
required
string (Slug)
branch_id
required
string <uuid> (Branch Id)

Responses

Response samples

Content type
application/json
{
  • "entries": [
    ],
  • "summary": {
    },
  • "behind_base": true
}

Revert Branch Change

path Parameters
slug
required
string (Slug)
branch_id
required
string <uuid> (Branch Id)
Request Body schema: application/json
required
entity_type
required
string (Entity Type)
Enum: "event_type" "field_definition" "event" "variable" "meta_field" "relation"
name
required
string (Name)
Parent (string) or Parent (null) (Parent)
Field (string) or Field (null) (Field)

Responses

Request samples

Content type
application/json
{
  • "entity_type": "event_type",
  • "name": "string",
  • "parent": "string",
  • "field": "string"
}

Response samples

Content type
application/json
{
  • "entries": [
    ],
  • "summary": {
    },
  • "behind_base": true
}

Get Branch Conflicts

path Parameters
slug
required
string (Slug)
branch_id
required
string <uuid> (Branch Id)

Responses

Response samples

Content type
application/json
{
  • "entities": [
    ],
  • "unresolved_count": 0
}

Save Branch Resolution

path Parameters
slug
required
string (Slug)
branch_id
required
string <uuid> (Branch Id)
Request Body schema: application/json
required
entity_type
required
string (Entity Type)
entity_name
required
string (Entity Name)
field_name
required
string (Field Name)
choice
required
string (MergeResolutionChoice)
Enum: "ours" "theirs"

Responses

Request samples

Content type
application/json
{
  • "entity_type": "string",
  • "entity_name": "string",
  • "field_name": "string",
  • "choice": "ours"
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "branch_id": "7a4e8e99-89f2-4a0f-b66c-fc595dda2dbc",
  • "entity_type": "string",
  • "entity_name": "string",
  • "field_name": "string",
  • "choice": "ours",
  • "resolved_by": "d0d57369-b08b-4db8-8952-8cdeedd9aebc",
  • "created_at": "2019-08-24T14:15:22Z"
}

Delete Branch Resolution

path Parameters
slug
required
string (Slug)
branch_id
required
string <uuid> (Branch Id)
resolution_id
required
string <uuid> (Resolution Id)

Responses

Response samples

Content type
application/json
{
  • "detail": [
    ]
}

Merge Branch

path Parameters
slug
required
string (Slug)
branch_id
required
string <uuid> (Branch Id)

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
  • "name": "string",
  • "kind": "main",
  • "status": "draft",
  • "description": "string",
  • "base_revision_id": "3ded3faf-b36b-49f9-84eb-022d2acef61c",
  • "created_by": "ee824cad-d7a6-4f48-87dc-e8461a9201c4",
  • "merged_at": "2019-08-24T14:15:22Z",
  • "merged_by": "4f4607b3-7f91-40a2-97ed-fdb9b72f68b8",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "ahead": 0,
  • "behind_base": true,
  • "reviewers": [
    ],
  • "approvals": [
    ]
}

plan-revisions

Committed plan revisions and history.

Create Revision

path Parameters
slug
required
string (Slug)
Request Body schema: application/json
required
summary
string (Summary) <= 2000 characters
Default: ""

Responses

Request samples

Content type
application/json
{
  • "summary": ""
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
  • "summary": "string",
  • "created_at": "2019-08-24T14:15:22Z",
  • "created_by": "ee824cad-d7a6-4f48-87dc-e8461a9201c4",
  • "entity_counts": {
    },
  • "payload": { }
}

List Revisions

path Parameters
slug
required
string (Slug)
query Parameters
offset
integer (Offset) >= 0
Default: 0
limit
integer (Limit) [ 1 .. 200 ]
Default: 50

Responses

Response samples

Content type
application/json
{
  • "items": [
    ],
  • "total": 0
}

Get Revision

path Parameters
slug
required
string (Slug)
revision_id
required
string <uuid> (Revision Id)

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
  • "summary": "string",
  • "created_at": "2019-08-24T14:15:22Z",
  • "created_by": "ee824cad-d7a6-4f48-87dc-e8461a9201c4",
  • "entity_counts": {
    },
  • "payload": { }
}

Diff Revision

path Parameters
slug
required
string (Slug)
revision_id
required
string <uuid> (Revision Id)
query Parameters
compare_to
required
string <uuid> (Compare To)

Responses

Response samples

Content type
application/json
{
  • "revision_id": "f8f7f022-982b-4bef-ba7d-4bb808fdbe2a",
  • "compare_to": "846220e4-43c3-4942-997b-fe1dae7730fc",
  • "entries": [
    ],
  • "summary": {
    }
}

chart-annotations

Annotations overlaid on metric charts.

List Chart Annotations

path Parameters
slug
required
string (Slug)
query Parameters
ChartAnnotationScopeType (string) or Scope Type (null) (Scope Type)
Scope Ref (string) or Scope Ref (null) (Scope Ref)
Time From (string) or Time From (null) (Time From)
Time To (string) or Time To (null) (Time To)

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create Chart Annotation

path Parameters
slug
required
string (Slug)
Request Body schema: application/json
required
bucket
required
string <date-time> (Bucket)
label
required
string (Label) [ 1 .. 200 ] characters
Description (string) or Description (null) (Description)
color
string (Color) <= 20 characters
Default: "#ef4444"
ChartAnnotationScopeType (string) or null
Scope Ref (string) or Scope Ref (null) (Scope Ref)

Responses

Request samples

Content type
application/json
{
  • "bucket": "2019-08-24T14:15:22Z",
  • "label": "string",
  • "description": "string",
  • "color": "#ef4444",
  • "scope_type": "project_total",
  • "scope_ref": "string"
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
  • "scope_type": "project_total",
  • "scope_ref": "string",
  • "bucket": "2019-08-24T14:15:22Z",
  • "label": "string",
  • "description": "string",
  • "color": "string",
  • "created_by_user_id": "209f54c4-4c33-43bc-9c6a-ef4c65ad7473",
  • "created_at": "2019-08-24T14:15:22Z"
}

Delete Chart Annotation

path Parameters
slug
required
string (Slug)
annotation_id
required
string <uuid> (Annotation Id)

Responses

Response samples

Content type
application/json
{
  • "detail": [
    ]
}

anomaly-settings

Per-project anomaly detection settings.

Get Project Anomaly Settings

path Parameters
slug
required
string (Slug)

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
  • "anomaly_detection_enabled": true,
  • "detect_project_total": true,
  • "detect_event_types": true,
  • "detect_events": true,
  • "detect_metrics": true,
  • "baseline_window_buckets": 0,
  • "min_history_buckets": 0,
  • "sigma_threshold": 0,
  • "min_expected_count": 0,
  • "recent_signal_window_hours": 0,
  • "anomaly_ingestion_settling_minutes": 0,
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Update Project Anomaly Settings

path Parameters
slug
required
string (Slug)
Request Body schema: application/json
required
Anomaly Detection Enabled (boolean) or Anomaly Detection Enabled (null) (Anomaly Detection Enabled)
Detect Project Total (boolean) or Detect Project Total (null) (Detect Project Total)
Detect Event Types (boolean) or Detect Event Types (null) (Detect Event Types)
Detect Events (boolean) or Detect Events (null) (Detect Events)
Detect Metrics (boolean) or Detect Metrics (null) (Detect Metrics)
Baseline Window Buckets (integer) or Baseline Window Buckets (null) (Baseline Window Buckets)
Min History Buckets (integer) or Min History Buckets (null) (Min History Buckets)
Sigma Threshold (number) or Sigma Threshold (null) (Sigma Threshold)
Min Expected Count (integer) or Min Expected Count (null) (Min Expected Count)
Recent Signal Window Hours (integer) or Recent Signal Window Hours (null) (Recent Signal Window Hours)
Anomaly Ingestion Settling Minutes (integer) or Anomaly Ingestion Settling Minutes (null) (Anomaly Ingestion Settling Minutes)

Responses

Request samples

Content type
application/json
{
  • "anomaly_detection_enabled": true,
  • "detect_project_total": true,
  • "detect_event_types": true,
  • "detect_events": true,
  • "detect_metrics": true,
  • "baseline_window_buckets": 1,
  • "min_history_buckets": 1,
  • "sigma_threshold": 0.1,
  • "min_expected_count": 0,
  • "recent_signal_window_hours": 1,
  • "anomaly_ingestion_settling_minutes": 1440
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
  • "anomaly_detection_enabled": true,
  • "detect_project_total": true,
  • "detect_event_types": true,
  • "detect_events": true,
  • "detect_metrics": true,
  • "baseline_window_buckets": 0,
  • "min_history_buckets": 0,
  • "sigma_threshold": 0,
  • "min_expected_count": 0,
  • "recent_signal_window_hours": 0,
  • "anomaly_ingestion_settling_minutes": 0,
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

List Anomaly Scope Overrides

path Parameters
slug
required
string (Slug)

Responses

Response samples

Content type
application/json
{
  • "items": [
    ],
  • "total": 0
}

Delete Anomaly Scope Override

Undo one false-positive ratchet: the scope returns to the project setting.

path Parameters
slug
required
string (Slug)
override_id
required
string <uuid> (Override Id)

Responses

Response samples

Content type
application/json
{
  • "detail": [
    ]
}

alerting

Alert rules and delivery destinations.

List Alert Destinations

path Parameters
slug
required
string (Slug)

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create Alert Destination

path Parameters
slug
required
string (Slug)
Request Body schema: application/json
required
type
required
string (AlertDestinationType)
Enum: "slack" "telegram" "webhook" "email" "jira" "linear" "demo_sink"
name
required
string (Name)
enabled
boolean (Enabled)
Default: true
Webhook Url (string) or Webhook Url (null) (Webhook Url)
Bot Token (string) or Bot Token (null) (Bot Token)
Chat Id (string) or Chat Id (null) (Chat Id)
Target Url (string) or Target Url (null) (Target Url)
Webhook Header Name (string) or Webhook Header Name (null) (Webhook Header Name)
Webhook Header Value (string) or Webhook Header Value (null) (Webhook Header Value)
Email Recipients (string) or Email Recipients (null) (Email Recipients)
Email From Address (string) or Email From Address (null) (Email From Address)
Email Subject Template (string) or Email Subject Template (null) (Email Subject Template)
Jira Base Url (string) or Jira Base Url (null) (Jira Base Url)
Jira Auth Email (string) or Jira Auth Email (null) (Jira Auth Email)
Jira Api Token (string) or Jira Api Token (null) (Jira Api Token)
Jira Project Key (string) or Jira Project Key (null) (Jira Project Key)
Jira Issue Type (string) or Jira Issue Type (null) (Jira Issue Type)
Linear Api Key (string) or Linear Api Key (null) (Linear Api Key)
Linear Team Id (string) or Linear Team Id (null) (Linear Team Id)
Linear State Id (string) or Linear State Id (null) (Linear State Id)
Linear Label Ids (string) or Linear Label Ids (null) (Linear Label Ids)

Responses

Request samples

Content type
application/json
{
  • "type": "slack",
  • "name": "string",
  • "enabled": true,
  • "webhook_url": "string",
  • "bot_token": "string",
  • "chat_id": "string",
  • "target_url": "string",
  • "webhook_header_name": "string",
  • "webhook_header_value": "string",
  • "email_recipients": "string",
  • "email_from_address": "string",
  • "email_subject_template": "string",
  • "jira_base_url": "string",
  • "jira_auth_email": "string",
  • "jira_api_token": "string",
  • "jira_project_key": "string",
  • "jira_issue_type": "string",
  • "linear_api_key": "string",
  • "linear_team_id": "string",
  • "linear_state_id": "string",
  • "linear_label_ids": "string"
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
  • "type": "slack",
  • "name": "string",
  • "enabled": true,
  • "webhook_set": true,
  • "bot_token_set": true,
  • "chat_id": "string",
  • "target_url_set": true,
  • "webhook_header_name": "string",
  • "email_recipients": "string",
  • "email_from_address": "string",
  • "email_subject_template": "string",
  • "jira_base_url": "string",
  • "jira_auth_email": "string",
  • "jira_api_token_set": true,
  • "jira_project_key": "string",
  • "jira_issue_type": "string",
  • "linear_api_key_set": true,
  • "linear_team_id": "string",
  • "linear_state_id": "string",
  • "linear_label_ids": "string",
  • "is_local": false,
  • "delivery_count": 0,
  • "incident_count": 0,
  • "rules": [
    ],
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Get Monitors Summary

path Parameters
slug
required
string (Slug)

Responses

Response samples

Content type
application/json
{
  • "monitors": [
    ],
  • "firing_count": 0,
  • "warning_count": 0,
  • "healthy_count": 0,
  • "total": 0,
  • "scope_readiness": {
    }
}

Get Alert Destination

path Parameters
slug
required
string (Slug)
destination_id
required
string <uuid> (Destination Id)

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
  • "type": "slack",
  • "name": "string",
  • "enabled": true,
  • "webhook_set": true,
  • "bot_token_set": true,
  • "chat_id": "string",
  • "target_url_set": true,
  • "webhook_header_name": "string",
  • "email_recipients": "string",
  • "email_from_address": "string",
  • "email_subject_template": "string",
  • "jira_base_url": "string",
  • "jira_auth_email": "string",
  • "jira_api_token_set": true,
  • "jira_project_key": "string",
  • "jira_issue_type": "string",
  • "linear_api_key_set": true,
  • "linear_team_id": "string",
  • "linear_state_id": "string",
  • "linear_label_ids": "string",
  • "is_local": false,
  • "delivery_count": 0,
  • "incident_count": 0,
  • "rules": [
    ],
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Update Alert Destination

path Parameters
slug
required
string (Slug)
destination_id
required
string <uuid> (Destination Id)
Request Body schema: application/json
required
Name (string) or Name (null) (Name)
Enabled (boolean) or Enabled (null) (Enabled)
Webhook Url (string) or Webhook Url (null) (Webhook Url)
Bot Token (string) or Bot Token (null) (Bot Token)
Chat Id (string) or Chat Id (null) (Chat Id)
Target Url (string) or Target Url (null) (Target Url)
Webhook Header Name (string) or Webhook Header Name (null) (Webhook Header Name)
Webhook Header Value (string) or Webhook Header Value (null) (Webhook Header Value)
Email Recipients (string) or Email Recipients (null) (Email Recipients)
Email From Address (string) or Email From Address (null) (Email From Address)
Email Subject Template (string) or Email Subject Template (null) (Email Subject Template)
Jira Base Url (string) or Jira Base Url (null) (Jira Base Url)
Jira Auth Email (string) or Jira Auth Email (null) (Jira Auth Email)
Jira Api Token (string) or Jira Api Token (null) (Jira Api Token)
Jira Project Key (string) or Jira Project Key (null) (Jira Project Key)
Jira Issue Type (string) or Jira Issue Type (null) (Jira Issue Type)
Linear Api Key (string) or Linear Api Key (null) (Linear Api Key)
Linear Team Id (string) or Linear Team Id (null) (Linear Team Id)
Linear State Id (string) or Linear State Id (null) (Linear State Id)
Linear Label Ids (string) or Linear Label Ids (null) (Linear Label Ids)

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "enabled": true,
  • "webhook_url": "string",
  • "bot_token": "string",
  • "chat_id": "string",
  • "target_url": "string",
  • "webhook_header_name": "string",
  • "webhook_header_value": "string",
  • "email_recipients": "string",
  • "email_from_address": "string",
  • "email_subject_template": "string",
  • "jira_base_url": "string",
  • "jira_auth_email": "string",
  • "jira_api_token": "string",
  • "jira_project_key": "string",
  • "jira_issue_type": "string",
  • "linear_api_key": "string",
  • "linear_team_id": "string",
  • "linear_state_id": "string",
  • "linear_label_ids": "string"
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
  • "type": "slack",
  • "name": "string",
  • "enabled": true,
  • "webhook_set": true,
  • "bot_token_set": true,
  • "chat_id": "string",
  • "target_url_set": true,
  • "webhook_header_name": "string",
  • "email_recipients": "string",
  • "email_from_address": "string",
  • "email_subject_template": "string",
  • "jira_base_url": "string",
  • "jira_auth_email": "string",
  • "jira_api_token_set": true,
  • "jira_project_key": "string",
  • "jira_issue_type": "string",
  • "linear_api_key_set": true,
  • "linear_team_id": "string",
  • "linear_state_id": "string",
  • "linear_label_ids": "string",
  • "is_local": false,
  • "delivery_count": 0,
  • "incident_count": 0,
  • "rules": [
    ],
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Delete Alert Destination

path Parameters
slug
required
string (Slug)
destination_id
required
string <uuid> (Destination Id)

Responses

Response samples

Content type
application/json
{
  • "detail": [
    ]
}

Test Alert Destination

Send one fixed test message through this destination's real channel.

Editor-only: it puts a message in somebody's Slack/Telegram/inbox and, for a tracker destination, opens a ticket. Always 200 — a channel refusal is the answer the caller asked for, not a server fault (see AlertDestinationTestResponse).

Recorded in the audit log rather than as an AlertDelivery, so the Delivery log keeps meaning "an alert fired"; see services/_alerting_test_send.

path Parameters
slug
required
string (Slug)
destination_id
required
string <uuid> (Destination Id)

Responses

Response samples

Content type
application/json
{
  • "ok": true,
  • "error": "string",
  • "sent_at": "2019-08-24T14:15:22Z"
}

Create Alert Rule

path Parameters
slug
required
string (Slug)
destination_id
required
string <uuid> (Destination Id)
Request Body schema: application/json
required
name
required
string (Name)
enabled
boolean (Enabled)
Default: true
Scan Config Id (string) or Scan Config Id (null) (Scan Config Id)
include_project_total
boolean (Include Project Total)
Default: true
include_event_types
boolean (Include Event Types)
Default: true
include_events
boolean (Include Events)
Default: true
include_schema_drifts
boolean (Include Schema Drifts)
Default: false
include_distribution_drifts
boolean (Include Distribution Drifts)
Default: false
include_variable_value_drifts
boolean (Include Variable Value Drifts)
Default: false
include_release_regressions
boolean (Include Release Regressions)
Default: false
include_metrics
boolean (Include Metrics)
Default: false
notify_on_spike
boolean (Notify On Spike)
Default: true
notify_on_drop
boolean (Notify On Drop)
Default: true
ai_explanation_enabled
boolean (Ai Explanation Enabled)
Default: false
min_percent_delta
number (Min Percent Delta) >= 0
Default: 100
min_absolute_delta
number (Min Absolute Delta) >= 0
Default: 0
min_expected_count
number (Min Expected Count) >= 0
Default: 0
cooldown_minutes
integer (Cooldown Minutes) >= 1
Default: 1440
Message Template (string) or Message Template (null) (Message Template)
Items Template (string) or Items Template (null) (Items Template)
message_format
string (AlertMessageFormat)
Default: "plain"
Enum: "plain" "slack_mrkdwn" "telegram_html" "telegram_markdownv2"
Array of objects (Filters)

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "enabled": true,
  • "scan_config_id": "73831784-3bab-4614-8856-92f95dec4914",
  • "include_project_total": true,
  • "include_event_types": true,
  • "include_events": true,
  • "include_schema_drifts": false,
  • "include_distribution_drifts": false,
  • "include_variable_value_drifts": false,
  • "include_release_regressions": false,
  • "include_metrics": false,
  • "notify_on_spike": true,
  • "notify_on_drop": true,
  • "ai_explanation_enabled": false,
  • "min_percent_delta": 100,
  • "min_absolute_delta": 0,
  • "min_expected_count": 0,
  • "cooldown_minutes": 1440,
  • "message_template": "string",
  • "items_template": "string",
  • "message_format": "plain",
  • "filters": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "destination_id": "f73cdd0c-5b5d-4102-9dde-c2ec04ceba9e",
  • "scan_config_id": "73831784-3bab-4614-8856-92f95dec4914",
  • "name": "string",
  • "enabled": true,
  • "include_project_total": true,
  • "include_event_types": true,
  • "include_events": true,
  • "include_schema_drifts": true,
  • "include_distribution_drifts": true,
  • "include_variable_value_drifts": true,
  • "include_release_regressions": true,
  • "include_metrics": true,
  • "notify_on_spike": true,
  • "notify_on_drop": true,
  • "ai_explanation_enabled": true,
  • "min_percent_delta": 0,
  • "min_absolute_delta": 0,
  • "min_expected_count": 0,
  • "cooldown_minutes": 0,
  • "message_template": "string",
  • "items_template": "string",
  • "message_format": "plain",
  • "filters": [
    ],
  • "muted": true,
  • "muted_until": "2019-08-24T14:15:22Z",
  • "total_deliveries": 0,
  • "last_delivery_at": "2019-08-24T14:15:22Z",
  • "last_delivery_status": "pending",
  • "incident_count": 0,
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Update Alert Rule

path Parameters
slug
required
string (Slug)
destination_id
required
string <uuid> (Destination Id)
rule_id
required
string <uuid> (Rule Id)
Request Body schema: application/json
required
Name (string) or Name (null) (Name)
Enabled (boolean) or Enabled (null) (Enabled)
Scan Config Id (string) or Scan Config Id (null) (Scan Config Id)
Include Project Total (boolean) or Include Project Total (null) (Include Project Total)
Include Event Types (boolean) or Include Event Types (null) (Include Event Types)
Include Events (boolean) or Include Events (null) (Include Events)
Include Schema Drifts (boolean) or Include Schema Drifts (null) (Include Schema Drifts)
Include Distribution Drifts (boolean) or Include Distribution Drifts (null) (Include Distribution Drifts)
Include Variable Value Drifts (boolean) or Include Variable Value Drifts (null) (Include Variable Value Drifts)
Include Release Regressions (boolean) or Include Release Regressions (null) (Include Release Regressions)
Include Metrics (boolean) or Include Metrics (null) (Include Metrics)
Notify On Spike (boolean) or Notify On Spike (null) (Notify On Spike)
Notify On Drop (boolean) or Notify On Drop (null) (Notify On Drop)
Ai Explanation Enabled (boolean) or Ai Explanation Enabled (null) (Ai Explanation Enabled)
Min Percent Delta (number) or Min Percent Delta (null) (Min Percent Delta)
Min Absolute Delta (number) or Min Absolute Delta (null) (Min Absolute Delta)
Min Expected Count (number) or Min Expected Count (null) (Min Expected Count)
Cooldown Minutes (integer) or Cooldown Minutes (null) (Cooldown Minutes)
Message Template (string) or Message Template (null) (Message Template)
Items Template (string) or Items Template (null) (Items Template)
AlertMessageFormat (string) or null
Array of Filters (objects) or Filters (null) (Filters)

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "enabled": true,
  • "scan_config_id": "73831784-3bab-4614-8856-92f95dec4914",
  • "include_project_total": true,
  • "include_event_types": true,
  • "include_events": true,
  • "include_schema_drifts": true,
  • "include_distribution_drifts": true,
  • "include_variable_value_drifts": true,
  • "include_release_regressions": true,
  • "include_metrics": true,
  • "notify_on_spike": true,
  • "notify_on_drop": true,
  • "ai_explanation_enabled": true,
  • "min_percent_delta": 0,
  • "min_absolute_delta": 0,
  • "min_expected_count": 0,
  • "cooldown_minutes": 1,
  • "message_template": "string",
  • "items_template": "string",
  • "message_format": "plain",
  • "filters": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "destination_id": "f73cdd0c-5b5d-4102-9dde-c2ec04ceba9e",
  • "scan_config_id": "73831784-3bab-4614-8856-92f95dec4914",
  • "name": "string",
  • "enabled": true,
  • "include_project_total": true,
  • "include_event_types": true,
  • "include_events": true,
  • "include_schema_drifts": true,
  • "include_distribution_drifts": true,
  • "include_variable_value_drifts": true,
  • "include_release_regressions": true,
  • "include_metrics": true,
  • "notify_on_spike": true,
  • "notify_on_drop": true,
  • "ai_explanation_enabled": true,
  • "min_percent_delta": 0,
  • "min_absolute_delta": 0,
  • "min_expected_count": 0,
  • "cooldown_minutes": 0,
  • "message_template": "string",
  • "items_template": "string",
  • "message_format": "plain",
  • "filters": [
    ],
  • "muted": true,
  • "muted_until": "2019-08-24T14:15:22Z",
  • "total_deliveries": 0,
  • "last_delivery_at": "2019-08-24T14:15:22Z",
  • "last_delivery_status": "pending",
  • "incident_count": 0,
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Delete Alert Rule

path Parameters
slug
required
string (Slug)
destination_id
required
string <uuid> (Destination Id)
rule_id
required
string <uuid> (Rule Id)

Responses

Response samples

Content type
application/json
{
  • "detail": [
    ]
}

Simulate Alert Rule

path Parameters
slug
required
string (Slug)
destination_id
required
string <uuid> (Destination Id)
rule_id
required
string <uuid> (Rule Id)
query Parameters
days
integer (Days) [ 1 .. 90 ]
Default: 7
Cooldown Minutes Override (integer) or Cooldown Minutes Override (null) (Cooldown Minutes Override)
Min Percent Delta Override (number) or Min Percent Delta Override (null) (Min Percent Delta Override)
Min Expected Count Override (number) or Min Expected Count Override (null) (Min Expected Count Override)
Sigma Threshold Override (number) or Sigma Threshold Override (null) (Sigma Threshold Override)

Responses

Response samples

Content type
application/json
{
  • "rule_id": "728c1541-d6d1-4290-9a53-cdf01dd32d60",
  • "rule_name": "string",
  • "days": 0,
  • "window_from": "2019-08-24T14:15:22Z",
  • "window_to": "2019-08-24T14:15:22Z",
  • "anomalies_considered": 0,
  • "matched_before_cooldown": 0,
  • "firings": [
    ],
  • "noisy": true,
  • "cooldown_minutes_used": 0,
  • "cooldown_minutes_saved": 0,
  • "min_percent_delta_used": 0,
  • "min_percent_delta_saved": 0,
  • "min_expected_count_used": 0,
  • "min_expected_count_saved": 0,
  • "sigma_threshold_used": 0,
  • "sigma_threshold_saved": 0,
  • "rendered_message": "string"
}

List Alert Deliveries

path Parameters
slug
required
string (Slug)
query Parameters
AlertDeliveryStatus (string) or Status (null) (Status)
AlertDestinationType (string) or Channel (null) (Channel)
Destination Id (string) or Destination Id (null) (Destination Id)
Rule Id (string) or Rule Id (null) (Rule Id)
Scan Config Id (string) or Scan Config Id (null) (Scan Config Id)
Correlation Group Id (string) or Correlation Group Id (null) (Correlation Group Id)
ungrouped
boolean (Ungrouped)
Default: false
Date From (string) or Date From (null) (Date From)
Date To (string) or Date To (null) (Date To)
offset
integer (Offset) >= 0
Default: 0
limit
integer (Limit) [ 1 .. 200 ]
Default: 50

Responses

Response samples

Content type
application/json
{
  • "items": [
    ],
  • "total": 0
}

Get Alert Delivery

path Parameters
slug
required
string (Slug)
delivery_id
required
string <uuid> (Delivery Id)

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
  • "scan_config_id": "73831784-3bab-4614-8856-92f95dec4914",
  • "scan_job_id": "9221fb1e-ebca-47f1-a680-9436e6250294",
  • "destination_id": "f73cdd0c-5b5d-4102-9dde-c2ec04ceba9e",
  • "rule_id": "728c1541-d6d1-4290-9a53-cdf01dd32d60",
  • "destination_name": "string",
  • "rule_name": "string",
  • "scan_name": "string",
  • "status": "pending",
  • "channel": "slack",
  • "matched_count": 0,
  • "payload_snapshot": { },
  • "error_message": "string",
  • "is_local": false,
  • "is_simulated": false,
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "sent_at": "2019-08-24T14:15:22Z",
  • "items": [
    ]
}

Retry Alert Delivery

path Parameters
slug
required
string (Slug)
delivery_id
required
string <uuid> (Delivery Id)

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
  • "scan_config_id": "73831784-3bab-4614-8856-92f95dec4914",
  • "scan_job_id": "9221fb1e-ebca-47f1-a680-9436e6250294",
  • "destination_id": "f73cdd0c-5b5d-4102-9dde-c2ec04ceba9e",
  • "rule_id": "728c1541-d6d1-4290-9a53-cdf01dd32d60",
  • "destination_name": "string",
  • "rule_name": "string",
  • "scan_name": "string",
  • "status": "pending",
  • "channel": "slack",
  • "matched_count": 0,
  • "payload_snapshot": { },
  • "error_message": "string",
  • "is_local": false,
  • "is_simulated": false,
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "sent_at": "2019-08-24T14:15:22Z",
  • "items": [
    ]
}

Get Monitor

path Parameters
slug
required
string (Slug)
rule_id
required
string <uuid> (Rule Id)

Responses

Response samples

Content type
application/json
{
  • "rule_id": "728c1541-d6d1-4290-9a53-cdf01dd32d60",
  • "rule_name": "string",
  • "destination_id": "f73cdd0c-5b5d-4102-9dde-c2ec04ceba9e",
  • "destination_name": "string",
  • "destination_type": "string",
  • "enabled": true,
  • "status": "firing",
  • "active_scope_count": 0,
  • "firing_scope_count": 0,
  • "last_anomaly_at": "2019-08-24T14:15:22Z",
  • "last_notified_at": "2019-08-24T14:15:22Z",
  • "notify_on_spike": true,
  • "notify_on_drop": true,
  • "min_percent_delta": 0,
  • "min_expected_count": 0,
  • "cooldown_minutes": 0,
  • "muted": true,
  • "muted_until": "2019-08-24T14:15:22Z",
  • "rule_enabled": true,
  • "destination_enabled": true,
  • "scan_config_id": "73831784-3bab-4614-8856-92f95dec4914",
  • "scan_name": "string",
  • "include_project_total": true,
  • "include_event_types": true,
  • "include_events": true,
  • "include_schema_drifts": true,
  • "include_distribution_drifts": true,
  • "include_variable_value_drifts": true,
  • "include_release_regressions": true,
  • "include_metrics": true,
  • "total_deliveries": 0,
  • "last_delivery_at": "2019-08-24T14:15:22Z",
  • "last_delivery_status": "pending",
  • "scope_readiness": {
    }
}

Mute Monitor

path Parameters
slug
required
string (Slug)
rule_id
required
string <uuid> (Rule Id)
Request Body schema: application/json
required
muted_until
required
string <date-time> (Muted Until)

Responses

Request samples

Content type
application/json
{
  • "muted_until": "2019-08-24T14:15:22Z"
}

Response samples

Content type
application/json
{
  • "rule_id": "728c1541-d6d1-4290-9a53-cdf01dd32d60",
  • "rule_name": "string",
  • "destination_id": "f73cdd0c-5b5d-4102-9dde-c2ec04ceba9e",
  • "destination_name": "string",
  • "destination_type": "string",
  • "enabled": true,
  • "status": "firing",
  • "active_scope_count": 0,
  • "firing_scope_count": 0,
  • "last_anomaly_at": "2019-08-24T14:15:22Z",
  • "last_notified_at": "2019-08-24T14:15:22Z",
  • "notify_on_spike": true,
  • "notify_on_drop": true,
  • "min_percent_delta": 0,
  • "min_expected_count": 0,
  • "cooldown_minutes": 0,
  • "muted": true,
  • "muted_until": "2019-08-24T14:15:22Z",
  • "rule_enabled": true,
  • "destination_enabled": true,
  • "scan_config_id": "73831784-3bab-4614-8856-92f95dec4914",
  • "scan_name": "string",
  • "include_project_total": true,
  • "include_event_types": true,
  • "include_events": true,
  • "include_schema_drifts": true,
  • "include_distribution_drifts": true,
  • "include_variable_value_drifts": true,
  • "include_release_regressions": true,
  • "include_metrics": true,
  • "total_deliveries": 0,
  • "last_delivery_at": "2019-08-24T14:15:22Z",
  • "last_delivery_status": "pending",
  • "scope_readiness": {
    }
}

Unmute Monitor

path Parameters
slug
required
string (Slug)
rule_id
required
string <uuid> (Rule Id)

Responses

Response samples

Content type
application/json
{
  • "rule_id": "728c1541-d6d1-4290-9a53-cdf01dd32d60",
  • "rule_name": "string",
  • "destination_id": "f73cdd0c-5b5d-4102-9dde-c2ec04ceba9e",
  • "destination_name": "string",
  • "destination_type": "string",
  • "enabled": true,
  • "status": "firing",
  • "active_scope_count": 0,
  • "firing_scope_count": 0,
  • "last_anomaly_at": "2019-08-24T14:15:22Z",
  • "last_notified_at": "2019-08-24T14:15:22Z",
  • "notify_on_spike": true,
  • "notify_on_drop": true,
  • "min_percent_delta": 0,
  • "min_expected_count": 0,
  • "cooldown_minutes": 0,
  • "muted": true,
  • "muted_until": "2019-08-24T14:15:22Z",
  • "rule_enabled": true,
  • "destination_enabled": true,
  • "scan_config_id": "73831784-3bab-4614-8856-92f95dec4914",
  • "scan_name": "string",
  • "include_project_total": true,
  • "include_event_types": true,
  • "include_events": true,
  • "include_schema_drifts": true,
  • "include_distribution_drifts": true,
  • "include_variable_value_drifts": true,
  • "include_release_regressions": true,
  • "include_metrics": true,
  • "total_deliveries": 0,
  • "last_delivery_at": "2019-08-24T14:15:22Z",
  • "last_delivery_status": "pending",
  • "scope_readiness": {
    }
}

List Alert Inbox

path Parameters
slug
required
string (Slug)
query Parameters
AlertInboxStatus (string) or Status (null) (Status)
offset
integer (Offset) >= 0
Default: 0
limit
integer (Limit) [ 1 .. 200 ]
Default: 50

Responses

Response samples

Content type
application/json
{
  • "items": [
    ],
  • "total": 0,
  • "window_truncated_at": "2019-08-24T14:15:22Z"
}

Apply Alert Inbox Bulk Action

Apply one triage decision to a selection of incidents (tripl-gpfr).

A shortcut for N clicks on the sibling single-incident route, not a new kind of object: the decision is copied into each incident's own state. The service validates every id before mutating anything and commits once, so this either applies to the whole selection or to none of it.

path Parameters
slug
required
string (Slug)
Request Body schema: application/json
required
correlation_group_ids
required
Array of strings <uuid> (Correlation Group Ids) [ 1 .. 200 ] items [ items <uuid > ]
action
required
string (Action)
Enum: "acknowledge" "resolve" "mute" "reopen" "false_positive" "note"
Note (string) or Note (null) (Note)
Muted Until (string) or Muted Until (null) (Muted Until)

Responses

Request samples

Content type
application/json
{
  • "correlation_group_ids": [
    ],
  • "action": "acknowledge",
  • "note": "string",
  • "muted_until": "2019-08-24T14:15:22Z"
}

Response samples

Content type
application/json
{
  • "groups": [
    ],
  • "batch_id": "4da22c97-b7d5-4e31-8c3a-03870ebc7b20",
  • "overrides_written": 0
}

Get Alert Inbox Group

Resolve one incident by id, ignoring the list's lookback window.

Alert messages deep-link the incident they describe, and the reader opens them late; before this route the link landed on a page of 20 unrelated incidents with no explanation (tripl-oxkt.7).

path Parameters
slug
required
string (Slug)
correlation_group_id
required
string <uuid> (Correlation Group Id)

Responses

Response samples

Content type
application/json
{
  • "correlation_group_id": "b19a17a6-148a-445e-8ea5-cdb43c47c564",
  • "status": "open",
  • "muted": true,
  • "muted_until": "2019-08-24T14:15:22Z",
  • "note": "string",
  • "false_positive_count": 0,
  • "item_count": 0,
  • "delivery_count": 0,
  • "latest_bucket": "2019-08-24T14:15:22Z",
  • "latest_delivery_at": "2019-08-24T14:15:22Z",
  • "first_delivery_at": "2019-08-24T14:15:22Z",
  • "direction": "spike",
  • "actual_count": 0,
  • "expected_count": 0,
  • "percent_delta": 0,
  • "max_abs_percent_delta": 0,
  • "scope_type": "project_total",
  • "scope_ref": "string",
  • "event_id": "a7a26ff2-e851-45b6-9634-d595f45458b7",
  • "scope_types": [
    ],
  • "scope_names": [
    ],
  • "destination_names": [
    ],
  • "rule_names": [
    ],
  • "rules": [
    ],
  • "scan_names": [
    ],
  • "acted_at": "2019-08-24T14:15:22Z",
  • "acted_by": "50e8e0b1-ff34-4096-b99a-166ff9492477",
  • "acted_by_name": "string"
}

Apply Alert Inbox Action

path Parameters
slug
required
string (Slug)
correlation_group_id
required
string <uuid> (Correlation Group Id)
Request Body schema: application/json
required
action
required
string (Action)
Enum: "acknowledge" "resolve" "mute" "reopen" "false_positive" "note"
Note (string) or Note (null) (Note)
Muted Until (string) or Muted Until (null) (Muted Until)

Responses

Request samples

Content type
application/json
{
  • "action": "acknowledge",
  • "note": "string",
  • "muted_until": "2019-08-24T14:15:22Z"
}

Response samples

Content type
application/json
{
  • "group": {
    },
  • "overrides_written": 0
}

data-sources

Warehouse/data-source connections and secrets.

List Data Sources

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create Data Source

Request Body schema: application/json
required
name
required
string (Name) [ 1 .. 255 ] characters
db_type
required
string (DBType)
Enum: "clickhouse" "postgres" "bigquery" "synthetic"
host
required
string (Host) [ 1 .. 500 ] characters
port
integer (Port) [ 1 .. 65535 ]
Default: 8123
database_name
required
string (Database Name) [ 1 .. 255 ] characters
username
string (Username)
Default: ""
password
string (Password)
Default: ""
Timeout Seconds (integer) or Timeout Seconds (null) (Timeout Seconds)
Json Path Discovery (string) or Json Path Discovery (null) (Json Path Discovery)
ClickHouseSettings (object) or PostgresSettings (object) or BigQuerySettings (object) or SyntheticSettings (object) or Connection Settings (null) (Connection Settings)

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "db_type": "clickhouse",
  • "host": "string",
  • "port": 8123,
  • "database_name": "string",
  • "username": "",
  • "password": "",
  • "timeout_seconds": 1,
  • "json_path_discovery": "all",
  • "connection_settings": { }
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
  • "name": "string",
  • "db_type": "clickhouse",
  • "is_synthetic": true,
  • "host": "string",
  • "port": 0,
  • "database_name": "string",
  • "username": "string",
  • "password_set": true,
  • "timeout_seconds": 0,
  • "json_path_discovery": "all",
  • "connection_settings": {
    },
  • "last_test_at": "2019-08-24T14:15:22Z",
  • "last_test_status": "success",
  • "last_test_message": "string",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Get Data Source

path Parameters
ds_id
required
string <uuid> (Ds Id)

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
  • "name": "string",
  • "db_type": "clickhouse",
  • "is_synthetic": true,
  • "host": "string",
  • "port": 0,
  • "database_name": "string",
  • "username": "string",
  • "password_set": true,
  • "timeout_seconds": 0,
  • "json_path_discovery": "all",
  • "connection_settings": {
    },
  • "last_test_at": "2019-08-24T14:15:22Z",
  • "last_test_status": "success",
  • "last_test_message": "string",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Update Data Source

path Parameters
ds_id
required
string <uuid> (Ds Id)
Request Body schema: application/json
required
Name (string) or Name (null) (Name)
DBType (string) or null
Host (string) or Host (null) (Host)
Port (integer) or Port (null) (Port)
Database Name (string) or Database Name (null) (Database Name)
Username (string) or Username (null) (Username)
Password (string) or Password (null) (Password)
Timeout Seconds (integer) or Timeout Seconds (null) (Timeout Seconds)
Json Path Discovery (string) or Json Path Discovery (null) (Json Path Discovery)
ClickHouseSettings (object) or PostgresSettings (object) or BigQuerySettings (object) or SyntheticSettings (object) or Connection Settings (null) (Connection Settings)

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "db_type": "clickhouse",
  • "host": "string",
  • "port": 1,
  • "database_name": "string",
  • "username": "string",
  • "password": "string",
  • "timeout_seconds": 1,
  • "json_path_discovery": "all",
  • "connection_settings": { }
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
  • "name": "string",
  • "db_type": "clickhouse",
  • "is_synthetic": true,
  • "host": "string",
  • "port": 0,
  • "database_name": "string",
  • "username": "string",
  • "password_set": true,
  • "timeout_seconds": 0,
  • "json_path_discovery": "all",
  • "connection_settings": {
    },
  • "last_test_at": "2019-08-24T14:15:22Z",
  • "last_test_status": "success",
  • "last_test_message": "string",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Delete Data Source

path Parameters
ds_id
required
string <uuid> (Ds Id)

Responses

Response samples

Content type
application/json
{
  • "detail": [
    ]
}

Get Data Source Stats

path Parameters
ds_id
required
string <uuid> (Ds Id)
query Parameters
window_hours
integer (Window Hours) [ 1 .. 720 ]
Default: 48

Responses

Response samples

Content type
application/json
{
  • "events_tracked": 0,
  • "volume_window": 0,
  • "window_hours": 0,
  • "throughput": [
    ]
}

Get Data Source Schema

path Parameters
ds_id
required
string <uuid> (Ds Id)

Responses

Response samples

Content type
application/json
{
  • "tables": [
    ]
}

Test Data Source Connection

path Parameters
ds_id
required
string <uuid> (Ds Id)

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "string",
  • "tested_at": "2019-08-24T14:15:22Z",
  • "data_source": {
    }
}

event-photos

Photo attachments for events.

List Event Photos

path Parameters
slug
required
string (Slug)
event_id
required
string <uuid> (Event Id)

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Upload Event Photo

path Parameters
slug
required
string (Slug)
event_id
required
string <uuid> (Event Id)
Request Body schema: multipart/form-data
required
file
required
string <application/octet-stream> (File)

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "event_id": "a7a26ff2-e851-45b6-9634-d595f45458b7",
  • "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
  • "kind": "photo",
  • "original_filename": "string",
  • "content_type": "string",
  • "size_bytes": 0,
  • "storage_backend": "local",
  • "sort_order": 0,
  • "url": "string",
  • "external_url": "string",
  • "uploaded_by_user_id": "9fdcaa70-9955-45b2-9821-39697e7541f8",
  • "created_at": "2019-08-24T14:15:22Z"
}

Reorder Event Photos

path Parameters
slug
required
string (Slug)
event_id
required
string <uuid> (Event Id)
Request Body schema: application/json
required
photo_ids
required
Array of strings <uuid> (Photo Ids) [ items <uuid > ]

Responses

Request samples

Content type
application/json
{
  • "photo_ids": [
    ]
}

Response samples

Content type
application/json
[
  • {
    }
]

Delete Event Photo

path Parameters
slug
required
string (Slug)
event_id
required
string <uuid> (Event Id)
photo_id
required
string <uuid> (Photo Id)

Responses

Response samples

Content type
application/json
{
  • "detail": [
    ]
}

Download Event Photo

Stream the photo bytes through the API.

Used for the local backend (where blobs aren't web-reachable) and as a fallback if GCS URL generation ever fails. GCS-backed photos normally redirect to a signed URL on the list response, so this endpoint is rarely hit in production.

path Parameters
slug
required
string (Slug)
event_id
required
string <uuid> (Event Id)
photo_id
required
string <uuid> (Photo Id)

Responses

Response samples

Content type
application/json
null

Attach Figma Spec

path Parameters
slug
required
string (Slug)
event_id
required
string <uuid> (Event Id)
Request Body schema: application/json
required
url
required
string (Url) [ 1 .. 2000 ] characters
title
string (Title) <= 500 characters
Default: ""

Responses

Request samples

Content type
application/json
{
  • "url": "string",
  • "title": ""
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "event_id": "a7a26ff2-e851-45b6-9634-d595f45458b7",
  • "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
  • "kind": "photo",
  • "original_filename": "string",
  • "content_type": "string",
  • "size_bytes": 0,
  • "storage_backend": "local",
  • "sort_order": 0,
  • "url": "string",
  • "external_url": "string",
  • "uploaded_by_user_id": "9fdcaa70-9955-45b2-9821-39697e7541f8",
  • "created_at": "2019-08-24T14:15:22Z"
}

List Photo Comments

path Parameters
slug
required
string (Slug)
event_id
required
string <uuid> (Event Id)
photo_id
required
string <uuid> (Photo Id)

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create Photo Comment

path Parameters
slug
required
string (Slug)
event_id
required
string <uuid> (Event Id)
photo_id
required
string <uuid> (Photo Id)
Request Body schema: application/json
required
body
required
string (Body) [ 1 .. 4000 ] characters
Parent Id (string) or Parent Id (null) (Parent Id)

Responses

Request samples

Content type
application/json
{
  • "body": "string",
  • "parent_id": "1c6ca187-e61f-4301-8dcb-0e9749e89eef"
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "photo_id": "50c42bd2-615e-4fec-a325-0e5c4d3d73d3",
  • "parent_id": "1c6ca187-e61f-4301-8dcb-0e9749e89eef",
  • "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5",
  • "body": "string",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Delete Photo Comment

path Parameters
slug
required
string (Slug)
event_id
required
string <uuid> (Event Id)
photo_id
required
string <uuid> (Photo Id)
comment_id
required
string <uuid> (Comment Id)

Responses

Response samples

Content type
application/json
{
  • "detail": [
    ]
}

search

Hybrid lexical/semantic search over plan content.

Search Project

path Parameters
slug
required
string (Slug)
query Parameters
q
required
string (Q) [ 1 .. 500 ] characters
Array of Types (strings) or Types (null) (Types)
include_archived
boolean (Include Archived)
Default: false
limit
integer (Limit) [ 1 .. 100 ]
Default: 20
Branch (string) or Branch (null) (Branch)

Plan branch id (UUID) to read and write instead of the main branch.

Responses

Response samples

Content type
application/json
{
  • "items": [
    ],
  • "total": 0,
  • "truncated": false,
  • "semantic_used": false
}

Reindex Project Search

path Parameters
slug
required
string (Slug)
query Parameters
Branch (string) or Branch (null) (Branch)

Plan branch id (UUID) to read and write instead of the main branch.

Responses

Response samples

Content type
application/json
{
  • "documents_indexed": 0,
  • "embeddings_scheduled": false
}

ai

AI-assisted descriptions and Q&A.

Ai Status

path Parameters
slug
required
string (Slug)

Responses

Response samples

Content type
application/json
{
  • "enabled": true
}

Describe Event

path Parameters
slug
required
string (Slug)
query Parameters
Branch (string) or Branch (null) (Branch)

Plan branch id (UUID) to read and write instead of the main branch.

Request Body schema: application/json
required
event_id
required
string <uuid> (Event Id)

Responses

Request samples

Content type
application/json
{
  • "event_id": "a7a26ff2-e851-45b6-9634-d595f45458b7"
}

Response samples

Content type
application/json
{
  • "description": "string",
  • "field_suggestions": [
    ]
}

Describe Event Type

path Parameters
slug
required
string (Slug)
query Parameters
Branch (string) or Branch (null) (Branch)

Plan branch id (UUID) to read and write instead of the main branch.

Request Body schema: application/json
required
event_type_id
required
string <uuid> (Event Type Id)

Responses

Request samples

Content type
application/json
{
  • "event_type_id": "a4ec4c3c-a3de-4a8a-983f-1791e72cea83"
}

Response samples

Content type
application/json
{
  • "description": "string",
  • "field_suggestions": [
    ]
}

Ask Plan

path Parameters
slug
required
string (Slug)
query Parameters
Branch (string) or Branch (null) (Branch)

Plan branch id (UUID) to read and write instead of the main branch.

Request Body schema: application/json
required
question
required
string (Question) [ 3 .. 500 ] characters

Responses

Request samples

Content type
application/json
{
  • "question": "string"
}

Response samples

Content type
application/json
{
  • "answer": "string",
  • "sources": [
    ],
  • "semantic_used": true
}

activity

Recent activity feed.

List Workspace Activity

query Parameters
limit
integer (Limit) [ 1 .. 100 ]
Default: 20

Responses

Response samples

Content type
application/json
[
  • {
    }
]

List Project Activity

path Parameters
slug
required
string (Slug)
query Parameters
limit
integer (Limit) [ 1 .. 100 ]
Default: 20

Responses

Response samples

Content type
application/json
[
  • {
    }
]

audit

Audit log of mutating actions.

List Audit

query Parameters
Project Slug (string) or Project Slug (null) (Project Slug)
Action (string) or Action (null) (Action)
User Id (string) or User Id (null) (User Id)
User Email (string) or User Email (null) (User Email)
Since (string) or Since (null) (Since)
Until (string) or Until (null) (Until)
limit
integer (Limit) [ 1 .. 200 ]
Default: 50
offset
integer (Offset) >= 0
Default: 0

Responses

Response samples

Content type
application/json
{
  • "items": [
    ],
  • "total": 0
}

Get Audit Entry

path Parameters
entry_id
required
string <uuid> (Entry Id)

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "created_at": "2019-08-24T14:15:22Z",
  • "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5",
  • "user_email": "string",
  • "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
  • "project_slug": "string",
  • "branch_id": "7a4e8e99-89f2-4a0f-b66c-fc595dda2dbc",
  • "branch_name": "string",
  • "action": "string",
  • "target_type": "string",
  • "target_id": "d3bcdc92-4191-401b-ad0c-42056c6efab9",
  • "target_name": "string",
  • "payload": { }
}

api-keys

Personal API keys for programmatic access.

List Api Keys

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create Api Key

Request Body schema: application/json
required
name
required
string (Name) [ 1 .. 100 ] characters
scope
string (ApiKeyScope)
Default: "read"
Enum: "read" "write"
Expires In Days (integer) or Expires In Days (null) (Expires In Days)
Project Slug (string) or Project Slug (null) (Project Slug)

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "scope": "read",
  • "expires_in_days": 1,
  • "project_slug": "string"
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "name": "string",
  • "key_prefix": "string",
  • "scope": "read",
  • "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
  • "expires_at": "2019-08-24T14:15:22Z",
  • "revoked_at": "2019-08-24T14:15:22Z",
  • "last_used_at": "2019-08-24T14:15:22Z",
  • "created_at": "2019-08-24T14:15:22Z",
  • "token": "string"
}

Revoke Api Key

path Parameters
key_id
required
string <uuid> (Key Id)

Responses

Response samples

Content type
application/json
{
  • "detail": [
    ]
}

settings

Instance-level application settings.

Get Service Settings

Responses

Response samples

Content type
application/json
{
  • "runtime": {
    },
  • "security": {
    },
  • "storage": {
    },
  • "observability": {
    },
  • "email": {
    },
  • "ai": {
    },
  • "system": {
    },
  • "overridden_fields": [
    ],
  • "sources": {
    }
}

Put Service Settings

Upsert service overrides. Intentionally identical to PATCH: unset fields are left untouched (partial update), not reset. Kept as a stable alias for clients that issue PUT; settings are a sparse override map with no full "replace all" semantics.

Request Body schema: application/json
required
RuntimeSettingsUpdate (object) or null
SecuritySettingsUpdate (object) or null
StorageSettingsUpdate (object) or null
ObservabilitySettingsUpdate (object) or null
EmailSettingsUpdate (object) or null
AiSettingsUpdate (object) or null

Responses

Request samples

Content type
application/json
{
  • "runtime": {
    },
  • "security": {
    },
  • "storage": {
    },
  • "observability": {
    },
  • "email": {
    },
  • "ai": {
    }
}

Response samples

Content type
application/json
{
  • "runtime": {
    },
  • "security": {
    },
  • "storage": {
    },
  • "observability": {
    },
  • "email": {
    },
  • "ai": {
    },
  • "system": {
    },
  • "overridden_fields": [
    ],
  • "sources": {
    }
}

Patch Service Settings

Request Body schema: application/json
required
RuntimeSettingsUpdate (object) or null
SecuritySettingsUpdate (object) or null
StorageSettingsUpdate (object) or null
ObservabilitySettingsUpdate (object) or null
EmailSettingsUpdate (object) or null
AiSettingsUpdate (object) or null

Responses

Request samples

Content type
application/json
{
  • "runtime": {
    },
  • "security": {
    },
  • "storage": {
    },
  • "observability": {
    },
  • "email": {
    },
  • "ai": {
    }
}

Response samples

Content type
application/json
{
  • "runtime": {
    },
  • "security": {
    },
  • "storage": {
    },
  • "observability": {
    },
  • "email": {
    },
  • "ai": {
    },
  • "system": {
    },
  • "overridden_fields": [
    ],
  • "sources": {
    }
}

Get Ai Settings

Responses

Response samples

Content type
application/json
{
  • "ai": {
    },
  • "overridden_fields": [
    ],
  • "sources": {
    }
}

Put Ai Settings

Upsert AI overrides (partial: only fields present in the request body are applied, via exclude_unset). PUT — not PATCH — because the frontend AI settings form calls this endpoint; semantics are upsert, not replace-all.

Request Body schema: application/json
required
Ai Enabled (boolean) or Ai Enabled (null) (Ai Enabled)
Ai Base Url (string) or Ai Base Url (null) (Ai Base Url)
Ai Model (string) or Ai Model (null) (Ai Model)
Ai Api Key (string) or Ai Api Key (null) (Ai Api Key)
Ai Timeout Seconds (integer) or Ai Timeout Seconds (null) (Ai Timeout Seconds)
Ai Max Output Tokens (integer) or Ai Max Output Tokens (null) (Ai Max Output Tokens)
Describe System Prompt (string) or Describe System Prompt (null) (Describe System Prompt)
Ask System Prompt (string) or Ask System Prompt (null) (Ask System Prompt)
Alert Explanation System Prompt (string) or Alert Explanation System Prompt (null) (Alert Explanation System Prompt)
Search Embeddings Enabled (boolean) or Search Embeddings Enabled (null) (Search Embeddings Enabled)
Search Embedding Provider (string) or Search Embedding Provider (null) (Search Embedding Provider)
Search Embedding Model (string) or Search Embedding Model (null) (Search Embedding Model)
Search Embedding Api Key (string) or Search Embedding Api Key (null) (Search Embedding Api Key)

Responses

Request samples

Content type
application/json
{
  • "ai_enabled": true,
  • "ai_base_url": "string",
  • "ai_model": "string",
  • "ai_api_key": "string",
  • "ai_timeout_seconds": 1,
  • "ai_max_output_tokens": 1,
  • "describe_system_prompt": "string",
  • "ask_system_prompt": "string",
  • "alert_explanation_system_prompt": "string",
  • "search_embeddings_enabled": true,
  • "search_embedding_provider": "string",
  • "search_embedding_model": "string",
  • "search_embedding_api_key": "string"
}

Response samples

Content type
application/json
{
  • "ai": {
    },
  • "overridden_fields": [
    ],
  • "sources": {
    }
}

Test Ai Settings

Request Body schema: application/json
required
prompt
string (Prompt) [ 1 .. 500 ] characters
Default: "Reply with the word ok if the LLM connection works."

Responses

Request samples

Content type
application/json
{
  • "prompt": "Reply with the word ok if the LLM connection works."
}

Response samples

Content type
application/json
{
  • "ok": true,
  • "message": "string"
}

branch-settings

Get Project Branch Settings

path Parameters
slug
required
string (Slug)

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
  • "min_approvals": 0,
  • "block_self_approval": true,
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Update Project Branch Settings

Owner-only: min_approvals/block_self_approval govern what editors may merge, so editors must not be able to loosen the policy on themselves.

path Parameters
slug
required
string (Slug)
Request Body schema: application/json
required
Min Approvals (integer) or Min Approvals (null) (Min Approvals)
Block Self Approval (boolean) or Block Self Approval (null) (Block Self Approval)

Responses

Request samples

Content type
application/json
{
  • "min_approvals": 100,
  • "block_self_approval": true
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
  • "min_approvals": 0,
  • "block_self_approval": true,
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

tracker-config

Get Project Tracker Config

path Parameters
slug
required
string (Slug)

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
  • "enabled": true,
  • "tracker_type": "string",
  • "base_url": "string",
  • "project_key": "string",
  • "auth_email": "string",
  • "issue_type": "string",
  • "api_token_set": true,
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Update Project Tracker Config

Owner-only: the tracker config stores an API token and drives outbound ticket creation, so editors must not be able to point it at their own Jira.

path Parameters
slug
required
string (Slug)
Request Body schema: application/json
required
Enabled (boolean) or Enabled (null) (Enabled)
Tracker Type (string) or Tracker Type (null) (Tracker Type)
Base Url (string) or Base Url (null) (Base Url)
Project Key (string) or Project Key (null) (Project Key)
Auth Email (string) or Auth Email (null) (Auth Email)
Api Token (string) or Api Token (null) (Api Token)
Issue Type (string) or Issue Type (null) (Issue Type)

Responses

Request samples

Content type
application/json
{
  • "enabled": true,
  • "tracker_type": "string",
  • "base_url": "string",
  • "project_key": "string",
  • "auth_email": "string",
  • "api_token": "string",
  • "issue_type": "string"
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
  • "enabled": true,
  • "tracker_type": "string",
  • "base_url": "string",
  • "project_key": "string",
  • "auth_email": "string",
  • "issue_type": "string",
  • "api_token_set": true,
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

metrics-catalog

List Metric Definitions

path Parameters
slug
required
string (Slug)
query Parameters
Array of Status (strings) or Status (null) (Status)
MetricKind (string) or Kind (null) (Kind)
Search (string) or Search (null) (Search)
offset
integer (Offset) >= 0
Default: 0
limit
integer (Limit) [ 1 .. 1000 ]
Default: 200

Responses

Response samples

Content type
application/json
{
  • "items": [
    ],
  • "total": 0,
  • "active_total": 0
}

Create Metric Definition

path Parameters
slug
required
string (Slug)
Request Body schema: application/json
required
kind
string (Kind)
Default: "fact"
Value: "fact"
composition
string (MetricComposition)
Default: "single"
Enum: "single" "ratio" "per_distinct_user"

How an event_composition or fact metric combines its series.

event_composition uses single / ratio / per_distinct_user; fact uses single (one operand) and ratio (numerator / denominator operands, each over a — possibly different — FactTable).

interval
required
string (ScanInterval)
Enum: "15m" "1h" "6h" "1d" "1w"
ScanInterval (string) or null
Fact Table Id (string) or Fact Table Id (null) (Fact Table Id)
MetricAggregation (string) or null
Measure Column (string) or Measure Column (null) (Measure Column)
Distinct Column (string) or Distinct Column (null) (Distinct Column)
Row Filter (string) or Row Filter (null) (Row Filter)
row_filters
Array of strings (Row Filters) <= 100 items
Filter Sql (string) or Filter Sql (null) (Filter Sql)
Array of objects (Conditions) <= 100 items
FactOperand (object) or null
FactOperand (object) or null
name
required
string (Name) [ 1 .. 255 ] characters
display_name
required
string (Display Name) [ 1 .. 255 ] characters
description
string (Description)
Default: ""
color
string (Color) ^#[0-9a-fA-F]{6}$
Default: "#6366f1"
order
integer (Order)
Default: 0
Unit (string) or Unit (null) (Unit)
status
string (MetricStatus)
Default: "draft"
Enum: "draft" "active" "archived"

Simple catalog lifecycle for metrics (no dev-implementation states).

Owner Id (string) or Owner Id (null) (Owner Id)
reviewed
boolean (Reviewed)
Default: false
breakdown_columns
Array of strings (Breakdown Columns)
Breakdown Values Limit (integer) or Breakdown Values Limit (null) (Breakdown Values Limit)
App Version Column (string) or App Version Column (null) (App Version Column)
Platform Column (string) or Platform Column (null) (Platform Column)
anomaly_detection_enabled
boolean (Anomaly Detection Enabled)
Default: true

Responses

Request samples

Content type
application/json
Example
{
  • "kind": "fact",
  • "composition": "single",
  • "interval": "15m",
  • "replay_chunk_interval": "15m",
  • "fact_table_id": "aa244fd0-16b6-42fe-82eb-98caad9349d4",
  • "aggregation": "count",
  • "measure_column": "string",
  • "distinct_column": "string",
  • "row_filter": "string",
  • "row_filters": [
    ],
  • "filter_sql": "string",
  • "conditions": [
    ],
  • "numerator": {
    },
  • "denominator": {
    },
  • "name": "string",
  • "display_name": "string",
  • "description": "",
  • "color": "#6366f1",
  • "order": 0,
  • "unit": "string",
  • "status": "draft",
  • "owner_id": "8826ee2e-7933-4665-aef2-2393f84a0d05",
  • "reviewed": false,
  • "breakdown_columns": [
    ],
  • "breakdown_values_limit": 1,
  • "app_version_column": "string",
  • "platform_column": "string",
  • "anomaly_detection_enabled": true
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
  • "name": "string",
  • "display_name": "string",
  • "description": "string",
  • "color": "string",
  • "order": 0,
  • "unit": "string",
  • "status": "draft",
  • "owner_id": "8826ee2e-7933-4665-aef2-2393f84a0d05",
  • "reviewed": true,
  • "kind": "sql",
  • "aggregation": "count",
  • "composition": "single",
  • "config": { },
  • "fact_table_id": "aa244fd0-16b6-42fe-82eb-98caad9349d4",
  • "breakdown_columns": [
    ],
  • "breakdown_values_limit": 0,
  • "app_version_column": "string",
  • "platform_column": "string",
  • "data_source_id": "0e1e9a56-7994-41e2-9003-96f8ebac19a2",
  • "interval": "15m",
  • "replay_chunk_interval": "15m",
  • "numerator_event_id": "b7e516c9-befe-4e7c-b6d4-948ebc2b6aa3",
  • "numerator_event_type_id": "2d62d44d-9e47-4eb8-b485-3f840a6cbc15",
  • "denominator_event_id": "8010165e-e206-4e23-86d0-aaabd41a5b8e",
  • "denominator_event_type_id": "f4aa7204-3b19-407f-87ef-aa32ff2312c7",
  • "anomaly_detection_enabled": true,
  • "last_collected_at": "2019-08-24T14:15:22Z",
  • "last_collection_status": "string",
  • "last_collection_error": "string",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Bulk Update Metric Definitions

path Parameters
slug
required
string (Slug)
Request Body schema: application/json
required
metric_ids
required
Array of strings <uuid> (Metric Ids) non-empty [ items <uuid > ]
MetricStatus (string) or null
Owner Id (string) or Owner Id (null) (Owner Id)
Reviewed (boolean) or Reviewed (null) (Reviewed)
Anomaly Detection Enabled (boolean) or Anomaly Detection Enabled (null) (Anomaly Detection Enabled)

Responses

Request samples

Content type
application/json
{
  • "metric_ids": [
    ],
  • "status": "draft",
  • "owner_id": "8826ee2e-7933-4665-aef2-2393f84a0d05",
  • "reviewed": true,
  • "anomaly_detection_enabled": true
}

Response samples

Content type
application/json
{
  • "detail": [
    ]
}

Preview Metric Sql

Stateless dry-run of a sql-kind metric SELECT (editor-gated).

Validates the SQL with the same safety gate the worker uses and executes it against the data source over the last 50 buckets of the requested interval (hard-capped at 200 rows); nothing is persisted. Expected user mistakes — bad SQL, missing time/value columns, warehouse errors — return 200 with error set so the editor can render them inline; unknown data source is a 404.

path Parameters
slug
required
string (Slug)
Request Body schema: application/json
required
data_source_id
required
string <uuid> (Data Source Id)
sql
required
string (Sql) non-empty
time_column
required
string (Time Column) [ 1 .. 255 ] characters
Value Column (string) or Value Column (null) (Value Column)
interval
required
string (ScanInterval)
Enum: "15m" "1h" "6h" "1d" "1w"

Responses

Request samples

Content type
application/json
{
  • "data_source_id": "0e1e9a56-7994-41e2-9003-96f8ebac19a2",
  • "sql": "string",
  • "time_column": "string",
  • "value_column": "string",
  • "interval": "15m"
}

Response samples

Content type
application/json
{
  • "columns": [
    ],
  • "points": [
    ],
  • "point_count": 0,
  • "truncated": false,
  • "error": "string"
}

Preview Fact Operand

Stateless dry-run of ONE fact operand's row filter (editor-gated).

The body is the operand a save would send. Its filters are compiled by the worker's own resolver for the fact table's data-source dialect and the resulting query is executed with a 1-row cap over a bounded recent window; nothing is persisted. Expected user mistakes — an unknown named filter, SQL the warehouse rejects, a measure column the filtered query does not project — return 200 with error set so the filter editor can render them inline. An unknown project or fact table is a 404.

path Parameters
slug
required
string (Slug)
Request Body schema: application/json
required
fact_table_id
required
string <uuid> (Fact Table Id)
aggregation
required
string (MetricAggregation)
Enum: "count" "sum" "avg" "min" "max" "count_distinct"

Aggregation applied by a fact metric over a FactTable column.

Measure Column (string) or Measure Column (null) (Measure Column)
Distinct Column (string) or Distinct Column (null) (Distinct Column)
Row Filter (string) or Row Filter (null) (Row Filter)
row_filters
Array of strings (Row Filters) <= 100 items
Filter Sql (string) or Filter Sql (null) (Filter Sql)
Array of objects (Conditions) <= 100 items

Responses

Request samples

Content type
application/json
{
  • "fact_table_id": "aa244fd0-16b6-42fe-82eb-98caad9349d4",
  • "aggregation": "count",
  • "measure_column": "string",
  • "distinct_column": "string",
  • "row_filter": "string",
  • "row_filters": [
    ],
  • "filter_sql": "string",
  • "conditions": [
    ]
}

Response samples

Content type
application/json
{
  • "columns": [
    ],
  • "row_count": 0,
  • "error": "string"
}

Reorder Metric Definitions

path Parameters
slug
required
string (Slug)
Request Body schema: application/json
required
metric_ids
required
Array of strings <uuid> (Metric Ids) non-empty [ items <uuid > ]

Responses

Request samples

Content type
application/json
{
  • "metric_ids": [
    ]
}

Response samples

Content type
application/json
[
  • {
    }
]

Get Metric Definition

path Parameters
slug
required
string (Slug)
metric_id
required
string <uuid> (Metric Id)

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
  • "name": "string",
  • "display_name": "string",
  • "description": "string",
  • "color": "string",
  • "order": 0,
  • "unit": "string",
  • "status": "draft",
  • "owner_id": "8826ee2e-7933-4665-aef2-2393f84a0d05",
  • "reviewed": true,
  • "kind": "sql",
  • "aggregation": "count",
  • "composition": "single",
  • "config": { },
  • "fact_table_id": "aa244fd0-16b6-42fe-82eb-98caad9349d4",
  • "breakdown_columns": [
    ],
  • "breakdown_values_limit": 0,
  • "app_version_column": "string",
  • "platform_column": "string",
  • "data_source_id": "0e1e9a56-7994-41e2-9003-96f8ebac19a2",
  • "interval": "15m",
  • "replay_chunk_interval": "15m",
  • "numerator_event_id": "b7e516c9-befe-4e7c-b6d4-948ebc2b6aa3",
  • "numerator_event_type_id": "2d62d44d-9e47-4eb8-b485-3f840a6cbc15",
  • "denominator_event_id": "8010165e-e206-4e23-86d0-aaabd41a5b8e",
  • "denominator_event_type_id": "f4aa7204-3b19-407f-87ef-aa32ff2312c7",
  • "anomaly_detection_enabled": true,
  • "last_collected_at": "2019-08-24T14:15:22Z",
  • "last_collection_status": "string",
  • "last_collection_error": "string",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "next_collection_at": "2019-08-24T14:15:22Z",
  • "collection_due": false
}

Update Metric Definition

path Parameters
slug
required
string (Slug)
metric_id
required
string <uuid> (Metric Id)
Request Body schema: application/json
required
Display Name (string) or Display Name (null) (Display Name)
Description (string) or Description (null) (Description)
Color (string) or Color (null) (Color)
Order (integer) or Order (null) (Order)
Unit (string) or Unit (null) (Unit)
MetricStatus (string) or null
Owner Id (string) or Owner Id (null) (Owner Id)
Reviewed (boolean) or Reviewed (null) (Reviewed)
Array of Breakdown Columns (strings) or Breakdown Columns (null) (Breakdown Columns)
Breakdown Values Limit (integer) or Breakdown Values Limit (null) (Breakdown Values Limit)
App Version Column (string) or App Version Column (null) (App Version Column)
Platform Column (string) or Platform Column (null) (Platform Column)
Anomaly Detection Enabled (boolean) or Anomaly Detection Enabled (null) (Anomaly Detection Enabled)
Definition (any) or Definition (null) (Definition)

Responses

Request samples

Content type
application/json
{
  • "display_name": "string",
  • "description": "string",
  • "color": "string",
  • "order": 0,
  • "unit": "string",
  • "status": "draft",
  • "owner_id": "8826ee2e-7933-4665-aef2-2393f84a0d05",
  • "reviewed": true,
  • "breakdown_columns": [
    ],
  • "breakdown_values_limit": 1,
  • "app_version_column": "string",
  • "platform_column": "string",
  • "anomaly_detection_enabled": true,
  • "definition": {
    }
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
  • "name": "string",
  • "display_name": "string",
  • "description": "string",
  • "color": "string",
  • "order": 0,
  • "unit": "string",
  • "status": "draft",
  • "owner_id": "8826ee2e-7933-4665-aef2-2393f84a0d05",
  • "reviewed": true,
  • "kind": "sql",
  • "aggregation": "count",
  • "composition": "single",
  • "config": { },
  • "fact_table_id": "aa244fd0-16b6-42fe-82eb-98caad9349d4",
  • "breakdown_columns": [
    ],
  • "breakdown_values_limit": 0,
  • "app_version_column": "string",
  • "platform_column": "string",
  • "data_source_id": "0e1e9a56-7994-41e2-9003-96f8ebac19a2",
  • "interval": "15m",
  • "replay_chunk_interval": "15m",
  • "numerator_event_id": "b7e516c9-befe-4e7c-b6d4-948ebc2b6aa3",
  • "numerator_event_type_id": "2d62d44d-9e47-4eb8-b485-3f840a6cbc15",
  • "denominator_event_id": "8010165e-e206-4e23-86d0-aaabd41a5b8e",
  • "denominator_event_type_id": "f4aa7204-3b19-407f-87ef-aa32ff2312c7",
  • "anomaly_detection_enabled": true,
  • "last_collected_at": "2019-08-24T14:15:22Z",
  • "last_collection_status": "string",
  • "last_collection_error": "string",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Delete Metric Definition

path Parameters
slug
required
string (Slug)
metric_id
required
string <uuid> (Metric Id)

Responses

Response samples

Content type
application/json
{
  • "detail": [
    ]
}

Get Metric Generated Sql

Return a saved fact metric's primary dependency-batch SQL without running it.

path Parameters
slug
required
string (Slug)
metric_id
required
string <uuid> (Metric Id)

Responses

Response samples

Content type
application/json
{
  • "queries": [
    ],
  • "breakdown_queries_omitted": true
}

Get Metric Series

path Parameters
slug
required
string (Slug)
metric_id
required
string <uuid> (Metric Id)
query Parameters
From (string) or From (null) (From)
To (string) or To (null) (To)

Responses

Response samples

Content type
application/json
{
  • "metric_id": "e3216117-28d7-4548-9b5f-7e08a760b2c7",
  • "scope": "metric",
  • "scan_config_id": "73831784-3bab-4614-8856-92f95dec4914",
  • "interval": "15m",
  • "latest_signal": {
    },
  • "data": [
    ],
  • "forecast": [ ]
}

Get Metric Breakdowns

path Parameters
slug
required
string (Slug)
metric_id
required
string <uuid> (Metric Id)
query Parameters
Column (string) or Column (null) (Column)
From (string) or From (null) (From)
To (string) or To (null) (To)

Responses

Response samples

Content type
application/json
{
  • "metric_id": "e3216117-28d7-4548-9b5f-7e08a760b2c7",
  • "scan_config_id": "73831784-3bab-4614-8856-92f95dec4914",
  • "interval": "15m",
  • "columns": [
    ],
  • "selected_column": "string",
  • "series": [
    ]
}

Get Metric Version Series

path Parameters
slug
required
string (Slug)
metric_id
required
string <uuid> (Metric Id)
query Parameters
From (string) or From (null) (From)
To (string) or To (null) (To)

Responses

Response samples

Content type
application/json
{
  • "metric_id": "e3216117-28d7-4548-9b5f-7e08a760b2c7",
  • "scan_config_id": "73831784-3bab-4614-8856-92f95dec4914",
  • "app_version_column": "string",
  • "interval": "15m",
  • "latest_version": "string",
  • "versions": [
    ],
  • "series": [
    ]
}

Collect Metric Now

Trigger an immediate backfill collection from one metric (editor-gated).

SQL/event-composition metrics dispatch alone. A fact metric refreshes every fact table reachable through its operands and recalculates all active fact metrics using those tables in shared batches (the clicked metric is included even when draft). Returns 202 once queued; warehouse queries run in workers. Unknown metric -> 404.

path Parameters
slug
required
string (Slug)
metric_id
required
string <uuid> (Metric Id)

Responses

Response samples

Content type
application/json
{
  • "metric_id": "e3216117-28d7-4548-9b5f-7e08a760b2c7",
  • "status": "queued",
  • "window_from": "2019-08-24T14:15:22Z",
  • "window_to": "2019-08-24T14:15:22Z",
  • "task_id": "string",
  • "metric_count": 1
}

Move Metric Definition

path Parameters
slug
required
string (Slug)
metric_id
required
string <uuid> (Metric Id)
Request Body schema: application/json
required
direction
required
string (Direction)
Enum: "up" "down"
Array of Visible Metric Ids (strings) or Visible Metric Ids (null) (Visible Metric Ids)

Responses

Request samples

Content type
application/json
{
  • "direction": "up",
  • "visible_metric_ids": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
  • "name": "string",
  • "display_name": "string",
  • "description": "string",
  • "color": "string",
  • "order": 0,
  • "unit": "string",
  • "status": "draft",
  • "owner_id": "8826ee2e-7933-4665-aef2-2393f84a0d05",
  • "reviewed": true,
  • "kind": "sql",
  • "aggregation": "count",
  • "composition": "single",
  • "config": { },
  • "fact_table_id": "aa244fd0-16b6-42fe-82eb-98caad9349d4",
  • "breakdown_columns": [
    ],
  • "breakdown_values_limit": 0,
  • "app_version_column": "string",
  • "platform_column": "string",
  • "data_source_id": "0e1e9a56-7994-41e2-9003-96f8ebac19a2",
  • "interval": "15m",
  • "replay_chunk_interval": "15m",
  • "numerator_event_id": "b7e516c9-befe-4e7c-b6d4-948ebc2b6aa3",
  • "numerator_event_type_id": "2d62d44d-9e47-4eb8-b485-3f840a6cbc15",
  • "denominator_event_id": "8010165e-e206-4e23-86d0-aaabd41a5b8e",
  • "denominator_event_type_id": "f4aa7204-3b19-407f-87ef-aa32ff2312c7",
  • "anomaly_detection_enabled": true,
  • "last_collected_at": "2019-08-24T14:15:22Z",
  • "last_collection_status": "string",
  • "last_collection_error": "string",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

fact-tables

List Fact Tables

path Parameters
slug
required
string (Slug)
query Parameters
Search (string) or Search (null) (Search)
offset
integer (Offset) >= 0
Default: 0
limit
integer (Limit) [ 1 .. 1000 ]
Default: 200

Responses

Response samples

Content type
application/json
{
  • "items": [
    ],
  • "total": 0
}

Create Fact Table

path Parameters
slug
required
string (Slug)
Request Body schema: application/json
required
name
required
string (Name) [ 1 .. 255 ] characters
display_name
required
string (Display Name) [ 1 .. 255 ] characters
description
string (Description)
Default: ""
color
string (Color) ^#[0-9a-fA-F]{6}$
Default: "#6366f1"
Data Source Id (string) or Data Source Id (null) (Data Source Id)
sql
required
string (Sql) non-empty
timestamp_column
required
string (Timestamp Column) [ 1 .. 255 ] characters
Array of objects (Columns)
identifier_columns
Array of strings (Identifier Columns)
Array of objects (Row Filters) <= 100 items

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "display_name": "string",
  • "description": "",
  • "color": "#6366f1",
  • "data_source_id": "0e1e9a56-7994-41e2-9003-96f8ebac19a2",
  • "sql": "string",
  • "timestamp_column": "string",
  • "columns": [
    ],
  • "identifier_columns": [
    ],
  • "row_filters": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
  • "name": "string",
  • "display_name": "string",
  • "description": "string",
  • "color": "string",
  • "order": 0,
  • "data_source_id": "0e1e9a56-7994-41e2-9003-96f8ebac19a2",
  • "sql": "string",
  • "timestamp_column": "string",
  • "columns": [
    ],
  • "identifier_columns": [
    ],
  • "row_filters": [
    ],
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Preview Fact Table

path Parameters
slug
required
string (Slug)
Request Body schema: application/json
required
Data Source Id (string) or Data Source Id (null) (Data Source Id)
sql
required
string (Sql) non-empty
Timestamp Column (string) or Timestamp Column (null) (Timestamp Column)

Responses

Request samples

Content type
application/json
{
  • "data_source_id": "0e1e9a56-7994-41e2-9003-96f8ebac19a2",
  • "sql": "string",
  • "timestamp_column": "string"
}

Response samples

Content type
application/json
{
  • "columns": [
    ],
  • "identifier_candidates": [
    ],
  • "sample_rows": [
    ]
}

Get Fact Table

path Parameters
slug
required
string (Slug)
fact_table_id
required
string <uuid> (Fact Table Id)

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
  • "name": "string",
  • "display_name": "string",
  • "description": "string",
  • "color": "string",
  • "order": 0,
  • "data_source_id": "0e1e9a56-7994-41e2-9003-96f8ebac19a2",
  • "sql": "string",
  • "timestamp_column": "string",
  • "columns": [
    ],
  • "identifier_columns": [
    ],
  • "row_filters": [
    ],
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Update Fact Table

path Parameters
slug
required
string (Slug)
fact_table_id
required
string <uuid> (Fact Table Id)
Request Body schema: application/json
required
Display Name (string) or Display Name (null) (Display Name)
Description (string) or Description (null) (Description)
Color (string) or Color (null) (Color)
Order (integer) or Order (null) (Order)
Data Source Id (string) or Data Source Id (null) (Data Source Id)
Sql (string) or Sql (null) (Sql)
Timestamp Column (string) or Timestamp Column (null) (Timestamp Column)
Array of Columns (objects) or Columns (null) (Columns)
Array of Identifier Columns (strings) or Identifier Columns (null) (Identifier Columns)
Array of Row Filters (objects) or Row Filters (null) (Row Filters)

Responses

Request samples

Content type
application/json
{
  • "display_name": "string",
  • "description": "string",
  • "color": "string",
  • "order": 0,
  • "data_source_id": "0e1e9a56-7994-41e2-9003-96f8ebac19a2",
  • "sql": "string",
  • "timestamp_column": "string",
  • "columns": [
    ],
  • "identifier_columns": [
    ],
  • "row_filters": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
  • "name": "string",
  • "display_name": "string",
  • "description": "string",
  • "color": "string",
  • "order": 0,
  • "data_source_id": "0e1e9a56-7994-41e2-9003-96f8ebac19a2",
  • "sql": "string",
  • "timestamp_column": "string",
  • "columns": [
    ],
  • "identifier_columns": [
    ],
  • "row_filters": [
    ],
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Delete Fact Table

path Parameters
slug
required
string (Slug)
fact_table_id
required
string <uuid> (Fact Table Id)

Responses

Response samples

Content type
application/json
{
  • "detail": [
    ]
}

implementation-tickets

List Branch Implementation Tickets

Read-only: tickets are opened by the merge worker, never by a client.

Auth matches the other branch reads — any authenticated project reader, via the router-level get_current_user dependency; no editor gate, because nothing here mutates.

path Parameters
slug
required
string (Slug)
branch_id
required
string <uuid> (Branch Id)

Responses

Response samples

Content type
application/json
[
  • {
    }
]