Skip to content

Issues_GetIssue

GET
/v1/accounts/{account}/datasets/{dataset}/issues/{issue}
curl --request GET \
--url https://dev-api.qualiastudios.dev/v1/accounts/example/datasets/example/issues/example \
--header 'X-API-Key: <X-API-Key>'

Gets one issue.

account
required
string

The account id.

dataset
required
string

The dataset id.

issue
required
string

The issue id.

OK

Media type application/json

Anything said about an episode or a whole dataset (QUA-2223). An issue blocks a keep until it is dismissed or the episode is ruled; a note (blocks = false) never blocks. Checks, models, the operator and people all raise into the same list.

The parent dataset is the issue’s scope. An issue raised through an upload is the episode’s own and reads the same from every mixture that contains it; an issue raised through a mixture (by its checks or by a person working in it) is open in that mixture alone (QUA-2242, QUA-2244). A merged dataset has no issues of its own on its episodes: an issue raised on one through it is stored in the upload that holds the take, a dataset-level note is the merged dataset’s. Every issue stored in an upload a merge took (raised before or after the merge) is named, with its episode and its replies, under the merged dataset (QUA-3511), and is written by that name; its name under the upload still reads, and a write by it is FAILED_PRECONDITION naming the merged dataset.

Served by qds-api.

object
name

Accounts/{account}/datasets/{dataset}/issues/{issue}

string
episode

Accounts/{account}/datasets/{dataset}/episodes/{episode}; empty when the issue is about the whole dataset (QUA-2226).

string
code

Machine-readable code (idle_tail, camera_desync, out_of_reach, mix_twin, source_starved, …); empty for a person’s own words.

string
kind

What it is about.

string format: enum
Allowed values: KIND_UNSPECIFIED TAKE RECORDING SCENE MOTION GRIPPER CONTROL DISTRIBUTION MIXTURE
title

Short label for the chip: the check’s name, or a person’s first line.

string
text

One human sentence. A person may raise an issue with no words (“raised”).

string
body

More than the sentence says: a model’s whole explanation, the rest of what a person wrote.

string
value

The figure beside the title, e.g. “4.2 s”, “160 ms”, “0.4x”.

string
timeSeconds

A moment in the episode, seconds from the start of the recording.

number format: double
author

Who raised it.

object
kind

What kind of actor it is.

string format: enum
Allowed values: KIND_UNSPECIFIED PERSON VALIDATION RULE MODEL OPERATOR SYSTEM
user

The person’s user id when kind is PERSON; empty otherwise.

string
displayName

The person’s display name at the time, for rendering without a lookup.

string
agent

The rule code, or the model id (e.g. “gemini-robotics-er”), when not a person.

string
run

The run a model or rule finding came from, when it has one.

string
apiKey

The API key’s id when a person acted through one; empty for a session. Never the key itself.

string
attribution

Signed identity evidence recorded with the change, kept apart from the principal above. Unset on older records and wherever none was signed.

object
authentication

How the principal authenticated.

string format: enum
Allowed values: AUTHENTICATION_UNSPECIFIED SESSION API_KEY SERVICE
initiator

The user id of a person verified as starting the work: the person of a session, or the person a trusted service’s signed job record names. Empty when nobody was verified.

string
initiatorDisplayName

The initiator’s display name at the time, never their email.

string
credentialCreator

The user id of the key’s creator at the time. Not who used the key.

string
credentialOwner

Who owned the key at the time.

string format: enum
Allowed values: CREDENTIAL_OWNER_UNSPECIFIED PERSON SPACE
credentialOwnerSpace

The owning space’s id (a workspace or the organization) when credential_owner is SPACE.

string
blocks

True: an issue that blocks a keep. False: a note. A person converts either way with UpdateIssue (emits ISSUE_CONVERTED); a rule’s, model’s or operator’s issue can be demoted to a note and promoted back.

boolean
state

Open or dismissed. Changed only by DismissIssues and ReopenIssues.

string format: enum
Allowed values: STATE_UNSPECIFIED OPEN DISMISSED
dismissal

Who dismissed it, when; unset while open.

