# Docs - Documentation: Guides, concepts, and gateway conventions for UnifAPI. - [UnifAPI Docs](/): Developer docs for the UnifAPI public data API gateway, including quickstart, authentication, canonical schemas, errors, rate limits, OpenAPI, and MCP. - [Quickstart](/quickstart): Make your first call to UnifAPI in under two minutes. - [Core concepts](/concepts): The vocabulary used across the gateway, schemas, and pagination. - **Reference** - [Authentication](/authentication): API keys, headers, and rotation. - [Errors](/errors): Every error UnifAPI returns, what it means, and how to recover. - [Rate limits](/rate-limits): Per-workspace and per-endpoint limits, headers, and retry behavior. - **Integrations** - [MCP server](/mcp): Use UnifAPI from Claude, Cursor, and any MCP-compatible client. - API Reference: Auto-generated from apps/api/public/openapi.json. Every operation has a dedicated page with the canonical request/response shapes. - [API Reference](/api): Every UnifAPI endpoint, auto-generated from the unified OpenAPI 3.1 spec. - Bilibili: Public-data Bilibili endpoints (Web surface). Path keys use numeric `uid` for users and `bv_id` (the URL slug, e.g. `BV1Bo4y1y79G`) for videos. - [Bilibili (哔哩哔哩) API](/api/bilibili): Public-data Bilibili endpoints (Web surface). - [Get a Bilibili dynamic by id](/api/bilibili/dynamics/id/get) - [List Bilibili's current hot search terms](/api/bilibili/hot-search/get) - [Search Bilibili videos by keyword](/api/bilibili/search/get) - [List a Bilibili user's dynamic (timeline) entries](/api/bilibili/users/uid/dynamic/get) - [Get a Bilibili user's follower/following counts](/api/bilibili/users/uid/relation-stat/get) - [List videos uploaded by a Bilibili user](/api/bilibili/users/uid/videos/get) - [Get a Bilibili video by BV id](/api/bilibili/videos/bv_id/get) - Instagram: Public-data Instagram endpoints (V3 surface). Path keys use the URL-visible slugs (`username` for users, `shortcode` for posts). `/users/{username}` and `/posts/{shortcode}/comments/{commentId}/replies` cost two upstream calls — see ADR 0006 / ADR 0007 Rule 7. `media_id` and `user_id` are surfaced on responses so callers can cache the mapping. - [Instagram API](/api/instagram): Public-data Instagram endpoints (V3 surface). - [Browse Instagram's Explore feed](/api/instagram/explore/get) - [List Instagram locations geographically near a given location](/api/instagram/locations/id/nearby/get) - [List posts tagged with an Instagram location](/api/instagram/locations/id/posts/get) - [Get an Instagram location by id](/api/instagram/locations/id/get) - [List replies to an Instagram comment](/api/instagram/posts/shortcode/comments/commentId/replies/get) - [List comments on an Instagram post](/api/instagram/posts/shortcode/comments/get) - [Get an Instagram post (photo / video / carousel / reel) by shortcode](/api/instagram/posts/shortcode/get): `shortcode` is the slug from the post URL, e.g. `DUajw4YkorV` in `instagram.com/p/DUajw4YkorV/`. - [Browse Instagram's recommended Reels feed](/api/instagram/reels/recommended/get) - [Convert an Instagram post shortcode into its numeric media_id](/api/instagram/resolve/media-id/get) - [Convert an Instagram numeric media_id into its shortcode](/api/instagram/resolve/shortcode-from-media/get) - [Extract a post shortcode from an Instagram URL](/api/instagram/resolve/shortcode/get) - [Convert an Instagram username into its numeric user_id (pk)](/api/instagram/resolve/user-id/get) - [Cross-type Instagram search (posts/reels)](/api/instagram/search/get) - [List followers of an Instagram user](/api/instagram/users/username/followers/get) - [List accounts an Instagram user follows](/api/instagram/users/username/following/get) - [List former usernames for an Instagram user](/api/instagram/users/username/former-usernames/get) - [List Instagram highlight reels for a user (metadata only)](/api/instagram/users/username/highlights/get) - [List feed posts authored by an Instagram user](/api/instagram/users/username/posts/get) - [List reels authored by an Instagram user](/api/instagram/users/username/reels/get) - [Get an Instagram user profile by username](/api/instagram/users/username/get): Returns the canonical Instagram profile for the given URL slug (`username`). Costs 2 upstream calls (gateway resolves `user_id` first). - [List active Instagram stories for a user](/api/instagram/users/username/stories/get): Returns the user's currently-live story tray (empty when the user has no active stories). - [List posts an Instagram user is tagged in](/api/instagram/users/username/tagged-posts/get) - Kuaishou: Public-data Kuaishou / 快手 endpoints (App surface). Path keys use opaque `user_id` for users and `photo_id` for videos. - [Kuaishou (快手) API](/api/kuaishou): Public-data Kuaishou / 快手 endpoints (App surface). - [List Kuaishou hot-board categories](/api/kuaishou/hot-boards/get) - [List Kuaishou trending personalities](/api/kuaishou/hot-search/persons/get) - [Search Kuaishou videos by keyword](/api/kuaishou/search/get) - [List a Kuaishou user's top-performing videos](/api/kuaishou/users/user_id/hot-posts/get) - [Check whether a Kuaishou user is currently broadcasting](/api/kuaishou/users/user_id/live-info/get) - [Get a Kuaishou user profile](/api/kuaishou/users/user_id/get) - [List comments on a Kuaishou video](/api/kuaishou/videos/photo_id/comments/get) - Lemon8: Public-data Lemon8 endpoints (App surface). Path keys use numeric `user_id` for users and `item_id` for posts. - [Lemon8 API](/api/lemon8): Public-data Lemon8 endpoints (App surface). - [List Lemon8 trending search keywords](/api/lemon8/hot-search/keywords/get) - [List Lemon8 followers of a user](/api/lemon8/users/user_id/followers/get) - [List Lemon8 accounts a user follows](/api/lemon8/users/user_id/following/get) - [Get a Lemon8 user profile](/api/lemon8/users/user_id/get) - Linkedin: Public-data LinkedIn endpoints. Path keys use LinkedIn URL slugs (`public_identifier` for users, `universal_name` for companies). Some sub-resources incur two upstream calls to resolve the URL slug into LinkedIn's internal URN / numeric id — see ADR 0006. - [LinkedIn API](/api/linkedin): Public-data LinkedIn endpoints. - [Get a LinkedIn Ad Library entry by ID](/api/linkedin/ads/id/get) - [List a LinkedIn company's affiliated pages](/api/linkedin/companies/slug/affiliated/get) - [Get the number of active jobs at a LinkedIn company](/api/linkedin/companies/slug/job-count/get) - [List active job postings at a LinkedIn company](/api/linkedin/companies/slug/jobs/get) - [Get a LinkedIn company's aggregated member insights](/api/linkedin/companies/slug/member-insights/get) - [List employees of a LinkedIn company](/api/linkedin/companies/slug/people/get) - [List posts published by a LinkedIn company page](/api/linkedin/companies/slug/posts/get) - [Get a LinkedIn company profile by URL slug](/api/linkedin/companies/slug/get) - [List posts in a LinkedIn group](/api/linkedin/groups/id/posts/get) - [Get a LinkedIn group by ID](/api/linkedin/groups/id/get) - [Get a LinkedIn job posting by ID](/api/linkedin/jobs/id/get) - [List replies to a LinkedIn comment](/api/linkedin/posts/id/comments/comment_id/replies/get): `cursor` here is LinkedIn's `previous_replies_token`. On the first page, send no cursor — LinkedIn's upstream still expects the param, so the gateway passes `-` as the sentinel it documents. - [List top-level comments on a LinkedIn post](/api/linkedin/posts/id/comments/get) - [List users who reacted to a LinkedIn post](/api/linkedin/posts/id/reactions/get) - [List reposts of a LinkedIn post](/api/linkedin/posts/id/reposts/get) - [Get a LinkedIn post by ID](/api/linkedin/posts/id/get) - [Search the LinkedIn Ad Library](/api/linkedin/search/ads/get) - [Resolve a free-text industry name to LinkedIn industry IDs](/api/linkedin/search/industries/get) - [Search LinkedIn jobs by keyword and filters](/api/linkedin/search/jobs/get) - [Resolve a free-text location into LinkedIn geocode tokens](/api/linkedin/search/locations/get) - [Search LinkedIn people by name, title, company, etc.](/api/linkedin/search/people/get) - [Search LinkedIn posts by keyword](/api/linkedin/search/posts/get) - [Search LinkedIn schools by keyword](/api/linkedin/search/schools/get) - [Get a LinkedIn profile's 'about' metadata](/api/linkedin/users/username/about/get): Returns the timeline metadata block (joined date, contact freshness, profile photo freshness). Costs 2 upstream calls (ADR 0006). - [List a LinkedIn user's certifications](/api/linkedin/users/username/certifications/get) - [List comments authored by a LinkedIn user](/api/linkedin/users/username/comments/get) - [Get a LinkedIn user's public contact info](/api/linkedin/users/username/contact/get): Returns the contact block (websites, phone numbers, twitter handles, address, wechat) the user has chosen to publish on LinkedIn. - [List a LinkedIn user's education](/api/linkedin/users/username/educations/get) - [List a LinkedIn user's work experience](/api/linkedin/users/username/experience/get) - [Get a LinkedIn user's follower & connection counts](/api/linkedin/users/username/follower-count/get) - [List a LinkedIn user's honors and awards](/api/linkedin/users/username/honors/get) - [List image posts authored by a LinkedIn user](/api/linkedin/users/username/images/get) - [List companies a LinkedIn user follows](/api/linkedin/users/username/interests/companies/get) - [List LinkedIn groups a user follows](/api/linkedin/users/username/interests/groups/get) - [List posts authored by a LinkedIn user](/api/linkedin/users/username/posts/get) - [List a LinkedIn user's publications](/api/linkedin/users/username/publications/get) - [List reactions a LinkedIn user has placed on posts](/api/linkedin/users/username/reactions/get) - [List recommendations written for a LinkedIn user](/api/linkedin/users/username/recommendations/get) - [Get a LinkedIn user profile by URL slug](/api/linkedin/users/username/get): Returns the canonical LinkedIn profile for the given URL slug (`public_identifier`). Returns 404 not_found if no such user exists. - [List a LinkedIn user's skills](/api/linkedin/users/username/skills/get) - [List video posts authored by a LinkedIn user](/api/linkedin/users/username/videos/get) - [List a LinkedIn user's volunteer experience](/api/linkedin/users/username/volunteers/get) - Pipixia: Public-data PiPiXia / 皮皮虾 endpoints (App surface). Path keys use numeric `user_id` for users and `cell_id` for posts. - [PiPiXia (皮皮虾) API](/api/pipixia): Public-data PiPiXia / 皮皮虾 endpoints (App surface). - [List PiPiXia trending search words](/api/pipixia/hot-search/words/get) - [List PiPiXia followers of a user](/api/pipixia/users/user_id/followers/get) - [List PiPiXia accounts a user follows](/api/pipixia/users/user_id/following/get) - [List PiPiXia posts by user](/api/pipixia/users/user_id/posts/get) - [Get a PiPiXia user profile](/api/pipixia/users/user_id/get) - Reddit: Public-data Reddit endpoints (APP surface). Path keys use `username` for users, `subreddit_name` for subreddits, and `post_id` (the `t3_*` fullname) for posts. - [Reddit API](/api/reddit): Public-data Reddit endpoints (APP surface). - [Browse Reddit's anonymous home feed](/api/reddit/feed/home/get) - [Browse Reddit's news feed](/api/reddit/feed/news/get) - [Browse Reddit's popular feed](/api/reddit/feed/popular/get) - [List Reddit comments on a post](/api/reddit/posts/id/comments/get) - [Get a Reddit post by id](/api/reddit/posts/id/get) - [Get a Reddit subreddit by name](/api/reddit/subreddits/name/get) - [List Reddit's current trending search queries](/api/reddit/trending-searches/get) - [List Reddit comments authored by a user](/api/reddit/users/username/comments/get) - [List Reddit posts authored by a user](/api/reddit/users/username/posts/get) - [Get a Reddit user profile by username](/api/reddit/users/username/get) - Threads: Public-data Threads endpoints (Web surface). Path keys use `username` for users and `post_id` for posts. - [Threads API](/api/threads): Public-data Threads endpoints (Web surface). - [Search Threads users by keyword](/api/threads/search/profiles/get) - [Search recent Threads posts](/api/threads/search/recent/get) - [Search top Threads posts](/api/threads/search/top/get) - [List Threads posts authored by a user](/api/threads/users/username/posts/get) - [List Threads replies authored by a user](/api/threads/users/username/replies/get) - [List Threads reposts by a user](/api/threads/users/username/reposts/get) - [Get a Threads user profile by username](/api/threads/users/username/get) - Tiktok: Public-data TikTok endpoints. All identity-shaped responses use the canonical Video / User / Comment / Music / Hashtag / LiveRoom shapes. - [TikTok API](/api/tiktok): Public-data TikTok endpoints. - [Get TikTok home-feed recommendation videos](/api/tiktok/feed/recommended/post): Returns recommendation videos from TikTok's home feed. Optionally pass the caller's TikTok cookie in the request body for personalized recs; without it the response is a generic recommendation set. - [Get a TikTok hashtag by ID](/api/tiktok/hashtags/id/get) - [List videos tagged with a TikTok hashtag](/api/tiktok/hashtags/id/videos/get) - [Get a TikTok live room by ID](/api/tiktok/lives/room_id/get) - [Check whether a TikTok live room is online](/api/tiktok/lives/room_id/status/get) - [List today's trending TikTok live rooms (ranking)](/api/tiktok/lives/trending/get): Returns the daily-rank trending TikTok live rooms. Each entry is a thin ranking row (rank + score + room_id + minimal creator info). Call /tiktok/lives/{room_id} to fetch the full live-room object. - [Get a TikTok music track by ID](/api/tiktok/music/id/get) - [List videos using a TikTok music track](/api/tiktok/music/id/videos/get) - [List TikTok trending music charts](/api/tiktok/music/charts/get) - [Search TikTok hashtags by keyword](/api/tiktok/search/hashtags/get) - [Search TikTok live rooms by keyword](/api/tiktok/search/lives/get) - [Search TikTok music by keyword](/api/tiktok/search/music/get) - [General TikTok search (returns videos)](/api/tiktok/search/get): Returns videos matching the keyword `q` from TikTok's mixed-type general search. Non-video result types are filtered out — call the type-specific endpoints (/tiktok/search/users, /tiktok/search/hashtags, /tiktok/search/music, /tiktok/search/lives) when needed. - [Search TikTok users by keyword](/api/tiktok/search/users/get) - [Search TikTok videos by keyword](/api/tiktok/search/videos/get): Returns a paginated list of TikTok videos matching the keyword `q`. Use `next_cursor` from the response as the next request's `cursor`. When `has_more` is false, `next_cursor` is null. - [List a TikTok user's followers](/api/tiktok/users/id/followers/get): Returns a paginated list of users following the given user. - [List users a TikTok user is following](/api/tiktok/users/id/following/get): Returns a paginated list of users the given user is following. - [List videos liked by a TikTok user](/api/tiktok/users/id/likes/get): Returns a paginated list of videos the user has liked (where the user has made their likes public). Empty when likes are hidden. - [Get a TikTok user profile by sec_uid](/api/tiktok/users/id/get): Returns the canonicalized public profile for the TikTok user with the given sec_uid. Returns 404 not_found if the user does not exist or is private. - [List TikTok users similar to the given user](/api/tiktok/users/id/similar/get): Returns a paginated list of users TikTok recommends as similar to the given user. The `limit` parameter is best-effort — upstream may ignore it. - [List videos posted by a TikTok user](/api/tiktok/users/id/videos/get): Returns a paginated list of public videos posted by the user with the given sec_uid. Use `next_cursor` from the response as the next request's `cursor`. When `has_more` is false, `next_cursor` is null. - [Resolve a TikTok username to a user id](/api/tiktok/users/resolve/get): Accepts a public TikTok username (handle) and returns the user's stable opaque id (sec_uid) that other /tiktok/users/{id} endpoints accept. Returns 404 not_found if no user with that username exists. - [List replies to a TikTok comment](/api/tiktok/videos/id/comments/comment_id/replies/get) - [List top-level comments on a TikTok video](/api/tiktok/videos/id/comments/get): Returns a paginated list of top-level comments on the given video. Use `next_cursor` from the response as the next request's `cursor`. When `has_more` is false, `next_cursor` is null. - [Get a TikTok video by ID](/api/tiktok/videos/id/get): Returns canonicalized metadata for a single TikTok video. The `{id}` must be the numeric TikTok video id (aweme_id). Returns 404 not_found if the video is missing, deleted, or private. Returns 400 invalid_id if the upstream rejects the id format. - [Batch-fetch TikTok videos by ID](/api/tiktok/videos/batch/post): Returns canonicalized metadata for up to 50 videos in a single call. Request body is a JSON array of numeric TikTok video IDs. - [Resolve a TikTok share URL to a video](/api/tiktok/videos/resolve/get): Accepts a TikTok share URL (long or short / vm.tiktok.com) and returns the canonical Video object. The host must be one of: www.tiktok.com, tiktok.com, m.tiktok.com, vm.tiktok.com, vt.tiktok.com. Returns 404 not_found if the URL is invalid or the video is missing/deleted/private. - Twitter: Public-data Twitter / X endpoints (Web surface). Path keys use `screen_name` (URL handle, without `@`) for users and `tweet_id` for tweets. The numeric user `id` (`rest_id`) is surfaced on responses for callers that need it. - [Twitter / X API](/api/twitter): Public-data Twitter / X endpoints (Web surface). - [Search Twitter / X tweets by keyword](/api/twitter/search/get) - [List current Twitter / X trends](/api/twitter/trending/get) - [List replies to a Twitter / X tweet](/api/twitter/tweets/id/comments/get) - [Get a Twitter / X tweet by id](/api/twitter/tweets/id/get) - [List followers of a Twitter / X user](/api/twitter/users/screen_name/followers/get) - [List accounts a Twitter / X user follows](/api/twitter/users/screen_name/following/get) - [List tweets with media authored by a user](/api/twitter/users/screen_name/media/get) - [Get a Twitter / X user profile by screen_name](/api/twitter/users/screen_name/get) - [List tweets and replies authored by a user](/api/twitter/users/screen_name/tweet-replies/get) - [List tweets authored by a Twitter / X user](/api/twitter/users/screen_name/tweets/get) - Weibo: Public-data Weibo endpoints (Web-V2 surface). Path keys use numeric `uid` for users and numeric `id` for posts. - [Weibo (微博) API](/api/weibo): Public-data Weibo endpoints (Web-V2 surface). - [List Weibo realtime trending topics](/api/weibo/hot-search/get) - [List comments on a Weibo post](/api/weibo/posts/id/comments/get) - [Get a Weibo post by id](/api/weibo/posts/id/get) - [List Weibo followers of a user](/api/weibo/users/uid/fans/get) - [List accounts a Weibo user follows](/api/weibo/users/uid/following/get) - [List Weibo posts by a user](/api/weibo/users/uid/posts/get) - [Get a Weibo user profile by uid](/api/weibo/users/uid/get) - Xiaohongshu: Public-data Xiaohongshu / 小红书 endpoints (Web-V3 surface). Path keys use 24-character hex `user_id` for users and `note_id` for notes. Note detail and comments additionally require an `xsec_token` query param (returned by upstream alongside `note_id`). - [Xiaohongshu (小红书) API](/api/xiaohongshu): Public-data Xiaohongshu / 小红书 endpoints (Web-V3 surface). - [Browse Xiaohongshu's anonymous home feed](/api/xiaohongshu/homefeed/get) - [List comments on a Xiaohongshu note (requires xsec_token)](/api/xiaohongshu/notes/id/comments/get) - [Get a Xiaohongshu note by id (requires xsec_token)](/api/xiaohongshu/notes/id/get) - [Search Xiaohongshu notes by keyword](/api/xiaohongshu/search/notes/get) - [Search Xiaohongshu users by keyword](/api/xiaohongshu/search/users/get) - [List Xiaohongshu notes by user](/api/xiaohongshu/users/id/notes/get) - [Get a Xiaohongshu user profile](/api/xiaohongshu/users/id/get) - Youtube: Public-data YouTube endpoints (Web surface). Path keys use `channel_id` for channels and `video_id` for videos. - [YouTube API](/api/youtube): Public-data YouTube endpoints (Web surface). - [Get a YouTube channel by id](/api/youtube/channels/channel_id/get) - [List Shorts uploaded by a YouTube channel](/api/youtube/channels/channel_id/shorts/get) - [List videos uploaded by a YouTube channel](/api/youtube/channels/channel_id/videos/get) - [Resolve a YouTube channel URL to its UC… channel id](/api/youtube/resolve/channel-id/get) - [Search YouTube videos by keyword](/api/youtube/search/get) - [Browse YouTube's trending videos](/api/youtube/trending/get) - [List YouTube videos related to a given video](/api/youtube/videos/video_id/related/get) - [Get a YouTube video by id](/api/youtube/videos/video_id/get) - Zhihu: Public-data Zhihu / 知乎 endpoints (Web surface). Path keys use `user_url_token` (URL slug, e.g. `excited-vczh`) for users and numeric ids for questions / answers / articles. - [Zhihu (知乎) API](/api/zhihu): Public-data Zhihu / 知乎 endpoints (Web surface). - [List Zhihu's current trending questions](/api/zhihu/hot-list/get) - [List answers to a Zhihu question](/api/zhihu/questions/id/answers/get) - [List Zhihu articles by user](/api/zhihu/users/url_token/articles/get) - [List accounts a Zhihu user follows](/api/zhihu/users/url_token/followees/get) - [List Zhihu followers of a user](/api/zhihu/users/url_token/followers/get) - [Get a Zhihu user profile by url_token](/api/zhihu/users/url_token/get)