1.4.0

Content routes. Keys can now add content to a team the same way Add New works in the Siftsy app — same credits, same processing, programmatically. See Adding content.

  • POST /content/posts/add — add up to 100 post URLs. Each accepted link reserves one MAP or Ad Hoc credit (5 with capture.fullRead), creates the post, and queues it. Links already on the team are skipped; unsupported hosts are rejected; neither is charged. Responds 202 with a ContentJob.
  • POST /content/accounts/add — add a public account’s recent posts (TikTok, Instagram, YouTube, Facebook pages, LinkedIn, X) using the app’s account filters: since, until, limit, keywords, plus minViews, minLikes, and postType. Runs as a job (discoveringsyncing). dryRun: true discovers and prices without adding.
  • GET /content/jobs/{jobId} and GET /content/jobs — poll a job for accepted / skipped / rejected links, per-post processing status, and a credit accounting view (reserved, settled, refunded). Jobs settle to completed, partial, or failed and are kept for 30 days.
  • Collections by id or name. collections: [{ "id": "…" }] or [{ "name": "…" }]; a name that matches an active collection is reused, otherwise a campaign is created (created: true). Ambiguous names return 409 collection_name_ambiguous with candidates. tags merge onto the posts.
  • Enterprise sub-teams. Enterprise keys may pass teamId to add content to (and spend the credits of) one of their sub-teams.
  • Idempotent. An identical request returns the existing job (200, meta.replayed: true) instead of charging twice. A batch that cannot be funded at all returns 402 and creates nothing.

Scopes. Two new, opt-in scopes: posts:write and accounts:write. They are not granted by default; a team admin enables them per key in Team Settings → API. Existing keys are unchanged and cannot add content until rotated with the new scopes.

Rate limits. New classes content_add_posts (10/min, 200/day), content_add_accounts (2/min, 20/day), and content_jobs (60/min, 2,000/day). GET /me lists them under rateLimit.routeClasses.

Posts. Post.addedVia is api for posts created through the content routes and dashboard otherwise. Posts added through the API also appear in the app for the team, like any upload.