1. Bulk Operations
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
    • 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
    • Bulk user updates
    • List bulk update jobs
      GET
    • Get bulk update job status
      GET
    • Get bulk update job details
      GET
    • Bulk update users from CSV
      POST
    • Bulk update premium currency from CSV
      POST
  • 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. Bulk Operations

Bulk update users from CSV

POST
/v1/users/bulk-update

What this endpoint does#

Queues a CSV or JSON-array job that updates many members in the API key's community. Rows are keyed by Email.
The POST 200 means the job was accepted. It is not proof that rows applied. The body has no job id. Use a unique log_name, then list jobs and poll status.
INFO
Workflow
Build Email-keyed CSV or JSON → POST /v1/users/bulk-update → GET /v1/users/bulk-update and match name → poll status until Completed → read details.

Quick start#

Multipart CSV uses field data plus log_name. Optional currency_cap is a boolean query/form flag on the CSV path.

Authentication and permission#

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

Complete examples#

Queued (200). message is Bulk update user process is queued. Envelope { status: "success", message, data: { message } }. No job id.
Empty body (400). Either a CSV file or JSON data must be provided.
JSON object (400). JSON data must be an array.
Empty array (400). JSON data array cannot be empty.
Treat emails and log_name as synthetic. Do not queue jobs against live members from documentation.

Success and readback#

HTTP 200 on accept. Readback is list jobs matching name to log_name, then status until Completed, then details.
POST /v1/users/info can mask first and last name, so it is a weak readback for profile-name columns.
CHECK
Queued is not applied
Do not treat this POST as row-level success. Poll status. Details before Completed can still describe the original payload.

Errors and recovery#

StatusWhenRecovery
400 Either a CSV file or JSON data must be providedNo file and no dataSend multipart CSV or a JSON array.
400 JSON data must be an arraydata is an objectSend an array of rows.
400 JSON data array cannot be emptydata: []Include at least one row.
400 Uploaded file must be a CSVNon-CSV multipartUpload CSV.
401Missing or invalid tokenAdd a valid community key with bulkUpdateUser.

Retry safety#

WARNING
Exact retry
A timeout can hide a successful queue. List jobs by log_name before posting the same file again. Duplicate POSTs create additional jobs. There is no idempotency key.

Gotchas#

Identifier is Email, not username, Mongo _id, or numeric userId.
Role replaces the community role set. It is not admin userlist Role_op=subtract.
Numerical columns need an _op (add, subtract, overwrite) where documented.
Custom fields use the display name as the header.
Premium-currency jobs use a different POST and may not appear in this list.

Next steps#

List bulk update jobs
Match log_name to data.data[].name, then poll status.

Request

Header Params

Body Params multipart/form-data

Responses

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

🟠400Bad Request
🟠401Unauthorized
🟠403Forbidden
🟠409
🔴500Server Error
Request Request Example
Shell
JavaScript
Java
Swift
curl --location 'https://adss-integration.returning.ai/apis/v1/users/bulk-update' \
--header 'Authorization: Bearer 0f1945a89000bfa4a58c099299ccc8c82dc733ec5f752ec44bf0548b8e59b417' \
--form 'data=@"/Users/dennykate/Downloads/bulk-update-10 (4).csv"' \
--form 'log_name="CS - >5.1k User"'
Response Response Example
200 - Success Example
{
    "status": "success",
    "message": "Bulk update user process is queued",
    "data": {
        "message": "Bulk update user process is queued. You can check in Api Log ( community settings )"
    }
}
Modified at 2026-08-19 13:43:21
Previous
Get bulk update job details
Next
Bulk update premium currency from CSV
Built with