LurkAPI
Docs · Quickstart

Quickstart

Social media data from Facebook, Reddit, YouTube, TikTok, Google, Bluesky, Snapchat, Truth Social, Telegram, X (Twitter), Threads, Instagram, LinkedIn and Link-in-bio, as clean JSON. Connect it to Claude and ask, or call it with one request.

Try it liveView as markdown

Try it live

Pick an endpoint and run it: real data, no signup, 5 free requests a day.

Platform
Endpoint

GET/v1/facebook/adLibrary/search/ads

1 credit per request
Examples
query

Keywords to search ad text for, e.g. running shoes.

country

Where the ad ran: a 2-letter ISO country code (US, GB, DE…) or ALL. One country per request.

status

Only ads that are running now (active), only stopped ads (inactive), or both (all).

More options (9)
search_type

keyword_unordered matches all words in any order; keyword_exact_phrase matches the phrase as typed.

media_type

Creative format. meme is Facebook's name for image + text; none means text-only.

ad_type

Ad category. Political ads also carry spend and impressions ranges.

language

Language of the ad text as an ISO 639-1 code, e.g. en or es.

sort_by

total_impressions: most-seen ads first. relevancy_monthly_grouped: most recent first.

start_date

Only ads shown on or after this date (YYYY-MM-DD). The ad itself may have launched earlier.

end_date

Only ads shown on or before this date (YYYY-MM-DD).

cursor

The cursor from the previous response, to get the next page. Keep every other param the same.

trim

true drops image and video URLs (inside snapshot.cards too) for a much smaller response. All text is kept.

5 free tries a day, no signup

Press Run to fetch live data

Results come back as a table you can download as CSV, or as the raw JSON.

Connect to Claude

Add LurkAPI to Claude once, then ask in plain English, like “Which ads is Allbirds running right now?” Claude picks the right endpoint, calls it and reads the results for you. Calls from Claude spend credits the same way API calls do.

Claude on the web and desktop

  1. 1Get your free API key. Your dashboard shows your personal connector URL, with the key already in it.
  2. 2In Claude, open Settings → Connectors and choose Add custom connector.
  3. 3Name it LurkAPI, paste your connector URL and click Add.
  4. 4In a chat, switch LurkAPI on from the tools menu and ask away.

The connector URL looks like https://api.lurkapi.com/mcp?key=lk_live_…. It contains your key, so treat it like a password.

Pick your platforms

Add platforms to pick what Claude sees (recommended): https://api.lurkapi.com/mcp?key=lk_live_…&platforms=facebook,reddit,youtube,tiktok,google,bluesky,snapchat,truthsocial,telegram,twitter,threads,instagram,linkedin,linkinbio gives one tool per endpoint of those platforms, plus the free account tool. Platform ids: facebook, reddit, youtube, tiktok, google, bluesky, snapchat, truthsocial, telegram, twitter, threads, instagram, linkedin and linkinbio. Without it you get one tool per endpoint up to 25 endpoints; past that, two tools: find_endpoints to search the catalog and call_endpoint to run one, charged the same.

Claude Code

Add it from your terminal. The key travels in a header instead of the URL.

Terminal
claude mcp add --transport http lurkapi https://api.lurkapi.com/mcp \
  --header "x-api-key: YOUR_API_KEY"

Cursor and other MCP clients

Most clients take a JSON config with a URL and headers:

mcp.json
{
  "mcpServers": {
    "lurkapi": {
      "url": "https://api.lurkapi.com/mcp",
      "headers": {
        "x-api-key": "YOUR_API_KEY"
      }
    }
  }
}

Tools are named after the endpoint: facebook_search_ads, linkinbio_linktree and so on. Each endpoint page shows its tool name and an example prompt. Tool results skip nulls and empty lists to save tokens, and trim defaults to true where an endpoint has it.

Make your first request

Every endpoint is a GET request with query parameters and your key in the x-api-key header. Here's Search Ad Library ads:

Language

Every endpoint page has these snippets with its own parameters, a real example response and a live playground.

Authentication

Send your key in the x-api-key header. Authorization: Bearer <key> works too. Keys start with lk_live_ and are shown once when you create them; create and revoke them in your dashboard.

For MCP, the key can also go in the URL as ?key=, because Claude's custom connectors only take a URL.

Keys are secret. Call LurkAPI from a server or a script, not from a web page your visitors can inspect.

Agents: getting a key needs a human sign-in. Ask your user to sign in at https://lurkapi.com/login and paste the key from the dashboard.

