# Social Fetch > Social Fetch is a REST API for normalized Instagram, TikTok, and X/Twitter data. This file is generated from the same OpenAPI document as the public API and the on-site docs — use it as a machine-readable map for LLMs, coding agents, and documentation tools. Use [`/llms.json`](https://www.socialfetch.dev/llms.json) when you need a structured inventory instead of prose. ## API base URL and authentication - **API origin (from OpenAPI `servers`):** `https://api.socialfetch.dev` - **Authentication:** send `x-api-key: sfk_...` on `/v1/**` routes unless the operation is explicitly anonymous (see per-operation notes below). - **OpenAPI JSON:** [https://www.socialfetch.dev/openapi.json](https://www.socialfetch.dev/openapi.json) ## Recommended docs entrypoints (this site) - [Documentation overview](https://www.socialfetch.dev/docs.mdx) — top-level orientation (markdown). - [Quickstart](https://www.socialfetch.dev/docs/quickstart.mdx) — authenticate with `x-api-key`, validate auth with `whoami`, and understand the JSON envelope. - [SDK](https://www.socialfetch.dev/docs/sdk.mdx) — official TypeScript SDK guide, including `SocialFetchClient`, `Result`, and `unwrap()`. - [SDK reference](https://www.socialfetch.dev/docs/sdk-reference.mdx) — exhaustive SDK method inventory and route mapping for agents, tooling, and power users. - [Choose the right endpoint](https://www.socialfetch.dev/docs/choose-endpoint.mdx) — task-oriented route selection for smoke tests, profiles, list endpoints, and single-item lookups. - [Capability matrix](https://www.socialfetch.dev/docs/capability-matrix.mdx) — fast comparison of identifiers, pagination, outcomes, media download, and SDK coverage. - [Integrations](https://www.socialfetch.dev/docs/integrations.mdx) — MCP for AI clients, n8n verified node, SDK, and REST API connection paths. - [MCP integration](https://www.socialfetch.dev/docs/integrations/mcp.mdx) — hosted `/mcp` server, OAuth, Cursor/VS Code/Claude install snippets, 87 endpoint tools, plus docs_search/docs_read for implementation help. - [n8n integration](https://www.socialfetch.dev/docs/integrations/n8n.mdx) — install `n8n-nodes-socialfetch`, credentials, and workflow examples. - [`/llms.json`](https://www.socialfetch.dev/llms.json) — structured machine-readable operation inventory with parameter names, pagination, outcomes, credits, and SDK mapping. - [API reference hub](https://www.socialfetch.dev/docs/api.mdx) — human-friendly index of operations with links into generated pages. - [Errors](https://www.socialfetch.dev/docs/errors.mdx) — shared error envelope and HTTP status guidance. - [Credits](https://www.socialfetch.dev/docs/credits.mdx) — metering, `402`, and planning batch jobs. - Outcome semantics such as `found`, `not_found`, and `private` are documented in [Errors](https://www.socialfetch.dev/docs/errors.mdx) and on operation pages when present in the OpenAPI contract. ## Markdown docs convention - Every docs page has a markdown twin: append **`.mdx`** to the docs pathname (for example `/docs/quickstart` → `/docs/quickstart.mdx`). - Agents that send `Accept: text/markdown` on `/docs/**` HTML URLs may receive markdown directly (same URL, `Vary: Accept`). ## HTTP operations (auto-generated) Each row is derived from the bundled OpenAPI `paths`, the internal docs URL map, and the documented SDK surface. **Markdown** links point at the `.mdx` export for that operation page. | Method | Path | Summary | Auth | SDK | Markdown docs | | --- | --- | --- | --- | --- | --- | | GET | `/v1/tiktok/profiles/{handle}` | Get TikTok profile | `x-api-key` | `client.tiktok.getProfile({ handle })` | [mdx](https://www.socialfetch.dev/docs/api/v1/tiktok/profiles/handle/get.mdx) | | GET | `/v1/tiktok/profiles/{handle}/videos` | List TikTok profile videos | `x-api-key` | `client.tiktok.getProfileVideos({ handle, cursor? })` | [mdx](https://www.socialfetch.dev/docs/api/v1/tiktok/profiles/handle/videos/get.mdx) | | GET | `/v1/tiktok/profiles/{handle}/followers` | List TikTok profile followers | `x-api-key` | `client.tiktok.getProfileFollowers({ handle, cursor? })` | [mdx](https://www.socialfetch.dev/docs/api/v1/tiktok/profiles/handle/followers/get.mdx) | | GET | `/v1/tiktok/profiles/{handle}/following` | List TikTok profile following | `x-api-key` | `client.tiktok.getProfileFollowing({ handle, cursor? })` | [mdx](https://www.socialfetch.dev/docs/api/v1/tiktok/profiles/handle/following/get.mdx) | | GET | `/v1/tiktok/profiles/{handle}/region` | Get TikTok profile region | `x-api-key` | `client.tiktok.getProfileRegion({ handle })` | [mdx](https://www.socialfetch.dev/docs/api/v1/tiktok/profiles/handle/region/get.mdx) | | GET | `/v1/tiktok/profiles/{handle}/live` | Get TikTok live stream | `x-api-key` | `client.tiktok.getProfileLive({ handle })` | [mdx](https://www.socialfetch.dev/docs/api/v1/tiktok/profiles/handle/live/get.mdx) | | GET | `/v1/tiktok/users/search` | Search TikTok users | `x-api-key` | `client.tiktok.searchUsers({ query })` | [mdx](https://www.socialfetch.dev/docs/api/v1/tiktok/users/search/get.mdx) | | GET | `/v1/tiktok/search` | Search TikTok videos | `x-api-key` | `client.tiktok.searchVideos({ query: "web scraping" })` | [mdx](https://www.socialfetch.dev/docs/api/v1/tiktok/search/get.mdx) | | GET | `/v1/tiktok/search/hashtags` | Search TikTok by hashtag | `x-api-key` | `client.tiktok.searchHashtags({ hashtag: "fyp" })` | [mdx](https://www.socialfetch.dev/docs/api/v1/tiktok/search/hashtags/get.mdx) | | GET | `/v1/tiktok/videos` | Get TikTok video | `x-api-key` | `client.tiktok.getVideo({ url })` | [mdx](https://www.socialfetch.dev/docs/api/v1/tiktok/videos/get.mdx) | | GET | `/v1/tiktok/videos/comments` | List TikTok video comments | `x-api-key` | `client.tiktok.getVideoComments({ url })` | [mdx](https://www.socialfetch.dev/docs/api/v1/tiktok/videos/comments/get.mdx) | | GET | `/v1/tiktok/videos/transcript` | Get TikTok video transcript | `x-api-key` | `client.tiktok.getVideoTranscript({ url })` | [mdx](https://www.socialfetch.dev/docs/api/v1/tiktok/videos/transcript/get.mdx) | | GET | `/v1/tiktok/feed/trending` | List TikTok trending feed | `x-api-key` | `client.tiktok.listTrendingFeed({ region: 'US' })` | [mdx](https://www.socialfetch.dev/docs/api/v1/tiktok/feed/trending/get.mdx) | | GET | `/v1/tiktok/shop/products/search` | Search TikTok Shop products | `x-api-key` | `client.tiktok.searchShopProducts({ query })` | [mdx](https://www.socialfetch.dev/docs/api/v1/tiktok/shop/products/search/get.mdx) | | GET | `/v1/tiktok/shop/products` | List TikTok Shop store products | `x-api-key` | `client.tiktok.listShopProducts({ url })` | [mdx](https://www.socialfetch.dev/docs/api/v1/tiktok/shop/products/get.mdx) | | GET | `/v1/tiktok/products` | Get TikTok Shop product | `x-api-key` | `client.tiktok.getProduct({ url })` | [mdx](https://www.socialfetch.dev/docs/api/v1/tiktok/products/get.mdx) | | GET | `/v1/tiktok/products/reviews` | List TikTok Shop product reviews | `x-api-key` | `client.tiktok.getProductReviews({ url: 'https://www.tiktok.com/shop/pdp/...' })` | [mdx](https://www.socialfetch.dev/docs/api/v1/tiktok/products/reviews/get.mdx) | | GET | `/v1/tiktok/profiles/{handle}/showcase-products` | List TikTok profile showcase products | `x-api-key` | `client.tiktok.getProfileShowcaseProducts({ handle, cursor? })` | [mdx](https://www.socialfetch.dev/docs/api/v1/tiktok/profiles/handle/showcase-products/get.mdx) | | GET | `/v1/facebook/profiles` | Get Facebook profile | `x-api-key` | `client.facebook.getProfile({ url, includeBusinessHours? })` | [mdx](https://www.socialfetch.dev/docs/api/v1/facebook/profiles/get.mdx) | | GET | `/v1/facebook/profiles/posts` | List Facebook profile posts | `x-api-key` | `client.facebook.getProfilePosts({ url?, pageId?, cursor? })` | [mdx](https://www.socialfetch.dev/docs/api/v1/facebook/profiles/posts/get.mdx) | | GET | `/v1/facebook/profiles/reels` | List Facebook profile reels | `x-api-key` | `client.facebook.getProfileReels({ url })` | [mdx](https://www.socialfetch.dev/docs/api/v1/facebook/profiles/reels/get.mdx) | | GET | `/v1/facebook/profiles/photos` | List Facebook profile photos | `x-api-key` | `client.facebook.getProfilePhotos({ url })` | [mdx](https://www.socialfetch.dev/docs/api/v1/facebook/profiles/photos/get.mdx) | | GET | `/v1/facebook/posts` | Get Facebook post or reel | `x-api-key` | `client.facebook.getPost({ url })` | [mdx](https://www.socialfetch.dev/docs/api/v1/facebook/posts/get.mdx) | | GET | `/v1/facebook/posts/comments` | List Facebook post or reel comments | `x-api-key` | `client.facebook.getPostComments({ url })` | [mdx](https://www.socialfetch.dev/docs/api/v1/facebook/posts/comments/get.mdx) | | GET | `/v1/facebook/posts/transcript` | Get Facebook post transcript | `x-api-key` | `client.facebook.getPostTranscript({ url })` | [mdx](https://www.socialfetch.dev/docs/api/v1/facebook/posts/transcript/get.mdx) | | GET | `/v1/facebook/groups/posts` | List Facebook group posts | `x-api-key` | `client.facebook.listGroupPosts({ url, sortBy?, cursor? })` | [mdx](https://www.socialfetch.dev/docs/api/v1/facebook/groups/posts/get.mdx) | | GET | `/v1/facebook/marketplace/items` | Get Facebook Marketplace item | `x-api-key` | `client.facebook.getMarketplaceItem({ itemId: "1656586118821988" })` | [mdx](https://www.socialfetch.dev/docs/api/v1/facebook/marketplace/items/get.mdx) | | GET | `/v1/facebook/marketplace/locations/search` | Search Facebook Marketplace locations | `x-api-key` | `client.facebook.searchMarketplaceLocations({ query: "Austin" })` | [mdx](https://www.socialfetch.dev/docs/api/v1/facebook/marketplace/locations/search/get.mdx) | | GET | `/v1/facebook/marketplace/search` | Search Facebook Marketplace listings | `x-api-key` | `client.facebook.searchMarketplace({ query: "bike", lat: 30.2677, lng: -97.7475 })` | [mdx](https://www.socialfetch.dev/docs/api/v1/facebook/marketplace/search/get.mdx) | | GET | `/v1/facebook/ad-library/ads` | Get Facebook Ad Library ad | `x-api-key` | `client.facebook.getAdLibraryAd({ adId: "902134546059754", includeTranscript: true })` | [mdx](https://www.socialfetch.dev/docs/api/v1/facebook/ad-library/ads/get.mdx) | | GET | `/v1/facebook/ad-library/ads/search` | Search Facebook Ad Library ads | `x-api-key` | `client.facebook.searchAdLibraryAds({ query: "running", mediaType: "video" })` | [mdx](https://www.socialfetch.dev/docs/api/v1/facebook/ad-library/ads/search/get.mdx) | | GET | `/v1/facebook/ad-library/companies/ads` | List Facebook company ads | `x-api-key` | `client.facebook.listCompanyAds({ pageId: '367152833370567' })` | [mdx](https://www.socialfetch.dev/docs/api/v1/facebook/ad-library/companies/ads/get.mdx) | | GET | `/v1/facebook/ad-library/companies/search` | Search Facebook ad library companies | `x-api-key` | `client.facebook.searchAdLibraryCompanies({ query: "nike" })` | [mdx](https://www.socialfetch.dev/docs/api/v1/facebook/ad-library/companies/search/get.mdx) | | GET | `/v1/instagram/profiles/{handle}` | Get Instagram profile | `x-api-key` | `client.instagram.getProfile({ handle })` | [mdx](https://www.socialfetch.dev/docs/api/v1/instagram/profiles/handle/get.mdx) | | GET | `/v1/instagram/profiles/{userId}/basic` | Get Instagram basic profile | `x-api-key` | `client.instagram.getBasicProfile({ userId })` | [mdx](https://www.socialfetch.dev/docs/api/v1/instagram/profiles/userid/basic/get.mdx) | | GET | `/v1/instagram/profiles/{handle}/posts` | List Instagram profile posts | `x-api-key` | `client.instagram.getProfilePosts({ handle, cursor? })` | [mdx](https://www.socialfetch.dev/docs/api/v1/instagram/profiles/handle/posts/get.mdx) | | GET | `/v1/instagram/profiles/{handle}/reels` | List Instagram profile reels | `x-api-key` | `client.instagram.getProfileReels({ handle, cursor? })` | [mdx](https://www.socialfetch.dev/docs/api/v1/instagram/profiles/handle/reels/get.mdx) | | GET | `/v1/instagram/profiles/{handle}/highlights` | List Instagram profile highlights | `x-api-key` | `client.instagram.getProfileHighlights({ handle })` | [mdx](https://www.socialfetch.dev/docs/api/v1/instagram/profiles/handle/highlights/get.mdx) | | GET | `/v1/instagram/highlights/{highlightId}` | Get Instagram highlight | `x-api-key` | `client.instagram.getHighlight({ highlightId })` | [mdx](https://www.socialfetch.dev/docs/api/v1/instagram/highlights/highlightid/get.mdx) | | GET | `/v1/instagram/posts` | Get Instagram post or reel | `x-api-key` | `client.instagram.getPost({ url })` | [mdx](https://www.socialfetch.dev/docs/api/v1/instagram/posts/get.mdx) | | GET | `/v1/instagram/posts/comments` | List Instagram post or reel comments | `x-api-key` | `client.instagram.getPostComments({ url })` | [mdx](https://www.socialfetch.dev/docs/api/v1/instagram/posts/comments/get.mdx) | | GET | `/v1/instagram/posts/transcript` | Get Instagram post transcript | `x-api-key` | `client.instagram.getPostTranscript({ url })` | [mdx](https://www.socialfetch.dev/docs/api/v1/instagram/posts/transcript/get.mdx) | | GET | `/v1/instagram/search/reels` | Search Instagram Reels | `x-api-key` | `client.instagram.searchReels({ query: "dogs" })` | [mdx](https://www.socialfetch.dev/docs/api/v1/instagram/search/reels/get.mdx) | | GET | `/v1/linkedin/profiles` | Get LinkedIn profiles | `x-api-key` | `client.linkedin.getProfiles({ urls })` | [mdx](https://www.socialfetch.dev/docs/api/v1/linkedin/profiles/get.mdx) | | GET | `/v1/linkedin/profiles/posts` | List LinkedIn profile posts | `x-api-key` | `client.linkedin.listProfilePosts({ url })` | [mdx](https://www.socialfetch.dev/docs/api/v1/linkedin/profiles/posts/get.mdx) | | GET | `/v1/linkedin/people/search` | Search LinkedIn people | `x-api-key` | `client.linkedin.searchPeople({ firstName: "James", lastName: "Smith" })` | [mdx](https://www.socialfetch.dev/docs/api/v1/linkedin/people/search/get.mdx) | | GET | `/v1/linkedin/organizations` | Get LinkedIn organization page | `x-api-key` | `client.linkedin.getOrganizations({ urls })` | [mdx](https://www.socialfetch.dev/docs/api/v1/linkedin/organizations/get.mdx) | | GET | `/v1/linkedin/companies` | Get LinkedIn company page | `x-api-key` | `client.linkedin.getCompany({ url })` | [mdx](https://www.socialfetch.dev/docs/api/v1/linkedin/companies/get.mdx) | | GET | `/v1/linkedin/companies/posts` | List LinkedIn company posts | `x-api-key` | `client.linkedin.listCompanyPosts({ url })` | [mdx](https://www.socialfetch.dev/docs/api/v1/linkedin/companies/posts/get.mdx) | | GET | `/v1/linkedin/posts` | Get LinkedIn post or article | `x-api-key` | `client.linkedin.getPost({ url })` | [mdx](https://www.socialfetch.dev/docs/api/v1/linkedin/posts/get.mdx) | | GET | `/v1/linkedin/jobs` | Get LinkedIn jobs | `x-api-key` | `client.linkedin.getJobs({ urls })` | [mdx](https://www.socialfetch.dev/docs/api/v1/linkedin/jobs/get.mdx) | | GET | `/v1/linkedin/jobs/search` | Search LinkedIn jobs | `x-api-key` | `client.linkedin.searchJobs({ keyword })` | [mdx](https://www.socialfetch.dev/docs/api/v1/linkedin/jobs/search/get.mdx) | | GET | `/v1/youtube/channel` | Get YouTube channel | `x-api-key` | `client.youtube.getChannel({ handle })` | [mdx](https://www.socialfetch.dev/docs/api/v1/youtube/channel/get.mdx) | | GET | `/v1/youtube/channels/videos` | List YouTube channel videos | `x-api-key` | `client.youtube.getChannelVideos({ handle })` | [mdx](https://www.socialfetch.dev/docs/api/v1/youtube/channels/videos/get.mdx) | | GET | `/v1/youtube/channels/shorts` | List YouTube channel shorts | `x-api-key` | `client.youtube.getChannelShorts({ handle })` | [mdx](https://www.socialfetch.dev/docs/api/v1/youtube/channels/shorts/get.mdx) | | GET | `/v1/youtube/playlists` | Get YouTube playlist | `x-api-key` | `client.youtube.getPlaylist({ playlistId: "PLP32wGpgzmIlInfgKVFfCwVsxgGqZNIiS" })` | [mdx](https://www.socialfetch.dev/docs/api/v1/youtube/playlists/get.mdx) | | GET | `/v1/youtube/community-posts` | Get YouTube community post | `x-api-key` | `client.youtube.getCommunityPost({ url: "https://www.youtube.com/post/Ugkxvj2KoApYAXoqLWnKVr6zZe5JjeHrQeP8" })` | [mdx](https://www.socialfetch.dev/docs/api/v1/youtube/community-posts/get.mdx) | | GET | `/v1/youtube/search` | Search YouTube | `x-api-key` | `client.youtube.search({ query: "running" })` | [mdx](https://www.socialfetch.dev/docs/api/v1/youtube/search/get.mdx) | | GET | `/v1/youtube/search/hashtags` | Search YouTube by hashtag | `x-api-key` | `client.youtube.searchHashtag({ hashtag: "funny" })` | [mdx](https://www.socialfetch.dev/docs/api/v1/youtube/search/hashtags/get.mdx) | | GET | `/v1/youtube/shorts/trending` | List trending YouTube Shorts | `x-api-key` | `client.youtube.getTrendingShorts()` | [mdx](https://www.socialfetch.dev/docs/api/v1/youtube/shorts/trending/get.mdx) | | GET | `/v1/youtube/videos` | Get YouTube video | `x-api-key` | `client.youtube.getVideo({ url })` | [mdx](https://www.socialfetch.dev/docs/api/v1/youtube/videos/get.mdx) | | GET | `/v1/youtube/videos/comments` | List YouTube video comments | `x-api-key` | `client.youtube.getVideoComments({ url, order: "top" })` | [mdx](https://www.socialfetch.dev/docs/api/v1/youtube/videos/comments/get.mdx) | | GET | `/v1/youtube/videos/comments/replies` | List YouTube comment replies | `x-api-key` | `client.youtube.getVideoCommentReplies({ cursor: comment.repliesCursor })` | [mdx](https://www.socialfetch.dev/docs/api/v1/youtube/videos/comments/replies/get.mdx) | | GET | `/v1/youtube/videos/transcript` | Get YouTube video transcript | `x-api-key` | `client.youtube.getVideoTranscript({ url })` | [mdx](https://www.socialfetch.dev/docs/api/v1/youtube/videos/transcript/get.mdx) | | GET | `/v1/twitter/profiles/{handle}` | Get Twitter profile | `x-api-key` | `client.twitter.getProfile({ handle })` | [mdx](https://www.socialfetch.dev/docs/api/v1/twitter/profiles/handle/get.mdx) | | GET | `/v1/twitter/profiles/{handle}/tweets` | List Twitter profile tweets | `x-api-key` | `client.twitter.getProfileTweets({ handle, trim? })` | [mdx](https://www.socialfetch.dev/docs/api/v1/twitter/profiles/handle/tweets/get.mdx) | | GET | `/v1/twitter/tweets` | Get Twitter tweet | `x-api-key` | `client.twitter.getTweet({ url })` | [mdx](https://www.socialfetch.dev/docs/api/v1/twitter/tweets/get.mdx) | | GET | `/v1/twitter/tweets/replies` | List Twitter tweet replies | `x-api-key` | `client.twitter.listTweetReplies({ url })` | [mdx](https://www.socialfetch.dev/docs/api/v1/twitter/tweets/replies/get.mdx) | | GET | `/v1/twitter/tweets/transcript` | Get Twitter tweet transcript | `x-api-key` | `client.twitter.getTweetTranscript({ url })` | [mdx](https://www.socialfetch.dev/docs/api/v1/twitter/tweets/transcript/get.mdx) | | GET | `/v1/twitter/search` | Search Twitter posts | `x-api-key` | `client.twitter.search({ query })` | [mdx](https://www.socialfetch.dev/docs/api/v1/twitter/search/get.mdx) | | GET | `/v1/twitter/hashtags` | Search Twitter by hashtag | `x-api-key` | `client.twitter.searchHashtags({ hashtag: "python" })` | [mdx](https://www.socialfetch.dev/docs/api/v1/twitter/hashtags/get.mdx) | | GET | `/v1/twitter/communities` | Get Twitter community | `x-api-key` | `client.twitter.getCommunity({ url })` | [mdx](https://www.socialfetch.dev/docs/api/v1/twitter/communities/get.mdx) | | GET | `/v1/twitter/communities/tweets` | List Twitter community tweets | `x-api-key` | `client.twitter.getCommunityTweets({ url })` | [mdx](https://www.socialfetch.dev/docs/api/v1/twitter/communities/tweets/get.mdx) | | GET | `/v1/whoami` | Whoami | `x-api-key` | `client.auth.whoami()` | [mdx](https://www.socialfetch.dev/docs/api/v1/whoami.mdx) | | GET | `/v1/balance` | Get account balance | `x-api-key` | `client.billing.getBalance()` | [mdx](https://www.socialfetch.dev/docs/api/v1/balance.mdx) | | GET | `/health` | Health check | none | `client.health()` | [mdx](https://www.socialfetch.dev/docs/api/health/get.mdx) | | GET | `/v1/telegram/channels/{handle}` | Get Telegram channel | `x-api-key` | `client.telegram.getChannel({ handle: "durov" })` | [mdx](https://www.socialfetch.dev/docs/api/v1/telegram/channels/handle/get.mdx) | | GET | `/v1/telegram/channels/{handle}/posts` | List Telegram channel posts | `x-api-key` | `client.telegram.getChannelPosts({ handle: "durov" })` | [mdx](https://www.socialfetch.dev/docs/api/v1/telegram/channels/handle/posts/get.mdx) | | GET | `/v1/telegram/channels/{handle}/posts/{postId}` | Get Telegram channel post | `x-api-key` | `client.telegram.getChannelPost({ handle: "Premiumoji", postId: "93" })` | [mdx](https://www.socialfetch.dev/docs/api/v1/telegram/channels/handle/posts/postid/get.mdx) | | GET | `/v1/threads/profiles/{handle}` | Get Threads profile | `x-api-key` | `client.threads.getProfile({ handle })` | [mdx](https://www.socialfetch.dev/docs/api/v1/threads/profiles/handle/get.mdx) | | GET | `/v1/threads/profiles/{handle}/posts` | List Threads profile posts | `x-api-key` | `client.threads.getProfilePosts({ handle, trim? })` | [mdx](https://www.socialfetch.dev/docs/api/v1/threads/profiles/handle/posts/get.mdx) | | GET | `/v1/threads/search` | Search Threads posts | `x-api-key` | `client.threads.search({ query })` | [mdx](https://www.socialfetch.dev/docs/api/v1/threads/search/get.mdx) | | GET | `/v1/threads/posts` | Get Threads post | `x-api-key` | `client.threads.getPost({ url })` | [mdx](https://www.socialfetch.dev/docs/api/v1/threads/posts/get.mdx) | | GET | `/v1/threads/users/search` | Search Threads users | `x-api-key` | `client.threads.searchUsers({ query })` | [mdx](https://www.socialfetch.dev/docs/api/v1/threads/users/search/get.mdx) | | GET | `/v1/reddit/subreddits` | Get Reddit subreddit | `x-api-key` | `client.reddit.getSubreddit({ subreddit: "AbsoluteUnits" })` | [mdx](https://www.socialfetch.dev/docs/api/v1/reddit/subreddits/get.mdx) | | GET | `/v1/reddit/search` | Search Reddit posts | `x-api-key` | `client.reddit.search({ query: "webscraping" })` | [mdx](https://www.socialfetch.dev/docs/api/v1/reddit/search/get.mdx) | | GET | `/v1/rumble/search` | Search Rumble | `x-api-key` | `client.rumble.search({ query: "breaking news" })` | [mdx](https://www.socialfetch.dev/docs/api/v1/rumble/search/get.mdx) | | GET | `/v1/rumble/channels/videos` | List Rumble channel videos | `x-api-key` | `client.rumble.listChannelVideos({ url: "https://rumble.com/c/StevenCrowder" })` | [mdx](https://www.socialfetch.dev/docs/api/v1/rumble/channels/videos/get.mdx) | | GET | `/v1/rumble/videos` | Get Rumble video | `x-api-key` | `client.rumble.getVideo({ url: "https://rumble.com/v79xhhm-discovery-why-glenn-wants-israel-to-sue-the-new-york-times.html" })` | [mdx](https://www.socialfetch.dev/docs/api/v1/rumble/videos/get.mdx) | | GET | `/v1/rumble/videos/transcript` | Get Rumble video transcript | `x-api-key` | `client.rumble.getVideoTranscript({ url: "https://rumble.com/v79xhhm-discovery-why-glenn-wants-israel-to-sue-the-new-york-times.html" })` | [mdx](https://www.socialfetch.dev/docs/api/v1/rumble/videos/transcript/get.mdx) | | GET | `/v1/rumble/videos/comments` | List Rumble video comments | `x-api-key` | `client.rumble.listVideoComments({ url: "https://rumble.com/v792vns-the-splc-is-a-deceitful-and-poisonous-group.-but-was-their-behavior-crimina.html" })` | [mdx](https://www.socialfetch.dev/docs/api/v1/rumble/videos/comments/get.mdx) | | GET | `/v1/reddit/subreddits/{subreddit}/posts` | List Reddit subreddit posts | `x-api-key` | `client.reddit.listSubredditPosts({ subreddit: "AskReddit", sort: "hot" })` | [mdx](https://www.socialfetch.dev/docs/api/v1/reddit/subreddits/subreddit/posts/get.mdx) | | GET | `/v1/reddit/subreddits/search` | Search Reddit subreddit | `x-api-key` | `client.reddit.searchSubreddit({ subreddit: "Fitness", query: "push ups" })` | [mdx](https://www.socialfetch.dev/docs/api/v1/reddit/subreddits/search/get.mdx) | | GET | `/v1/reddit/posts/comments` | List Reddit post comments | `x-api-key` | `client.reddit.listPostComments({ url: "https://www.reddit.com/r/gadgets/comments/1tgimff/example/" })` | [mdx](https://www.socialfetch.dev/docs/api/v1/reddit/posts/comments/get.mdx) | | GET | `/v1/github/profiles/{handle}` | Get GitHub profile | `x-api-key` | `client.github.getProfile({ handle })` | [mdx](https://www.socialfetch.dev/docs/api/v1/github/profiles/handle/get.mdx) | | GET | `/v1/github/profiles/{handle}/repositories` | List GitHub profile repositories | `x-api-key` | `client.github.listProfileRepositories({ handle: 'torvalds' })` | [mdx](https://www.socialfetch.dev/docs/api/v1/github/profiles/handle/repositories/get.mdx) | | GET | `/v1/github/repositories` | Get GitHub repository | `x-api-key` | `client.github.getRepository({ url: 'https://github.com/torvalds/linux' })` | [mdx](https://www.socialfetch.dev/docs/api/v1/github/repositories/get.mdx) | | GET | `/v1/github/profiles/{handle}/activity` | List GitHub profile activity | `x-api-key` | `client.github.listProfileActivity({ handle: 'torvalds' })` | [mdx](https://www.socialfetch.dev/docs/api/v1/github/profiles/handle/activity/get.mdx) | | GET | `/v1/github/profiles/{handle}/followers` | List GitHub profile followers | `x-api-key` | `client.github.listProfileFollowers({ handle: 'torvalds' })` | [mdx](https://www.socialfetch.dev/docs/api/v1/github/profiles/handle/followers/get.mdx) | | GET | `/v1/github/profiles/{handle}/following` | List GitHub profile following | `x-api-key` | `client.github.listProfileFollowing({ handle: 'torvalds' })` | [mdx](https://www.socialfetch.dev/docs/api/v1/github/profiles/handle/following/get.mdx) | | GET | `/v1/github/profiles/{handle}/contributions` | Get GitHub contribution graph | `x-api-key` | `client.github.getProfileContributions({ handle: 'torvalds' })` | [mdx](https://www.socialfetch.dev/docs/api/v1/github/profiles/handle/contributions/get.mdx) | | GET | `/v1/github/trending/repositories` | List trending GitHub repositories | `x-api-key` | `client.github.listTrendingRepositories({ language: 'javascript', since: 'daily' })` | [mdx](https://www.socialfetch.dev/docs/api/v1/github/trending/repositories/get.mdx) | | GET | `/v1/github/trending/developers` | List trending GitHub developers | `x-api-key` | `client.github.listTrendingDevelopers({ language: 'javascript', since: 'daily' })` | [mdx](https://www.socialfetch.dev/docs/api/v1/github/trending/developers/get.mdx) | | GET | `/v1/spotify/artist` | Get Spotify artist | `x-api-key` | `client.spotify.getArtist({ artistId: "1uNFoZAHBGtllmzznpCI3s" })` | [mdx](https://www.socialfetch.dev/docs/api/v1/spotify/artist/get.mdx) | | GET | `/v1/spotify/album` | Get Spotify album | `x-api-key` | `client.spotify.getAlbum({ albumId: "0pgrg7phBbnwGJ2HBEl9EG" })` | [mdx](https://www.socialfetch.dev/docs/api/v1/spotify/album/get.mdx) | | GET | `/v1/spotify/track` | Get Spotify track | `x-api-key` | `client.spotify.getTrack({ trackId: "1ITJflybJsfarsUtiBvkfK" })` | [mdx](https://www.socialfetch.dev/docs/api/v1/spotify/track/get.mdx) | | GET | `/v1/web/search` | Search the web | `x-api-key` | `client.web.search({ query: "Social media scraping API", region: "US" })` | [mdx](https://www.socialfetch.dev/docs/api/v1/web/search/get.mdx) | | GET | `/v1/web/markdown` | Generate web page markdown | `x-api-key` | `client.web.getMarkdown({ url: "https://www.socialfetch.dev/" })` | [mdx](https://www.socialfetch.dev/docs/api/v1/web/markdown/get.mdx) | | GET | `/v1/web/ask` | Ask a question about a web page | `x-api-key` | `client.web.ask({ url: "https://www.socialfetch.dev/", q: "What is this page about?" })` | [mdx](https://www.socialfetch.dev/docs/api/v1/web/ask/get.mdx) | | GET | `/v1/web/html` | Generate web page HTML | `x-api-key` | `client.web.getHtml({ url: "https://www.socialfetch.dev/" })` | [mdx](https://www.socialfetch.dev/docs/api/v1/web/html/get.mdx) | | GET | `/v1/web/crawl` | Crawl web pages | `x-api-key` | `client.web.crawl({ urls: ["https://www.socialfetch.dev/"] })` | [mdx](https://www.socialfetch.dev/docs/api/v1/web/crawl/get.mdx) | ### TikTok - **GET `/v1/tiktok/profiles/{handle}`** — Get TikTok profile - **Auth:** requires `x-api-key` - **Credits (from OpenAPI extension):** 1 credit per successful request. - **Human docs:** [/docs/api/v1/tiktok/profiles/handle/get](https://www.socialfetch.dev/docs/api/v1/tiktok/profiles/handle/get) - **Markdown docs:** [/docs/api/v1/tiktok/profiles/handle/get.mdx](https://www.socialfetch.dev/docs/api/v1/tiktok/profiles/handle/get.mdx) - **SDK:** `client.tiktok.getProfile({ handle })` - **Parameters:** `handle` - **Accepted identifiers:** handle (path) - **Outcome field:** `data.lookupStatus` with values `found`, `private`, `not_found` - **OpenAPI:** match `GET /v1/tiktok/profiles/{handle}` in [https://www.socialfetch.dev/openapi.json](https://www.socialfetch.dev/openapi.json) - **operationId:** `tiktok.profile.get` - **GET `/v1/tiktok/profiles/{handle}/videos`** — List TikTok profile videos - **Auth:** requires `x-api-key` - **Credits (from OpenAPI extension):** 1 credit per successful request. - **Human docs:** [/docs/api/v1/tiktok/profiles/handle/videos/get](https://www.socialfetch.dev/docs/api/v1/tiktok/profiles/handle/videos/get) - **Markdown docs:** [/docs/api/v1/tiktok/profiles/handle/videos/get.mdx](https://www.socialfetch.dev/docs/api/v1/tiktok/profiles/handle/videos/get.mdx) - **SDK:** `client.tiktok.getProfileVideos({ handle, sortBy?, cursor?, userId?, region?, trim? })` - **Parameters:** `handle`, `sortBy`, `cursor`, `userId`, `region`, `trim` - **Accepted identifiers:** handle (path), userId (query) - **Pagination:** cursor via `cursor`, next cursor: `data.page.nextCursor`, has more: `data.page.hasMore` - **Ordering:** Supported sort options: latest, popular. - **Empty results:** An empty `data.videos` array can mean no videos in the selected sort window, a private profile, or other cases—there is no `lookupStatus` field on this route. - **Disambiguation:** Call `GET /v1/tiktok/profiles/{handle}` when you need explicit `lookupStatus` including `private` or `not_found` before interpreting an empty video list. - **OpenAPI:** match `GET /v1/tiktok/profiles/{handle}/videos` in [https://www.socialfetch.dev/openapi.json](https://www.socialfetch.dev/openapi.json) - **operationId:** `tiktok.profile.videos.list` - **GET `/v1/tiktok/profiles/{handle}/followers`** — List TikTok profile followers - **Auth:** requires `x-api-key` - **Credits (from OpenAPI extension):** 1 credit per successful request. - **Human docs:** [/docs/api/v1/tiktok/profiles/handle/followers/get](https://www.socialfetch.dev/docs/api/v1/tiktok/profiles/handle/followers/get) - **Markdown docs:** [/docs/api/v1/tiktok/profiles/handle/followers/get.mdx](https://www.socialfetch.dev/docs/api/v1/tiktok/profiles/handle/followers/get.mdx) - **SDK:** `client.tiktok.getProfileFollowers({ handle, cursor?, userId?, trim? })` - **Parameters:** `handle`, `cursor`, `userId`, `trim` - **Accepted identifiers:** handle (path), userId (query) - **Pagination:** cursor via `cursor`, next cursor: `data.page.nextCursor`, has more: `data.page.hasMore` - **Outcome field:** `data.lookupStatus` with values `found`, `hidden`, `private`, `not_found` - **Empty results:** An empty `data.followers` array with `lookupStatus: "found"` means the profile resolved but this page returned no followers (for example a zero-follower account). - **Disambiguation:** Use `lookupStatus` to distinguish found, hidden, private, and not_found. Call `GET /v1/tiktok/profiles/{handle}` when you need full profile details. - **OpenAPI:** match `GET /v1/tiktok/profiles/{handle}/followers` in [https://www.socialfetch.dev/openapi.json](https://www.socialfetch.dev/openapi.json) - **operationId:** `tiktok.profile.followers.list` - **GET `/v1/tiktok/profiles/{handle}/following`** — List TikTok profile following - **Auth:** requires `x-api-key` - **Credits (from OpenAPI extension):** 1 credit per successful request. - **Human docs:** [/docs/api/v1/tiktok/profiles/handle/following/get](https://www.socialfetch.dev/docs/api/v1/tiktok/profiles/handle/following/get) - **Markdown docs:** [/docs/api/v1/tiktok/profiles/handle/following/get.mdx](https://www.socialfetch.dev/docs/api/v1/tiktok/profiles/handle/following/get.mdx) - **SDK:** `client.tiktok.getProfileFollowing({ handle, cursor?, trim? })` - **Parameters:** `handle`, `cursor`, `trim` - **Accepted identifiers:** handle (path) - **Pagination:** cursor via `cursor`, next cursor: `data.page.nextCursor`, has more: `data.page.hasMore` - **Outcome field:** `data.lookupStatus` with values `found`, `hidden`, `private`, `not_found` - **Empty results:** An empty `data.accounts` array with `lookupStatus: "found"` means the profile resolved but this page returned no accounts (for example the profile follows nobody). - **Disambiguation:** Use `lookupStatus` to distinguish found, hidden, private, and not_found. Call `GET /v1/tiktok/profiles/{handle}` when you need full profile details. - **OpenAPI:** match `GET /v1/tiktok/profiles/{handle}/following` in [https://www.socialfetch.dev/openapi.json](https://www.socialfetch.dev/openapi.json) - **operationId:** `tiktok.profile.following.list` - **GET `/v1/tiktok/profiles/{handle}/region`** — Get TikTok profile region - **Auth:** requires `x-api-key` - **Credits (from OpenAPI extension):** 1 credit per successful request. - **Human docs:** [/docs/api/v1/tiktok/profiles/handle/region/get](https://www.socialfetch.dev/docs/api/v1/tiktok/profiles/handle/region/get) - **Markdown docs:** [/docs/api/v1/tiktok/profiles/handle/region/get.mdx](https://www.socialfetch.dev/docs/api/v1/tiktok/profiles/handle/region/get.mdx) - **SDK:** `client.tiktok.getProfileRegion({ handle })` - **Parameters:** `handle` - **Accepted identifiers:** handle (path) - **Outcome field:** `data.lookupStatus` with values `found`, `not_found` - **OpenAPI:** match `GET /v1/tiktok/profiles/{handle}/region` in [https://www.socialfetch.dev/openapi.json](https://www.socialfetch.dev/openapi.json) - **operationId:** `tiktok.profile.region.get` - **GET `/v1/tiktok/profiles/{handle}/live`** — Get TikTok live stream - **Auth:** requires `x-api-key` - **Credits (from OpenAPI extension):** 1 credit per successful request. - **Human docs:** [/docs/api/v1/tiktok/profiles/handle/live/get](https://www.socialfetch.dev/docs/api/v1/tiktok/profiles/handle/live/get) - **Markdown docs:** [/docs/api/v1/tiktok/profiles/handle/live/get.mdx](https://www.socialfetch.dev/docs/api/v1/tiktok/profiles/handle/live/get.mdx) - **SDK:** `client.tiktok.getProfileLive({ handle })` - **Parameters:** `handle` - **Accepted identifiers:** handle (path) - **Outcome field:** `data.lookupStatus` with values `found`, `not_found` - **OpenAPI:** match `GET /v1/tiktok/profiles/{handle}/live` in [https://www.socialfetch.dev/openapi.json](https://www.socialfetch.dev/openapi.json) - **operationId:** `tiktok.profile.live.check` - **GET `/v1/tiktok/users/search`** — Search TikTok users - **Auth:** requires `x-api-key` - **Credits (from OpenAPI extension):** 1 credit per successful request. - **Human docs:** [/docs/api/v1/tiktok/users/search/get](https://www.socialfetch.dev/docs/api/v1/tiktok/users/search/get) - **Markdown docs:** [/docs/api/v1/tiktok/users/search/get.mdx](https://www.socialfetch.dev/docs/api/v1/tiktok/users/search/get.mdx) - **SDK:** `client.tiktok.searchUsers({ query, cursor? })` - **Parameters:** `query`, `cursor` - **Accepted identifiers:** none documented - **Pagination:** cursor via `cursor`, next cursor: `data.page.nextCursor`, has more: `data.page.hasMore` - **OpenAPI:** match `GET /v1/tiktok/users/search` in [https://www.socialfetch.dev/openapi.json](https://www.socialfetch.dev/openapi.json) - **operationId:** `tiktok.users.search` - **GET `/v1/tiktok/search`** — Search TikTok videos - **Auth:** requires `x-api-key` - **Credits (from OpenAPI extension):** 1 credit per successful request. - **Human docs:** [/docs/api/v1/tiktok/search/get](https://www.socialfetch.dev/docs/api/v1/tiktok/search/get) - **Markdown docs:** [/docs/api/v1/tiktok/search/get.mdx](https://www.socialfetch.dev/docs/api/v1/tiktok/search/get.mdx) - **SDK:** `client.tiktok.searchVideos({ query, datePosted?, sortBy?, region?, cursor?, trim? })` - **Parameters:** `query`, `datePosted`, `sortBy`, `region`, `cursor`, `trim` - **Accepted identifiers:** none documented - **Pagination:** cursor via `cursor`, next cursor: `data.page.nextCursor`, has more: `data.page.hasMore` - **Ordering:** Supported sort options: relevance, most-liked, date-posted. - **OpenAPI:** match `GET /v1/tiktok/search` in [https://www.socialfetch.dev/openapi.json](https://www.socialfetch.dev/openapi.json) - **operationId:** `tiktok.search.videos.list` - **GET `/v1/tiktok/search/hashtags`** — Search TikTok by hashtag - **Auth:** requires `x-api-key` - **Credits (from OpenAPI extension):** 1 credit per successful request. - **Human docs:** [/docs/api/v1/tiktok/search/hashtags/get](https://www.socialfetch.dev/docs/api/v1/tiktok/search/hashtags/get) - **Markdown docs:** [/docs/api/v1/tiktok/search/hashtags/get.mdx](https://www.socialfetch.dev/docs/api/v1/tiktok/search/hashtags/get.mdx) - **SDK:** `client.tiktok.searchHashtags({ hashtag, region?, cursor?, trim? })` - **Parameters:** `hashtag`, `region`, `cursor`, `trim` - **Accepted identifiers:** none documented - **Pagination:** cursor via `cursor`, next cursor: `data.page.nextCursor`, has more: `data.page.hasMore` - **Disambiguation:** Use `data.page.hasMore` and `data.page.nextCursor` for pagination. Repeat the same hashtag and filters when requesting the next page. - **OpenAPI:** match `GET /v1/tiktok/search/hashtags` in [https://www.socialfetch.dev/openapi.json](https://www.socialfetch.dev/openapi.json) - **operationId:** `tiktok.search.hashtag.list` - **GET `/v1/tiktok/videos`** — Get TikTok video - **Auth:** requires `x-api-key` - **Credits (from OpenAPI extension):** 1 credit base, +10 with `downloadMedia`. Up to 11 credits max. - **Human docs:** [/docs/api/v1/tiktok/videos/get](https://www.socialfetch.dev/docs/api/v1/tiktok/videos/get) - **Markdown docs:** [/docs/api/v1/tiktok/videos/get.mdx](https://www.socialfetch.dev/docs/api/v1/tiktok/videos/get.mdx) - **SDK:** `client.tiktok.getVideo({ url, region?, trim?, downloadMedia? })` - **Parameters:** `url`, `region`, `trim`, `downloadMedia`, `getTranscript` - **Accepted identifiers:** url (query) - **Outcome field:** `data.lookupStatus` with values `found`, `not_found` - **Media download:** supported via `downloadMedia=true` - **OpenAPI:** match `GET /v1/tiktok/videos` in [https://www.socialfetch.dev/openapi.json](https://www.socialfetch.dev/openapi.json) - **operationId:** `tiktok.video.get` - **GET `/v1/tiktok/videos/comments`** — List TikTok video comments - **Auth:** requires `x-api-key` - **Credits (from OpenAPI extension):** 1 credit per successful request. - **Human docs:** [/docs/api/v1/tiktok/videos/comments/get](https://www.socialfetch.dev/docs/api/v1/tiktok/videos/comments/get) - **Markdown docs:** [/docs/api/v1/tiktok/videos/comments/get.mdx](https://www.socialfetch.dev/docs/api/v1/tiktok/videos/comments/get.mdx) - **SDK:** `client.tiktok.getVideoComments({ url, cursor?, trim? })` - **Parameters:** `url`, `cursor`, `trim` - **Accepted identifiers:** url (query) - **Pagination:** cursor via `cursor`, next cursor: `data.page.nextCursor`, has more: `data.page.hasMore` - **Outcome field:** `data.lookupStatus` with values `found`, `not_found` - **OpenAPI:** match `GET /v1/tiktok/videos/comments` in [https://www.socialfetch.dev/openapi.json](https://www.socialfetch.dev/openapi.json) - **operationId:** `tiktok.video.comments.list` - **GET `/v1/tiktok/videos/transcript`** — Get TikTok video transcript - **Auth:** requires `x-api-key` - **Credits (from OpenAPI extension):** 1 credit base, +10 with `useAiFallback`. Up to 11 credits max. - **Human docs:** [/docs/api/v1/tiktok/videos/transcript/get](https://www.socialfetch.dev/docs/api/v1/tiktok/videos/transcript/get) - **Markdown docs:** [/docs/api/v1/tiktok/videos/transcript/get.mdx](https://www.socialfetch.dev/docs/api/v1/tiktok/videos/transcript/get.mdx) - **SDK:** `client.tiktok.getVideoTranscript({ url, language?, useAiFallback? })` - **Parameters:** `url`, `language`, `useAiFallback` - **Accepted identifiers:** url (query) - **Outcome field:** `data.lookupStatus` with values `found`, `not_found` - **OpenAPI:** match `GET /v1/tiktok/videos/transcript` in [https://www.socialfetch.dev/openapi.json](https://www.socialfetch.dev/openapi.json) - **operationId:** `tiktok.video.transcript.get` - **GET `/v1/tiktok/feed/trending`** — List TikTok trending feed - **Auth:** requires `x-api-key` - **Credits (from OpenAPI extension):** 1 credit per successful request. - **Human docs:** [/docs/api/v1/tiktok/feed/trending/get](https://www.socialfetch.dev/docs/api/v1/tiktok/feed/trending/get) - **Markdown docs:** [/docs/api/v1/tiktok/feed/trending/get.mdx](https://www.socialfetch.dev/docs/api/v1/tiktok/feed/trending/get.mdx) - **SDK:** `client.tiktok.listTrendingFeed({ region, trim? })` - **Parameters:** `region`, `trim` - **Accepted identifiers:** none documented - **Empty results:** An empty `data.items` array means no trending posts were available for that request. - **Disambiguation:** Repeat the same request for a fresh trending batch. New and overlapping posts are both possible. No cursor or page parameters. - **OpenAPI:** match `GET /v1/tiktok/feed/trending` in [https://www.socialfetch.dev/openapi.json](https://www.socialfetch.dev/openapi.json) - **operationId:** `tiktok.feed.trending.list` - **GET `/v1/tiktok/shop/products/search`** — Search TikTok Shop products - **Auth:** requires `x-api-key` - **Credits (from OpenAPI extension):** 1 credit per successful request. - **Human docs:** [/docs/api/v1/tiktok/shop/products/search/get](https://www.socialfetch.dev/docs/api/v1/tiktok/shop/products/search/get) - **Markdown docs:** [/docs/api/v1/tiktok/shop/products/search/get.mdx](https://www.socialfetch.dev/docs/api/v1/tiktok/shop/products/search/get.mdx) - **SDK:** `client.tiktok.searchShopProducts({ query, page?, region? })` - **Parameters:** `query`, `page`, `region` - **Accepted identifiers:** none documented - **OpenAPI:** match `GET /v1/tiktok/shop/products/search` in [https://www.socialfetch.dev/openapi.json](https://www.socialfetch.dev/openapi.json) - **operationId:** `tiktok.shop.products.search` - **GET `/v1/tiktok/shop/products`** — List TikTok Shop store products - **Auth:** requires `x-api-key` - **Credits (from OpenAPI extension):** 1 credit per successful request. - **Human docs:** [/docs/api/v1/tiktok/shop/products/get](https://www.socialfetch.dev/docs/api/v1/tiktok/shop/products/get) - **Markdown docs:** [/docs/api/v1/tiktok/shop/products/get.mdx](https://www.socialfetch.dev/docs/api/v1/tiktok/shop/products/get.mdx) - **SDK:** `client.tiktok.listShopProducts({ url, cursor?, region? })` - **Parameters:** `url`, `cursor`, `region` - **Accepted identifiers:** url (query) - **Pagination:** cursor via `cursor`, next cursor: `data.page.nextCursor`, has more: `data.page.hasMore` - **Outcome field:** `data.lookupStatus` with values `found`, `not_found` - **OpenAPI:** match `GET /v1/tiktok/shop/products` in [https://www.socialfetch.dev/openapi.json](https://www.socialfetch.dev/openapi.json) - **operationId:** `tiktok.shop.products.list` - **GET `/v1/tiktok/products`** — Get TikTok Shop product - **Auth:** requires `x-api-key` - **Credits (from OpenAPI extension):** 1 credit per successful request. - **Human docs:** [/docs/api/v1/tiktok/products/get](https://www.socialfetch.dev/docs/api/v1/tiktok/products/get) - **Markdown docs:** [/docs/api/v1/tiktok/products/get.mdx](https://www.socialfetch.dev/docs/api/v1/tiktok/products/get.mdx) - **SDK:** `client.tiktok.getProduct({ url, region? })` - **Parameters:** `url`, `region` - **Accepted identifiers:** url (query) - **OpenAPI:** match `GET /v1/tiktok/products` in [https://www.socialfetch.dev/openapi.json](https://www.socialfetch.dev/openapi.json) - **operationId:** `tiktok.product.get` - **GET `/v1/tiktok/products/reviews`** — List TikTok Shop product reviews - **Auth:** requires `x-api-key` - **Credits (from OpenAPI extension):** 1 credit per successful request. - **Human docs:** [/docs/api/v1/tiktok/products/reviews/get](https://www.socialfetch.dev/docs/api/v1/tiktok/products/reviews/get) - **Markdown docs:** [/docs/api/v1/tiktok/products/reviews/get.mdx](https://www.socialfetch.dev/docs/api/v1/tiktok/products/reviews/get.mdx) - **SDK:** `client.tiktok.getProductReviews({ url?, productId?, region?, page? })` - **Parameters:** `url`, `productId`, `region`, `page` - **Accepted identifiers:** url (query) - **Outcome field:** `data.lookupStatus` with values `found`, `not_found` - **OpenAPI:** match `GET /v1/tiktok/products/reviews` in [https://www.socialfetch.dev/openapi.json](https://www.socialfetch.dev/openapi.json) - **operationId:** `tiktok.product.reviews.list` - **GET `/v1/tiktok/profiles/{handle}/showcase-products`** — List TikTok profile showcase products - **Auth:** requires `x-api-key` - **Credits (from OpenAPI extension):** 1 credit per successful request. - **Human docs:** [/docs/api/v1/tiktok/profiles/handle/showcase-products/get](https://www.socialfetch.dev/docs/api/v1/tiktok/profiles/handle/showcase-products/get) - **Markdown docs:** [/docs/api/v1/tiktok/profiles/handle/showcase-products/get.mdx](https://www.socialfetch.dev/docs/api/v1/tiktok/profiles/handle/showcase-products/get.mdx) - **SDK:** `client.tiktok.getProfileShowcaseProducts({ handle, cursor?, region? })` - **Parameters:** `handle`, `cursor`, `region` - **Accepted identifiers:** handle (path) - **Pagination:** cursor via `cursor`, next cursor: `data.page.nextCursor`, has more: `data.page.hasMore` - **Empty results:** An empty `data.products` array can mean no showcased products, a private profile, or other cases—there is no `lookupStatus` field on this route. - **Disambiguation:** Call `GET /v1/tiktok/profiles/{handle}` when you need explicit profile lookup status before interpreting an empty showcase list. - **OpenAPI:** match `GET /v1/tiktok/profiles/{handle}/showcase-products` in [https://www.socialfetch.dev/openapi.json](https://www.socialfetch.dev/openapi.json) - **operationId:** `tiktok.profile.showcaseProducts.list` ### Facebook - **GET `/v1/facebook/profiles`** — Get Facebook profile - **Auth:** requires `x-api-key` - **Credits (from OpenAPI extension):** 1 credit per successful request. - **Human docs:** [/docs/api/v1/facebook/profiles/get](https://www.socialfetch.dev/docs/api/v1/facebook/profiles/get) - **Markdown docs:** [/docs/api/v1/facebook/profiles/get.mdx](https://www.socialfetch.dev/docs/api/v1/facebook/profiles/get.mdx) - **SDK:** `client.facebook.getProfile({ url, includeBusinessHours? })` - **Parameters:** `url`, `includeBusinessHours` - **Accepted identifiers:** url (query) - **Outcome field:** `data.lookupStatus` with values `found`, `private`, `not_found` - **OpenAPI:** match `GET /v1/facebook/profiles` in [https://www.socialfetch.dev/openapi.json](https://www.socialfetch.dev/openapi.json) - **operationId:** `facebook.profile.get` - **GET `/v1/facebook/profiles/posts`** — List Facebook profile posts - **Auth:** requires `x-api-key` - **Credits (from OpenAPI extension):** 1 credit per successful request. - **Human docs:** [/docs/api/v1/facebook/profiles/posts/get](https://www.socialfetch.dev/docs/api/v1/facebook/profiles/posts/get) - **Markdown docs:** [/docs/api/v1/facebook/profiles/posts/get.mdx](https://www.socialfetch.dev/docs/api/v1/facebook/profiles/posts/get.mdx) - **SDK:** `client.facebook.getProfilePosts({ url?, pageId?, cursor? })` - **Parameters:** `url`, `pageId`, `cursor` - **Accepted identifiers:** url (query) - **Pagination:** cursor via `cursor`, next cursor: `data.page.nextCursor`, has more: `data.page.hasMore` - **Empty results:** An empty `data.posts` page with `hasMore: false` can represent no public posts, restricted visibility, or an unresolvable URL or id—there is no `lookupStatus` field on this route. - **Disambiguation:** Call `GET /v1/facebook/profiles` first when you need `found` / `private` / `not_found` before interpreting an empty posts page. - **OpenAPI:** match `GET /v1/facebook/profiles/posts` in [https://www.socialfetch.dev/openapi.json](https://www.socialfetch.dev/openapi.json) - **operationId:** `facebook.profile.posts.list` - **GET `/v1/facebook/profiles/reels`** — List Facebook profile reels - **Auth:** requires `x-api-key` - **Credits (from OpenAPI extension):** 1 credit per successful request. - **Human docs:** [/docs/api/v1/facebook/profiles/reels/get](https://www.socialfetch.dev/docs/api/v1/facebook/profiles/reels/get) - **Markdown docs:** [/docs/api/v1/facebook/profiles/reels/get.mdx](https://www.socialfetch.dev/docs/api/v1/facebook/profiles/reels/get.mdx) - **SDK:** `client.facebook.getProfileReels({ url, cursor? })` - **Parameters:** `url`, `cursor` - **Accepted identifiers:** url (query) - **Pagination:** cursor via `cursor`, next cursor: `data.page.nextCursor`, has more: `data.page.hasMore` - **Outcome field:** `data.lookupStatus` with values `found`, `not_found` - **OpenAPI:** match `GET /v1/facebook/profiles/reels` in [https://www.socialfetch.dev/openapi.json](https://www.socialfetch.dev/openapi.json) - **operationId:** `facebook.profile.reels.list` - **GET `/v1/facebook/profiles/photos`** — List Facebook profile photos - **Auth:** requires `x-api-key` - **Credits (from OpenAPI extension):** 1 credit per successful request. - **Human docs:** [/docs/api/v1/facebook/profiles/photos/get](https://www.socialfetch.dev/docs/api/v1/facebook/profiles/photos/get) - **Markdown docs:** [/docs/api/v1/facebook/profiles/photos/get.mdx](https://www.socialfetch.dev/docs/api/v1/facebook/profiles/photos/get.mdx) - **SDK:** `client.facebook.getProfilePhotos({ url, cursor? })` - **Parameters:** `url`, `cursor` - **Accepted identifiers:** url (query) - **Pagination:** cursor via `cursor`, next cursor: `data.page.nextCursor`, has more: `data.page.hasMore` - **Outcome field:** `data.lookupStatus` with values `found`, `not_found` - **OpenAPI:** match `GET /v1/facebook/profiles/photos` in [https://www.socialfetch.dev/openapi.json](https://www.socialfetch.dev/openapi.json) - **operationId:** `facebook.profile.photos.list` - **GET `/v1/facebook/posts`** — Get Facebook post or reel - **Auth:** requires `x-api-key` - **Credits (from OpenAPI extension):** 1 credit per successful request. - **Human docs:** [/docs/api/v1/facebook/posts/get](https://www.socialfetch.dev/docs/api/v1/facebook/posts/get) - **Markdown docs:** [/docs/api/v1/facebook/posts/get.mdx](https://www.socialfetch.dev/docs/api/v1/facebook/posts/get.mdx) - **SDK:** `client.facebook.getPost({ url, includeComments?, includeTranscript? })` - **Parameters:** `url`, `includeComments`, `includeTranscript` - **Accepted identifiers:** url (query) - **Outcome field:** `data.lookupStatus` with values `found`, `not_found` - **OpenAPI:** match `GET /v1/facebook/posts` in [https://www.socialfetch.dev/openapi.json](https://www.socialfetch.dev/openapi.json) - **operationId:** `facebook.post.get` - **GET `/v1/facebook/posts/comments`** — List Facebook post or reel comments - **Auth:** requires `x-api-key` - **Credits (from OpenAPI extension):** 1 credit per successful request. - **Human docs:** [/docs/api/v1/facebook/posts/comments/get](https://www.socialfetch.dev/docs/api/v1/facebook/posts/comments/get) - **Markdown docs:** [/docs/api/v1/facebook/posts/comments/get.mdx](https://www.socialfetch.dev/docs/api/v1/facebook/posts/comments/get.mdx) - **SDK:** `client.facebook.getPostComments({ url?, cursor?, feedbackId? })` - **Parameters:** `url`, `cursor`, `feedbackId` - **Accepted identifiers:** url (query) - **Pagination:** cursor via `cursor`, next cursor: `data.page.nextCursor`, has more: `data.page.hasMore` - **Outcome field:** `data.lookupStatus` with values `found`, `not_found` - **OpenAPI:** match `GET /v1/facebook/posts/comments` in [https://www.socialfetch.dev/openapi.json](https://www.socialfetch.dev/openapi.json) - **operationId:** `facebook.post.comments.list` - **GET `/v1/facebook/posts/transcript`** — Get Facebook post transcript - **Auth:** requires `x-api-key` - **Credits (from OpenAPI extension):** 1 credit per successful request. - **Human docs:** [/docs/api/v1/facebook/posts/transcript/get](https://www.socialfetch.dev/docs/api/v1/facebook/posts/transcript/get) - **Markdown docs:** [/docs/api/v1/facebook/posts/transcript/get.mdx](https://www.socialfetch.dev/docs/api/v1/facebook/posts/transcript/get.mdx) - **SDK:** `client.facebook.getPostTranscript({ url })` - **Parameters:** `url` - **Accepted identifiers:** url (query) - **Outcome field:** `data.lookupStatus` with values `found`, `not_found`, `lookup_failed` - **OpenAPI:** match `GET /v1/facebook/posts/transcript` in [https://www.socialfetch.dev/openapi.json](https://www.socialfetch.dev/openapi.json) - **operationId:** `facebook.post.transcript.get` - **GET `/v1/facebook/groups/posts`** — List Facebook group posts - **Auth:** requires `x-api-key` - **Credits (from OpenAPI extension):** 1 credit per successful request. - **Human docs:** [/docs/api/v1/facebook/groups/posts/get](https://www.socialfetch.dev/docs/api/v1/facebook/groups/posts/get) - **Markdown docs:** [/docs/api/v1/facebook/groups/posts/get.mdx](https://www.socialfetch.dev/docs/api/v1/facebook/groups/posts/get.mdx) - **SDK:** `client.facebook.listGroupPosts({ url, sortBy?, cursor? })` - **Parameters:** `url`, `sortBy`, `cursor` - **Accepted identifiers:** url (query) - **Pagination:** cursor via `cursor`, next cursor: `data.page.nextCursor`, has more: `data.page.hasMore` - **Ordering:** Supported sort options: top, recentActivity, chronological, chronologicalListings. - **Outcome field:** `data.lookupStatus` with values `found`, `not_found` - **OpenAPI:** match `GET /v1/facebook/groups/posts` in [https://www.socialfetch.dev/openapi.json](https://www.socialfetch.dev/openapi.json) - **operationId:** `facebook.group.posts.list` - **GET `/v1/facebook/marketplace/items`** — Get Facebook Marketplace item - **Auth:** requires `x-api-key` - **Credits (from OpenAPI extension):** 1 credit per successful request. - **Human docs:** [/docs/api/v1/facebook/marketplace/items/get](https://www.socialfetch.dev/docs/api/v1/facebook/marketplace/items/get) - **Markdown docs:** [/docs/api/v1/facebook/marketplace/items/get.mdx](https://www.socialfetch.dev/docs/api/v1/facebook/marketplace/items/get.mdx) - **SDK:** `client.facebook.getMarketplaceItem({ itemId?, url? })` - **Parameters:** `itemId`, `url` - **Accepted identifiers:** url (query) - **Outcome field:** `data.lookupStatus` with values `found`, `not_found` - **OpenAPI:** match `GET /v1/facebook/marketplace/items` in [https://www.socialfetch.dev/openapi.json](https://www.socialfetch.dev/openapi.json) - **operationId:** `facebook.marketplace.item.get` - **GET `/v1/facebook/marketplace/locations/search`** — Search Facebook Marketplace locations - **Auth:** requires `x-api-key` - **Credits (from OpenAPI extension):** 1 credit per successful request. - **Human docs:** [/docs/api/v1/facebook/marketplace/locations/search/get](https://www.socialfetch.dev/docs/api/v1/facebook/marketplace/locations/search/get) - **Markdown docs:** [/docs/api/v1/facebook/marketplace/locations/search/get.mdx](https://www.socialfetch.dev/docs/api/v1/facebook/marketplace/locations/search/get.mdx) - **SDK:** `client.facebook.searchMarketplaceLocations({ query })` - **Parameters:** `query` - **Accepted identifiers:** none documented - **OpenAPI:** match `GET /v1/facebook/marketplace/locations/search` in [https://www.socialfetch.dev/openapi.json](https://www.socialfetch.dev/openapi.json) - **operationId:** `facebook.marketplace.locations.search` - **GET `/v1/facebook/marketplace/search`** — Search Facebook Marketplace listings - **Auth:** requires `x-api-key` - **Credits (from OpenAPI extension):** 1 credit per successful request. - **Human docs:** [/docs/api/v1/facebook/marketplace/search/get](https://www.socialfetch.dev/docs/api/v1/facebook/marketplace/search/get) - **Markdown docs:** [/docs/api/v1/facebook/marketplace/search/get.mdx](https://www.socialfetch.dev/docs/api/v1/facebook/marketplace/search/get.mdx) - **SDK:** `client.facebook.searchMarketplace({ query, lat, lng, sortBy?, deliveryMethod?, cursor?, ... })` - **Parameters:** `query`, `lat`, `lng`, `radiusKm`, `minPrice`, `maxPrice`, `count`, `sortBy`, `deliveryMethod`, `condition`, `dateListed`, `availability`, `cursor` - **Accepted identifiers:** none documented - **Pagination:** cursor via `cursor`, next cursor: `data.page.nextCursor`, has more: `data.page.hasMore` - **Ordering:** Supported sort options: suggested, distanceAscend, creationTimeDescend, priceAscend, priceDescend. - **OpenAPI:** match `GET /v1/facebook/marketplace/search` in [https://www.socialfetch.dev/openapi.json](https://www.socialfetch.dev/openapi.json) - **operationId:** `facebook.marketplace.search.list` - **GET `/v1/facebook/ad-library/ads`** — Get Facebook Ad Library ad - **Auth:** requires `x-api-key` - **Credits (from OpenAPI extension):** 1 credit per successful request. - **Human docs:** [/docs/api/v1/facebook/ad-library/ads/get](https://www.socialfetch.dev/docs/api/v1/facebook/ad-library/ads/get) - **Markdown docs:** [/docs/api/v1/facebook/ad-library/ads/get.mdx](https://www.socialfetch.dev/docs/api/v1/facebook/ad-library/ads/get.mdx) - **SDK:** `client.facebook.getAdLibraryAd({ adId?, url?, includeTranscript?, trim? })` - **Parameters:** `adId`, `url`, `includeTranscript`, `trim` - **Accepted identifiers:** url (query) - **Outcome field:** `data.lookupStatus` with values `found`, `not_found` - **OpenAPI:** match `GET /v1/facebook/ad-library/ads` in [https://www.socialfetch.dev/openapi.json](https://www.socialfetch.dev/openapi.json) - **operationId:** `facebook.adLibrary.ad.get` - **GET `/v1/facebook/ad-library/ads/search`** — Search Facebook Ad Library ads - **Auth:** requires `x-api-key` - **Credits (from OpenAPI extension):** 1 credit per successful request. - **Human docs:** [/docs/api/v1/facebook/ad-library/ads/search/get](https://www.socialfetch.dev/docs/api/v1/facebook/ad-library/ads/search/get) - **Markdown docs:** [/docs/api/v1/facebook/ad-library/ads/search/get.mdx](https://www.socialfetch.dev/docs/api/v1/facebook/ad-library/ads/search/get.mdx) - **SDK:** `client.facebook.searchAdLibraryAds({ query, sortBy?, searchType?, adType?, country?, status?, mediaType?, startDate?, endDate?, cursor?, trim? })` - **Parameters:** `query`, `sortBy`, `searchType`, `adType`, `country`, `status`, `mediaType`, `startDate`, `endDate`, `cursor`, `trim` - **Accepted identifiers:** none documented - **Pagination:** cursor via `cursor`, next cursor: `data.page.nextCursor`, has more: `data.page.hasMore` - **Ordering:** Supported sort options: impressions, most-recent. - **OpenAPI:** match `GET /v1/facebook/ad-library/ads/search` in [https://www.socialfetch.dev/openapi.json](https://www.socialfetch.dev/openapi.json) - **operationId:** `facebook.adLibrary.ads.search.get` - **GET `/v1/facebook/ad-library/companies/ads`** — List Facebook company ads - **Auth:** requires `x-api-key` - **Credits (from OpenAPI extension):** 1 credit per successful request. - **Human docs:** [/docs/api/v1/facebook/ad-library/companies/ads/get](https://www.socialfetch.dev/docs/api/v1/facebook/ad-library/companies/ads/get) - **Markdown docs:** [/docs/api/v1/facebook/ad-library/companies/ads/get.mdx](https://www.socialfetch.dev/docs/api/v1/facebook/ad-library/companies/ads/get.mdx) - **SDK:** `client.facebook.listCompanyAds({ pageId?, companyName?, country?, status?, mediaType?, language?, sortBy?, startDate?, endDate?, cursor? })` - **Parameters:** `pageId`, `companyName`, `country`, `status`, `mediaType`, `language`, `sortBy`, `startDate`, `endDate`, `cursor` - **Accepted identifiers:** none documented - **Pagination:** cursor via `cursor`, next cursor: `data.page.nextCursor`, has more: `data.page.hasMore` - **Ordering:** Supported sort options: impressions, most-recent. - **Outcome field:** `data.lookupStatus` with values `found`, `not_found` - **OpenAPI:** match `GET /v1/facebook/ad-library/companies/ads` in [https://www.socialfetch.dev/openapi.json](https://www.socialfetch.dev/openapi.json) - **operationId:** `facebook.company.ads.list` - **GET `/v1/facebook/ad-library/companies/search`** — Search Facebook ad library companies - **Auth:** requires `x-api-key` - **Credits (from OpenAPI extension):** 1 credit per successful request. - **Human docs:** [/docs/api/v1/facebook/ad-library/companies/search/get](https://www.socialfetch.dev/docs/api/v1/facebook/ad-library/companies/search/get) - **Markdown docs:** [/docs/api/v1/facebook/ad-library/companies/search/get.mdx](https://www.socialfetch.dev/docs/api/v1/facebook/ad-library/companies/search/get.mdx) - **SDK:** `client.facebook.searchAdLibraryCompanies({ query })` - **Parameters:** `query` - **Accepted identifiers:** none documented - **OpenAPI:** match `GET /v1/facebook/ad-library/companies/search` in [https://www.socialfetch.dev/openapi.json](https://www.socialfetch.dev/openapi.json) - **operationId:** `facebook.adLibrary.companies.search` ### Instagram - **GET `/v1/instagram/profiles/{handle}`** — Get Instagram profile - **Auth:** requires `x-api-key` - **Credits (from OpenAPI extension):** 1 credit per successful request. - **Human docs:** [/docs/api/v1/instagram/profiles/handle/get](https://www.socialfetch.dev/docs/api/v1/instagram/profiles/handle/get) - **Markdown docs:** [/docs/api/v1/instagram/profiles/handle/get.mdx](https://www.socialfetch.dev/docs/api/v1/instagram/profiles/handle/get.mdx) - **SDK:** `client.instagram.getProfile({ handle })` - **Parameters:** `handle` - **Accepted identifiers:** handle (path) - **Outcome field:** `data.lookupStatus` with values `found`, `private`, `not_found` - **OpenAPI:** match `GET /v1/instagram/profiles/{handle}` in [https://www.socialfetch.dev/openapi.json](https://www.socialfetch.dev/openapi.json) - **operationId:** `instagram.profile.get` - **GET `/v1/instagram/profiles/{userId}/basic`** — Get Instagram basic profile - **Auth:** requires `x-api-key` - **Credits (from OpenAPI extension):** 1 credit per successful request. - **Human docs:** [/docs/api/v1/instagram/profiles/userid/basic/get](https://www.socialfetch.dev/docs/api/v1/instagram/profiles/userid/basic/get) - **Markdown docs:** [/docs/api/v1/instagram/profiles/userid/basic/get.mdx](https://www.socialfetch.dev/docs/api/v1/instagram/profiles/userid/basic/get.mdx) - **SDK:** `client.instagram.getBasicProfile({ userId })` - **Parameters:** `userId` - **Accepted identifiers:** userId (path) - **Outcome field:** `data.lookupStatus` with values `found`, `private`, `not_found` - **OpenAPI:** match `GET /v1/instagram/profiles/{userId}/basic` in [https://www.socialfetch.dev/openapi.json](https://www.socialfetch.dev/openapi.json) - **operationId:** `instagram.profile.basic.get` - **GET `/v1/instagram/profiles/{handle}/posts`** — List Instagram profile posts - **Auth:** requires `x-api-key` - **Credits (from OpenAPI extension):** 1 credit per successful request. - **Human docs:** [/docs/api/v1/instagram/profiles/handle/posts/get](https://www.socialfetch.dev/docs/api/v1/instagram/profiles/handle/posts/get) - **Markdown docs:** [/docs/api/v1/instagram/profiles/handle/posts/get.mdx](https://www.socialfetch.dev/docs/api/v1/instagram/profiles/handle/posts/get.mdx) - **SDK:** `client.instagram.getProfilePosts({ handle, cursor? })` - **Parameters:** `handle`, `cursor` - **Accepted identifiers:** handle (path) - **Pagination:** cursor via `cursor`, next cursor: `data.page.nextCursor`, has more: `data.page.hasMore` - **Outcome field:** `data.lookupStatus` with values `found`, `private`, `not_found` - **Empty results:** When `lookupStatus` is `found`, an empty `data.posts` page with `hasMore: false` can still mean a public profile with no posts in range. When `lookupStatus` is `private` or `not_found`, posts will be empty by design. - **Disambiguation:** Use `data.lookupStatus` for the domain outcome; call `GET /v1/instagram/profiles/{handle}` when you need full profile cards and related fields. - **OpenAPI:** match `GET /v1/instagram/profiles/{handle}/posts` in [https://www.socialfetch.dev/openapi.json](https://www.socialfetch.dev/openapi.json) - **operationId:** `instagram.profile.posts.list` - **GET `/v1/instagram/profiles/{handle}/reels`** — List Instagram profile reels - **Auth:** requires `x-api-key` - **Credits (from OpenAPI extension):** 1 credit per successful request. - **Human docs:** [/docs/api/v1/instagram/profiles/handle/reels/get](https://www.socialfetch.dev/docs/api/v1/instagram/profiles/handle/reels/get) - **Markdown docs:** [/docs/api/v1/instagram/profiles/handle/reels/get.mdx](https://www.socialfetch.dev/docs/api/v1/instagram/profiles/handle/reels/get.mdx) - **SDK:** `client.instagram.getProfileReels({ handle, cursor? })` - **Parameters:** `handle`, `cursor` - **Accepted identifiers:** handle (path) - **Pagination:** cursor via `cursor`, next cursor: `data.page.nextCursor`, has more: `data.page.hasMore` - **Outcome field:** `data.lookupStatus` with values `found`, `not_found` - **Empty results:** When `lookupStatus` is `found`, an empty `data.reels` page with `hasMore: false` can mean a public profile with no reels in range. When `lookupStatus` is `not_found`, reels will be empty by design. - **Disambiguation:** Use `data.lookupStatus` for the domain outcome; call `GET /v1/instagram/profiles/{handle}` when you need full profile cards and related fields. - **OpenAPI:** match `GET /v1/instagram/profiles/{handle}/reels` in [https://www.socialfetch.dev/openapi.json](https://www.socialfetch.dev/openapi.json) - **operationId:** `instagram.profile.reels.list` - **GET `/v1/instagram/profiles/{handle}/highlights`** — List Instagram profile highlights - **Auth:** requires `x-api-key` - **Credits (from OpenAPI extension):** 1 credit per successful request. - **Human docs:** [/docs/api/v1/instagram/profiles/handle/highlights/get](https://www.socialfetch.dev/docs/api/v1/instagram/profiles/handle/highlights/get) - **Markdown docs:** [/docs/api/v1/instagram/profiles/handle/highlights/get.mdx](https://www.socialfetch.dev/docs/api/v1/instagram/profiles/handle/highlights/get.mdx) - **SDK:** `client.instagram.getProfileHighlights({ handle })` - **Parameters:** `handle` - **Accepted identifiers:** handle (path) - **Outcome field:** `data.lookupStatus` with values `found`, `not_found` - **Empty results:** When `lookupStatus` is `found`, an empty `data.highlights` list can mean the profile has no visible story highlight albums. When `lookupStatus` is `not_found`, highlights will be empty by design. - **Disambiguation:** Use `data.lookupStatus` for the domain outcome; call `GET /v1/instagram/profiles/{handle}` when you need full profile cards and related fields. - **OpenAPI:** match `GET /v1/instagram/profiles/{handle}/highlights` in [https://www.socialfetch.dev/openapi.json](https://www.socialfetch.dev/openapi.json) - **operationId:** `instagram.profile.highlights.list` - **GET `/v1/instagram/highlights/{highlightId}`** — Get Instagram highlight - **Auth:** requires `x-api-key` - **Credits (from OpenAPI extension):** 1 credit per successful request. - **Human docs:** [/docs/api/v1/instagram/highlights/highlightid/get](https://www.socialfetch.dev/docs/api/v1/instagram/highlights/highlightid/get) - **Markdown docs:** [/docs/api/v1/instagram/highlights/highlightid/get.mdx](https://www.socialfetch.dev/docs/api/v1/instagram/highlights/highlightid/get.mdx) - **SDK:** `client.instagram.getHighlight({ highlightId })` - **Parameters:** `highlightId` - **Accepted identifiers:** none documented - **Outcome field:** `data.lookupStatus` with values `found`, `not_found` - **OpenAPI:** match `GET /v1/instagram/highlights/{highlightId}` in [https://www.socialfetch.dev/openapi.json](https://www.socialfetch.dev/openapi.json) - **operationId:** `instagram.highlight.get` - **GET `/v1/instagram/posts`** — Get Instagram post or reel - **Auth:** requires `x-api-key` - **Credits (from OpenAPI extension):** 1 credit base, +10 with `downloadMedia`. Up to 11 credits max. - **Human docs:** [/docs/api/v1/instagram/posts/get](https://www.socialfetch.dev/docs/api/v1/instagram/posts/get) - **Markdown docs:** [/docs/api/v1/instagram/posts/get.mdx](https://www.socialfetch.dev/docs/api/v1/instagram/posts/get.mdx) - **SDK:** `client.instagram.getPost({ url, region?, trim?, downloadMedia? })` - **Parameters:** `url`, `region`, `trim`, `downloadMedia` - **Accepted identifiers:** url (query) - **Outcome field:** `data.lookupStatus` with values `found`, `not_found`, `restricted` - **Media download:** supported via `downloadMedia=true` - **OpenAPI:** match `GET /v1/instagram/posts` in [https://www.socialfetch.dev/openapi.json](https://www.socialfetch.dev/openapi.json) - **operationId:** `instagram.post.get` - **GET `/v1/instagram/posts/comments`** — List Instagram post or reel comments - **Auth:** requires `x-api-key` - **Credits (from OpenAPI extension):** 1 credit per successful request. - **Human docs:** [/docs/api/v1/instagram/posts/comments/get](https://www.socialfetch.dev/docs/api/v1/instagram/posts/comments/get) - **Markdown docs:** [/docs/api/v1/instagram/posts/comments/get.mdx](https://www.socialfetch.dev/docs/api/v1/instagram/posts/comments/get.mdx) - **SDK:** `client.instagram.getPostComments({ url, cursor? })` - **Parameters:** `url`, `cursor` - **Accepted identifiers:** url (query) - **Pagination:** cursor via `cursor`, next cursor: `data.page.nextCursor`, has more: `data.page.hasMore` - **Outcome field:** `data.lookupStatus` with values `found`, `not_found` - **OpenAPI:** match `GET /v1/instagram/posts/comments` in [https://www.socialfetch.dev/openapi.json](https://www.socialfetch.dev/openapi.json) - **operationId:** `instagram.post.comments.list` - **GET `/v1/instagram/posts/transcript`** — Get Instagram post transcript - **Auth:** requires `x-api-key` - **Credits (from OpenAPI extension):** 1 credit per successful request. - **Human docs:** [/docs/api/v1/instagram/posts/transcript/get](https://www.socialfetch.dev/docs/api/v1/instagram/posts/transcript/get) - **Markdown docs:** [/docs/api/v1/instagram/posts/transcript/get.mdx](https://www.socialfetch.dev/docs/api/v1/instagram/posts/transcript/get.mdx) - **SDK:** `client.instagram.getPostTranscript({ url })` - **Parameters:** `url` - **Accepted identifiers:** url (query) - **Outcome field:** `data.lookupStatus` with values `found`, `not_found` - **OpenAPI:** match `GET /v1/instagram/posts/transcript` in [https://www.socialfetch.dev/openapi.json](https://www.socialfetch.dev/openapi.json) - **operationId:** `instagram.post.transcript.get` - **GET `/v1/instagram/search/reels`** — Search Instagram Reels - **Auth:** requires `x-api-key` - **Credits (from OpenAPI extension):** 1 credit per successful request. - **Human docs:** [/docs/api/v1/instagram/search/reels/get](https://www.socialfetch.dev/docs/api/v1/instagram/search/reels/get) - **Markdown docs:** [/docs/api/v1/instagram/search/reels/get.mdx](https://www.socialfetch.dev/docs/api/v1/instagram/search/reels/get.mdx) - **SDK:** `client.instagram.searchReels({ query, datePosted?, page? })` - **Parameters:** `query`, `datePosted`, `page` - **Accepted identifiers:** none documented - **OpenAPI:** match `GET /v1/instagram/search/reels` in [https://www.socialfetch.dev/openapi.json](https://www.socialfetch.dev/openapi.json) - **operationId:** `instagram.search.reels.list` ### LinkedIn - **GET `/v1/linkedin/profiles`** — Get LinkedIn profiles - **Auth:** requires `x-api-key` - **Credits (from OpenAPI extension):** 2 credits per profile URL requested. Up to 50 profiles per request (100 credits max). - **Human docs:** [/docs/api/v1/linkedin/profiles/get](https://www.socialfetch.dev/docs/api/v1/linkedin/profiles/get) - **Markdown docs:** [/docs/api/v1/linkedin/profiles/get.mdx](https://www.socialfetch.dev/docs/api/v1/linkedin/profiles/get.mdx) - **SDK:** `client.linkedin.getProfiles({ urls }) or client.linkedin.getProfile({ url })` - **Parameters:** `url` - **Accepted identifiers:** url (query) - **OpenAPI:** match `GET /v1/linkedin/profiles` in [https://www.socialfetch.dev/openapi.json](https://www.socialfetch.dev/openapi.json) - **operationId:** `linkedin.profile.get` - **GET `/v1/linkedin/profiles/posts`** — List LinkedIn profile posts - **Auth:** requires `x-api-key` - **Credits (from OpenAPI extension):** 2 credits per returned record. Up to 200 per request (400 credits max). `limit` defaults to 10. - **Human docs:** [/docs/api/v1/linkedin/profiles/posts/get](https://www.socialfetch.dev/docs/api/v1/linkedin/profiles/posts/get) - **Markdown docs:** [/docs/api/v1/linkedin/profiles/posts/get.mdx](https://www.socialfetch.dev/docs/api/v1/linkedin/profiles/posts/get.mdx) - **SDK:** `client.linkedin.listProfilePosts({ url, startDate?, endDate?, onlyAuthoredPosts? })` - **Parameters:** `url`, `startDate`, `endDate`, `onlyAuthoredPosts`, `limit` - **Accepted identifiers:** url (query) - **Outcome field:** `data.lookupStatus` with values `found`, `not_found` - **OpenAPI:** match `GET /v1/linkedin/profiles/posts` in [https://www.socialfetch.dev/openapi.json](https://www.socialfetch.dev/openapi.json) - **operationId:** `linkedin.profiles.posts.list` - **GET `/v1/linkedin/people/search`** — Search LinkedIn people - **Auth:** requires `x-api-key` - **Credits (from OpenAPI extension):** 2 credits per returned record. Up to 50 per request (100 credits max). - **Human docs:** [/docs/api/v1/linkedin/people/search/get](https://www.socialfetch.dev/docs/api/v1/linkedin/people/search/get) - **Markdown docs:** [/docs/api/v1/linkedin/people/search/get.mdx](https://www.socialfetch.dev/docs/api/v1/linkedin/people/search/get.mdx) - **SDK:** `client.linkedin.searchPeople({ firstName?, lastName? })` - **Parameters:** `firstName`, `lastName` - **Accepted identifiers:** none documented - **Outcome field:** `data.lookupStatus` with values `found`, `not_found` - **Disambiguation:** This search usually takes around one and a half minutes to complete, so expect a longer wait than most endpoints. - **OpenAPI:** match `GET /v1/linkedin/people/search` in [https://www.socialfetch.dev/openapi.json](https://www.socialfetch.dev/openapi.json) - **operationId:** `linkedin.people.search.list` - **GET `/v1/linkedin/organizations`** — Get LinkedIn organization page - **Auth:** requires `x-api-key` - **Credits (from OpenAPI extension):** 2 credits per organization URL requested. Up to 50 organizations per request (100 credits max). - **Human docs:** [/docs/api/v1/linkedin/organizations/get](https://www.socialfetch.dev/docs/api/v1/linkedin/organizations/get) - **Markdown docs:** [/docs/api/v1/linkedin/organizations/get.mdx](https://www.socialfetch.dev/docs/api/v1/linkedin/organizations/get.mdx) - **SDK:** `client.linkedin.getOrganizations({ urls }) or client.linkedin.getOrganization({ url })` - **Parameters:** `url` - **Accepted identifiers:** url (query) - **Disambiguation:** This endpoint covers company, school, and other LinkedIn organization pages. If you only need a standard company page lookup, the Company page endpoint may be a better fit. - **OpenAPI:** match `GET /v1/linkedin/organizations` in [https://www.socialfetch.dev/openapi.json](https://www.socialfetch.dev/openapi.json) - **operationId:** `linkedin.organization.get` - **GET `/v1/linkedin/companies`** — Get LinkedIn company page - **Auth:** requires `x-api-key` - **Credits (from OpenAPI extension):** 1 credit per successful request. - **Human docs:** [/docs/api/v1/linkedin/companies/get](https://www.socialfetch.dev/docs/api/v1/linkedin/companies/get) - **Markdown docs:** [/docs/api/v1/linkedin/companies/get.mdx](https://www.socialfetch.dev/docs/api/v1/linkedin/companies/get.mdx) - **SDK:** `client.linkedin.getCompany({ url })` - **Parameters:** `url` - **Accepted identifiers:** url (query) - **Outcome field:** `data.lookupStatus` with values `found`, `not_found` - **Disambiguation:** This endpoint is for LinkedIn company pages only. If you have a school URL or another organization page type, use the Organization page endpoint instead. - **OpenAPI:** match `GET /v1/linkedin/companies` in [https://www.socialfetch.dev/openapi.json](https://www.socialfetch.dev/openapi.json) - **operationId:** `linkedin.company.get` - **GET `/v1/linkedin/companies/posts`** — List LinkedIn company posts - **Auth:** requires `x-api-key` - **Credits (from OpenAPI extension):** 1 credit per successful request. - **Human docs:** [/docs/api/v1/linkedin/companies/posts/get](https://www.socialfetch.dev/docs/api/v1/linkedin/companies/posts/get) - **Markdown docs:** [/docs/api/v1/linkedin/companies/posts/get.mdx](https://www.socialfetch.dev/docs/api/v1/linkedin/companies/posts/get.mdx) - **SDK:** `client.linkedin.listCompanyPosts({ url, page? })` - **Parameters:** `url`, `page` - **Accepted identifiers:** url (query) - **Outcome field:** `data.lookupStatus` with values `found`, `not_found` - **Disambiguation:** This endpoint is for LinkedIn company pages only. If you have a school URL or another organization page type, use the Organization page endpoint instead. - **OpenAPI:** match `GET /v1/linkedin/companies/posts` in [https://www.socialfetch.dev/openapi.json](https://www.socialfetch.dev/openapi.json) - **operationId:** `linkedin.company.posts.list` - **GET `/v1/linkedin/posts`** — Get LinkedIn post or article - **Auth:** requires `x-api-key` - **Credits (from OpenAPI extension):** 1 credit per successful request. - **Human docs:** [/docs/api/v1/linkedin/posts/get](https://www.socialfetch.dev/docs/api/v1/linkedin/posts/get) - **Markdown docs:** [/docs/api/v1/linkedin/posts/get.mdx](https://www.socialfetch.dev/docs/api/v1/linkedin/posts/get.mdx) - **SDK:** `client.linkedin.getPost({ url })` - **Parameters:** `url` - **Accepted identifiers:** url (query) - **Outcome field:** `data.lookupStatus` with values `found`, `not_found` - **OpenAPI:** match `GET /v1/linkedin/posts` in [https://www.socialfetch.dev/openapi.json](https://www.socialfetch.dev/openapi.json) - **operationId:** `linkedin.post.get` - **GET `/v1/linkedin/jobs`** — Get LinkedIn jobs - **Auth:** requires `x-api-key` - **Credits (from OpenAPI extension):** 2 credits per job URL requested. Up to 50 jobs per request (100 credits max). - **Human docs:** [/docs/api/v1/linkedin/jobs/get](https://www.socialfetch.dev/docs/api/v1/linkedin/jobs/get) - **Markdown docs:** [/docs/api/v1/linkedin/jobs/get.mdx](https://www.socialfetch.dev/docs/api/v1/linkedin/jobs/get.mdx) - **SDK:** `client.linkedin.getJobs({ urls })` - **Parameters:** `url` - **Accepted identifiers:** url (query) - **OpenAPI:** match `GET /v1/linkedin/jobs` in [https://www.socialfetch.dev/openapi.json](https://www.socialfetch.dev/openapi.json) - **operationId:** `linkedin.jobs.get` - **GET `/v1/linkedin/jobs/search`** — Search LinkedIn jobs - **Auth:** requires `x-api-key` - **Credits (from OpenAPI extension):** 2 credits per returned record. Up to 1000 per request (2000 credits max). `limit` defaults to 10. - **Human docs:** [/docs/api/v1/linkedin/jobs/search/get](https://www.socialfetch.dev/docs/api/v1/linkedin/jobs/search/get) - **Markdown docs:** [/docs/api/v1/linkedin/jobs/search/get.mdx](https://www.socialfetch.dev/docs/api/v1/linkedin/jobs/search/get.mdx) - **SDK:** `client.linkedin.searchJobs({ keyword, location, country?, timeRange?, jobType?, experienceLevel?, remote?, company?, locationRadius? })` - **Parameters:** `keyword`, `location`, `country`, `timeRange`, `jobType`, `experienceLevel`, `remote`, `company`, `locationRadius`, `limit` - **Accepted identifiers:** none documented - **Outcome field:** `data.lookupStatus` with values `found`, `not_found` - **Disambiguation:** This search usually takes around one and a half minutes. - **OpenAPI:** match `GET /v1/linkedin/jobs/search` in [https://www.socialfetch.dev/openapi.json](https://www.socialfetch.dev/openapi.json) - **operationId:** `linkedin.jobs.search.list` ### YouTube - **GET `/v1/youtube/channel`** — Get YouTube channel - **Auth:** requires `x-api-key` - **Credits (from OpenAPI extension):** 1 credit per successful request. - **Human docs:** [/docs/api/v1/youtube/channel/get](https://www.socialfetch.dev/docs/api/v1/youtube/channel/get) - **Markdown docs:** [/docs/api/v1/youtube/channel/get.mdx](https://www.socialfetch.dev/docs/api/v1/youtube/channel/get.mdx) - **SDK:** `client.youtube.getChannel({ channelId?, handle?, url? })` - **Parameters:** `channelId`, `handle`, `url` - **Accepted identifiers:** handle (query), url (query) - **Outcome field:** `data.lookupStatus` with values `found`, `not_found` - **OpenAPI:** match `GET /v1/youtube/channel` in [https://www.socialfetch.dev/openapi.json](https://www.socialfetch.dev/openapi.json) - **operationId:** `youtube.channel.get` - **GET `/v1/youtube/channels/videos`** — List YouTube channel videos - **Auth:** requires `x-api-key` - **Credits (from OpenAPI extension):** 1 credit per successful request. - **Human docs:** [/docs/api/v1/youtube/channels/videos/get](https://www.socialfetch.dev/docs/api/v1/youtube/channels/videos/get) - **Markdown docs:** [/docs/api/v1/youtube/channels/videos/get.mdx](https://www.socialfetch.dev/docs/api/v1/youtube/channels/videos/get.mdx) - **SDK:** `client.youtube.getChannelVideos({ channelId?, handle?, sortBy?, cursor?, includeExtras? })` - **Parameters:** `channelId`, `handle`, `sortBy`, `cursor`, `includeExtras` - **Accepted identifiers:** handle (query) - **Pagination:** cursor via `cursor`, next cursor: `data.page.nextCursor`, has more: `data.page.hasMore` - **Ordering:** Supported sort options: latest, popular. - **Outcome field:** `data.lookupStatus` with values `found`, `not_found` - **Empty results:** An empty `data.videos` array can still mean `data.lookupStatus: "found"` when the channel resolves but the returned page has no videos. - **Disambiguation:** Use `data.lookupStatus` to distinguish a resolved empty result from `not_found`. - **OpenAPI:** match `GET /v1/youtube/channels/videos` in [https://www.socialfetch.dev/openapi.json](https://www.socialfetch.dev/openapi.json) - **operationId:** `youtube.channel.videos.list` - **GET `/v1/youtube/channels/shorts`** — List YouTube channel shorts - **Auth:** requires `x-api-key` - **Credits (from OpenAPI extension):** 1 credit per successful request. - **Human docs:** [/docs/api/v1/youtube/channels/shorts/get](https://www.socialfetch.dev/docs/api/v1/youtube/channels/shorts/get) - **Markdown docs:** [/docs/api/v1/youtube/channels/shorts/get.mdx](https://www.socialfetch.dev/docs/api/v1/youtube/channels/shorts/get.mdx) - **SDK:** `client.youtube.getChannelShorts({ channelId?, handle?, sortBy?, cursor? })` - **Parameters:** `channelId`, `handle`, `sortBy`, `cursor` - **Accepted identifiers:** handle (query) - **Pagination:** cursor via `cursor`, next cursor: `data.page.nextCursor`, has more: `data.page.hasMore` - **Ordering:** Supported sort options: latest, popular. - **Outcome field:** `data.lookupStatus` with values `found`, `not_found` - **Empty results:** An empty `data.shorts` array can still mean `data.lookupStatus: "found"` when the channel resolves but the returned page has no Shorts. - **Disambiguation:** Use `data.lookupStatus` to distinguish a resolved empty result from `not_found`. - **OpenAPI:** match `GET /v1/youtube/channels/shorts` in [https://www.socialfetch.dev/openapi.json](https://www.socialfetch.dev/openapi.json) - **operationId:** `youtube.channel.shorts.list` - **GET `/v1/youtube/playlists`** — Get YouTube playlist - **Auth:** requires `x-api-key` - **Credits (from OpenAPI extension):** 1 credit per successful request. - **Human docs:** [/docs/api/v1/youtube/playlists/get](https://www.socialfetch.dev/docs/api/v1/youtube/playlists/get) - **Markdown docs:** [/docs/api/v1/youtube/playlists/get.mdx](https://www.socialfetch.dev/docs/api/v1/youtube/playlists/get.mdx) - **SDK:** `client.youtube.getPlaylist({ playlistId })` - **Parameters:** `playlistId` - **Accepted identifiers:** playlistId (query) - **Outcome field:** `data.lookupStatus` with values `found`, `not_found` - **Empty results:** An empty `data.videos` array with `data.lookupStatus: "found"` means the playlist resolved but returned no videos in the response. - **Disambiguation:** Use `data.lookupStatus` to distinguish a resolved playlist from `not_found`. - **OpenAPI:** match `GET /v1/youtube/playlists` in [https://www.socialfetch.dev/openapi.json](https://www.socialfetch.dev/openapi.json) - **operationId:** `youtube.playlist.get` - **GET `/v1/youtube/community-posts`** — Get YouTube community post - **Auth:** requires `x-api-key` - **Credits (from OpenAPI extension):** 1 credit per successful request. - **Human docs:** [/docs/api/v1/youtube/community-posts/get](https://www.socialfetch.dev/docs/api/v1/youtube/community-posts/get) - **Markdown docs:** [/docs/api/v1/youtube/community-posts/get.mdx](https://www.socialfetch.dev/docs/api/v1/youtube/community-posts/get.mdx) - **SDK:** `client.youtube.getCommunityPost({ url })` - **Parameters:** `url` - **Accepted identifiers:** url (query) - **Outcome field:** `data.lookupStatus` with values `found`, `not_found` - **Disambiguation:** Use `data.lookupStatus` to distinguish a resolved community post from `not_found`. - **OpenAPI:** match `GET /v1/youtube/community-posts` in [https://www.socialfetch.dev/openapi.json](https://www.socialfetch.dev/openapi.json) - **operationId:** `youtube.community.post.get` - **GET `/v1/youtube/search`** — Search YouTube - **Auth:** requires `x-api-key` - **Credits (from OpenAPI extension):** 1 credit per successful request. - **Human docs:** [/docs/api/v1/youtube/search/get](https://www.socialfetch.dev/docs/api/v1/youtube/search/get) - **Markdown docs:** [/docs/api/v1/youtube/search/get.mdx](https://www.socialfetch.dev/docs/api/v1/youtube/search/get.mdx) - **SDK:** `client.youtube.search({ query, uploadDate?, sortBy?, type?, duration?, region?, cursor?, includeExtras? })` - **Parameters:** `query`, `uploadDate`, `sortBy`, `type`, `duration`, `region`, `cursor`, `includeExtras` - **Accepted identifiers:** none documented - **Pagination:** cursor via `cursor`, next cursor: `data.page.nextCursor`, has more: `data.page.hasMore` - **Ordering:** Supported sort options: relevance, popular. - **Disambiguation:** Use `data.page.hasMore` and `data.page.nextCursor` for pagination rather than inferring completion from bucket sizes alone. - **OpenAPI:** match `GET /v1/youtube/search` in [https://www.socialfetch.dev/openapi.json](https://www.socialfetch.dev/openapi.json) - **operationId:** `youtube.search.list` - **GET `/v1/youtube/search/hashtags`** — Search YouTube by hashtag - **Auth:** requires `x-api-key` - **Credits (from OpenAPI extension):** 1 credit per successful request. - **Human docs:** [/docs/api/v1/youtube/search/hashtags/get](https://www.socialfetch.dev/docs/api/v1/youtube/search/hashtags/get) - **Markdown docs:** [/docs/api/v1/youtube/search/hashtags/get.mdx](https://www.socialfetch.dev/docs/api/v1/youtube/search/hashtags/get.mdx) - **SDK:** `client.youtube.searchHashtag({ hashtag, type?, cursor? })` - **Parameters:** `hashtag`, `type`, `cursor` - **Accepted identifiers:** none documented - **Pagination:** cursor via `cursor`, next cursor: `data.page.nextCursor`, has more: `data.page.hasMore` - **Disambiguation:** Use `data.page.hasMore` and `data.page.nextCursor` for pagination rather than inferring completion from result count alone. - **OpenAPI:** match `GET /v1/youtube/search/hashtags` in [https://www.socialfetch.dev/openapi.json](https://www.socialfetch.dev/openapi.json) - **operationId:** `youtube.search.hashtag.list` - **GET `/v1/youtube/shorts/trending`** — List trending YouTube Shorts - **Auth:** requires `x-api-key` - **Credits (from OpenAPI extension):** 1 credit per successful request. - **Human docs:** [/docs/api/v1/youtube/shorts/trending/get](https://www.socialfetch.dev/docs/api/v1/youtube/shorts/trending/get) - **Markdown docs:** [/docs/api/v1/youtube/shorts/trending/get.mdx](https://www.socialfetch.dev/docs/api/v1/youtube/shorts/trending/get.mdx) - **SDK:** `client.youtube.getTrendingShorts()` - **Accepted identifiers:** none documented - **Empty results:** An empty `data.shorts` array means no trending Shorts were available for that call (you normally receive about 48 when the feed is populated). - **Disambiguation:** Typically returns about 48 trending Shorts per call. Repeat the same request for another fresh batch (new and overlapping Shorts are both possible). No cursor or page parameters. - **OpenAPI:** match `GET /v1/youtube/shorts/trending` in [https://www.socialfetch.dev/openapi.json](https://www.socialfetch.dev/openapi.json) - **operationId:** `youtube.shorts.trending.list` - **GET `/v1/youtube/videos`** — Get YouTube video - **Auth:** requires `x-api-key` - **Credits (from OpenAPI extension):** 1 credit per successful request. - **Human docs:** [/docs/api/v1/youtube/videos/get](https://www.socialfetch.dev/docs/api/v1/youtube/videos/get) - **Markdown docs:** [/docs/api/v1/youtube/videos/get.mdx](https://www.socialfetch.dev/docs/api/v1/youtube/videos/get.mdx) - **SDK:** `client.youtube.getVideo({ url, language? })` - **Parameters:** `url`, `language` - **Accepted identifiers:** url (query) - **Outcome field:** `data.lookupStatus` with values `found`, `not_found` - **OpenAPI:** match `GET /v1/youtube/videos` in [https://www.socialfetch.dev/openapi.json](https://www.socialfetch.dev/openapi.json) - **operationId:** `youtube.video.get` - **GET `/v1/youtube/videos/comments`** — List YouTube video comments - **Auth:** requires `x-api-key` - **Credits (from OpenAPI extension):** 1 credit per successful request. - **Human docs:** [/docs/api/v1/youtube/videos/comments/get](https://www.socialfetch.dev/docs/api/v1/youtube/videos/comments/get) - **Markdown docs:** [/docs/api/v1/youtube/videos/comments/get.mdx](https://www.socialfetch.dev/docs/api/v1/youtube/videos/comments/get.mdx) - **SDK:** `client.youtube.getVideoComments({ url, cursor?, order? })` - **Parameters:** `url`, `cursor`, `order` - **Accepted identifiers:** url (query) - **Pagination:** cursor via `cursor`, next cursor: `data.page.nextCursor`, has more: `data.page.hasMore` - **Outcome field:** `data.lookupStatus` with values `found`, `not_found` - **OpenAPI:** match `GET /v1/youtube/videos/comments` in [https://www.socialfetch.dev/openapi.json](https://www.socialfetch.dev/openapi.json) - **operationId:** `youtube.video.comments.list` - **GET `/v1/youtube/videos/comments/replies`** — List YouTube comment replies - **Auth:** requires `x-api-key` - **Credits (from OpenAPI extension):** 1 credit per successful request. - **Human docs:** [/docs/api/v1/youtube/videos/comments/replies/get](https://www.socialfetch.dev/docs/api/v1/youtube/videos/comments/replies/get) - **Markdown docs:** [/docs/api/v1/youtube/videos/comments/replies/get.mdx](https://www.socialfetch.dev/docs/api/v1/youtube/videos/comments/replies/get.mdx) - **SDK:** `client.youtube.getVideoCommentReplies({ cursor })` - **Parameters:** `cursor` - **Accepted identifiers:** none documented - **Pagination:** cursor via `cursor`, next cursor: `data.page.nextCursor`, has more: `data.page.hasMore` - **OpenAPI:** match `GET /v1/youtube/videos/comments/replies` in [https://www.socialfetch.dev/openapi.json](https://www.socialfetch.dev/openapi.json) - **operationId:** `youtube.video.comments.replies.list` - **GET `/v1/youtube/videos/transcript`** — Get YouTube video transcript - **Auth:** requires `x-api-key` - **Credits (from OpenAPI extension):** 1 credit per successful request. - **Human docs:** [/docs/api/v1/youtube/videos/transcript/get](https://www.socialfetch.dev/docs/api/v1/youtube/videos/transcript/get) - **Markdown docs:** [/docs/api/v1/youtube/videos/transcript/get.mdx](https://www.socialfetch.dev/docs/api/v1/youtube/videos/transcript/get.mdx) - **SDK:** `client.youtube.getVideoTranscript({ url, language? })` - **Parameters:** `url`, `language` - **Accepted identifiers:** url (query) - **Outcome field:** `data.lookupStatus` with values `found`, `not_found`, `lookup_failed` - **OpenAPI:** match `GET /v1/youtube/videos/transcript` in [https://www.socialfetch.dev/openapi.json](https://www.socialfetch.dev/openapi.json) - **operationId:** `youtube.video.transcript.get` ### Twitter - **GET `/v1/twitter/profiles/{handle}`** — Get Twitter profile - **Auth:** requires `x-api-key` - **Credits (from OpenAPI extension):** 1 credit per successful request. - **Human docs:** [/docs/api/v1/twitter/profiles/handle/get](https://www.socialfetch.dev/docs/api/v1/twitter/profiles/handle/get) - **Markdown docs:** [/docs/api/v1/twitter/profiles/handle/get.mdx](https://www.socialfetch.dev/docs/api/v1/twitter/profiles/handle/get.mdx) - **SDK:** `client.twitter.getProfile({ handle })` - **Parameters:** `handle` - **Accepted identifiers:** handle (path) - **Outcome field:** `data.lookupStatus` with values `found`, `private`, `not_found` - **OpenAPI:** match `GET /v1/twitter/profiles/{handle}` in [https://www.socialfetch.dev/openapi.json](https://www.socialfetch.dev/openapi.json) - **operationId:** `twitter.profile.get` - **GET `/v1/twitter/profiles/{handle}/tweets`** — List Twitter profile tweets - **Auth:** requires `x-api-key` - **Credits (from OpenAPI extension):** 1 credit per successful request. - **Human docs:** [/docs/api/v1/twitter/profiles/handle/tweets/get](https://www.socialfetch.dev/docs/api/v1/twitter/profiles/handle/tweets/get) - **Markdown docs:** [/docs/api/v1/twitter/profiles/handle/tweets/get.mdx](https://www.socialfetch.dev/docs/api/v1/twitter/profiles/handle/tweets/get.mdx) - **SDK:** `client.twitter.getProfileTweets({ handle, trim? })` - **Parameters:** `handle`, `trim` - **Accepted identifiers:** handle (path) - **Outcome field:** `data.lookupStatus` with values `found`, `not_found` - **Empty results:** An empty `data.tweets` array can occur with `lookupStatus: "found"` (no popular public tweets in this window) or `lookupStatus: "not_found"` (handle did not resolve). - **Disambiguation:** Call `GET /v1/twitter/profiles/{handle}` when you must distinguish `private` from `not_found` before interpreting an empty tweet list. - **OpenAPI:** match `GET /v1/twitter/profiles/{handle}/tweets` in [https://www.socialfetch.dev/openapi.json](https://www.socialfetch.dev/openapi.json) - **operationId:** `twitter.profile.tweets.list` - **GET `/v1/twitter/tweets`** — Get Twitter tweet - **Auth:** requires `x-api-key` - **Credits (from OpenAPI extension):** 1 credit per successful request. - **Human docs:** [/docs/api/v1/twitter/tweets/get](https://www.socialfetch.dev/docs/api/v1/twitter/tweets/get) - **Markdown docs:** [/docs/api/v1/twitter/tweets/get.mdx](https://www.socialfetch.dev/docs/api/v1/twitter/tweets/get.mdx) - **SDK:** `client.twitter.getTweet({ url, trim? })` - **Parameters:** `url`, `trim` - **Accepted identifiers:** url (query) - **Outcome field:** `data.lookupStatus` with values `found`, `not_found` - **OpenAPI:** match `GET /v1/twitter/tweets` in [https://www.socialfetch.dev/openapi.json](https://www.socialfetch.dev/openapi.json) - **operationId:** `twitter.tweet.get` - **GET `/v1/twitter/tweets/replies`** — List Twitter tweet replies - **Auth:** requires `x-api-key` - **Credits (from OpenAPI extension):** 2 credits per successful request. - **Human docs:** [/docs/api/v1/twitter/tweets/replies/get](https://www.socialfetch.dev/docs/api/v1/twitter/tweets/replies/get) - **Markdown docs:** [/docs/api/v1/twitter/tweets/replies/get.mdx](https://www.socialfetch.dev/docs/api/v1/twitter/tweets/replies/get.mdx) - **SDK:** `client.twitter.listTweetReplies({ url, cursor? })` - **Parameters:** `url`, `cursor` - **Accepted identifiers:** url (query) - **Pagination:** cursor via `cursor`, next cursor: `data.page.nextCursor`, has more: `data.page.hasMore` - **OpenAPI:** match `GET /v1/twitter/tweets/replies` in [https://www.socialfetch.dev/openapi.json](https://www.socialfetch.dev/openapi.json) - **operationId:** `twitter.tweet.replies.list` - **GET `/v1/twitter/tweets/transcript`** — Get Twitter tweet transcript - **Auth:** requires `x-api-key` - **Credits (from OpenAPI extension):** 1 credit per successful request. - **Human docs:** [/docs/api/v1/twitter/tweets/transcript/get](https://www.socialfetch.dev/docs/api/v1/twitter/tweets/transcript/get) - **Markdown docs:** [/docs/api/v1/twitter/tweets/transcript/get.mdx](https://www.socialfetch.dev/docs/api/v1/twitter/tweets/transcript/get.mdx) - **SDK:** `client.twitter.getTweetTranscript({ url })` - **Parameters:** `url` - **Accepted identifiers:** url (query) - **Outcome field:** `data.lookupStatus` with values `found`, `not_found`, `lookup_failed` - **Disambiguation:** For video tweets only. Responses can take longer than typical lookups. Videos longer than about two minutes cannot be transcribed. - **OpenAPI:** match `GET /v1/twitter/tweets/transcript` in [https://www.socialfetch.dev/openapi.json](https://www.socialfetch.dev/openapi.json) - **operationId:** `twitter.tweet.transcript.get` - **GET `/v1/twitter/search`** — Search Twitter posts - **Auth:** requires `x-api-key` - **Credits (from OpenAPI extension):** 2 credits per successful request. - **Human docs:** [/docs/api/v1/twitter/search/get](https://www.socialfetch.dev/docs/api/v1/twitter/search/get) - **Markdown docs:** [/docs/api/v1/twitter/search/get.mdx](https://www.socialfetch.dev/docs/api/v1/twitter/search/get.mdx) - **SDK:** `client.twitter.search({ query, section?, minRetweets?, minLikes?, minReplies?, limit?, startDate?, endDate?, language?, cursor? })` - **Parameters:** `query`, `section`, `minRetweets`, `minLikes`, `minReplies`, `limit`, `startDate`, `endDate`, `language`, `cursor` - **Accepted identifiers:** none documented - **Pagination:** cursor via `cursor`, next cursor: `data.page.nextCursor`, has more: `data.page.hasMore` - **OpenAPI:** match `GET /v1/twitter/search` in [https://www.socialfetch.dev/openapi.json](https://www.socialfetch.dev/openapi.json) - **operationId:** `twitter.search.list` - **GET `/v1/twitter/hashtags`** — Search Twitter by hashtag - **Auth:** requires `x-api-key` - **Credits (from OpenAPI extension):** 2 credits per successful request. - **Human docs:** [/docs/api/v1/twitter/hashtags/get](https://www.socialfetch.dev/docs/api/v1/twitter/hashtags/get) - **Markdown docs:** [/docs/api/v1/twitter/hashtags/get.mdx](https://www.socialfetch.dev/docs/api/v1/twitter/hashtags/get.mdx) - **SDK:** `client.twitter.searchHashtags({ hashtag, section?, limit?, cursor? })` - **Parameters:** `hashtag`, `section`, `limit`, `cursor` - **Accepted identifiers:** none documented - **Pagination:** cursor via `cursor`, next cursor: `data.page.nextCursor`, has more: `data.page.hasMore` - **OpenAPI:** match `GET /v1/twitter/hashtags` in [https://www.socialfetch.dev/openapi.json](https://www.socialfetch.dev/openapi.json) - **operationId:** `twitter.hashtag.list` - **GET `/v1/twitter/communities`** — Get Twitter community - **Auth:** requires `x-api-key` - **Credits (from OpenAPI extension):** 1 credit per successful request. - **Human docs:** [/docs/api/v1/twitter/communities/get](https://www.socialfetch.dev/docs/api/v1/twitter/communities/get) - **Markdown docs:** [/docs/api/v1/twitter/communities/get.mdx](https://www.socialfetch.dev/docs/api/v1/twitter/communities/get.mdx) - **SDK:** `client.twitter.getCommunity({ url })` - **Parameters:** `url` - **Accepted identifiers:** url (query) - **Outcome field:** `data.lookupStatus` with values `found`, `not_found` - **OpenAPI:** match `GET /v1/twitter/communities` in [https://www.socialfetch.dev/openapi.json](https://www.socialfetch.dev/openapi.json) - **operationId:** `twitter.community.get` - **GET `/v1/twitter/communities/tweets`** — List Twitter community tweets - **Auth:** requires `x-api-key` - **Credits (from OpenAPI extension):** 1 credit per successful request. - **Human docs:** [/docs/api/v1/twitter/communities/tweets/get](https://www.socialfetch.dev/docs/api/v1/twitter/communities/tweets/get) - **Markdown docs:** [/docs/api/v1/twitter/communities/tweets/get.mdx](https://www.socialfetch.dev/docs/api/v1/twitter/communities/tweets/get.mdx) - **SDK:** `client.twitter.getCommunityTweets({ url })` - **Parameters:** `url` - **Accepted identifiers:** url (query) - **Outcome field:** `data.lookupStatus` with values `found`, `not_found` - **OpenAPI:** match `GET /v1/twitter/communities/tweets` in [https://www.socialfetch.dev/openapi.json](https://www.socialfetch.dev/openapi.json) - **operationId:** `twitter.community.tweets.list` ### Auth - **GET `/v1/whoami`** — Whoami - **Auth:** requires `x-api-key` - **Human docs:** [/docs/api/v1/whoami](https://www.socialfetch.dev/docs/api/v1/whoami) - **Markdown docs:** [/docs/api/v1/whoami.mdx](https://www.socialfetch.dev/docs/api/v1/whoami.mdx) - **SDK:** `client.auth.whoami()` - **Accepted identifiers:** none documented - **OpenAPI:** match `GET /v1/whoami` in [https://www.socialfetch.dev/openapi.json](https://www.socialfetch.dev/openapi.json) - **operationId:** `auth.whoami` - **GET `/v1/balance`** — Get account balance - **Auth:** requires `x-api-key` - **Human docs:** [/docs/api/v1/balance](https://www.socialfetch.dev/docs/api/v1/balance) - **Markdown docs:** [/docs/api/v1/balance.mdx](https://www.socialfetch.dev/docs/api/v1/balance.mdx) - **SDK:** `client.billing.getBalance()` - **Accepted identifiers:** none documented - **OpenAPI:** match `GET /v1/balance` in [https://www.socialfetch.dev/openapi.json](https://www.socialfetch.dev/openapi.json) - **operationId:** `billing.balance.get` ### System - **GET `/health`** — Health check - **Auth:** no API key required - **Human docs:** [/docs/api/health/get](https://www.socialfetch.dev/docs/api/health/get) - **Markdown docs:** [/docs/api/health/get.mdx](https://www.socialfetch.dev/docs/api/health/get.mdx) - **SDK:** `client.health()` - **Accepted identifiers:** none documented - **OpenAPI:** match `GET /health` in [https://www.socialfetch.dev/openapi.json](https://www.socialfetch.dev/openapi.json) - **operationId:** `system.health` ### Telegram - **GET `/v1/telegram/channels/{handle}`** — Get Telegram channel - **Auth:** requires `x-api-key` - **Credits (from OpenAPI extension):** 1 credit per successful request. - **Human docs:** [/docs/api/v1/telegram/channels/handle/get](https://www.socialfetch.dev/docs/api/v1/telegram/channels/handle/get) - **Markdown docs:** [/docs/api/v1/telegram/channels/handle/get.mdx](https://www.socialfetch.dev/docs/api/v1/telegram/channels/handle/get.mdx) - **SDK:** `client.telegram.getChannel({ handle: "durov" })` - **Parameters:** `handle` - **Accepted identifiers:** handle (path) - **Outcome field:** `data.lookupStatus` with values `found`, `not_found`, `restricted` - **OpenAPI:** match `GET /v1/telegram/channels/{handle}` in [https://www.socialfetch.dev/openapi.json](https://www.socialfetch.dev/openapi.json) - **operationId:** `telegram.channel.get` - **GET `/v1/telegram/channels/{handle}/posts`** — List Telegram channel posts - **Auth:** requires `x-api-key` - **Credits (from OpenAPI extension):** 1 credit per successful request. - **Human docs:** [/docs/api/v1/telegram/channels/handle/posts/get](https://www.socialfetch.dev/docs/api/v1/telegram/channels/handle/posts/get) - **Markdown docs:** [/docs/api/v1/telegram/channels/handle/posts/get.mdx](https://www.socialfetch.dev/docs/api/v1/telegram/channels/handle/posts/get.mdx) - **SDK:** `client.telegram.getChannelPosts({ handle: "durov", cursor? })` - **Parameters:** `handle`, `cursor` - **Accepted identifiers:** handle (path) - **Pagination:** cursor via `cursor` - **Outcome field:** `data.lookupStatus` with values `found`, `not_found`, `restricted` - **OpenAPI:** match `GET /v1/telegram/channels/{handle}/posts` in [https://www.socialfetch.dev/openapi.json](https://www.socialfetch.dev/openapi.json) - **operationId:** `telegram.channel_posts.get` - **GET `/v1/telegram/channels/{handle}/posts/{postId}`** — Get Telegram channel post - **Auth:** requires `x-api-key` - **Credits (from OpenAPI extension):** 1 credit per successful request. - **Human docs:** [/docs/api/v1/telegram/channels/handle/posts/postid/get](https://www.socialfetch.dev/docs/api/v1/telegram/channels/handle/posts/postid/get) - **Markdown docs:** [/docs/api/v1/telegram/channels/handle/posts/postid/get.mdx](https://www.socialfetch.dev/docs/api/v1/telegram/channels/handle/posts/postid/get.mdx) - **SDK:** `client.telegram.getChannelPost({ handle: "Premiumoji", postId: "93" })` - **Parameters:** `handle`, `postId` - **Accepted identifiers:** handle (path), postId (path) - **Outcome field:** `data.lookupStatus` with values `found`, `not_found`, `restricted` - **OpenAPI:** match `GET /v1/telegram/channels/{handle}/posts/{postId}` in [https://www.socialfetch.dev/openapi.json](https://www.socialfetch.dev/openapi.json) - **operationId:** `telegram.channel_post.get` ### Threads - **GET `/v1/threads/profiles/{handle}`** — Get Threads profile - **Auth:** requires `x-api-key` - **Credits (from OpenAPI extension):** 1 credit per successful request. - **Human docs:** [/docs/api/v1/threads/profiles/handle/get](https://www.socialfetch.dev/docs/api/v1/threads/profiles/handle/get) - **Markdown docs:** [/docs/api/v1/threads/profiles/handle/get.mdx](https://www.socialfetch.dev/docs/api/v1/threads/profiles/handle/get.mdx) - **SDK:** `client.threads.getProfile({ handle })` - **Parameters:** `handle` - **Accepted identifiers:** handle (path) - **Outcome field:** `data.lookupStatus` with values `found`, `private`, `not_found` - **OpenAPI:** match `GET /v1/threads/profiles/{handle}` in [https://www.socialfetch.dev/openapi.json](https://www.socialfetch.dev/openapi.json) - **operationId:** `threads.profile.get` - **GET `/v1/threads/profiles/{handle}/posts`** — List Threads profile posts - **Auth:** requires `x-api-key` - **Credits (from OpenAPI extension):** 1 credit per successful request. - **Human docs:** [/docs/api/v1/threads/profiles/handle/posts/get](https://www.socialfetch.dev/docs/api/v1/threads/profiles/handle/posts/get) - **Markdown docs:** [/docs/api/v1/threads/profiles/handle/posts/get.mdx](https://www.socialfetch.dev/docs/api/v1/threads/profiles/handle/posts/get.mdx) - **SDK:** `client.threads.getProfilePosts({ handle, trim? })` - **Parameters:** `handle`, `trim` - **Accepted identifiers:** handle (path) - **Outcome field:** `data.lookupStatus` with values `found`, `not_found` - **Empty results:** An empty `data.posts` array can occur with `lookupStatus: "found"` (no posts in this response) or `lookupStatus: "not_found"` (handle did not resolve). - **Disambiguation:** Call `GET /v1/threads/profiles/{handle}` when you must distinguish `private` from `not_found` before interpreting an empty post list. - **OpenAPI:** match `GET /v1/threads/profiles/{handle}/posts` in [https://www.socialfetch.dev/openapi.json](https://www.socialfetch.dev/openapi.json) - **operationId:** `threads.profile.posts.list` - **GET `/v1/threads/search`** — Search Threads posts - **Auth:** requires `x-api-key` - **Credits (from OpenAPI extension):** 1 credit per successful request. - **Human docs:** [/docs/api/v1/threads/search/get](https://www.socialfetch.dev/docs/api/v1/threads/search/get) - **Markdown docs:** [/docs/api/v1/threads/search/get.mdx](https://www.socialfetch.dev/docs/api/v1/threads/search/get.mdx) - **SDK:** `client.threads.search({ query, startDate?, endDate?, trim? })` - **Parameters:** `query`, `startDate`, `endDate`, `trim` - **Accepted identifiers:** none documented - **OpenAPI:** match `GET /v1/threads/search` in [https://www.socialfetch.dev/openapi.json](https://www.socialfetch.dev/openapi.json) - **operationId:** `threads.search.list` - **GET `/v1/threads/posts`** — Get Threads post - **Auth:** requires `x-api-key` - **Credits (from OpenAPI extension):** 1 credit per successful request. - **Human docs:** [/docs/api/v1/threads/posts/get](https://www.socialfetch.dev/docs/api/v1/threads/posts/get) - **Markdown docs:** [/docs/api/v1/threads/posts/get.mdx](https://www.socialfetch.dev/docs/api/v1/threads/posts/get.mdx) - **SDK:** `client.threads.getPost({ url, trim? })` - **Parameters:** `url`, `trim` - **Accepted identifiers:** url (query) - **Outcome field:** `data.lookupStatus` with values `found`, `not_found` - **OpenAPI:** match `GET /v1/threads/posts` in [https://www.socialfetch.dev/openapi.json](https://www.socialfetch.dev/openapi.json) - **operationId:** `threads.post.get` - **GET `/v1/threads/users/search`** — Search Threads users - **Auth:** requires `x-api-key` - **Credits (from OpenAPI extension):** 1 credit per successful request. - **Human docs:** [/docs/api/v1/threads/users/search/get](https://www.socialfetch.dev/docs/api/v1/threads/users/search/get) - **Markdown docs:** [/docs/api/v1/threads/users/search/get.mdx](https://www.socialfetch.dev/docs/api/v1/threads/users/search/get.mdx) - **SDK:** `client.threads.searchUsers({ query })` - **Parameters:** `query` - **Accepted identifiers:** none documented - **OpenAPI:** match `GET /v1/threads/users/search` in [https://www.socialfetch.dev/openapi.json](https://www.socialfetch.dev/openapi.json) - **operationId:** `threads.users.search` ### Reddit - **GET `/v1/reddit/subreddits`** — Get Reddit subreddit - **Auth:** requires `x-api-key` - **Credits (from OpenAPI extension):** 1 credit per successful request. - **Human docs:** [/docs/api/v1/reddit/subreddits/get](https://www.socialfetch.dev/docs/api/v1/reddit/subreddits/get) - **Markdown docs:** [/docs/api/v1/reddit/subreddits/get.mdx](https://www.socialfetch.dev/docs/api/v1/reddit/subreddits/get.mdx) - **SDK:** `client.reddit.getSubreddit({ subreddit } | { url }) — subreddit names are case-sensitive` - **Parameters:** `subreddit`, `url` - **Accepted identifiers:** url (query) - **Outcome field:** `data.lookupStatus` with values `found`, `not_found` - **OpenAPI:** match `GET /v1/reddit/subreddits` in [https://www.socialfetch.dev/openapi.json](https://www.socialfetch.dev/openapi.json) - **operationId:** `reddit.subreddit.get` - **GET `/v1/reddit/search`** — Search Reddit posts - **Auth:** requires `x-api-key` - **Credits (from OpenAPI extension):** 1 credit per successful request. - **Human docs:** [/docs/api/v1/reddit/search/get](https://www.socialfetch.dev/docs/api/v1/reddit/search/get) - **Markdown docs:** [/docs/api/v1/reddit/search/get.mdx](https://www.socialfetch.dev/docs/api/v1/reddit/search/get.mdx) - **SDK:** `client.reddit.search({ query, sortBy?, timeframe?, cursor?, trim? })` - **Parameters:** `query`, `sortBy`, `timeframe`, `cursor`, `trim` - **Accepted identifiers:** none documented - **Pagination:** cursor via `cursor`, next cursor: `data.page.nextCursor`, has more: `data.page.hasMore` - **Ordering:** Supported sort options: relevance, new, top. - **Disambiguation:** Use `data.page.hasMore` and `data.page.nextCursor` for pagination rather than inferring completion from `data.totalResults` alone. - **OpenAPI:** match `GET /v1/reddit/search` in [https://www.socialfetch.dev/openapi.json](https://www.socialfetch.dev/openapi.json) - **operationId:** `reddit.search.list` ### Rumble - **GET `/v1/rumble/search`** — Search Rumble - **Auth:** requires `x-api-key` - **Credits (from OpenAPI extension):** 1 credit per successful request. - **Human docs:** [/docs/api/v1/rumble/search/get](https://www.socialfetch.dev/docs/api/v1/rumble/search/get) - **Markdown docs:** [/docs/api/v1/rumble/search/get.mdx](https://www.socialfetch.dev/docs/api/v1/rumble/search/get.mdx) - **SDK:** `client.rumble.search({ query, cursor? })` - **Parameters:** `query`, `cursor` - **Accepted identifiers:** none documented - **Pagination:** cursor via `cursor`, next cursor: `data.page.nextCursor`, has more: `data.page.hasMore` - **Disambiguation:** Use `data.page.hasMore` and `data.page.nextCursor` for pagination rather than inferring completion from `data.totalResults` alone. - **OpenAPI:** match `GET /v1/rumble/search` in [https://www.socialfetch.dev/openapi.json](https://www.socialfetch.dev/openapi.json) - **operationId:** `rumble.search.list` - **GET `/v1/rumble/channels/videos`** — List Rumble channel videos - **Auth:** requires `x-api-key` - **Credits (from OpenAPI extension):** 1 credit per successful request. - **Human docs:** [/docs/api/v1/rumble/channels/videos/get](https://www.socialfetch.dev/docs/api/v1/rumble/channels/videos/get) - **Markdown docs:** [/docs/api/v1/rumble/channels/videos/get.mdx](https://www.socialfetch.dev/docs/api/v1/rumble/channels/videos/get.mdx) - **SDK:** `client.rumble.listChannelVideos({ url, cursor? })` - **Parameters:** `url`, `cursor` - **Accepted identifiers:** url (query) - **Pagination:** cursor via `cursor`, next cursor: `data.page.nextCursor`, has more: `data.page.hasMore` - **Outcome field:** `data.lookupStatus` with values `found`, `not_found` - **OpenAPI:** match `GET /v1/rumble/channels/videos` in [https://www.socialfetch.dev/openapi.json](https://www.socialfetch.dev/openapi.json) - **operationId:** `rumble.channel.videos.list` - **GET `/v1/rumble/videos`** — Get Rumble video - **Auth:** requires `x-api-key` - **Credits (from OpenAPI extension):** 1 credit per successful request. - **Human docs:** [/docs/api/v1/rumble/videos/get](https://www.socialfetch.dev/docs/api/v1/rumble/videos/get) - **Markdown docs:** [/docs/api/v1/rumble/videos/get.mdx](https://www.socialfetch.dev/docs/api/v1/rumble/videos/get.mdx) - **SDK:** `client.rumble.getVideo({ url })` - **Parameters:** `url` - **Accepted identifiers:** url (query) - **Outcome field:** `data.lookupStatus` with values `found`, `not_found` - **OpenAPI:** match `GET /v1/rumble/videos` in [https://www.socialfetch.dev/openapi.json](https://www.socialfetch.dev/openapi.json) - **operationId:** `rumble.video.get` - **GET `/v1/rumble/videos/transcript`** — Get Rumble video transcript - **Auth:** requires `x-api-key` - **Credits (from OpenAPI extension):** 1 credit when a transcript is found; no charge when captions are unavailable. - **Human docs:** [/docs/api/v1/rumble/videos/transcript/get](https://www.socialfetch.dev/docs/api/v1/rumble/videos/transcript/get) - **Markdown docs:** [/docs/api/v1/rumble/videos/transcript/get.mdx](https://www.socialfetch.dev/docs/api/v1/rumble/videos/transcript/get.mdx) - **SDK:** `client.rumble.getVideoTranscript({ url })` - **Parameters:** `url` - **Accepted identifiers:** url (query) - **Outcome field:** `data.lookupStatus` with values `found`, `not_found`, `lookup_failed` - **OpenAPI:** match `GET /v1/rumble/videos/transcript` in [https://www.socialfetch.dev/openapi.json](https://www.socialfetch.dev/openapi.json) - **operationId:** `rumble.video.transcript.get` - **GET `/v1/rumble/videos/comments`** — List Rumble video comments - **Auth:** requires `x-api-key` - **Credits (from OpenAPI extension):** 1 credit per successful request. - **Human docs:** [/docs/api/v1/rumble/videos/comments/get](https://www.socialfetch.dev/docs/api/v1/rumble/videos/comments/get) - **Markdown docs:** [/docs/api/v1/rumble/videos/comments/get.mdx](https://www.socialfetch.dev/docs/api/v1/rumble/videos/comments/get.mdx) - **SDK:** `client.rumble.listVideoComments({ url })` - **Parameters:** `url` - **Accepted identifiers:** url (query) - **Outcome field:** `data.lookupStatus` with values `found`, `not_found` - **OpenAPI:** match `GET /v1/rumble/videos/comments` in [https://www.socialfetch.dev/openapi.json](https://www.socialfetch.dev/openapi.json) - **operationId:** `rumble.video.comments.list` ### Reddit - **GET `/v1/reddit/subreddits/{subreddit}/posts`** — List Reddit subreddit posts - **Auth:** requires `x-api-key` - **Credits (from OpenAPI extension):** 1 credit per successful request. - **Human docs:** [/docs/api/v1/reddit/subreddits/subreddit/posts/get](https://www.socialfetch.dev/docs/api/v1/reddit/subreddits/subreddit/posts/get) - **Markdown docs:** [/docs/api/v1/reddit/subreddits/subreddit/posts/get.mdx](https://www.socialfetch.dev/docs/api/v1/reddit/subreddits/subreddit/posts/get.mdx) - **SDK:** `client.reddit.listSubredditPosts({ subreddit, sort?, timeframe?, cursor? }) — subreddit is case-sensitive` - **Parameters:** `subreddit`, `sort`, `timeframe`, `cursor` - **Accepted identifiers:** none documented - **Pagination:** cursor via `cursor`, next cursor: `data.page.nextCursor`, has more: `data.page.hasMore` - **Outcome field:** `data.lookupStatus` with values `found`, `not_found` - **OpenAPI:** match `GET /v1/reddit/subreddits/{subreddit}/posts` in [https://www.socialfetch.dev/openapi.json](https://www.socialfetch.dev/openapi.json) - **operationId:** `reddit.subreddit.posts.list` - **GET `/v1/reddit/subreddits/search`** — Search Reddit subreddit - **Auth:** requires `x-api-key` - **Credits (from OpenAPI extension):** 1 credit per successful request. - **Human docs:** [/docs/api/v1/reddit/subreddits/search/get](https://www.socialfetch.dev/docs/api/v1/reddit/subreddits/search/get) - **Markdown docs:** [/docs/api/v1/reddit/subreddits/search/get.mdx](https://www.socialfetch.dev/docs/api/v1/reddit/subreddits/search/get.mdx) - **SDK:** `client.reddit.searchSubreddit({ subreddit, query?, sort?, timeframe?, cursor? }) — subreddit is case-sensitive` - **Parameters:** `subreddit`, `query`, `sort`, `timeframe`, `cursor` - **Accepted identifiers:** none documented - **Pagination:** cursor via `cursor`, next cursor: `data.page.nextCursor`, has more: `data.page.hasMore` - **Disambiguation:** Use `data.page.hasMore` and `data.page.nextCursor` for pagination rather than inferring completion from `data.totalResults` alone. - **OpenAPI:** match `GET /v1/reddit/subreddits/search` in [https://www.socialfetch.dev/openapi.json](https://www.socialfetch.dev/openapi.json) - **operationId:** `reddit.subreddit.search.list` - **GET `/v1/reddit/posts/comments`** — List Reddit post comments - **Auth:** requires `x-api-key` - **Credits (from OpenAPI extension):** 1 credit per successful request. - **Human docs:** [/docs/api/v1/reddit/posts/comments/get](https://www.socialfetch.dev/docs/api/v1/reddit/posts/comments/get) - **Markdown docs:** [/docs/api/v1/reddit/posts/comments/get.mdx](https://www.socialfetch.dev/docs/api/v1/reddit/posts/comments/get.mdx) - **SDK:** `client.reddit.listPostComments({ url, cursor?, trim? })` - **Parameters:** `url`, `cursor`, `trim` - **Accepted identifiers:** url (query) - **Pagination:** cursor via `cursor`, next cursor: `data.page.nextCursor`, has more: `data.page.hasMore` - **Outcome field:** `data.lookupStatus` with values `found`, `not_found` - **OpenAPI:** match `GET /v1/reddit/posts/comments` in [https://www.socialfetch.dev/openapi.json](https://www.socialfetch.dev/openapi.json) - **operationId:** `reddit.post.comments.list` ### GitHub - **GET `/v1/github/profiles/{handle}`** — Get GitHub profile - **Auth:** requires `x-api-key` - **Credits (from OpenAPI extension):** 1 credit per successful request. - **Human docs:** [/docs/api/v1/github/profiles/handle/get](https://www.socialfetch.dev/docs/api/v1/github/profiles/handle/get) - **Markdown docs:** [/docs/api/v1/github/profiles/handle/get.mdx](https://www.socialfetch.dev/docs/api/v1/github/profiles/handle/get.mdx) - **SDK:** `client.github.getProfile({ handle })` - **Parameters:** `handle` - **Accepted identifiers:** handle (path) - **Outcome field:** `data.lookupStatus` with values `found`, `not_found` - **OpenAPI:** match `GET /v1/github/profiles/{handle}` in [https://www.socialfetch.dev/openapi.json](https://www.socialfetch.dev/openapi.json) - **operationId:** `github.profile.get` - **GET `/v1/github/profiles/{handle}/repositories`** — List GitHub profile repositories - **Auth:** requires `x-api-key` - **Credits (from OpenAPI extension):** 1 credit per successful request. - **Human docs:** [/docs/api/v1/github/profiles/handle/repositories/get](https://www.socialfetch.dev/docs/api/v1/github/profiles/handle/repositories/get) - **Markdown docs:** [/docs/api/v1/github/profiles/handle/repositories/get.mdx](https://www.socialfetch.dev/docs/api/v1/github/profiles/handle/repositories/get.mdx) - **SDK:** `client.github.listProfileRepositories({ handle, cursor?, type?, sort?, direction? })` - **Parameters:** `handle`, `cursor`, `type`, `sort`, `direction` - **Accepted identifiers:** handle (path) - **Pagination:** cursor via `cursor`, next cursor: `data.page.nextCursor`, has more: `data.page.hasMore` - **Outcome field:** `data.lookupStatus` with values `found`, `not_found` - **Empty results:** An empty `data.repositories` array with `lookupStatus: "found"` means the profile resolved but this page returned no repositories. - **OpenAPI:** match `GET /v1/github/profiles/{handle}/repositories` in [https://www.socialfetch.dev/openapi.json](https://www.socialfetch.dev/openapi.json) - **operationId:** `github.profile.repositories.list` - **GET `/v1/github/repositories`** — Get GitHub repository - **Auth:** requires `x-api-key` - **Credits (from OpenAPI extension):** 1 credit per successful request. - **Human docs:** [/docs/api/v1/github/repositories/get](https://www.socialfetch.dev/docs/api/v1/github/repositories/get) - **Markdown docs:** [/docs/api/v1/github/repositories/get.mdx](https://www.socialfetch.dev/docs/api/v1/github/repositories/get.mdx) - **SDK:** `client.github.getRepository({ url })` - **Parameters:** `url` - **Accepted identifiers:** url (query) - **Outcome field:** `data.lookupStatus` with values `found`, `not_found` - **Disambiguation:** Use this endpoint for one repository when you have a full `owner/repo` URL. To list every public repository for a user, use the profile repositories list endpoint instead. - **OpenAPI:** match `GET /v1/github/repositories` in [https://www.socialfetch.dev/openapi.json](https://www.socialfetch.dev/openapi.json) - **operationId:** `github.repositories.get` - **GET `/v1/github/profiles/{handle}/activity`** — List GitHub profile activity - **Auth:** requires `x-api-key` - **Credits (from OpenAPI extension):** 1 credit per successful request. - **Human docs:** [/docs/api/v1/github/profiles/handle/activity/get](https://www.socialfetch.dev/docs/api/v1/github/profiles/handle/activity/get) - **Markdown docs:** [/docs/api/v1/github/profiles/handle/activity/get.mdx](https://www.socialfetch.dev/docs/api/v1/github/profiles/handle/activity/get.mdx) - **SDK:** `client.github.listProfileActivity({ handle, year?, cursor? })` - **Parameters:** `handle`, `year`, `cursor` - **Accepted identifiers:** handle (path) - **Pagination:** cursor via `cursor`, next cursor: `data.page.nextCursor`, has more: `data.page.hasMore` - **Outcome field:** `data.lookupStatus` with values `found`, `not_found` - **Disambiguation:** This endpoint returns one month of public contribution activity per request. Keep the same `year` on follow-up calls and pass `data.page.nextCursor` as `cursor` to page backward through the year. - **OpenAPI:** match `GET /v1/github/profiles/{handle}/activity` in [https://www.socialfetch.dev/openapi.json](https://www.socialfetch.dev/openapi.json) - **operationId:** `github.profile.activity.list` - **GET `/v1/github/profiles/{handle}/followers`** — List GitHub profile followers - **Auth:** requires `x-api-key` - **Credits (from OpenAPI extension):** 1 credit per successful request. - **Human docs:** [/docs/api/v1/github/profiles/handle/followers/get](https://www.socialfetch.dev/docs/api/v1/github/profiles/handle/followers/get) - **Markdown docs:** [/docs/api/v1/github/profiles/handle/followers/get.mdx](https://www.socialfetch.dev/docs/api/v1/github/profiles/handle/followers/get.mdx) - **SDK:** `client.github.listProfileFollowers({ handle, cursor? })` - **Parameters:** `handle`, `cursor` - **Accepted identifiers:** handle (path) - **Pagination:** cursor via `cursor`, next cursor: `data.page.nextCursor`, has more: `data.page.hasMore` - **Outcome field:** `data.lookupStatus` with values `found`, `not_found` - **Empty results:** An empty `data.followers` array with `lookupStatus: "found"` means the profile resolved but this page returned no followers. - **Disambiguation:** Use `lookupStatus` to distinguish found and not_found. Call `GET /v1/github/profiles/{handle}` when you need full profile details. - **OpenAPI:** match `GET /v1/github/profiles/{handle}/followers` in [https://www.socialfetch.dev/openapi.json](https://www.socialfetch.dev/openapi.json) - **operationId:** `github.profile.followers.list` - **GET `/v1/github/profiles/{handle}/following`** — List GitHub profile following - **Auth:** requires `x-api-key` - **Credits (from OpenAPI extension):** 1 credit per successful request. - **Human docs:** [/docs/api/v1/github/profiles/handle/following/get](https://www.socialfetch.dev/docs/api/v1/github/profiles/handle/following/get) - **Markdown docs:** [/docs/api/v1/github/profiles/handle/following/get.mdx](https://www.socialfetch.dev/docs/api/v1/github/profiles/handle/following/get.mdx) - **SDK:** `client.github.listProfileFollowing({ handle, cursor? })` - **Parameters:** `handle`, `cursor` - **Accepted identifiers:** handle (path) - **Pagination:** cursor via `cursor`, next cursor: `data.page.nextCursor`, has more: `data.page.hasMore` - **Outcome field:** `data.lookupStatus` with values `found`, `not_found` - **Empty results:** An empty `data.following` array with `lookupStatus: "found"` means the profile resolved but this page returned no accounts (for example the profile follows nobody). - **Disambiguation:** Use `lookupStatus` to distinguish found and not_found. Call `GET /v1/github/profiles/{handle}` when you need full profile details. - **OpenAPI:** match `GET /v1/github/profiles/{handle}/following` in [https://www.socialfetch.dev/openapi.json](https://www.socialfetch.dev/openapi.json) - **operationId:** `github.profile.following.list` - **GET `/v1/github/profiles/{handle}/contributions`** — Get GitHub contribution graph - **Auth:** requires `x-api-key` - **Credits (from OpenAPI extension):** 1 credit per successful request. - **Human docs:** [/docs/api/v1/github/profiles/handle/contributions/get](https://www.socialfetch.dev/docs/api/v1/github/profiles/handle/contributions/get) - **Markdown docs:** [/docs/api/v1/github/profiles/handle/contributions/get.mdx](https://www.socialfetch.dev/docs/api/v1/github/profiles/handle/contributions/get.mdx) - **SDK:** `client.github.getProfileContributions({ handle, year? })` - **Parameters:** `handle`, `year` - **Accepted identifiers:** handle (path) - **Outcome field:** `data.lookupStatus` with values `found`, `not_found` - **Disambiguation:** Optional `year` defaults to the current calendar year when omitted. Contribution counts reflect public GitHub activity for that year. - **OpenAPI:** match `GET /v1/github/profiles/{handle}/contributions` in [https://www.socialfetch.dev/openapi.json](https://www.socialfetch.dev/openapi.json) - **operationId:** `github.profile.contributions.get` - **GET `/v1/github/trending/repositories`** — List trending GitHub repositories - **Auth:** requires `x-api-key` - **Credits (from OpenAPI extension):** 1 credit per successful request. - **Human docs:** [/docs/api/v1/github/trending/repositories/get](https://www.socialfetch.dev/docs/api/v1/github/trending/repositories/get) - **Markdown docs:** [/docs/api/v1/github/trending/repositories/get.mdx](https://www.socialfetch.dev/docs/api/v1/github/trending/repositories/get.mdx) - **SDK:** `client.github.listTrendingRepositories({ language?, since?, spokenLanguageCode? })` - **Parameters:** `language`, `since`, `spokenLanguageCode` - **Accepted identifiers:** none documented - **Empty results:** An empty `data.repositories` array means GitHub returned no trending repositories for the selected filters. - **Disambiguation:** Use `since` (`daily`, `weekly`, `monthly`) and optional `language` / `spokenLanguageCode` to narrow results. For trending developers instead of repositories, use the trending developers endpoint. - **OpenAPI:** match `GET /v1/github/trending/repositories` in [https://www.socialfetch.dev/openapi.json](https://www.socialfetch.dev/openapi.json) - **operationId:** `github.trending.repositories.list` - **GET `/v1/github/trending/developers`** — List trending GitHub developers - **Auth:** requires `x-api-key` - **Credits (from OpenAPI extension):** 1 credit per successful request. - **Human docs:** [/docs/api/v1/github/trending/developers/get](https://www.socialfetch.dev/docs/api/v1/github/trending/developers/get) - **Markdown docs:** [/docs/api/v1/github/trending/developers/get.mdx](https://www.socialfetch.dev/docs/api/v1/github/trending/developers/get.mdx) - **SDK:** `client.github.listTrendingDevelopers({ language?, since? })` - **Parameters:** `language`, `since` - **Accepted identifiers:** none documented - **Empty results:** An empty `data.developers` array means GitHub returned no trending developers for the selected filters. - **Disambiguation:** Use `since` (`daily`, `weekly`, `monthly`) and optional `language` to narrow results. Each developer may include `popularRepository` when GitHub highlights one. For trending repositories instead of developers, use the trending repositories endpoint. - **OpenAPI:** match `GET /v1/github/trending/developers` in [https://www.socialfetch.dev/openapi.json](https://www.socialfetch.dev/openapi.json) - **operationId:** `github.trending.developers.list` ### Spotify - **GET `/v1/spotify/artist`** — Get Spotify artist - **Auth:** requires `x-api-key` - **Credits (from OpenAPI extension):** 1 credit per successful request. - **Human docs:** [/docs/api/v1/spotify/artist/get](https://www.socialfetch.dev/docs/api/v1/spotify/artist/get) - **Markdown docs:** [/docs/api/v1/spotify/artist/get.mdx](https://www.socialfetch.dev/docs/api/v1/spotify/artist/get.mdx) - **SDK:** `client.spotify.getArtist({ artistId?, url? })` - **Parameters:** `artistId`, `url` - **Accepted identifiers:** url (query) - **Outcome field:** `data.lookupStatus` with values `found`, `not_found` - **OpenAPI:** match `GET /v1/spotify/artist` in [https://www.socialfetch.dev/openapi.json](https://www.socialfetch.dev/openapi.json) - **operationId:** `spotify.artist.get` - **GET `/v1/spotify/album`** — Get Spotify album - **Auth:** requires `x-api-key` - **Credits (from OpenAPI extension):** 1 credit per successful request. - **Human docs:** [/docs/api/v1/spotify/album/get](https://www.socialfetch.dev/docs/api/v1/spotify/album/get) - **Markdown docs:** [/docs/api/v1/spotify/album/get.mdx](https://www.socialfetch.dev/docs/api/v1/spotify/album/get.mdx) - **SDK:** `client.spotify.getAlbum({ albumId?, url? })` - **Parameters:** `albumId`, `url` - **Accepted identifiers:** url (query) - **Outcome field:** `data.lookupStatus` with values `found`, `not_found` - **OpenAPI:** match `GET /v1/spotify/album` in [https://www.socialfetch.dev/openapi.json](https://www.socialfetch.dev/openapi.json) - **operationId:** `spotify.album.get` - **GET `/v1/spotify/track`** — Get Spotify track - **Auth:** requires `x-api-key` - **Credits (from OpenAPI extension):** 1 credit per successful request. - **Human docs:** [/docs/api/v1/spotify/track/get](https://www.socialfetch.dev/docs/api/v1/spotify/track/get) - **Markdown docs:** [/docs/api/v1/spotify/track/get.mdx](https://www.socialfetch.dev/docs/api/v1/spotify/track/get.mdx) - **SDK:** `client.spotify.getTrack({ trackId?, url? })` - **Parameters:** `trackId`, `url` - **Accepted identifiers:** url (query) - **Outcome field:** `data.lookupStatus` with values `found`, `not_found` - **OpenAPI:** match `GET /v1/spotify/track` in [https://www.socialfetch.dev/openapi.json](https://www.socialfetch.dev/openapi.json) - **operationId:** `spotify.track.get` ### Web - **GET `/v1/web/search`** — Search the web - **Auth:** requires `x-api-key` - **Credits (from OpenAPI extension):** 1 credit per successful request. - **Human docs:** [/docs/api/v1/web/search/get](https://www.socialfetch.dev/docs/api/v1/web/search/get) - **Markdown docs:** [/docs/api/v1/web/search/get.mdx](https://www.socialfetch.dev/docs/api/v1/web/search/get.mdx) - **SDK:** `client.web.search({ query: "Social media scraping API", region: "US" })` - **Parameters:** `query`, `region`, `datePosted`, `page` - **Accepted identifiers:** none documented - **OpenAPI:** match `GET /v1/web/search` in [https://www.socialfetch.dev/openapi.json](https://www.socialfetch.dev/openapi.json) - **operationId:** `web.search.run` - **GET `/v1/web/markdown`** — Generate web page markdown - **Auth:** requires `x-api-key` - **Credits (from OpenAPI extension):** 1 credit per successful request. - **Human docs:** [/docs/api/v1/web/markdown/get](https://www.socialfetch.dev/docs/api/v1/web/markdown/get) - **Markdown docs:** [/docs/api/v1/web/markdown/get.mdx](https://www.socialfetch.dev/docs/api/v1/web/markdown/get.mdx) - **SDK:** `client.web.getMarkdown({ url: "https://www.socialfetch.dev/" })` - **Parameters:** `url`, `filter`, `query`, `cacheMode` - **Accepted identifiers:** url (query) - **Outcome field:** `data.lookupStatus` with values `found`, `restricted` - **OpenAPI:** match `GET /v1/web/markdown` in [https://www.socialfetch.dev/openapi.json](https://www.socialfetch.dev/openapi.json) - **operationId:** `web.markdown.generate` - **GET `/v1/web/ask`** — Ask a question about a web page - **Auth:** requires `x-api-key` - **Credits (from OpenAPI extension):** 1 credit per successful request. - **Human docs:** [/docs/api/v1/web/ask/get](https://www.socialfetch.dev/docs/api/v1/web/ask/get) - **Markdown docs:** [/docs/api/v1/web/ask/get.mdx](https://www.socialfetch.dev/docs/api/v1/web/ask/get.mdx) - **SDK:** `client.web.ask({ url: "https://www.socialfetch.dev/", q: "What is this page about?" })` - **Parameters:** `url`, `q` - **Accepted identifiers:** url (query) - **Outcome field:** `data.lookupStatus` with values `found`, `restricted` - **OpenAPI:** match `GET /v1/web/ask` in [https://www.socialfetch.dev/openapi.json](https://www.socialfetch.dev/openapi.json) - **operationId:** `web.ask.run` - **GET `/v1/web/html`** — Generate web page HTML - **Auth:** requires `x-api-key` - **Credits (from OpenAPI extension):** 1 credit per successful request. - **Human docs:** [/docs/api/v1/web/html/get](https://www.socialfetch.dev/docs/api/v1/web/html/get) - **Markdown docs:** [/docs/api/v1/web/html/get.mdx](https://www.socialfetch.dev/docs/api/v1/web/html/get.mdx) - **SDK:** `client.web.getHtml({ url: "https://www.socialfetch.dev/" })` - **Parameters:** `url` - **Accepted identifiers:** url (query) - **Outcome field:** `data.lookupStatus` with values `found`, `restricted` - **OpenAPI:** match `GET /v1/web/html` in [https://www.socialfetch.dev/openapi.json](https://www.socialfetch.dev/openapi.json) - **operationId:** `web.html.generate` - **GET `/v1/web/crawl`** — Crawl web pages - **Auth:** requires `x-api-key` - **Credits (from OpenAPI extension):** 1 credit per URL requested. Up to 5 URLs per request (5 credits max). - **Human docs:** [/docs/api/v1/web/crawl/get](https://www.socialfetch.dev/docs/api/v1/web/crawl/get) - **Markdown docs:** [/docs/api/v1/web/crawl/get.mdx](https://www.socialfetch.dev/docs/api/v1/web/crawl/get.mdx) - **SDK:** `client.web.crawl({ urls: ["https://www.socialfetch.dev/"] })` - **Parameters:** `url` - **Accepted identifiers:** url (query) - **OpenAPI:** match `GET /v1/web/crawl` in [https://www.socialfetch.dev/openapi.json](https://www.socialfetch.dev/openapi.json) - **operationId:** `web.crawl.run` ## Operation count - **Documented operations with on-site reference pages:** 111 - **Operations with typed SDK wrappers:** 111 - **HTTP-only documented operations:** 0