コンテンツにスキップ

Create an alert rule

POST
/v1/projects/{id}/alerts

Creates a new performance alert rule for the project. The rule monitors a specific metric on a map and triggers notifications when the failure percentage exceeds the threshold. Requires the resources:write scope (API key or OAuth Bearer token).

id
required
string format: uuid

Project UUID.

Any of:

Provide the threshold profile as either thresholdProfileId (a single profile) or thresholdProfileIds (a bundle of up to 10 profiles that fire independently). At least one is required; when both are sent, thresholdProfileIds takes precedence and its first element becomes the primary profile.

object
name
string
>= 1 characters <= 200 characters
mapId
string format: uuid
thresholdProfileId
required

Single threshold profile ID (the primary profile). Backward-compatible single-profile form; use thresholdProfileIds for a multi-profile bundle.

string format: uuid
thresholdProfileIds

Threshold profile bundle (1 to 10 profiles). Each profile is evaluated and fires independently. The first element becomes the primary profile (thresholdProfileId). Supersedes thresholdProfileId when both are sent.

Array<string>
>= 1 items <= 10 items unique items
metric
string
Allowed values: fps frame_time memory gpu_time
thresholdLevel
string
Allowed values: warn good
failPercentage
integer
>= 1 <= 100
evaluationDays

Evaluation window in days. Note this differs from the analytics days values (7, 14, 30, 90): alert evaluation also allows 1 and does not allow 90.

integer
Allowed values: 1 7 14 30
cellSize
integer
Allowed values: 5 10 25 50
cooldownMinutes
integer
>= 1
channelIds

Notification channel IDs. Optional; defaults to an empty list.

Array<string>

Alert rule created.

object
success
boolean
data

Full alert rule including timestamps and channel IDs.

object
id
string format: uuid
projectId
string format: uuid
mapId
string format: uuid
thresholdProfileId

Primary threshold profile ID (the first element of thresholdProfileIds).

string format: uuid
thresholdProfileIds

The rule’s effective threshold profile bundle (1 to 10 profiles), each evaluated independently. The first element is the primary profile.

Array<string>
name
string
metric
string
Allowed values: fps frame_time memory gpu_time
thresholdLevel
string
Allowed values: warn good
failPercentage
number
evaluationDays
integer
cellSize
integer
cooldownMinutes
integer
isActive
boolean
createdAt
string format: date-time
updatedAt
string format: date-time
channelIds
Array<string>

Invalid request parameters or body.

RFC 9457 Problem Details. Served with the application/problem+json media type. error_category, retryable, and retry_after are Framedash extension members. type always defaults to about:blank, so it is always present; detail and the extension members are present only when applicable.

object
type
required

Problem type URI; about:blank when no specific type applies.

string format: uri
default: about:blank
title
required

Short, human-readable summary of the problem type.

string
status
required

HTTP status code.

integer
detail

Human-readable explanation specific to this occurrence.

string
error_category

Extension member categorizing the error.

string
Allowed values: authentication authorization validation rate_limit not_found conflict payload internal
retryable

Extension member; true when retrying may succeed (e.g. 429, 503).

boolean
retry_after

Extension member; suggested retry delay in seconds, when applicable.

integer

Missing or invalid API key.

RFC 9457 Problem Details. Served with the application/problem+json media type. error_category, retryable, and retry_after are Framedash extension members. type always defaults to about:blank, so it is always present; detail and the extension members are present only when applicable.

object
type
required

Problem type URI; about:blank when no specific type applies.

string format: uri
default: about:blank
title
required

Short, human-readable summary of the problem type.

string
status
required

HTTP status code.

integer
detail

Human-readable explanation specific to this occurrence.

string
error_category

Extension member categorizing the error.

string
Allowed values: authentication authorization validation rate_limit not_found conflict payload internal
retryable

Extension member; true when retrying may succeed (e.g. 429, 503).

boolean
retry_after

Extension member; suggested retry delay in seconds, when applicable.

integer

Missing resources:write scope (API key or OAuth Bearer token), plan limit reached, or feature not available.

RFC 9457 Problem Details. Served with the application/problem+json media type. error_category, retryable, and retry_after are Framedash extension members. type always defaults to about:blank, so it is always present; detail and the extension members are present only when applicable.

object
type
required

Problem type URI; about:blank when no specific type applies.

string format: uri
default: about:blank
title
required

Short, human-readable summary of the problem type.

string
status
required

HTTP status code.

integer
detail

Human-readable explanation specific to this occurrence.

string
error_category

Extension member categorizing the error.

string
Allowed values: authentication authorization validation rate_limit not_found conflict payload internal
retryable

Extension member; true when retrying may succeed (e.g. 429, 503).

boolean
retry_after

Extension member; suggested retry delay in seconds, when applicable.

integer

Resource not found.

RFC 9457 Problem Details. Served with the application/problem+json media type. error_category, retryable, and retry_after are Framedash extension members. type always defaults to about:blank, so it is always present; detail and the extension members are present only when applicable.

object
type
required

Problem type URI; about:blank when no specific type applies.

string format: uri
default: about:blank
title
required

Short, human-readable summary of the problem type.

string
status
required

HTTP status code.

integer
detail

Human-readable explanation specific to this occurrence.

string
error_category

Extension member categorizing the error.

string
Allowed values: authentication authorization validation rate_limit not_found conflict payload internal
retryable

Extension member; true when retrying may succeed (e.g. 429, 503).

boolean
retry_after

Extension member; suggested retry delay in seconds, when applicable.

integer

Rate limit exceeded.

RFC 9457 Problem Details. Served with the application/problem+json media type. error_category, retryable, and retry_after are Framedash extension members. type always defaults to about:blank, so it is always present; detail and the extension members are present only when applicable.

object
type
required

Problem type URI; about:blank when no specific type applies.

string format: uri
default: about:blank
title
required

Short, human-readable summary of the problem type.

string
status
required

HTTP status code.

integer
detail

Human-readable explanation specific to this occurrence.

string
error_category

Extension member categorizing the error.

string
Allowed values: authentication authorization validation rate_limit not_found conflict payload internal
retryable

Extension member; true when retrying may succeed (e.g. 429, 503).

boolean
retry_after

Extension member; suggested retry delay in seconds, when applicable.

integer
X-RateLimit-Limit
integer

Maximum number of requests allowed per hour.

X-RateLimit-Remaining
integer

Number of requests remaining in the current window.

X-RateLimit-Reset
integer

Unix timestamp when the rate limit window resets.

Retry-After
integer

Number of seconds to wait before retrying. Present only on 429 responses. Because the limit uses a sliding window, honor this value per response rather than scheduling a retry for the reset time.