Skip to main content

Quickstart guide

Get started with the Uthana API in minutes. This guide will help you create your first AI-powered animation.

Official clients:

  • Python: uthanapip install uthana
  • JavaScript/TypeScript: @uthana/clientnpm install @uthana/client

Using Context7 with the Uthana API

Context7 helps LLMs and AI code editors pull up-to-date documentation and code examples (instead of relying on stale training data). It's designed for AI assistants like Cursor / Claude Code.

  1. Install Context7 in your IDE: Context7 Installation
  2. Add Uthana as a source: https://context7.com/websites/uthana_api (library id: /websites/uthana_api)
  3. Use it in your prompts (example): "How do I create a text-to-motion animation with the Uthana API? use context7 library /websites/uthana_api"

Prerequisites

Step 1: Install the client

# No install needed — use curl directly.
# For the Python client: pip install uthana

Step 2: Authenticate

Connect the client using your API key and confirm the key is valid.

API_KEY="{{apiKey}}"

curl 'https://uthana.com/graphql' \
  -u $API_KEY: \
  -H "Content-Type: application/json" \
  -d '{"query": "{ __typename }"}'

You should see {"data":{"__typename":"Query"}}.

Step 3: Prepare your character model

(Note: You can skip this step if you're using the default character, "Tar", with the character ID cXi2eAP19XwQ.)

To generate motion for your character, you need to upload a 3D character model in FBX (.fbx) or glTF (.glb/.gltf) format. The easiest way to do this when you're just getting started is to use the Web UI.

  1. Go to the Web UI and sign in.
  2. Click the button.
  3. Upload your character model in FBX (.fbx) or glTF (.glb/.gltf) format.
  4. Verify that the character is loaded correctly by viewing or generating a motion.
  5. Copy the character ID from the URL: https://uthana.com/app/<character-id>/<motion-id>.
  6. Save the character ID for later use.

You can also upload a character via the API — see Auto-rig / add a character.

Auto-rigging

If your character doesn't have a skeleton rig, Uthana will automatically attempt to create one. Auto-rigging typically takes an additional 30-60 seconds and allows you to use characters that weren't originally rigged for animation.

Step 4: Generate a motion from text

curl 'https://uthana.com/graphql' \
  -u {{apiKey}}: \
  -H "Content-Type: application/json" \
  -d '{
    "query": "mutation { create_text_to_motion(prompt: \"A person walking down the street\") { motion { id name } } }"
  }'

Text-to-motion results are returned in the result object.

Step 5: Download your motion

CHARACTER_ID="cXi2eAP19XwQ"  # Default character, or use your own
MOTION_ID="<motion-id-from-step-4>"

# Download the motion as FBX (includes character mesh, filename is customizable)
curl -L "https://uthana.com/motion/file/motion_viewer/$CHARACTER_ID/$MOTION_ID/fbx/motion.fbx" \
  -u {{apiKey}}: \
  -o motion.fbx

# Download the motion as GLB (includes character mesh, filename is customizable)
curl -L "https://uthana.com/motion/file/motion_viewer/$CHARACTER_ID/$MOTION_ID/glb/motion.glb" \
  -u {{apiKey}}: \
  -o motion.glb

# Download at 30 FPS
curl -L "https://uthana.com/motion/file/motion_viewer/$CHARACTER_ID/$MOTION_ID/fbx/motion.fbx?fps=30" \
  -u {{apiKey}}: \
  -o motion-30fps.fbx

# Download the motion-only GLB (animation data without character mesh, filename is customizable)
curl -L "https://uthana.com/motion/animation/motion_viewer/$CHARACTER_ID/$MOTION_ID/glb/motion.glb" \
  -u {{apiKey}}: \
  -o motion-only.glb

Next steps