---
title: "Queue up to 1000 raw SMS or MMS messages with per-message results"
method: POST
path: "/v2/send-raw/bulk"
tags: ["send-raw-v2"]
---

# Queue up to 1000 raw SMS or MMS messages with per-message results

`POST /v2/send-raw/bulk`

## Request

- Base URL: `https://api.tracklysms.com/api`
- URL: `https://api.tracklysms.com/api/v2/send-raw/bulk`
- Auth: API key in header `X-Api-Key`

## Request body

- BulkSendRawRequest
  - `messages` SendRawRequest[], required: Array of messages (max 1000)
    - `body` string: Required for SMS; optional MMS caption, at most 4096 characters
    - `list_number` string, required: Sending list phone number (E.164 format)
    - `media` MMSMedia[]: Nonempty attachments array selects MMS; media and subject metadata may total at most 512 KiB
      - `content_id` string: Optional unique ASCII attachment content identifier
      - `content_type` string: Optional MIME type
      - `url` string, required: Public HTTPS media URL
    - `metadata` object: Optional metadata dict
    - `skip_contact_validation` boolean: Skip contact validation
    - `skip_duplicate_check` boolean: Skip duplicate message check
    - `skip_journey_check` boolean: Skip journey enrollment check
    - `skip_rate_limit` boolean: Skip rate limiting
    - `subject` string: Optional MMS subject; requires media
    - `to` string, required: Recipient phone number (E.164 format)

## Response `201`

Messages queued

- BulkSendRawResponse
  - `error_count` integer, required: Number of messages that failed
  - `errors` BulkErrorItem[], required: Array of error details
    - `code` string: Machine-readable error code
    - `error` string: Human-readable error
    - `errorCode` string: UPPER_SNAKE code; present only on queue-publish failures
    - `index` integer: Zero-based index of the failed message
    - `message_id` string: Orphaned MessageSent id; present only on queue-publish failures
    - `to` string: Recipient phone number
  - `queued_count` integer, required: Number of messages queued

## Other responses

- `400`: Validation error
- `401`: Authentication error
- `413`: Too many messages
- `502`: Every message failed to queue for delivery
- `503`: API key send policy or number authority unavailable — request or bulk error response, see the schema

---

[API](https://skmtc.dev/tracklysms/apis/trackly-sms-api.md) · [All operations](https://skmtc.dev/tracklysms/apis/trackly-sms-api/llms.txt) · [OpenAPI document](https://skmtc.dev/tracklysms/apis/trackly-sms-api/revisions/ac1ad22cb2a9?raw)
