Compare per-frame performance runs (pilot)
GET /v1/projects/{id}/performance-runs/compare
Opt-in LP2 pilot contract. Requires Unity SDK 0.1.8, CLI 0.1.11 and a deployment containing this endpoint. Earlier Unity 0.1.7 and CLI 0.1.10 packages do not include the new capture/run-diff command. Requires analytics:read. Reads at most three distinct run UUIDs from the last seven days using existing project access, retention and erasure. Unavailable for COPPA-enabled organizations (403): their server-side redaction removes the run identity and histogram attributes. SDK capture or flush success does not establish eligibility for this pilot. Missing, incomplete, conflicting or condition-mismatched evidence returns an inconclusive result, never a successful regression verdict. Histogram quantiles are millisecond bin intervals, not confidence intervals. Repeat must share the baseline build and commit. No automatic regression gate or public sharing is implied. Read-limit or transport failures return errors.
Authorizations
Section titled “Authorizations ”Parameters
Section titled “ Parameters ”Path Parameters
Section titled “Path Parameters ”Project UUID.
Query Parameters
Section titled “Query Parameters ”Unchanged repeat with a distinct run ID and the baseline build/commit.
Responses
Section titled “ Responses ”Comparable report or explicit inconclusive evidence.
object
object
object
Required declared profiles and observed engine/platform/SDK. Matching declarations are not hardware attestation.
object
UTC Unix microseconds as a decimal string.
UTC Unix microseconds as a decimal string.
Sum of accepted measurement intervals; excludes warm-up and dropped samples.
object
Exact counts strictly above 1000/60, 1000/30, 50 and 100 milliseconds, with rates per 1000 accepted frames.
object
Required declared profiles and observed engine/platform/SDK. Matching declarations are not hardware attestation.
object
UTC Unix microseconds as a decimal string.
UTC Unix microseconds as a decimal string.
Sum of accepted measurement intervals; excludes warm-up and dropped samples.
object
Exact counts strictly above 1000/60, 1000/30, 50 and 100 milliseconds, with rates per 1000 accepted frames.
object
Required declared profiles and observed engine/platform/SDK. Matching declarations are not hardware attestation.
object
UTC Unix microseconds as a decimal string.
UTC Unix microseconds as a decimal string.
Sum of accepted measurement intervals; excludes warm-up and dropped samples.
object
Exact counts strictly above 1000/60, 1000/30, 50 and 100 milliseconds, with rates per 1000 accepted frames.
object
object
Lower and upper millisecond bounds. Quantile bins exclude the upper bound; differences conservatively subtract opposing endpoints.
object
Lower and upper millisecond bounds. Quantile bins exclude the upper bound; differences conservatively subtract opposing endpoints.
object
Lower and upper millisecond bounds. Quantile bins exclude the upper bound; differences conservatively subtract opposing endpoints.
Signed difference intervals for one unchanged pair; not an established noise threshold.
object
Lower and upper millisecond bounds. Quantile bins exclude the upper bound; differences conservatively subtract opposing endpoints.
Lower and upper millisecond bounds. Quantile bins exclude the upper bound; differences conservatively subtract opposing endpoints.
Lower and upper millisecond bounds. Quantile bins exclude the upper bound; differences conservatively subtract opposing endpoints.
Headers
Section titled “Headers ”Maximum number of requests allowed per hour.
Number of requests remaining in the current window.
Unix timestamp when the rate limit window resets.
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
Problem type URI; about:blank when no specific type applies.
Short, human-readable summary of the problem type.
HTTP status code.
Human-readable explanation specific to this occurrence.
Extension member categorizing the error.
Extension member; true when retrying may succeed (e.g. 429, 503).
Extension member; suggested retry delay in seconds, when applicable.
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
Problem type URI; about:blank when no specific type applies.
Short, human-readable summary of the problem type.
HTTP status code.
Human-readable explanation specific to this occurrence.
Extension member categorizing the error.
Extension member; true when retrying may succeed (e.g. 429, 503).
Extension member; suggested retry delay in seconds, when applicable.
Credential lacks project access, analytics:read scope, or a required account entitlement, or the organization has COPPA enabled.
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
Problem type URI; about:blank when no specific type applies.
Short, human-readable summary of the problem type.
HTTP status code.
Human-readable explanation specific to this occurrence.
Extension member categorizing the error.
Extension member; true when retrying may succeed (e.g. 429, 503).
Extension member; suggested retry delay in seconds, when applicable.
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
Problem type URI; about:blank when no specific type applies.
Short, human-readable summary of the problem type.
HTTP status code.
Human-readable explanation specific to this occurrence.
Extension member categorizing the error.
Extension member; true when retrying may succeed (e.g. 429, 503).
Extension member; suggested retry delay in seconds, when applicable.
Headers
Section titled “Headers ”Maximum number of requests allowed per hour.
Number of requests remaining in the current window.
Unix timestamp when the rate limit window resets.
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.
The bounded analytics read failed. No comparison verdict is 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
Problem type URI; about:blank when no specific type applies.
Short, human-readable summary of the problem type.
HTTP status code.
Human-readable explanation specific to this occurrence.
Extension member categorizing the error.
Extension member; true when retrying may succeed (e.g. 429, 503).
Extension member; suggested retry delay in seconds, when applicable.