> ## Documentation Index
> Fetch the complete documentation index at: https://www.ayrshare.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Retry a Post

> Retry publishing a post that failed with an error status. The retried post is treated as a scheduled post, and you can retry each failed post only once.

> [!NOTE]
>
> **Targeting X/Twitter?** Starting March 31, 2026, all X operations require your own API credentials. After linking X via OAuth, include these 2 headers in your request:
>
> `X-Twitter-OAuth1-Api-Key` — Your API Key (Consumer Key)
>
> `X-Twitter-OAuth1-Api-Secret` — Your API Key Secret (Consumer Secret)
>
> **One-time setup per Ayrshare account.** You create one X Developer App and reuse the same API Key and Secret across every sub-profile / end-user you link. You do *not* create a new app per customer.
>
> Not linked yet? See the [full setup guide](https://www.ayrshare.com/docs/dashboard/connect-social-accounts/x-twitter-byo-keys.md) to connect your X account.
>
> Your keys are never logged or stored by Ayrshare.

Retry to publish a post that failed with a `status` of `"error".` A retried post will be treated as a scheduled post, thus the final status can be obtained via the [/history](https://www.ayrshare.com/docs/apis/history/overview.md) endpoint or the [scheduled action webhook](https://www.ayrshare.com/docs/apis/webhooks/actions.md#scheduled-action).

While the post is being retried, the `status` will be `"pending"`. You may check on the status of the retry by calling the [GET post endpoint](https://www.ayrshare.com/docs/apis/post/get-post.md).

The post can be retried *only once*. Recommend to only use if the error message indicates a retry is possible.

> [!NOTE]
>
> When retrying a failed social media post, first verify that the post hasn't already been
> published. Social networks may sometimes report errors even when they've successfully processed
> and published the post.

## Header Parameters

**Authorization** `string` *required*

[API Key](https://www.ayrshare.com/docs/apis/overview.md#authorization) of the Primary Profile.

Format: `Authorization: Bearer API_KEY`
**Profile-Key** `string`

[Profile Key](https://www.ayrshare.com/docs/apis/overview.md#profile-key-format) of a User Profile.

Format: `Profile-Key: PROFILE_KEY`

## Body Parameters

**id** `string` *required*

The top-level Ayrshare Post ID. The original post must have a status of "error".

```bash cURL theme={"system"}
curl \
-H "Authorization: Bearer API_KEY" \
-H 'Content-Type: application/json' \
-d '{"id": "s8k2jsk0pl"}' \
-X PUT https://api.ayrshare.com/api/post/retry
```

```javascript JavaScript theme={"system"}
const API_KEY = "API_KEY";

fetch("https://api.ayrshare.com/api/post/retry", {
  method: "PUT",
  headers: {
    "Content-Type": "application/json",
    Authorization: `Bearer ${API_KEY}`
  },
  body: JSON.stringify({
    id: "s8k2jsk0pl" // required
  })
})
  .then((res) => res.json())
  .then((json) => console.log(json))
  .catch(console.error);
```

```python Python theme={"system"}
import requests

payload = {'id': 's8k2jsk0pl'}
headers = {'Content-Type': 'application/json',
        'Authorization': 'Bearer API_KEY'}

r = requests.put('https://api.ayrshare.com/api/post/retry',
    json=payload,
    headers=headers)

print(r.json())
```

```php PHP theme={"system"}
<?php

$apiUrl = 'https://api.ayrshare.com/api/post/retry';
$apiKey = 'API_KEY';  // Replace 'API_KEY' with your actual API key

$headers = [
    'Content-Type: application/json',
    'Authorization: Bearer ' . $apiKey,
];

$data = json_encode([
    'id' => 's8k2jsk0pl'  // Replace with your actual ID
]);

$curl = curl_init($apiUrl);
curl_setopt_array($curl, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'PUT',
    CURLOPT_HTTPHEADER => $headers,
    CURLOPT_POSTFIELDS => $data
]);

$response = curl_exec($curl);

if ($response === false) {
    echo 'Curl error: ' . curl_error($curl);
} else {
    echo json_encode(json_decode($response), JSON_PRETTY_PRINT);
}

curl_close($curl);
```

```csharp C# theme={"system"}
using System;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;

namespace PostRetryPOSTRequest_csharp
{
    class PostRetry
    {
        private static readonly HttpClient client = new HttpClient();

        static async Task Main(string[] args)
        {
            string API_KEY = "API_KEY";
            string url = "https://api.ayrshare.com/api/post/retry";

            // Set up request headers
            client.DefaultRequestHeaders.Add("Authorization", "Bearer " + API_KEY);

            // Prepare JSON content
            string json = "{\"id\": \"s8k2jsk0pl\"}";
            var content = new StringContent(json, Encoding.UTF8, "application/json");

            try
            {
                // Send PATCH request
                HttpResponseMessage response = await client.PutAsync(url, content);
                response.EnsureSuccessStatusCode();

                // Read response
                string responseBody = await response.Content.ReadAsStringAsync();
                Console.WriteLine(responseBody);
            }
            catch (HttpRequestException e)
            {
                Console.WriteLine($"Error: {e.Message}");
            }
        }
    }
}
```

```go Go theme={"system"}
package main

import (
	"bytes"
	"encoding/json"
	"log"
	"net/http"
)

func main() {
	message := map[string]interface{}{
		"id": "s8k2jsk0pl"
	}

	bytesRepresentation, err := json.Marshal(message)
	if err != nil {
		log.Fatalln(err)
	}

	req, _ := http.NewRequest("PUT", "https://api.ayrshare.com/api/post/retry",
		bytes.NewBuffer(bytesRepresentation))

	req.Header.Add("Content-Type", "application/json; charset=UTF-8")
	req.Header.Add("Authorization", "Bearer API_KEY")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		log.Fatal("Error:", err)
	}

	res.Body.Close()
}
```

```json 200: Success theme={"system"}
{
  "status": "pending", // The post will be retried
  "id": "N7kaDiZAfwc544OBKlgc" // Ayrshare Post ID
}
```

```json 400: Already Retried theme={"system"}
{
  "action": "post",
  "status": "error",
  "code": 329,
  "message": "This post was already retried and cannot be retried again."
}
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.