Documentation menu

Posts

Create, read, update, and delete posts and their per-platform targets.

GET /posts

Requires Authorization: Bearer <token>.

Query parameters

FieldTypeNotes
statusdraft | scheduled | publishing | published | partial | failed | deleted | nullnullable
qstringnullablemax 200
per_pageintegernullable1–100

Example request

curl 'https://app.shoutrrr.com/api/v1/posts' \
  -H 'Authorization: Bearer <token>'
const res = await fetch('https://app.shoutrrr.com/api/v1/posts', {
  method: 'GET',
  headers: {
    'Authorization': 'Bearer <token>',
  },
});
const data = await res.json();
import requests

res = requests.get(
    'https://app.shoutrrr.com/api/v1/posts',
    headers={'Authorization': 'Bearer <token>'},
)
data = res.json()
<?php
$ch = curl_init('https://app.shoutrrr.com/api/v1/posts');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'GET',
    CURLOPT_HTTPHEADER => [
        'Authorization: Bearer <token>',
    ],
]);
$data = json_decode(curl_exec($ch), true);

Responses

200

FieldTypeNotes
datarequiredobject
paginationrequiredobject
per_pagerequiredinteger
next_cursorrequiredstringnullable
prev_cursorrequiredstringnullable
has_morerequiredboolean

401 Unauthenticated

FieldTypeNotes
messagerequiredError overview.string

422 Validation error

FieldTypeNotes
messagerequiredErrors overview.string
errorsrequiredA detailed description of each field that failed validation.object

POST /posts

Requires Authorization: Bearer <token>.

Request body

FieldTypeNotes
base_textrequiredstringnullable
segmentsstring[]
destinationrequiredobject
kindrequiredall | set | account
idstringnullable
mentionsobject[]
idrequiredstring
labelrequiredstring
handlesobject
xstringnullable
blueskystringnullable
linkedinstringnullable

Example request

curl -X POST 'https://app.shoutrrr.com/api/v1/posts' \
  -H 'Authorization: Bearer <token>' \
  -H 'Content-Type: application/json' \
  -d '{
  "base_text": "string",
  "destination": {
    "kind": "all"
  }
}'
const res = await fetch('https://app.shoutrrr.com/api/v1/posts', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer <token>',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
  "base_text": "string",
  "destination": {
    "kind": "all"
  }
}),
});
const data = await res.json();
import requests

res = requests.post(
    'https://app.shoutrrr.com/api/v1/posts',
    headers={'Authorization': 'Bearer <token>'},
    json={
        'base_text': 'string',
        'destination': {
            'kind': 'all'
        }
    },
)
data = res.json()
<?php
$ch = curl_init('https://app.shoutrrr.com/api/v1/posts');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'POST',
    CURLOPT_POSTFIELDS => '{
  "base_text": "string",
  "destination": {
    "kind": "all"
  }
}',
    CURLOPT_HTTPHEADER => [
        'Authorization: Bearer <token>',
        'Content-Type: application/json',
    ],
]);
$data = json_decode(curl_exec($ch), true);

Responses

201

FieldTypeNotes
postrequiredobject
idrequiredstring
base_textrequiredstring
segmentsrequiredany[]nullable
mentionsrequiredany[]
statusrequiredstring
scheduled_atrequiredstringnullable
published_atrequiredstringnullable
updated_atrequiredstring
destinationrequired"all" | "accounts" | "account" | "set"
targetsrequiredobject[]
idrequiredstring
connected_account_idrequiredstring
platformrequiredstring
handlerequiredstring
display_namerequiredstringnullable
avatar_urlrequiredstringnullable
sectionsrequiredany[]
content_overriderequiredany[]nullable
auto_splitrequiredboolean
statusrequiredstring
error_kindrequiredstringnullable
error_messagerequiredstringnullable
attemptsrequiredinteger
remote_idrequiredstringnullable
issuesrequiredstring
mediarequiredobject[]
idrequiredstring
urlrequiredstring
mimerequiredstring
kindrequiredstring
duration_secondsrequiredintegernullable
alt_textrequiredstringnullable
positionrequiredinteger
edit_settingsrequiredany[]nullable
source_urlrequiredstringnullable

401 Unauthenticated

FieldTypeNotes
messagerequiredError overview.string

403 Authorization error

FieldTypeNotes
messagerequiredError overview.string

422 Validation error

FieldTypeNotes
messagerequiredErrors overview.string
errorsrequiredA detailed description of each field that failed validation.object

GET /posts/{id}

Requires Authorization: Bearer <token>.

Path parameters

FieldTypeNotes
idrequiredstring

Example request

curl 'https://app.shoutrrr.com/api/v1/posts/{id}' \
  -H 'Authorization: Bearer <token>'
const res = await fetch('https://app.shoutrrr.com/api/v1/posts/{id}', {
  method: 'GET',
  headers: {
    'Authorization': 'Bearer <token>',
  },
});
const data = await res.json();
import requests

res = requests.get(
    'https://app.shoutrrr.com/api/v1/posts/{id}',
    headers={'Authorization': 'Bearer <token>'},
)
data = res.json()
<?php
$ch = curl_init('https://app.shoutrrr.com/api/v1/posts/{id}');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'GET',
    CURLOPT_HTTPHEADER => [
        'Authorization: Bearer <token>',
    ],
]);
$data = json_decode(curl_exec($ch), true);

Responses

200

