Getting Started
From signup to a working avatar in your Unity game. This guide walks through every step — takes about 15 minutes.
Go to console.ava-twin.me/signup and register with your email. You'll receive a confirmation email — click the link to verify your address.
No credit card is required at signup. Your first month is free on any paid plan — or you can stay on the free tier indefinitely.
After confirming your email, onboarding will prompt you to pick a plan. Here's a quick summary:
| Plan | Avatars | Apps | Price |
|---|---|---|---|
| Free | — | 1 | $0 |
| Indie | — | 2 | $29 / month |
| Studio | — | 5 | $59 / month |
| Agency | — | Unlimited | $99 / month |
| Enterprise | — | Unlimited | Contact us |
Paid plans include a free first month, no credit card required. Save 2 months by switching to yearly billing at any time. See Pricing & Plans for full details.
In the dashboard, navigate to Apps and click Create App. Give it a name that matches your game project (e.g. my-unity-game).
Each app has its own API keys and customizer settings. Create a separate app for each game or environment (dev / production).
Copy the App ID — you'll need it alongside your API key to authenticate requests.
One more thing. After creating the app, scroll to the Platform Identifiers section on the app detail page and register the domain (WebGL) or bundle ID (mobile/desktop) that your build will report at runtime. Without this, production requests get rejected with a 403 — covered in the next step and in detail at Registering Build Identifiers.
localhost for WebGL bypass this — you can develop without registering — but you must register before shipping.Before your build can call Ava-Twin in production, register an identifier per platform you ship to. Without registration, the customizer responds with a 403 in production.
In your app's settings (Console → Apps → [name] → Edit), the Platform Identifiers section has one slot per enabled platform.
What to register per platform:
| Platform | Identifier |
|---|---|
| WebGL | Host (e.g. mygame.com or *.mygame.com) |
| Android | Java package name (com.example.mygame) |
| iOS | CFBundleIdentifier (com.example.mygame) |
| Desktop (Windows / macOS / Linux) | Reverse-DNS bundle ID |
Full reference at Registering Identifiers.
(Free plan can register WebGL only; Indie adds iOS + Android; Studio+ unlocks all 6 platforms.)
localhost and 127.0.0.1 are also always allowed for WebGL local dev.Inside your app, scroll to the API Keys section and click Create API Key. Give the key a label (e.g. Production or Dev).
The key is shown once. Copy it and store it securely — you won't be able to view it again. If lost, revoke it and generate a new one.
Inside your app, scroll to the Customizer Playground section. This launches the full avatar customizer in your browser so you can verify the experience before integrating it into Unity.
The playground uses your app's settings and works automatically from your console session.
Note: The Customizer Playground requires a Pro plan or higher. Free plan users can skip this step and test directly in Unity.
Add the Ava-Twin Unity SDK via Unity Package Manager using the Git URL, then configure credentials via the Ava-Twin → Setup menu.
Call SDK.OpenCustomizerAsync() and await the result. The returned AvatarResult gives you direct access to the loaded avatar:
using AvaTwin;
using UnityEngine;
public class AvatarSetup : MonoBehaviour
{
async void Start()
{
var result = await SDK.OpenCustomizerAsync();
Debug.Log("Avatar loaded: " + result.Root.name);
}
}See the Unity SDK Reference for the full installation guide, all configuration options, and platform-specific notes.