> You are reading the Docusign Developer Documentation. For clean Markdown of any page, append .md to the page URL.
>
> Documentation indexes by section:
> - APIs and SDKs: https://docusign.docs.buildwithfern.com/docs/llms.txt
> - Platform 101: https://docusign.docs.buildwithfern.com/platform/llms.txt
> - Extension Apps: https://docusign.docs.buildwithfern.com/extension-apps/llms.txt
> - Docusign CLI: https://docusign.docs.buildwithfern.com/docusign-cli/llms.txt
>
> Authentication (OAuth, JWT Grant, M2M): https://docusign.docs.buildwithfern.com/platform/auth
> Webhooks and Connect: https://docusign.docs.buildwithfern.com/platform/webhooks
>
> OpenAPI specifications: https://docusign.docs.buildwithfern.com/openapi.json
> MCP server: https://docusign.docs.buildwithfern.com/_mcp/server

# Create bulk send request

POST https://demo.docusign.net/restapi/v2.1/accounts/{accountId}/bulk_send_lists/{bulkSendListId}/send
Content-Type: application/json

This method queues envelopes for bulk sending to multiple recipients. It requires an existing bulk send list (created using the [BulkSend::createBulkSendList](/docs/esign-rest-api/reference/bulkenvelopes/bulksend/createbulksendlist/) method) and an envelope or `templateID`.

Consider using the [BulkSend::createBulkSendTestRequest](/docs/esign-rest-api/reference/bulkenvelopes/bulksend/createbulksendtestrequest/) method to test your bulk send list against the envelope or template that you want to send first. To learn about the complete bulk send flow, see the [Bulk Send overview](/docs/esign-rest-api/reference/bulkenvelopes/bulksend/).

If the envelopes were successfully queued for asynchronous processing, the response contains a `batchId` that you can use to get the status of the batch. If a failure occurs, the API returns an error message.

**Note:** The entire batch either queues successfully or fails. Partial success does not occur.

### Related topics

- [How to bulk send envelopes](/docs/esign-rest-api/how-to/bulk-send-envelopes/)

### Errors

This method returns the following errors:

