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 charged. Calling the same endpoint again with the same parameters is a new call, because the data may have changed. A response served from the shared cache costs 2 credits. Store what you need to reuse.
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? |
Know what limit does on a call | What limit means |
| 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 and its latest page of posts in one call, so you skip the follow-up list request.
profile/full is a beta endpoint, but its two main parts are typed: data.profile is a profile, and each data.posts[].post is a post, the same shapes profile and the posts list return. Anything else under data keeps the source's own structure under our naming rules (snake_case keys, string ids, ISO times where the source gives a timestamp) and may change. Under schema 2 it no longer carries computed metrics such as engagement rate or posting cadence; compute those from the posts it returns.
| Your goal | Endpoint | Credits |
|---|---|---|
| Just the account | /v1/tiktok/profile, /v1/twitter/profile, /v1/youtube/channel | 10 |
| Just the account, LinkedIn member | /v1/linkedin/profile | 50 |
| Account + recent posts (beta) | /v1/tiktok/profile/full, /v1/twitter/profile/full, /v1/youtube/profile/full | 50 |
| LinkedIn company + latest 10 posts (beta) | /v1/linkedin/profile/full | 50 |
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 20 credits, while profile/full is a flat 50 for the same profile and posts. Prefer the pair when cost matters; prefer profile/full when one round trip matters more.
How many posts one profile/full call reads depends on the platform's page size: 10 on TikTok, up to 30 on YouTube, about 10 to 20 on X and 10 on a LinkedIn company. To read further back, send pagination.next_cursor back to profile/full as cursor: each further page is another 50-credit call. Paging the platform's posts list (for example /v1/tiktok/profile/videos) is usually cheaper.
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 (100 credits) with one 50-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.
What limit means depends on the endpoint
limit does two different jobs on this API. Read the endpoint's parameter description before you rely on one.
- 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, and/v1/reddit/subreddits/search,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, eight search 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.
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. |
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/twitter/user/tweets, /v1/youtube/channel/videos and /v1/youtube/channel/shorts. 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 | 10–370 |
| TikTok's Top tab for a keyword | /v1/tiktok/search/top | 10 |
| YouTube videos, channels, playlists and Shorts | /v1/youtube/search | 10–150 |
| YouTube videos with date, license and country filters | /v1/youtube/search/advanced | 10–110 |
| X posts, with X search operators in the query | /v1/twitter/search/tweets | 10–50 |
| A written answer about X, with the posts it cites | /v1/twitter/ai-search | 50 |
| Reddit posts, site-wide | /v1/reddit/search | 10–300 |
| Reddit posts inside one subreddit | /v1/reddit/subreddit/search | 10–260 |
| Reddit threads with their top comments and a per-subreddit roll-up | /v1/reddit/omni-search | 50–90 |
| LinkedIn posts and articles | /v1/linkedin/search/posts | 10–480 |
| Pinterest pins | /v1/pinterest/search | 10–260 |
Search results are the platform's own matches. When your keyword is also a common word or someone else's brand, filter the rows on your side: check post.content.text for the terms that must appear and the ones that must not, and use post.language where the platform states one.
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 | 10–1,310 |
| X accounts | /v1/twitter/search/users | 10 |
| Reddit communities, with activity and rules | /v1/reddit/subreddits/search?include=details | 10–260 |
| LinkedIn people | /v1/linkedin/search/people | 100–500 |
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 100 credits.
| Your goal | Endpoint | Credits |
|---|---|---|
| YouTube caption files to download and parse yourself | /v1/youtube/video/subtitles | 10 |
| YouTube transcript as timed segments with language | /v1/youtube/video/transcript | 30 |
| TikTok video | /v1/tiktok/post/transcript | 100 |
| X video post | /v1/twitter/tweet/transcript | 100 |
| Reddit video post | /v1/reddit/post/transcript | 100 |
| LinkedIn video post | /v1/linkedin/post/transcript | 100 |
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 | 10–30 |
| A page of comments on a YouTube video | /v1/youtube/video/comments | 10 |
| Replies to a tweet | /v1/twitter/tweet/replies | 10 |
| Top-level comments on a LinkedIn post | /v1/linkedin/post/comments | 50 |
| A Reddit post's whole comment tree, replies nested | /v1/reddit/post/comments | 50 |
| One thread of replies | /v1/tiktok/video/comment/replies, /v1/youtube/video/comment/replies, /v1/linkedin/post/comments/replies | 10 (LinkedIn 50) |
| Re-check one known TikTok comment | /v1/tiktok/comment | 20–60 |
Comments come back as text with their counts, author and language where the platform states one. Classifying them (sentiment, questions, complaints) is up to you; the Sentiment analysis recipe shows one way.
/v1/reddit/post/comments costs more because it returns the whole discussion with nested replies expanded under each comment's replies, which replaces a paging loop you would otherwise write. /v1/tiktok/post/comments takes scan_pages to read several pages in one call.
TikTok has no native "read one comment" route, so /v1/tiktok/comment scans for the target and stops as soon as it finds it. deep_scan=true widens the scan and is what reaches the top of the 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 | 100 |
| Every opening at one company | /v1/linkedin/company/jobs | company_id | 100 |
| How many roles a company has open | /v1/linkedin/company/job-count | company_id | 50 |
| One posting in full | /v1/linkedin/job | id | 50 |
To track hiring across a set of competitors, poll company/job-count on a schedule and spend the 100 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 (50 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 |
|---|---|---|
| LinkedIn ads by company, keyword or country | /v1/linkedin/ads/search | 50 |
| One LinkedIn ad in full | /v1/linkedin/ad | 50 |
| TikTok ads by keyword or advertiser name | /v1/tiktok/adlibrary/search | 50–170 |
| One TikTok ad in full | /v1/tiktok/adlibrary/ad | 50 |
| TikTok's leaderboard of top-performing ads for a market | /v1/tiktok/ads/top | 100–1000 |
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 Playground in your dashboard.