Kinetix Documentation
Website
  • 🖐ïļWelcome
  • 🕚About Kinetix
  • 🖌ïļUser-Generated Emote
    • ðŸĪ–Video-to-animation AI
    • ðŸĪļKinetix Emote Standards
    • ðŸĶīRetargeting
    • 🏂Kinanim (Emote streaming)
    • 🖊ïļTry the User-Generated Emote feature
  • INTEGRATION
    • ðŸĪ·SDK or API: what to choose
    • ðŸĪĐKinetix SDK
      • ⚙ïļSDK - Core Package
      • ðŸ§ĐSDK - Sample scene
      • 🧑‍ðŸ’ŧTested & approved Game Engines for the SDK
      • ðŸ’ŧSDK Integration in Unity
        • ⮇ïļSet-up Unity & Import the SDK
          • 🔑Get your Game authentification API Key
          • ⚙ïļSetup your Unity environment
          • 🔧Install the Kinetix SDK in Unity
          • âŒĻïļSDK Initialization - Unity
        • ⚡Quickstart - Unity SDK
        • ðŸĶ‹SDK Core Modules activation - Unity
          • 🔐Account Management in Unity
          • 💃Animation System - Unity
            • ðŸŽĒUnity's Animator System
            • ðŸŽĻCustom Animation System
            • ðŸŒģRoot Motion
              • RootMotion + NavMeshAgent
            • 🎞ïļFrame Controller
            • 💊IK Controller
            • ðŸŦĨAvatar Mask
          • ðŸ“ķNetwork - Unity SDK
            • Photon PUN
            • Photon Fusion
        • 🕚User-Generated Emote integration (Unity)
          • Embedding the PWA in your Unity application
          • Validation / Retake
        • 🚧How to update Kinetix SDK in Unity?
        • 📕SDK API Reference - Unity
          • KinetixCore
          • KinetixCore.Account
          • KinetixCore.Animation
          • KinetixCore.Metadata
          • KinetixCore.Network
          • KinetixCore.UGC
        • 📂Unity SDK Changelog
      • ðŸ•đïļSDK Integration in Unreal Engine
        • ⮇ïļSet-up Unreal Engine & Download the SDK
          • 🔑Get your Game authentification API Key
          • ⚙ïļSet up your Unreal Engine environment
          • 🔧Install the Kinetix SDK in Unreal
          • âŒĻïļUE SDK Core Package Initialization
        • ⚡Quick Start
        • ðŸĶ‹SDK Core Modules activation - Unreal
          • 🔐Account Management - UE
          • 💃Animation System - UE
            • Local player system in Unreal Engine
            • Avatar system in Unreal Engine
            • Without uploading an avatar (deprecated)
              • Animation in a Third Person Template
              • Animation in an existing project
          • ðŸ“ķNetwork - UE SDK
        • 🕚User-Generated Emote integration (UE)
        • 📕SDK API Reference - UE
          • KinetixCore
          • KinetixCore.Account
          • KinetixCore.Animation
          • KinetixCore.Metadata
          • KinetixCore.Network
        • ⮆ïļUpdating from 0.3 to 0.4
        • 📂UE SDK Changelog
    • 😍Kinetix API
      • 🔑Get your Authentification API key
      • 🔌API routes
      • 🊝API Webhooks
      • 🏓Possible Return Codes
  • Management
    • 🚊Developer Portal
      • ðŸ‘―Avatar Upload
      • ðŸ‘ŪUGC Moderation
    • 🖌ïļUGE: Guides & Best Practices
      • 📐User-Generated Emote specifications
      • 👌Video recording best practices
      • ðŸ‘ŧUser-Generate Emote Use Cases
  • SUPPORT
    • 📎Bugs reports & features requests
    • ❓FAQ
      • FAQ: General questions
      • FAQ: Unity SDK
      • FAQ: Unreal Engine SDK
    • ðŸĪ•Troubleshooting
    • 📚Glossary of terms
