# Which Endpoint Should I Use? (/docs/choosing-endpoints) Decision tables for the endpoint pairs developers most often confuse, covering profile vs profile/full, Instagram's 1cr vs 5cr endpoints, list vs composite, search, transcripts, comments, batch, jobs, ad libraries, app stores, commerce reviews, and the Prism composites. Some of these 679 endpoints do near-identical jobs, and picking the wrong one costs extra credits or returns less than you needed. Each section below answers one "these two look the same, which do I want?" question with the paths and prices side by side. Costs are per successful call. Failed and cached responses are not charged. If you start from what you want done rather than an endpoint name, [Common jobs](/docs/common-jobs.md) lists the calls, a cURL and the price of one run for each job customers most often build. Most endpoints sit on the flat 1 / 5 / 10 tier ladder, and the figure in the Credit-cost column is what you pay. Some are **metered**: they hold a ceiling upfront and refund down to the work actually done, so their honest price is a range, and this page prints the range rather than the tier. Budget from the top of a range, not the floor. Every endpoint's min-max is in [Endpoint pricing](/docs/endpoint-pricing.md). ## Start here [#start-here] | What you are trying to do | Section | | ------------------------------------------------------------- | ----------------------------------------------------------- | | Get an account's stats, with or without its recent posts | [Profile, or profile plus posts?](#profile-vs-profile-full) | | Pull Instagram data and work out which price applies | [Instagram's two upstreams](#instagram-upstream-split) | | Page through posts or reels, with or without per-item metrics | [Raw list, or the enriched list?](#list-vs-full) | | Fill a Facebook list's gaps without a second call | [Fill the rows, or fetch them?](#facebook-include) | | Find posts about a keyword or topic | [One platform, the forums, or everywhere?](#search) | | Watch a brand or topic across platforms over time | [Discover](/docs/prism/discover.md) with `brands`, `period` and `schedule` | | Get the spoken content of a video | [Getting a transcript](#transcripts) | | Read comments on a post | [Which comment endpoint?](#comments) | | Refresh engagement numbers on URLs you already hold | [Single call, or batch?](#single-vs-batch) | | Track hiring and job postings | [Hiring and job postings](#jobs) | | See what a brand is running as paid advertising | [Ad libraries](#ad-libraries) | | Research an app, its ranking, or its reviews | [App-store intelligence](#app-stores) | | Look up a product, its price, or its reviews | [Commerce, product data, and reviews](#commerce) | | Answer a whole question rather than fetch one platform's rows | [Which Prism composite?](#prism) | ## Profile, or profile plus posts? [#profile-vs-profile-full] `profile` is one upstream call that returns the unified author object. `profile/full` is a composite: the same profile, the account's recent posts, and computed analytics in one call, so you skip the follow-up list request. | Your goal | Use this endpoint | Why | Credit cost | | ---------------------------------------------- | ------------------------- | --------------------------------- | ------------------ | | Just the profile object | `/v1/tiktok/profile` | One call, author only | 1cr (LinkedIn 5cr) | | Profile + recent posts + analytics in one call | `/v1/tiktok/profile/full` | Composite, no follow-up list call | 5cr | If you already hold the handle and only need counts, use plain `profile`. If your next step is always "and their recent posts", `profile/full` is one call instead of two. **Which platforms have a profile/full composite?** `/v1/tiktok/profile/full`, `/v1/instagram/profile/full`, `/v1/youtube/profile/full`, `/v1/twitter/profile/full`, `/v1/facebook/profile/full`, and `/v1/linkedin/profile/full`. **Which profile fields are actually populated?** The populated fields vary by platform. Facebook supplies follower and page-like counts, but not following or total-post counts. Check the platform's page in the [API Reference](/docs/api-reference.md) before you rely on a field, and read [Computed fields](/docs/computed-fields.md) for when the `computed` block is populated and when it is honestly `null`. ## Instagram: the 1-credit or the 5-credit endpoint? [#instagram-upstream-split] Instagram is served by two upstreams. The 1-credit endpoints cover the public surface. The 5-credit endpoints return data the public surface hides: share counts, follower and following lists, stories, tagged posts, locations, and comment lists. | Your goal | Use this endpoint | Why | Credit cost | | ---------------------------------------- | ----------------------------------------------------------------------------------------------------------- | ---------------------------------------- | ----------- | | Profile, posts, reels, single post | `/v1/instagram/profile`, `/v1/instagram/profile/posts`, `/v1/instagram/profile/reels`, `/v1/instagram/post` | Public surface, cheapest upstream | 1cr | | A post's share count | `/v1/instagram/post/stats` | Only this endpoint returns shares | 5cr | | Followers / following / similar accounts | `/v1/instagram/followers`, `/v1/instagram/following`, `/v1/instagram/similar` | Lists the public surface does not expose | 5cr | | Active stories | `/v1/instagram/stories` | Ephemeral data, second upstream only | 5cr | | Comments on a post | `/v1/instagram/post/comments` | Comment list, second upstream only | 5cr | | Posts by hashtag | `/v1/instagram/search/hashtag` | Hashtag feed, every ranking pages | 1cr | The trap is `/v1/instagram/post` (1cr) versus `/v1/instagram/post/stats` (5cr). The cheap one returns everything about a post except the share count. Reach for `post/stats` only when you specifically need shares. Note also `/v1/instagram/basic-profile` (1cr), a slimmer profile payload than `/v1/instagram/profile`. ## A raw list, or the enriched `/full` list? [#list-vs-full] For Instagram posts and reels you can pull a plain page or the enriched composite. The plain list is one fast, cheap page. The `/full` variant fans out per item to attach views, likes, comments, and per-item share counts where available. | Your goal | Use this endpoint | Why | Credit cost | | ----------------------------------------------- | ---------------------------------- | ------------------------------ | ----------------------------------------- | | One page of a user's reels | `/v1/instagram/profile/reels` | Fast, cursor-paginated | 1cr | | Reels with views, likes, comments, share counts | `/v1/instagram/profile/reels/full` | Composite, per-reel enrichment | 5cr per page of ~12 (5-25cr with `limit`) | | One page of a user's posts | `/v1/instagram/profile/posts` | Fast, cursor-paginated | 1cr | | Posts with views, likes, comments, share counts | `/v1/instagram/profile/posts/full` | Composite, per-post enrichment | 5cr per page of ~12 (5-25cr with `limit`) | | Facebook reels with exact engagement | `/v1/facebook/profile/reels/full` | Composite, per-reel enrichment | 5cr per page of 10 (5-25cr with `limit`) | Paging a long back catalogue without needing per-item share counts is far cheaper on the plain list. Use `/full` when you need engagement on every item and want one call. ### The two meanings of `limit` [#limit-meanings] `limit` does two different jobs on this API, and on the `/full` composites it is the one that moves the price. - **Page size.** On most list endpoints `limit` caps a single upstream page and maps to that upstream's native parameter (Naver `display`, GitHub `per_page`, and so on). One call, one page, one charge. This is the behaviour [Pagination](/docs/pagination.md) documents. - **Collect-until-N.** On a small set of endpoints `limit` instead tells the endpoint to keep walking upstream pages _itself_ until it has that many unique items, deduping server-side. You are billed per page or window actually consumed, and the unused budget is refunded. Omit `limit` and the budget is one page, so the price is unchanged. The collect-until-N endpoints and their ceilings: | Endpoint | `limit` max | Walk unit | Cost | | ---------------------------------- | ----------- | ------------------ | ---------------------------- | | `/v1/instagram/profile/reels/full` | 50 | page of ~12 | 5cr per page, 5-25cr | | `/v1/instagram/profile/posts/full` | 50 | page of ~12 | 5cr per page, 5-25cr | | `/v1/facebook/profile/reels/full` | 50 | page of 10 | 5cr per page, 5-25cr | | `/v1/threads/search` | 100 | date window of ~15 | 1cr per window, 1-7cr | | `/v1/prism/comments` | n/a | comment page | 2-200cr (Instagram flat 5cr) | So `/v1/instagram/profile/reels/full?handle=nike&limit=50` is five pages, not one, and costs 25 credits rather than 5. Budget from the range, not the floor. ## Facebook: fill the rows, or fetch them yourself? [#facebook-include] Four Facebook list endpoints take an optional `include` parameter that joins every row on the page to its own detail record inside the same call. Without the parameter the call is unchanged and costs 1 credit. With it, the endpoint holds 1 credit per row, keeps only the rows a fresh lookup actually filled, and refunds the rest, which is why the price below is a range rather than a figure. Rows already in cache are filled for free, and a row Facebook publishes no number for stays `null` and costs nothing. ### Page posts and photos [#facebook-include-posts] | Your goal | Use this call | Why | Credit cost | | --------------------------------------------------------------------- | ----------------------------------------------- | -------------------------------------------------------------------------------------- | ----------- | | One page of a page's posts | `/v1/facebook/profile/posts` | Text, reactions, comments and publish time. No share count, and no view count on reels | 1cr | | The same posts with share counts, plus exact reel views and duration | `/v1/facebook/profile/posts?include=engagement` | Joins each of the 3 rows on the page to its own post record in the same call | 1-4cr | | A page's photos with author, likes, comments, shares and publish date | `/v1/facebook/profile/photos?include=details` | The photo listing carries none of those, so all 8 rows on the page are joined | 1-9cr | `include=engagement` is the move when you are making the list call anyway: the page plus its 3 rows is at most 4 credits in one round trip, where fetching the same three permalinks yourself is the page call plus three `/v1/facebook/post` calls, at the same 4 credits but four round trips and your own permalink bookkeeping. Two other routes to the same numbers are still the better answer in their own cases. | Your situation | Use this call | Why | Credit cost | | -------------------------------------------------------------------- | ----------------------------------------------- | -------------------------------------------------------------------------------- | ---------------------------------------- | | You are already fetching the page's feed and want share counts on it | `/v1/facebook/profile/posts?include=engagement` | One round trip, and a row already cached or without a public share count is free | 1-4cr | | You already hold post URLs and want current numbers on them | `/v1/prism/post-stats` | Up to 100 URLs, any platform, in one POST, with dead links refunded | 1cr | | You want reels with exact views, likes, comments and shares | `/v1/facebook/profile/reels/full` | Merges per-reel engagement server-side for a whole page of 10 | 5cr per page of 10 (5-25cr with `limit`) | Reach for `/v1/prism/post-stats` when the URLs are already in your database and you are refreshing numbers rather than reading a feed, since it takes up to 100 of them at once, across platforms, and refunds the dead ones. Reach for `/v1/facebook/profile/reels/full` for reels specifically: a flat 5 credits buys a page of 10 reels with exact engagement on every one, which joining ten rows one at a time could not beat. ### The two event lists [#facebook-include-events] | Your goal | Use this call | Why | Credit cost | | --------------------------------------------------------------------------------- | --------------------------------------------- | ---------------------------------------------------------------------------------------- | ----------- | | One page's own events | `/v1/facebook/profile/events` | Title, link, start time, venue, city, time line and the cancelled, past and online flags | 1cr | | Those events with description, address, coordinates, hosts, cover and RSVP counts | `/v1/facebook/profile/events?include=details` | The page's listing carries none of those, so all 8 rows on the page are joined | 1-9cr | | What is on in a city | `/v1/facebook/events` | Same row shape, and this feed does carry the cover image and the RSVP counts | 1cr | | Those city events with description, address, city, coordinates and hosts | `/v1/facebook/events?include=details` | At most 12 events on a page, so the ceiling is higher than the page feed's | 1-13cr | Both event lists carry the rendered time line, the venue, the city, the start timestamp and the cancelled, past and online flags on `post.ext.event` with no token at all. What `include=details` adds is the description, the street address, the coordinates, the hosts, the category, the privacy and the attendance count, plus the cover image and the RSVP counts on a page's own event list, which never carried either. An event's end time and ticket link stay `null` either way, because Facebook does not publish them for these events. The join adds 2 to 7 seconds to a page of posts whose rows are not already cached, 2 to 8 seconds to a page of photos, 2 to 6 seconds to a page's own events, 2 to 8 seconds to a city feed of events, never more than 12, and nothing when the rows are cached. Every joined response carries a `hydration` block itemising the rows, the lookups, the cache hits, the credits held and kept, and the milliseconds, so you can read back exactly what you paid for. ## Which call tells me when something new appears? [#watch] To be told when something new appears, match the ask to its job: for a recurring digest of what is new about a topic, keyword or brand, every 1h or slower, call `POST /v1/prism/discover` with `schedule` (every `1h` or slower, `dry_run` first), read through `GET /v1/events` or a webhook endpoint; for the new posts or comments of an account or post you already know, call `POST /v1/monitors` with `webhook_rows: "new"`; for a one-off check of what is new since your last check, on an endpoint that takes `since` or `since_id`, call the endpoint's own `since` or `since_id` (for example `GET /v1/twitter/tweet/replies` with `since_id`, which returns an empty list and costs nothing when nothing is new); for metric snapshots of accounts you name (followers, views, likes), taken on a schedule, call `POST /v1/monitors` with a `track` metric; for reading what your watches produced, from a feed you poll or an endpoint that receives a signed push, call `GET /v1/events` with a named `consumer` for reading, and `/v1/webhook-endpoints` for push; for what a keyword or boolean topic listener would cost each month and how it reads the rule, before it is created, call `POST /v1/listening/streams?dry_run=1` with the listener body, which costs 0 credits and creates nothing; for each new mention of keywords or a boolean topic delivered one by one, every 30 minutes or slower, with boolean groups, a monthly cap and usage per client, and with `comments: "new_posts"` the comments under the Reddit posts it keeps, call `POST /v1/listening/streams?dry_run=1` to price it, then `POST /v1/listening/streams` to create the listener; for the new posts of up to 1,000 named business, brand, creator or organisation accounts that match a topic, every 30 minutes or slower, call `POST /v1/listening/streams?dry_run=1` with `accounts` (each a `platform:handle` such as `reddit:nasa` or `youtube:@Google`, or a profile URL), `schedule.purpose` (`business`, `brand`, `creator` or `organisation`) and `keywords`, then `POST /v1/listening/streams` to create the listener; for what is new on your listeners since the last read, in a later session or on a schedule you run yourself, call `GET /v1/events` with a named `consumer` and `types=mention.*`, then acknowledge each page with its `pagination.next_cursor`. A watch checks on a schedule and reports what that check found. Read what a watch produced with the [event feed](/docs/events.md) or receive it at a signed [webhook endpoint](/docs/webhook-endpoints.md); the schedule is explained in [discover schedules](/docs/prism/discover.md#schedules) and the account watch in [Monitor webhooks](/docs/webhooks.md#only-the-new-rows). ## Which call finds creators or influencers? [#creators] To find creators or influencers (by topic, market, size, or a product to promote), lookalikes of creators, or to measure and rank a list of creators you already have, call `/v1/prism/creators`. For shops, businesses and sellers, call `/v1/prism/discover` with `view=accounts`. Creator search measures each creator from its recent posts, judges it against your request and ranks it with its reasons; [Creator search](/docs/prism/creators.md) has every field and price. ## Search one platform, the forums, or everywhere? [#search] To search one platform, call that platform's own search. To search several platforms over a date window with every row judged and de-duplicated, call `/v1/prism/discover`. For a quick fused sweep at a flat 20 credits, call `/v1/search/everywhere`, which drops rows outside `from_date`, `to_date`, `since` or `until` but reads one page per source, so a past window can come back thin. The table below has the per-platform searches and the specialised cross-platform ones. | Your goal | Use this endpoint | Why | Credit cost | | ---------------------------------------------------------- | -------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------- | | Search a platform you already chose | `/v1/tiktok/search`, `/v1/youtube/search`, `/v1/reddit/search` | Single-platform keyword search | 1cr (YouTube 1-11cr with `include`) | | Find creators by keyword, with bio and region on every row | `/v1/tiktok/search/users` with `include=profile` | One call instead of user search plus a profile lookup per row; unfilled rows refunded | 1cr, +1 per row filled (31 at most) | | Search inside one subreddit | `/v1/reddit/subreddit/search` | Scoped to a named community | 1cr | | Find which communities discuss a topic, with their size and activity | `/v1/reddit/subreddits/search` with `include=details` | One call instead of community search plus a details lookup per community; unfilled rows refunded | 1cr, +1 per community filled (26 at most) | | One keyword across all of Reddit, with comments | `/v1/reddit/omni-search` | Runs the search, expands the top threads' comments, rolls up which subreddits are talking | 5cr min, up to 9cr (metered by `threads`) | | Fused forum search (Reddit + Hacker News + Naver) | `/v1/search/forums` | One ranked list across forum sources, each thread with a stance and a judged relevance score | 10cr | | Multi-country news in one call | `/v1/search/news` | LLM-planned angles, localized per Google News edition, deduped across legs, grouped into same-event stories | 2-14cr (metered) | | One query across 15 social platforms | `/v1/search/everywhere` | LLM-planned, RRF-fused, reranked, clustered, each result with a stance and a relevance score | 20cr flat | | Several platforms over a date window, every row judged | `/v1/prism/discover` | Keeps only rows from your dates, judges every row against your question, removes duplicates, and continues in the background when the request is large ([guide](/docs/prism/discover.md)) | Each platform's own page price, plus any judging against a `context` or a `label` | Start with per-platform `search` (1cr) when the platform is decided. Fourteen separate 1cr calls still leave the merge and the date window to you, which is what `/v1/prism/discover` does for each platform's own page price, plus any judging against a `context` or a `label`. The post searches (`/v1/tiktok/search`, `/v1/youtube/search`, `/v1/reddit/search` and their siblings on other platforms), `/v1/search/forums` and `/v1/search/everywhere` score each row's relevance to your query by default, free, on `computed.relevance`. When your keyword is also a common word or another brand's name, add `relevance=filter` to drop the rows that are about something else, still at no extra credit. When you want to know how people feel rather than what they posted, `/v1/search/everywhere` and `/v1/search/forums` count stances for you (`data.stance_split`). See [Labels](/docs/labels.md). **The four Reddit search endpoints are a ladder, not alternatives** `/v1/reddit/subreddits/search` (1cr) is the step before the other three: it answers which communities discuss a subject, and `author.id` on each row is the `subreddit` parameter the rest of the platform takes. Send `include=details` and each community also arrives with its creation date, weekly active users, weekly contributions, rules and language, at 1 credit per community filled and 26 at most, which is the same price as the per-community lookups it replaces. `/v1/reddit/search` (1cr) is a plain site-wide post list. `/v1/reddit/subreddit/search` (1cr) narrows the same job to one community. `/v1/reddit/omni-search` (5cr floor) runs that search _and_ expands the top threads' comment trees in parallel _and_ returns per-subreddit volume with a tone label, so it is never the cheap option. Take it when you want voice-of-customer output rather than a list of links. The `threads` parameter is what moves it between 5 and 9 credits. **Source names on /v1/search/everywhere are not platform names** Unknown source names are dropped silently at full price. The X source is `twitter-ai-search`, not `twitter`, so `sources=reddit,twitter,tiktok` succeeds, quietly drops X coverage, and still charges the flat 20 credits. Check `data.sources_called` in the response to confirm the fan-out you asked for, and see the [full source table](/docs/search/everywhere.md#sources) for every canonical name. ## Getting a transcript [#transcripts] Transcript pricing depends on the platform's upstream. YouTube is the cheapest and has two options, the remaining platforms are a flat 10cr, and a composite bundles the transcript with the rest of a video's data. | Your goal | Use this endpoint | Why | Credit cost | | ------------------------------------------------------- | ------------------------------ | ------------------------------------------------ | ------------------------------- | | YouTube caption files, cheapest | `/v1/youtube/video/subtitles` | Raw subtitle files | 1cr | | YouTube clean transcript | `/v1/youtube/video/transcript` | Parsed, readable transcript | 3cr | | TikTok / IG / X / Facebook / Reddit / Rumble transcript | `/v1/tiktok/post/transcript` | Audio transcription | 10cr | | Transcript + detail + stats + comments in one call | `/v1/prism/video-intel` | Composite across YouTube/TikTok/Rumble/Instagram | 5cr base, +10cr with transcript | For YouTube, prefer `subtitles` (1cr) if you can parse caption files yourself and `transcript` (3cr) if you want it cleaned. Other platforms only offer the 10cr transcript, for example `/v1/instagram/media/transcript`, `/v1/twitter/tweet/transcript`, and `/v1/reddit/post/transcript`. If you also want the video's stats and top comments, `/v1/prism/video-intel` is one call. ## Which comment endpoint? [#comments] Four endpoints touch comments. The distinction is one page versus the whole tree, and a single comment versus a batch re-check. | Your goal | Use this endpoint | Why | Credit cost | | --------------------------------------- | ------------------------------------------------------ | ---------------------------------------- | ------------------------------------------------------ | | One page of top-level comments | `/v1/tiktok/post/comments`, `/v1/reddit/post/comments` | Cursor-paginated single page | 1cr (Reddit 5cr, Instagram 5cr) | | Every comment on a post, replies nested | `/v1/prism/comments` | Server-paginated to completion, one call | 2-200cr (metered by comment pages; Instagram flat 5cr) | | Look up one comment by URL or id | `/v1/tiktok/comment`, `/v1/instagram/comment` | Single-comment resolver | 2-6cr (Instagram 5-15cr) | | Re-check up to 25 known comments | `/v1/prism/comment-lookup` | Batch, failed items refunded | 2cr | Use the per-platform `post/comments` when one page is enough and you want to control paging. **Before you loop /v1/prism/comments** Its `max` parameter drives a page walk with a 200-credit hard cap, so "every comment on a post" on a very large thread is an expensive call. Read the range before you put it in a loop. Instagram is the exception on both endpoints: its comments run on a different upstream and bill a flat 5 credits per call rather than metering. **The single-comment resolvers are a scan, not a fetch-by-id** Neither Instagram nor TikTok exposes a read-one-comment route upstream, so `/v1/tiktok/comment` and `/v1/instagram/comment` run a bounded server-side scan. It stops the moment it finds the target, `deep_scan=true` widens the budget and is the top of each range, and a not-found result is fully refunded. ## Freshening numbers at scale [#single-vs-batch] When you already hold post or comment URLs and want current numbers, the batch endpoints re-check many at once and refund the ones that fail. | Your goal | Use this endpoint | Why | Credit cost | | ---------------------------------------------------- | -------------------------- | ------------------------------------------------- | ----------- | | Current engagement on one post | `/v1/tiktok/post` | Single post detail | 1cr | | Current engagement on up to 100 mixed-platform posts | `/v1/prism/post-stats` | One POST, per-URL results, failed URLs refunded | 1cr | | Re-check up to 25 known comments | `/v1/prism/comment-lookup` | One POST, per-item results, failed items refunded | 2cr | ## Hiring and job postings [#jobs] Jobs live entirely on LinkedIn. The split is keyword search versus one company's board, with a cheap counter for when you only want the number. | Your goal | Use this endpoint | Identifier | Credit cost | | ------------------------------------------ | -------------------------------- | ------------ | ----------- | | Find postings by keyword | `/v1/linkedin/search/jobs` | `query` | 10cr | | Every posting at one company | `/v1/linkedin/company/jobs` | `company_id` | 10cr | | Just "how many roles are they hiring for?" | `/v1/linkedin/company/job-count` | `company_id` | 5cr | | Full detail on one posting | `/v1/linkedin/job` | `id` | 5cr | To track hiring velocity across a competitive set, poll `company/job-count` (5cr) on a schedule and only spend the 10cr on `company/jobs` when the count moves. The company-scoped endpoints all key off the numeric `company_id`, which is **not** in the LinkedIn URL. Resolve it once from `/v1/linkedin/company` with the page `url`, then cache it. ## Ad libraries: which network, which door? [#ad-libraries] Each network's transparency library has a keyword door and an advertiser door. The keyword door is what you use when you only know a brand name. The advertiser door returns the complete run once you have resolved an id. | Your goal | Use this endpoint | Credit cost | | ------------------------------------------------- | ----------------------------------------- | ----------- | | Meta ads matching a keyword | `/v1/facebook/adlibrary/search/ads` | 5cr | | Resolve a brand name to its Meta advertiser pages | `/v1/facebook/adlibrary/search/companies` | 5cr | | Every ad one Meta page is running | `/v1/facebook/adlibrary/company/ads` | 5cr | | One Meta ad in full | `/v1/facebook/adlibrary/ad` | 5cr | | The spoken script of a Meta video ad | `/v1/facebook/adlibrary/ad/transcript` | 10cr | | Every Google ad for a domain | `/v1/google/company/ads` | 5cr | | Resolve a brand name to a Google `advertiser_id` | `/v1/google/adlibrary/advertisers/search` | 5cr | | One Google creative by URL | `/v1/google/ad` | 5cr | | LinkedIn ads matching a keyword | `/v1/linkedin/ads/search` | 5cr | Reddit's ad library is currently unavailable: the two `reddit/ads/*` endpoints are soft-disabled and return `503` at no charge, so there is no live path to give you here. The [Ad library aggregation recipe](/docs/recipes/ads-library-aggregation.md) runs the three live networks as one parallel fan-out for 15 credits and records the Reddit gap in full. ## App-store intelligence [#app-stores] The App Store and Google Play surfaces are deliberately symmetric: same nine resources, same prices, same parameter names, so one adapter covers both. Swap `app_store` for `google_play` and the call is otherwise identical. | Your goal | Use this endpoint | Identifier | Credit cost | | ------------------------------------------ | -------------------------------------------------------------------------------- | ---------------- | ----------- | | Find apps by keyword | `/v1/app_store/app-search` | `query` | 5cr | | Autocomplete a partial query | `/v1/app_store/search-suggestions` | `query` | 1cr | | One app's listing and stats | `/v1/app_store/app-info` | `app_id` | 5cr | | One app's user reviews | `/v1/app_store/app-reviews` | `app_id` | 5cr | | A ranked chart (top free, top grossing, …) | `/v1/app_store/app-list` | `app_collection` | 5cr | | Every store listing matching a title | `/v1/app_store/app-listings-search` | `title` | 10cr | | Valid category / country / language codes | `/v1/app_store/categories`, `/v1/app_store/locations`, `/v1/app_store/languages` | none | 1cr | For a cross-store view, skip the pairwise calls. `/v1/prism/apps-lookup` (30cr) resolves one title across both stores in a single composite, and `/v1/prism/app-reviews` (10-15cr, metered by how many stores you scope) returns reviews from both sides at once. ## Commerce, product data, and reviews [#commerce] Nine marketplaces, one repeating shape: a keyword search that returns ids, then a product call and a reviews call keyed off that id. What differs is which id each marketplace uses. | Marketplace | Keyword search | Product | Reviews | Product id | | --------------- | ------------------------------------------ | ----------------------------------- | -------------------------------------- | ----------------------------- | | Amazon | `/v1/amazon/product-search` (1cr) | `/v1/amazon/product` (5cr) | `/v1/amazon/reviews` (5cr) | `asin` | | Walmart | `/v1/walmart/search` (5cr) | `/v1/walmart/product` (5cr) | `/v1/walmart/reviews` (5cr) | `product_id` | | Target | none, browse `/v1/target/category` (5cr) | `/v1/target/product` (5cr) | `/v1/target/reviews` (5cr) | `tcin` | | eBay | `/v1/ebay/search` (5cr) | `/v1/ebay/product` (5cr) | none | `product_id` | | Home Depot | `/v1/home_depot/search` (5cr) | `/v1/home_depot/product` (5cr) | `/v1/home_depot/reviews` (5cr) | `item_id` or `url` | | Google Shopping | `/v1/google_shopping/product-search` (5cr) | `/v1/google_shopping/product` (1cr) | `/v1/google_shopping/reviews` (1cr) | `product_id` / `gid` | | TikTok Shop | `/v1/tiktokshop/search` (1cr) | `/v1/tiktokshop/product` (1cr) | `/v1/tiktokshop/product/reviews` (1cr) | product `url` or `product_id` | | Trustpilot | `/v1/trustpilot/business-search` (1cr) | n/a | `/v1/trustpilot/reviews` (5cr) | `domain` | | Tripadvisor | `/v1/tripadvisor/search` (1cr) | n/a | `/v1/tripadvisor/reviews` (1cr) | `url_path` | Two shortcuts worth knowing. `/v1/prism/product-reviews` (30cr) pulls reviews for one product across marketplaces in a single call instead of you fanning out, and `/v1/prism/review-integrity` (30cr) runs the same corpus through authenticity checks when the question is "are these reviews real?" rather than "what do they say?". For pricing across sellers on a single item, `/v1/amazon/sellers` (1cr), `/v1/google_shopping/sellers` (1cr), and `/v1/walmart/offers` (5cr) each return the offer list. ## Which Prism composite answers my question? [#prism] Prism composites fan out across several platforms and return one answered question rather than one platform's rows. They are the most expensive endpoints on the API and the least interchangeable, so pick by the question, not by the price. | The question you're asking | Composite | Credit cost | | -------------------------------------------------- | ------------------------------ | -------------------- | | How is my brand perceived right now? | `/v1/prism/reputation` | 30cr | | How do we split attention against named rivals? | `/v1/prism/share-of-voice` | 20-200cr (per brand) | | Where is my brand being talked about? | `/v1/prism/brand-mentions` | 50cr | | Where is it talked about on social platforms in my dates, judged and de-duplicated, on a schedule? | [`/v1/prism/discover`](/docs/prism/discover.md) with `brands` | each platform's page price, plus judging against a `context` | | Is something blowing up against us today? | `/v1/prism/crisis-radar` | 15-45cr | | What happened during that blow-up, after the fact? | `/v1/prism/crisis-postmortem` | 35cr | | Who covered us, and did it travel? | `/v1/prism/earned-media` | 25cr | | Did our launch land? | `/v1/prism/launch-echo` | 20cr | | How did the campaign perform? | `/v1/prism/campaign` | 35cr | | Is this creator worth paying? | `/v1/prism/creator-vet` | 50-75cr | | Quick creator snapshot before a shortlist | `/v1/prism/creator-card` | 5-8cr | | Does this handle even exist across platforms? | `/v1/prism/handle-audit` | 5-8cr | | Do two creators share an audience? | `/v1/prism/audience-overlap` | 20cr | | How does this account actually sound? | `/v1/prism/voice` | 5cr | | What do buyers say about this product? | `/v1/prism/product-reviews` | 30cr | | Are those reviews trustworthy? | `/v1/prism/review-integrity` | 30cr | | What do app users complain about? | `/v1/prism/app-reviews` | 10-15cr | | Find this app across both stores | `/v1/prism/apps-lookup` | 30cr | | How is this dev tool being received? | `/v1/prism/devtool-pulse` | 20cr | | What is this GitHub org shipping? | `/v1/prism/org-radar` | 6-51cr | | Who is in-market for what we sell? | `/v1/prism/demand-signals` | 30cr | | Which accounts should sales call? | `/v1/prism/leads` | 50cr | | What questions does this audience keep asking? | `/v1/prism/audience-questions` | 30cr | | What is the straight answer, with sources? | `/v1/prism/answers` | 15cr | | Do LLMs mention us when asked? | `/v1/prism/ai-visibility` | 2-1605cr (per probe) | | What is it like to work here, per employees? | `/v1/prism/employer-brand` | 30cr | | What is the Korea-vs-global gap on this topic? | `/v1/prism/korea-gap` | 15-40cr | | What is Truth Social saying about this account? | `/v1/prism/truthsocial-pulse` | 20cr | The metered composites scale with what you ask for: `share-of-voice` bills per brand in `brands`, `ai-visibility` per probe, `org-radar` per repository, and `creator-vet` and `creator-card` per platform covered. Check the range in [Endpoint pricing](/docs/endpoint-pricing.md) before you put one in a loop. `ai-visibility` in particular reaches four figures on a wide probe set. ## Still unsure? [#still-unsure] Point a URL at `/v1/prism/lookup` (0cr) and it dispatches to the correct detail endpoint automatically. - [API Reference](/docs/api-reference.md): The full catalogue with an interactive playground. - [Endpoint pricing](/docs/endpoint-pricing.md): Every endpoint - [Credits](/docs/credits.md): How the 1 / 5 / 10 tier ladder and the refund rules work. - [Recipes](/docs/recipes.md): Working builds that chain these endpoints together.