Which Endpoint Should I Use?
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 645 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 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.
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? |
| Pull Instagram data and work out which price applies | Instagram's two upstreams |
| Page through posts or reels, with or without per-item metrics | Raw list, or the enriched list? |
| Fill a Facebook list's gaps without a second call | Fill the rows, or fetch them? |
| Find posts about a keyword or topic | One platform, the forums, or everywhere? |
| Get the spoken content of a video | Getting a transcript |
| Read comments on a post | Which comment endpoint? |
| Refresh engagement numbers on URLs you already hold | Single call, or batch? |
| Track hiring and job postings | Hiring and job postings |
| See what a brand is running as paid advertising | Ad libraries |
| Research an app, its ranking, or its reviews | App-store intelligence |
| Look up a product, its price, or its reviews | Commerce, product data, and reviews |
| Answer a whole question rather than fetch one platform's rows | Which Prism composite? |
Profile, or profile plus posts?
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.
Instagram: the 1-credit or the 5-credit endpoint?
Instagram is served by two upstreams. The 1-credit endpoints cover the public surface. The 5-credit endpoints unlock 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, second upstream only | 5cr |
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?
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 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
limitcaps a single upstream page and maps to that upstream's native parameter (Naverdisplay, GitHubper_page, and so on). One call, one page, one charge. This is the behaviour Pagination documents. - Collect-until-N. On a small set of endpoints
limitinstead 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. Omitlimitand 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?
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
| 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
| 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.
Search one platform, the forums, or everywhere?
Per-platform search is for when you already know the platform. The universal endpoint plans, fuses, and reranks across many platforms at once.
| 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 14 social platforms | /v1/search/everywhere | LLM-planned, RRF-fused, reranked, clustered, each result with a stance and a relevance score | 20cr flat |
Start with per-platform search (1cr) when the platform is decided. Escalate to /v1/search/everywhere (flat 20cr) only when you genuinely want the cross-platform sweep, not fourteen separate 1cr calls you would have to fuse yourself. 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.
Getting a transcript
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?
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.
Freshening numbers at scale
When you already hold post or comment URLs and just want current numbers, the batch endpoints re-check many at once and refund the ones that fail. That is cheaper and simpler than looping single calls.
| 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 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?
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 runs the three live networks as one parallel fan-out for 15 credits and records the Reddit gap in full.
App-store intelligence
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
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 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 |
| 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 before you put one in a loop.
ai-visibility in particular reaches four figures on a wide probe set.
Still unsure?
Point a URL at /v1/prism/lookup (0cr) and it dispatches to the correct detail endpoint automatically.
