Overview

Getting Started

From signup to a working avatar in your Unity game. This guide walks through every step — takes about 15 minutes.

1
Create an account

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.

2
Choose a plan

After confirming your email, onboarding will prompt you to pick a plan. Here's a quick summary:

PlanAvatarsAppsPrice
Free1$0
Indie2$29 / month
Studio5$59 / month
AgencyUnlimited$99 / month
EnterpriseUnlimitedContact 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.

3
Create your first app

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.

Register before shipping Production traffic from your build is gated by registered identifiers. Editor mode and localhost for WebGL bypass this — you can develop without registering — but you must register before shipping.
4
Register your build identifiers

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:

PlatformIdentifier
WebGLHost (e.g. mygame.com or *.mygame.com)
AndroidJava package name (com.example.mygame)
iOSCFBundleIdentifier (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.)

Editor mode bypasses identifier checks. You can develop in Unity Editor without registering anything. localhost and 127.0.0.1 are also always allowed for WebGL local dev.
5
Generate an API key

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.

6
Test with the Customizer Playground

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.

7
Integrate into your Unity project

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.

Next: Unity SDK Reference
Full installation guide, API reference, and C# code examples.
Read the SDK docs →