Skip to content

UGC API Schema

Query

List of available queries in UGC API.

Field Argument Type Description
client Client! Returns the current client details.
getFile File! Get file details with given file id.
fileId ID! Associated file id used to fetch the file details.
getJob Job! Get job details from given job id.
jobId ID! Associated job id used to fetch the job details.
getTake Take! Get a take with given id.
takeId ID! Associated take id used to fetch the take details.
getVolume Volume! Get a volume with the given id.
id ID! Associated volume id used to fetch the volume details.
listJobs JobsPage Get a list of jobs.
first Int First N jobs to fetch.
after AWSJSON Cursor to fetch jobs after.
sortDirection SortDirection Sort direction to sort the jobs (either ASC or DESC). Currently this only sorted by created datetime.
takeId String Filter jobs by take.
listTakes TakesPage Get a list of takes.
first Int First N takes to fetch.
after AWSJSON Cursor to fetch takes after.
sortDirection SortDirection Sort direction to sort the takes (either ASC or DESC). Currently this only sorted by created datetime.
listVolumes VolumePage! Get a list of volumes.
first Int First N jobs to fetch.
after AWSJSON Cursor to fetch jobs after.
sortDirection SortDirection Sort direction to sort the jobs (either ASC or DESC). Currently this only sorted by created datetime.

Mutation

List of available mutations in UGC API.

Field Argument Type Description
createFile File! Create a file with given type (extension) of the file. For example: to create an mp4 file in the system, use `createFile(type: 'mp4')` mutation.
type String! Type (extension) of the file to be created.
metadata AWSJSON Metadata to be associated with this file. This is optional.
name String Name of the file. This is optional.
createJob Job! Initialize processing a job to generate animation from a take.
takeId String! Take id to be used. This is required to create a job. This is typically fetched from the output of `createTake` mutation.
metadata AWSJSON Metadata to be associated with this job. This is optional.
createMultiCamJob Job! Initialize processing a job to generate animation from a take.
takeId String! Take id to be used. This is required to create a job. This is typically fetched from the output of `createMultiCamTake` mutation.
metadata AWSJSON Metadata to be associated with this job. This is optional.
name String Name of the job. This is optional.
numberOfActors Int Number of actors in the take
options OptionsInput Options for the job
createMultiCamTake Take! Create a take from an existing files for multiple cameras.
sources [SourceInput!] Source of a take, this can be either a video file, move file.
syncMethod SyncMethodInput Sync method for the take
metadata AWSJSON Metadata to be associated with this take. This is optional.
name String Name of the take. This is optional.
volumeId String! Volume id
createSingleCamJob Job! Initialize processing a job to generate animation from a take.
takeId String! Take id to be used. This is required to create a job. This is typically fetched from the output of `createSingleCamTake` mutation.
metadata AWSJSON Metadata to be associated with this job. This is optional.
name String Name of the job. This is optional.
createSingleCamTake Take! Create take from a single camera.
sources [SourceInput!] Source of a take, this can be either a video file, move file.
metadata AWSJSON Metadata to be associated with this take. This is optional.
name String Name of the take. This is optional.
createTake Take! Create a take from an existing file.
videoFileId String! Video file id to be used. This is required to create a take. This is typically fetched from the output of `createFile` mutation.
additionalFileIds [TakeFileInput!] Additional file ids to be mapped to this take. It is mandatory to provide a `.move` file.
metadata AWSJSON Metadata to be associated with this take. This is optional.
createVolumeWithHuman HumanVolume! Create a volume using a human.
sources [SourceInput!] Source of a take, this can be either a video file or move file.
syncMethod SyncMethodInput Sync method for the take
humanHeight Float! Human height in metres.
areaType AreaType! Area type.
metadata AWSJSON Metadata to be associated with this take. This is optional.
name String Name of the human volume. This is optional.
generateShareCode ShareCode! Generate a share code for a job output. This is typically used to share the output of a job with other users (example: fbx and mp4 output files).
fileId String! File id to be used. This is required to generate a share code. This is typically fetched from `Job.outputs.file.id`.
updateClient Client! Update client properties.
metadata AWSJSON! Metadata to be associated with this client. This is required.
updateFile File! Update a file. Currently, only updating metadata for a file is supported.
id String! Unique identifier for the file. This is required.
metadata AWSJSON! Metadata to be associated with this file. This is required.
updateJob Job! Update a job. Currently, only updating metadata for a job is supported.
id String! Unique identifier for the job. This is required.
metadata AWSJSON! Metadata to be associated with this job. This is required.
updateTake Take! Update a take. Currently, only updating metadata for a take is supported.
id String! Unique identifier for the take. This is required.
metadata AWSJSON! Metadata to be associated with this take. This is required.
upsertWebhookEndpoint WebhookEndpoint! Perform an upsert operation on a webhook endpoint.
description String Description of the webhook endpoint. This is optional.
events [String!] Events to be subscribed to. This is required to perform an upsert operation.
metadata AWSJSON Metadata to be associated with this webhook endpoint. This is optional.
uid String! Unique identifier for the webhook endpoint. This is required to perform an upsert operation.
url String! URL of the webhook endpoint. This is required to perform an upsert operation.
secret String Secret to be used to sign the payload. This is optional.

