Vonage · Schema
member
CommunicationsMessagingTelecommunicationsVideo ConferencingVoiceSMSVerificationReal-Time
Properties
| Name | Type | Description |
|---|---|---|
| id | object | |
| conversation_id | object | |
| _embedded | object | |
| state | object | |
| timestamp | object | |
| initiator | object | |
| channel | object | |
| media | object | |
| knocking_id | string | The ID of the original knocker request (if applicable). |
| invited_by | string | The member ID of the member that invited this member to the conversation (if applicable). |
| _links | object |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://raw.githubusercontent.com/api-evangelist/vonage/main/json-schema/vonage-member-schema.json",
"title": "member",
"x-generated": "2026-10-08",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/vonage-conversation-openapi.yml#/components/schemas/member",
"type": "object",
"properties": {
"id": {
"$ref": "#/$defs/member_id"
},
"conversation_id": {
"$ref": "#/$defs/conversation_id"
},
"_embedded": {
"type": "object",
"properties": {
"user": {
"$ref": "#/$defs/user_lite"
}
}
},
"state": {
"$ref": "#/$defs/member_state"
},
"timestamp": {
"$ref": "#/$defs/member_timestamp"
},
"initiator": {
"$ref": "#/$defs/member_initiator"
},
"channel": {
"$ref": "#/$defs/channel"
},
"media": {
"$ref": "#/$defs/media"
},
"knocking_id": {
"type": "string",
"description": "The ID of the original knocker request (if applicable)."
},
"invited_by": {
"type": "string",
"description": "The member ID of the member that invited this member to the conversation (if applicable)."
},
"_links": {
"type": "object",
"properties": {
"href": {
"$ref": "#/$defs/member_href"
}
}
}
},
"$defs": {
"channel": {
"description": "A user who joins a conversation as a member can have one channel per membership. For more details see [channel concept docs](/voice/voice-api/concepts/in-app-calling)",
"type": "object",
"oneOf": [
{
"type": "object",
"title": "App",
"description": "Member is using app channel type",
"properties": {
"type": {
"type": "string",
"description": "Channel type",
"enum": [
"app"
]
},
"from": {
"$ref": "#/$defs/member_channel_from"
},
"to": {
"type": "object",
"description": "Settings which control who this member can send messages to.",
"properties": {
"type": {
"type": "string",
"enum": [
"app"
]
},
"user": {
"description": "The user ID of the member that this member can send messages to.",
"type": "string"
}
}
}
},
"required": [
"type"
]
},
{
"type": "object",
"title": "Phone",
"description": "Member is using phone channel type",
"properties": {
"type": {
"type": "string",
"description": "Channel type",
"enum": [
"phone"
]
},
"from": {
"$ref": "#/$defs/member_channel_from"
},
"to": {
"type": "object",
"description": "Settings which control who this member can send messages to.",
"properties": {
"number": {
"type": "string",
"description": "The phone number of the member that this member can send messages to."
},
"type": {
"type": "string",
"enum": [
"phone"
]
}
}
}
},
"required": [
"type"
]
},
{
"type": "object",
"title": "SMS",
"properties": {
"type": {
"type": "string",
"description": "Channel type",
"enum": [
"sms"
]
},
"from": {
"$ref": "#/$defs/member_channel_from"
},
"to": {
"type": "object",
"properties": {
"number": {
"type": "string"
},
"type": {
"type": "string",
"enum": [
"sms"
]
}
}
}
}
},
{
"type": "object",
"title": "MMS",
"properties": {
"type": {
"type": "string",
"description": "Channel type",
"enum": [
"mms"
]
},
"from": {
"$ref": "#/$defs/member_channel_from"
},
"to": {
"type": "object",
"properties": {
"number": {
"type": "string"
}
}
}
}
},
{
"type": "object",
"title": "WhatsApp",
"properties": {
"type": {
"type": "string",
"description": "Channel type",
"enum": [
"whatsapp"
]
},
"from": {
"$ref": "#/$defs/member_channel_from"
},
"to": {
"type": "object",
"properties": {
"number": {
"type": "string"
}
}
}
}
},
{
"type": "object",
"title": "Viber",
"properties": {
"type": {
"type": "string",
"description": "Channel type",
"enum": [
"viber"
]
},
"from": {
"$ref": "#/$defs/member_channel_from"
},
"to": {
"type": "object",
"properties": {
"id": {
"type": "string"
}
}
}
}
},
{
"type": "object",
"title": "Messenger",
"properties": {
"type": {
"type": "string",
"description": "Channel type",
"enum": [
"messenger"
]
},
"from": {
"$ref": "#/$defs/member_channel_from"
},
"to": {
"type": "object",
"properties": {
"id": {
"type": "string"
}
}
}
}
}
]
},
"conversation_id": {
"type": "string",
"description": "The unique identifier for this conversation"
},
"media": {
"type": "object",
"description": "Details about the current media setting states",
"properties": {
"audio_settings": {
"type": "object",
"properties": {
"enabled": {
"description": "is audio currently enabled",
"type": "boolean"
},
"earmuffed": {
"description": "is audio currently earmuffed",
"type": "boolean"
},
"muted": {
"description": "is audio currently muted",
"type": "boolean"
}
}
},
"audio": {
"description": "Is an audio connection possible",
"type": "boolean"
}
}
},
"member_channel_from": {
"type": "object",
"description": "Which channel types this member accepts messages from (if not set, all are accepted)",
"properties": {
"type": {
"description": "Comma sperated list, can include channel types `app`, `phone`, `sms`, `mms`, `whatsapp` , `viber`, or `messenger`",
"type": "string"
}
}
},
"member_href": {
"type": "string",
"format": "url",
"description": "A link towards a member included in Conversation API"
},
"member_id": {
"type": "string",
"description": "Member ID"
},
"member_initiator": {
"oneOf": [
{
"type": "object",
"title": "Invited by User",
"properties": {
"joined": {
"type": "object",
"properties": {
"is_system": {
"type": "boolean",
"description": "`false` if the user was invited by a user."
},
"user_id": {
"$ref": "#/$defs/user_id"
},
"member_id": {
"$ref": "#/$defs/member_id"
}
}
}
}
},
{
"type": "object",
"title": "Invited by Admin JWT",
"properties": {
"invited": {
"type": "object",
"properties": {
"is_system": {
"type": "boolean",
"description": "`true` if the user was invited by an admin JWT."
}
}
}
}
}
]
},
"member_state": {
"type": "string",
"description": "The state that the member is in. Possible values are `INVITED`, `JOINED`, `LEFT`, or `UNKNOWN`",
"enum": [
"INVITED",
"JOINED",
"LEFT",
"UNKNOWN"
]
},
"member_timestamp": {
"type": "object",
"properties": {
"invited": {
"description": "The time that the member was invited to a conversation",
"$ref": "#/$defs/timestamp"
},
"joined": {
"description": "The time that the member joined the conversation",
"$ref": "#/$defs/timestamp"
},
"left": {
"description": "The time that the member left the conversation",
"$ref": "#/$defs/timestamp"
}
}
},
"timestamp": {
"type": "string"
},
"user_display_name": {
"type": [
"string",
"null"
],
"description": "A string to be displayed as user name. It does not need to be unique"
},
"user_id": {
"type": "string",
"description": "User ID"
},
"user_links": {
"type": "object",
"properties": {
"self": {
"type": "object",
"properties": {
"href": {
"type": "string"
}
}
}
}
},
"user_lite": {
"type": "object",
"properties": {
"id": {
"$ref": "#/$defs/user_id"
},
"name": {
"$ref": "#/$defs/user_name"
},
"display_name": {
"$ref": "#/$defs/user_display_name"
},
"_links": {
"$ref": "#/$defs/user_links"
}
}
},
"user_name": {
"type": [
"string",
"null"
],
"description": "Unique name for a user"
}
}
}
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
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/vonage-member"
All schemas
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.