{"skill":{"slug":"postqued-api","displayName":"Postqued API","summary":"PostQued social media scheduling API integration. Use when performing API calls to PostQued for content upload, publishing to TikTok (and other platforms), m...","description":"---\nname: postqued-api\ndescription: PostQued social media scheduling API integration. Use when performing API calls to PostQued for content upload, publishing to TikTok (and other platforms), managing platform accounts, or querying publish status. Triggers on tasks involving social media posting, content scheduling, TikTok draft posting, or any PostQued API operations.\n---\n\n# PostQued API Skill\n\n## Setup\n\nAdd your PostQued API key to your workspace `.env` file:\n\n```\nPOSTQUED_API_KEY=pq_your_api_key_here\n```\n\nAPI keys are created in the PostQued dashboard at https://postqued.com/console. Keys start with `pq_` prefix.\n\n## Authentication\n\nAll API requests require authentication via Bearer token:\n\n```\nAuthorization: Bearer $POSTQUED_API_KEY\n```\n\n## Base URL\n\n```\nhttps://api.postqued.com\n```\n\n## API Documentation\n\nOpenAPI spec: https://api.postqued.com/v1/docs/openapi.json\n\n## Core Workflow: Upload and Publish Content\n\n### Step 1: Upload Content\n\n**For videos** (presigned URL upload):\n\n```bash\n# Start upload session\ncurl -X POST https://api.postqued.com/v1/content/upload \\\n  -H \"Authorization: Bearer $POSTQUED_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"filename\": \"video.mp4\",\n    \"contentType\": \"video/mp4\",\n    \"fileSize\": 52428800\n  }'\n# Response: { \"contentId\": \"uuid\", \"upload\": { \"url\": \"presigned-url\", \"method\": \"PUT\", \"headers\": {...} } }\n\n# Upload file to presigned URL\ncurl -X PUT \"PRESIGNED_URL\" \\\n  -H \"Content-Type: video/mp4\" \\\n  --data-binary @video.mp4\n\n# Confirm upload\ncurl -X POST https://api.postqued.com/v1/content/upload/complete \\\n  -H \"Authorization: Bearer $POSTQUED_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"contentId\": \"uuid-from-step-1\",\n    \"key\": \"content/user-id/content-id.mp4\",\n    \"filename\": \"video.mp4\",\n    \"contentType\": \"video/mp4\",\n    \"size\": 52428800,\n    \"width\": 1920,\n    \"height\": 1080,\n    \"durationMs\": 30000\n  }'\n```\n\n**For images** (direct upload):\n\n```bash\ncurl -X POST https://api.postqued.com/v1/content/upload-image \\\n  -H \"Authorization: Bearer $POSTQUED_API_KEY\" \\\n  -H \"Content-Type: multipart/form-data\" \\\n  -F \"file=@image.jpg\"\n```\n\n### Step 2: Get Platform Account ID\n\n```bash\ncurl https://api.postqued.com/v1/platform-accounts?platform=tiktok \\\n  -H \"Authorization: Bearer $POSTQUED_API_KEY\"\n# Response: { \"accounts\": [{ \"id\": \"account-uuid\", \"username\": \"@user\", ... }] }\n```\n\n### Step 3: Publish Content\n\n**Important:** Always include a unique `Idempotency-Key` header (valid 24h).\n\n```bash\ncurl -X POST https://api.postqued.com/v1/content/publish \\\n  -H \"Authorization: Bearer $POSTQUED_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Idempotency-Key: unique-uuid-per-request\" \\\n  -d '{\n    \"contentIds\": [\"content-uuid\"],\n    \"targets\": [{\n      \"platform\": \"tiktok\",\n      \"accountId\": \"account-uuid\",\n      \"intent\": \"draft\",\n      \"caption\": \"Check this out! #fyp\",\n      \"dispatchAt\": null,\n      \"options\": {\n        \"privacyLevel\": \"SELF_ONLY\",\n        \"disableDuet\": false,\n        \"disableStitch\": false,\n        \"disableComment\": false\n      }\n    }]\n  }'\n# Response: { \"publishId\": \"uuid\", \"status\": \"pending\", \"targets\": [...] }\n```\n\n### Step 4: Check Publish Status\n\n```bash\ncurl https://api.postqued.com/v1/content/publish/PUBLISH_ID \\\n  -H \"Authorization: Bearer $POSTQUED_API_KEY\"\n```\n\n## API Reference\n\nSee [references/api.md](references/api.md) for complete endpoint documentation.\n\n## TikTok-Specific Options\n\n| Option                | Type    | Description                                                                       |\n| --------------------- | ------- | --------------------------------------------------------------------------------- |\n| privacyLevel          | string  | `PUBLIC_TO_EVERYONE`, `MUTUAL_FOLLOW_FRIENDS`, `FOLLOWER_OF_CREATOR`, `SELF_ONLY` |\n| disableDuet           | boolean | Disable duet                                                                      |\n| disableStitch         | boolean | Disable stitch                                                                    |\n| disableComment        | boolean | Disable comments                                                                  |\n| videoCoverTimestampMs | integer | Cover frame timestamp (videos)                                                    |\n| autoAddMusic          | boolean | Auto-add music (photos)                                                           |\n| brandContentToggle    | boolean | Paid partnership disclosure                                                       |\n| brandOrganicToggle    | boolean | Promotional content disclosure                                                    |\n\n## Intent Values\n\n- `draft` - Send to TikTok inbox as draft (user publishes manually)\n- `publish` - Direct publish to user's TikTok profile\n\n## Status Values\n\n**Publish Request:** `pending` | `processing` | `completed` | `partial_failed` | `failed` | `canceled`\n\n**Target:** `queued` | `scheduled` | `processing` | `sent` | `published` | `failed` | `canceled`\n\n## Scheduling\n\nSet `dispatchAt` to a future UTC ISO timestamp:\n\n```json\n{\n  \"dispatchAt\": \"2026-02-20T15:00:00Z\"\n}\n```\n\nSet to `null` for immediate dispatch.\n\n## Rate Limits\n\n| Operation | Limit  |\n| --------- | ------ |\n| Upload    | 20/min |\n| Read      | 30/min |\n| Publish   | 10/min |\n| Delete    | 20/min |\n\n## Error Handling\n\nErrors return:\n\n```json\n{\n  \"error\": \"Message\",\n  \"code\": \"ERROR_CODE\"\n}\n```\n\nCommon codes: `MISSING_IDEMPOTENCY_KEY`, `IDEMPOTENCY_CONFLICT`, `SUBSCRIPTION_REQUIRED`\n","tags":{"latest":"1.0.6"},"stats":{"comments":0,"downloads":1077,"installsAllTime":0,"installsCurrent":0,"stars":2,"versions":7},"createdAt":1771297745772,"updatedAt":1778491560329},"latestVersion":{"version":"1.0.6","createdAt":1771452714618,"changelog":"- No visible changes; this release contains no file modifications.","license":null},"metadata":null,"owner":{"handle":"syeddhasnainn","userId":"s1785fj252yende0x0tmct9v11885f2y","displayName":"Hasnain","image":"https://avatars.githubusercontent.com/u/66178110?v=4"},"moderation":null}