Objects

AdditionalFile

An additional file which may be attached to the take

Field Argument Type Description
file File! Reference to the additional file object
format String Type of additional file
key String Type of additional file

CameraSettings

The camera settings for the source

Field Argument Type Description
lens String! The name of the lens that was used to create the capture inputs.

ClapWindow

The start and end time of the clap window that should be used for syncing sources. startTime should be before endTime

Field Argument Type Description
endTime Float! The end time of the clap window that was used to sync the input sources.
startTime Float! The start time of the clap window that was used to sync the input sources.

Client

Representation of a Client account.

Field Argument Type Description
created AWSDateTime! Datetime at which the Client was created.
id ID! Unique identifier for this client.
metadata AWSJSON Metadata for the client to store any key value pairs - json validation done by AWS
name String! Name associated to this client.
portal AWSURL Portal url associated to this client.

ClipWindow

The start and end time of the clip window that should be processed. startTime should be before endTime.

Field Argument Type Description
endTime Float! The end time of the clip window to be processed.
startTime Float! The start time of the clip window to be processed.

File

Represents a File in UGC API.

Field Argument Type Description
client Client Associated client account which created this file.
created AWSDateTime Datetime at which the file was created.
id ID! Unique identifier for a File.
metadata AWSJSON Metadata for the client to store any key value pairs - json validation done by AWS
name String Name of the file.Returns null if no name present.
presignedUrl AWSURL Url to upload/download the file. When creating a file, this attribute will return a upload url. Otherwise, this attribute will represent a download url.
thumbnailUrl AWSURL The url of the thumbnail file. Returns null if no thumbnail present
type String! Type (extension) of a file. Example: mp4, mov, avi etc.

HumanVolume

Represents volumes for a multicam take A volume that was created using a human.

Field Argument Type Description
areaType AreaType Area type of the volume.
client Client! Reference to the client owner of the volume.
created AWSDateTime! Datetime at which the volume was created
humanHeight Float Height of the human present in the volume.
id ID! Unique id of a volume. This is the volume job id.
metadata AWSJSON Metadata for the client to store any key value pairs - json validation done by AWS.
name String Name of the human volume. Returns null if no name present.
sources [Source!] Input source files required for creating HumanVolume, sources from at least two cameras are required.
state JobState Current status of the volume processing.

Job

Represents an animation job for a take

Field Argument Type Description
client Client! Client owner of this job
created AWSDateTime Datetime at which the job was created
id ID! Unique identifier for the job
metadata AWSJSON Metadata json field where the client can store any key value pair
name String Name of the job.Returns null if no name present.
outputs [AdditionalFile] Outputs of this job
state String Current status of the job
take Take Reference to the original take

JobsPage

Job model connection. This connection will return a page of takes.

Field Argument Type Description
after AWSJSON Next page token
first Int Number of items on the single page
items [Job] List of items on the current page

ShareCode

Represents a ShareCode associated to a file in UGC API. This is usually generated for a job output.

