A2E
  1. Streaming Avatar
A2E
  • AI Avatar API
  • Get Tokens
    • Getting API Tokens (2025 version)
    • Obtain Login Token
      POST
    • Get API token
      POST
    • Delete API token
      POST
    • List api tokens
      GET
    • Getting API Tokens (2025 version)
      GET
  • TTS and Voice Clone
    • List Public TTS Options
      POST
    • List Voice Clone Options
      GET
    • Train TTS Model of The User's Voice (Voice Clone)
      POST
    • List Ongoing Voice Clone Tasks
      GET
    • Generate TTS Audio (Text-to-Speech)
      POST
    • Get Details of a Voice
      GET
    • Delete a User Voice
      DELETE
  • Generate Avatar Videos
    • Generate AI Avatar Videos
      POST
    • List of Result Videos
      POST
    • List One or All Avatars
      POST
    • Obtain the Status of One Avatar Video Task
      POST
    • Obtain the List of Personalized Lip-Sync Models
      GET
    • Delete or Cancel a Video
      DELETE
    • Auto Language Detect
      POST
    • Auto Swith to Public Computing Pool
      POST
  • Create Avatars and Train Lip-sync Models
    • Create A Custom Avatar by a Video or an Image
    • Train a Personalized Lip-sync Model (Optional) a.k.a. Continue Training 💠
    • Remove A Customized Avatar
    • Get Status of All Tasks
    • Get All Ongoing "Training" Tasks
    • Status of One Task
    • Clone Voice from a Video
  • Background Matting and Replacement
    • Obtain the List of Background Images
    • Add Custom Background Image
    • Delete Custom Image
  • Face Swap
    • Manage Face Swap Resource
      • Add Face Swap Image
      • Get Records of Face Swap Images
      • Delete User Face Swap Image
    • Quickly Preview Face Swap
      • Add User Face Swap Preview
      • Get Status of Face Swap Preview Process
    • Face Swap Tasks
      • Add User Face Swap Task
      • Get Status of Face Swap Task
      • Get Face Swap Task Records
      • Get Details of Face Swap
      • Delete Record
  • AI Dubbing
    • Start dubbing
    • List Dubbing Tasks
    • List All Processing Dubbing Tasks
    • Get Details
    • Delete Record
  • Image to Video
    • Start Image-to-Video
    • Check Status of One Task
    • List Status of All Tasks
    • Delete Record
  • Caption Removal
    • Start Caption Removal
    • Get Records of All Tasks
    • Get Status of All Tasks in Processing
    • Get Details of One Task
    • Delete a Task
  • Streaming Avatar
    • Get All avatars
      GET
    • Get a Streaming Avatar Token
      POST
    • Set QA Context
      POST
    • Get QA Context
      GET
    • Ask a Question to the Avatar
      POST
    • Let the Avatar Speak Directly
      POST
    • Leave the Room
      POST
  • Miscellaneous
    • Add a User
    • Get User Remaining Credits
    • Exchange Diamonds
    • List Available Languages
    • Save URL to A2E's storage
  1. Streaming Avatar

Ask a Question to the Avatar

Developing
Global Server
https://video.a2e.ai
Global Server
https://video.a2e.ai
POST
/api/v1/streaming-avatar/ask
You need to set the context for QA by using /api/v1/streaming-avatar/set-qa-context. We provide basic QA function by prompt engineering. For more advanced QA capabilities, such as Retrieval-Augmented Generation (RAG), you will need to implement the QA logic yourself. In this case, you can use the Speak /api/v1/streaming-avatar/speak API to directly control what the avatar says.
If you want to get the avatar says from /api/v1/streaming-avatar/ask, please use
type StreamData = {
   type: 'QA';
   message: string;
   pos?: 'start' | 'middle' | 'end';
 };
 rtcClient.on('stream-message', onStreamMessage);
 const onStreamMessage = (uid, message) => {
 let data: Record<string, any>;
 try {
   message = new TextDecoder().decode(message);
   console.log(`receice ${message} from ${uid}`);

   data = JSON.parse(message);
 } catch (e) {
   console.error('invalid json string:', message);
   return;
 }

 if (data.type === 'QA') {
   // todo Logic for handling reply messages
 }
};

Request

Authorization
Provide your bearer token in the
Authorization
header when making requests to protected resources.
Example:
Authorization: Bearer ********************
Body Params application/json
text
string 
required
question
channel
string 
required
channel
Example
{
    "text": "hello",
    "channel": "f84fd"
}

Request samples

Shell
JavaScript
Java
Swift
Go
PHP
Python
HTTP
C
C#
Objective-C
Ruby
OCaml
Dart
R
Request Request Example
Shell
JavaScript
Java
Swift
curl --location --request POST 'https://video.a2e.ai/api/v1/streaming-avatar/ask' \
--header 'Content-Type: application/json' \
--data-raw '{
    "text": "hello",
    "channel": "f84fd"
}'

Responses

🟢200Success
application/json
Body
code
integer 
required
0 is OK
data
object 
required
trace_id
string 
required
Example
{
    "code": 0,
    "data": {},
    "trace_id": "9c8fd69b-80d0-4f8a-a119-941ed78d4960"
}
🟠400Bad Request
Modified at 2024-12-27 10:38:06
Previous
Get QA Context
Next
Let the Avatar Speak Directly
Built with