# Send a blast again to whoever did not reply

Sends a follow-up to everybody who did not ANSWER the first SMS blast — "did not answer" being the thread's own verdict: no live inbound reply in that address's thread since the copy that went out. It creates a NEW blast, gives it the non-responders as its audience, freezes it and dispatches it in one transaction, so a retarget that cannot finish leaves no half-built blast behind. Body: `body` (the follow-up's own words; absent copies the first blast's frozen ones), `subject` (email kinds only, refused on an SMS blast), `medium` ("sms" or "imessage"), `limit` (bounds one run) and `pacing` (when the copies may leave; a pacing this service cannot read is refused with a sentence, never quietly ignored). `post_sms-blasts_id_retarget-preview` asks the outcome question instead and creates nothing.

Access class: `workspace`.

## Endpoint

`POST /v1/sms-blasts/{id}/retarget-send`

## Parameters

| Name | In | Type | Required |
| --- | --- | --- | --- |
| id | path | string | Yes |

## Request body

Content type: `application/json`.

```json
{
  "body": {
    "body": "string",
    "limit": 1.5,
    "medium": "string",
    "pacing": {
      "activeHoursEnd": "string",
      "activeHoursStart": "string",
      "activeHoursTimezone": "string",
      "spreadMinutes": 1.5
    },
    "subject": "string",
    "target": "string"
  },
  "params": {
    ":id": "string"
  },
  "query": {}
}
```

## Responses

### 201

the action's answer

Content type: `application/json`.

```json
{
  "data": {
    "blast": {
      "audienceFilter": {},
      "audienceFrozenAt": "string",
      "body": "string",
      "cancellationReason": "string",
      "cancelledAt": "string",
      "createdAt": "string",
      "createdByUserId": 1,
      "detail": {},
      "id": 1,
      "kind": "string",
      "name": "string",
      "retargetOfBlastId": 1,
      "scheduledAt": "string",
      "sentAt": "string",
      "status": "string",
      "subject": "string",
      "templateId": 1,
      "updatedAt": "string"
    },
    "dispatch": {
      "audience": 1,
      "blastId": 1,
      "created": 1,
      "medium": "string",
      "states": {},
      "status": "string"
    },
    "pacingApplied": true,
    "sourceBlastId": 1
  }
}
```

### default

a refusal: `{"error": "<what a person needs to read>"}`. 401 no credential, 402 the plan does not include this, 403 the seat does not, 404 the thing does not exist or is not yours to see.

Content type: `application/json`.

```json
{
  "error": "string"
}
```
