Schema
The Move API uses GraphQL schema to define the structure of queries, mutations, and types available in the API.
Overview
The GraphQL schema defines all available operations and data types for the Move API. This schema can be used to:
- Understand available queries and mutations
- Generate type-safe client code
- Explore the API structure interactively
- Validate GraphQL operations
Core types
Output types
The API supports multiple output formats for different use cases:
- ALL_BLEND: ZIP file containing blend files, one per actor
- ALL_BVH: ZIP file containing bvh files, one per actor
- ALL_C3D: ZIP file containing c3d files, one per actor
- ALL_FBX: ZIP file containing fbx files, one per actor
- ALL_GLB: ZIP file containing glb files, one per actor
- ALL_USDC: ZIP file containing usdc files, one per actor
- ALL_USDZ: ZIP file containing usdz files, one per actor
- MAIN_BLEND: Blend file containing data for all tracked actors
- MAIN_FBX: FBX file containing data for all tracked actors
- MAIN_GLB: GLB file containing data for all tracked actors
- MAIN_USDC: USDC file containing data for all tracked actors
- MAIN_USDZ: USDZ file containing data for all tracked actors
- MOTION_DATA: ZIP file containing JSON files, one per actor
- RENDER_OVERLAY_VIDEO: Video render with mocap data overlaid on input video (single camera only)
- RENDER_VIDEO: Video render showing preview of mocap data
- SYNC_DATA: .pkl file containing timing information about video offsets
Job
type Job {
id: ID!
status: JobStatus!
model: String!
created_at: DateTime!
completed_at: DateTime
input: JobInput!
output: JobOutput
error: String
}
enum JobStatus {
PENDING
PROCESSING
COMPLETED
FAILED
CANCELLED
}
type JobInput {
videos: [String!]!
parameters: JSON
}
type JobOutput {
take_id: ID
}
Take
type Take {
id: ID!
job_id: ID!
duration: Float!
frame_count: Int!
frame_rate: Int!
model_used: String!
exports: TakeExports!
created_at: DateTime!
}
type TakeExports {
fbx: String
bvh: String
usdc: String
usdz: String
glb: String
blend: String
c3d: String
json: String
csv: String
render_video: String
render_overlay_video: String
sync_data: String
}
File
type File {
id: ID!
name: String!
size: Int!
status: FileStatus!
created_at: DateTime!
url: String
}
enum FileStatus {
UPLOADING
PROCESSING
READY
FAILED
}
Rig
type Rig {
id: ID!
name: String!
description: String
joints: [Joint!]!
created_at: DateTime!
}
type Joint {
name: String!
parent: String
position: [Float!]!
}
Queries
Get job
query GetJob($id: ID!) {
job(id: $id) {
id
status
model
created_at
completed_at
input {
videos
parameters
}
output {
take_id
}
}
}
List jobs
query ListJobs($limit: Int, $offset: Int) {
jobs(limit: $limit, offset: $offset) {
id
status
model
created_at
completed_at
}
}
Get take
query GetTake($id: ID!) {
take(id: $id) {
id
job_id
duration
frame_count
frame_rate
model_used
exports {
fbx
bvh
json
csv
}
}
}
List takes
query ListTakes($limit: Int, $offset: Int) {
takes(limit: $limit, offset: $offset) {
id
duration
frame_count
model_used
created_at
}
}
Mutations
Create job
mutation CreateJob($input: CreateJobInput!) {
createJob(input: $input) {
id
status
model
created_at
}
}
input CreateJobInput {
model: String!
videos: [ID!]!
parameters: JSON
}
Upload file
mutation UploadFile($file: Upload!) {
uploadFile(file: $file) {
id
name
size
status
url
}
}
Create rig
mutation CreateRig($input: CreateRigInput!) {
createRig(input: $input) {
id
name
description
joints {
name
parent
position
}
}
}
input CreateRigInput {
name: String!
description: String
joints: [JointInput!]!
}
input JointInput {
name: String!
parent: String
position: [Float!]!
}
Scalar types
DateTime
ISO 8601 formatted date and time string.
JSON
Arbitrary JSON data.
Upload
File upload scalar for multipart form data.
Introspection
You can query the schema itself using GraphQL introspection:
query IntrospectionQuery {
__schema {
types {
name
description
fields {
name
type {
name
}
}
}
}
}
Schema download
Download the complete GraphQL schema:
curl -H "Authorization: Bearer YOUR_API_KEY" \
-X POST \
-H "Content-Type: application/json" \
-d '{"query":"query IntrospectionQuery { __schema { types { name description fields { name type { name } } } } }"}' \
https://api.move.ai/graphql
Next steps
- API Reference - Complete API documentation
- Authentication - API key setup
- GitHub Recipes - Code examples