Field Argument Type Description
code String! Share code value.
created AWSDateTime Datetime at which the share code was created.
expires AWSDateTime The share code will expire at.
file File File associated to the share code.
url AWSURL Encoded url with code to download the file.

Source

The source device, file and camera settings to use for a take.

Field Argument Type Description
cameraSettings CameraSettings Settings for the camera that was used to capture this source.
clipWindow ClipWindow The clip window that should be processed. If not provided the entire source will be processed.
deviceLabel String! A user defined label for the device this source input was captured on.
file File Reference to the file object of this source.
format SourceFormat The file format of the source.

SyncMethod

The type of sync method. If not provided it is assumed that all source inputs are fully synced.

Field Argument Type Description
clapWindow ClapWindow The input sources were synced via a clap.
timecodeSync TimeCodeSync The input sources were synced via a timecode.

Take

Representation of a take

Field Argument Type Description
additionalFiles [AdditionalFile] Optional additional files for this take
client Client! Reference to the client owner of the take
created AWSDateTime! Datetime string at which the take was created
id ID! Unique id of a take
metadata AWSJSON Metadata for the client to store any key value pairs - json validation done by AWS
name String Name of the take. Returns null if no name present.
sources [Source] Sources associated with the take.
syncMethod SyncMethod The sync method for the input sources on this take. If not provided it is assumed that all source inputs are fully synced.
takeType TakeType Type of the take (this can be either a multiple or singlecam take).
videoFile File Reference to the video file included with this take
volume Volume Volume associated with a multicam take.

TakesPage

Take model connection. This connection will return a page of takes.

Field Argument Type Description
after AWSJSON Next token (if any)
first Int Number of elements in a single page
items [Take] List of takes in this page

TimeCodeSync

Are the source files synced via a timecode

Field Argument Type Description
useTimecode Boolean! The source inputs are timecode synced.

VolumePage

Volume model connection. This connection will return a page of volumes.

Field Argument Type Description
after AWSJSON Next page token
first Int Number of items on the single page
items [Volume] List of items on the current page

WebhookEndpoint

Webhook endpoint represents a URL which will be called when an event occurs.

Field Argument Type Description
client Client! Associated client account which created this webhook endpoint.
description String Description of the webhook endpoint. This is optional.
events [String!] Events to be subscribed to. This is required to perform an upsert operation.
metadata AWSJSON Metadata to be associated with this webhook endpoint. This is optional.
secret String Secret to be used to sign the payload. This is optional.
uid String! Unique identifier for the webhook endpoint. This is required to perform an upsert operation.
url String! URL of the webhook endpoint. This is required to perform an upsert operation.

Inputs

CameraSettingsInput

The camera settings for the source input.

Field Type Description
lens String! The name of the lens that was used to create the capture inputs.

ClapWindowInput

The start and end time of the clap window that should be used for syncing sources. startTime should be before endTime

Field Type Description
endTime Float! The end time of the clap window that was used to sync the input sources.
startTime Float! The start time of the clap window that was used to sync the input sources.

ClipWindowInput

The start and end time of the clip window that should be processed. startTime should be before endTime.

Field Type Description
endTime Float! The end time of the clip window to be processed.
startTime Float! The start time of the clip window to be processed.

OptionsInput

Options input for a multicam run

Field Type Description
floorPlane Boolean Floor Plane
trackBall Boolean Track Ball
trackFingers Boolean Track Fingers
trackJerseyNumbers Boolean Track Jersey Numbers

SourceInput

The source device, file and camera settings to use for a take.

Field Type Description
cameraSettings CameraSettingsInput Settings for the camera that was used to capture this source.
clipWindow ClipWindowInput The clip window that should be processed. If not provided the entire source will be processed.
deviceLabel String! A user defined label for the device this source input was captured on.
fileId String! Reference to the file object of this source.
format SourceFormat! The file format of the source.

SyncMethodInput

The type of sync method. If not provided it is assumed that all source inputs are fully synced.

Field Type Description
clapWindow ClapWindowInput The input sources were synced via a clap.
timecodeSync TimeCodeSyncInput The input sources were synced via a timecode.

TakeFileInput

Input for an additional take file