Powered by GitBook
On this page
  • Login Routes
  • Authorization endpoint
  • Get information on your subscription plan
  • Create and manage your AI processes
  • Generate token
  • Create ML process for emote creation from a token
  • Get process status
  • Validate the process
  • Retake the Process
  • Get token status
  • Create QR code

Was this helpful?

Export as PDF
  1. INTEGRATION
  2. Kinetix API

API routes

In this page, learn how to leverage the API routes to implement the User-Generated Emote feature in your game.

PreviousGet your Authentification API keyNextAPI Webhooks

Last updated 1 year ago

Was this helpful?

Login Routes

The OAuth 2.0 method of authentication consists in generating an authentication token. This can then be used as tokenized temporary credentials. The implicit flow is a browser only flow. It can be used in web applications that need access tokens and cannot make use of a backend. Ask for a client ID if you need to implement this flow.

Authorization endpoint

GET https://auth.kinetix.tech/login

Initiates user authentication and redirects to the pre-registered callback URL with the authentication token in the URL fragment.

Query Parameters

Name
Type
Description

client_id*

String

The ID of the requesting client

response_type*

String

Defines the flow type, here it's implicit flow: token

redirect_uri

String

The redirect_uri the client wants to redirect to

Get information on your subscription plan

POST https://sdk-api.kinetix.tech/v1/plans

Retrieves information about your current subscription plan. You can upgrade your plan at any time on the .

Content-Type: application/json

Headers

Name
Type
Description

x-api-key*

GameAPIKey

Content-Type*

String

application/json

[
  {
    "name": "string",
    "mugeLimit": 0,
    "totalUsersLimit": 0,
    "callsLimit": 0,
    "createdAt": "2023-12-19T17:36:35.144Z"
  }
]
{
  "data": {},
  "message": "user not authenticated"
}
{
  "data": {},
  "message": "user not authenticated"
}

Create and manage your AI processes

In this section, learn how to let your players communicate with our AI directly though your game, to create emotes.

You will need to send the token you have created in previous endpoint in your header as x-api-token in order to use next endpoint. This token will only be useable for 5 minutes.

This ML process creates an emote from a video file, please be aware the heavier the file you are sending as input is, the longer this process will take.

We recommend you to send videos where only one character is visible.

Generate token

GET https://sdk-api.kinetix.tech/v1/process/token

Obtain a token to authenticate emote creation processes.

Headers

Name
Type
Description

Content-Type*

String

application/json

x-api-key*

String

VirtualWorldKey

Request Body

Name
Type
Description

userId*

String

Virtual world's user ID

{
  "uuid": "string",
  "url": "string",
  "expire": "2023-06-23T14:26:13.811Z"
}
{
  "data": {},
  "message": "user not authenticated"
}
{
  "data": {},
  "message": "user not authorized"
}

Create ML process for emote creation from a token

POST https://sdk-api.kinetix.tech/v1/process

Initiates an ML process to generate a user-generated emote from a token.

Headers

Name
Type
Description

Content-Type*

String

application/json

x-api-key*

String

VirtualWorldKey

x-api-token*

String

Token uuid

Request Body

Name
Type
Description

mature*

boolean

If the content is for adults only

start*

example":"00:00:00.000

Start time of video

end*

example":"00:00:02.000

End time of video

name*

String

Name of the emote to create

video*

Video file

Supported : AVI, FLV, MKV, MP4, TS, MOV, WebM

{
  "uuid": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "emote": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "animation": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "video": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "step": "string",
  "vw": 0,
  "user": 0,
  "progression": 0,
  "createdAt": "2023-06-23T14:33:53.426Z",
  "ml": {
    "progression": 0,
    "mlRemaining": 0,
    "mlElapsed": 0
  }
}
{
  "data": {},
  "message": "user not authenticated"
}
{
  "data": {},
  "message": "user not authenticated"
}

Get process status

GET https://sdk-api.kinetix.tech/v1/process/{uuid}

Get a user process status. The user must be associated to requesting virtual world

