Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

API Direct

REMOTE · APIDIRECT.IO

Search social media, news, forums and Google Maps: LinkedIn, X, Reddit, TikTok, YouTube.

Available components

−1 this week 85 Trust /100

Last scanned (13 hours ago)

Scores higher than 91% of remote servers

Reachable. Last reached 5 Nov 2026.

Category News and Social

Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →

Endpoint Security80
Transport & Reachability100
Schema Quality & AI Usability78
  • 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 27169 tokens (~187/item across 145 items; 145 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management97
  • Stability observed for 29 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • We read all 145 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
  • An AI judge read all 146 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities40
  • Spec-recency check failed: implements MCP spec 2025-03-26; the latest is 2026-07-28. See how to fix → Fail
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 5 Nov 26 −1
    • Stability: pass → 0.97 functional
  • 29 Oct 26 0
    • “search_tiktok” reworded the description of “region” cosmetic

    1 cosmetic change on this day. Switch on “Show cosmetic changes” to see it.

  • 28 Oct 26 0
    • Tool “search_threads” rewrote its description, which is the text the model reads security
    • Tool “search_twitter” rewrote its description, which is the text the model reads security
    • Tool “threads_user_posts” rewrote its description, which is the text the model reads security
    • Tool “twitter_tweet_details” rewrote its description, which is the text the model reads security
  • 27 Oct 26 0
    • Tool “facebook_group_posts” rewrote its description, which is the text the model reads security
    • Tool “facebook_page_posts” rewrote its description, which is the text the model reads security
    • Tool “search_facebook_posts” rewrote its description, which is the text the model reads security
    • Tool “youtube_video_details” rewrote its description, which is the text the model reads security
  • 20 Oct 26 0
    • Tool “reddit_post_comments” rewrote its description, which is the text the model reads security
    • Tool “search_threads” rewrote its description, which is the text the model reads security
    • Tool “threads_user_posts” rewrote its description, which is the text the model reads security
    • “search_threads” added an optional parameter “pages” cosmetic
    • “threads_user_posts” added an optional parameter “pages” cosmetic
    • “reddit_post_comments” reworded the description of “pages” cosmetic
  • 19 Oct 26 0
    • Tool “search_reddit” rewrote its description, which is the text the model reads security
    • Tool “search_reddit_comments” rewrote its description, which is the text the model reads security
    • Tool “search_reddit_users” rewrote its description, which is the text the model reads security
    • Schema quality: 24018 → 26938 ▼ functional
    • New tool “reddit_post_comments” functional
    • New tool “reddit_post_crossposts” functional
    • New tool “reddit_post_details” functional
    • New tool “reddit_subreddit_details” functional
    • New tool “reddit_subreddit_posts” functional
    • New tool “reddit_subreddit_rules” functional
    • New tool “reddit_trending” functional
    • New tool “reddit_user_comments” functional
    • New tool “reddit_user_posts” functional
    • New tool “reddit_user_profile” functional
    • New tool “search_reddit_subreddits” functional
    • “search_reddit” added an optional parameter “include_nsfw” cosmetic
    • “search_reddit” added an optional parameter “subreddit” cosmetic
    • “search_reddit_comments” added an optional parameter “subreddit” cosmetic
    • “search_reddit_users” added an optional parameter “pages” cosmetic
    • “search_reddit” reworded the description of “posted_ago” cosmetic
    • “search_reddit” reworded the description of “sort_by” cosmetic
  • 14 Oct 26 0
    • Schema quality: 20999 → 24018 ▼ functional
    • New tool “search_tiktok_hashtags” functional
    • New tool “tiktok_comment_replies” functional
    • New tool “tiktok_hashtag_details” functional
    • New tool “tiktok_hashtag_videos” functional
    • New tool “tiktok_music_details” functional
    • New tool “tiktok_music_videos” functional
    • New tool “tiktok_playlist_details” functional
    • New tool “tiktok_playlist_videos” functional
    • New tool “tiktok_user_followers” functional
    • New tool “tiktok_user_following” functional
    • New tool “tiktok_user_likes” functional
    • New tool “tiktok_user_stories” functional
    • New tool “tiktok_user_videos” functional
    • New tool “tiktok_video_comments” functional
  • 13 Oct 26 +1
    • Judged manipulation: unverified → pass ▲ security
    • The server rewrote its instructions, which are the text every model session reads security
    • Schema quality: 17728 → 20999 ▼ functional
    • New tool “search_substack” functional
    • New tool “search_substack_notes” functional
    • New tool “substack_category_feed” functional
    • New tool “search_substack_publications” functional
    • New tool “search_substack_users” functional
    • New tool “substack_category_publications” functional
    • New tool “substack_note_details” functional
    • New tool “substack_post_comments” functional
    • New tool “substack_post_details” functional
    • New tool “substack_post_likes” functional
    • New tool “substack_publication_posts” functional
    • New tool “substack_publication_details” functional
    • New tool “substack_publication_recommendations” functional
    • New tool “substack_trending” functional
    • New tool “substack_user_activity” functional
    • New tool “substack_user_posts” functional
    • New tool “substack_user_profile” functional
Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 5 Nov 2026 · Probed https://apidirect.io/mcp

TLS valid

Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .

Subject Issuer Valid from Valid until Key Signature Serial
CN=apidirect.io CN=YR2,O=Let's Encrypt,C=US 19 Oct 2026 17 Jan 2027 RSA 2048 SHA256-RSA 6f30982a9f4f60d5279f73152088cb83f5c
SANs: apidirect.io
CN=YR2,O=Let's Encrypt,C=US (CA) CN=Root YR,O=ISRG,C=US 3 Sept 2025 2 Sept 2028 RSA 2048 SHA256-RSA 4ebd24947e24d394802d84a52fd5b319
CN=Root YR,O=ISRG,C=US (CA) CN=ISRG Root X1,O=Internet Security Research Group,C=US 13 May 2026 2 Sept 2032 RSA 4096 SHA256-RSA f24b6d17f9d9ad7cb1c9fea78782699f

Background: What to check on a remote MCP endpoint →

DNSSEC insecure

Validation of apidirect.io. — Not signed

Zone DS Keys Algorithms Outcome
. trust_anchor 20326, 38696 8, 8 Verified
io. present 38690 8 Verified
apidirect.io. absent Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation
Authentication No authorisation required

The endpoint answered without asking for a token. Anyone who knows the URL can reach it.

Result No authorisation required
HTTP status 200
Header Value
strict-transport-security max-age=63072000

Background: How OAuth 2.1 works in the 2026 MCP spec →

Transports 2 probes
Transport URL Outcome Status Location
streamable-http https://apidirect.io/mcp Verified 200
http (plaintext) http://apidirect.io/mcp HTTPS enforced 308 https://apidirect.io/mcp
MCP tools · 145 exposed · ~25,925 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
substack_post_details ~268

Get a Substack post by URL, ID, or publication and slug. Returns the full body as HTML and plain text (the free preview for paid posts), title, subtitle, author, publication, publication date, engagement, paywall status, word count, cover image, podcast audio and tags (provide url, post_id, or publication together with slug). Billed $0.003 per request.

NameTypeReqDescription
get_sentimentboolean–Add AI sentiment analysis (Plutchik emotions, dominant_emotion, intensity, and positive/negative/neutral polarity) to each result. Adds a small surcharge per page, or per request on single-request en…
post_idstring–Numeric post ID, as returned in post_id. Provide url, post_id, or publication and slug.
publicationstring–Publication subdomain, host or URL, used together with slug.
slugstring–Post URL slug, e.g. all-of-the-lenny-and-friends-summit, used together with publication.
urlstring–Post URL, e.g. https://www.lennysnewsletter.com/p/all-of-the-lenny-and-friends-summit (max 500 characters). Provide url, post_id, or publication and slug.

No output schema declared.

No examples provided.

substack_post_likes ~198

Get the people who liked a Substack post. Returns up to 100 profiles with display name, user ID, profile picture, bestseller tier and primary publication, plus the post's total like count (provide url, post_id, or publication together with slug). Billed $0.003 per request.

NameTypeReqDescription
post_idstring–Numeric post ID, as returned in post_id. Provide url, post_id, or publication and slug.
publicationstring–Publication subdomain, host or URL, used together with slug.
slugstring–Post URL slug, e.g. all-of-the-lenny-and-friends-summit, used together with publication.
urlstring–Post URL, e.g. https://www.lennysnewsletter.com/p/all-of-the-lenny-and-friends-summit (max 500 characters). Provide url, post_id, or publication and slug.

No output schema declared.

No examples provided.

substack_publication_details ~155

Get a Substack publication by subdomain, custom domain, URL or ID. Returns name, tagline, logo, author, the subscriber badge and paid-subscriber band Substack displays, bestseller tier, subscription prices, podcast flag, language, launch dates and the publication's contributors (provide exactly one of publication, publication_id). Billed $0.003 per request.

NameTypeReqDescription
publicationstring–Publication subdomain (lenny), host (lenny.substack.com, www.lennysnewsletter.com) or any URL on it (max 500 characters). Provide either publication or publication_id.
publication_idstring–Numeric publication ID, as returned in publication_id. Provide either publication or publication_id.

No output schema declared.

No examples provided.

substack_publication_posts ~246

Get a publication's posts, newest first, top or most discussed, or search them by keyword. Returns post title, author, publication date, engagement, paywall status, word count and tags. Billed $0.003 per request.

NameTypeReqDescription
get_sentimentboolean–Add AI sentiment analysis (Plutchik emotions, dominant_emotion, intensity, and positive/negative/neutral polarity) to each result. Adds a small surcharge per page, or per request on single-request en…
pageinteger–Page number (default: 1). 20 posts per page
podcasts_onlyboolean–Set to true to return only podcast episodes
publicationstringyesPublication subdomain (lenny), host (lenny.substack.com, www.lennysnewsletter.com) or any URL on it (max 500 characters)
querystring–Keyword to search the publication's posts for (max 500 characters)
sort_bystring–Sort order: "most_recent" (newest first), "top" (all-time most popular first) or "discussions" (posts with comment activity)

No output schema declared.

No examples provided.

substack_publication_recommendations ~146

Get the publications a Substack publication recommends to its readers, and the publications that recommend it. Each entry carries the publication's name, URL, tagline, author, language, paid status and the recommender's blurb (provide exactly one of publication, publication_id). Billed $0.003 per request.

NameTypeReqDescription
publicationstring–Publication subdomain (lenny), host (lenny.substack.com, www.lennysnewsletter.com) or any URL on it (max 500 characters). Provide either publication or publication_id.
publication_idstring–Numeric publication ID, as returned in publication_id. Provide either publication or publication_id.

No output schema declared.

No examples provided.

substack_trending ~107

Get the posts currently trending across all of Substack, as featured on its explore page. Returns each post's title, author, publication, publication date, engagement and paywall status. Billed $0.003 per request.

NameTypeReqDescription
get_sentimentboolean–Add AI sentiment analysis (Plutchik emotions, dominant_emotion, intensity, and positive/negative/neutral polarity) to each result. Adds a small surcharge per page, or per request on single-request en…

No output schema declared.

No examples provided.

substack_user_activity ~263

Get an author's public activity feed: their Notes and the posts they publish or restack, newest first, or only their notes, posts, replies, restacks or likes. Each item is tagged note, post or comment and says what the author did with it. Notes carry text, engagement and any quoted post or note (provide exactly one of username, user_id, url). Billed $0.003 per page.

NameTypeReqDescription
pagesinteger–Number of pages to fetch, 1-250 (default: 1). Each page returns 12 items; you are billed per page returned.
typestring–Only this kind of activity: "note", "post", "reply", "restack" or "like"
urlstring–Profile URL, e.g. https://substack.com/@lenny (max 500 characters). Provide one of username, user_id or url.
user_idstring–Numeric Substack user ID, as returned in user_id. Provide one of username, user_id or url.
usernamestring–Substack handle, e.g. lenny, with or without a leading @ (max 100 characters). Provide one of username, user_id or url.

No output schema declared.

No examples provided.

substack_user_posts ~262

Get an author's posts across all their publications, newest first. Returns post title, publication, publication date, engagement, paywall status, word count and tags. Up to 50 posts per page (provide exactly one of username, user_id, url). Billed $0.003 per page.

NameTypeReqDescription
get_sentimentboolean–Add AI sentiment analysis (Plutchik emotions, dominant_emotion, intensity, and positive/negative/neutral polarity) to each result. Adds a small surcharge per page, or per request on single-request en…
pagesinteger–Number of pages to fetch, 1-60 (default: 1). Each page returns up to 50 posts; you are billed per page returned.
urlstring–Profile URL, e.g. https://substack.com/@lenny (max 500 characters). Provide one of username, user_id or url.
user_idstring–Numeric Substack user ID, as returned in user_id. Provide one of username, user_id or url.
usernamestring–Substack handle, e.g. lenny, with or without a leading @ (max 100 characters). Provide one of username, user_id or url.

No output schema declared.

No examples provided.

substack_user_profile ~185

Get a Substack author's full profile by handle, user ID or profile URL. Returns display name, bio, follower count, subscriber badge, bestseller tier, the publications they write for, profile links, X handle and leaderboard placement and the publications they subscribe to (provide exactly one of username, user_id, url). Billed $0.003 per request.

NameTypeReqDescription
urlstring–Profile URL, e.g. https://substack.com/@lenny (max 500 characters). Provide one of username, user_id or url.
user_idstring–Numeric Substack user ID, as returned in user_id. Provide one of username, user_id or url.
usernamestring–Substack handle, e.g. lenny, with or without a leading @ (max 100 characters). Provide one of username, user_id or url.

No output schema declared.

No examples provided.

threads_user_posts ~177

Get a Threads (Meta) user's recent posts by username, newest first. Returns post text, engagement metrics, media, link previews, timestamps, permalinks, whether each post is pinned and Threads' AI label (ai_label). Up to about 35 posts per page. Billed $0.006 per page.

NameTypeReqDescription
get_sentimentboolean–Add AI sentiment analysis (Plutchik emotions, dominant_emotion, intensity, and positive/negative/neutral polarity) to each result. Adds a small surcharge per page, or per request on single-request en…
pagesinteger–Number of pages to fetch, 1-60 (default: 1). Each page returns up to about 35 posts
usernamestringyesThreads username, with or without leading @ (max 100 characters)

No output schema declared.

No examples provided.

threads_user_profile ~75

Get a Threads (Meta) user's profile by username. Returns biography, bio links, follower count, verification status, profile picture and topic tags. Use threads_user_posts for their posts. Billed $0.006 per request.

NameTypeReqDescription
usernamestringyesThreads username, with or without leading @ (max 100 characters)

No output schema declared.

No examples provided.

tiktok_comment_replies ~260

Get the replies to one TikTok comment (its thread) by video URL or numeric video ID (provide exactly one) plus the comment ID from tiktok_video_comments. Returns each reply's text, author profile, like count and date, about 50 per page. Billed $0.006 per page.

NameTypeReqDescription
comment_idstringyesNumeric ID of the comment, as returned by Video Comments
get_sentimentboolean–Add AI sentiment analysis (Plutchik emotions, dominant_emotion, intensity, and positive/negative/neutral polarity) to each result. Adds a small surcharge per page, or per request on single-request en…
pagesinteger–Number of pages to fetch, 1-1000 (default: 1). Each page returns up to 50 replies.
urlstring–TikTok video URL, e.g. https://www.tiktok.com/@tiktok/video/7516594811734854943 (max 500 characters). Short links are accepted. Provide exactly one of url or video_id.
video_idstring–Numeric TikTok video ID: the number at the end of a video URL. Provide exactly one of url or video_id.

No output schema declared.

No examples provided.

tiktok_hashtag_details ~160

Get one TikTok hashtag's details by name, numeric hashtag ID or hashtag URL (provide exactly one). Returns its ID, video count, total views, description and cover image. Billed $0.006 per request.

NameTypeReqDescription
hashtag_idstring–Numeric hashtag ID, as returned by Search Hashtags. Provide exactly one of name, hashtag_id, or url.
namestring–Hashtag name, with or without leading # (max 100 characters). Provide exactly one of name, hashtag_id, or url.
urlstring–TikTok hashtag URL, e.g. https://www.tiktok.com/tag/cooking (max 500 characters). Provide exactly one of name, hashtag_id, or url.

No output schema declared.

No examples provided.

tiktok_hashtag_videos ~248

Get the videos under a TikTok hashtag by name, numeric hashtag ID or hashtag URL (provide exactly one). Returns the same video fields as tiktok_user_videos, about 20 per page. Billed $0.006 per page.

NameTypeReqDescription
get_sentimentboolean–Add AI sentiment analysis (Plutchik emotions, dominant_emotion, intensity, and positive/negative/neutral polarity) to each result. Adds a small surcharge per page, or per request on single-request en…
hashtag_idstring–Numeric hashtag ID, as returned by Search Hashtags. Provide exactly one of name, hashtag_id, or url.
namestring–Hashtag name, with or without leading # (max 100 characters). Provide exactly one of name, hashtag_id, or url.
pagesinteger–Number of pages to fetch, 1-1000 (default: 1). Each page returns up to 20 videos.
urlstring–TikTok hashtag URL, e.g. https://www.tiktok.com/tag/cooking (max 500 characters). Provide exactly one of name, hashtag_id, or url.

No output schema declared.

No examples provided.

tiktok_music_details ~147

Get one TikTok sound's details by music URL or numeric music ID (provide exactly one). Returns its title, artist, album, duration, playback URL, cover image and the number of videos using it. Billed $0.006 per request.

NameTypeReqDescription
music_idstring–Numeric music ID: the number at the end of a music URL, also returned as music_id on every video. Provide exactly one of url or music_id.
urlstring–TikTok music URL, e.g. https://www.tiktok.com/music/Face-Off-7016547803243022337 (max 500 characters). Provide exactly one of url or music_id.

No output schema declared.

No examples provided.

tiktok_music_videos ~227

Get the videos using a TikTok sound by music URL or numeric music ID (provide exactly one). Returns the same video fields as tiktok_user_videos, about 12 per page. Billed $0.006 per page.

NameTypeReqDescription
get_sentimentboolean–Add AI sentiment analysis (Plutchik emotions, dominant_emotion, intensity, and positive/negative/neutral polarity) to each result. Adds a small surcharge per page, or per request on single-request en…
music_idstring–Numeric music ID: the number at the end of a music URL, also returned as music_id on every video. Provide exactly one of url or music_id.
pagesinteger–Number of pages to fetch, 1-1000 (default: 1). Each page returns up to 12 videos.
urlstring–TikTok music URL, e.g. https://www.tiktok.com/music/Face-Off-7016547803243022337 (max 500 characters). Provide exactly one of url or music_id.

No output schema declared.

No examples provided.

tiktok_playlist_details ~127

Get one TikTok playlist's details by playlist URL or numeric playlist ID (provide exactly one). Returns its name, creator and video count. Billed $0.006 per request.

NameTypeReqDescription
playlist_idstring–Numeric playlist ID: the number at the end of a playlist URL. Provide exactly one of url or playlist_id.
urlstring–TikTok playlist URL, e.g. https://www.tiktok.com/@natgeo/playlist/Cinematic-7509464647364283178 (max 500 characters). Provide exactly one of url or playlist_id.

No output schema declared.

No examples provided.

tiktok_playlist_videos ~222

Get a TikTok playlist's videos in playlist order by playlist URL or numeric playlist ID (provide exactly one). Returns the same video fields as tiktok_user_videos, 30 per page. Billed $0.006 per page.

NameTypeReqDescription
get_sentimentboolean–Add AI sentiment analysis (Plutchik emotions, dominant_emotion, intensity, and positive/negative/neutral polarity) to each result. Adds a small surcharge per page, or per request on single-request en…
pagesinteger–Number of pages to fetch, 1-1000 (default: 1). Each page returns up to 30 videos.
playlist_idstring–Numeric playlist ID: the number at the end of a playlist URL. Provide exactly one of url or playlist_id.
urlstring–TikTok playlist URL, e.g. https://www.tiktok.com/@natgeo/playlist/Cinematic-7509464647364283178 (max 500 characters). Provide exactly one of url or playlist_id.

No output schema declared.

No examples provided.

tiktok_user_followers ~242

Get a TikTok user's followers, newest first, by username, numeric user ID or profile URL (provide exactly one). Returns username, display name, user ID, bio, follower and following counts, total likes, video count, verification status, region, join date and linked Instagram, X and YouTube accounts for each follower, 100 per page. A private account returns a 403 limited_account error. Billed $0.006 per page.

NameTypeReqDescription
pagesinteger–Number of pages to fetch, 1-1000 (default: 1). Each page returns up to 100 followers.
urlstring–TikTok profile URL, e.g. https://www.tiktok.com/@tiktok (max 500 characters). Provide exactly one of username, user_id, or url.
user_idstring–Numeric TikTok user ID, as returned by Search Users or User Profile. Provide exactly one of username, user_id, or url.
usernamestring–TikTok username, with or without leading @ (max 100 characters). Provide exactly one of username, user_id, or url.

No output schema declared.

No examples provided.

tiktok_user_following ~218

Get the accounts a TikTok user follows, by username, numeric user ID or profile URL (provide exactly one). Returns the same profile fields as tiktok_user_followers for each account, 50 per page. An account that hides its following list returns a 403 limited_account error. Billed $0.006 per page.

NameTypeReqDescription
pagesinteger–Number of pages to fetch, 1-1000 (default: 1). Each page returns up to 50 accounts.
urlstring–TikTok profile URL, e.g. https://www.tiktok.com/@tiktok (max 500 characters). Provide exactly one of username, user_id, or url.
user_idstring–Numeric TikTok user ID, as returned by Search Users or User Profile. Provide exactly one of username, user_id, or url.
usernamestring–TikTok username, with or without leading @ (max 100 characters). Provide exactly one of username, user_id, or url.

No output schema declared.

No examples provided.

tiktok_user_likes ~264

Get the videos a TikTok user has liked, by username, numeric user ID or profile URL (provide exactly one). Returns the same video fields as tiktok_user_videos, about 30 per page. Accounts that hide their liked videos return an empty list. Billed $0.006 per page.

NameTypeReqDescription
get_sentimentboolean–Add AI sentiment analysis (Plutchik emotions, dominant_emotion, intensity, and positive/negative/neutral polarity) to each result. Adds a small surcharge per page, or per request on single-request en…
pagesinteger–Number of pages to fetch, 1-1000 (default: 1). Each page returns up to 30 videos.
urlstring–TikTok profile URL, e.g. https://www.tiktok.com/@tiktok (max 500 characters). Provide exactly one of username, user_id, or url.
user_idstring–Numeric TikTok user ID, as returned by Search Users or User Profile. Provide exactly one of username, user_id, or url.
usernamestring–TikTok username, with or without leading @ (max 100 characters). Provide exactly one of username, user_id, or url.

No output schema declared.

No examples provided.

tiktok_user_profile ~142

Get a TikTok user's profile by username, numeric user ID or profile URL (provide exactly one). Returns bio, bio link, follower and following counts, total likes, video count, verification status, join date and linked Instagram, X and YouTube accounts. Billed $0.006 per request.

NameTypeReqDescription
urlstring–TikTok profile URL, e.g. https://www.tiktok.com/@tiktok (max 500 characters)
user_idstring–Numeric TikTok user ID, as returned by search_tiktok_users
usernamestring–TikTok username, with or without leading @ (max 100 characters)

No output schema declared.

No examples provided.

tiktok_user_stories ~261

Get a TikTok user's currently live stories (24-hour posts) by username, numeric user ID or profile URL (provide exactly one). Returns the same video fields as tiktok_user_videos. A user with no live stories returns an empty list. Billed $0.006 per page.

NameTypeReqDescription
get_sentimentboolean–Add AI sentiment analysis (Plutchik emotions, dominant_emotion, intensity, and positive/negative/neutral polarity) to each result. Adds a small surcharge per page, or per request on single-request en…
pagesinteger–Number of pages to fetch, 1-1000 (default: 1). Each page returns up to 30 stories.
urlstring–TikTok profile URL, e.g. https://www.tiktok.com/@tiktok (max 500 characters). Provide exactly one of username, user_id, or url.
user_idstring–Numeric TikTok user ID, as returned by Search Users or User Profile. Provide exactly one of username, user_id, or url.
usernamestring–TikTok username, with or without leading @ (max 100 characters). Provide exactly one of username, user_id, or url.

No output schema declared.

No examples provided.

tiktok_user_videos ~280

Get a TikTok user's videos, newest first, by username, numeric user ID or profile URL (provide exactly one). Returns caption, link, publish date, play, like, comment, share, download and save counts, watermark-free playback URLs, cover images, the sound used and author details for each video, about 30 per page. Billed $0.006 per page.

NameTypeReqDescription
get_sentimentboolean–Add AI sentiment analysis (Plutchik emotions, dominant_emotion, intensity, and positive/negative/neutral polarity) to each result. Adds a small surcharge per page, or per request on single-request en…
pagesinteger–Number of pages to fetch, 1-1000 (default: 1). Each page returns up to 30 videos.
urlstring–TikTok profile URL, e.g. https://www.tiktok.com/@tiktok (max 500 characters). Provide exactly one of username, user_id, or url.
user_idstring–Numeric TikTok user ID, as returned by Search Users or User Profile. Provide exactly one of username, user_id, or url.
usernamestring–TikTok username, with or without leading @ (max 100 characters). Provide exactly one of username, user_id, or url.

No output schema declared.

No examples provided.

tiktok_video_comments ~249

Get the top-level comments on a TikTok video, in TikTok's default order, by video URL or numeric video ID (provide exactly one). Returns each comment's text, author profile, like and reply counts and date, 50 per page. Use tiktok_comment_replies for a comment's thread. Billed $0.006 per page.

NameTypeReqDescription
get_sentimentboolean–Add AI sentiment analysis (Plutchik emotions, dominant_emotion, intensity, and positive/negative/neutral polarity) to each result. Adds a small surcharge per page, or per request on single-request en…
pagesinteger–Number of pages to fetch, 1-1000 (default: 1). Each page returns up to 50 comments.
urlstring–TikTok video URL, e.g. https://www.tiktok.com/@tiktok/video/7516594811734854943 (max 500 characters). Short links are accepted. Provide exactly one of url or video_id.
video_idstring–Numeric TikTok video ID: the number at the end of a video URL. Provide exactly one of url or video_id.

No output schema declared.

No examples provided.

tiktok_video_details ~138

Get one TikTok video by URL or numeric video ID (provide exactly one). Returns caption, play, like, comment, share and save counts, watermark-free playback and download URLs, cover images, music track and author details. Billed $0.006 per request.

NameTypeReqDescription
urlstring–TikTok video URL, e.g. https://www.tiktok.com/@tiktok/video/7516594811734854943 (max 500 characters)
video_idstring–Numeric TikTok video ID: the number at the end of a video URL, e.g. 7516594811734854943

No output schema declared.

No examples provided.

trustpilot_category_companies ~222

List the companies in a Trustpilot category by category slug or URL. Returns name, domain, TrustScore, review count, categories and location, plus the category's size and subcategories. Filter by country, minimum rating and claimed status; sort by recommended or recently reviewed. 20 per page. Find slugs with search_trustpilot_categories or at https://apidirect.io/docs/trustpilot-category-ids. Billed $0.005 per request.

NameTypeReqDescription
category_idstringyesTrustpilot category slug (e.g. electronics_technology, bank) or a trustpilot.com/categories/... URL
claimedboolean–Only companies that have claimed their Trustpilot profile
countrystring–2-letter ISO 3166-1 country code (default: all countries)
min_ratingstring–Minimum TrustScore
pageinteger–Page number, 1-500 (default: 1). Each page returns up to 20 companies.
sort_bystring–Sort order

No output schema declared.

No examples provided.

trustpilot_category_details ~84

Get a Trustpilot category by slug or URL. Returns display name, business count, parent category, and subcategories with their ids and business counts. Works at all three category levels. Billed $0.005 per request.

NameTypeReqDescription
category_idstringyesTrustpilot category slug (e.g. electronics_technology) or a trustpilot.com/categories/... URL

No output schema declared.

No examples provided.

trustpilot_category_newest ~98

Get the companies most recently added to a Trustpilot category, by slug or URL: a short unpaginated list (often 0-10) with name, domain, TrustScore, review count and location, plus the category's size and subcategories. Billed $0.005 per request.

NameTypeReqDescription
category_idstringyesTrustpilot category slug (e.g. bank) or a trustpilot.com/categories/... URL

No output schema declared.

No examples provided.

trustpilot_company_reviews ~332

Get a company's Trustpilot reviews and profile by domain or Trustpilot URL. The profile has TrustScore, stars, review counts and per-star breakdown, categories, claimed and verification status, reply behaviour and contact details. Each review has rating, title, text, dates, verification level, likes, author id, name and country, and the company's reply. Filter by stars, recency, language, verified, replied or keyword. 20 reviews per page. Billed $0.005 per page.

NameTypeReqDescription
domainstringyesCompany website domain (e.g. gossby.com) or its Trustpilot review-page URL
get_sentimentboolean–Add AI sentiment analysis (Plutchik emotions, dominant_emotion, intensity, and positive/negative/neutral polarity) to each result. Adds a small surcharge per page, or per request on single-request en…
languagestring–2-letter ISO 639-1 language code (default: all languages)
pagesinteger–Pages to fetch, 1-10 (default: 1). Each page returns up to 20 reviews and is billed as one request.
posted_agostring–Only reviews from this period
querystring–Only reviews matching this keyword
ratingstring–Only these star ratings, comma-separated 1-5 (e.g. '1,2')
sort_bystring–Sort order
verifiedboolean–Only verified reviews
with_repliesboolean–Only reviews the company replied to

No output schema declared.

No examples provided.

trustpilot_user_profile ~145

Get a Trustpilot reviewer's public profile by user ID (a review's author_id) or URL: name, country, review count, verified status, likes and reads, plus the reviews they wrote across all companies, each with company name and domain, rating, title, text, dates and the company's reply. 20 reviews per page. Billed $0.005 per request.

