Episodes_ListEpisodeRevisions
const url = 'https://junction-api.qualiastudios.dev/v1/accounts/example/datasets/example/episodes/example/revisions';const options = {method: 'GET', headers: {'X-API-Key': '<X-API-Key>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url https://junction-api.qualiastudios.dev/v1/accounts/example/datasets/example/episodes/example/revisions \ --header 'X-API-Key: <X-API-Key>'An episode’s edits, newest first, then the recording as revision 0; an episode nobody edited lists nothing. The history is the take’s: the same through any dataset that holds it.
Authorizations
Section titled “Authorizations ”Parameters
Section titled “ Parameters ”Path Parameters
Section titled “Path Parameters ”The account id.
The dataset id.
The episode id.
Query Parameters
Section titled “Query Parameters ”At most this many; 0 means 50, the maximum is 500.
From a previous response’s next_page_token.
Optional exact revisions (at most two, nonnegative). Cannot be combined with page_token. Missing revisions are omitted, never replaced by head.
Responses
Section titled “ Responses ”OK
Response for Episodes.ListEpisodeRevisions.
object
One page of revisions, newest first.
One edit of a take’s content, kept for good: what the history in the episode studio lists. A revision holds the whole state after the edit, not the change: a field the edit did not set holds the recording’s value, as Episode reads it. What changed is its difference from the revision before it. Revision 0 is the recording itself, before any edit, so the first edit’s changes read against it. Rulings (keep, reject) are not revisions.
Served by qds-api.
object
Accounts/{account}/datasets/{dataset}/episodes/{episode}/revisions/{revision}
1, 2, 3, … in edit order; Episode.revision is the newest. 0 is the recording.
What the edit was for, in the editor’s words; may be empty.
Who edited; the system for the recording.
object
What kind of actor it is.
The person’s user id when kind is PERSON; empty otherwise.
The person’s display name at the time, for rendering without a lookup.
The rule code, or for a MODEL the Qualia model tier (e.g. “qualia-vlm”; “qualia” for any other model), when not a person.
The run a model or rule finding came from, when it has one.
The API key’s id when a person acted through one; empty for a session. Never the key itself.
Signed identity evidence recorded with the change, kept apart from the principal above. Unset on older records and wherever none was signed.
object
How the principal authenticated.
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.
The initiator’s display name at the time, never their email.
The user id of the key’s creator at the time. Not who used the key.
Who owned the key at the time.
The owning space’s id (a workspace or the organization) when
credential_owner is SPACE.
When; for the recording, when it was ingested.
Task label after the edit.
Language instruction after the edit.
Legacy single-method projection after the edit.
Collection-method tags after the edit.
Scene label after the edit.
Free tags after the edit.
Outcome after the edit.
Trim window after the edit; unset means untrimmed. An open end is 0 (start) or the recording’s end (end) as Episode.trim reads it.
object
First second kept.
Last second kept.
Subtask spans after the edit.
One subtask span.
object
Start, in seconds from the start of the recording.
End, in seconds.
The subtask’s one name (also one of the episode’s tags).
Proposed, accepted or rejected.
Who proposed it.
Empty on the last page.
Example
{ "episodeRevisions": [ { "author": { "kind": "KIND_UNSPECIFIED", "attribution": { "authentication": "AUTHENTICATION_UNSPECIFIED", "credentialOwner": "CREDENTIAL_OWNER_UNSPECIFIED" } }, "outcome": "OUTCOME_UNSPECIFIED", "subtasks": [ { "review": "REVIEW_UNSPECIFIED", "origin": "ORIGIN_UNSPECIFIED" } ] } ]}default
Section titled “default ”Default error response
A refusal from the API itself.
object
The gRPC code name in upper case, e.g. NOT_FOUND.
Whether the same call may succeed if retried.
Empty, except when a dataset copy or move is refused: then one google.rpc.ErrorInfo with the refusal’s reason code, its domain and, in metadata, the datasets it names.
object
A refusal from the gateway before the call reaches the API, for example 401 bad or missing API key, 403 key lacks the scope or environment closed, 413 body too large.
object
What went wrong.
Example generated
{ "code": "example", "message": "example", "retryable": true, "details": [ {} ]}