Avatar
A catalog avatar — the visual identity a persona presents in prejoin cards and meetings. Global curated avatars have `owner_membership_id: null`; avatars you generate or upload are owned by your account and visible only to you.
Properties
| Name | Type | Description |
|---|---|---|
| id | string | |
| url | string | Public image URL. Assigning the avatar copies this into the persona's `avatar` field. |
| category | string | Business-role category, e.g. `recruiter`, `sales`, `coach`, `executive`, `casual`, `illustrated`, `professional`. |
| gender | stringnull | Drives voice pairing. `neutral` for illustrated/abstract avatars. |
| default_voice_id | stringnull | Suggested voice for this avatar. Applied when you set `sync_voice: true`. |
| source | string | `curated` — global catalog. `generated`/`uploaded` — account-owned (generation API coming soon). |
| orientation | string | The avatar's shape, which also decides the meeting layout. `portrait` (3:4) renders a tile beside the participant's camera. `landscape` (16:9, framed like a video call) fills the meeting stage with th |
| environment | stringnull | Room the still was shot in, e.g. `hospital-clinic`, `conference-room`, `office-cityview`, `executive-office`, `startup-office`, `broadcast-studio`, `home-study`. `null` for the legacy studio portraits |
| identity_key | stringnull | Groups every shape and room of the same face, e.g. `F-3`. Filter on it to offer the same person in another setting. `null` for avatars that are their own identity. |
| video_url | stringnull | Seamless idle loop matching this exact still. When present the meeting plays it under the agent until a live renderer takes over, falling back to the still if it cannot load. |
| owner_membership_id | stringnull | `null` for the global curated catalog; your membership ID for avatars you own. |
| tags | object | |
| width | integernull | |
| height | integernull | |
| Voice | object | |
| created_at | string | |
| updated_at | string |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://artifacts.apis.io/waterr-ai/json-schema/waterr-ai-avatar-schema.json",
"title": "Avatar",
"description": "A catalog avatar — the visual identity a persona presents in prejoin cards and meetings. Global curated avatars have `owner_membership_id: null`; avatars you generate or upload are owned by your account and visible only to you.",
"x-generated": "2026-10-31",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/_original/waterr-ai-api-openapi.yml#/components/schemas/Avatar",
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid"
},
"url": {
"type": "string",
"description": "Public image URL. Assigning the avatar copies this into the persona's `avatar` field."
},
"category": {
"type": "string",
"description": "Business-role category, e.g. `recruiter`, `sales`, `coach`, `executive`, `casual`, `illustrated`, `professional`."
},
"gender": {
"type": [
"string",
"null"
],
"enum": [
"male",
"female",
"neutral"
],
"description": "Drives voice pairing. `neutral` for illustrated/abstract avatars."
},
"default_voice_id": {
"type": [
"string",
"null"
],
"format": "uuid",
"description": "Suggested voice for this avatar. Applied when you set `sync_voice: true`."
},
"source": {
"type": "string",
"enum": [
"curated",
"generated",
"uploaded"
],
"description": "`curated` — global catalog. `generated`/`uploaded` — account-owned (generation API coming soon)."
},
"orientation": {
"type": "string",
"enum": [
"portrait",
"landscape"
],
"description": "The avatar's shape, which also decides the meeting layout. `portrait` (3:4) renders a tile beside the participant's camera. `landscape` (16:9, framed like a video call) fills the meeting stage with the participant's camera floating in a corner. Measured from the image at ingest — never taken from the request body."
},
"environment": {
"type": [
"string",
"null"
],
"description": "Room the still was shot in, e.g. `hospital-clinic`, `conference-room`, `office-cityview`, `executive-office`, `startup-office`, `broadcast-studio`, `home-study`. `null` for the legacy studio portraits."
},
"identity_key": {
"type": [
"string",
"null"
],
"description": "Groups every shape and room of the same face, e.g. `F-3`. Filter on it to offer the same person in another setting. `null` for avatars that are their own identity."
},
"video_url": {
"type": [
"string",
"null"
],
"description": "Seamless idle loop matching this exact still. When present the meeting plays it under the agent until a live renderer takes over, falling back to the still if it cannot load."
},
"owner_membership_id": {
"type": [
"string",
"null"
],
"format": "uuid",
"description": "`null` for the global curated catalog; your membership ID for avatars you own."
},
"tags": {
"type": "object"
},
"width": {
"type": [
"integer",
"null"
]
},
"height": {
"type": [
"integer",
"null"
]
},
"Voice": {
"$ref": "#/$defs/Voice"
},
"created_at": {
"type": "string",
"format": "date-time"
},
"updated_at": {
"type": "string",
"format": "date-time"
}
},
"$defs": {
"Voice": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"partner_voice_id": {
"type": "string"
},
"name": {
"type": "string"
},
"provider": {
"type": "string"
},
"user_basic_info_id": {
"type": "string"
},
"created_at": {
"type": "string",
"format": "date-time"
},
"updated_at": {
"type": "string",
"format": "date-time"
}
}
}
}
}
Work with this as data
Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for schemas
4 MCP tools reach this
find_json_schemasBrowse and filter every JSON Schema in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
curl "https://apis.io/api/v1/json-schemas/waterr-ai-avatar"
curl "https://apis.io/api/v1/json-schemas?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.