1. Products
Returning.AI
  • Getting Started
  • Authentication
    • Register user with password
      POST
    • Verify user email
      POST
    • Log in user with password
      POST
    • Secure Auth
      GET
  • 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
  • Messaging
    • Message Actions
      • Direct Channel
        • private DM channel
          • Reply Message
          • Send Message
          • React Message
        • public channel
          • Reply Message
          • Send Message
          • React Message
      • Forum Channel
        • Send Message
        • Reply Message
        • React Message
      • Text Channel
        • Reply Message
        • Send Message
        • React Message
      • Iframe Channel
        • Reply Message
        • Send Message
        • React Message
    • 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
    • Get tiers and XP settings
    • Get daily user gamification history
    • List user gamification logs
    • Get user activity stats
  • Rewards & Redemptions
    • Update redemption order status
    • 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
  • Store
    • Purchase History
      • Update purchase history 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
        GET
      • Create products in bulk
        POST
      • Create product with vouchers
        POST
      • Update products in bulk
        PUT
      • Read product
        GET
      • Update product and append vouchers
        PUT
      • Delete product
        DELETE
    • Get store configuration
      GET
    • Update store configuration
      PUT
  • Community Analytics
    • Get Loyalty Overview
  • 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
      • Create user field history for specific user
      • Create user field history
      • Get user field histories
    • Get Specific User Field
    • Update Custom User Field
    • Create user field
    • Delete Custom User Field
    • Get all user fields for a community
    • 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
    • Badges
      • List badges
      • Create badge
      • Update badge
      • Delete badge
      • Remove badge from user
      • Award badge to user
    • Messaging
      • Reply to message
      • Send message
      • React to message
    • 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. Products

Create products in bulk

POST
/products/bulk
Creates up to 100 voucher products for the API-key community and returns the created public product records.
Use this endpoint when a partner integration needs to import many store products at once. Send a raw JSON array for direct server-to-server integrations, or upload a CSV file with multipart form-data for spreadsheet-based operational imports.
Authentication:
Bearer API key in the Authorization header. Example: Bearer XXXXXX.
Required API-key permission: store.
The community is resolved from the API key token; do not pass communityID.
Missing, invalid, expired, or insufficient credentials return 401 or 403.
Request formats:
application/json: raw array of product create objects. Do not wrap the array in an object such as products.
multipart/form-data: CSV upload using the file field.
CSV MIME type must be text/csv, application/csv, or application/vnd.ms-excel.
CSV file size must be 10 MiB or less.
Bulk limits and validation:
Maximum 100 products per request.
Each JSON item follows the same full body contract as POST /products.
categoryName, productPermission, and purchaseStatusOverrideName use readable names resolved inside the API-key community.
vouchers should be an empty array when no vouchers should be created.
voucherExpireDate may be an empty string only when vouchers is empty.
Duplicate voucher codes in the upload, or voucher codes that already exist for the product, can return 409.
Validation errors include malformed JSON arrays, object wrappers, unsupported CSV MIME types, missing CSV file field, invalid CSV rows, invalid DTO fields, and product count limit violations.
CSV rules:
Rows with Name start a new product.
Rows without Name append permission entries to the previous product row.
Continuation rows cannot include scalar product columns such as Price, Category Name, Vouchers, or Voucher Expire Date.
Supported headers are Name, Description, Image, Price, Category Name, Discount Enabled, Discount Price, Discount Start Date, Discount End Date, User Information Enabled, Collect Name, Collect Phone, Collect Address, Prioritize Expiring Vouchers, Display Remaining Quantity, Expiring Highlight Enabled, Expiring Highlight Duration, Expiring Highlight Timeframe, Archived, Redemption Instructions, Product Access Enabled, Purchase Status Override Name, Vouchers, Voucher Expire Date, Permission Enabled, Permission Type, Roles, Tags, Users, Combination Type, Combination Values, Special Price, Special Price Enabled, Purchase Limit Enabled, Purchase Limit Quantity, Purchase Limit Interval Count, Purchase Limit Interval Unit, Access Level, and Exclusive Tag Enabled.
Side effects:
Creates voucher products in the resolved community.
Creates submitted voucher codes when vouchers is not empty.
Publishes PRODUCT_EVENTS.CREATE_PRODUCTS through the partner publisher path.
The store service validates readable references, persists products, creates vouchers, and returns readable category, permission, and purchase-status fields.
Product data becomes available to store read endpoints after the store service persists the bulk operation.
Rate limits:
Standard API rate limits apply.
Related endpoints:
GET /products lists products.
POST /products creates one product.
GET /products/{productID} reads one product.
PUT /products/{productID} updates one product.
PUT /products/bulk updates products in bulk.
DELETE /products/{productID} deletes one product.

Request

Header Params

Body Params
application/json
Required

Examples