object
actor

Who.

object
kind

What kind of actor it is.

string format: enum
Allowed values: KIND_UNSPECIFIED PERSON VALIDATION RULE MODEL OPERATOR SYSTEM
user

The person’s user id when kind is PERSON; empty otherwise.

string
displayName

The person’s display name at the time, for rendering without a lookup.

string
agent

The rule code, or the model id (e.g. “gemini-robotics-er”), when not a person.

string
run

The run a model or rule finding came from, when it has one.

string
apiKey

The API key’s id when a person acted through one; empty for a session. Never the key itself.

string
attribution

Signed identity evidence recorded with the change, kept apart from the principal above. Unset on older records and wherever none was signed.

object
authentication

How the principal authenticated.

string format: enum
Allowed values: AUTHENTICATION_UNSPECIFIED SESSION API_KEY SERVICE
initiator

The user id of a person verified as starting the work: the person of a session, or the person a trusted service’s signed job record names. Empty when nobody was verified.

string
initiatorDisplayName

The initiator’s display name at the time, never their email.

string
credentialCreator

The user id of the key’s creator at the time. Not who used the key.

string
credentialOwner

Who owned the key at the time.

string format: enum
Allowed values: CREDENTIAL_OWNER_UNSPECIFIED PERSON SPACE
credentialOwnerSpace

The owning space’s id (a workspace or the organization) when credential_owner is SPACE.

string
stampTime

When.

string format: date-time
dismissCause

What dismissed it.

string format: enum
Allowed values: DISMISS_CAUSE_UNSPECIFIED MANUAL KEEP TRIM RESOLVED
dismissReason

Words given with the dismissal.

string
conversion

Who last converted it between issue and note; unset if never.

object
actor

Who.

object
kind

What kind of actor it is.

string format: enum
Allowed values: KIND_UNSPECIFIED PERSON VALIDATION RULE MODEL OPERATOR SYSTEM
user

The person’s user id when kind is PERSON; empty otherwise.

string
displayName

The person’s display name at the time, for rendering without a lookup.

string
agent

The rule code, or the model id (e.g. “gemini-robotics-er”), when not a person.

string
run

The run a model or rule finding came from, when it has one.

string
apiKey

The API key’s id when a person acted through one; empty for a session. Never the key itself.

string
attribution

Signed identity evidence recorded with the change, kept apart from the principal above. Unset on older records and wherever none was signed.

object
authentication

How the principal authenticated.

string format: enum
Allowed values: AUTHENTICATION_UNSPECIFIED SESSION API_KEY SERVICE
initiator

The user id of a person verified as starting the work: the person of a session, or the person a trusted service’s signed job record names. Empty when nobody was verified.

string
initiatorDisplayName

The initiator’s display name at the time, never their email.

string
credentialCreator

The user id of the key’s creator at the time. Not who used the key.

string
credentialOwner

Who owned the key at the time.

string format: enum
Allowed values: CREDENTIAL_OWNER_UNSPECIFIED PERSON SPACE
credentialOwnerSpace

The owning space’s id (a workspace or the organization) when credential_owner is SPACE.

string
stampTime

When.

string format: date-time
replyCount

Replies under it.

integer format: int32
measurement

What a rule measured, when it measured something.

object
metric

The metric, as an Episode.Metrics field name.

string
value

The episode’s value.

number format: double
fence

The fence it crossed.

number format: double
comparator

”>” or ”<”.

string
population

Whose fence: “robot”, “dataset”, “mixture”, “version”.

string
populationSize

Episodes in that population.

string
referenceRange

The reference range the episode was judged against, as currently computed (each run on the interface refreshes it; the values at judgment are fence and population_size above): accounts/{account}/checks/episode-rules/referenceRanges/{reference_range}. Set on the episode rules’ findings whose fence came from a stored range; empty for an absolute limit, an upload judged against itself (its ranges are not stored), the curation engine’s thresholds, and a range a later run no longer computes (it is deleted).

string
observed

Ingest: what the data said, in unit (a gap’s length, a camera’s rate, an episode’s span).

number format: double
expected

