π¦ ClawHub
dopost-api
by @dopost
Use the Dopost REST API to publish, schedule, and manage social media posts programmatically. Use this skill when the user wants to publish to social media,...
π‘ Examples
1. List connected accounts
Request
curl -H "x-api-key: $DOPOST_API_KEY" \
https://dopost.co/api/v1/social/accounts
Response 200 OK
{
"accounts": [
{
"id": "cm3xyz789ghi012",
"platform": "INSTAGRAM",
"platformUsername": "myaccount",
"platformUserId": "17841400000000001"
},
{
"id": "cm3abc456def789",
"platform": "LINKEDIN",
"platformUsername": "johndoe",
"platformUserId": "urn:li:person:a1B2c3D4e5"
}
]
}
2. Publish a text post immediately
Request
curl -X POST \
-H "x-api-key: $DOPOST_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"accountId": "cm3xyz789ghi012",
"text": "Hello from the Dopost API!"
}' \
https://dopost.co/api/v1/post/publish
Response 202 Accepted
{
"success": true,
"jobId": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"postId": "cm3abc123def456",
"status": "processing"
}
3. Check post status
Request
curl -H "x-api-key: $DOPOST_API_KEY" \
https://dopost.co/api/v1/post/cm3abc123def456
Response β published
{
"id": "cm3abc123def456",
"status": "PUBLISHED",
"platform": "INSTAGRAM",
"text": "Hello from the Dopost API!",
"media": [],
"postUrl": "https://www.instagram.com/p/ABC123/",
"account": {
"id": "cm3xyz789ghi012",
"platform": "INSTAGRAM",
"platformUsername": "myaccount"
},
"schedule": null,
"jobId": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"source": "api",
"createdAt": "2026-04-07T10:00:00.000Z",
"updatedAt": "2026-04-07T10:32:18.000Z"
}
Response β failed
{
"id": "cm3abc123def456",
"status": "FAILED",
"platform": "INSTAGRAM",
"text": "Hello from the Dopost API!",
"media": [],
"postUrl": null,
"account": {
"id": "cm3xyz789ghi012",
"platform": "INSTAGRAM",
"platformUsername": "myaccount"
},
"schedule": null,
"jobId": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"source": "api",
"createdAt": "2026-04-07T10:00:00.000Z",
"updatedAt": "2026-04-07T10:05:00.000Z"
}
4. Publish an Instagram Reel
Request
curl -X POST \
-H "x-api-key: $DOPOST_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"accountId": "cm3xyz789ghi012",
"text": "New reel! #content",
"media": ["https://cdn.example.com/video.mp4"],
"platformOptions": {
"postType": "reel"
}
}' \
https://dopost.co/api/v1/post/publish
Response 202 Accepted
{
"success": true,
"jobId": "a1b2c3d4-0000-4abc-8def-111122223333",
"postId": "cm3reel001xyz",
"status": "processing"
}
5. Schedule a post
Request
curl -X POST \
-H "x-api-key: $DOPOST_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"accountId": "cm3abc456def789",
"text": "Scheduled post for next Monday!",
"publishAt": "2026-04-13T09:00:00Z"
}' \
https://dopost.co/api/v1/post/publish
Response 202 Accepted
{
"success": true,
"jobId": "b2c3d4e5-1111-4bcd-9ef0-222233334444",
"postId": "cm3sched001abc",
"status": "scheduled"
}
6. Upload media and publish with it
Step 1 β Request presigned URL
curl -X POST \
-H "x-api-key: $DOPOST_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"fileName": "photo.jpg",
"contentType": "image/jpeg",
"sizeInBytes": 204800
}' \
https://dopost.co/api/v1/media
Response 201 Created
{
"id": "cm3media001xyz",
"uploadUrl": "https://storage.example.com/uploads/photo.jpg?X-Amz-Signature=...",
"publicUrl": "https://cdn.dopost.co/media/cm3media001xyz/photo.jpg",
"fileName": "photo.jpg",
"contentType": "image/jpeg",
"expiresIn": 3600
}
Step 2 β Upload the file
curl -X PUT \
-H "Content-Type: image/jpeg" \
--data-binary @photo.jpg \
"https://storage.example.com/uploads/photo.jpg?X-Amz-Signature=..."
Returns 200 with empty body on success.Step 3 β Publish using the public URL
curl -X POST \
-H "x-api-key: $DOPOST_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"accountId": "cm3xyz789ghi012",
"text": "Check out this photo!",
"media": ["https://cdn.dopost.co/media/cm3media001xyz/photo.jpg"]
}' \
https://dopost.co/api/v1/post/publish
7. Reschedule a pending post
Request
curl -X PATCH \
-H "x-api-key: $DOPOST_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "publishAt": "2026-04-20T14:00:00Z" }' \
https://dopost.co/api/v1/post/cm3sched001abc
Response 200 OK
{
"id": "cm3sched001abc",
"scheduledFor": "2026-04-20T14:00:00.000Z"
}
8. List posts with filter
Request
curl -H "x-api-key: $DOPOST_API_KEY" \
"https://dopost.co/api/v1/post?status=PUBLISHED&limit=5"
Response 200 OK
{
"posts": [
{
"id": "cm3abc123def456",
"status": "PUBLISHED",
"text": "Hello from the Dopost API!",
"publishedAt": "2026-04-07T10:32:18.000Z",
"account": {
"id": "cm3xyz789ghi012",
"platform": "INSTAGRAM",
"platformUsername": "myaccount"
}
}
],
"nextCursor": null,
"hasMore": false
}
9. Delete a post
Request
curl -X DELETE \
-H "x-api-key: $DOPOST_API_KEY" \
https://dopost.co/api/v1/post/delete/cm3sched001abc
Response 200 OK
{
"success": true,
"deletedPostId": "cm3sched001abc"
}
βοΈ Configuration
Always check for an .env or .env.local file with DOPOST_API_KEY. If not present, ask the user for their key before proceeding.
export DOPOST_API_KEY="dpk_live_..."
TERMINAL
clawhub install dopost