Field Type Description
fileId String Reference to the associated file.
key TakeFileInputKeys! Type of the additional file chosen from given values.

TimeCodeSyncInput

Are the source files synced via a timecode

Field Type Description
useTimecode Boolean! The source inputs are timecode synced.

Enums

AreaType

The area type of the capture

Value Description
LARGE The area size was above 20 square metres.
NORMAL The area size was below 20 square metres.

JobState

The status of the job.

Value Description
FAILED The job has failed.
FINISHED The job is finished.
NOT_STARTED The job has not been started yet.
RUNNING The job is currently running.

SortDirection

Sort direction enum.

Value Description
ASC Ascending order.
DESC Descending order.

SourceFormat

The format of the source.

Value Description
AVI A source input with a .avi extension.
MOV A source input with a .mov extension.
MOVE A source input with a .move extension.
MP4 A source input with a .mp4 extension.

TakeFileInputKeys

Allowed additional file types for a take.

Value Description
DEPTH Additional depth file.
INTRINSIC Additional instrinsic file.
MOVE Additional move file. This is usually a `.move` file.
ODOMETRY Additional odometry file.
VISION Additional vision file.

TakeType

The type of take (this can be either a single take or a multicam take).

Value Description
MULTI_CAM A take that is captured with multiple cameras.
SINGLE_CAM A take that is captured with a single camera.

Scalars

AWSDateTime

The AWSDateTime scalar type represents a valid extended ISO 8601 DateTime string. In other words, this scalar type accepts datetime strings of the form YYYY-MM-DDThh:mm:ss.sssZ. The field after the seconds field is a nanoseconds field. It can accept between 1 and 9 digits. The seconds and nanoseconds fields are optional (the seconds field must be specified if the nanoseconds field is to be used). The time zone offset is compulsory for this scalar. The time zone offset must either be Z (representing the UTC time zone) or be in the format ±hh:mm:ss. The seconds field in the timezone offset will be considered valid even though it is not part of the ISO 8601 standard.

AWSJSON

The AWSJSON scalar type represents a JSON string that complies with RFC 8259.

Maps like {\"upvotes\": 10}, lists like [1,2,3], and scalar values like \"AWSJSON example string\", 1, and true are accepted as valid JSON. They will automatically be parsed and loaded in the resolver mapping templates as Maps, Lists, or Scalar values rather than as the literal input strings. Invalid JSON strings like {a: 1}, {'a': 1} and Unquoted string will throw GraphQL validation errors.

AWSURL

The AWSURL scalar type represents a valid URL string. The URL may use any scheme and may also be a local URL (Ex: http://localhost/). URLs without schemes are considered invalid. URLs which contain double slashes are also considered invalid.

Boolean

The Boolean scalar type represents true or false.

Float

The Float scalar type represents signed double-precision fractional values as specified by IEEE 754.

ID

The ID scalar type represents a unique identifier, often used to refetch an object or as key for a cache. The ID type appears in a JSON response as a String; however, it is not intended to be human-readable. When expected as an input type, any string (such as "4") or integer (such as 4) input value will be accepted as an ID.

Int

The Int scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.

String

The String scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.

Interfaces

ClientOwner

Implement this interface if your schema has a client owner

Field Argument Type Description
client Client Reference to the associated Client owner.

Identifier

Implement this interface to add an identifier to your schema

Field Argument Type Description
id ID Unique identifier.

InternalFileSchema

Implement this interface to add internal file service structure to your schema

Field Argument Type Description
presignedUrl AWSURL Url to upload/download the file. When creating a file, this attribute will return a upload url. Otherwise, this attribute will represent a download url.
type String Type (extension) of a file. Example: mp4, mov, avi etc.

Page

Implement this interface for your schema page

Field Argument Type Description
after AWSJSON Next token for the items to be fetched in the remaining pages.
first Int Items to fetch in a single page. Defaults to 50.

Timestamped

Implement this interface to make your schema timestampable

Field Argument Type Description
created AWSDateTime The child type should define this attribute.

Unions

Volume

A volume used in a multicam take will be one of these types.

Type Description
HumanVolume Represents volumes for a multicam take A volume that was created using a human.