Episodes_ListEpisodeRevisions
const url = 'https://dev-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://dev-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 (QUA-3084): 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 the model id (e.g. “gemini-robotics-er”), 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 (QUA-1794).
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
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
The status code, which should be an enum value of [google.rpc.Code][google.rpc.Code].
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.
A list of messages that carry the error details. There is a common set of message types for APIs to use.
Contains an arbitrary serialized message along with a @type that describes the type of the serialized message.
object
The type of the serialized message.
Example generated
{ "code": 1, "message": "example", "details": [ { "@type": "example" } ]}