Responses

A successful call returns success: true, what it cost in credits_charged, your balance after it in credits_remaining, and the endpoint's data at the top level:

200 OK
{
  "success": true,
  "credits_remaining": 4985,
  "credits_charged": 1,
  "searchResults": […]
}

An error returns a 4xx or 5xx status and a body you can branch on. Match on code; the error text is for people and may change.

400 Bad Request
{
  "success": false,
  "error": "query: required",
  "code": "invalid_params",
  "docs": "https://lurkapi.com/docs/facebook/search-ads",
  "issues": [
    {
      "path": "query",
      "message": "required"
    }
  ]
}

Unknown parameters are ignored, blank ones count as unset, and a repeated parameter uses its first value.

Credits

Every endpoint costs 1 credit per call; the cost is on each endpoint's page. A call is charged when it reached the platform, including not_found and other errors returned by the endpoint itself (e.g. a bad cursor). Free: parameter validation errors caught before the call, 401/402/429 rejections, and 5xx failures (500/502/503). Cached responses cost the same as fresh ones. Anonymous tries follow the same rule.

  • Without an account: 5 free requests a day from the playground and the free tools.
  • New accounts: 100 free credits, no card needed.
  • Every day: if your balance is under 25, it's topped back up to 25.
  • Credit packs: one-off purchases, no subscription. Credits never expire.
PackCreditsPricePer 1,000 credits
Starter20,000$10.00$0.50
Growth150,000$49.00$0.327
Scale1,000,000$199.00$0.199

Every response has credits_charged (this call) and credits_remaining (your balance after it). When the balance is too low for a call, you get 402 insufficient_credits and nothing is charged. Credit balance (GET /v1/account/credit-balance) is free, for checking before a batch.

Errors

Every error has the same shape: success: false, a readable error, a stable code and a docs link. Validation errors, 401/402/429 rejections and 5xx failures are free; not_found is charged (how charging works). Retry 429, 502 and 503; 429 and 503 carry a retry-after header with the seconds to wait.

StatusCodeMeaning
400invalid_paramsA parameter is missing or invalid. issues names each one.
401missing_api_keyNo API key. Send it in the x-api-key header.
401invalid_api_keyThe key is unknown or was revoked.
401invalid_tokenThe playground token expired. Reload the page.
402insufficient_creditsNot enough credits for this call. Buy a pack or wait for tomorrow's top-up.
403not_publicThe platform confirmed this account or content isn't available to logged-out visitors. Use a publicly visible target.
404not_foundThe endpoint, or the thing you asked for (ad, post, subreddit), doesn't exist. Charged when the platform was checked.
405method_not_allowedEndpoints take GET with query params.
429rate_limitedToo many calls at once. Wait for the retry-after seconds, then retry.
429signup_requiredFree tries for today are used up. Sign up for free daily credits.
500internal_errorSomething broke on our side. Retry; 5xx errors are free.
502upstream_errorThe platform didn't give a usable answer. Retry; 5xx errors are free.
503upstream_busyAll our connections to the platform are busy. Retry in a few seconds; 5xx errors are free.
504upstream_timeoutThe platform took over 30 seconds to answer. Retry; timeouts are free.

Rate limits

Each account can make 50 requests every 10 seconds (5 a second, sustained). Past that you get 429 rate_limited with a retry-after header: wait that many seconds and retry.

High-volume accounts get 100 requests every 10 seconds. Email support@lurkapi.com to switch yours.

Without an account, the playground and free tools allow 5 requests per IP address a day, then 429 signup_required.

Pagination

