1. Messaging
Returning.AI
  • Getting Started
  • Users
    • User directory and provisioning
    • Get Users with Filters
      POST
    • Create New User
      POST
    • Get User Data
      POST
    • Manage User Account
      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
      • 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
      • Mini-game State and History
      • List user streak logs
      • List mini-game logs by user email
      • Get current mini-game and streak state
      • Update user spin-wheel information
    • Referral
      • Referral Program Integration
      • Get referral programs
      • Get user's referral summary
    • Rolling Data
      • Get Daily Calculation Data
      • Get Rolling Calculation Data
    • Match Predictions
    • Get tier configuration
      GET
    • Get daily user XP and coin changes
      POST
    • Search user gamification logs
      POST
    • Get user activity stats
      POST
  • Rewards & Redemptions
    • Store catalog to redemptions
    • Update redemption order status or refund
      PUT
    • List redemption orders by user email
      POST
    • List redemption statuses
      POST
    • Get redemption status by ID
      POST
    • List redemption orders by community
      POST
    • Create redemption order status
      POST
    • Get redemption order status history
      POST
  • Chart Analysis
    • Create Analysis
    • Get Analysis
    • Update Analysis
    • Delete Analysis
    • List Analyses
    • Append Drawings
  • Bulk Operations
    • Bulk user updates
    • 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
    • Channels
    • Leaderboard
    • Milestone
    • Socials
    • Store
  • Community Analytics
    • Get Loyalty Overview
    • Get Phone Verification Contacts
  • Store
    • Store catalog
    • 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
    • Community directory and appearance
    • 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
    • API key lifecycle
    • 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 definitions and history
    • 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
  • 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
      • Get user
      • 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
  1. Messaging

Upload message images

POST
/v1/messages/upload-image

What this endpoint does#

Uploads one or more image files for later use in channel messages. Send multipart/form-data with the field name images.
It does not send the message. There is no delete-upload route on this public surface. JSON {} is not a valid body.
INFO
Workflow
Authenticate with sendMessage → POST /v1/messages/upload-image as multipart images → save returned url values → pass them into send message.

Quick start#

Repeat the images field to upload more than one file.

Authentication and permission#

Send Authorization: Bearer <COMMUNITY_API_KEY>. Required permission is sendMessage. Keep the key server-side.

Complete examples#

Empty JSON (400). Content-Type: application/json with {} returns { "status": "error", "message": "No image buffers provided" }.
PNG (200). Multipart field images returns a top-level array:
[
  {
    "id": "<uploadId>",
    "name": "pixel.png",
    "url": "https://files.example.com/pixel.png",
    "type": "image/png",
    "size": 67
  }
]
Treat url as opaque. Do not hard-code a storage hostname in clients. Treat filenames as synthetic.

Success and readback#

HTTP 200. The body is a raw array, not { status, data }.
Each item includes id, name, url, type, and size. Persist url if a later send-message call needs it. There is no follow-up GET for the upload record.
CHECK
Readback
A 200 array with a url means the bytes were accepted. Sending the message is a separate call. If send fails, the uploaded file can still exist.

Errors and recovery#

StatusWhenRecovery
400 No image buffers providedJSON body, missing files, or empty multipartSend multipart/form-data with images.
401Missing or invalid Bearer tokenAdd a valid community key with sendMessage.
This endpoint expects image bytes, not CSV.

Retry safety#

WARNING
Exact retry
A timeout can hide a successful store. Do not blindly replay the same file until you have checked whether a url already returned. There is no idempotency key. Duplicate successful uploads create additional stored objects.

Gotchas#

Response is an array at the top level.
Field name is images, not file or csv.
Successful upload stores a file. Use a tiny fixture in tests.
Do not put the community API key in browser widget code.

Next steps#

Monitor and respond to messages
Use the returned URLs when composing send, reply, or react calls.

Request

Body Params multipart/form-data

Responses

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

🟠400Bad Request
🟠401Unauthorized
🟠403Forbidden
🔴500Server Error
Request Request Example
Shell
JavaScript
Java
Swift
curl --location 'https://adss-integration.returning.ai/apis/v1/messages/upload-image' \
--form 'images=@""'
Response Response Example
200 - Example 1
[
    {
        "id": "string",
        "name": "string",
        "url": "string",
        "type": "string",
        "size": 0
    }
]
Modified at 2026-08-19 03:29:21
Previous
React Message
Next
Leaderboards
Built with