Social Media APIs
50 production-grade social media APIs on upAPI. Every endpoint below is live behind the same gateway, takes the same API key, and returns JSON — no per-provider signup, no per-provider billing.
Chatous Check Session
Check whether a Chatous connect.sid cookie is still accepted. Returns Chatous's own verdict (0 authenticated, 1111 anonymous or expired) so an expired session is reported as data rather than as a failure.
Chatous Get Account State
Read a Chatous account's own profile, its open conversations and their message history in one bounded WebSocket read. Chatous exposes no REST endpoint for any of this, so the socket's opening burst is the only source.
Chatous Poll Events
Listen on a Chatous account's WebSocket for a bounded window and return the events that arrived: new matches with the partner's profile, incoming messages, chat disconnects and queue acknowledgements.
Check Reddit Account Health
Check the health and status of a Reddit account. Pass sessionCookies for the reliable authenticated read (required for new/low-karma accounts); otherwise falls back to parsing the public profile.
Check Reddit Comment Visibility
Detect shadowban/auto-removal: read a comment's focused permalink JSON as a non-author and report whether it is actually visible to the public.
Get Bluesky Profile
Fetch a Bluesky (AT Protocol) profile by handle or DID. Returns display name, description, avatar/banner, follower and post counts, labels, and DID. Uses the public AppView - no auth required.
Get Contra Company Profile
Read one contra.com company profile by its slug: name, description, website, location, year founded, verification badge, review count and the client statistics Contra publishes (average rating, projects hired, total spend). Reads Contra's public page — no Contra account is required.
Get Contra Opportunity
Read one contra.com freelance opportunity by its slug: title, full description, budget range, required roles and tools, application window, and the hiring company with its review count and spend statistics. Reads Contra's public page — no Contra account is required.
Get LinkedIn Job Details
Fetch one LinkedIn job posting: full description, seniority level, employment type, job function, industries, applicant count and posting age. Accepts the job id from linkedin-jobs-search, a job URL or a urn:li:jobPosting URN. Reads LinkedIn's public guest surface — no LinkedIn account or cookie is required.
Get Mastodon Profile
Look up a Mastodon account by fully-qualified handle (e.g. Gargron@mastodon.social). Works against any Mastodon instance via its open REST API - no auth needed.
Get Subreddit Info
Fetch subreddit metadata: subscriber count, description, rules, active users and appearance settings. Requires a Reddit session cookie in sessionCookies (obtain it from reddit-login.post, or copy reddit_session out of a signed-in browser) — Reddit has blocked every anonymous read surface since 2026-07-30.
Get Trending Reddit Posts
Fetch trending, hot, rising, top, or new posts from any subreddit with pagination and time filtering. Requires a Reddit session cookie in sessionCookies (obtain it from reddit-login.post, or copy reddit_session out of a signed-in browser) — Reddit has blocked every anonymous read surface since 2026-07-30.
Get Upwork Job Details
Read one Upwork job posting in full: the complete description, required skills, budget, how many freelancers have applied and been interviewed, and the client's country, rating, hire count and total spend. Accepts the job ciphertext or the job URL. Reads Upwork's public visitor surface — no Upwork account is required.
Instagram Check Account
Check if a username/email/phone is linked to an Instagram account. Returns existence + recovery channels.
Instagram Check Account Health
Check if Instagram account is active/suspended. Returns follower, post counts, and verification status.
Instagram Discover Location Posts
Get 50-95 post shortcodes from a location page. No auth needed. Use with get-post-commenters for massive lead discovery.
Instagram Get Post Commenters
Extract commenters, comment text, and sibling posts from a post page. One call = ~24 lead-gen entities. No auth needed.
Instagram Get Post Info
Get post metadata (caption, owner, media, comment count) via embed page. No auth needed, not rate-limited.
Instagram Get User By Id
Resolve an Instagram profile from a numeric user id, no login. Anonymous returns identity (username, profile picture) — see detailLevel.
Instagram Get User Posts
Get a user's recent posts with engagement metrics. Rate-limited — use proxy rotation for bulk. No auth needed.
Instagram Get User Profile
Get full Instagram user profile (bio, stats, verified, business status). Works for public profiles without auth.
LinkedIn Check Account Health
Check whether a LinkedIn session (cookies) is still authenticated via the Voyager me endpoint. Returns isValid plus the logged-in profile name/URL.
LinkedIn Get Profile
Fetch a LinkedIn profile (name, headline, location, vanity) by vanity name via the Voyager dash API. Cookie-authenticated.
Reddit - post a comment as a registered app
Posts a comment through Reddit's documented OAuth2 API using a refresh token, with the caller's own User-Agent. Verifies the token's account against expectedUsername before creating anything, and turns Reddit's HTTP-200 `json.errors` refusals (locked thread, subreddit ban, rate limit) into classified failures. No browser, no captcha, no cookies.
Reddit - who does this OAuth app speak as?
Exchanges a Reddit OAuth2 refresh token and reads the account it belongs to over Reddit's documented API: username, suspension state, verified email, karma, account age and the token's scopes. Reads only -- it creates nothing. The access token and the supplied secrets are never returned or logged.
Scrape Reddit Post & Comments
Fetch a Reddit post with its comment tree: post metadata, selftext, and nested comments with scores and authorship. Requires a Reddit session cookie in sessionCookies (obtain it from reddit-login.post, or copy reddit_session out of a signed-in browser) — Reddit has blocked every anonymous read surface since 2026-07-30.
Search Contra Freelancers
Search contra.com's public directory of independent professionals by role or free text. Returns each profile's name, headline, roles, location, review average and count, follower and hire counts, availability and minimum hourly rate. Reads Contra's public page — no Contra account is required.
Search LinkedIn Jobs
Search LinkedIn job postings by keyword and location. Returns title, company, location, posting date, salary hint and the job id you pass to linkedin-jobs-detail. Reads LinkedIn's public guest surface — no LinkedIn account or cookie is required.
Search Reddit Posts
Search Reddit posts by keyword with subreddit filtering, sort and time range. Returns structured post data including scores, comment count and metadata. Requires a Reddit session cookie in sessionCookies (obtain it from reddit-login.post, or copy reddit_session out of a signed-in browser) — Reddit has blocked every anonymous read surface since 2026-07-30.
Search Upwork Jobs
Search Upwork job postings by keyword. Returns title, description, contract type, budget, publish time and the job reference you pass to upwork-jobs-detail. Reads Upwork's public visitor surface — no Upwork account or cookie is required.
TikTok Check Account Health
Check if TikTok account is active/suspended. Returns follower, video, and like counts.
TikTok Discover Users from Comments
Mine unique commenters from a video for lead discovery. No auth needed. Returns user profiles from comment threads.
TikTok Get Comment Replies
Get the replies under a single TikTok comment, with each replier's handle and profile info. No auth needed. Paginated by cursor.
TikTok Get Comments
Get comments on a video with commenter info. No auth needed. Supports pagination via cursor.
TikTok Get User Profile
Get full user profile (bio, stats, verified status) via SSR scraping. No auth needed.
TikTok Get Video By Id
Full video metadata (description, hashtags, play/like/comment counts, author and author follower stats) from a video id alone — no author handle needed, no auth.
TikTok Get Video Detail
Get full video metadata (description, stats, author, music) via SSR scraping. No auth needed.
TikTok oEmbed Lookup
Resolve any TikTok profile or video URL to its title, author and thumbnail via TikTok's public oEmbed endpoint. No auth, no signing.
Wellfound Application Modal
Read a Wellfound listing's application modal: its screening questions with option ids, whether this account has already applied, and the qualification report. Read-only, and the intended step immediately before wellfound-apply. Requires an authenticated session blob from wellfound-login.
Wellfound Browse Jobs
Browse public Wellfound job listings through the anonymous SEO GraphQL search: job id, slug, title, compensation, equity, locations, full description and the hiring company, with deep pagination. No login. Takes a blob from wellfound-public-session and must run on the exit that minted it. Company funding fields are empty on anonymous results; use wellfound-company-overview for those.
Wellfound Company Overview
Fetch a Wellfound company overview: product description, headcount band, total raised, market and location tags, and the website, LinkedIn, X and blog links. Read-only, and works with an anonymous session from wellfound-public-session.
Wellfound Conversation Detail
Fetch one Wellfound recruiter conversation with its full message history. Takes the bare conversation modelId from wellfound-list-conversations. Read-only. Requires an authenticated session blob from wellfound-login.
Wellfound Job Detail
Fetch one Wellfound job listing in full (description, skills, compensation, equity, remote configuration, locations) together with the hiring company, including funding stage and total raised. Read-only, and works with an anonymous session from wellfound-public-session. An expired or removed listing is reported as such rather than returned as an empty job.
Wellfound List Applications
List one page of the signed-in candidate's Wellfound job applications, each with its status, the listing and the company. The response carries no page info, so a page with no new applications means the end. Read-only. Requires an authenticated session blob from wellfound-login.
Wellfound List Conversations
List the signed-in candidate's Wellfound recruiter conversations with the company, the unread flag and the latest message in each thread. Read-only. Requires an authenticated session blob from wellfound-login.
Wellfound Pipeline Stats
Fetch the signed-in candidate's Wellfound pipeline counts: interested, matched, messages and saved listings. Read-only. Requires an authenticated session blob from wellfound-login and the viewer id from wellfound-viewer.
Wellfound Public Session
Mint an anonymous Wellfound browsing session (DataDome cookie, Apollo signature and persisted-query map) with no credentials and no account. Returns an opaque blob for the Wellfound read operations. The blob is bound to the exit IP that minted it: pass the same proxyUrl to every call in a chain, or omit it on all of them.
Wellfound Refresh Operations
Re-scan Wellfound's public JS bundle for the current Apollo signature and persisted-query op-id map after a frontend deploy, and return the session blob with that material refreshed. No login and no credentials. A Wellfound deploy invalidates every persisted-query hash at once and looks identical to an expired session, so run this before concluding a session died.
Wellfound Search Jobs
Search Wellfound job listings as a signed-in candidate, with role, skill, job-type, remote-preference and location filters, and an already-applied flag per listing. Read-only. Requires an authenticated session blob from wellfound-login; for public browsing with no account use wellfound-browse-jobs.
Wellfound Viewer
Fetch the signed-in Wellfound viewer: user id, whether the account may still apply to jobs, candidate state and analytics traits. The cheapest way to check that a session is alive and the account is unrestricted. Read-only. Requires an authenticated session blob from wellfound-login.
Calling a social media API
Every operation on this page is one POST away. Swap the slug, keep the key.
curl -X POST https://api.upapi.io/chatous-check-session.get \
-H "X-Api-Key: $UPAPI_KEY" \
-H "Content-Type: application/json" \
-d '{}'