Which endpoint should I use?
Side-by-side decision tables for the endpoints that look alike, with the credit price of each so you pick the one that returns what you need for the least.
Several endpoints overlap. Two of them may return the same account, one cheaply and one with extras, or the same comments as one page or as a whole thread. Picking the wrong one either costs more than it should or leaves you making a second call. Each section below takes one of those "these look the same" questions and puts the options next to each other with their prices.
Every price here comes from the live catalogue at GET https://api.insightsocial.app/v1/endpoints (free, no key needed). A few pricing rules to keep in mind while you read:
- Fixed endpoints show one number, and that is the charge for a successful call.
- Metered endpoints show a range. The top of the range is held when the call starts, and when it finishes you are charged what the call actually used, never more than the ceiling. Plan your balance around the top of the range.
- Nothing found costs nothing. Failed calls, empty results and
dry_run=1calls are never charged. API credits are non-refundable, so this is how "you only pay for data" works: an unanswered call is simply never billed. - Repeats are free for a while. If you make the exact same call again within the endpoint's window (1 hour for search, 6 hours for most lists, 24 hours for profiles), it costs 0 and the response says
charge_reason: "owned". A response served from the shared cache that you had not already paid for costs 5 credits.
See Credits for the full rules and Endpoint pricing for every price in one table.
Start here
| What you are trying to do | Section |
|---|---|
| Account numbers alone, or together with its latest posts | Profile, or profile plus posts? |
| Pull Instagram data at the right price | Instagram: 20 credits or 100? |
| Page through posts or reels, with or without share counts | A plain list, or the /full list? |
| Fill a Facebook list's missing fields in the same call | Facebook: fill the rows, or fetch them? |
| Fetch only what is new since your last run | Only what is new |
| Find posts or accounts by keyword | Which search? |
| Get what was said in a video | Getting a transcript |
| Read the comments on a post | Which comment endpoint? |
| Track hiring and job postings | Hiring and job postings |
| See what a brand runs as paid advertising | Ad libraries |
Profile, or profile plus posts?
profile returns the account and nothing else. profile/full returns the same account, its latest page of posts and a set of computed metrics (engagement rate by views and by followers, posting cadence, top post, format mix) in one call, so you skip the follow-up list request and the maths.
| Your goal | Endpoint | Credits |
|---|---|---|
| Just the account | /v1/tiktok/profile, /v1/instagram/profile, /v1/twitter/profile, /v1/facebook/profile, /v1/youtube/channel | 20 |
| Just the account, LinkedIn member | /v1/linkedin/profile | 100 |
| Account + recent posts + computed metrics | /v1/tiktok/profile/full, /v1/instagram/profile/full, /v1/twitter/profile/full, /v1/facebook/profile/full, /v1/youtube/profile/full | 100 |
| LinkedIn company + latest 10 posts + metrics | /v1/linkedin/profile/full | 100 |
If you only need follower counts, use plain profile. When you fetch a profile and then always ask for its latest posts, profile/full replaces those two calls with one. On TikTok, for example, profile plus one page of profile/videos costs 40 to 120 credits and leaves the engagement maths to you, while profile/full is a flat 100 with the maths done.
How many posts one profile/full call reads depends on the platform's page size: 10 on TikTok, 12 on Instagram, up to 30 on YouTube, about 10 to 20 on X, 3 on Facebook and 10 on a LinkedIn company. Asking for more with posts returns that one page and a note in _warnings. Send the returned posts_cursor back as cursor to read the next page at the same price.
LinkedIn profile/full is a company endpoint
/v1/linkedin/profile/full takes a company page URL and replaces a /v1/linkedin/company plus /v1/linkedin/company/posts pair (200 credits) with one 100-credit call. For a person, use /v1/linkedin/profile.
The fields that get filled vary by platform. Check the platform's page under Platforms before you rely on one, and read Computed fields for when a computed value is present and when it is null.
Instagram: 20 credits or 100?
Instagram endpoints come in two price bands. The 20-credit endpoints cover what a public profile page shows. The 100-credit (advanced) endpoints return what the public page does not: share counts, follower and following lists, stories, tagged posts, locations and comment lists.
| Your goal | Endpoint | Credits |
|---|---|---|
| Profile, one post | /v1/instagram/profile, /v1/instagram/post | 20 |
| A page of posts or reels | /v1/instagram/profile/posts, /v1/instagram/profile/reels | 20–340, 20–360 |
| Name and avatar from a numeric user id | /v1/instagram/basic-profile | 20 |
| A post's share count | /v1/instagram/post/stats | 100–180 |
| Followers or following | /v1/instagram/followers, /v1/instagram/following | 100–200 |
| Accounts similar to one you know | /v1/instagram/similar | 100–1700 |
| Stories live right now | /v1/instagram/stories | 100 |
| Comments on a post | /v1/instagram/post/comments | 100–380 |
| Posts under a hashtag | /v1/instagram/search/hashtag | 100 |
post versus post/stats
/v1/instagram/post (20 credits) returns everything about a post, including views on video, except the share count. Only reach for /v1/instagram/post/stats (100–180) when you specifically need shares.
A plain list, or the /full list?
For Instagram posts and reels, and for Facebook reels, there is a plain list and an enriched /full list. The plain list is one fast page. The /full list attaches views, likes, comments and a per-item share count where one can be found.
| Your goal | Endpoint | Credits |
|---|---|---|
| One page of a user's reels | /v1/instagram/profile/reels | 20–360 |
| Reels with per-reel share counts | /v1/instagram/profile/reels/full | 100–500 |
| One page of a user's posts | /v1/instagram/profile/posts | 20–340 |
| Posts with per-post share counts | /v1/instagram/profile/posts/full | 100–500 |
| Facebook reels with exact views, likes, comments and shares | /v1/facebook/profile/reels/full | 100–500 |
Paging a long back catalogue when you do not need share counts is far cheaper on the plain list. Use /full when every item needs its engagement and you want it in one call.
What limit means depends on the endpoint
limit does three different jobs on this API. Read the endpoint's parameter description before you rely on one.
- Collect until N. On
/v1/instagram/profile/reels/full,/v1/instagram/profile/posts/fulland/v1/facebook/profile/reels/full(1 to 50), and/v1/threads/search(1 to 100),limittells the endpoint to keep walking pages on its own until it has that many items. Each page walked is billed, which is what moves these calls up their range. Leavelimitoff and you get one page. - Bigger single page. On
/v1/tiktok/search,limitreturns one bulk page of up to 120 videos (rounded up to a multiple of 30). On/v1/linkedin/search/postsit returns up to 200 posts in one call. - Keep the top N. On
/v1/tiktok/search/users,/v1/pinterest/search,/v1/reddit/subreddits/searchand/v1/instagram/similar,limittrims the page after the search has run. It is not a page size, and the next cursor still moves past the whole page.
Separately, twelve list endpoints take max_pages (1 to 5), which walks that many pages in one call. Each page is billed as one call, and the hold is multiplied by the page count before the call starts.
Facebook: fill the rows, or fetch them?
Four Facebook list endpoints take an optional include parameter that fills in every row on the page from that row's own detail record, in the same call. Without it, the call costs the bottom of its range. With it, you pay for the rows that were actually filled, which is why the price is a range.
| Your goal | Call | Credits |
|---|---|---|
| A page's recent posts: text, reactions, comments, publish time | /v1/facebook/profile/posts | 20 plain |
| The same posts with share counts, plus exact reel views and duration | /v1/facebook/profile/posts?include=engagement | up to 80 |
| A page's photos with author, likes, comments, shares and publish date | /v1/facebook/profile/photos?include=details | 20–180 |
| A page's own events with description, address, hosts, cover and RSVP counts | /v1/facebook/profile/events?include=details | 20–180 |
| What is on in a city, with description, address and hosts | /v1/facebook/events?include=details | 20–260 |
include=engagement is the right move when you are pulling the feed anyway. The alternative, one /v1/facebook/post call (20 credits) per permalink, costs about the same and takes a round trip per post. For reels specifically, /v1/facebook/profile/reels/full returns a page of reels with exact engagement on every one.
Only what is new
When you poll the same account on a schedule, most list endpoints can stop at what you already hold instead of returning it again.
| Parameter | What it does |
|---|---|
since | Leaves off posts published before a date (YYYY-MM-DD or ISO 8601). The page that reaches an older post ends the walk, and pagination.stopped_at is since. |
stop_at_id | Pass the id or URL of the newest post you already have. The page stops just before it, and pagination.stopped_at is known_id. |
recent_days | On Facebook and Instagram lists, keeps only posts from the last N days. |
max_age_days | On search endpoints, keeps only rows published within N days. The filter runs after each page is fetched, so every page walked is still billed. |
since and stop_at_id work on /v1/tiktok/profile/videos, /v1/instagram/profile/posts, /v1/instagram/profile/reels, /v1/twitter/user/tweets, /v1/facebook/profile/posts, /v1/youtube/channel/videos, /v1/youtube/channel/shorts and /v1/threads/user/posts. See Pagination.
Which search?
Every platform has its own keyword search. Pick the one for the platform you care about, and run several in parallel when you want more than one.
| Your goal | Endpoint | Credits |
|---|---|---|
| TikTok videos by keyword | /v1/tiktok/search | 20–840 |
| TikTok's Top tab for a keyword | /v1/tiktok/search/top | 20 |
| YouTube videos, channels, playlists and Shorts | /v1/youtube/search | 20–380 |
| YouTube videos with date, license and country filters | /v1/youtube/search/advanced | 20–220 |
| X posts, with X search operators in the query | /v1/twitter/search/tweets | 20–180 |
| A written answer about X, with the posts it cites | /v1/twitter/ai-search | 100 |
| Reddit posts, site-wide | /v1/reddit/search | 20–680 |
| Reddit posts inside one subreddit | /v1/reddit/subreddit/search | 20–520 |
| Reddit threads with their top comments and a per-subreddit roll-up | /v1/reddit/omni-search | 100–180 |
| Threads posts | /v1/threads/search | 20–680 |
| Instagram reels | /v1/instagram/search/reels | 20–180 |
| Facebook posts | /v1/facebook/search/posts | 20–180 |
| LinkedIn posts and articles | /v1/linkedin/search/posts | 20–1120 |
| Pinterest pins | /v1/pinterest/search | 20–520 |
The post searches score how relevant each row is to your query, for free, on computed.relevance. When your keyword is also a common word or someone else's brand, add relevance=filter to drop the rows about something else, still at no extra cost. See Labels.
To find accounts rather than posts:
| Your goal | Endpoint | Credits |
|---|---|---|
| TikTok creators, with bio and region on every row | /v1/tiktok/search/users?include=profile | 20–2000 |
| Threads accounts, with followers and bio | /v1/threads/search/users?include=profile | 20–260 |
| X accounts | /v1/twitter/search/users | 20 |
| Instagram profiles whose bio or captions match | /v1/instagram/search/profiles | 20–500 |
| Reddit communities, with activity and rules | /v1/reddit/subreddits/search?include=details | 20–520 |
| LinkedIn people | /v1/linkedin/search/people | 200–1000 |
An include=profile search replaces a user search plus one profile call per row. You pay per row actually filled.
/v1/reddit/subreddits/search is usually the step before the other Reddit searches: author.id on each row is the subreddit value the rest of the platform takes. /v1/reddit/omni-search is never the cheap option, because it runs the search and expands the top threads' comments in the same call. Choose it when you want what people are saying rather than a list of links. Its threads parameter (1 to 8) is what moves the price.
Getting a transcript
YouTube has two cheap options. Every other platform has one transcript endpoint at 200 credits.
| Your goal | Endpoint | Credits |
|---|---|---|
| YouTube caption files to download and parse yourself | /v1/youtube/video/subtitles | 20 |
| YouTube transcript as timed segments with language | /v1/youtube/video/transcript | 60 |
| TikTok video | /v1/tiktok/post/transcript | 200 |
| Instagram reel or video (up to 2 minutes) | /v1/instagram/media/transcript | 200 |
| Facebook video post | /v1/facebook/post/transcript | 200 |
| X video post | /v1/twitter/tweet/transcript | 200 |
| Reddit video post | /v1/reddit/post/transcript | 200 |
| LinkedIn video post | /v1/linkedin/post/transcript | 200 |
| Facebook Ad Library video ad | /v1/facebook/adlibrary/ad/transcript | 200 |
On YouTube, take subtitles if you can parse caption files, and transcript if you want the words already split into segments. A video with no captions or no speech comes back as a 404 and is not charged. The Video transcription recipe wraps all of these in one function.
Which comment endpoint?
Each platform has a comment list, and a few have a way to look up one comment directly.
| Your goal | Endpoint | Credits |
|---|---|---|
| A page of comments on a TikTok video | /v1/tiktok/post/comments | 20–140 |
| A page of comments on a YouTube video | /v1/youtube/video/comments | 20–100 |
| Replies to a tweet | /v1/twitter/tweet/replies | 20–100 |
| Comments on a Facebook post | /v1/facebook/post/comments | 20–100 |
| Replies under a Threads post (one window, no cursor) | /v1/threads/post/comments | 20–200 |
| Comments on an Instagram post | /v1/instagram/post/comments | 100–380 |
| Top-level comments on a LinkedIn post | /v1/linkedin/post/comments | 100 |
| A Reddit post's whole comment tree, replies nested | /v1/reddit/post/comments | 100–180 |
| One thread of replies | /v1/tiktok/video/comment/replies, /v1/instagram/post/comment/replies, /v1/youtube/video/comment/replies, /v1/facebook/post/comment/replies, /v1/linkedin/post/comments/replies | 20–100 (LinkedIn 100) |
| Re-check one known TikTok or Instagram comment | /v1/tiktok/comment, /v1/instagram/comment | 40–120, 100–300 |
Every comment list is labelled for free: each comment carries sentiment, question, purchase_intent and complaint on computed.labels. See Labels.
/v1/reddit/post/comments costs more because it returns the whole discussion with nested replies expanded, which replaces a paging loop you would otherwise write. /v1/tiktok/post/comments and /v1/instagram/post/comments take scan_pages to read several pages in one call.
TikTok and Instagram have no native "read one comment" route, so /v1/tiktok/comment and /v1/instagram/comment scan for the target and stop as soon as they find it. deep_scan=true widens the scan and is what reaches the top of each range. A comment that is not found is not charged.
Hiring and job postings
Job data lives on LinkedIn. The choice is a keyword search, one company's openings, or just the count.
| Your goal | Endpoint | Identifier | Credits |
|---|---|---|---|
| Postings by keyword | /v1/linkedin/search/jobs | query | 200 |
| Every opening at one company | /v1/linkedin/company/jobs | company_id | 200 |
| How many roles a company has open | /v1/linkedin/company/job-count | company_id | 100 |
| One posting in full | /v1/linkedin/job | id | 100 |
To track hiring across a set of competitors, poll company/job-count on a schedule and spend the 200 on company/jobs only when the count moves.
Resolve company_id once
LinkedIn company endpoints need a numeric company_id, and you cannot read it from the page URL. Get it from /v1/linkedin/company (100 credits) with the page url, then store it.
Ad libraries
Each network's ad library has a keyword door and an advertiser door. Use the keyword door when you only know a brand name. Use the advertiser door for a complete run once you have its id.
| Your goal | Endpoint | Credits |
|---|---|---|
| Meta ads matching a keyword | /v1/facebook/adlibrary/search/ads | 100 |
| Resolve a brand name to its Meta advertiser pages | /v1/facebook/adlibrary/search/companies | 100 |
| Every ad one Meta page is running | /v1/facebook/adlibrary/company/ads | 100 |
| One Meta ad in full | /v1/facebook/adlibrary/ad | 100 |
| What a Meta video ad says out loud | /v1/facebook/adlibrary/ad/transcript | 200 |
| LinkedIn ads by company, keyword or country | /v1/linkedin/ads/search | 100 |
| One LinkedIn ad in full | /v1/linkedin/ad | 100 |
| TikTok ads by keyword or advertiser name | /v1/tiktok/adlibrary/search | 100–340 |
| One TikTok ad in full | /v1/tiktok/adlibrary/ad | 100 |
| TikTok's leaderboard of top-performing ads for a market | /v1/tiktok/ads/top | 200–2000 |
The Ad library aggregation recipe runs the three keyword doors in parallel for one brand.
Still unsure?
Ask the catalogue. GET https://api.insightsocial.app/v1/endpoints?platform=tiktok lists every TikTok endpoint with its description, parameters and price, and needs no key. To try a call before you write code, use the Explorer in your dashboard.
Metric substitutions
Which unified fields stay null on which platform, how to fill the ones a join can recover, and the one place a field carries a different metric.
Recipes
Nine end-to-end builds on the InsightSocial API, from brand monitoring to ad audits, each with its credit cost worked out before you run it.