1. Messaging
Returning.AI
  • Getting Started
  • Users
    • Get user
      GET
    • Get Users with Filters
      POST
    • Create New User
      POST
    • Get User Data
      POST
    • Manage User Account
      POST
    • List mini-game logs by user email
      POST
    • Get user's current Mini Games and Streak stats
      POST
    • Get User Milestones
      POST
    • Update User Data, Identifier, And Roles
      POST
    • Update User XP and Currency
      POST
  • Messaging
    • Agent messaging workflow
    • Get Messages
      GET
    • Send Message
      POST
    • Reply Message
      POST
    • React Message
      POST
    • Upload message images
      POST
  • Gamification
    • Leaderboards
      • List leaderboards with pagination
      • Create a new leaderboard
      • Update an existing leaderboard
      • Get a single leaderboard by ID
      • Delete a leaderboard
    • Streaks & Mini Games
      • List user streak logs
      • Update user spin-wheel information
    • Referral
      • Get referral programs
      • Get user's referral summary
    • Rolling Data
      • Get Daily Calculation Data
      • Get Rolling Calculation Data
    • Match Predictions
    • Get tiers and XP settings
      GET
    • Get daily user gamification history
      POST
    • List user gamification logs
      POST
    • Get user activity stats
      POST
  • Rewards & Redemptions
    • Update redemption order status or refund
    • List redemption orders by user email
    • List redemption statuses
    • Get redemption status by ID
    • List redemption orders by community
    • Create redemption order status
    • Get redemption order status history
  • Chart Analysis
    • Create Analysis
    • Get Analysis
    • Update Analysis
    • Delete Analysis
    • List Analyses
    • Append Drawings
  • Bulk Operations
    • List bulk update jobs
    • Get bulk update job status
    • Get bulk update job details
    • Bulk update users from CSV
    • Bulk update premium currency from CSV
  • Channels
    • Iframe
    • List integration channels
  • Events
    • Outgoing webhooks
      • Encryption
      • User Joins Server
      • User Visits server
      • New Message Posted Anywhere
      • New Message Posted To channel
      • Purchased Store Item
    • Incoming webhooks
      • API Keys & Encryption
      • Send message into channels
      • Update Custom User Fields
      • Update In-game currency
  • Widgets
    • Authenticated Widgets
    • Public widgets
  • Community Analytics
    • Get Loyalty Overview
    • Get Phone Verification Contacts
  • Store
    • Purchase History
      • Update redemption instructions or voucher details
    • Categories
      • List Store categories
      • Create Store category
      • Get Store category by ID
      • Update Store category
      • Delete Store category
    • Products
      • List products
      • Update products in bulk
      • Create products in bulk
      • Create product with vouchers
      • Read product
      • Update product and append vouchers
      • Delete product
    • Redemption-transaction
      • Get redemption transaction detail
    • Get Store configuration
    • Update Store configuration
  • Community
    • Appearance
      • Update community theme colors
      • Update community bot profile
      • Update community URL metadata
      • Update community name and URL
    • Community Users
      • Get community users
      • Get user
    • Create community
  • API Keys
    • Community API Keys
      • Create API key
      • Read API keys
      • Delete API key
      • Update API key
    • User API Keys
      • List user API keys
      • Create user API key
      • Update user API key
      • Delete user API key
      • Get current API key information
  • User Fields
    • User Field History
      • Get all user field histories in a community
      • Get user field histories for a specific field
      • Get user field histories for a specific user
      • Get user field histories of specific user field and user
      • Update A User Field Value
      • Deprecated Field-First History Write
      • Deprecated Field-First History Read
    • Get A User Field Definition
    • Update A User Field Definition
    • Create A User Field Definition
    • Delete A User Field Definition
    • List User Field Definitions
    • Delete user field
    • Update user field
    • Get specific user field
  • Legacy
    • Servers
      • Create server
      • List servers
      • Update server metadata
    • Bulk Operations
      • Bulk import users from CSV
    • Authentication
      • Secure Auth
      • Register user with password
      • Verify user email
      • Log in user with password
    • Badges
      • List badges
      • Create badge
      • Update badge
      • Delete badge
      • Remove badge from user
      • Award badge to user
    • Messaging
    • Roles & Permissions
      • List server roles
      • Create role
      • Update role
      • Delete role
      • List user roles
      • Add role to user
      • Remove role from user
    • Users
      • Upload user avatar
    • Channels
      • Create channel
      • Update channel
      • Delete channel
    • API Keys
      • List integration API keys
      • Create integration API key
      • Delete integration API key
      • Update integration API key
  • Schemas
    • Sample Schemas
    • Schemas
    • Outgoing webhooks
    • Analysis
    • Pet
    • Category
    • Tag
    • ValidationError
    • NotFoundError
    • InternalServerError
    • NotImplementedError
    • CreateUserFieldHistoryResponse
    • CreateUserFieldHistorySuccessResponse
    • UserFieldHistoryItem
    • GetUserFieldHistoriesResponse
    • UserFieldHistoriesValidationError
    • UserFieldHistoriesMetaWithValidation
    • UserFieldHistoriesMetaWithPagination
    • GetUserFieldHistoriesSuccessResponse
    • CreateUserFieldResponse
    • CreateUserFieldSuccessResponse
    • DeleteUserFieldResponse
    • DeleteUserFieldSuccessResponse
    • UserFieldCreator
    • GetUserFieldResponse
    • GetUserFieldSuccessResponse
    • ValidationErrorItem
    • GetUserFieldsMetaResponse
    • CreatorInfo
    • UserFieldResponse
    • GetUserFieldsSuccessResponse
    • UpdateUserFieldResponse
    • UpdateUserFieldPayload
    • UpdateUserFieldSuccessResponse
    • MetaResponse
    • GetUserResponse
    • GetUserSuccessResponse
    • Purchased store item
    • ErrorResponse
    • New message posted to channel
    • UpdateAnalysisRequest
    • User visits server
    • AppendDrawingsRequest
    • User join server
    • CreateAnalysisResponse
    • GetAnalysisResponse
    • UpdateAnalysisResponse
    • AppendDrawingsResponse
    • AnalysisMetadata
    • Expiry
    • Levels
    • LevelEntry
    • Drawing
    • HorizontalLineDrawing
    • LineDrawing
    • RectangleDrawing
    • ParallelDrawing
    • FibonacciRetracementDrawing
    • Coordinate
    • DrawingStyle
    • AnalysisDetail
    • AnalysisSummary
    • CreateAnalysisRequest
    • ListAnalysesResponse
    • StandardApiError
    • StandardSuccessEnvelope
    • PurchasedStoreItemEvent
    • ChannelMessagePostedEvent
    • UserVisitedCommunityEvent
    • UserJoinedCommunityEvent
  1. Messaging

