What's new in SocialCrawl
New platforms, endpoints, and product updates as they ship. The API now covers 64 platforms and 557 endpoints.
September 2026
- Improvement
TikTok Shop returns whole catalogues, whole review corpora, and one product shape
`GET /v1/tiktokshop/search` now returns the same product object `GET /v1/tiktokshop/products` returns, with the same field names and types. If you integrated against the older raw shape, this is a breaking change: the data is the same, under the canonical `product.*` names, with the search-only signals (seller trust label, shipping origin, promotion badges, category breadcrumb, demo video) moved to `product.ext.tiktokshop`. Two endpoints that used to stop after one page now paginate with the universal `cursor`. A storefront that reported 20 products and no more now returns all of them, measured at 52 of 52 over three pages, and `data.total` carries the shop's on-sale count up front. Product reviews used to return 10 and report no more on products with thousands; they now page, and `data.total` carries the full review count. Reaching the end of a review walk returns 404 at no charge, which is the terminator rather than an error. `GET /v1/tiktokshop/product` now accepts `product_id` as well as `url`, matching its reviews sibling, and returns the listing's real description where it previously returned only the category name, plus stock, discount, shipping cost, delivery window, SKU variations, specifications, and the seller's location, rating and lifetime sales. A shop listing now names its seller and carries the shop's own rating, follower count and region. On reviews, `language` and `original_language` are now null rather than repeating the buyer's country code, which is still on `review.author.location`. A creator handle TikTok does not have now returns 404 at no charge instead of an empty list, and a bad `region` is rejected before billing on every endpoint that takes one.
- New endpoints
Instagram account country and contact details, and YouTube channel links
`GET /v1/instagram/profile/about` is a new 1-credit lookup for the data behind Instagram's About this account panel: the country the account is based in, the month it joined, and the contact email and phone the account publishes. Country was not available on any other call. The ordinary `GET /v1/instagram/profile` now also returns the professional category, and the contact address when a creator writes one into their bio. `GET /v1/youtube/channel` now returns every link in the channel's profile section as `author.ext.links`, alongside the contact email that already shipped. The YouTube links list is served by one of the two sources behind that endpoint, so it is not yet on every call.
- New endpoints
Finance adds price history, statements, options, and ticker news
Four reads join Finance, and the platform path is now `/v1/finance/` rather than `/v1/google_finance/`. Every old path still resolves, so nothing you have written needs changing. `GET /v1/finance/history` returns daily OHLCV bars with both `close` and `adj_close`, plus dividends and splits on the dated row they take effect, at 1 credit for the whole range. `GET /v1/finance/statements` returns income, balance sheet, and cash flow per reporting period, at 5 credits, using the same field names as the financials block already inside a quote. Korean instruments work, including quarterly statements in won. `GET /v1/finance/options` returns one expiry's calls and puts in a single flat list, at 5 credits, with strike, bid, ask, open interest, and implied volatility. `GET /v1/finance/news` returns recent articles in the same row shape as Google News search, at 1 credit. Quote, ticker search, and markets are unchanged on purpose. Two limits: prices are delayed (20 minutes on Korea, London, and Tokyo, 15 on US options), and statements are keyed by fiscal period end, not filing date, so this data cannot reconstruct what was known on a past date. Delisted companies return nothing, and a recycled ticker returns whichever company holds the symbol today.
- Improvement
More Reddit posts per search, and far deeper comment threads
`GET /v1/reddit/search` now returns up to 25 posts a page where it returned about 7, and each row carries more: the post body, the author's avatar, images and video, the upvote ratio, the flair, and Reddit's own content language. Page size varies between calls, so read the length of `items` rather than assuming 25. `include_body=true` still works and is rarely needed now; when there is nothing to fetch its extra credits are refunded in full. Searches in Korean and other non-Latin scripts that used to come back empty now return results, and those calls bill the usual 1 credit for the page where an empty page was refunded to 0. `GET /v1/reddit/post/comments` returns roughly 4x more comments, and faster: 687 against 168 on one thread, 949 and 1,553 on larger ones. Read this before you diff two captures, because the bigger response is not a superset of the old one. On a large thread both responses are partial and they stop in different places, so between 77 and 103 comments per thread that the previous response carried are absent from the new one. `data.truncated` now reports that honestly, and it can be `true` with no `next_cursor`, which means the thread is incomplete and this endpoint cannot fetch you the rest. Comment bodies now arrive as Reddit's markdown source, so `comment.text` can contain `**bold**` and `[label](url)` where it used to be flattened. `GET /v1/reddit/post` is more reliable, and its `post.engagement.shares` now counts shares rather than crossposts: same field, different metric. `GET /v1/reddit/subreddit` returns the same posts in the same order as before and adds the author's avatar, images and video, the upvote ratio, the flair and the content language to each row. The listing is deliberately left alone: the posts and their order still come from the source you are already reading, so nothing you have moves. As on search, the added fields can be null across a whole page on a small share of calls while every other field is unchanged, and `trim=true` omits them along with the rest of the trimmed leaves.
- New platform
US Congress Trades: STOCK Act filings from the House and Senate
US Congress Trades is live with 19 endpoints, all 1 credit. `GET /v1/us_congress_trades/trades` searches House and Senate STOCK Act disclosures by ticker, politician last name, party, chamber, sector, transaction type, and date. Each row has the member, issuer, ticker, buy/sell/exchange, disclosed value, dates, and reporting gap. `GET /v1/us_congress_trades/politician?handle=Pelosi` returns that member's summary; the same handle pages their filings. `GET /v1/us_congress_trades/ticker?keyword=AAPL` rolls up a stock. Stats cover party totals, sectors, top issuers, unusual activity, buy vs sell, and late filers. Bare tickers such as AAPL are accepted. Empty lists and missing politicians are refunded.
- New platform
Kohl's product search, reviews, Q&A, and store locator
Kohl's joins the commerce coverage with five endpoints. `GET /v1/kohls/search` pages keyword results, 12 per page, with price, images, colours, and rating, at 5 credits. Sort by featured, newest, price, rating, or percent off. A query that matches nothing still returns a handful of unrelated popular products, so check the titles. There is no product-detail endpoint: feed a product id from search into `GET /v1/kohls/reviews` (8 per page, verified-purchase flag, exact total) or `GET /v1/kohls/questions` (buyer questions with answers). `GET /v1/kohls/stores` finds stores near a `lat,lng` coordinate, radius 1 to 100 miles. `GET /v1/kohls/categories` is a 1-credit reference dump. Products and reviews use the same canonical shape as Amazon, Target, and H&M.
- New platform
Gumtree UK listings, sellers, similar ads, and locations
Gumtree joins the classifieds coverage with 11 endpoints. `GET /v1/gumtree/search` pages UK listings, about 22 per page, with price in GBP, location, category, and seller type (private or trade), at 5 credits. Page 2 does not overlap page 1. `GET /v1/gumtree/product` returns one listing by ad id or gumtree.com URL. `GET /v1/gumtree/product/similar` returns similar ads as a single page. `GET /v1/gumtree/seller` and `GET /v1/gumtree/seller/listings` take both `seller_id` and `public_id` from the listing detail; one id is not enough. Location autocomplete and nearest-location lookup sit beside those. Live listing calls are 5 credits; trending searches, categories, and filters are 1 credit. Seller reviews are not on this surface.
- New platform
AliExpress products, search, similar items, reviews, and shipping
AliExpress joins the commerce coverage with nine endpoints. `GET /v1/aliexpress/product` returns one product by numeric id or aliexpress.com/item URL: title, sale price, original price, shop name, images, sold count, and category, at 5 credits. There is no product description on this surface. A product that does not exist, or is not sold to the requested country, returns 404 and is not billed. `GET /v1/aliexpress/search` pages keyword results, 10 per page by default (max 50), with sort and price filters. `GET /v1/aliexpress/reviews` pages written reviews. Similar items, shipping info for a sku, hot products, and featured promos sit beside those. Catalogue calls are 5 credits; category and promo name lists are 1 credit.
- New platform
Klarna shopping: products, merchant offers, reviews, and price history
Klarna joins the commerce coverage with 18 endpoints across 13 shopping regions. `GET /v1/klarna/product` returns one product by id or shopping URL: title, description, brand, rating, and specs, at 5 credits. This payload has no list price; call `GET /v1/klarna/product/offers` for merchant prices. `GET /v1/klarna/search` returns 20 products matching a keyword, a single page with no cursor, at 5 credits. A query that matches nothing comes back empty and is not billed. Reviews, professional reviews, review overview, price history, and product compare sit beside those. Category browse, category taxonomy, stores, and store catalogues fill out the rest. Catalogue calls are 5 credits; reference lists (suggestions, categories, stores, filters) are 1 credit.
- Improvement
Instagram reel search paginates to a clean finish
Paging `GET /v1/instagram/search/reels` now ends the way the rest of the API does. Reaching the end of a result set used to return a 404, so a loop following `pagination.has_more` finished on an error rather than a clean stop. The last page now returns `200` with an empty `items` list, `has_more: false`, and no credit charged. The same applies to a search that matches nothing: a query with no results returns an empty list instead of a 404, so check `items.length` rather than branching on the status code. Worth knowing when you page: a date-filtered search draws on a much smaller pool, roughly 10 reels per page over a handful of pages, against 30 per page and far greater depth when `date_posted` is omitted. A page part-way through a walk can also come back empty at 0 credits when every reel on it was already returned earlier in the same walk, which is not the end, so keep going while `has_more` is true.
- New endpoints
Tripadvisor hotels, restaurants, attractions, and cruises
Tripadvisor goes from two endpoints to sixteen, all at 1 credit. `GET /v1/tripadvisor/place` resolves any Tripadvisor URL into a place, which is the fastest way to confirm a `url_path` points at the property you think it does. Typed search and detail arrive for hotels, restaurants, and attractions, each with its own filters: price band, hotel class, and property type for hotels; cuisine, meal, price level, and dietary restriction for restaurants; category, duration, and minimum traveler rating for attractions. Restaurants, attractions, and cruise ships each get their own reviews endpoint. `GET /v1/tripadvisor/autocomplete` turns a typed name into a resolved place, and `GET /v1/tripadvisor/experience-types` returns a destination's activity taxonomy with a count per type. Two things to know: hotel search rows carry no rating or review count, so chain `GET /v1/tripadvisor/hotel` when you need those, and the attraction and cruise review lanes carry no owner replies and no per-review permalink.
- Improvement
Tripadvisor reviews are about 4x faster
`GET /v1/tripadvisor/reviews` now answers in about 1.1 seconds where the same request on the same property took about 5.2 seconds before. Price, parameters, and response shape are unchanged, and filtered requests keep their existing behaviour exactly. Two field changes worth reading before you deploy against it. `review.helpful_votes` is now populated, where it was always null before. `review.author.location` is now null on unfiltered requests, because the faster path does not carry it: if you read that field, pass any one of `sort_by`, `rating`, `visit_type`, `search_reviews_keyword`, or `translate` and it comes back as before.
- New endpoints
Yelp search, full search, and suggestions
Yelp now has five endpoints. `GET /v1/yelp/search` and `GET /v1/yelp/search/full` take required `query` and `location`, plus optional `sort` (`recommended`, `rating`, `review_count`), `ads`, and `cursor`, at 1 credit. `GET /v1/yelp/search/suggestions` takes `query` and `location` and returns typeahead rows (category, common, chain, business). Business suggestion URLs are aliases and do not resolve on `GET /v1/yelp/business/info`. If search reports a non-zero total with no rows, the call fails and is refunded.
- New platform
Yelp business info and reviews
Yelp joins the reviews coverage with two endpoints. `GET /v1/yelp/business/info` returns one business by its 22-character encid: name, unrounded star rating, exact review count, price level, address, coordinates, categories, photos, and timezone, at 1 credit. Alias slugs such as prince-street-pizza-new-york-2 return 404 and are not billed. `GET /v1/yelp/business/reviews` pages customer reviews, 10 per page, with a cursor, owner replies, photos, and HELPFUL votes, at 5 credits. Page 2 does not overlap page 1. There is no search on this surface. Places and reviews use the same canonical shapes as Tripadvisor.
- New platform
H&M product search, store locator, and supplier factories
H&M joins the commerce coverage with six endpoints. `GET /v1/hm/search` pages keyword results, 36 per page, with price, images, colour, sizes, and availability, at 5 credits. Sort by relevance, newest, or price. `language` switches catalogue (`en_us` default, `en_gb`, `de_de`, `fr_fr`). A query that matches nothing comes back empty and is not billed. `GET /v1/hm/search/suggestions` returns autocomplete terms. `GET /v1/hm/stores` returns every store in a country (pass `us`, `gb`, or `de` as `query`), with address, coordinates, and opening hours. `GET /v1/hm/countries` and `GET /v1/hm/categories` are 1-credit reference dumps. `GET /v1/hm/product/suppliers` returns the manufacturing countries, factory names, and worker-count bands for a product id from search. Products use the same canonical shape as Amazon, Target, and Etsy. There is no product-detail endpoint on this surface.
- New platform
Sephora products, reviews, search, and store stock
Sephora joins the commerce coverage with eleven endpoints. `GET /v1/sephora/product` returns one US product by P-number or sephora.com/product URL: title, brand, description, price, rating, images, ingredients, and stock. `GET /v1/sephora/reviews` pages written reviews, 10 per page, with an exact total. `GET /v1/sephora/search` pages keyword results, 60 per page, with clean page-2 advance; a query that matches nothing comes back empty and is not billed. Category browse, brand catalogue, root categories, brand directory, store locator, and per-sku store availability sit beside those. Products use the same canonical shape as Amazon, Target, and Etsy. Catalogue calls are 5 credits; reference lists (categories, brands, suggestions, stores) are 1 credit. Europe endpoints are not on this surface: they failed closed on every probe.
- Improvement
Extra query parameters are ignored again, so existing requests keep working
On 31/08/2026 a validation change started rejecting any query parameter an endpoint does not declare, as an unbilled 400. That caught real typos (`?limitt=10` still tells you it meant `limit`), but it also broke requests that copy a parameter from one endpoint onto another: `region` on `GET /v1/instagram/post/stats`, `trim` on `GET /v1/facebook/post`, `cache` on `GET /v1/tiktok/profile`, `limit` on Instagram list calls. Those extras are ignored again, as they were before 31/08/2026. They are not forwarded, not billed, and not part of the cache key. A misspelled name of a parameter the endpoint does use still returns an unbilled 400 that names the parameter and suggests the one you probably meant. Existing identities also keep working: `username` is accepted where the endpoint asks for `handle`, an Instagram `shortcode` is accepted where it asks for `url`, `date_posted=last-day` on reel search is served as `last-week` (the closest filter the source still has), and Facebook post URLs that carry a caption slug in the path are accepted again.
- Improvement
Instagram follower walks reach the end, post ids are exact, and empty pages are honest
Follower and following walks no longer end early. A brief throttle in the middle of a roster used to come back as an empty page with `has_more: false`, so a walk of a large account stopped thousands of rows short. That page is now retried on the same cursor, and if it still cannot be served you get a refunded error instead of a false end of list. A handle that does not exist now returns a refunded 404 `RESOURCE_NOT_FOUND` with `details.reason: handle_unresolved` on `GET /v1/instagram/followers` and `GET /v1/instagram/following`, where it used to return an empty 200 list, and the same `details` block is now available on the 404 of account-keyed roster endpoints on other platforms whenever the account is confirmed missing. `post.id` on `profile/reels`, `tagged` and `stories` now carries the exact 19-digit media id (previously the last 2-3 digits were rounded on every row; `tagged` page 2 previously repeated page 1). Re-sync any ids you stored from these three endpoints. `profile/posts`, `search/hashtag` and `location/posts` were already exact and do not change. `trim=true` on `profile/posts` and `profile/reels` returns the full list again, where it returned an empty page that was still billed. With `trim=true`, `post.ext.coauthors` is omitted and `post.flags.pinned` is null, and everything else is unchanged. On `GET /v1/instagram/search/hashtag` only `type=recent` paginates: `top` (the default) and `clips` are single ranked pages that end with `has_more: false`, and you send the same `type` again with the cursor. `date_posted` on `GET /v1/instagram/search/reels` accepts `last-week`, `last-month` and `last-year`. `last-day` and `last-hour` stopped being served around 26/08/2026 and now fail validation before any call is made, at no charge, with an error that names the three values that work; they used to fail after a wasted call with the generic message. `GET /v1/instagram/profile/reels/full` makes far fewer calls per page to collect share counts, and `X-Upstream-Retries` now counts every extra call it makes, where it reported 0 while making a dozen. An empty answer we cannot explain is now treated as a transient error, retried, and then refunded as a 502, instead of being served as an empty list; genuine empties, such as username suggestions with no results, still return 200. A post or profile that does not exist no longer renders as a 502 when a further lookup also fails: it is a refunded 404, and Prism composites stop on that definitive not-found instead of looking further. Profile lookups of nonexistent handles return their 404 faster.
- Improvement
Facebook comment replies now return replies, and the busiest Facebook calls stay up if the primary source is down
`GET /v1/facebook/post/comment/replies` used to return an empty list on comments that had replies. It now returns the replies. `GET /v1/facebook/post/comments` is on the same path. Cost, envelope, and parameters are unchanged: 1 credit a page, same cursor, same 404 for a missing post. Separately, the busiest Facebook calls — `GET /v1/facebook/post`, `GET /v1/facebook/profile`, `GET /v1/facebook/profile/posts`, and `GET /v1/facebook/profile/reels` — now fall through to a backup source if the primary cannot answer, so they stay up instead of going dark together. No new Facebook endpoints in this wave.
- New platform
Quora question, answer, profile, Space, and topic search
Quora joins as a new platform with seven endpoints, all 5 credits. `GET /v1/quora/search` finds questions by keyword: title, URL, answer count, follower count, and publish time. `GET /v1/quora/answers` returns written answers with author credential, upvotes, and the parent question. `GET /v1/quora/posts`, `GET /v1/quora/profiles`, `GET /v1/quora/spaces`, and `GET /v1/quora/topics` search Space posts, profiles, Spaces, and topics the same way. `GET /v1/quora/post` looks up one question from its URL. Each search is a single page of up to 10 results, with an optional `time` window (`all`, `hour`, `day`, `week`, `month`, `year`). There is no cursor: refine the query or the window to see a different set.
- New platform
G2 software products, reviews, categories, and sellers
G2 joins as a new platform with seven endpoints. `GET /v1/g2/product` returns one software product by slug or G2 URL: rating, review count, categories, seller, pricing plans, features, and alternatives, at 5 credits. `GET /v1/g2/reviews` returns written reviews, 10 per page, filterable by stars, company segment, industry, role, and region, also 5 credits. `GET /v1/g2/category` lists products in a category, 15 per page. `GET /v1/g2/categories` dumps the full category taxonomy in one call at 1 credit. `GET /v1/g2/seller` and `GET /v1/g2/seller/products` cover a vendor profile and its product portfolio. `GET /v1/g2/product-index` pages the catalogue of product URLs, 100 per page, so you can feed slugs into product or reviews. Products and reviews use the same canonical shapes as the other commerce platforms.
- New platform
Job search across LinkedIn, Indeed, Bing, and Xing, plus salary ranges
Jobs is a new platform, 11 endpoints, not a replacement for the LinkedIn job endpoints you already call. `GET /v1/linkedin/search/jobs` and `GET /v1/linkedin/job` stay as they are. This surface adds four job boards plus salary. `GET /v1/jobs/linkedin/search`, `GET /v1/jobs/indeed/search`, `GET /v1/jobs/bing/search`, and `GET /v1/jobs/xing/search` search listings by keyword and location, with date, employment type, and board-specific filters, at 10 credits a page. Each has a matching detail endpoint at 5 credits. `GET /v1/jobs/linkedin/organizations` resolves company ids to pass as `organization_ids` on the LinkedIn search. `GET /v1/jobs/salary/titles` suggests canonical titles, and `GET /v1/jobs/salary` returns min, max, mean, and median pay for a title and country. Organization and salary calls are 1 credit. Search pages with a cursor; Indeed needs `country_code` on page 1.
- New platform
Etsy listings, shop catalogues, similar products, and search suggestions
Etsy joins the commerce coverage with four endpoints, all 5 credits. `GET /v1/etsy/product` returns one listing by numeric id or etsy.com/listing URL: title, description, price, images, shop name, and quantity. `GET /v1/etsy/shop/products` pages a shop's catalogue, 36 per page, with a cursor; the reported total equals the page size so it is omitted, and you paginate until a short page. `GET /v1/etsy/product/similar` returns the listings Etsy considers similar, typically around 12, as a single page. `GET /v1/etsy/search/suggestions` returns autocomplete terms for a partial query. Products use the same canonical shape as Amazon, eBay, and the other retailers. Keyword listing search and reviews are not on this surface: search failed closed on every probed query, and reviews came back empty on listings that have thousands of reviews.
August 2026
- Improvement
Threads search now answers long, multi-word queries instead of returning nothing
Threads matches a search against the topic tags it already knows rather than scoring the words you typed, so a longer phrase it did not recognise came back completely empty rather than with fewer results. This was never a keyword limit: `machine learning engineer` returned a full window while `the best coffee` returned nothing at all. Measured across a spread of real queries, three-word searches came back empty four times out of six, five-word searches five times out of six, and eight-word searches every time. `GET /v1/threads/search` now handles this for you. When your exact phrase returns nothing, the query is relaxed into its adjacent word pairs, those searches run in parallel, and you get back one merged and de-duplicated list ordered by how many of your terms each post actually contains. On 31/08/2026 `best coffee machine for a small office` went from 0 posts to 75, and `cari vendor mesin kopi jakarta` from 0 to 56. You are billed 1 credit for each relaxed search that returned posts and nothing for the ones that did not, so the metered range moves from 1 to 7 credits up to 1 to 11. A query that already worked is never relaxed and still costs exactly 1 credit. Two things to plan around: a relaxed response is a single page and carries no pagination cursor, because the cursor would resume the exact phrase that just returned nothing, and `data._warnings` always names the sub-queries that ran so you can see what was actually searched. Send `expand=false` to switch it off and search the exact phrase only.
- Improvement
Misspelled parameters now fail loudly, and scheduled runs that silently never fired now run
A misspelled query parameter used to be ignored, so `?limitt=10` silently searched without your limit and you paid for a result you did not ask for. Any unrecognised parameter now returns an unbilled 400 that names it and suggests the parameter you probably meant, with the machine-readable detail on `error.unknown_parameters` and `error.suggestions`. Sending `?limitt=10` gets you "Did you mean 'limit'?", and `?curser=` gets you `cursor`. An undeclared parameter with an empty value is still treated as omitted, so existing callers that append empty query strings are unaffected. Separately, scheduled Monitor runs and cohort queries could be enqueued and then never execute. The job queue rejects a deduplication id containing a colon, and our idempotency keys are colon-separated, so the publish failed, the outbox row stayed pending, and the run never fired while its credits stayed reserved. Those ids are now hashed before they reach the queue, which is always a valid value, so the runs fire. Error responses also report billing more honestly: on a 5xx, `credits_used` is the charge that actually committed, and when an immediate refund cannot commit, exact compensation is queued rather than the response claiming a refund that did not happen.
- New endpoints
Eight new TikTok endpoints, and the follower, following, and reply lists page properly
Eight endpoints join TikTok, all at 1 credit. `GET /v1/tiktok/profile/playlists` lists the playlists an account has published, and `GET /v1/tiktok/playlist/videos` walks the videos inside one of them in playlist order. `GET /v1/tiktok/user/liked` returns the videos an account has liked, newest first, 30 to a page; most accounts hide that list, and a hidden one comes back as a 404 you are not charged for. `GET /v1/tiktok/location/posts` returns the public videos tagged at a place. `GET /v1/tiktok/effects` looks up camera effects by id and `GET /v1/tiktok/effect/videos` returns the videos made with one. `GET /v1/tiktok/search/music` finds sounds by keyword, and each row carries `ext.dsp_ids`, which maps that sound to its Apple Music, Spotify, and Amazon track ids. `GET /v1/tiktok/hashtag` returns TikTok's own record for a tag, including its live view total; pass the tag name and the id lookup happens for you. The lists you already call also got bigger. Follower and following pages now return up to 150 accounts. `GET /v1/tiktok/user/following` is a properly paginated endpoint for the first time: it used to return roughly 20 accounts with no cursor and no way to go further, and it now returns up to 149 in one call with a `pagination` block at the envelope root you can walk to the end. `GET /v1/tiktok/video/comment/replies` returns up to 50 replies a page where it used to return 6. Unfiltered `GET /v1/tiktok/search` returns 30 results a page instead of 10, and the date, sort, and region filters are now honoured for real, so a filtered search returns up to 30 results that genuinely match. `GET /v1/tiktok/search/top` standardizes at up to 30 a page. Every search row now carries the author's follower count at `post.ext.author_followers`, post engagement carries exact save counts, and a new `post.ext.download_count` reports how many times a video was downloaded. Two changes are worth reading before you integrate. A follower or following list that the account owner has hidden now returns a definitive 404 instead of an empty 200, so you can tell a hidden list from an empty one without a second call, and that 404 costs nothing. And an audience-controlled profile, age-gated or similar, now returns the full record on `GET /v1/tiktok/profile` where it used to return a 404. That request was free and now bills the standard 1 credit, because it comes back with data in it.
- New endpoints
Amazon Best Sellers, deals, seller profiles, and an on-page SEO audit
`GET /v1/amazon/best-sellers` returns a category Best Sellers chart (switch `type` for New Releases or Movers and Shakers). `GET /v1/amazon/deals` lists current Amazon deals with deal price and ASIN. `GET /v1/amazon/seller` looks up a seller profile by seller id. `GET /v1/google_shopping/price-history` returns per-store dated prices for a product_id from product-search. New platform: `GET /v1/on_page/page` runs a one-credit technical SEO audit on a single URL (title, meta, checks, score, timing). Costco search is still not a platform: product-details still 404s on the vendor's own item numbers.
- New endpoints
Seven new X endpoints, and user timelines now paginate
`GET /v1/twitter/user/tweets` now returns an account's timeline fresh and in descending chronological order: the most recent tweets first, matching the profile's Posts tab, with a pinned tweet flagged via `post.flags.pinned`. Pagination is now a real cursor walk: send `pagination.next_cursor` back as `cursor` and go as deep as you need at 1 credit a page, where the endpoint previously stopped after a single page. Alongside it, seven endpoints join the X platform, all at 1 credit a page. `GET /v1/twitter/search/tweets` searches X for a keyword or phrase, about twenty tweets a page, newest first by default (`sort=latest`) or most popular with `sort=top`. `GET /v1/twitter/tweet/replies` returns the replies under any tweet, and `GET /v1/twitter/tweet/retweeters` the accounts that retweeted it. `GET /v1/twitter/user/followers` and `GET /v1/twitter/user/following` walk an account's follower and following lists on a cursor, with follower pages running about seventy accounts. `GET /v1/twitter/user/media` returns just the tweets on an account's Media tab, the ones carrying a photo or video. And `GET /v1/twitter/search/users` finds accounts by name or handle; it returns one fixed set of about ten matches with no cursor, so refine the query to surface different accounts. Two things to know up front: follower, following and retweeter records carry no verification status on this surface, and Media-tab tweets return no view or bookmark counts.
- Improvement
Reddit search can return the full post body in one call
`GET /v1/reddit/search` and `GET /v1/reddit/subreddit/search` now put the post body at `ext.selftext` when the source includes it, with `content.text` joining title and body the same way `/v1/reddit/post` does. Set `include_body=true` to fetch any missing bodies in the same call: 1 extra credit per hydrated post, up to 25 per page, unused credits refunded. Link posts have no body, so `ext.selftext` is null.
- New endpoints
Find creators across TikTok, Threads, and Instagram in one call
`GET /v1/search/creators` fans a niche query across TikTok user search, Threads user search, and Instagram profile search, then merges matching creators into one ranked list. Rank is a published formula of query relevance, follower scale, and verification. No LLM rerank. Flat 10 credits.
- New endpoints
TikTok Ad Library, Apple Music, and more DX endpoints
`GET /v1/tiktok/adlibrary/search` and `GET /v1/tiktok/adlibrary/ad` read the TikTok Ad Library (same advanced tier as the other ad libraries). Also new: TikTok search suggestions and collection videos; Instagram mixed search, popular posts, and comment replies; Facebook group lookup; Snapchat Spotlight comments; and Apple Music search, artist, album, and track. All except the mixed/suggestion passthroughs return the unified Post, Comment, or Author schema.
- Improvement
Instagram reels search now fails over automatically
`GET /v1/instagram/search/reels` went down on the evening of 17 August: the source behind it stopped resolving every query, and because the endpoint ran on a single source, every call returned a 404 (at no charge) until the morning of 18 August. It now runs on two independent sources with automatic failover, so an outage on one no longer takes the endpoint down; the Instagram lane of `GET /v1/search/everywhere`, which rode the same source, fails over the same way. Results keep their view, like and comment counts, permalinks and author identity on both sources. Two things to know: `post.ext.author_followers` is embedded only by the primary source, so treat it as opportunistic; and the `date_posted` filter is supported only by the primary source, so a filtered search fails honestly during a primary outage rather than quietly returning unfiltered results.
- New endpoints
New endpoint: the replies under any Threads post
`GET /v1/threads/post/comments` takes a post URL and returns the replies Threads bundles with it, typically about twenty. Each comment carries its text, like count, direct reply count, author handle, display name, avatar and verification status, pinned flag, and creation timestamp, plus a permalink we construct from the reply's shortcode because the upstream sends none. One thing to know up front: Threads exposes a single window of replies with no cursor, so there is no paging deeper into a long conversation. It costs 1 credit, the same as the post lookup it mirrors.
- Improvement
Instagram carousels and Facebook media now arrive complete
Two fixes in the same spirit. `GET /v1/instagram/post` on a carousel returned only the first slide's cover: a seven-slide post came back as one image; it now returns one cover per slide, in order, as an array in `content.media_urls`, matching what the Instagram list endpoints already did. And on Facebook, multi-photo posts, carousel ads and marketplace listings each shipped a single URL no matter how many images they carried, while image-format ads returned no media at all; `facebook/post`, profile and group posts, both Ad Library endpoints and `marketplace/item` now return the full ordered image set. Single-image posts keep their existing shape, so nothing changes unless there was more to show.
- Improvement
YouTube advanced search can now return view counts and video length
`GET /v1/youtube/search/advanced` returned titles, channels and exact publish times but left view counts and durations empty, because YouTube's search index only hands back snippets. Add `includeExtras=true` and every result now carries `post.engagement.views`, `.likes`, `.comments` and `post.content.duration_seconds`. It costs 5 credits on top of the usual 1, charged once per page rather than per result, and a page is at most 50 results. Leave the parameter off and nothing changes, price included. This is the endpoint to reach for when you need an exact date window (`published_after` and `published_before` take full timestamps) a sort that is actually applied (`order=viewCount`, `order=date`), or a page size you can count on (`max_results` returns exactly what you ask for, up to 50). The coarser `uploadDate` on `GET /v1/youtube/search` is quietly ignored by YouTube whenever a `type` is set alongside it. One thing to be plain about: there is no Shorts filter here and there cannot be, because YouTube's data API cannot tell a vertical Short from any other video. The closest approximation is `duration=short` plus `includeExtras=true` and your own filter on `duration_seconds <= 180`, which will also catch short landscape videos. If the extra lookup fails you still get the page, the 5 credits are refunded, and the response carries `extras_unavailable` in `_warnings`.
- Improvement
YouTube search pages stop repeating themselves, and stop when they are done
Paging `GET /v1/youtube/search` for Shorts could return the same videos over and over: the continuation token advanced on every page, so the walk looked healthy and `has_more` stayed true, but the results had stopped being new. One measured walk billed 40 items across four pages and contained 12 distinct videos. Search pages are now de-duplicated across the whole walk against what you have already been served, and a run of pages that carries nothing new ends the walk instead of paging forever. A page whose results were all repeats returns empty at 0 credits rather than charging you for them. Related: if you filter Shorts by date, prefer dropping `uploadDate` and filtering on `post.published_at` yourself with `includeExtras=true`. `uploadDate=this_year` still works, but it measurably narrows what YouTube will page through, and the 400 you get for a shorter window now says so. The same de-duplication applies to `GET /v1/youtube/search/hashtag`.
- Improvement
Threads profiles return bio links, and posts return every carousel slide
A Threads profile now includes the external link the account set in its bio, at `author.ext.bio_link`. If you are building lead lists off Threads, that link is usually the business's own site or contact page, and it was being dropped entirely. Carousel posts now return every slide as an array in `content.media_urls` instead of only the first image, and video posts return a playable video URL there with the cover frame in `content.thumbnail_url`. Video posts previously returned a still image and no way to reach the video at all. The media change applies to user posts, search results and single post lookups alike.
- Improvement
Country codes now work on Google Shopping, Trends, the App Store and Google Play
These endpoints take a `country` parameter, and until now it only accepted our data provider's exact location name, so the obvious `country=US` came back as an upstream error rather than US results. They now accept an ISO code (`US`, `GB`, `TR`), a full name (`United States`) or a numeric location code, all resolved server-side. If you tried a two-letter code and concluded the endpoint was broken, it was not: it simply could not read what you sent. Each endpoint's parameter documentation now states all three accepted forms.
- Improvement
LinkedIn holds up under load, and job search rejects bad date filters for free
LinkedIn requests now run with far more throughput headroom, which removes the single largest source of LinkedIn failures: throttling when several calls run at once. Separately, the job search `date_posted` filter accepted any text and passed it straight through, so a plausible guess like `last-month` came back as an opaque upstream error. It is now a proper enum: an invalid value returns a free 400 naming the three accepted values, `past_24h`, `past_week` and `past_month`, before any credit is spent. We deliberately do not rewrite `last-month` to `past_month` behind your back, because some of the values people were sending have no correct target and guessing would hide the bug in your own code.
- Improvement
Threads search reaches further back, and comment pages stop repeating themselves
Threads search only exposes a fixed window per call and gives us no cursor, so deep queries used to stop early. It now walks shrinking date windows server-side and de-duplicates by post id, which took one representative query from 16 posts to 83. Set `limit` and the API collects up to that many unique posts in a single call, billing per window actually consumed and refunding the unused budget. Separately, TikTok and YouTube comment pagination could hand back the same comments on consecutive pages, so anyone paging for volume was paying for repeats. Those pages are now de-duplicated across the whole walk.
- New platform
Wayfair, Home Depot and eBay are live
Three retailers join the commerce coverage, all on the same canonical product and review shapes as Amazon, Walmart and Target, so a cross-retailer price comparison reads identical field names. Wayfair ships keyword search, product detail by SKU and paginated reviews. eBay ships keyword search returning sixty listings a call, plus listing detail carrying full seller reputation: lifetime feedback, top-rated status, join date and four detailed sub-ratings. Home Depot ships product detail and reviews, and its product response reports the actual unit count on the shelf at each nearby store, which nothing else in the API returns. Home Depot keyword search is not included yet because the upstream returns a service error on every call; it will be added when that clears.
- Improvement
Retired the age and gender detection endpoint
GET /v1/utility/age-gender is gone from the catalog. The upstream detector was unreliable, production traffic was effectively zero, and keeping a broken premium path in the surface was worse than removing it. Use TikTok's GET /v1/tiktok/user/audience for the geography breakdown that platforms actually expose publicly. The free utility DX endpoints (endpoints, endpoint, quickstart, and llms) are unchanged.
July 2026
- New endpoints
The API now explains itself: four free utility endpoints
Four new utility endpoints make the API self-describing. GET /v1/utility/endpoints returns a machine-readable catalog of every active endpoint: path, method, credit cost, and parameters, filterable by platform, HTTP method, or a search term. GET /v1/utility/endpoint turns any endpoint id or URL into a complete usage guide: every parameter with type and example, the exact credit cost, cache behaviour, the pagination recipe, a copy-paste example request and response, and the response schema URL. GET /v1/utility/quickstart packs a first successful call into one response: authentication, the response envelope, the billing model, the error taxonomy, rate limits, and a working first request to paste as-is. GET /v1/utility/llms serves the llms.txt context corpus through the API, for the whole API or one platform, as markdown or structured JSON. The point is onboarding speed: a developer, or an AI agent holding an API key, goes from nothing to a correct first call in one request instead of reading documentation pages. Every payload is generated from the running endpoint registry at request time, so the catalog, the guides, and the quickstart never drift from what is actually callable. All four cost 0 credits, so calling them from a CI job or an agent bootstrap costs nothing. If you only work with one platform, pass platform to keep the responses small.
- New endpoints
GET /v1/search/news: planned, localized news search across 50 countries
One query in, a multi-country news sweep out. GET /v1/search/news plans your query into search angles, localizes each angle into every requested country's language in a single pass, then fans out up to 12 parallel Google News searches across 50 country editions and merges the articles with cross-country de-duplication. Every leg reports its provenance: query_source tells you whether the keyword was translated, confirmed as already correct, or fell back to your original text because localization degraded, so a quiet planner failure can never masquerade as a localized search. Ask for JSON, or send Accept: text/event-stream and the same call streams: the refined plan arrives first carrying per-leg provenance, then each country's articles as they arrive. Pricing is metered and honest: 2 credits base plus 1 credit per leg that actually returns articles, capped at 14, and the unused ceiling is refunded automatically. A search that finds nothing bills the base only, and repeating the same call inside the 5-minute cache window costs 0 credits.
- Improvement
Google News search: ~5x faster and dramatically more reliable
GET /v1/google_news/search has been re-engineered end to end. Median response time drops from over 8 seconds to about 2, the long 48-second timeout tail is gone, and the hard-error rate that peaked near a quarter of calls last month falls to well under 2% thanks to automatic retries and a second, independent serving path that takes over whenever the first one falters. Three new filters land with it: publisher (limit results to one outlet's domain, e.g. bbc.com), and from/to (an exact publish-date window as YYYY-MM-DD or a Unix timestamp), plus boolean operators (AND, OR, NOT) and quoted phrases in the keyword. The data got better too: every article now carries the publisher's real outlet name (not just a domain), a direct publisher thumbnail URL, and a precise ISO-8601 UTC publish timestamp. One honest trade-off: the short text snippet is no longer guaranteed on every result and the schema page reflects that. Same endpoint, same 1-credit price; every existing parameter keeps working unchanged.
- Improvement
Honest region errors on TikTok Shop product and showcase lookups
The data source behind GET /v1/tiktokshop/product and GET /v1/tiktokshop/user/showcase currently serves those two lookups from the US only, and until today a region=GB call surfaced that as a generic 400 after a billed-then-refunded round trip. Both endpoints now validate region up front: any value other than US returns a clear 400 naming the allowed set, before billing, at 0 credits. Search, store products, and product reviews are unaffected and keep their 16 regions, so GB and other regional markets remain reachable through them. Also fixed: product URLs without a slug, like tiktok.com/shop/pdp/1729587769570529799, which is the exact form our own product.url field returns, are now accepted instead of being rejected as malformed. Docs now state the real region support per endpoint. We are watching the upstream for regional coverage on the two lookups and will widen the allowed set the day it ships.
- Improvement
Walmart keyword search withdrawn while its source is broken
GET /v1/walmart/search is disabled as of today. The data source behind it started failing on the US marketplace, which is the endpoint's default, one day after launch, and we would rather remove an endpoint than leave one that errors by default sitting in the docs and the OpenAPI spec. Calls now return a 503 and cost nothing. Nothing was billed while it was failing either: the error was classified as an upstream fault, not an empty result, so every affected call was refunded automatically. The other four Walmart endpoints are unaffected and were re-verified against production today. If you were resolving keywords to product ids, GET /v1/walmart/category is the way to enumerate products for now, and it returns real prices, which search never did. We will re-enable search when the source recovers.
- New endpoints
Browse Target by category, and find Target stores
Three new Target endpoints close the discovery gap. GET /v1/target/categories returns the whole browse taxonomy for 1 credit, and GET /v1/target/category walks any node 24 products at a time with real prices, brands, ratings, images and TCINs. Together they are the reliable way to get from nothing to a set of TCINs, which matters because Target ships no keyword search we are willing to bill for. Note that consecutive category pages occasionally repeat a handful of products, because Target's own category ordering shifts between calls, so de-duplicate by product.id when crawling. GET /v1/target/stores rounds it out: Target stores near a ZIP, city or state with address, phone, distance, open status and two weeks of daily opening hours, also 1 credit. Category products and stores use the same canonical shapes as the rest of the API, so a Target store parses like a Google Business place.
- New platform
Target product detail and customer reviews
Target joins the commerce coverage with two endpoints: full product detail and customer reviews, both keyed by TCIN, the number at the end of any target.com product URL. Product detail returns price, brand, highlights, the image gallery, colour and size variations, and the complete 1 to 5 star distribution in a single call, so you can read a rating profile without paginating a review corpus. Reviews come back ten per page with no overlap between pages and an exact total, which makes a full crawl deterministic. Products and reviews use the same canonical shapes as Amazon, Walmart, and Google Shopping, so one parser covers all four. There is no Target keyword search: the upstream's search ignores paging, caps at 24 rows, and returns unrelated products for a query that matches nothing, so we left it out rather than bill you for rows you did not ask for.
- New platform
Walmart product, review, and seller data
Walmart joins the commerce coverage with five endpoints: product detail, up to 50 customer reviews per call, keyword search, category browsing, and every marketplace seller offering an item. Category accepts a ZIP code, state, or store id, so you can read the store-level prices and stock a shopper actually sees, and a country parameter switches between walmart.com and walmart.ca. Products, reviews, and sellers come back in the same canonical shapes as Amazon and Google Shopping, so one parser covers all three retailers. Update: keyword search was withdrawn the following day when its source broke, so four of these five are currently live.
- New endpoints
Fetch a Reddit post by URL, body included
GET /v1/reddit/post takes a Reddit post URL and returns the post itself, including the body text (selftext) that nothing else exposed: reddit/search returns titles only, and reddit/post/comments gives you the comment tree without the post it hangs off. content.text carries the title and body joined, the same shape as the subreddit listing, while ext.title and ext.selftext give you the two separately so you can read the body on its own. You also get score, upvote ratio, comment count, flair, author, thumbnail, and timestamp. Link posts, which have no body, return a null ext.selftext. It costs 1 credit, and a URL that resolves to no post refunds as a 404.
- New endpoints
Facebook reels with exact engagement, in one call
GET /v1/facebook/profile/reels/full returns a page's reels with exact views, likes, comments, and shares already merged in. The plain reels list only carries Facebook's rounded public view count (the "12K" figure parsed back to 12000) and no engagement at all, because Facebook exposes those numbers on the individual reel only. The new endpoint queries each reel server-side and overwrites the list values with the exact figures, at a flat 5 credits per page of 10 reels, roughly half the cost of chaining the list into post-stats yourself. Every item carries ext.engagement_source so you can tell exact numbers from list fallbacks, the response reports engagement_coverage, and a page with zero enrichment auto-refunds down to the plain 1-credit list price. Pass limit (up to 50) and it pages itself.
- Improvement
Transcript 404s now say why
GET /v1/youtube/video/transcript used to return a generic not-found for a video that simply has no transcript, which read as an API bug and invited blind retries. It now returns 404 with error.details.reason set to captions_disabled, no_captions, login_required, or video_gone, plus a plain-English message, at 0 credits. The reason slugs match the ext.reason vocabulary on POST /v1/youtube/transcripts batch rows, so single and batch calls classify failures the same way.
- Improvement
LinkedIn comment replies actually return now
LinkedIn's upstream sends comment replies without a flat id (identity lives only inside the comment URN), so every reply row was silently failing validation and being dropped from responses. The transformer now derives comment.id and comment.post_id from the URN, so replies come back with the same bare id format as parent comments.
- Improvement
Track Meta's split reel views on both sides
Meta stopped combining Instagram and Facebook views on cross-posted reels: the Instagram number is now Instagram-only, retroactively. Two changes help you track the full picture. GET /v1/instagram/post/stats now returns the Instagram-only counter explicitly as post.ext.ig_play_count, so you'll see immediately if Meta ever re-merges the figures. And POST /v1/prism/post-stats now accepts facebook.com/reel/ and /videos/ URLs, which previously came back unsupported, so you can batch the Facebook crossposts alongside the Instagram originals and sum the two.
- Improvement
video-intel and comments work on YouTube again
After YouTube moved to a new primary source, GET /v1/prism/video-intel failed on every YouTube URL and GET /v1/prism/comments dead-ended YouTube scans, because both composites were still dispatching legs with the old source's credentials. Both now ride the source-aware primary-with-fallback chain. Transcript legs also gained a hard time budget: a slow or absent transcript degrades to null with the 10-credit increment refunded, instead of hanging the stream for minutes.
- Improvement
Broken query encoding fails fast, at 0 credits
A query sent in a non-UTF-8 charset (arriving as replacement characters) or double-percent-encoded used to be forwarded upstream and come back as a clean empty result, which read as "the platform has no data." Those requests are now rejected before billing with a 400 carrying error.details.reason of invalid_utf8 or double_encoded and an actionable message, at 0 credits. URL parameters are exempt since they legitimately carry percent escapes.
- New platform
The open web joins the API: scrape, search, crawl, extract
SocialCrawl now covers the open web, not just social platforms. GET /v1/web/scrape turns any URL into clean markdown with metadata. GET /v1/web/search runs web, news, and image search and returns full-page content in the same normalized shape. GET /v1/web/map lists a site's URLs, and POST /v1/web/extract pulls structured JSON out of any page from a prompt or a schema. For bigger jobs there are async endpoints (crawl, batch scrape, and a browser agent) that run in the background with job polling, optional webhooks, and a credit refund when you cancel. Same key, same unified envelope as every other platform.
- Improvement
Subreddit details now include weekly activity
GET /v1/reddit/subreddit/details now returns two community-health numbers alongside the subscriber count: weekly active users and weekly contributions, under author.ext. Subscriber counts tell you how big a subreddit is; these tell you how alive it is right now, which helps when you're ranking where to actually engage.
- New endpoints
Batch endpoints: 100 transcripts or 50 profiles in one call
Two new batch endpoints for list-shaped work. POST /v1/youtube/transcripts takes up to 100 video ids and returns a transcript per row, as plain text or timestamped segments, at 3 credits per successful transcript. A caption-less or deleted video is isolated and refunded instead of failing the batch. POST /v1/prism/profiles takes up to 50 handles across 12 platforms and returns the full canonical profile for each, billed only for the profiles that actually resolve, at each platform's normal rate. Both support streaming results over SSE and a custom_id per row so you can match responses back to your own records.
- Improvement
More consistent, more honest per-post data
A reliability pass tightens the numbers you grade on. duration_seconds is now real seconds on every platform (TikTok and the YouTube fallback used to return milliseconds; Instagram was already correct). When a creator hides their like count, you now get likes: null plus a likes_hidden flag instead of a misleading small number. Instagram's reels and posts endpoints now tag each item with ext.shares_source, so a blank share count is always explainable rather than a silent gap, and the share premium is refunded on any page that returns no shares. A request for a post that no longer exists now returns a clear not-found with a full refund instead of a success charge on empty fields. And every list endpoint now accepts a single cursor parameter; send the wrong pagination name and you get a helpful error naming the right one, at no charge, instead of silently repeating page one.
- Improvement
Instagram comments now return real like counts and true top ranking
GET /v1/instagram/post/comments and prism/comments now return each comment's real like count and Instagram's own popularity order, so sort=top surfaces the genuinely most-liked comments first, the ones you actually see at the top in the app. Before this, like counts came back near zero with nothing real to rank on. Results are now consistent from one call to the next, the response carries the post's true total comment count, and you get the same result whether you pass a /p/, /reel/, /reels/, or /tv/ link. Because the mobile source that carries these fields costs more, Instagram comments move to a flat 5 credits per call.
- New endpoints
Look up a single comment by URL or ID, on Instagram and TikTok
Three new endpoints for tracking specific comments. GET /v1/instagram/comment and GET /v1/tiktok/comment take a comment link (or a post plus a comment id) and return that exact comment's current text, author, and metrics in one request, without paginating the whole comment section yourself. POST /v1/prism/comment-lookup does the same for up to 25 comments at once, made for a daily refresh of the comments you track. You can also search by author or by a text snippet. Anything we can't find is fully refunded, and a position hint from an earlier lookup makes the next check on the same comment nearly free. Flat pricing: TikTok 2 credits, Instagram 5.
- Improvement
Reddit comments now return the full thread tree
GET /v1/reddit/post/comments now returns the entire nested comment tree in one call, not just the top-level comments. It auto-follows Reddit's load-more pagination and deep-merges every reply branch for you, so you get the whole conversation (full depth and all) without walking cursors yourself. Very large threads stop at a safety limit and hand back a continuation cursor plus a truncated flag so you can pull the rest. Because one call now expands many pages of replies under the hood, the endpoint moves to the advanced tier at a flat 5 credits.
- New feature
Export your API logs to CSV or JSON
The Activity log explorer now has an export menu. Copy the loaded rows to your clipboard as CSV, or download them as a .csv or .json file, with the same fields you see in the table. It exports exactly the rows currently loaded, so filter by status, platform, cache hit, error code, or date, click Load more to pull in as much history as you need, then export just that slice.
June 2026
- New endpoints
YouTube gets a faster source, richer data, and bulk endpoints
The core YouTube endpoints (channel, video, comments, replies, playlist, and transcript) now run on a faster, more reliable source with automatic failover, so a transient upstream block no longer fails the call. Every response also carries more: full video descriptions, a channel's related-playlist links (handy for jumping straight to its uploads), inline previews of a comment's top replies, and more, all under ext. Two new bulk endpoints land too. POST /v1/youtube/videos and POST /v1/youtube/channels fetch up to 1,000 videos or channels in a single call, metered at 5 credits per 50. One change to note: a channel's joined date is now a clean ISO date (2015-02-01) instead of free text.
- New feature
A full request-log explorer in your dashboard
The Activity page in your dashboard is now a proper log explorer for every API call you make. Filter by status, platform, cache hit or miss, error code, and date from a faceted sidebar with live counts; scan a request-volume histogram to spot spikes and errors at a glance; scroll the full history with infinite scroll and search; and click any row to open a detail view with the method, path, request ID, status, latency, response size, and credits spent. Flip on live mode to watch calls stream in as they happen.
- Improvement
Cursor pagination: no more infinite loops or duplicate items
Three pagination issues are fixed across the API. An empty page no longer returns a next_cursor, so clients that paginate until the cursor runs out won't loop forever on a zero-result page. If an upstream hands back the very same cursor it was given, we now drop it instead of passing it on, another way pagination could spin in place. And on YouTube comments and replies, items that straddle a page boundary are now deduplicated, so the same comment never shows up twice as you page through. Nothing to change on your side; just keep following next_cursor.
- New feature
Three more free tools: Amazon reviews, app reviews, and stocks
Three new no-signup tools that run on the live API. Amazon Fake Review Checker scores how trustworthy a product's reviews really are. App Review Analyzer reads thousands of App Store and Google Play reviews and tells you what users actually keep saying. Stock Comparison puts any two stocks side by side. Try each in the browser, then pull the same data from the API.
- Improvement
Instagram hashtag search now returns real posts
Instagram hashtag search now reads Instagram's native hashtag feed instead of a Google-indexed scraper that returned no posts even for popular tags like #travel or #food. Results are real public posts with shortcode, URL, caption, media, engagement counts, and author. Two changes to note. Pass type to choose the ranking (top, recent, or clips for reels only) and page with the returned cursor; the old date_posted and media_type parameters are gone. The endpoint now meters at the advanced tier (5 credits) on its new source.
- Improvement
More reliable, resumable comment scans
Deep comment scans got sturdier. The comments endpoint now retries transient upstream blocks and runs under a scan budget, so a deep pull no longer dies on a single hiccup. When a scan can't finish in one pass it returns the comments it gathered plus a next_cursor and a note in _warnings, and you're only charged for the pages actually fetched. On Instagram, sort=top and max now reach the real comment pool. Its pages are smaller than other platforms, which used to cap the scan early, so pulling the genuinely most-liked comments now works.
- Improvement
Get the top comments by like count
The comments endpoint can now return the most-liked comments first. Add sort=top to any TikTok, Instagram, YouTube, Facebook, Reddit, or Hacker News post URL and it ranks the harvested comments by like count, with limit to cap how many you get back. Pulling the top 200 comments on a 10,000-comment post is now a single call instead of paging and sorting yourself. On YouTube the ranking is exact; elsewhere it sorts across what it scans, and every response reports sorted_by and returned. Sorting never changes the price. You still pay only for the pages actually scanned.
- New endpoints
Instagram, LinkedIn, and YouTube get a major upgrade
Instagram adds 14 endpoints: follower and following lists, post likers, stories, tagged media, location feeds, and a computed engagement rate. LinkedIn is rebuilt on a fresher source with job search, richer profiles, company pages, reposts, and reactions. YouTube adds eight: trending, advanced search, transcripts, audio, subtitles, and thumbnails. Two breaking changes to note: YouTube transcript now returns offset/duration in seconds instead of startMs/endMs (and drops from 10 to 3 credits), and LinkedIn profile, company, and post move to the richer source at 5 credits instead of 1, with single results wrapped under a data key.
- New feature
Build with AI: describe what you need, get working code
A new assistant in the dashboard that turns a plain-language request into a working SocialCrawl integration. Describe the data you want and it scopes the right endpoints, writes the code, estimates the credit cost, and runs it live against your own API key, so you go from idea to a tested call without reading the whole reference.
- New feature
Auto-recharge keeps your credits topped up
Set a balance threshold and a top-up amount, and SocialCrawl refills your credits automatically before you run out, so a busy traffic day never ends in a 402. Turn it on, set your limits, and forget about manual top-ups.
- New feature
Prism: composite endpoints that do the joins for you
A new proprietary family of endpoints that fan out across platforms in one call and fold the results into a single response. Resolve any social or commerce URL, pull a full creator profile with computed analytics, merge one handle across X, Threads, Bluesky, and Truth Social, or get a cited AI answer from multiple engines, and every response carries a legs array showing exactly which sources ran and which degraded.
- New feature
Three new free tools
Brand Mention Checker, Engagement Rate Calculator, and Creator Earnings Calculator: three no-signup tools that run on the live API. See where a brand is being talked about across platforms, measure any creator's real engagement rate against benchmarks, or estimate per-post earnings from follower count and engagement.
- New feature
Earn credits with the referral program
Share your referral link. When someone you refer makes their first purchase, you earn 2,500 credits. Track qualified referrals and credits earned from a new page in your dashboard.
- New endpoints
Prism brand and market intelligence
Pre-built Prism recipes that turn raw social and web signals into brand intelligence: brand-mention sweeps with sentiment, share-of-voice against competitors, cross-marketplace product ratings, review-integrity grades, sales-lead conversations, employer-brand sentiment, and developer-tool pulse, one call each, with no pipeline to build.
- New endpoints
GET /v1/search/forums: Reddit, Hacker News, and Naver in one sweep
A focused search lane that fans out across Reddit, Hacker News, and Naver's Q&A and café corpora, then fuses and clusters the threads, comment-enriched by default, no LLM planner overhead. Built for voice-of-customer and developer-sentiment research.
- New platform
Content Analysis: cross-web brand mentions and sentiment
Search where a brand or phrase is mentioned across news, blogs, e-commerce, and message boards, with six-axis sentiment, phrase trends, and top domains, the data layer behind Prism's brand-intelligence composites.
- New platform
Google Finance market data
Quotes, ticker search, and market detail for stocks, ETFs, indices, crypto, forex, and futures, all on a single Quote schema across every instrument type.
- New platform
Google News real-time search
Pull the live Google News SERP for any query: fresh articles, sources, and timestamps on a normalized news schema.
- New platform
Kwai joins the platform lineup
Kwai (the short-video network with massive reach across Brazil and Southeast Asia) is now on the unified schema. Fetch profiles and videos with the same key you use everywhere else.
- New platform
Google Play and Apple App Store app data
Two app-marketplace platforms in one release: app listings, charts, and reviews from Google Play and the Apple App Store, normalized onto a single App schema.
- Improvement
TikTok Shop becomes its own platform
TikTok Shop endpoints moved out of tiktok into a dedicated tiktokshop platform with its own docs and URLs. Existing paths keep working through legacy aliases.
- New platform
Trustpilot business search and reviews
Search businesses by domain and pull their full Trustpilot review history. Two endpoints built for brand-reputation monitoring.
- New platform
TripAdvisor places and traveler reviews
Search hotels, restaurants, and attractions, then fetch traveler reviews, including translations, owner responses, and rating histograms.
- New platform
Google Shopping product data
Product search, product detail, and seller listings from Google Shopping, on the same commerce schema Amazon uses.
- New endpoints
Amazon products, reviews, and sellers
The Amazon platform grew from a single storefront endpoint to five: product search, product detail by ASIN, review history, and seller listings, all on the same canonical commerce schema as Google Shopping.
- New endpoints
Pinterest URL save counts
Check how many times any URL has been saved across Pinterest, up to 10 URLs per call, with exact-URL semantics.
- New feature
SocialCrawl vs Apify comparison
Pricing, maintenance burden, and what a unified schema saves you. SocialCrawl and Apify compared line by line.
- New platform
May 2026
- Improvement
Universal search free on the web
Universal social search is now free on socialcrawl.dev, one search per day, no account required. The API version stays a flat 20 credits.
- New feature
MCP server live on npm and the MCP Registry
socialcrawl-mcp v1.3.0 mirrors the full API catalog, and one npx command brings SocialCrawl into Claude Desktop, Cursor, Windsurf, and any other MCP client.
April 2026
- New feature
- New feature
SocialCrawl vs SociaVault comparison
Our first comparison page: SocialCrawl and SociaVault side by side on features, pricing, and data coverage.
- New feature
Free Reddit marketing tool
A free AI tool that finds the subreddits and threads where your product actually fits. No signup needed.
