Dashboard
Overview of your upload activity
Total Uploads
+0 this week
Succeeded
across all platforms
In Progress
uploading now
Connected
social platforms
Connected Platforms
Click to manage account
Recent Activity
Last 5 upload jobs
📭
No activity yet
Upload your first video to get started
Video Source
Direct video file URL (.mp4, .mov, .avi) or cloud storage link
0/200 characters
0/5000 characters
Comma-separated hashtags (without #)
Schedule
Select Platforms
Choose where to post
⚠ Disconnected platforms are grayed out — connect them first
Privacy / Visibility
Upload Jobs
Job ID Title Platforms Status Progress Created Actions
Social Media Connections
Connect your accounts to enable posting
OAuth Setup Notes
Each platform requires API credentials set in your .env file.
After connecting, tokens are stored securely in your local database.
Tokens auto-refresh where supported (YouTube, Facebook, Instagram).

REST API Endpoint

Use these endpoints from n8n HTTP Request nodes or any HTTP client

http://localhost:3333/api

n8n — HTTP Request Node (Upload)

Configure the HTTP Request node in n8n with these settings to trigger uploads

POST /api/upload Body (JSON): { "videoUrl": "https://...", "title": "My Video", "description":"Video description", "tags": ["tag1","tag2"], "platforms": ["youtube","tiktok","instagram"], "visibility": "public", "scheduleAt": null }

n8n — Check Job Status

Poll this endpoint to get the upload job status

GET /api/jobs/:jobId Response: { "id": "job_abc123", "status": "success|failed|uploading|pending", "progress": 100, "results": { "youtube": { "status":"success", "videoId":"dQw4w9WgXcQ" }, "tiktok": { "status":"failed", "error":"Token expired" }, "instagram": { "status":"success", "mediaId":"17843..." } } }

n8n Custom Node

Install the PostFlow custom node for native n8n integration

# Copy n8n-node/ folder to your n8n custom nodes: cp -r ./n8n-node ~/.n8n/custom/ # Install dependencies cd ~/.n8n/custom/n8n-node npm install && npm run build # Restart n8n — "PostFlow" node will appear # in n8n under category: "Marketing"

API Key Auth

Set your API key in .env and pass it with each request

Header: X-API-Key: your_api_key_here # Or disable auth for local use: # REQUIRE_API_KEY=false in .env

Webhook Notifications

PostFlow can POST job results back to your n8n Webhook trigger

WEBHOOK_URL=https://your-n8n.com/webhook/abc # On job completion, PostFlow will POST: { "event": "upload.complete", "jobId": "job_abc123", "status": "success", "results": { ... } }

Quick Test

Test your API connection

API Configuration

Backend server connection settings

Upload Defaults

Pre-fill values for new uploads

Notifications

Configure webhook notifications on job completion

PostFlow will POST job results to this URL

App Info

PostFlow — Social Media Upload Platform

Version: 1.0.0
Backend: Not connected
DB: SQLite