Get Messages

GET
/v1/messages

What this endpoint does#

Returns the newest normal channel messages visible to the Community API key. Use it to monitor one channel, filter messages by author, or inspect community-wide recent activity before sending a reply or reaction.
WARNING
This is not a direct-message history endpoint. It reads normal/text channel messages only. Direct-message monitoring is not currently agent-ready.
INFO
Agent workflow
List channels -> poll messages -> checkpoint unseen message.id values -> reply or react using that ID.

Quick start#

Use Authorization: Bearer <communityApiKey>. Keep the key server-side. A browser session token is not a Community API key. Required permission: getMessages.

Authentication and permission#

Use Authorization: Bearer <communityApiKey> from a server-side secret. A browser session token is not a Community API key. Required permission: getMessages.

Complete examples#

Each returned item contains:
{
  "id": "<messageId>",
  "message": "Can someone help with my account?",
  "user": {
    "user_id": "<numericPlatformUserId>",
    "email": "member@example.com"
  },
  "channel": {
    "channel_id": "<channelObjectId>",
    "name": "support"
  },
  "timestamp": "2026-08-15T04:00:00.000Z"
}
FieldUse it for
idSend as messageId to reply or react. This is the target message.
user.user_idFilter later reads or call POST /v1/users/info. Do not use it as mutation sender.
user.emailIdentify/filter the author or look the user up. It is not required as a recipient for a normal-channel reply.
channel.channel_idScope the next poll.
sender on reply/react is a different concept: it is the existing community user whose identity the agent acts as. Configure the agent user's email or exact platform username. Do not copy the incoming author's numeric ID or display name into sender.
GET messages does not return username. If username is genuinely needed, call POST /v1/users/info with the returned email or numeric ID and read data.username. Username lookup is not needed merely to reply because message.id already targets the conversation.