FieldTypeNotes
postrequiredobject
idrequiredstring
base_textrequiredstring
segmentsrequiredany[]nullable
mentionsrequiredany[]
statusrequiredstring
scheduled_atrequiredstringnullable
published_atrequiredstringnullable
updated_atrequiredstring
destinationrequired"all" | "accounts" | "account" | "set"
targetsrequiredobject[]
idrequiredstring
connected_account_idrequiredstring
platformrequiredstring
handlerequiredstring
display_namerequiredstringnullable
avatar_urlrequiredstringnullable
sectionsrequiredany[]
content_overriderequiredany[]nullable
auto_splitrequiredboolean
statusrequiredstring
error_kindrequiredstringnullable
error_messagerequiredstringnullable
attemptsrequiredinteger
remote_idrequiredstringnullable
issuesrequiredstring
mediarequiredobject[]
idrequiredstring
urlrequiredstring
mimerequiredstring
kindrequiredstring
duration_secondsrequiredintegernullable
alt_textrequiredstringnullable
positionrequiredinteger
edit_settingsrequiredany[]nullable
source_urlrequiredstringnullable

401 Unauthenticated

FieldTypeNotes
messagerequiredError overview.string

PATCH /posts/{id}

Requires Authorization: Bearer <token>.

Path parameters

FieldTypeNotes
idrequiredstring

Request body

FieldTypeNotes
base_textrequiredstringnullable
expected_updated_atstringnullable
segmentsstring[]
destinationrequiredobject
kindrequiredall | set | account
idstringnullable
media_idsstring[]
mentionsobject[]
idrequiredstring
labelrequiredstring
handlesobject
xstringnullable
blueskystringnullable
linkedinstringnullable
targetsobject[]
connected_account_idrequiredstring
auto_splitboolean
content_overrideobjectnullable
textstringnullable
media_idsstring[]

Example request

curl -X PATCH 'https://app.shoutrrr.com/api/v1/posts/{id}' \
  -H 'Authorization: Bearer <token>' \
  -H 'Content-Type: application/json' \
  -d '{
  "base_text": "string",
  "destination": {
    "kind": "all"
  }
}'
const res = await fetch('https://app.shoutrrr.com/api/v1/posts/{id}', {
  method: 'PATCH',
  headers: {
    'Authorization': 'Bearer <token>',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
  "base_text": "string",
  "destination": {
    "kind": "all"
  }
}),
});
const data = await res.json();
import requests

res = requests.patch(
    'https://app.shoutrrr.com/api/v1/posts/{id}',
    headers={'Authorization': 'Bearer <token>'},
    json={
        'base_text': 'string',
        'destination': {
            'kind': 'all'
        }
    },
)
data = res.json()
<?php
$ch = curl_init('https://app.shoutrrr.com/api/v1/posts/{id}');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'PATCH',
    CURLOPT_POSTFIELDS => '{
  "base_text": "string",
  "destination": {
    "kind": "all"
  }
}',
    CURLOPT_HTTPHEADER => [
        'Authorization: Bearer <token>',
        'Content-Type: application/json',
    ],
]);
$data = json_decode(curl_exec($ch), true);

Responses

200

FieldTypeNotes
postrequiredobject
idrequiredstring
base_textrequiredstring
segmentsrequiredany[]nullable
mentionsrequiredany[]
statusrequiredstring
scheduled_atrequiredstringnullable
published_atrequiredstringnullable
updated_atrequiredstring
destinationrequired"all" | "accounts" | "account" | "set"
targetsrequiredobject[]
idrequiredstring
connected_account_idrequiredstring
platformrequiredstring
handlerequiredstring
display_namerequiredstringnullable
avatar_urlrequiredstringnullable
sectionsrequiredany[]
content_overriderequiredany[]nullable
auto_splitrequiredboolean
statusrequiredstring
error_kindrequiredstringnullable
error_messagerequiredstringnullable
attemptsrequiredinteger
remote_idrequiredstringnullable
issuesrequiredstring
mediarequiredobject[]
idrequiredstring
urlrequiredstring
mimerequiredstring
kindrequiredstring
duration_secondsrequiredintegernullable
alt_textrequiredstringnullable
positionrequiredinteger
edit_settingsrequiredany[]nullable
source_urlrequiredstringnullable

401 Unauthenticated

FieldTypeNotes
messagerequiredError overview.string

409 An error

FieldTypeNotes
messagerequiredError overview.string

422 Validation error

FieldTypeNotes
messagerequiredErrors overview.string
errorsrequiredA detailed description of each field that failed validation.object

DELETE /posts/{id}

Requires Authorization: Bearer <token>.

Path parameters

FieldTypeNotes
idrequiredstring

Example request

curl -X DELETE 'https://app.shoutrrr.com/api/v1/posts/{id}' \
  -H 'Authorization: Bearer <token>'
const res = await fetch('https://app.shoutrrr.com/api/v1/posts/{id}', {
  method: 'DELETE',
  headers: {
    'Authorization': 'Bearer <token>',
  },
});
const data = await res.json();
import requests

res = requests.delete(
    'https://app.shoutrrr.com/api/v1/posts/{id}',
    headers={'Authorization': 'Bearer <token>'},
)
data = res.json()
<?php
$ch = curl_init('https://app.shoutrrr.com/api/v1/posts/{id}');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'DELETE',
    CURLOPT_HTTPHEADER => [
        'Authorization: Bearer <token>',
    ],
]);
$data = json_decode(curl_exec($ch), true);

Responses

200

FieldTypeNotes
deletedrequiredboolean
remoterequiredboolean
messagerequired"Remote deletion queued for published targets."
FieldTypeNotes
deletedrequiredboolean
remoterequiredboolean

401 Unauthenticated

FieldTypeNotes
messagerequiredError overview.string

403 Authorization error

FieldTypeNotes
messagerequiredError overview.string