> 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 request to import new users into account

POST https://api-d.docusign.net/Management/v2/organizations/{organizationId}/imports/bulk_users/add
Content-Type: multipart/form-data

Creates a request to import new users.

Your CSV import file is made up of a header row with the column headers and a row of user or account data for each user you want to add to an account. Only new users can be imported. Any changes to existing users will be ignored. To make changes to existing users, use [UserImport:updateBulkUserImports](/docs/admin-api/reference/bulkoperations/userimport/updatebulkuserimports/).

To ensure your CSV file is properly formatted, follow the requirements in the Support article [Build a CSV to Bulk Add Users](https://support.docusign.com/s/document-item?bundleId=rrf1583359212854&topicId=wec1593211169952.html). You can download an example file from the Add Users dialogue in the Admin UI.

You can add up to 2,000 users to an account and include up to 50 accounts per import. The maximum number of users per import is 8,000.

[Required authentication scopes](/docs/admin-api/admin101/auth/): `user_write`.

### Next steps

- See an [example of adding users via bulk import in your chosen programming language](/docs/admin-api/how-to/add-users-bulk-import/).

Reference: https://developers.docusign.com/docs/admin-api/reference/bulkoperations/userimport/addbulkuserimport

## Authentication

- `Authorization` header (bearer token, required) — OAuth2 Access code Grant

## Servers

- `https://api-d.docusign.net/Management` (Demo, default)
- `https://api.docusign.net/Management` (Production)

## Request

### Path parameters

- `organizationId` (string, required) — The organization ID Guid

### Body (multipart/form-data)

This endpoint expects a multipart form containing a file.

- `file.csv` (file, required) — CSV file.

## Response

### 200

OK

- `id` (string, optional)
- `type` (string, optional)
- `requestor` (OrganizationImportResponseRequestor, optional)
- `created` (datetime, optional)
- `last_modified` (datetime, optional)
- `status` (string, optional) — Status.
- `user_count` (integer, optional)
- `processed_user_count` (integer, optional)
- `added_user_count` (integer, optional)
- `updated_user_count` (integer, optional)
- `closed_user_count` (integer, optional)
- `no_action_required_user_count` (integer, optional)
- `error_count` (integer, optional)
- `warning_count` (integer, optional)
- `invalid_column_headers` (string, optional)
- `imports_not_found_or_not_available_for_accounts` (string, optional)
- `imports_failed_for_accounts` (string, optional)
- `imports_timed_out_for_accounts` (string, optional)
- `imports_not_found_or_not_available_for_sites` (string, optional)
- `imports_failed_for_sites` (string, optional)
- `imports_timed_out_for_sites` (string, optional)
- `file_level_error_rollups` (list of OrganizationImportResponseErrorRollup, optional)
- `user_level_error_rollups` (list of OrganizationImportResponseErrorRollup, optional)
- `user_level_warning_rollups` (list of OrganizationImportResponseWarningRollup, optional)
- `has_csv_results` (boolean, optional)
- `results_uri` (string, optional)

## Types

### OrganizationImportResponseRequestor

- `name` (string, optional) — The name of the requestor.
- `id` (string, optional) — The unique ID of the requestor. If `type` is `user`, this is the requestor's user ID.
- `type` (string, optional) — The type of the requestor. One of: - `user` - `client_app`
- `email` (string, optional) — The email address of the requestor.

### OrganizationImportResponseErrorRollup

- `error_type` (string, optional) — The type of error. One of: - `no_action_taken_user_exists` - `user_added` - `user_updated` - `invalid_column_header` - `invalid_row_data` - `insufficient_row_data_found` - `extra_row_data_found` - `blank_username` - `invalid_characters_in_username` - `invalid_useremail_address` - `email_domain_is_reserved` - `new_name_with_existing_useremail_not_allowed` - `invalid_characters_in_jobtitle` - `invalid_membership_id` - `membership_not_in_account` - `maximum_users_exceeded` - `invalid_permissionset` - `user_permissionset_problems` - `invalid_group` - `user_group_problems` - `group_and_permissionset_problems` - `column_headers_missing` - `invalid_csv_data_or_syntax` - `invalid_characters_in_companyname` - `invalid_language_code` - `username_column_header_missing` - `useremail_column_header_missing` - `permissionset_column_header_missing` - `membership_id_column_header_usage_not_permitted` - `administrator_group_assignment_not_permitted` - `user_awaiting_activation` - `account_admin_access_denied` - `invalid_characters_in_address` - `permissionset_required` - `apiusername_column_header_missing` - `invalid_apiusername` - `useremail_username_combination_exists` - `permissionset_change_not_allowed` - `username_language_changes_ignored_warning` - `invalid_country_warning` - `invalid_account_id` - `invalid_autoactivate` - `invalid_loginpolicy` - `autoactivate_not_allowed` - `membership_closed` - `membership_closed_or_disabled_warning` - `cannot_close_last_active_admin` - `no_action_taken` - `cannot_close_own_membership` - `unspecified_error`
- `count` (integer, optional) — The number of errors of this type.

### OrganizationImportResponseWarningRollup

- `warning_type` (string, optional) — The type of warning.
- `count` (integer, optional) — The number of warnings of this type.

## Examples

**Request**

```json
{
  "file.csv": "<file: string>"
}
```

**Response**

```json
{
  "id": "00000000-0000-0000-0000-000000000000",
  "type": "string",
  "requestor": {
    "name": "string",
    "id": "string",
    "type": "string",
    "email": "string"
  },
  "created": "2024-01-15T09:30:00Z",
  "last_modified": "2024-01-15T09:30:00Z",
  "status": "string",
  "user_count": 1,
  "processed_user_count": 1,
  "added_user_count": 1,
  "updated_user_count": 1,
  "closed_user_count": 1,
  "no_action_required_user_count": 1,
  "error_count": 1,
  "warning_count": 1,
  "invalid_column_headers": "string",
  "imports_not_found_or_not_available_for_accounts": "string",
  "imports_failed_for_accounts": "string",
  "imports_timed_out_for_accounts": "string",
  "imports_not_found_or_not_available_for_sites": "string",
  "imports_failed_for_sites": "string",
  "imports_timed_out_for_sites": "string",
  "file_level_error_rollups": [
    {
      "error_type": "string",
      "count": 1
    }
  ],
  "user_level_error_rollups": [
    {
      "error_type": "string",
      "count": 1
    }
  ],
  "user_level_warning_rollups": [
    {
      "warning_type": "string",
      "count": 1
    }
  ],
  "has_csv_results": true,
  "results_uri": "string"
}
```