curl -X GET "https://api.hooked.so/v1/schedule/cm6f7g8h9i0j1k2l3m4n5o6p7" \
-H "x-api-key: your_api_key_here"
const scheduleId = 'cm6f7g8h9i0j1k2l3m4n5o6p7';
const response = await fetch(`https://api.hooked.so/v1/schedule/${scheduleId}`, {
headers: { 'x-api-key': process.env.HOOKED_API_KEY }
});
const { data } = await response.json();
if (data.status === 'published') console.log(data.platformData);
import requests
schedule_id = 'cm6f7g8h9i0j1k2l3m4n5o6p7'
response = requests.get(
f'https://api.hooked.so/v1/schedule/{schedule_id}',
headers={'x-api-key': 'your_api_key_here'}
)
print(response.json()['data']['status'])
{
"success": true,
"data": {
"id": "cm6f7g8h9i0j1k2l3m4n5o6p7",
"status": "published",
"scheduledDateTime": "2026-10-05T15:00:00.000Z",
"platform": "youtube",
"integration": {
"id": "cm3c4d5e6f7g8h9i0j1k2l3m4",
"type": "youtube",
"account": {
"id": "UC1234567890",
"name": "My YouTube Channel",
"username": "mychannel",
"avatarUrl": "https://yt3.ggpht.com/..."
}
},
"video": {
"id": "cm5e6f7g8h9i0j1k2l3m4n5o6",
"name": "5 tips for better sleep",
"url": "https://.../video.mp4",
"thumbnail": "https://.../thumbnail.jpg",
"durationInSeconds": 42
},
"platformData": {
"videoId": "dQw4w9WgXcQ",
"videoUrl": "https://www.youtube.com/watch?v=dQw4w9WgXcQ"
},
"createdAt": "2026-10-01T10:30:00.000Z",
"updatedAt": "2026-10-05T15:00:41.000Z"
}
}
{
"code": "not_found",
"message": "Schedule not found",
"errorCode": "RESOURCE_NOT_FOUND",
"details": { "resource_id": "cm6f7g8h9i0j1k2l3m4n5o6p7", "resource_type": "Schedule" }
}
Publish
Get Scheduled Post
Get one scheduled post and whether it was published
GET
/
v1
/
schedule
/
{scheduleId}
curl -X GET "https://api.hooked.so/v1/schedule/cm6f7g8h9i0j1k2l3m4n5o6p7" \
-H "x-api-key: your_api_key_here"
const scheduleId = 'cm6f7g8h9i0j1k2l3m4n5o6p7';
const response = await fetch(`https://api.hooked.so/v1/schedule/${scheduleId}`, {
headers: { 'x-api-key': process.env.HOOKED_API_KEY }
});
const { data } = await response.json();
if (data.status === 'published') console.log(data.platformData);
import requests
schedule_id = 'cm6f7g8h9i0j1k2l3m4n5o6p7'
response = requests.get(
f'https://api.hooked.so/v1/schedule/{schedule_id}',
headers={'x-api-key': 'your_api_key_here'}
)
print(response.json()['data']['status'])
{
"success": true,
"data": {
"id": "cm6f7g8h9i0j1k2l3m4n5o6p7",
"status": "published",
"scheduledDateTime": "2026-10-05T15:00:00.000Z",
"platform": "youtube",
"integration": {
"id": "cm3c4d5e6f7g8h9i0j1k2l3m4",
"type": "youtube",
"account": {
"id": "UC1234567890",
"name": "My YouTube Channel",
"username": "mychannel",
"avatarUrl": "https://yt3.ggpht.com/..."
}
},
"video": {
"id": "cm5e6f7g8h9i0j1k2l3m4n5o6",
"name": "5 tips for better sleep",
"url": "https://.../video.mp4",
"thumbnail": "https://.../thumbnail.jpg",
"durationInSeconds": 42
},
"platformData": {
"videoId": "dQw4w9WgXcQ",
"videoUrl": "https://www.youtube.com/watch?v=dQw4w9WgXcQ"
},
"createdAt": "2026-10-01T10:30:00.000Z",
"updatedAt": "2026-10-05T15:00:41.000Z"
}
}
{
"code": "not_found",
"message": "Schedule not found",
"errorCode": "RESOURCE_NOT_FOUND",
"details": { "resource_id": "cm6f7g8h9i0j1k2l3m4n5o6p7", "resource_type": "Schedule" }
}
Overview
Returns one scheduled post with its status, the account it publishes to and the video. Poll it after the scheduled time to see whether the post went out. The call is free and safe to retry.curl -X GET "https://api.hooked.so/v1/schedule/cm6f7g8h9i0j1k2l3m4n5o6p7" \
-H "x-api-key: your_api_key_here"
const scheduleId = 'cm6f7g8h9i0j1k2l3m4n5o6p7';
const response = await fetch(`https://api.hooked.so/v1/schedule/${scheduleId}`, {
headers: { 'x-api-key': process.env.HOOKED_API_KEY }
});
const { data } = await response.json();
if (data.status === 'published') console.log(data.platformData);
import requests
schedule_id = 'cm6f7g8h9i0j1k2l3m4n5o6p7'
response = requests.get(
f'https://api.hooked.so/v1/schedule/{schedule_id}',
headers={'x-api-key': 'your_api_key_here'}
)
print(response.json()['data']['status'])
{
"success": true,
"data": {
"id": "cm6f7g8h9i0j1k2l3m4n5o6p7",
"status": "published",
"scheduledDateTime": "2026-10-05T15:00:00.000Z",
"platform": "youtube",
"integration": {
"id": "cm3c4d5e6f7g8h9i0j1k2l3m4",
"type": "youtube",
"account": {
"id": "UC1234567890",
"name": "My YouTube Channel",
"username": "mychannel",
"avatarUrl": "https://yt3.ggpht.com/..."
}
},
"video": {
"id": "cm5e6f7g8h9i0j1k2l3m4n5o6",
"name": "5 tips for better sleep",
"url": "https://.../video.mp4",
"thumbnail": "https://.../thumbnail.jpg",
"durationInSeconds": 42
},
"platformData": {
"videoId": "dQw4w9WgXcQ",
"videoUrl": "https://www.youtube.com/watch?v=dQw4w9WgXcQ"
},
"createdAt": "2026-10-01T10:30:00.000Z",
"updatedAt": "2026-10-05T15:00:41.000Z"
}
}
{
"code": "not_found",
"message": "Schedule not found",
"errorCode": "RESOURCE_NOT_FOUND",
"details": { "resource_id": "cm6f7g8h9i0j1k2l3m4n5o6p7", "resource_type": "Schedule" }
}
Errors
| Status | When |
|---|---|
| 401 | Missing or invalid API key (code: "not_authenticated") |
| 403 | Your team does not have the Hooked app product (code: "entitlement_required") |
| 404 | No scheduled post with that id, including a cancelled one (code: "not_found"). A post published directly (not scheduled) answers the same way, and so does an id that belongs to another team |
| 500 | { "success": false, "message": "Failed to fetch schedule", "error": "..." } |