Ingest: what it should have said, in unit: the limit it broke or the declared value.

number format: double
delta

Ingest: observed minus expected, in unit.

number format: double
unit

Ingest: the unit of observed, expected and delta: “s”, “rows”, “hz”, “px”, …; empty when unknown.

string
count

Ingest: how many times it happened (the 3 of “3 of 120”).

string
total

Ingest: what count is out of (the 120 of “3 of 120”: samples, rows, episodes), when there is such a whole.

string
timeSeconds

Ingest: when it started, in seconds from the episode start.

number format: double
durationSeconds

Ingest: how long it lasted from time_seconds, in seconds: a gap, a frozen reading, a low-rate window, the episode’s whole span. Unset on a condition at one moment.

number format: double
frameIndex

Ingest: the row it was seen at, by position in the episode.

string
camera

Ingest: the camera it is about, by its key; empty when none.

string
topic

Ingest: the topic or column it is about; empty when none.

string
recommended

True when the check recommends rejecting the episode (the curation suggestion fell under the frozen threshold, QUA-1835).

boolean
source

For a mixture-wide issue about one source (starved, apart, read at head, read twice): the source it names.

string
createTime

When it was raised.

string format: date-time
updateTime

When it last changed.

string format: date-time
etag

Sent back on UpdateIssue.

string
check

Accounts/{account}/checks/{check}: the check that raised it; empty for anything else (a person, the operator, ingest, curation).

string
finding

The model’s reading that last raised it: set on the VLM check’s issues and notes (QUA-3397).

object
verdict

What the model concluded.

string format: enum
Allowed values: VERDICT_UNSPECIFIED PASS FAIL UNCERTAIN
confidence

How sure it was, 0 to 1.

number format: double
explanation

The evidence, in a few sentences.

string
moments

The moments it pointed at, in time order.

Array<object>

A moment the model pointed at.

object
timeSeconds

Seconds from the start of the recording, as Issue.time_seconds (the trim the model read is added in), so a player seeks to it as is.

number format: double
label

What happens there, in a few words; may be empty.

string
model

The model id, e.g. “gemini-3.5-flash”.

string
task

Accounts/{account}/tasks/{task}: the task it read the episode against.

string
taskRevision

That task’s published revision, as frozen into the run.

integer format: int32
checkRun

Accounts/{account}/checks/vlm/runs/{run}: the check run that read it.

string
readTime

When it was read.

string format: date-time
Example
{
"kind": "KIND_UNSPECIFIED",
"author": {
"kind": "KIND_UNSPECIFIED",
"attribution": {
"authentication": "AUTHENTICATION_UNSPECIFIED",
"credentialOwner": "CREDENTIAL_OWNER_UNSPECIFIED"
}
},
"state": "STATE_UNSPECIFIED",
"dismissal": {
"actor": {
"kind": "KIND_UNSPECIFIED",
"attribution": {
"authentication": "AUTHENTICATION_UNSPECIFIED",
"credentialOwner": "CREDENTIAL_OWNER_UNSPECIFIED"
}
}
},
"dismissCause": "DISMISS_CAUSE_UNSPECIFIED",
"conversion": {
"actor": {
"kind": "KIND_UNSPECIFIED",
"attribution": {
"authentication": "AUTHENTICATION_UNSPECIFIED",
"credentialOwner": "CREDENTIAL_OWNER_UNSPECIFIED"
}
}
},
"finding": {
"verdict": "VERDICT_UNSPECIFIED"
}
}

Default error response

Media type application/json

The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC. Each Status message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the API Design Guide.

object
code

The status code, which should be an enum value of [google.rpc.Code][google.rpc.Code].

integer format: int32
message

A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the [google.rpc.Status.details][google.rpc.Status.details] field, or localized by the client.

string
details

A list of messages that carry the error details. There is a common set of message types for APIs to use.

Array<object>

Contains an arbitrary serialized message along with a @type that describes the type of the serialized message.

object
@type

The type of the serialized message.

string
key
additional properties
any
Example generated
{
"code": 1,
"message": "example",
"details": [
{
"@type": "example"
}
]
}