Base URL
https://vidpipe.social
Bearer token in the Authorization header. Generate your key from the dashboard or via the endpoint below.
Schedule a video in one command:
curl -X POST https://vidpipe.social/api/schedule \ -H "Authorization: Bearer vp_your_api_key" \ -F "video=@my-video.mp4" \ -F "caption=Check this out" \ -F "scheduled_at=30m"
All API endpoints accept either a session cookie (web dashboard) or an API key via the Authorization header:
Authorization: Bearer vp_your_api_key
Generate or regenerate your API key. Requires an active Pro subscription. Any previous key is invalidated.
{
"api_key": "vp_a1b2c3d4e5f6..."
}
Get the currently authenticated user's info. Pro users also receive their API key if one has been generated.
{
"id": "open_id_abc123",
"display_name": "username",
"avatar_url": "https://...",
"tier": "pro",
"api_key": "vp_a1b2c3d4e5f6..." // only for Pro users with a key
}
End the current session.
{ "ok": true }
Upload a video and schedule it for automatic posting to TikTok. Sends as multipart/form-data.
| Field | Type | Description | |
|---|---|---|---|
| video | file | required | Video file (max 500 MB) |
| caption | string | optional | Video caption (max 300 chars) |
| scheduled_at | string | required | ISO 8601 datetime (2026-02-15T14:30:00) or relative offset (30m, 2h, 1d) |
Example (curl):
# With relative time (30 minutes from now): curl -X POST https://vidpipe.social/api/schedule \ -H "Authorization: Bearer vp_your_api_key" \ -F "video=@my-video.mp4" \ -F "caption=Check this out" \ -F "scheduled_at=30m" # With exact datetime: curl -X POST https://vidpipe.social/api/schedule \ -H "Authorization: Bearer vp_your_api_key" \ -F "video=@my-video.mp4" \ -F "caption=Check this out" \ -F "scheduled_at=2026-02-15T14:30:00"
Response:
{
"id": "uuid-here",
"status": "pending",
"scheduled_at": "2026-02-15T14:30:00.000Z",
"publish_mode": "inbox"
}
Daily limits:
| Tier | Uploads / Day |
|---|---|
| Free | 1 |
| Pro | 50 |
List all scheduled videos for the authenticated user, ordered by creation date (newest first).
[
{
"id": "uuid",
"original_name": "my-video.mp4",
"file_size": 15728640,
"caption": "Check this out",
"scheduled_at": "2026-02-15T14:30:00.000Z",
"status": "pending", // pending | uploading | completed | failed
"error": null
}
]
Delete a scheduled video. Only works for videos with status pending.
{ "ok": true }
Create a Stripe Checkout session to upgrade to Pro. Returns a URL to redirect the user to.
{
"url": "https://checkout.stripe.com/..."
}
Open the Stripe Billing Portal to manage your subscription. Requires an active Stripe customer.
{
"url": "https://billing.stripe.com/..."
}
All error responses follow this format:
{ "error": "Description of what went wrong" }
| Status | Meaning |
|---|---|
| 400 | Bad request — missing or invalid parameters |
| 401 | Not authenticated — log in first |
| 403 | Forbidden — you don't own this resource |
| 404 | Not found |
| 429 | Daily upload limit reached |
| 500 | Server error |
Pride.Direct GmbH · Doormannsweg 19 · 20259 Hamburg · info@pride.direct