Responses

🟢201Created
application/json
Products created for the API-key community.
Bodyapplication/json

🟠400Bad Request
🟠401Unauthorized
🟠403Forbidden
🟠409Server Error
🔴500Server Error
🔴502Bad Gateway
Request Request Example
Shell
JavaScript
Java
Swift
curl --location 'https://adss-integration.returning.ai/apis/products/bulk' \
--header 'Authorization: Bearer XXXXXX' \
--header 'Content-Type: application/json' \
--data '[
    {
        "name": "Premium Voucher",
        "description": "<p>Premium access reward.</p>",
        "image": "https://example.com/product.png",
        "price": 100,
        "categoryName": "Premium Rewards",
        "discountPrice": 90,
        "isDiscountEnabled": false,
        "discountStartDate": null,
        "discountEndDate": null,
        "userInformation": {
            "isEnabled": false,
            "shouldCollectName": false,
            "shouldCollectPhone": false,
            "shouldCollectAddress": false
        },
        "shouldPrioritiesExpiringVouchers": false,
        "shouldDisplayRemainingQuantity": true,
        "expiringVoucherHighlight": {
            "isEnabled": false,
            "duration": 7,
            "timeframe": "days"
        },
        "isArchived": false,
        "redemptionInstructions": "<p>Show this voucher at checkout.</p>",
        "productPermission": [
            {
                "isEnabled": true,
                "type": "role",
                "permission": {
                    "roleNames": [
                        "VIP Member"
                    ],
                    "tagNames": [
                        "Early Access"
                    ],
                    "usernames": [
                        "alex"
                    ],
                    "combination": [
                        {
                            "type": "role",
                            "values": [
                                "VIP Member"
                            ]
                        }
                    ]
                },
                "purchaseAccess": {
                    "specialPrice": 80,
                    "isSpecialPriceEnabled": false
                },
                "purchaseLimit": {
                    "isPurchaseLimitEnabled": false,
                    "quantity": 1,
                    "intervalCount": 1,
                    "intervalUnit": "months"
                },
                "accessLevel": "full-access",
                "isExclusiveTagEnabled": false
            }
        ],
        "isProductAccessEnabled": false,
        "purchaseStatusOverrideName": null,
        "vouchers": [
            "VOUCHER-001",
            "VOUCHER-002"
        ],
        "voucherExpireDate": "2026-12-31T00:00:00.000Z"
    }
]'
Response Response Example
201 - Success Example
{
    "meta": {
        "status": "success",
        "statusCode": 201,
        "created": 1
    },
    "message": "Create products success.",
    "data": [
        {
            "_id": "507f1f77bcf86cd799439011",
            "communityID": "6502c9e514a3e564c5c09c0a",
            "name": "Premium Voucher",
            "description": "<p>Redeem for premium access.</p>",
            "image": "https://example.com/product.png",
            "price": 100,
            "category": "Premium Rewards",
            "stocks": 2,
            "discountPrice": 90,
            "isDiscountEnabled": false,
            "discountStartDate": null,
            "discountEndDate": null,
            "userInformation": {
                "isEnabled": false,
                "shouldCollectName": false,
                "shouldCollectPhone": false,
                "shouldCollectAddress": false
            },
            "shouldPrioritiesExpiringVouchers": false,
            "shouldDisplayRemainingQuantity": true,
            "expiringVoucherHighlight": {
                "isEnabled": false,
                "duration": 7,
                "timeframe": "days"
            },
            "isArchived": false,
            "totalOrders": 0,
            "redemptionInstructions": "<p>Show this voucher at checkout.</p>",
            "productPermission": [
                {
                    "isEnabled": true,
                    "type": "role",
                    "permission": {
                        "roleNames": [
                            "VIP Member"
                        ],
                        "tagNames": [
                            "Early Access"
                        ],
                        "usernames": [
                            "alex"
                        ],
                        "combination": [
                            {
                                "type": "role",
                                "values": [
                                    "VIP Member"
                                ]
                            }
                        ]
                    },
                    "purchaseAccess": {
                        "specialPrice": 80,
                        "isSpecialPriceEnabled": false
                    },
                    "purchaseLimit": {
                        "isPurchaseLimitEnabled": false,
                        "quantity": 1,
                        "intervalCount": 1,
                        "intervalUnit": "months"
                    },
                    "accessLevel": "full-access",
                    "isExclusiveTagEnabled": false
                }
            ],
            "isProductAccessEnabled": false,
            "purchaseStatusOverride": {
                "isEnabled": false,
                "status": null
            },
            "createdAt": "2026-06-09T00:00:00.000Z",
            "updatedAt": "2026-06-09T00:00:00.000Z"
        }
    ]
}
Modified at 2026-06-12 07:27:23
Previous
List products
Next
Create product with vouchers
Built with