In-App Messaging Overview Developer Preview

Nexmo In-App Messaging enables you to build conversation features where communication can take place across multiple platforms.

The context of the conversations is maintained though each communication event taking place within a conversation, no matter the medium.

In-App Messaging is in developer preview

Currently In-App Messaging offers basic IP messaging with the following features:

  • Conversation creation and management
  • Sending and receiving text
  • Member invite management
  • Cache support
  • Typing indicators
  • Message sent, delivered and read receipts
  • Image support
  • Push notifications


Conversation > A conversation is a shared core component that Nexmo APIs rely on. Conversations happen over multiple mediums and and can have associated Users through Memberships.

User > The concept of a user exists in Nexmo APIs, you can associate one with a user in your own application if you choose. A user can have multiple memberships to conversations and can communicate with other users through various different mediums.

Member > Memberships connect users with conversations. Each membership has one conversation and one user however a user can have many memberships to conversations just as conversations can have many members.

Getting Started

To start you'll need a Nexmo Account, an Application and the private key provided when you created the application. Follow the prerequisites if you've not got an Application already.


Create a Conversation

curl -X "POST" "" \
     -H "Authorization: Bearer <JWT>"
nexmo conversation:create display_name="My Conversation"
Conversation created: CON-aaaaaaaa-bbbb-cccc-dddd-0123456789ab

Create a User

curl -X "POST" "" \
     -H "Authorization: Bearer <JWT>" \
     -d name='Ann Example'
nexmo user:create name=alex
User created: USR-aaaaaaaa-bbbb-cccc-dddd-0123456789ab

Join the Conversation

curl -X "POST" "<CONVERSATION_ID>/members" \
     -H "Authorization: Bearer <JWT>" \
     -d action='join' \
     -d user_id='<USER_ID>' \
     -d channel.type='app'
nexmo member:add CON-aaaaaaaa-bbbb-cccc-dddd-0123456789ab user_id=USR-aaaaaaaa-bbbb-cccc-dddd-0123456789ab channel='{"type":"app"}' action=join
Member added: MEM-aaaaaaaa-bbbb-cccc-dddd-0123456789ab

Try out the quickstarts

SDK Documentation


Find the SDKs online