コンテンツにスキップ

Create a threshold profile

POST
/v1/projects/{id}/threshold-profiles

Creates a performance threshold profile for the project. A profile pins good/warn thresholds for FPS, frame time, memory, and GPU time, optionally scoped to a device segment via the platform, resolution, buildConfig, gpu, and storage filters. Newly created projects are automatically seeded with a Default profile, so this endpoint adds profiles beyond that baseline.

Each good/warn threshold is optional: a null or omitted value falls back to the built-in default for that metric. Any thresholds you do send must satisfy the metric ordering — FPS good must be greater than warn (higher is better), while frame time, memory, and GPU time good must be less than warn (lower is better).

Requires the resources:write scope (API key or OAuth Bearer token).

id
required
string format: uuid

Project UUID.

Request body for creating a threshold profile. Only name is required. Each good/warn threshold accepts a number, a numeric string, or null; null or an omitted threshold falls back to the metric’s built-in default. Device-filter fields (platform, resolution, buildConfig, gpu, storage) are optional; omit or send null to match any device.

object
name
required

Display name, unique within the project. Must not be the reserved value __unknown__.

string
<= 100 characters
fpsGood

Good threshold for FPS. Must be greater than fpsWarn when both are set.

number | string | null
fpsWarn

Warning threshold for FPS.

number | string | null
frameTimeGood

Good threshold for frame time in milliseconds. Must be less than frameTimeWarn when both are set.

number | string | null
frameTimeWarn

Warning threshold for frame time in milliseconds.

number | string | null
memoryGood

Good threshold for memory usage in megabytes (MB). Must be less than memoryWarn when both are set.

number | string | null
memoryWarn

Warning threshold for memory usage in megabytes (MB).

number | string | null
gpuTimeGood

Good threshold for GPU time in milliseconds. Must be less than gpuTimeWarn when both are set.

number | string | null
gpuTimeWarn

Warning threshold for GPU time in milliseconds.

number | string | null
platform

Optional platform filter; null or omitted matches any platform.

string | null
<= 50 characters
resolution

Optional resolution filter, such as 1920x1080; null or omitted matches any resolution.

string | null
<= 20 characters /^\d{2,5}x\d{2,5}$/
buildConfig

Optional build configuration filter; stored lowercased. Null or omitted matches any build configuration.

string | null
<= 50 characters
gpu

Optional GPU model filter; null or omitted matches any GPU.

string | null
<= 100 characters
storage

Optional storage type filter; null or omitted matches any storage.

string | null
<= 50 characters

Threshold profile created. overlappingProfileNames lists any existing profiles whose device filters overlap the new profile’s segment — an advisory signal, not an error.

object
success
boolean
data
object
id
required
string format: uuid
name
required
string
platform
required

Optional platform filter; null matches any platform.

string | null
resolution
required

Optional resolution filter, such as 1920x1080; null matches any resolution.

string | null
buildConfig
required

Optional build configuration filter; null matches any build configuration.

string | null
gpu
required

Optional GPU model filter; null matches any GPU.

string | null
storage
required

Optional storage type filter; null matches any storage.

string | null
fpsGood
required

Good threshold for FPS.

number | null
fpsWarn
required

Warning threshold for FPS.

number | null
frameTimeGood
required

Good threshold for frame time in milliseconds.

number | null
frameTimeWarn
required

Warning threshold for frame time in milliseconds.

number | null
memoryGood
required

Good threshold for memory usage in megabytes (MB).

number | null
memoryWarn
required

Warning threshold for memory usage in megabytes (MB).

number | null
gpuTimeGood
required

Good threshold for GPU time in milliseconds.

number | null
gpuTimeWarn
required

Warning threshold for GPU time in milliseconds.

number | null
createdAt
required
string format: date-time
updatedAt
required
string format: date-time
projectId
string format: uuid
overlappingProfileNames
required

Names of existing profiles whose device filters overlap the new profile’s segment.

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

API key with resources:write scope required.

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

A profile with the same device-filter tuple (platform, resolution, buildConfig, gpu, storage) or the same name already exists in this project.

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.