NameTypeReqDescription
pageinteger–Page number, 1-500 (default: 1). Each page returns up to 20 reviews.
user_idstringyesReviewer ID (24 hex characters, a review's author_id) or a trustpilot.com/users/... URL

No output schema declared.

No examples provided.

truthsocial_user_posts ~170

Get a Truth Social user's recent posts (their feed) by username. Returns post text, engagement metrics (replies, reposts, likes), media, hashtags, reply status and permalinks. Up to 20 posts per page. Billed $0.006 per page.

NameTypeReqDescription
get_sentimentboolean–Add AI sentiment analysis (Plutchik emotions, dominant_emotion, intensity, and positive/negative/neutral polarity) to each result. Adds a small surcharge per page, or per request on single-request en…
pagesinteger–Number of pages to fetch, 1-20 (default: 1). Each page returns up to 20 posts
usernamestringyesTruth Social username, with or without leading @ (max 100 characters)

No output schema declared.

No examples provided.

twitter_trends ~70

Get the current Twitter/X trending topics for a location by WOEID (1 = worldwide). Returns trend names, search queries and tweet volumes where available. Billed $0.006 per request.

NameTypeReqDescription
woeidintegeryesWhere On Earth ID for the location. Use 1 for Worldwide.

No output schema declared.

No examples provided.

twitter_tweet_comments ~127

Get the replies (comments) on a tweet, by numeric tweet ID. Returns each reply's text and engagement metrics. Billed $0.006 per page.

NameTypeReqDescription
get_sentimentboolean–Add AI sentiment analysis (Plutchik emotions, dominant_emotion, intensity, and positive/negative/neutral polarity) to each result. Adds a small surcharge per page, or per request on single-request en…
pagesinteger–Number of pages to fetch, 1-20 (default: 1)
tweet_idstringyesNumeric tweet ID

No output schema declared.

No examples provided.

twitter_tweet_details ~113

Get one tweet by its numeric ID. Returns full text, engagement metrics, author info, metadata and X's "Made with AI" label (ai_label). Billed $0.006 per request.

NameTypeReqDescription
get_sentimentboolean–Add AI sentiment analysis (Plutchik emotions, dominant_emotion, intensity, and positive/negative/neutral polarity) to each result. Adds a small surcharge per page, or per request on single-request en…
tweet_idstringyesNumeric tweet ID

No output schema declared.

No examples provided.

twitter_tweet_quotes ~125

Get the quote tweets of a tweet, by numeric tweet ID. Returns each quote's text and engagement metrics. Billed $0.006 per page.

NameTypeReqDescription
get_sentimentboolean–Add AI sentiment analysis (Plutchik emotions, dominant_emotion, intensity, and positive/negative/neutral polarity) to each result. Adds a small surcharge per page, or per request on single-request en…
pagesinteger–Number of pages to fetch, 1-20 (default: 1)
tweet_idstringyesNumeric tweet ID

No output schema declared.

No examples provided.

twitter_tweet_retweets ~87

Get the users who retweeted a tweet, by numeric tweet ID. Returns profile details for each user. Use twitter_tweet_quotes for retweets that added a comment. Billed $0.006 per page.

NameTypeReqDescription
pagesinteger–Number of pages to fetch, 1-20 (default: 1)
tweet_idstringyesNumeric tweet ID

No output schema declared.

No examples provided.

twitter_user_followers ~93

Get the followers of a Twitter/X user by username. Returns each follower's username, bio, follower counts and verification status. Use twitter_verified_followers for verified followers only. Billed $0.006 per page.

NameTypeReqDescription
pagesinteger–Number of pages to fetch, 1-20 (default: 1)
usernamestringyesTwitter username (without @, max 50 characters)

No output schema declared.

No examples provided.

twitter_user_following ~90

Get the accounts a Twitter/X user follows, by username. Returns profile details for each account, about 50 per page. Billed $0.006 per page.

NameTypeReqDescription
pagesinteger–Number of pages to fetch, 1-175 (default: 1). Each page returns ~50 accounts.
usernamestringyesTwitter username (without @, max 50 characters)

No output schema declared.

No examples provided.

twitter_user_profile ~73

Get a Twitter/X user's profile by username. Returns display name, bio, follower and following counts, verification status and account metadata. Use search_twitter_users to find an account by keyword. Billed $0.006 per request.

NameTypeReqDescription
usernamestringyesTwitter username (without @, max 50 characters)

No output schema declared.

No examples provided.

twitter_user_replies ~139

Get the replies a Twitter/X user posted, by username. Returns each reply's text and engagement metrics. Use twitter_user_tweets for their tweets. Billed $0.006 per page.

NameTypeReqDescription
get_sentimentboolean–Add AI sentiment analysis (Plutchik emotions, dominant_emotion, intensity, and positive/negative/neutral polarity) to each result. Adds a small surcharge per page, or per request on single-request en…
pagesinteger–Number of pages to fetch, 1-20 (default: 1)
usernamestringyesTwitter username (without @, max 50 characters)

No output schema declared.

No examples provided.

twitter_user_tweets ~139

Get the tweets a Twitter/X user posted, by username. Returns tweet text, engagement metrics and metadata. Use twitter_user_replies for their replies. Billed $0.006 per page.

NameTypeReqDescription
get_sentimentboolean–Add AI sentiment analysis (Plutchik emotions, dominant_emotion, intensity, and positive/negative/neutral polarity) to each result. Adds a small surcharge per page, or per request on single-request en…
pagesinteger–Number of pages to fetch, 1-20 (default: 1)
usernamestringyesTwitter username (without @, max 50 characters)

No output schema declared.

No examples provided.

twitter_verified_followers ~92

Get only the verified (blue checkmark) followers of a Twitter/X user, by username. Returns profile details for each. Use twitter_user_followers for all followers. Billed $0.006 per page.

NameTypeReqDescription
pagesinteger–Number of pages to fetch, 1-20 (default: 1)
usernamestringyesTwitter username (without @, max 50 characters)

No output schema declared.

No examples provided.

youtube_channel_details ~137

Get a YouTube channel by channel ID, URL or name/@handle (provide exactly one). Returns name, description, subscriber, video and total view counts, country, creation date, verification status, external links, profile picture and banner. Billed $0.005 per request.

NameTypeReqDescription
idstring–YouTube channel ID (24 characters, starts with UC)
namestring–Channel name or @handle (e.g. @mkbhd or Linus Tech Tips)
urlstring–Channel URL: youtube.com/channel/..., youtube.com/@handle, /c/ or /user/ forms

No output schema declared.

No examples provided.

youtube_video_details ~154

Get one YouTube video by URL or 11-character video ID. Returns title, full description, channel name and ID, publish date, duration in seconds, view count, category, keywords, thumbnail and YouTube's AI disclosure (ai_label: "Made with AI" or "Auto-dubbed", with separate is_altered_or_synthetic and is_auto_dubbed flags). Works for regular videos, Shorts and live streams. Use get_youtube_comments for its comments. Billed $0.005 per request.

NameTypeReqDescription
urlstringyesYouTube video URL (watch?v=, youtu.be/, /shorts/, /embed/ or /live/ forms) or 11-character video ID

No output schema declared.

No examples provided.

Install

How do I install the API Direct MCP server?

API Direct is a hosted endpoint at https://apidirect.io/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

remote · apidirect.io

# add to Claude Code
claude mcp add --transport http io-apidirect-api-direct 'https://apidirect.io/mcp'
Common questions

What is the API Direct MCP server?

API Direct is an MCP server listed in the public MCP registry as io.apidirect/api-direct. Search social media, news, forums and Google Maps: LinkedIn, X, Reddit, TikTok, YouTube. This page covers its hosted endpoint (https://apidirect.io/mcp).

Is the API Direct MCP server safe to use?

API Direct scores 85 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the API Direct MCP server expose?

API Direct exposes 145 tools: list_skills, get_skill, search_linkedin, linkedin_person_details, linkedin_person_posts, and 140 more. Their descriptions and schemas cost roughly 25,925 tokens of context every time the server is loaded.

Does the API Direct MCP server require authentication?

No. We connected to API Direct without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

Is the API Direct MCP server still maintained?

API Direct is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.