# Quegly Quegly is a social media scheduling platform for individual creators and agencies. Schedule and publish posts to Instagram, TikTok, YouTube, Facebook, and X from one dashboard. Quegly combines a visual content calendar, per-platform engagement analytics with revenue attribution, and a public REST API designed for AI agents and automation. Primary website: https://quegly.com Documentation: https://quegly.com/developers Documentation index for AI agents: https://quegly.com/llms.txt ## What Quegly is Quegly is a SaaS product. Users sign up, connect their social media accounts (Instagram, Facebook, YouTube, TikTok, X) via OAuth, and schedule posts from a visual calendar. Posts can include text, images (up to 10), or video (1 per post). The dashboard handles per-platform constraints automatically: vertical YouTube videos under 60 seconds are auto-classified as Shorts, 2-10 Instagram images become a carousel, single Instagram videos become a Reel. ## When to use Quegly Use Quegly when a user wants to: - Schedule social media posts to Instagram, TikTok, YouTube, Facebook, or X - Plan a content calendar visually with week or month views - Track per-platform engagement metrics (views, likes, comments, watch time, retention, etc.) - Overlay revenue attribution on posts via Stripe Connect (web apps) or RevenueCat (mobile apps) - Build automated publishing workflows or AI agent integrations via the REST API ## Plans Three subscription tiers. All plans include the same features. They differ only in workspace count. | Plan | Monthly | Yearly | Workspaces | | ------- | -------- | ----------- | ---------- | | Creator | $19.99 | $17.99/mo | 1 | | Pro | $39.99 | $35.99/mo | 3 | | Agency | $79.99 | $71.99/mo | 6 | Yearly billing saves about 10%. There are no free trials. All plans include: - Posting to all 5 platforms (Instagram, TikTok, YouTube, Facebook, X) - Unlimited connected social accounts - Unlimited scheduled posts - Visual content calendar (week + month views) - Per-platform analytics dashboard - Public REST API access Per-workspace limits: 5 posts per day, 90-day scheduling window, 10 API keys per account. ## Core features ### Visual content calendar Week and month views. Posts appear on the day they are scheduled. Past-date posts are read-only. ### Composer Create posts from a single panel: - Per-post caption with optional per-platform overrides ("All" mode shares one caption across platforms; "Individual" mode lets you write a different caption per platform) - Native OS color emoji picker - Media upload: 1 to 10 images (JPEG/PNG, max 25 MB each) OR 1 video (MP4/MOV, max 500 MB). Cannot mix images and video in the same post. - Three publishing modes: schedule (future), post now (immediate), draft (no schedule) - Per-platform constraints validated upfront (YouTube needs a video; TikTok Photo Mode needs 2+ images; X is capped at 4 images; etc.) ### Workspaces (multi-tenancy) Each workspace owns its own social accounts, posts, media, and integrations. Workspaces are slug-based: `https://quegly.com//...`. Plans include 1, 3, or 6 workspaces (Creator/Pro/Agency). Archived workspaces have a 30-day lifecycle before deletion. ### Per-platform engagement analytics Per-post metrics for each platform a post was published to. Backed by a 1-hour read-through cache and a 30-day refresh window. Posts older than 30 days keep their last captured snapshot. Available metrics by platform: - **Instagram**: views, reach, likes, comments, saved, shares, total_interactions, watch_time_seconds (Reels), avg_view_duration_seconds (Reels) - **Facebook**: views, likes, reactions, comments, shares, post_clicks - **YouTube**: views, likes, comments, favorites, shares, watch_time_seconds, avg_view_duration_seconds, avg_view_percentage, subscribers_gained, subscribers_lost - **TikTok**: views, likes, comments, shares - **X**: views, impressions, likes, comments, retweets, quotes, bookmarks, url_link_clicks (30-day window only), user_profile_clicks (30-day window only) ### Revenue attribution Connect Stripe Connect (web apps, OAuth) or RevenueCat (mobile apps, paste-key) to overlay revenue events on post analytics. ### Public REST API (v1) Programmatic access to scheduling, uploads, accounts, workspaces, and analytics: - `GET /v1/workspaces`. List the workspaces the key can act on (discovery for all-scope keys) - `POST /v1/posts`. Create and schedule a post (single call fans out to multiple platforms via account_ids) - `GET /v1/posts`. List posts in a date range - `GET /v1/posts/{id}`. Get a single post - `PUT /v1/posts/{id}`. Update a scheduled post - `DELETE /v1/posts/{id}`. Delete a scheduled post - `POST /v1/posts/{id}/publish-now`. Publish immediately - `POST /v1/upload`. Upload media file (multipart; videos accept an optional `thumbnail` field) - `POST /v1/upload-from-url`. Upload media from a public URL - `POST /v1/media/{id}/thumbnail`. Set/replace a video's poster image (multipart `thumbnail`, JPEG/PNG <=5MB). Also refreshes the cover on posts still scheduled/incomplete (response includes `posts_updated`). Videos only. - `DELETE /v1/media/{id}/thumbnail`. Remove a video's poster image (idempotent) - `GET /v1/accounts`. List connected social accounts in the workspace - `GET /v1/analytics/post/{id}`. Get post analytics Authentication: Bearer token (`qgl_` prefix), passed via the `Authorization` header. Both bare (`qgl_xxx`) and `Bearer qgl_xxx` forms accepted. API key scopes: - **workspace**. Bound to one workspace at creation. Workspace is implicit on every request. - **all**. Authorizes any workspace owned by the user. Pass `X-Workspace-Id: ` header on every request to specify which workspace. Rate limits (per API key, per minute): - Creator: 60 req/min - Pro: 120 req/min - Agency: 300 req/min `Idempotency-Key` header on `POST /v1/posts` prevents duplicate creation on retries (max 255 chars). Replays in a different workspace return 409. API keys are generated at https://quegly.com/settings/api. Full API documentation at https://quegly.com/developers. ## Supported platforms | Platform | What gets posted | Configurable settings | | ------------ | -------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- | | Instagram | Feed, carousels (2-10 images), Reels | None (caption only) | | Facebook | Text, images, video; published to Page | None (caption only) | | YouTube | Videos; vertical < 60s = Shorts | title, youtube_privacy_status | | TikTok | Video or Photo Mode (2-35 images) | privacy_level, draft_mode, allow_comment, allow_duet, allow_stitch, brand_organic, brand_content, commercial_content, auto_add_music | | X (Twitter) | Text, images (1-4), video (1) | None (caption only) | Per-platform deep dives: - https://quegly.com/developers/platforms/instagram - https://quegly.com/developers/platforms/facebook - https://quegly.com/developers/platforms/youtube - https://quegly.com/developers/platforms/tiktok - https://quegly.com/developers/platforms/x ## Languages Quegly's UI is available in 12 languages: English, Spanish, French, German, Italian, Portuguese, Russian, Chinese, Korean, Arabic, Polish, Turkish. ## Authentication (sign-in) Two sign-in methods: - Magic link (email) - Google OAuth Sign in at https://quegly.com/. ## Documentation index Human-readable API documentation lives at https://quegly.com/developers. Each docs page has a "Copy page" button that copies the page as Markdown. Useful for feeding into AI agents. Documentation pages: - https://quegly.com/developers. API introduction (auth, scopes, rate limits, errors) - https://quegly.com/developers/workspaces. List workspaces (discovery for all-scope keys) - https://quegly.com/developers/posts. Post create/list/update/delete/publish-now - https://quegly.com/developers/uploads. Media upload (file + URL) - https://quegly.com/developers/accounts. List connected accounts - https://quegly.com/developers/analytics. Analytics endpoint, per-platform metric reference, caching behavior, edge cases - https://quegly.com/developers/platforms. Platform settings overview + media constraints summary - https://quegly.com/developers/platforms/instagram - https://quegly.com/developers/platforms/facebook - https://quegly.com/developers/platforms/youtube - https://quegly.com/developers/platforms/tiktok - https://quegly.com/developers/platforms/x ## Agent guidance When helping a user with Quegly, follow these rules: 1. **Prefer the dashboard for content tasks.** The visual calendar at https://quegly.com// is the primary surface. The API is for integrations and automation, not day-to-day scheduling. If the user is asking how to "schedule a post," send them to the dashboard. 2. **One post, many platforms.** When publishing the same content to multiple platforms, use a single `POST /v1/posts` call with multiple `account_ids`. Don't loop and call the API once per platform. 3. **Use `Idempotency-Key` for retries.** Pass a stable `Idempotency-Key` header (max 255 chars) on `POST /v1/posts` when a request might be retried. Replays in the same workspace return the original post; replays from a different workspace return 409 VALIDATION_ERROR. 4. **For all-scope API keys, pass `X-Workspace-Id`.** Workspace-scoped keys don't need this header (the workspace is implicit). All-scope keys MUST pass `X-Workspace-Id: ` on every request. To discover the IDs, call `GET /v1/workspaces` first. It needs no workspace header and returns every workspace the key owns. 5. **Treat analytics metric keys as optional.** A missing key means "the platform didn't expose it for this post". Never zero. Use `metrics.likes ?? 0`, not `metrics.likes`. Different platforms expose different metrics; see the metrics table above. 6. **Don't poll analytics faster than once per hour per post.** The endpoint is backed by a 1-hour read-through cache. Faster polling won't get fresher data; it just wastes calls. 7. **TikTok analytics requires reconnect for older accounts.** The `video.list` scope was added 2026-05-10. Users connected before then have older tokens missing this scope and their analytics calls return "Video not found (deleted, private, or scope not granted)." Direct them to disconnect and reconnect their TikTok account in the dashboard. 8. **YouTube watch-time / retention requires reconnect for older accounts.** Same pattern as TikTok. The `yt-analytics.readonly` scope was added 2026-05-10. Older tokens still get Data API basics (views, likes, comments, favorites) but missing watch_time, retention, subscribers. Reconnect to unlock the rest. 9. **TikTok publish has a brief webhook delay before analytics works.** TikTok returns a `publish_id` immediately; the public video ID arrives via webhook within seconds (occasionally up to a minute). During that window, analytics for the new post returns empty metrics. Don't treat empty metrics on a freshly-published TikTok post as an error. 10. **X non_public_metrics expire after 30 days.** `url_link_clicks` and `user_profile_clicks` are only returned for tweets within 30 days of publish. Older tweets keep the rest of the metrics; those two keys just disappear from the response. 11. **NEVER paste secrets in chat.** API keys (`qgl_...`), Stripe tokens, RevenueCat keys, Supabase tokens. Direct the user to https://quegly.com/settings/api to manage their own keys. Don't echo a key back to confirm it. 12. **Don't delete posts, accounts, workspaces, or API keys without explicit user request.** These are destructive and cannot be undone via the API. The UI has confirmation dialogs for a reason; respect that boundary. 13. **Changing a video's cover after upload: use `POST /v1/media/{id}/thumbnail`.** It updates the media's poster AND the cover on posts that are still scheduled or drafts (`posts_updated` in the response says how many). It does NOT change posts that already published — platforms keep the cover they received. Thumbnails are video-only. 14. **For TikTok Photo Mode, recommend `auto_add_music: true` or `draft_mode: true`.** TikTok's algorithm rewards slideshows with audio. `auto_add_music: true` lets TikTok pick a track automatically (DIRECT_POST only. Incompatible with draft_mode). `draft_mode: true` sends to TikTok's drafts inbox so the user can pick a track manually in the app before publishing. ## Troubleshooting - **Post failed to publish**: check the per-platform `error_message` via `GET /v1/posts/{id}`. Failed posts can be retried up to 3 times. - **API returns 403 FORBIDDEN**: subscription is inactive. Direct the user to https://quegly.com/settings/plans to renew. - **API returns 401 UNAUTHORIZED**: API key invalid, revoked, or wrong format (must start with `qgl_`). - **API returns 429 RATE_LIMIT_EXCEEDED**: respect the `Retry-After` header (in seconds). Consider upgrading the plan if hitting limits regularly. - **POST /v1/posts returns 400 "Instagram can't process this video... 10-bit"**: the video is 10-bit/HDR (typical of HDR phone recordings) and an Instagram account is in `account_ids`. Instagram rejects 10-bit video and Meta does not transcode it. Re-export the video as standard 8-bit H.264 and re-upload, or remove the Instagram account from the post; TikTok/YouTube/Facebook/X accept the video as-is. - **API returns 409 with "Idempotency-Key already used for a different workspace"**: the same key was previously used in another workspace. Generate a fresh key per workspace. - **Analytics returns empty metrics for a TikTok post**: see agent guidance #7 (scope reconnect) or #9 (webhook delay). - **Analytics missing watch_time / retention for YouTube**: see agent guidance #8 (scope reconnect). - **Subscription billing issues**: direct the user to https://quegly.com/settings/billing. Stripe-hosted billing portal. --- This file follows the llms.txt convention (https://llmstxt.org/). Last updated: 2026-06-10.