Send SMS Batch
Messaging
Send SMS Batch
Send SMS messages to a large list of recipients from a pre-uploaded CSV file. Processing is handled asynchronously via a background workflow.
POST
Send SMS Batch
Documentation Index
Fetch the complete documentation index at: https://docs.bland.ai/llms.txt
Use this file to discover all available pages before exploring further.
Enterprise Feature - SMS batch sending is only available on Enterprise plans. Contact your Bland representative for access.
Before You Begin: Upload Your CSV
Before calling this endpoint, you must upload your recipient CSV file and get afile_id.
Upload your CSV via POST https://api.bland.ai/v1/files/attach with file_type: "batches". The response will include a file_id (UUID) that you pass to this endpoint.
CSV format requirements:
- Must include a column named exactly
phone_numbercontaining E.164-formatted numbers (e.g.+14155551234). Numbers without a leading+are automatically prefixed. - The
phone_numbercolumn cannot be remapped viacolumn_mapping— the column must be namedphone_numberin the CSV itself. - Additional columns become dynamic variables available in your pathway via
{{column_name}}syntax. - Columns named
request_data.fieldname(dot notation) are automatically parsed into the recipient’srequest_dataobject. - JSON arrays of objects are also accepted as an alternative to CSV.
Headers
Your API key for authentication.
Body Parameters
The ID of a previously uploaded CSV file containing recipient phone numbers. The file must have been uploaded with
file_type: "batches". See Before You Begin above.Default SMS parameters applied to every message in the batch.
Maps column names in your CSV to SMS send parameter names. Use this when your CSV column names don’t match the expected field names.Use this to map non-phone columns to Only
request_data or other SMS parameters. Note: phone_number cannot be used as a target — the phone number column in your CSV must be named phone_number exactly.Map columns to request_data to make them available as pathway variables:request_data is supported as a target — per-recipient fields like pathway_id or persona_id cannot be overridden from the CSV. Alternatively, use dot notation column names in your CSV directly (e.g. request_data.customer_name) to avoid needing column_mapping at all.Response
Confirmation that the batch was accepted for processing.
null on success, or a list of error objects if the request failed.Docs for agents: llms.txt