New
Google company-ads: cursor paging, date filters, adsCountEstimate
Google Ads Transparency company-ads keeps the 2-credit media[] response, and adds cursor pagination (nextCursor/hasMore), adsCountEstimate, region alias, and start_date/end_date overlap filters. Docs note public commercial creatives only — login-gated and political ads are out of scope.
- Additive hasMore / nextCursor / adsCountEstimate
- New params: cursor, region, start_date, end_date (topic=all only)
- Honesty note: public ATC creatives only; shapes can vary
New
Richer Facebook details: author id, SD/HD, captions, music (non-breaking)
Facebook details keeps every existing field (videoUrl, author.username, engagement), and adds stable author.id, feedbackId, captionsUrl, videoSdUrl/videoHdUrl, video dimensions, nested video{}, and music when Facebook exposes them. Docs note that some Reel view counts on the post page can lag the public Reels grid badge.
- Additive author.id + feedbackId
- Additive captionsUrl, videoSdUrl/videoHdUrl, videoWidth/videoHeight, video{}, music{}
- Docs warning for Reel view-count badge mismatch vs profile Reels grid
New
YouTube channel-details: email + SEO tags (non-breaking)
YouTube channel-details keeps every existing numeric/stats field, and adds email (from About/description when publicly exposed) and tags[] from channel SEO keywords. CAPTCHA-gated business emails stay null.
- Additive email when present in channel About/description or mailto links
- Additive tags[] from channelMetadataRenderer keywords (list, not a comma string)
- Existing subscriberCount/videoCount/viewCount numbers, handle, verified, links unchanged
New
Richer TikTok Shop product-details (non-breaking)
TikTok Shop product-details keeps price as a float + currency, and now returns seller id/url, originalPrice/discount, description, skus[], and optional region for the Apify path. Related affiliate videos remain best-effort when upstream provides them.
- seller.id / seller.url restored (were stripped in details mode)
- originalPrice, discount, description, skus[], images[], region param
- Native path still bills 2 credits; Apify fallback remains 14
Fixed
Reddit comments: real ISO publishedAt + post context
Reddit post-comments publishedAt is now ISO 8601 (was a stringified unix float like 1785330725.0, which broke Date parsers). Existing flat comments + depth/parentId stay; response adds post, score/downs, authorFullname, and hasMore.
- publishedAt is ISO 8601 UTC
- Additive score, downs, authorFullname, distinguished, controversiality
- post object + hasMore/nextCursor (cursor paging still deferred)
Fixed
LinkedIn profile: stop treating SEO meta as About
LinkedIn profile no longer copies og:description into about, and no longer invents connections/currentCompany from that SEO trailer (the Bill Gates 8 connections bug). about prefers JSON-LD Person description and is omitted when only SEO meta is available; connections matching the privacy/SEO placeholder are null.
- about from JSON-LD only - SEO meta never returned as about
- connections matching SEO N connections on LinkedIn chrome -> null
- Additive experience[] / education[] when the Apify fallback returns them
New
Facebook Ad Library search: filters + richer ads (non-breaking)
Facebook Ad Library search keeps every existing ad field your integrations already parse (including media[] and string spend/impressions), and adds the filters and structured fields needed for competitor intel. Default status is ACTIVE so results match what advertisers are running now.
- New filters: status, media_type, ad_type, search_type, sort_by, start_date, end_date (max limit 200 documented)
- Additive ad fields: isActive, publisherPlatforms, cards[], images[], videos[], spendRange/impressionsRange, pageLikeCount, disclaimer/byline, fetchedAt
- searchResultsCount / hasMore / nextCursor on the response (cursor paging deferred); docs note spend/impressions are usually political/issue-only
Improved
YouTube comments: author channel ID, publishedTime, heart fix
YouTube comments responses now include authorChannelId and publishedTime (ISO when InnerTube provides it) alongside the existing author string and publishedTimeText. hasCreatorHeart no longer false-positives on inactive heart tooltips. Billing stays a flat 2 credits per call.
- authorChannelId for stable commenter joins
- publishedTime ISO when available; publishedTimeText unchanged
- hasCreatorHeart only true when the creator actually hearted the comment
New
Richer Instagram channel-details (non-breaking)
Instagram channel-details keeps every existing field your integrations already parse, and adds the IDs and account flags needed for joins, outreach, and private-account detection. externalUrl and profileImage are unchanged; bioLinks and profileImageHd are additive.
- New id and fbid for stable Instagram user identity
- isPrivate, isBusinessAccount, isProfessionalAccount, categoryName
- bioLinks[], profileImageHd, businessAddress when present, plus fetchedAt
Improved
Transcript source in the JSON body (non-breaking)
YouTube and TikTok transcript responses now include source in the body so RAG and analytics can weight caption quality vs Whisper. Existing transcript, transcriptSegments, wordCount, segments, and language fields are unchanged. YouTube also adds isAutoGenerated, isTranslated, and availableLanguages when captions are used.
- source: "captions" | "whisper" (TikTok) | "fallback" (YouTube secondary path)
- YouTube: isAutoGenerated, isTranslated, availableLanguages[]
- No rename of segment fields; float seconds and ISO language codes unchanged
New
Richer TikTok channel-details (non-breaking)
TikTok channel-details keeps every existing field your integrations already parse, and adds stable IDs, account age, commerce/seller flags, and bio-link risk for vetting and joins. category, private, and exact follower counts are unchanged.
- New id and secUid for stable TikTok identity and chaining
- createTime, uniqueIdModifyTime, nickNameModifyTime for account-age and takeover signals
- isCommerceUser, isSeller, isOrganization, isAdVirtual, bioLinkRisk, friendCount/diggCount, avatar sizes, privacy settings, fetchedAt
Platforms
Dashboard Tools page removed
The in-dashboard free Tools section is gone so the product stays clearly API-first. Public free tools at /tools are unchanged. Bookmarked /dashboard/tools links redirect to the API Playground.
- Removed Tools from the dashboard sidebar
- /dashboard/tools -> /dashboard/playground
- Marketing free tools at /tools remain available
Improved
Billing metadata in every successful JSON response
Successful API responses now include cached, creditsUsed, requestId, fetchedAt, and cachedAt in the JSON body (in addition to the existing x-captapi-* headers). Use fetchedAt for time-series snapshots and requestId when contacting support.
- Body fields: cached, creditsUsed, requestId, fetchedAt, cachedAt
- New response header: x-captapi-request-id
- cachedAt is set when the response was served from cache; otherwise null
New
Richer YouTube and TikTok video-details responses
YouTube and TikTok video-details now return the fields teams need for joins, media pipelines, and filtering — without dumping a raw platform blob. Existing keys are unchanged; new fields are additive.
- YouTube: channelHandle, contentType/isShort, liveStatus, availableCaptions[], thumbnails[], descriptionLinks[], language and access flags, fetchedAt
- TikTok: authorId/secUid, musicId/musicAuthor/isOriginalSound, mediaType, videoUrl/downloadUrl/downloadUrlNoWatermark, mentions[], status flags, isAd/isCommerce, region/width/height, mediaUrlsExpireAt, fetchedAt
- TikTok engagement.isApproximate marks rounded legacy counters vs exact statsV2 counts