| Error code | Description |
| --- | --- |
| BULK_SEND_ENVELOPE_NOT_IN_SENDABLE_STATE | Envelope &#123;0&#125; is not in a sendable state. The envelope is not complete. Make sure it has a sendable status, such as `created`. |
| BULK_SEND_ENVELOPE_LIST_CONTAINS_NO_COPIES | Cannot send an envelope with a bulk sending list which contains no copies. The list you're trying to bulk send is empty. Make sure the bulk sending list you're using contains recipients. |
| BULK_SEND_ENVELOPE_LIST_CONTAINS_TOO_MANY_COPIES | Bulk sending list contains more than &#123;0&#125; copies. The list you're trying to bulk send will cause your account to exceed the 1,000-copy limit imposed for all accounts. Try sending two or more separate lists. |
| BULK_SEND_ENVELOPE_CANNOT_BE_NULL | Cannot send a bulk list without an envelope. Specify the envelope ID or template ID for the envelope you want to bulk send. |
| BULK_SEND_BLOB_STORE_ERROR | Could not save copy of bulk sending list. An error writing to the database occurred. Try again. If the error persists, contact Docusign Support. |
| BULK_SEND_ACCOUNT_HAS_TOO_MANY_QUEUED_ENVELOPES | Cannot send this bulk sending list because doing so would exceed the maximum of &#123;maxCopies&#125; in-flight envelopes. This account currently has &#123;unprocessedEnvelopes&#125; envelopes waiting to be processed. Please try again later, or contact Docusign Support to request a higher tier." |
| BULK_SEND_ENVELOPE_NOT_FOUND | Envelope &#123;envelopeOrTemplateId&#125; does not exist or you do not have permission to access it. The envelopeId or templateId specified could not be found. Specify a valid value. |
| BULK_SEND_LIST_NOT_FOUND | Bulk Sending list &#123;listId&#125; does not exist or you do not have permission to access it. The mailingListId specified could not be found. Specify a valid value. |
| BULK_SEND_ENVELOPE_HAS_NO_RECIPIENTS | Bulk sending copy contains recipients, but the specified envelope does not. The recipients on the envelope and the bulk send list do not match. Make sure the envelope and list are compatible for sending. |
| BULK_SEND_RECIPIENT_ID_DOES_NOT_EXIST_IN_ENVELOPE | Recipient &#123;0&#125; does not exist in the envelope. Add the missing recipient to the envelope. |
| BULK_SEND_RECIPIENT_ID_DOES_NOT_MATCH | Recipient ID &#123;envelopeMember.ID&#125; does not match. Make sure the recipient information in the list and the envelope match up. |
| BULK_SEND_ENVELOPE_HAS_BULK_RECIPIENT | Recipient &#123;0&#125; is a bulk recipient. This is not supported. No legacy 'bulk recipient' allowed. In v2.1 of the eSignature API, you must use a bulk send list instead of a bulk recipient. See the API documentation for details. |
| BULK_SEND_RECIPIENT_ROLE_DOES_NOT_MATCH | Recipient Role &#123;envelopeMember.RoleName&#125; does not match. Make sure the recipient information in the list and the envelope is compatible. |
| BULK_SEND_DUPLICATE_RECIPIENT_DETECTED | Duplicate recipients (&#123;0&#125;) not allowed, unless recipients have unique routing order specified on envelope. |
| BULK_SEND_ENVELOPE_HAS_NO_TABS | Bulk sending copy contains tabs, but the specified envelope does not. List and envelope tabs cannot be coalesced. Make sure they are compatible for sending. |
| BULK_SEND_TAB_LABEL_DOES_NOT_EXIST_IN_ENVELOPE | Tab with label &#123;0&#125; does not exist in envelope. Add the tab label to the envelope, remove the label from the list, or make sure you're specifying the correct list and envelope. |
| BULK_SEND_TAB_DOES_NOT_MATCH | Tab &#123;0&#125; does not match &#123;0&#125; in envelope. A tab exists on the list that does not match or is missing on the envelope. Make sure the tabs on the list and the envelope match. |
| BULK_SEND_ENVELOPE_HAS_NO_ENVELOPE_CUSTOM_FIELDS | Bulk sending copy contains custom fields, but the specified envelope does not. There are custom fields on the list that the envelope does not have. Make sure that any custom fields on the list and the envelope match. |
| BULK_SEND_ENVELOPE_CUSTOM_FIELD_DOES_NOT_EXIST_IN_ENVELOPE | Custom field &#123;0&#125; does not exist in the envelope. Either add the custom field on the list to the envelope, remove the custom field from the list, or make sure you're specifying the correct list and envelope. |
| BULK_SEND_ENVELOPE_CUSTOM_FIELD_NAME_DOES_NOT_MATCH | Custom field names must match. &#123;0&#125; and &#123;1&#125; do not match. The custom field names on the list and the envelope do not match. Use identical names for both. |

Reference: https://developers.docusign.com/docs/esign-rest-api/reference/bulkenvelopes/bulksend/createbulksendrequest

## Authentication

- `Authorization` header (required) (prefixed with ` Bearer  `) — OAuth 2.0 access token (JWT or auth-code grant). Sent as `Authorization: Bearer <token>` on every request except `GET /v2.1` and `GET /service_information`, which are public discovery endpoints.

## Servers

- `https://demo.docusign.net/restapi` (Demo, default)
- `https://www.docusign.net/restapi` (Production)

## Request

### Path parameters

- `accountId` (string, required) — The external account number (int) or account ID Guid.
- `bulkSendListId` (string, required) — The GUID of the bulk send list. This property is created after you post a new bulk send list.

### Body (application/json)

This endpoint expects a bulkSendRequest.

- `batchName` (string, optional) — The human-readable name of the batch. If you do not set this value, it defaults to the `name` property of the `bulkSendingList` object.
- `envelopeOrTemplateId` (string, optional) — The GUID of the envelope or template that you want to send in bulk.

## Response

### 201

Successful response.

- `batchId` (string, optional) — A batch identifier that you can use to get the status of the batch.
- `batchName` (string, optional)
- `batchSize` (string, optional) — The total number of items in the batch being queried.
- `envelopeOrTemplateId` (string, optional) — The GUID of the envelope or template that was sent.
- `errorDetails` (list of string, optional) — A human-readable object that describes errors that occur. It is only valid for responses and ignored in requests.
- `errors` (list of string, optional) — A list of errors that occurred. This information is intended to be parsed by machine.
- `queueLimit` (string, optional)
- `totalQueued` (string, optional)

## Errors

### 400 Bad Request Error

Error encountered.

- `errorCode` (string, optional) — The code associated with the error condition.
- `message` (string, optional) — A brief message describing the error condition.

## Examples

**Request**

```json
{
  "batchName": "sample string 1",
  "envelopeOrTemplateId": "sample string 2"
}
```

**Response**

```json
{
  "batchId": "sample string 1",
  "batchName": "sample string 2",
  "batchSize": "sample string 3",
  "envelopeOrTemplateId": "sample string 4",
  "errorDetails": [
    "sample string 1"
  ],
  "errors": [
    "sample string 1"
  ],
  "queueLimit": "sample string 5",
  "totalQueued": "sample string 6"
}
```