Headers

Name
Type
Description

Content-Type*

String

application/json

x-api-key*

String

VirtualWorldKey

Request Body

Name
Type
Description

uuid*

String

The process uuid returned by the POST /v1/process route.

{
  "uuid": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "emote": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "animation": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "video": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "step": "string",
  "vw": 0,
  "user": 0,
  "progression": 0,
  "createdAt": "2023-06-23T14:44:45.132Z",
  "ml": {
    "progression": 0,
    "mlRemaining": 0,
    "mlElapsed": 0
  }
}
{
  "data": {},
  "message": "user not authenticated"
}
{
  "data": {},
  "message": "user not authenticated"
}

Validate the process

POST https://sdk-api.kinetix.tech/v1/process/{uuid}/validate

Headers

Name
Type
Description

Content-Type*

String

application/json

x-api-key*

String

VirtualWorldKey

Request Body

Name
Type
Description

uuid*

String

The process uuid returned by the POST /v1/process route.

{
  "uuid": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "emote": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "animation": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "video": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "step": "string",
  "vw": 0,
  "user": 0,
  "progression": 0,
  "createdAt": "2023-06-23T14:44:45.132Z",
  "ml": {
    "progression": 0,
    "mlRemaining": 0,
    "mlElapsed": 0
  }
}
{
  "data": {},
  "message": "user not authenticated"
}
{
  "data": {},
  "message": "user not authenticated"
}

Retake the Process

POST https://sdk-api.kinetix.tech/v1/process/{uuid}/retake

When the validation flow is activated, this will reject the process and return a new generation token to let the user retry. If you want to let your users the capacity to retake an emote, you have to let them validate or not an emote when it's generated. It means that, after generating an emote, players will have two options: validate the process if they're satisfied with the emote output they received, or retake the process.

Headers

Name
Type
Description

Content-Type*

String

application/json

x-api-key*

String

VirtualWorldKey

Request Body

Name
Type
Description

uuid*

String

The process uuid returned by the POST /v1/process route.

{
  "uuid": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "emote": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "animation": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "video": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "step": "string",
  "vw": 0,
  "user": 0,
  "progression": 0,
  "createdAt": "2023-06-23T14:44:45.132Z",
  "ml": {
    "progression": 0,
    "mlRemaining": 0,
    "mlElapsed": 0
  }
}
{
  "data": {},
  "message": "user not authenticated"
}
{
  "data": {},
  "message": "user not authenticated"
}

Get token status

GET https://sdk-api.kinetix.tech/v1/process/token/{token}

Determines the status of a previously generated token.

Headers

Name
Type
Description

Content-Type*

String

application/json

x-api-key*

String

VirtualWorldKey

token*

String

Token generated

Request Body

Name
Type
Description

userId*

String

Virtual world's user ID

{
  "uuid": "string",
  "url": "string",
  "expire": "2023-06-23T14:26:13.811Z"
}
{
  "data": {},
  "message": "user not authenticated"
}
{
  "data": {},
  "message": "user not authorized"
}

Create QR code

GET https://sdk-api.kinetix.tech/v1/process/dev-token

Create a QR code for the specified user. By default, it will use the virtual world id 1. Virtual World can be changed by specifying one of its keys.

Headers

Name
Type
Description

Content-Type*

String

application/json

x-api-key*

String

VirtualWorldKey

Request Body

Name
Type
Description

userId*

String

Virtual world's user ID

Virtual world's key

String

image/png
{
  "data": {},
  "message": "user not authenticated"
}
{
  "data": {},
  "message": "user not authorized"
}

If you want to let your users the capacity to retake an emote, you have to let them validate or not an emote when it's generated. It means that, after generating an emote, players will have two options: validate the process if they're satisfied with the emote output they received, or retake the process. Note that for now, you cannot benefit from the validate/retake process on your own: you have to ask to activate it for you. When the validation flow is activated, this will make the emote available to the user.

😍
🔌
Kinetix Developer Portal
Ben