Success and readback#

Results are newest-first. Process each page oldest-to-newest and checkpoint every processed message ID.
count defaults to 50 and accepts 1 through 100.
There is no cursor. Poll with overlap and deduplicate by opaque message ID.
Omitting channel_id returns a community-wide newest-first normal-message feed.
data.total is the number returned, not total stored history.
Use channel_id and user_id, not camelCase query names.
Do not send both user_id and email.
This endpoint reads normal messages, not direct-message history.
TIP
Retry rule
GET is read-only. An exact retry is safe after a transport error or 5xx; use bounded exponential backoff.
200 returns { status, message, data: { total, messages } }. Empty or zero-result responses return data.messages: []. There is no cursor; count defaults to 50 and accepts 1-100.

Errors and recovery#

StatusMeaningRecovery
400Invalid count, query casing, identifier combination, or ObjectIdCorrect the query.
401Missing/invalid keyUse a Community API key in the Authorization header.
403Missing permission or filtered user cannot view the channelFix key/channel access; do not broaden the query.
404Filtered user not found in this communityCorrect the email or numeric user ID.

Retry safety#

Reads are safe to retry. Keep a durable set/checkpoint of processed message.id values and advance it only after the whole batch is processed.

Gotchas#

Use channel_id and user_id, not camelCase. Omitting channel_id returns recent normal messages across the community. This endpoint does not return direct-message history or reaction state. Do not infer username from an email prefix.

Next steps#

Reply Message: reply using returned id as messageId.
React Message: react using returned id as messageId.
Send Message: create a top-level message.
Get User Data: resolve more user context or data.username.

Request

Query Params

Header Params

Responses

🟢200OK
application/json
Request completed successfully.
Bodyapplication/json

🟠400Bad Request
🟠401Unauthorized
🟠403Forbidden
🟠404Record Not Found
🔴500Server Error
Request Request Example
Shell
JavaScript
Java
Swift
curl --location 'https://api.returning.ai/v1/messages?user_id=%3CnumericPlatformUserId%3E&channel_id=%3CchannelObjectId%3E&count=25&email=member%40example.com' \
--header 'Authorization: Bearer <communityApiKey>'
Response Response Example
200 - Success Example
{
    "status": "success",
    "message": "messages fetched successfully",
    "data": {
        "total": 10,
        "messages": [
            {
                "id": "689b908502ad38f",
                "message": "Hi",
                "user": {
                    "user_id": "1243",
                    "email": "johndoe@gmail.com"
                },
                "channel": {
                    "channel_id": "663347f4361726479c6",
                    "name": "Rules"
                },
                "timestamp": "2025-08-05T01:39:43.561Z"
            },
         ...
            {
                "id": "6633473f8a0f479cf",
                "message": "Good morning everyone!",
                "user": {
                    "user_id": "1243",
                    "email": "johndoe@gmail.com"
                },
                "channel": {
                    "channel_id": "66334714361726479c6",
                    "name": "General"
                },
                "timestamp": "2024-05-02T07:56:47.276Z"
            }
        ]
    }
}
Modified at 2026-08-15 07:17:41
Previous
Agent messaging workflow
Next
Send Message
Built with