# Redeliver a webhook event

Queues a new delivery of the same event to the webhook’s endpoint and returns it, with `redeliveredFromId` pointing back at the original. The new delivery starts with no attempts, and is created already failed when the webhook is over its delivery budget.

## POST`/v1/webhooks/{webhookId}/deliveries/{deliveryId}/redeliver`

### Authorization

`Authorization`Bearer token · headerrequired

\`Authorization: Bearer <token>\` with an API key (\`sfa\_\` prefix), an OAuth access token, a session token, or a Space machine credential (\`sfm\_\` prefix).

or

`Authorization`OAuth2 access token · headerrequired

OAuth 2.0 with Spacefast scopes. People use the authorization code flow; machines use client credentials.

#### Scopes: `spaces:write`

### Path parameters

`webhookId`stringrequired

min length 1

`deliveryId`stringrequired

min length 1

### Responses

#### 201 Response for status 201

`$schema`string<uri>

Canonical JSON Schema URL for this response body. The server also sends it in the \`Link: rel="describedby"\` response header.

`data`objectrequired

Show propertiesHide properties

`id`stringrequired

`webhookId`stringrequired

`eventId`stringrequired

Activity event this attempt carries.

`status`stringrequired

\`failed\` will be retried, \`exhausted\` used up the retry budget or the retry horizon and will not.

Allowed: `pending``succeeded``failed``exhausted`

`attempts`integerrequired

Delivery attempts made so far.

min 0 · max 9007199254740991

`lastAttemptAt`string<date-time> | anyrequired

ISO 8601 timestamp of the most recent attempt. Null before the first one.

Show propertiesHide properties

Any of:

string<date-time>

`string<date-time>`

any

`any`

`lastResponseStatus`integer | anyrequired

HTTP status the endpoint answered with on the last attempt. Null when the request never got a response.

Show propertiesHide properties

Any of:

integer

`integer`

any

`any`

`nextRetryAt`string<date-time> | anyrequired

ISO 8601 timestamp of the next scheduled attempt. Null when no retry is scheduled.

Show propertiesHide properties

Any of:

string<date-time>

`string<date-time>`

any

`any`

`redeliveredFromId`string | anyrequired

Delivery this one replays. Null for the original attempt.

Show propertiesHide properties

Any of:

string

`string`

any

`any`

`diagnostics`object[]required

Why an attempt did not land, such as a rejected endpoint or an exhausted budget.

default: []

Show propertiesHide properties

Array of `object`

`code`stringrequired

Stable snake\_case code for this diagnostic.

`severity`stringrequired

How serious the diagnostic is.

Allowed: `info``warning``error`

`message`stringrequired

What happened, in a sentence a person can act on.

`path`string | any

File or artifact path the diagnostic refers to, with a line number when known, for example \`_headers:12\`. Absent when it applies to the whole resource.

Show propertiesHide properties

Any of:

string

`string`

any

`any`

`provider`string | any

Upstream system that raised the diagnostic. Absent when Spacefast raised it.

Show propertiesHide properties

Any of:

string

`string`

any

`any`

`details`object | any

Machine-readable context keyed by the diagnostic code.

Show propertiesHide properties

Any of:

object

`object`

any

`any`

`fix`string | any

What to change to clear the diagnostic. Absent when there is no known fix.

Show propertiesHide properties

Any of:

string

`string`

any

`any`

`retryable`boolean | any

True when repeating the same operation unchanged can clear the diagnostic.

Show propertiesHide properties

Any of:

boolean

`boolean`

any

`any`

`createdAt`string<date-time>required

matches ^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$

`$schema`string<uri>

Canonical JSON Schema URL for this response body. The server also sends it in the \`Link: rel="describedby"\` response header.

`type`stringrequired

URL of the documentation page for this error. Derived from \`code\`.

`title`stringrequired

Human-readable name of the error type. Derived from \`code\`.

`status`integerrequired

HTTP status of the response, repeated in the body.

min -9007199254740991 · max 9007199254740991

`detail`stringrequired

What went wrong in this request.

`code`stringrequired

Stable snake\_case error code. Match on this, not on \`detail\`.

`pointer`string

RFC 6901 JSON Pointer to the request field or batch entry that failed, for example \`/files/37/path\`. Present on validation failures.

`details`object

Machine-readable context keyed by the error code.

`suggestions`string[]

Recovery steps safe to show to a person.

`next`string[]

Commands or API requests to run next, usable as written.

`requestId`stringrequired

ID of this request, from the \`X-Request-Id\` header or generated. Quote it when contacting support.

### Try it

#### Server

**Base URL** https://api.spacefast.com

**Custom base URL** Overrides the selected server when set.

### Authorization

Bearer token

#### Remember on this device

Include my values in samples

### Parameters

`webhookId`path*`deliveryId`path*

### Send

### Request

#### cURL

```bash
curl -X POST "https://api.spacefast.com/v1/webhooks/string/deliveries/string/redeliver" \
  -H "Authorization: Bearer YOUR_TOKEN"
```

#### JavaScript

```javascript
const response = await fetch("https://api.spacefast.com/v1/webhooks/string/deliveries/string/redeliver", {
  method: "POST",
  headers: {
    "Authorization": "Bearer YOUR_TOKEN"
  }
});
```

#### Python

```python
import requests

response = requests.post(
    "https://api.spacefast.com/v1/webhooks/string/deliveries/string/redeliver",
    headers={
        "Authorization": "Bearer YOUR_TOKEN"
    },
)
```

#### Response

#### 201 default

```json
{
  "$schema": "http://example.com",
  "data": {
    "id": "string",
    "webhookId": "string",
    "eventId": "string",
    "status": "pending",
    "attempts": 9007199254740991,
    "lastAttemptAt": "2019-08-24T14:15:22Z",
    "lastResponseStatus": -9007199254740991,
    "nextRetryAt": "2019-08-24T14:15:22Z",
    "redeliveredFromId": "string",
    "diagnostics": [],
    "createdAt": "2019-08-24T14:15:22Z"
  }
}
```

```json
{
  "$schema": "http://example.com",
  "type": "string",
  "title": "string",
  "status": -9007199254740991,
  "detail": "string",
  "code": "string",
  "pointer": "string",
  "details": {
    "property1": null,
    "property2": null
  },
  "suggestions": [
    "string"
  ],
  "next": [
    "string"
  ],
  "requestId": "string"
}
```
