**Source URL:** https://general.veevavault.dev/clinical/vault-api/api-reference/26.2/clinical-operations/veeva-site-connect-send-to-select-sites

# Veeva Site Connect: Send to Select Sites

Initiate the distribution of a *Safety Distribution* record to a specified list of sites. This endpoint creates *Distribution Task* (`distribution_task__v`) records for the related document and supporting documents for each site, creates *Distribution Task Recipient* (`distribution_task_recipient__v`) records, and regenerates viewable renditions for any documents whose most recent e-signature was applied after the last Veeva Site Connect rendition was generated.

This endpoint executes synchronously and returns per-site results immediately. Job IDs and status polling are not required.

Use the [Distribute to Sites](/clinical/vault-api/api-reference/26.2/clinical-operations/veeva-site-connect-distribute-to-sites) endpoint to target all sites associated with a *Safety Distribution*. Learn more about [*Safety Distributions* in Vault Help](https://clinical.veevavault.help/en/gr/65187).

<Endpoint path="/api/{version}/app/clinical/safety_distributions/{id}/actions/send_to_select_sites" method="POST" />

## Headers

<FieldTable>
| Name | Description |
| --- | --- |
| `Content-Type` | `application/json` (default) |
| `Accept` | `application/json` (default) or `application/xml` |
</FieldTable>

## URI Path Parameters

<FieldTable>
| Name | Description |
| --- | --- |
| `{id}` | The record ID of the *Safety Distribution* to send. |
</FieldTable>

## Body Parameters

Include a JSON object with the following:

<FieldTable>
| Name | Description |
| --- | --- |
| `sites` *required* | A JSON array of *Study Site* record IDs to receive the *Safety Distribution*. Each ID corresponds to a *Study Site* record in your Clinical Operations Vault. A maximum of 500 sites are allowed to be processed at one time. |
</FieldTable>

## Request

<CodeExample title="">
```bash
curl -X POST -H "Authorization: {AUTH_VALUE}" \
-H "Content-Type: application/json" \
--data-raw '{
   "sites": [
     "0SI000000001001",
     "0SI000000002001",
     "0SI000000003001"
   ]
}' \
https://myvault.veevavault.com/api/v26.2/app/clinical/safety_distributions/V56000000001004/actions/send_to_select_sites
```
</CodeExample>

## Response

<CodeExample title="">
```json
{
    "responseStatus": "SUCCESS",
    "data": [
        {
            "site_id": "0SI000000001001",
            "responseStatus": "SUCCESS"
        },
        {
            "site_id": "0SI000000002001",
            "responseStatus": "SUCCESS"
        },
        {
            "site_id": "0SI000000003001",
            "responseStatus": "FAILURE",
            "errors": [
                {
                    "type": "INVALID_DATA",
                    "message": "Site is invalid due to being filtered out by the inclusion/exclusion filter."
                }
            ]
        },
        {
            "site_id": "0SI000000004001",
            "responseStatus": "FAILURE",
            "errors": [
                {
                    "type": "PARAMETER_REQUIRED",
                    "message": "Required request parameter 'id' is invalid."
                }
            ]
        },
        {
            "site_id": "0SI000000005001",
            "responseStatus": "FAILURE",
            "errors": [
                {
                    "type": "UNEXPECTED_ERROR",
                    "message": "An unexpected error has occurred. If this issue persists, please contact Veeva Support."
                }
            ]
        }
    ]
}
```
</CodeExample>

## Response Details

On `SUCCESS`, the response returns a per-site result in the `data` array. Individual sites can succeed or fail independently. The operation does not fail if some sites result in a failure.

<FieldTable>
| Name | Description |
| --- | --- |
| `site_id` | The record ID of the site. |
| `responseStatus` | `SUCCESS` if distribution was initiated for the site, `FAILURE` if the site was rejected. |
| `errors` | Present only when `responseStatus` is `FAILURE` for the site. Each error includes a `type` and a human-readable `message`. |
</FieldTable>

If the request itself fails, the top-level `responseStatus` is `FAILURE` and no `data` array is returned. For example, the request will fail due to a missing or invalid `id`.

---

**Previous:** [Veeva Site Connect: Distribute to Sites](/clinical/vault-api/api-reference/26.2/clinical-operations/veeva-site-connect-distribute-to-sites)  
**Next:** [Populate Site Fee Definitions](/clinical/vault-api/api-reference/26.2/clinical-operations/populate-site-fee-definitions)