One API.Every next post.
Publish, schedule, and keep the conversation going. Connect your product to the platforms your audience actually uses.
curl -X POST https://castrook.com/api/v1/posts \
-H "Authorization: Bearer $CASTROOK_API_KEY" \
-H "Idempotency-Key: collection-launch-v1" \
-H "Content-Type: application/json" \
-d '{
"text": "Something worth sharing.",
"account_ids": ["acc_tiktok", "acc_instagram"],
"media": {
"type": "video",
"url": "https://your-cdn.com/launch.mp4"
}
}'“Accepted” is just
the beginning.
A post is more than an API response. Follow each destination from queue to publication, with the status and errors your app needs.
Destination deliveredpublishedDestination deliveredpublishedDestination deliveredpublishedAwaiting platform processingpublishingGive every post its moment.
Send an ISO timestamp. Inspect the queue, cancel pending posts, and get an event when delivery finishes.
Explore schedulingRetry without the double post.
Idempotency keys keep repeated requests tied to the same post. A result for each destination makes partial failures visible.
Understand delivery statesPublishing starts a conversation.
Read and reply to comments through the same API on supported accounts. Capabilities tell you what’s available.
Build with commentsLess decoding.
More shipping.
Predictable JSON. Scoped keys. Useful errors. A TypeScript client and a complete OpenAPI specification, ready to work the way you do.
{
"data": {
"id": "pst_example",
"status": "queued",
"mode": "test",
"targets": [
{
"account_id": "acc_instagram",
"platform": "instagram",
"status": "queued",
"attempts": 0
}
]
}
}Your next feature
could be a whole new channel.
Start in test mode. Connect live accounts when you’re ready.