Messagebird · Schema

MessageBird Conversation

Represents an omnichannel conversation thread in the MessageBird Conversations API, consolidating messages from multiple channels into a single contact interaction.

Properties

Name Type Description
id string The unique identifier of the conversation.
contactId string The unique identifier of the contact associated with this conversation.
contact object
channels array The messaging channels used in this conversation.
status string The status of the conversation.
createdDatetime string The date and time when the conversation was created.
updatedDatetime string The date and time when the conversation was last updated.
lastReceivedDatetime string The date and time of the last received message.
lastUsedChannelId string The identifier of the last channel used in the conversation.
View JSON Schema on GitHub

JSON Schema

messagebird-conversation-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://api-evangelist.com/schemas/messagebird/conversation.json",
  "title": "MessageBird Conversation",
  "description": "Represents an omnichannel conversation thread in the MessageBird Conversations API, consolidating messages from multiple channels into a single contact interaction.",
  "type": "object",
  "required": ["id"],
  "properties": {
    "id": {
      "type": "string",
      "description": "The unique identifier of the conversation."
    },
    "contactId": {
      "type": "string",
      "description": "The unique identifier of the contact associated with this conversation."
    },
    "contact": {
      "$ref": "#/$defs/Contact"
    },
    "channels": {
      "type": "array",
      "description": "The messaging channels used in this conversation.",
      "items": {
        "$ref": "#/$defs/Channel"
      }
    },
    "status": {
      "type": "string",
      "description": "The status of the conversation.",
      "enum": ["active", "archived"]
    },
    "createdDatetime": {
      "type": "string",
      "format": "date-time",
      "description": "The date and time when the conversation was created."
    },
    "updatedDatetime": {
      "type": "string",
      "format": "date-time",
      "description": "The date and time when the conversation was last updated."
    },
    "lastReceivedDatetime": {
      "type": "string",
      "format": "date-time",
      "description": "The date and time of the last received message."
    },
    "lastUsedChannelId": {
      "type": "string",
      "description": "The identifier of the last channel used in the conversation."
    }
  },
  "$defs": {
    "Contact": {
      "type": "object",
      "description": "A contact associated with one or more conversations.",
      "properties": {
        "id": {
          "type": "string",
          "description": "The unique identifier of the contact."
        },
        "href": {
          "type": "string",
          "format": "uri",
          "description": "The URL of the contact resource."
        },
        "msisdn": {
          "type": "string",
          "description": "The phone number of the contact in international format."
        },
        "displayName": {
          "type": "string",
          "description": "The display name of the contact."
        },
        "firstName": {
          "type": "string",
          "description": "The first name of the contact."
        },
        "lastName": {
          "type": "string",
          "description": "The last name of the contact."
        },
        "customDetails": {
          "type": "object",
          "description": "Custom details associated with the contact.",
          "additionalProperties": {
            "type": "string"
          }
        },
        "createdDatetime": {
          "type": "string",
          "format": "date-time",
          "description": "The date and time when the contact was created."
        },
        "updatedDatetime": {
          "type": "string",
          "format": "date-time",
          "description": "The date and time when the contact was last updated."
        }
      }
    },
    "Channel": {
      "type": "object",
      "description": "A messaging channel through which conversations take place.",
      "properties": {
        "id": {
          "type": "string",
          "description": "The unique identifier of the channel."
        },
        "name": {
          "type": "string",
          "description": "The name of the channel."
        },
        "platformId": {
          "type": "string",
          "description": "The messaging platform.",
          "enum": ["sms", "whatsapp", "facebook", "telegram", "line", "wechat", "email"]
        },
        "status": {
          "type": "string",
          "description": "The status of the channel.",
          "enum": ["active", "inactive", "pending"]
        },
        "createdDatetime": {
          "type": "string",
          "format": "date-time",
          "description": "The date and time when the channel was created."
        },
        "updatedDatetime": {
          "type": "string",
          "format": "date-time",
          "description": "The date and time when the channel was last updated."
        }
      }
    },
    "ConversationMessage": {
      "type": "object",
      "description": "A message within a conversation.",
      "properties": {
        "id": {
          "type": "string",
          "description": "The unique identifier of the message."
        },
        "conversationId": {
          "type": "string",
          "description": "The conversation this message belongs to."
        },
        "channelId": {
          "type": "string",
          "description": "The channel through which the message was sent."
        },
        "platform": {
          "type": "string",
          "description": "The messaging platform."
        },
        "to": {
          "type": "string",
          "description": "The recipient identifier."
        },
        "from": {
          "type": "string",
          "description": "The sender identifier."
        },
        "direction": {
          "type": "string",
          "description": "The direction of the message.",
          "enum": ["sent", "received"]
        },
        "status": {
          "type": "string",
          "description": "The delivery status.",
          "enum": ["accepted", "pending", "sent", "delivered", "read", "failed", "deleted"]
        },
        "type": {
          "type": "string",
          "description": "The type of content.",
          "enum": ["text", "image", "video", "audio", "file", "location", "hsm"]
        },
        "content": {
          "type": "object",
          "description": "The message content, structure depends on type."
        },
        "createdDatetime": {
          "type": "string",
          "format": "date-time",
          "description": "The date and time when the message was created."
        },
        "updatedDatetime": {
          "type": "string",
          "format": "date-time",
          "description": "The date and time when the message was last updated."
        }
      }
    }
  }
}

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.
All 92 tools →

Call it yourself

curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/messagebird-conversation"
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.