Docs · Migrating from another provider
Migrating from another provider
Paths follow the /v1/<platform>/… pattern and take your key in the x-api-key header, so most clients only change the base URL and the key.
The switch
- 1Get a LurkAPI key. Keys start with
lk_live_. - 2Change the base URL to
https://api.lurkapi.com. Paths stay the same. - 3Keep sending the key in
x-api-key, and check your error handling against the differences below.
Paths and the x-api-key header match ScrapeCreators-style APIs, so a client written for one usually works after changing the base URL:
curl "https://api.lurkapi.com/v1/facebook/adLibrary/search/ads?query=running+shoes&country=US&status=active" \
-H "x-api-key: YOUR_API_KEY"Endpoints
Endpoints cost 1–5 credits per call.
| Path | Endpoint | Cost |
|---|---|---|
/v1/facebook/adLibrary/search/ads | Facebook: Search Ad Library ads | 1 credit |
/v1/facebook/adLibrary/company/ads | Facebook: Ad Library ads by company | 1 credit |
/v1/facebook/adLibrary/ad | Facebook: Ad Library ad details | 1 credit |
/v1/facebook/adLibrary/search/companies | Facebook: Search Ad Library companies | 1 credit |
/v1/facebook/profile | Facebook: Public profile | 1 credit |
/v1/facebook/post | Facebook: Public post | 1 credit |
/v1/reddit/subreddit | Reddit: Subreddit posts | 1 credit |
/v1/reddit/subreddit/details | Reddit: Subreddit details | 1 credit |
/v1/reddit/subreddit/search | Reddit: Subreddit search | 1 credit |
/v1/reddit/search | Reddit: Search Reddit | 1 credit |
/v1/reddit/post/comments | Reddit: Post comments | 1 credit |
/v1/youtube/video | YouTube: Video details | 1 credit |
/v1/youtube/video/transcript | YouTube: Video transcript | 1 credit |
/v1/youtube/video/comments | YouTube: Video comments | 1 credit |
/v1/youtube/video/comment/replies | YouTube: Comment replies | 1 credit |
/v1/youtube/channel | YouTube: Channel details | 1 credit |
/v1/youtube/channel-videos | YouTube: Channel videos | 1 credit |
/v1/youtube/channel/shorts | YouTube: Channel Shorts | 1 credit |
/v1/youtube/search | YouTube: Search YouTube | 1 credit |
/v1/tiktok/profile | TikTok: Profile | 1 credit |
/v2/tiktok/video | TikTok: Video details | 1 credit |
/v1/tiktok/video/transcript | TikTok: Video transcript | 1 credit; 5 if speech-to-text runs |
/v3/tiktok/profile/videos | TikTok: Profile videos | 1 credit |
/v1/tiktok/video/comments | TikTok: Video comments | 1 credit |
/v1/tiktok/video/comment/replies | TikTok: Comment replies | 1 credit |
/v1/tiktok/search/hashtag | TikTok: Hashtag videos | 1 credit |
/v1/tiktok/song | TikTok: Song | 1 credit |
/v1/tiktok/song/videos | TikTok: Song videos | 1 credit |
/v1/tiktok/ad-library/search | TikTok: Search TikTok Ad Library | 1 credit |
/v1/tiktok/ad-library/ad | TikTok: TikTok Ad Library ad | 1 credit |
/v1/tiktok/user/live | TikTok: Live status | 1 credit |
/v1/tiktok/user/stories | TikTok: Public stories | 1 credit |
/v1/tiktok/product | TikTok: TikTok Shop product | 1 credit |
/v1/google/adLibrary/advertisers/search | Google: Search Google advertisers | 1 credit |
/v1/google/company/ads | Google: Google ads by company | 1 credit |
/v1/google/ad | Google: Google ad details | 1 credit |
/v1/bluesky/profile | Bluesky: Profile | 1 credit |
/v1/bluesky/user/posts | Bluesky: User posts | 1 credit |
/v1/bluesky/post | Bluesky: Post | 1 credit |
/v1/snapchat/profile | Snapchat: Profile and stories | 1 credit |
/v1/truthsocial/profile | Truth Social: Profile | 1 credit |
/v1/truthsocial/user/posts | Truth Social: User posts | 1 credit |
/v1/truthsocial/post | Truth Social: Post | 1 credit |
/v1/telegram/channel | Telegram: Channel | 1 credit |
/v1/telegram/channel/posts | Telegram: Channel posts | 1 credit |
/v1/telegram/post | Telegram: Post | 1 credit |
/v1/twitter/tweet | X (Twitter): Tweet | 1 credit |
/v1/twitter/profile | X (Twitter): Profile | 1 credit |
/v1/twitter/user-tweets | X (Twitter): User tweets | 1 credit |
/v1/threads/profile | Threads: Threads profile | 1 credit |
/v1/threads/user/posts | Threads: Threads account posts | 1 credit |
/v1/threads/post | Threads: Threads post | 1 credit |
/v1/instagram/profile | Instagram: Profile | 1 credit |
/v2/instagram/user/posts | Instagram: User posts | 1 credit |
/v1/instagram/post | Instagram: Post | 1 credit |
/v2/instagram/post/comments | Instagram: Post comments | 1 credit |
/v1/instagram/user/reels | Instagram: User reels | 1 credit |
/v2/instagram/media/transcript | Instagram: Media transcript | 1 credit; 5 if speech-to-text runs |
/v1/linkedin/company | LinkedIn: LinkedIn company page | 1 credit |
/v1/linkedin/company/posts | LinkedIn: LinkedIn company posts | 1 credit |
/v1/linkedin/ads/search | LinkedIn: Search LinkedIn ads | 1 credit |
/v1/linkedin/ad | LinkedIn: LinkedIn ad details | 1 credit |
/v1/linktree | Link-in-bio: Linktree page | 1 credit |
/v1/account/credit-balance | Account: Credit balance | free |
What stays the same
- Paths, the
x-api-keyheader, anderroras a string. - Allowed values in any case (
status=ACTIVEworks), anr/prefix on subreddit names, and trailing slashes. - Unknown parameters such as
get_transcriptare ignored, blank parameters count as unset, and a repeated parameter uses its first value. - Search companies accepts
country=ALL.
What's different
- 1Base URL is
https://api.lurkapi.com. - 2Keys start with
lk_live_.Authorization: Bearer <key>also works. - 3
credits_remainingis your real balance after the call. - 4Status codes:
402 insufficient_credits;429 rate_limitedor429 signup_required. A missing key is401 missing_api_keyand a revoked key is401 invalid_api_key. - 5Rate limit: 50 requests per 10 seconds per account, with a
retry-afterheader on429. High-volume accounts get 100; email support@lurkapi.com. - 6Error bodies are
{ success: false, error, code, docs, issues? }. Branch oncode, not theerrortext.502and503responses don't include upstream details. All codes. - 7
trimmust betrueorfalse(any case). Anything else is400 invalid_params. - 8Search companies
countrymust beALLor a 2-letter country code. - 9Only
GET. Other methods return405 method_not_allowed. Some providers also accept POST on search ads, company ads and post comments; send those as GET with query parameters. - 10Charging: A call is charged when it reached the platform, including
not_foundand other errors returned by the endpoint itself (e.g. a bad cursor). Free: parameter validation errors caught before the call,401/402/429rejections, and5xxfailures (500/502/503). Cached responses cost the same as fresh ones. Anonymous tries follow the same rule. - 11
cache_max_ageis ignored. Each endpoint has its own cache time (see Caching and freshness).
Fields we don't return
Reddit data comes from reddit.com's own pages, so fields those pages don't show are left out rather than guessed. Every Facebook endpoint and subreddit search return every key.
- Subreddit posts (
posts[]): nodowns,subreddit_subscribers,num_crossposts,edited,distinguished,archived,pinned,media,secure_media,media_embed,gilded,all_awardings,author_flair_textorlink_flair_css_class, and none of Reddit's moderator (mod_reports,banned_by…) or viewer-state (saved,likes,clicked…) fields. - Search Reddit (
posts[]): only what the search page shows, so also noselftext,selftext_html,url,url_overridden_by_dest,domain,is_self,is_video,preview,upvote_ratio,link_flair_text,stickied,lockedortotal_awards_received. Pass the post's URL to post comments for the full post. - Post comments:
postlacks the same fields as subreddit posts, plusnum_duplicates;comments[]have nodowns,edited,distinguished,stickied,locked,controversiality,score_hidden,gilded,all_awardings,total_awards_received,author_flair_textorcollapsed_reason, nor moderator or viewer-state fields. - Subreddit details: no
subscribers,advertiser_categoryorsubmit_text. Useweekly_active_usersfor size.
Other response differences
- Subreddit search returns posts only.
- Facebook
watermarked_resized_image_urlis""rather thannull, andig_verificationisfalserather thannull. - Company ads defaults to
status=all. Passstatus=activefor running ads only. get_transcriptdoes nothing.
Legacy mesmertools clients
/api/v1/...paths still work:https://api.lurkapi.com/api/v1/facebook/adLibrary/search/adsis the same endpoint.credits_remainingused to be-1; errors used to be{ error }with different text ("missing required query param: query" is now "query: required"); a revoked key was403, now401.- The Facebook ad endpoint and the Reddit endpoints used to read any
trimvalue buttrueas false; now it's a400.
Also included
- Claude and MCP. Every endpoint is also an MCP tool at
https://api.lurkapi.com/mcp. Connect it to Claude. Tool results skip nulls and empty lists to save tokens, andtrimdefaults totruewhere an endpoint has it. - Docs for agents. llms.txt, openapi.json and every docs page as markdown (add
.mdto the URL). - Pay per call, from $0.199 per 1,000 credits, with no subscription. Pricing.