Retry failed deliveries
curl --request POST \
--url https://attend.hackclub.com/api/v1/events/{event_id}/messages/{id}/retry_failed \
--header 'Authorization: Bearer <token>'import requests
url = "https://attend.hackclub.com/api/v1/events/{event_id}/messages/{id}/retry_failed"
headers = {"Authorization": "Bearer <token>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
fetch('https://attend.hackclub.com/api/v1/events/{event_id}/messages/{id}/retry_failed', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://attend.hackclub.com/api/v1/events/{event_id}/messages/{id}/retry_failed",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://attend.hackclub.com/api/v1/events/{event_id}/messages/{id}/retry_failed"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://attend.hackclub.com/api/v1/events/{event_id}/messages/{id}/retry_failed")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://attend.hackclub.com/api/v1/events/{event_id}/messages/{id}/retry_failed")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"message": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"subject": "<string>",
"status": "draft",
"audience": "confirmed_attendees",
"audience_label": "Confirmed Attendees",
"channels": [
"slack"
],
"recipient_count": 123,
"sent_count": 123,
"failed_count": 123,
"scheduled_at": "2023-11-07T05:31:56Z",
"sent_at": "2023-11-07T05:31:56Z",
"created_at": "2023-11-07T05:31:56Z",
"sent_by": "<string>",
"preview_text": "<string>",
"body": "<string>",
"body_html": "<string>",
"participant_event_ids": [
"3c90c3cc-0d44-4b50-8888-8dd25736052a"
],
"group_ids": [
"3c90c3cc-0d44-4b50-8888-8dd25736052a"
],
"opened_count": 123,
"pending_count": 123,
"new_recipient_count": 123,
"recipients": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"kind": "attendee",
"catch_up": true,
"deliveries": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"channel": "slack",
"status": "pending",
"recipient_identifier": "<string>",
"error_message": "<string>",
"delivered_at": "2023-11-07T05:31:56Z",
"read_at": "2023-11-07T05:31:56Z"
}
]
}
],
"permissions": {
"edit": true,
"send_now": true,
"destroy": true,
"cancel": true,
"retry_failed": true,
"send_to_new_recipients": true
}
},
"notice": "<string>"
}{
"error": "Unauthorized"
}{
"error": "Unauthorized"
}{
"error": "Unauthorized"
}{
"error": "Unauthorized"
}Messages
Retry failed deliveries
Puts every failed delivery back in the queue and sets the message to sending.
POST
/
events
/
{event_id}
/
messages
/
{id}
/
retry_failed
Retry failed deliveries
curl --request POST \
--url https://attend.hackclub.com/api/v1/events/{event_id}/messages/{id}/retry_failed \
--header 'Authorization: Bearer <token>'import requests
url = "https://attend.hackclub.com/api/v1/events/{event_id}/messages/{id}/retry_failed"
headers = {"Authorization": "Bearer <token>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
fetch('https://attend.hackclub.com/api/v1/events/{event_id}/messages/{id}/retry_failed', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://attend.hackclub.com/api/v1/events/{event_id}/messages/{id}/retry_failed",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://attend.hackclub.com/api/v1/events/{event_id}/messages/{id}/retry_failed"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://attend.hackclub.com/api/v1/events/{event_id}/messages/{id}/retry_failed")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://attend.hackclub.com/api/v1/events/{event_id}/messages/{id}/retry_failed")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"message": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"subject": "<string>",
"status": "draft",
"audience": "confirmed_attendees",
"audience_label": "Confirmed Attendees",
"channels": [
"slack"
],
"recipient_count": 123,
"sent_count": 123,
"failed_count": 123,
"scheduled_at": "2023-11-07T05:31:56Z",
"sent_at": "2023-11-07T05:31:56Z",
"created_at": "2023-11-07T05:31:56Z",
"sent_by": "<string>",
"preview_text": "<string>",
"body": "<string>",
"body_html": "<string>",
"participant_event_ids": [
"3c90c3cc-0d44-4b50-8888-8dd25736052a"
],
"group_ids": [
"3c90c3cc-0d44-4b50-8888-8dd25736052a"
],
"opened_count": 123,
"pending_count": 123,
"new_recipient_count": 123,
"recipients": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"kind": "attendee",
"catch_up": true,
"deliveries": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"channel": "slack",
"status": "pending",
"recipient_identifier": "<string>",
"error_message": "<string>",
"delivered_at": "2023-11-07T05:31:56Z",
"read_at": "2023-11-07T05:31:56Z"
}
]
}
],
"permissions": {
"edit": true,
"send_now": true,
"destroy": true,
"cancel": true,
"retry_failed": true,
"send_to_new_recipients": true
}
},
"notice": "<string>"
}{
"error": "Unauthorized"
}{
"error": "Unauthorized"
}{
"error": "Unauthorized"
}{
"error": "Unauthorized"
}Authorizations
Mobile token, global API token, series API key, or event API key. See Authentication above for which endpoints each one reaches.
Path Parameters
Event id or slug.
The message id. Must belong to the event in the path.
Was this page helpful?