List endpoints return one page per call. The response carries a cursor (cursor or after, named on each endpoint's page); send it back with the same parameters to get the next page. It's null on the last page. Each page costs the endpoint's credits.

Caching and freshness

Responses are cached for a while, so repeated calls come back fast. How long depends on how quickly the data changes:

EndpointCached for up to
Facebook: Search Ad Library ads30 minutes
Facebook: Ad Library ads by company30 minutes
Facebook: Ad Library ad details6 hours
Facebook: Search Ad Library companies1 day
Facebook: Public Page profile10 minutes
Facebook: Public post5 minutes
Reddit: Subreddit posts1 minute
Reddit: Subreddit details1 hour
Reddit: Subreddit search1 minute
Reddit: Search Reddit1 minute
Reddit: Post comments1 minute
YouTube: Video details1 hour
YouTube: Video transcript30 days
YouTube: Video comments10 minutes
YouTube: Comment replies10 minutes
YouTube: Channel details6 hours
YouTube: Channel videos1 hour
YouTube: Channel Shorts1 hour
YouTube: Search YouTube15 minutes
TikTok: Profile15 minutes
TikTok: Video details15 minutes
TikTok: Video transcript30 days
TikTok: Profile videos5 minutes
TikTok: Video comments5 minutes
TikTok: Comment replies5 minutes
TikTok: Hashtag videos10 minutes
TikTok: Song1 hour
TikTok: Song videos10 minutes
TikTok: Search TikTok Ad Library1 hour
TikTok: TikTok Ad Library ad3 hours
TikTok: Live status30 seconds
TikTok: Public stories1 minute
TikTok: TikTok Shop product5 minutes
Google: Search Google advertisers1 day
Google: Google ads by company12 hours
Google: Google ad details12 hours
Bluesky: Profile30 seconds
Bluesky: User posts3 minutes
Bluesky: Post3 minutes
Snapchat: Profile and stories15 minutes
Truth Social: Profile10 minutes
Truth Social: User posts2 minutes
Truth Social: Post5 minutes
Telegram: Channel1 hour
Telegram: Channel posts5 minutes
Telegram: Post10 minutes
X (Twitter): Tweet5 minutes
X (Twitter): Profile1 hour
X (Twitter): User tweets5 minutes
Threads: Threads profile1 hour
Threads: Threads account posts1 minute
Threads: Threads post5 minutes
Instagram: Profile10 minutes
Instagram: User posts3 minutes
Instagram: Post5 minutes
Instagram: Post comments2 minutes
Instagram: User reels3 minutes
Instagram: Media transcript1 hour
LinkedIn: LinkedIn company page1 hour
LinkedIn: LinkedIn company posts1 hour
LinkedIn: Search LinkedIn ads1 hour
LinkedIn: LinkedIn ad details1 hour
Link-in-bio: Linktree page1 day

A cached response costs the same credits as a fresh one. We'll publish typical response times once they're measured in production.

All endpoints

Facebook

EndpointPathCreditsMCP tool
Search Ad Library ads/v1/facebook/adLibrary/search/ads1facebook_search_ads
Ad Library ads by company/v1/facebook/adLibrary/company/ads1facebook_company_ads
Ad Library ad details/v1/facebook/adLibrary/ad1facebook_ad
Search Ad Library companies/v1/facebook/adLibrary/search/companies1facebook_search_companies
Public Page profile/v1/facebook/profile1facebook_profile
Public post/v1/facebook/post1facebook_post

Reddit

EndpointPathCreditsMCP tool
Subreddit posts/v1/reddit/subreddit1reddit_subreddit_posts
Subreddit details/v1/reddit/subreddit/details1reddit_subreddit_details
Subreddit search/v1/reddit/subreddit/search1reddit_subreddit_search
Search Reddit/v1/reddit/search1reddit_search
Post comments/v1/reddit/post/comments1reddit_post_comments

YouTube

EndpointPathCreditsMCP tool
Video details/v1/youtube/video1youtube_video
Video transcript/v1/youtube/video/transcript1youtube_transcript
Video comments/v1/youtube/video/comments1youtube_comments
Comment replies/v1/youtube/video/comment/replies1youtube_comment_replies
Channel details/v1/youtube/channel1youtube_channel
Channel videos/v1/youtube/channel-videos1youtube_channel_videos
Channel Shorts/v1/youtube/channel/shorts1youtube_channel_shorts
Search YouTube/v1/youtube/search1youtube_search

TikTok

EndpointPathCreditsMCP tool
Profile/v1/tiktok/profile1tiktok_profile
Video details/v2/tiktok/video1tiktok_video
Video transcript/v1/tiktok/video/transcript1tiktok_transcript
Profile videos/v3/tiktok/profile/videos1tiktok_profile_videos
Video comments/v1/tiktok/video/comments1tiktok_comments
Comment replies/v1/tiktok/video/comment/replies1tiktok_comment_replies
Hashtag videos/v1/tiktok/search/hashtag1tiktok_hashtag_videos
Song/v1/tiktok/song1tiktok_song
Song videos/v1/tiktok/song/videos1tiktok_song_videos
Search TikTok Ad Library/v1/tiktok/ad-library/search1tiktok_ad_library_search
TikTok Ad Library ad/v1/tiktok/ad-library/ad1tiktok_ad_library_ad
Live status/v1/tiktok/user/live1tiktok_live
Public stories/v1/tiktok/user/stories1tiktok_stories
TikTok Shop product/v1/tiktok/product1tiktok_product

Google

EndpointPathCreditsMCP tool
Search Google advertisers/v1/google/adLibrary/advertisers/search1google_search_advertisers
Google ads by company/v1/google/company/ads1google_company_ads
Google ad details/v1/google/ad1google_ad

Bluesky

EndpointPathCreditsMCP tool
Profile/v1/bluesky/profile1bluesky_profile
User posts/v1/bluesky/user/posts1bluesky_user_posts
Post/v1/bluesky/post1bluesky_post

Snapchat

EndpointPathCreditsMCP tool
Profile and stories/v1/snapchat/profile1snapchat_profile

Truth Social

EndpointPathCreditsMCP tool
Profile/v1/truthsocial/profile1truthsocial_profile
User posts/v1/truthsocial/user/posts1truthsocial_user_posts
Post/v1/truthsocial/post1truthsocial_post

Telegram

EndpointPathCreditsMCP tool
Channel/v1/telegram/channel1telegram_channel
Channel posts/v1/telegram/channel/posts1telegram_channel_posts
Post/v1/telegram/post1telegram_post

X (Twitter)

EndpointPathCreditsMCP tool
Tweet/v1/twitter/tweet1twitter_tweet
Profile/v1/twitter/profile1twitter_profile
User tweets/v1/twitter/user-tweets1twitter_user_tweets

Threads

EndpointPathCreditsMCP tool
Threads profile/v1/threads/profile1threads_profile
Threads account posts/v1/threads/user/posts1threads_user_posts
Threads post/v1/threads/post1threads_post

Instagram

EndpointPathCreditsMCP tool
Profile/v1/instagram/profile1instagram_profile
User posts/v2/instagram/user/posts1instagram_user_posts
Post/v1/instagram/post1instagram_post
Post comments/v2/instagram/post/comments1instagram_post_comments
User reels/v1/instagram/user/reels1instagram_user_reels
Media transcript/v2/instagram/media/transcript1instagram_media_transcript

LinkedIn

EndpointPathCreditsMCP tool
LinkedIn company page/v1/linkedin/company1linkedin_company
LinkedIn company posts/v1/linkedin/company/posts1linkedin_company_posts
Search LinkedIn ads/v1/linkedin/ads/search1linkedin_search_ads
LinkedIn ad details/v1/linkedin/ad1linkedin_ad

Link-in-bio

EndpointPathCreditsMCP tool
Linktree page/v1/linktree1linkinbio_linktree

Account

EndpointPathCreditsMCP tool
Credit balance/v1/account/credit-balance0account_credit_balance

For AI agents

  • Base URL: https://api.lurkapi.com
  • Auth: x-api-key: lk_live_… header (or Authorization: Bearer lk_live_…). Get a free key: 100 free credits on signup, no card.
  • Requests: GET with query parameters. Responses are JSON with success, credits_remaining and the data at the top level; errors add code and docs.
  • Price: Every endpoint costs 1 credit per call, from $0.199 per 1,000 requests. Validation errors, 401/402/429 rejections and 5xx failures are free; not_found is charged (how charging works). Every response has credits_charged and credits_remaining; GET /v1/account/credit-balance is free.
  • Rate limit: 50 requests per 10 seconds per account (100 for high-volume accounts: support@lurkapi.com); over it, 429 rate_limited with retry-after.
  • Agents: getting a key needs a human sign-in. Ask your user to sign in at https://lurkapi.com/login and paste the key from the dashboard.
  • MCP server: https://api.lurkapi.com/mcp (Streamable HTTP). Add platforms to pick what Claude sees (recommended): https://api.lurkapi.com/mcp?platforms=facebook,reddit,youtube,tiktok,google,bluesky,snapchat,truthsocial,telegram,twitter,threads,instagram,linkedin,linkinbio gives one tool per endpoint of those platforms, plus the free account tool. Platform ids: facebook, reddit, youtube, tiktok, google, bluesky, snapchat, truthsocial, telegram, twitter, threads, instagram, linkedin and linkinbio. Without it you get one tool per endpoint up to 25 endpoints; past that, two tools: find_endpoints to search the catalog and call_endpoint to run one, charged the same. Tool results skip nulls and empty lists to save tokens, and trim defaults to true where an endpoint has it.
  • Machine-readable: /openapi.json, /llms.txt, /llms-full.txt, and every docs page as markdown at its URL + .md.

GET https://api.lurkapi.com/ returns a JSON index of every endpoint.