Queue & Scheduling
Manage the smart queue that automatically spaces your posts across configured time slots, and control scheduled posts that are waiting to be published.
List Scheduled Posts
GET https://api.indreelforge.com/api/schedule
Returns all posts currently in a scheduled state for the authenticated account, ordered by their scheduled date ascending.
curl \
-H 'Authorization: Apikey YOUR_API_KEY' \
https://api.indreelforge.com/api/schedule
Response
{
"scheduled_posts": [
{
"id": "upload_abc123",
"title": "Product launch reel",
"description": "Check out our new feature drop!",
"upload_type": "video",
"platforms": ["instagram", "tiktok"],
"platform_statuses": {
"instagram": "pending",
"tiktok": "pending"
},
"scheduled_at": "2026-04-20T09:00:00.000Z",
"timezone": "America/New_York",
"created_at": "2026-04-18T14:32:00.000Z"
}
]
}
Edit Scheduled Post
PATCH https://api.indreelforge.com/api/schedule/:jobId
Updates one or more fields of a scheduled post. The post must still have scheduled status — posts that have already been picked up for publishing will return a 409 conflict.
| Parameter | Type | Required | Description |
|---|---|---|---|
scheduled_date | string | No | New publish time in ISO-8601 format. Must be in the future and within 1 year. |
timezone | string | No | IANA timezone name (e.g. America/New_York) |
title | string | No | Updated post title |
caption | string | No | Updated post caption / description |
At least one field must be provided.
curl \
-H 'Authorization: Apikey YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"scheduled_date": "2026-04-21T12:00:00.000Z", "caption": "Updated caption!"}' \
-X PATCH https://api.indreelforge.com/api/schedule/upload_abc123
Response
{
"success": true,
"message": "Scheduled post updated",
"post": {
"id": "upload_abc123",
"title": "Product launch reel",
"caption": "Updated caption!",
"scheduled_date": "2026-04-21 12:00:00",
"platforms": ["instagram", "tiktok"]
}
}
Cancel Scheduled Post
DELETE https://api.indreelforge.com/api/schedule/:jobId
Cancels a scheduled post and decrements the account's monthly upload count since the post was never published. Returns 409 if the scheduler has already claimed the post for publishing.
curl \
-H 'Authorization: Apikey YOUR_API_KEY' \
-X DELETE https://api.indreelforge.com/api/schedule/upload_abc123
Response
{
"success": true,
"message": "Scheduled post cancelled successfully"
}
Get Queue Settings
GET https://api.indreelforge.com/api/queue/settings?profile=username
Returns the queue configuration for a specific profile. If no settings have been saved, the default schedule (09:00, 12:00, 17:00 on weekdays) is returned.
| Parameter | Type | Required | Description |
|---|---|---|---|
profile | string | Yes | Profile username (query string) |
curl \
-H 'Authorization: Apikey YOUR_API_KEY' \
'https://api.indreelforge.com/api/queue/settings?profile=myprofile'
Response
{
"profile": "myprofile",
"timezone": "America/Los_Angeles",
"slots": [
{ "time": "09:00" },
{ "time": "12:00" },
{ "time": "17:00" }
],
"days_of_week": [1, 2, 3, 4, 5],
"max_posts_per_slot": 1
}
days_of_week uses Sunday = 0 through Saturday = 6.
Update Queue Settings
POST https://api.indreelforge.com/api/queue/settings
Creates or replaces the queue schedule for a profile. Existing scheduled posts are not affected — only future auto-queuing behaviour changes.
| Parameter | Type | Required | Description |
|---|---|---|---|
profile_username | string | Yes | Profile username |
timezone | string | No | IANA timezone name. Defaults to UTC. |
slots | array of strings | No | Time slots in HH:MM format (max 24). Defaults to ["09:00","12:00","17:00"]. |
days_of_week | array of integers | No | Days to post; 0 = Sunday, 6 = Saturday. Defaults to [1,2,3,4,5]. |
max_posts_per_slot | integer | No | Max posts per slot, 1–10. Defaults to 1. |
curl \
-H 'Authorization: Apikey YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"profile_username": "myprofile",
"timezone": "America/Los_Angeles",
"slots": ["08:00", "13:00", "18:30"],
"days_of_week": [1, 2, 3, 4, 5, 6],
"max_posts_per_slot": 2
}' \
-X POST https://api.indreelforge.com/api/queue/settings
Response
{
"success": true,
"profile": "myprofile",
"timezone": "America/Los_Angeles",
"slots": [
{ "time": "08:00" },
{ "time": "13:00" },
{ "time": "18:30" }
],
"days_of_week": [1, 2, 3, 4, 5, 6],
"max_posts_per_slot": 2
}
Preview Queue Slots
GET https://api.indreelforge.com/api/queue/preview?profile=username&count=10
Returns the next upcoming queue slots for a profile, indicating whether each slot is already occupied by a scheduled post. Useful for showing a calendar view of upcoming availability.
| Parameter | Type | Required | Description |
|---|---|---|---|
profile | string | Yes | Profile username |
count | integer | No | Number of slots to return (default 10, max 50) |
curl \
-H 'Authorization: Apikey YOUR_API_KEY' \
'https://api.indreelforge.com/api/queue/preview?profile=myprofile&count=5'
Response
{
"profile": "myprofile",
"timezone": "America/Los_Angeles",
"count": 5,
"slots": [
{
"scheduled_date": "2026-04-19T09:00:00.000Z",
"slot_time": "09:00",
"day": "Sunday",
"available": true
},
{
"scheduled_date": "2026-04-19T12:00:00.000Z",
"slot_time": "12:00",
"day": "Sunday",
"available": false
}
]
}
available: false means a scheduled post already occupies that slot.
Get Next Available Slot
GET https://api.indreelforge.com/api/queue/next-slot?profile=username
Returns the single next queue slot that is not yet occupied by a scheduled post. Searches up to 90 days ahead.
| Parameter | Type | Required | Description |
|---|---|---|---|
profile | string | Yes | Profile username |
curl \
-H 'Authorization: Apikey YOUR_API_KEY' \
'https://api.indreelforge.com/api/queue/next-slot?profile=myprofile'
Response
{
"profile": "myprofile",
"timezone": "America/Los_Angeles",
"next_slot": "2026-04-20T09:00:00.000Z",
"slot_time": "09:00",
"day": "Monday"
}
If no slot is available within 90 days, next_slot will be null and a message field will explain.
Block a Slot
POST https://api.indreelforge.com/api/queue/slot-full
Manually marks a specific time slot as blocked so the auto-queue will skip it. Use this to reserve time around events or blackout specific dates.
| Parameter | Type | Required | Description |
|---|---|---|---|
profile | string | Yes | Profile username |
slot_time | string | Yes | ISO-8601 datetime of the slot to block |
curl \
-H 'Authorization: Apikey YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"profile": "myprofile", "slot_time": "2026-04-20T09:00:00.000Z"}' \
-X POST https://api.indreelforge.com/api/queue/slot-full
Response
{
"success": true,
"profile": "myprofile",
"slot_time": "2026-04-20 09:00:00"
}
Unblock a Slot
DELETE https://api.indreelforge.com/api/queue/slot-full
Removes a manual block from a previously blocked slot, making it available to the auto-queue again.
| Parameter | Type | Required | Description |
|---|---|---|---|
profile | string | Yes | Profile username |
slot_time | string | Yes | ISO-8601 datetime of the slot to unblock |
curl \
-H 'Authorization: Apikey YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"profile": "myprofile", "slot_time": "2026-04-20T09:00:00.000Z"}' \
-X DELETE https://api.indreelforge.com/api/queue/slot-full
Response
{
"success": true,
"profile": "myprofile",
"slot_time": "2026-04-20 09:00:00"
}