1.3.0

  • POST /analyses — create an analysis from a content selection: a collectionId, explicit postIds, or posts filters (the same filters as GET /posts, including the new tag). Optionally narrow the comments with dashboard filters (mix-bar buckets, keywords, usernames, creator, replies, questions, mentions, emoji, minLikes, date range) or an AI / keyword search. Requires the new analyses:run scope. See Analyses.
  • Analyses carry a status. Snapshots of up to 100 posts compute inline and return 201 ready; AI searches and larger selections return 202 queued with Location and Retry-After, then move through running to ready or failed on GET /analyses/{analysisId}. Analyses expire after 7 days.
  • GET /analyses/{analysisId}/comments applies the analysis’s own filters / search first for API-created analyses, returns 409 analysis_not_ready until the analysis is ready, and still accepts the mix-bar query filters and source= sampling.
  • GET /analyses merges API-created analyses with saved campaign reports; filter with kind=snapshot|search|report|all. Every row carries kind and status.
  • New post filter tag on GET /posts, GET /collections/{collectionId}/posts, and selection.posts (case-insensitive, leading # optional, comma list matches any).
  • Full analysis payloads are now documented end to end: Post analysis includes a complete GET /posts/{postId}/analysis response, and the API reference carries full examples for PostAnalysis and Analysis.
  • Rate limits re-sized for scheduled BI refreshes. Burst caps are now sized so a sequential refresh loop cannot trip them, and per-day budgets fit eight full refreshes a day of a 500-post workspace (the Power BI Pro scheduler maximum), or one full refresh plus hourly incrementals. Global cap is 300 requests / minute and 10,000 / day per key (was 120 / minute with no daily request budget). Expensive routes have class budgets with both a burst and a daily cap: comments (per-post sample) 120 / min · 1,000 / day, analysis_comments (GET /analyses/{id}/comments) 20 / min · 300 / day, collection_posts 60 / min · 1,000 / day, analysis_read 60 / min · 2,000 / day, analysis_create 10 / min · 100 / day, analysis_search (AI) 2 / min · 10 / day. Daily transfer cap raised from 50 MB to 500 MB. New headers X-RateLimit-Daily-Limit, X-RateLimit-Daily-Remaining, X-RateLimit-Class, X-RateLimit-Class-Limit; GET /me reports remainingDailyRequests and routeClasses. pollAfterMs for analysis jobs is now 3000. See Rate limits for the worked BI budget.
  • The overview now lays out the API as selection → analysis → comments, with new core-concept explainers for Content selection and Analyses (including a worked Dove brand + influencer example).

1.2.0

  • New post filters on GET /posts and GET /collections/{collectionId}/posts: link, account, posted_until, min_score / max_score, and min_*_percent / max_*_percent for each sentiment bucket (positive, lean_positive, neutral, lean_negative, negative). See Filtering posts.
  • GET /posts/{postId}/analysis returns content + comment analysis. Comments for that analysis are GET /posts/{postId}/analysis/comments. Campaign reports use the same nesting: GET /analyses/{analysisId}/comments, for analyses of up to 1,000 posts. Mix-bar filters (sentiment, content, topic, relevance, consensus). See Post analysis and Retrieving comments.
  • GET /posts/{postId}/metrics also returns content and topic mix bars for score version 2+.
  • platform now accepts a comma-separated list (platform=instagram,tiktok). link and account accept lists too.
  • GET /collections/{collectionId}/posts now supports platform, posted_since, and updated_since as well.
  • Post list responses echo the active filters in meta.filters.
  • Invalid filter values (bad dates, out-of-range numbers, min greater than max) now return 400 with a descriptive message. Previously an invalid updated_since was silently ignored.