curl -X GET "https://api.hooked.so/v1/schedule/post_abc123xyz" \
-H "x-api-key: your_api_key_here"
const scheduleId = 'post_abc123xyz';
const response = await fetch(`https://api.hooked.so/v1/schedule/${scheduleId}`, {
method: 'GET',
headers: {
'x-api-key': process.env.HOOKED_API_KEY
}
});
const data = await response.json();
console.log('Schedule:', data.data);
console.log('Status:', data.data.status);
console.log('Scheduled for:', data.data.scheduledDateTime);
import requests
schedule_id = 'post_abc123xyz'
response = requests.get(
f'https://api.hooked.so/v1/schedule/{schedule_id}',
headers={'x-api-key': 'your_api_key_here'}
)
data = response.json()
print('Status:', data['data']['status'])
print('Scheduled for:', data['data']['scheduledDateTime'])
$scheduleId = 'post_abc123xyz';
$ch = curl_init();
curl_setopt_array($ch, [
CURLOPT_URL => "https://api.hooked.so/v1/schedule/{$scheduleId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'x-api-key: your_api_key_here'
]
]);
$response = curl_exec($ch);
curl_close($ch);
$data = json_decode($response, true);
print_r($data['data']);
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
scheduleId := "post_abc123xyz"
url := fmt.Sprintf("https://api.hooked.so/v1/schedule/%s", scheduleId)
req, _ := http.NewRequest("GET", url, nil)
req.Header.Set("x-api-key", "your_api_key_here")
client := &http.Client{}
resp, _ := client.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
{
"success": true,
"data": {
"id": "post_abc123xyz",
"status": "pending",
"scheduledDateTime": "2024-03-15T14:00:00.000Z",
"platform": "youtube",
"integration": {
"id": "int_yt_def456",
"type": "youtube",
"account": {
"id": "UC1234567890",
"name": "My YouTube Channel",
"username": "mychannel",
"avatarUrl": "https://yt3.ggpht.com/..."
}
},
"video": {
"id": "vid_ghi789",
"name": "10 Tips for Productivity",
"url": "https://cdn.hooked.so/signed/...",
"thumbnail": "https://cdn.hooked.so/signed/...",
"durationInSeconds": 45
},
"platformData": {
"title": "10 Tips for Productivity",
"description": "Learn how to boost your productivity...",
"tags": ["productivity", "tips", "workflow"],
"privacyStatus": "public",
"madeForKids": false
},
"createdAt": "2024-03-10T10:00:00.000Z",
"updatedAt": "2024-03-10T10:00:00.000Z"
}
}
{
"success": true,
"data": {
"id": "post_abc123xyz",
"status": "published",
"scheduledDateTime": "2024-03-15T14:00:00.000Z",
"platform": "youtube",
"integration": {
"id": "int_yt_def456",
"type": "youtube",
"account": {
"id": "UC1234567890",
"name": "My YouTube Channel",
"username": "mychannel",
"avatarUrl": "https://yt3.ggpht.com/..."
}
},
"video": {
"id": "vid_ghi789",
"name": "10 Tips for Productivity",
"url": "https://cdn.hooked.so/signed/...",
"thumbnail": "https://cdn.hooked.so/signed/...",
"durationInSeconds": 45
},
"platformData": {
"title": "10 Tips for Productivity",
"description": "Learn how to boost your productivity...",
"tags": ["productivity", "tips"],
"privacyStatus": "public",
"publishedUrl": "https://youtube.com/shorts/abc123",
"publishedAt": "2024-03-15T14:00:05.000Z"
},
"createdAt": "2024-03-10T10:00:00.000Z",
"updatedAt": "2024-03-15T14:00:05.000Z"
}
}
{
"code": "not_found",
"message": "Schedule not found",
"details": {
"resource_id": "post_invalid",
"resource_type": "Schedule"
}
}
{
"code": "forbidden",
"message": "Schedule does not belong to your team",
"details": {}
}
Scheduling
Get Schedule Details
Get detailed information about a specific scheduled post
GET
/
v1
/
schedule
/
{scheduleId}
curl -X GET "https://api.hooked.so/v1/schedule/post_abc123xyz" \
-H "x-api-key: your_api_key_here"
const scheduleId = 'post_abc123xyz';
const response = await fetch(`https://api.hooked.so/v1/schedule/${scheduleId}`, {
method: 'GET',
headers: {
'x-api-key': process.env.HOOKED_API_KEY
}
});
const data = await response.json();
console.log('Schedule:', data.data);
console.log('Status:', data.data.status);
console.log('Scheduled for:', data.data.scheduledDateTime);
import requests
schedule_id = 'post_abc123xyz'
response = requests.get(
f'https://api.hooked.so/v1/schedule/{schedule_id}',
headers={'x-api-key': 'your_api_key_here'}
)
data = response.json()
print('Status:', data['data']['status'])
print('Scheduled for:', data['data']['scheduledDateTime'])
$scheduleId = 'post_abc123xyz';
$ch = curl_init();
curl_setopt_array($ch, [
CURLOPT_URL => "https://api.hooked.so/v1/schedule/{$scheduleId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'x-api-key: your_api_key_here'
]
]);
$response = curl_exec($ch);
curl_close($ch);
$data = json_decode($response, true);
print_r($data['data']);
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
scheduleId := "post_abc123xyz"
url := fmt.Sprintf("https://api.hooked.so/v1/schedule/%s", scheduleId)
req, _ := http.NewRequest("GET", url, nil)
req.Header.Set("x-api-key", "your_api_key_here")
client := &http.Client{}
resp, _ := client.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
{
"success": true,
"data": {
"id": "post_abc123xyz",
"status": "pending",
"scheduledDateTime": "2024-03-15T14:00:00.000Z",
"platform": "youtube",
"integration": {
"id": "int_yt_def456",
"type": "youtube",
"account": {
"id": "UC1234567890",
"name": "My YouTube Channel",
"username": "mychannel",
"avatarUrl": "https://yt3.ggpht.com/..."
}
},
"video": {
"id": "vid_ghi789",
"name": "10 Tips for Productivity",
"url": "https://cdn.hooked.so/signed/...",
"thumbnail": "https://cdn.hooked.so/signed/...",
"durationInSeconds": 45
},
"platformData": {
"title": "10 Tips for Productivity",
"description": "Learn how to boost your productivity...",
"tags": ["productivity", "tips", "workflow"],
"privacyStatus": "public",
"madeForKids": false
},
"createdAt": "2024-03-10T10:00:00.000Z",
"updatedAt": "2024-03-10T10:00:00.000Z"
}
}
{
"success": true,
"data": {
"id": "post_abc123xyz",
"status": "published",
"scheduledDateTime": "2024-03-15T14:00:00.000Z",
"platform": "youtube",
"integration": {
"id": "int_yt_def456",
"type": "youtube",
"account": {
"id": "UC1234567890",
"name": "My YouTube Channel",
"username": "mychannel",
"avatarUrl": "https://yt3.ggpht.com/..."
}
},
"video": {
"id": "vid_ghi789",
"name": "10 Tips for Productivity",
"url": "https://cdn.hooked.so/signed/...",
"thumbnail": "https://cdn.hooked.so/signed/...",
"durationInSeconds": 45
},
"platformData": {
"title": "10 Tips for Productivity",
"description": "Learn how to boost your productivity...",
"tags": ["productivity", "tips"],
"privacyStatus": "public",
"publishedUrl": "https://youtube.com/shorts/abc123",
"publishedAt": "2024-03-15T14:00:05.000Z"
},
"createdAt": "2024-03-10T10:00:00.000Z",
"updatedAt": "2024-03-15T14:00:05.000Z"
}
}
{
"code": "not_found",
"message": "Schedule not found",
"details": {
"resource_id": "post_invalid",
"resource_type": "Schedule"
}
}
{
"code": "forbidden",
"message": "Schedule does not belong to your team",
"details": {}
}
Try it out! Use the API playground on the right to test the Get Schedule Details endpoint directly.
Overview
Get complete details about a specific scheduled post, including video information, platform data, and publishing status. This endpoint is useful for:- Checking the status of a scheduled post
- Retrieving platform-specific metadata
- Getting the video URL and thumbnail for preview
Endpoint
GET /v1/schedule/{scheduleId}
Path Parameters
string
required
The unique ID of the scheduled post to retrieve
Headers
string
required
Your API key from API Settings
Response
boolean
Whether the request was successful
object
Show Schedule Object
Show Schedule Object
string
Unique schedule ID
string
Current status:
pending, published, failed, or draftstring
ISO 8601 datetime when the post will be/was published
string
Target platform:
youtube, tiktok, or instagramobject
Connected platform account details
object
Video information including signed URLs
object
Platform-specific metadata (title, description, tags, etc.)
string
When the schedule was created
string
When the schedule was last updated
Request Example
curl -X GET "https://api.hooked.so/v1/schedule/post_abc123xyz" \
-H "x-api-key: your_api_key_here"
const scheduleId = 'post_abc123xyz';
const response = await fetch(`https://api.hooked.so/v1/schedule/${scheduleId}`, {
method: 'GET',
headers: {
'x-api-key': process.env.HOOKED_API_KEY
}
});
const data = await response.json();
console.log('Schedule:', data.data);
console.log('Status:', data.data.status);
console.log('Scheduled for:', data.data.scheduledDateTime);
import requests
schedule_id = 'post_abc123xyz'
response = requests.get(
f'https://api.hooked.so/v1/schedule/{schedule_id}',
headers={'x-api-key': 'your_api_key_here'}
)
data = response.json()
print('Status:', data['data']['status'])
print('Scheduled for:', data['data']['scheduledDateTime'])
$scheduleId = 'post_abc123xyz';
$ch = curl_init();
curl_setopt_array($ch, [
CURLOPT_URL => "https://api.hooked.so/v1/schedule/{$scheduleId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'x-api-key: your_api_key_here'
]
]);
$response = curl_exec($ch);
curl_close($ch);
$data = json_decode($response, true);
print_r($data['data']);
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
scheduleId := "post_abc123xyz"
url := fmt.Sprintf("https://api.hooked.so/v1/schedule/%s", scheduleId)
req, _ := http.NewRequest("GET", url, nil)
req.Header.Set("x-api-key", "your_api_key_here")
client := &http.Client{}
resp, _ := client.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
Response Examples
{
"success": true,
"data": {
"id": "post_abc123xyz",
"status": "pending",
"scheduledDateTime": "2024-03-15T14:00:00.000Z",
"platform": "youtube",
"integration": {
"id": "int_yt_def456",
"type": "youtube",
"account": {
"id": "UC1234567890",
"name": "My YouTube Channel",
"username": "mychannel",
"avatarUrl": "https://yt3.ggpht.com/..."
}
},
"video": {
"id": "vid_ghi789",
"name": "10 Tips for Productivity",
"url": "https://cdn.hooked.so/signed/...",
"thumbnail": "https://cdn.hooked.so/signed/...",
"durationInSeconds": 45
},
"platformData": {
"title": "10 Tips for Productivity",
"description": "Learn how to boost your productivity...",
"tags": ["productivity", "tips", "workflow"],
"privacyStatus": "public",
"madeForKids": false
},
"createdAt": "2024-03-10T10:00:00.000Z",
"updatedAt": "2024-03-10T10:00:00.000Z"
}
}
{
"success": true,
"data": {
"id": "post_abc123xyz",
"status": "published",
"scheduledDateTime": "2024-03-15T14:00:00.000Z",
"platform": "youtube",
"integration": {
"id": "int_yt_def456",
"type": "youtube",
"account": {
"id": "UC1234567890",
"name": "My YouTube Channel",
"username": "mychannel",
"avatarUrl": "https://yt3.ggpht.com/..."
}
},
"video": {
"id": "vid_ghi789",
"name": "10 Tips for Productivity",
"url": "https://cdn.hooked.so/signed/...",
"thumbnail": "https://cdn.hooked.so/signed/...",
"durationInSeconds": 45
},
"platformData": {
"title": "10 Tips for Productivity",
"description": "Learn how to boost your productivity...",
"tags": ["productivity", "tips"],
"privacyStatus": "public",
"publishedUrl": "https://youtube.com/shorts/abc123",
"publishedAt": "2024-03-15T14:00:05.000Z"
},
"createdAt": "2024-03-10T10:00:00.000Z",
"updatedAt": "2024-03-15T14:00:05.000Z"
}
}
{
"code": "not_found",
"message": "Schedule not found",
"details": {
"resource_id": "post_invalid",
"resource_type": "Schedule"
}
}
{
"code": "forbidden",
"message": "Schedule does not belong to your team",
"details": {}
}
Status Values
| Status | Description |
|---|---|
pending | Waiting to be published at the scheduled time |
published | Successfully published. Check platformData.publishedUrl for the live link |
failed | Publishing failed. Check platformData.error for details |
draft | Saved but not scheduled |
Next Steps
Update Schedule
Change the scheduled time or metadata
Cancel Schedule
Cancel a pending scheduled post
List All
View all scheduled posts
Webhooks
Get notified on status changes
⌘I