API Direct
REMOTE · APIDIRECT.IO
Search social media, news, forums and Google Maps: LinkedIn, X, Reddit, TikTok, YouTube.
Available components
Last scanned (13 hours ago)
Scores higher than 91% of remote servers
Reachable. Last reached 5 Nov 2026.
Category News and Social
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
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- No authorisation is required to call this server. Every tool declares its destructiveHint and none is destructive, so open access doesn't expose one. See how to fix → View diagnostics → Partial
- HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
- The HSTS (Strict-Transport-Security) header is present. View diagnostics → Pass
- DNSSEC check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
Transport & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
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
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
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 |
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 →
substack_post_details 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.
| Name | Type | Req | Description |
|---|---|---|---|
| get_sentiment | boolean | – | 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_id | string | – | Numeric post ID, as returned in post_id. Provide url, post_id, or publication and slug. |
| publication | string | – | Publication subdomain, host or URL, used together with slug. |
| slug | string | – | Post URL slug, e.g. all-of-the-lenny-and-friends-summit, used together with publication. |
| url | string | – | 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 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.
| Name | Type | Req | Description |
|---|---|---|---|
| post_id | string | – | Numeric post ID, as returned in post_id. Provide url, post_id, or publication and slug. |
| publication | string | – | Publication subdomain, host or URL, used together with slug. |
| slug | string | – | Post URL slug, e.g. all-of-the-lenny-and-friends-summit, used together with publication. |
| url | string | – | 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 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.
| Name | Type | Req | Description |
|---|---|---|---|
| publication | string | – | 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_id | string | – | Numeric publication ID, as returned in publication_id. Provide either publication or publication_id. |
No output schema declared.
No examples provided.
substack_publication_posts 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.
| Name | Type | Req | Description |
|---|---|---|---|
| get_sentiment | boolean | – | 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… |
| page | integer | – | Page number (default: 1). 20 posts per page |
| podcasts_only | boolean | – | Set to true to return only podcast episodes |
| publication | string | yes | Publication subdomain (lenny), host (lenny.substack.com, www.lennysnewsletter.com) or any URL on it (max 500 characters) |
| query | string | – | Keyword to search the publication's posts for (max 500 characters) |
| sort_by | string | – | 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 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.
| Name | Type | Req | Description |
|---|---|---|---|
| publication | string | – | 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_id | string | – | Numeric publication ID, as returned in publication_id. Provide either publication or publication_id. |
No output schema declared.
No examples provided.
substack_trending Substack Trending Posts ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| get_sentiment | boolean | – | 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 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.
| Name | Type | Req | Description |
|---|---|---|---|
| pages | integer | – | Number of pages to fetch, 1-250 (default: 1). Each page returns 12 items; you are billed per page returned. |
| type | string | – | Only this kind of activity: "note", "post", "reply", "restack" or "like" |
| url | string | – | Profile URL, e.g. https://substack.com/@lenny (max 500 characters). Provide one of username, user_id or url. |
| user_id | string | – | Numeric Substack user ID, as returned in user_id. Provide one of username, user_id or url. |
| username | string | – | 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 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.
| Name | Type | Req | Description |
|---|---|---|---|
| get_sentiment | boolean | – | 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… |
| pages | integer | – | Number of pages to fetch, 1-60 (default: 1). Each page returns up to 50 posts; you are billed per page returned. |
| url | string | – | Profile URL, e.g. https://substack.com/@lenny (max 500 characters). Provide one of username, user_id or url. |
| user_id | string | – | Numeric Substack user ID, as returned in user_id. Provide one of username, user_id or url. |
| username | string | – | 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 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.
| Name | Type | Req | Description |
|---|---|---|---|
| url | string | – | Profile URL, e.g. https://substack.com/@lenny (max 500 characters). Provide one of username, user_id or url. |
| user_id | string | – | Numeric Substack user ID, as returned in user_id. Provide one of username, user_id or url. |
| username | string | – | 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 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.
| Name | Type | Req | Description |
|---|---|---|---|
| get_sentiment | boolean | – | 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… |
| pages | integer | – | Number of pages to fetch, 1-60 (default: 1). Each page returns up to about 35 posts |
| username | string | yes | Threads username, with or without leading @ (max 100 characters) |
No output schema declared.
No examples provided.
threads_user_profile 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.
| Name | Type | Req | Description |
|---|---|---|---|
| username | string | yes | Threads username, with or without leading @ (max 100 characters) |
No output schema declared.
No examples provided.
tiktok_comment_replies 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.
| Name | Type | Req | Description |
|---|---|---|---|
| comment_id | string | yes | Numeric ID of the comment, as returned by Video Comments |
| get_sentiment | boolean | – | 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… |
| pages | integer | – | Number of pages to fetch, 1-1000 (default: 1). Each page returns up to 50 replies. |
| url | string | – | 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_id | string | – | 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 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.
| Name | Type | Req | Description |
|---|---|---|---|
| hashtag_id | string | – | Numeric hashtag ID, as returned by Search Hashtags. Provide exactly one of name, hashtag_id, or url. |
| name | string | – | Hashtag name, with or without leading # (max 100 characters). Provide exactly one of name, hashtag_id, or url. |
| url | string | – | 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 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.
| Name | Type | Req | Description |
|---|---|---|---|
| get_sentiment | boolean | – | 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_id | string | – | Numeric hashtag ID, as returned by Search Hashtags. Provide exactly one of name, hashtag_id, or url. |
| name | string | – | Hashtag name, with or without leading # (max 100 characters). Provide exactly one of name, hashtag_id, or url. |
| pages | integer | – | Number of pages to fetch, 1-1000 (default: 1). Each page returns up to 20 videos. |
| url | string | – | 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 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.
| Name | Type | Req | Description |
|---|---|---|---|
| music_id | string | – | 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. |
| url | string | – | 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 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.
| Name | Type | Req | Description |
|---|---|---|---|
| get_sentiment | boolean | – | 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_id | string | – | 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. |
| pages | integer | – | Number of pages to fetch, 1-1000 (default: 1). Each page returns up to 12 videos. |
| url | string | – | 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 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.
| Name | Type | Req | Description |
|---|---|---|---|
| playlist_id | string | – | Numeric playlist ID: the number at the end of a playlist URL. Provide exactly one of url or playlist_id. |
| url | string | – | 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 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.
| Name | Type | Req | Description |
|---|---|---|---|
| get_sentiment | boolean | – | 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… |
| pages | integer | – | Number of pages to fetch, 1-1000 (default: 1). Each page returns up to 30 videos. |
| playlist_id | string | – | Numeric playlist ID: the number at the end of a playlist URL. Provide exactly one of url or playlist_id. |
| url | string | – | 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 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.
| Name | Type | Req | Description |
|---|---|---|---|
| pages | integer | – | Number of pages to fetch, 1-1000 (default: 1). Each page returns up to 100 followers. |
| url | string | – | TikTok profile URL, e.g. https://www.tiktok.com/@tiktok (max 500 characters). Provide exactly one of username, user_id, or url. |
| user_id | string | – | Numeric TikTok user ID, as returned by Search Users or User Profile. Provide exactly one of username, user_id, or url. |
| username | string | – | 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 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.
| Name | Type | Req | Description |
|---|---|---|---|
| pages | integer | – | Number of pages to fetch, 1-1000 (default: 1). Each page returns up to 50 accounts. |
| url | string | – | TikTok profile URL, e.g. https://www.tiktok.com/@tiktok (max 500 characters). Provide exactly one of username, user_id, or url. |
| user_id | string | – | Numeric TikTok user ID, as returned by Search Users or User Profile. Provide exactly one of username, user_id, or url. |
| username | string | – | 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 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.
| Name | Type | Req | Description |
|---|---|---|---|
| get_sentiment | boolean | – | 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… |
| pages | integer | – | Number of pages to fetch, 1-1000 (default: 1). Each page returns up to 30 videos. |
| url | string | – | TikTok profile URL, e.g. https://www.tiktok.com/@tiktok (max 500 characters). Provide exactly one of username, user_id, or url. |
| user_id | string | – | Numeric TikTok user ID, as returned by Search Users or User Profile. Provide exactly one of username, user_id, or url. |
| username | string | – | 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 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.
| Name | Type | Req | Description |
|---|---|---|---|
| url | string | – | TikTok profile URL, e.g. https://www.tiktok.com/@tiktok (max 500 characters) |
| user_id | string | – | Numeric TikTok user ID, as returned by search_tiktok_users |
| username | string | – | TikTok username, with or without leading @ (max 100 characters) |
No output schema declared.
No examples provided.
tiktok_user_stories 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.
| Name | Type | Req | Description |
|---|---|---|---|
| get_sentiment | boolean | – | 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… |
| pages | integer | – | Number of pages to fetch, 1-1000 (default: 1). Each page returns up to 30 stories. |
| url | string | – | TikTok profile URL, e.g. https://www.tiktok.com/@tiktok (max 500 characters). Provide exactly one of username, user_id, or url. |
| user_id | string | – | Numeric TikTok user ID, as returned by Search Users or User Profile. Provide exactly one of username, user_id, or url. |
| username | string | – | 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 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.
| Name | Type | Req | Description |
|---|---|---|---|
| get_sentiment | boolean | – | 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… |
| pages | integer | – | Number of pages to fetch, 1-1000 (default: 1). Each page returns up to 30 videos. |
| url | string | – | TikTok profile URL, e.g. https://www.tiktok.com/@tiktok (max 500 characters). Provide exactly one of username, user_id, or url. |
| user_id | string | – | Numeric TikTok user ID, as returned by Search Users or User Profile. Provide exactly one of username, user_id, or url. |
| username | string | – | 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 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.
| Name | Type | Req | Description |
|---|---|---|---|
| get_sentiment | boolean | – | 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… |
| pages | integer | – | Number of pages to fetch, 1-1000 (default: 1). Each page returns up to 50 comments. |
| url | string | – | 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_id | string | – | 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 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.
| Name | Type | Req | Description |
|---|---|---|---|
| url | string | – | TikTok video URL, e.g. https://www.tiktok.com/@tiktok/video/7516594811734854943 (max 500 characters) |
| video_id | string | – | 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 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.
| Name | Type | Req | Description |
|---|---|---|---|
| category_id | string | yes | Trustpilot category slug (e.g. electronics_technology, bank) or a trustpilot.com/categories/... URL |
| claimed | boolean | – | Only companies that have claimed their Trustpilot profile |
| country | string | – | 2-letter ISO 3166-1 country code (default: all countries) |
| min_rating | string | – | Minimum TrustScore |
| page | integer | – | Page number, 1-500 (default: 1). Each page returns up to 20 companies. |
| sort_by | string | – | Sort order |
No output schema declared.
No examples provided.
trustpilot_category_details 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.
| Name | Type | Req | Description |
|---|---|---|---|
| category_id | string | yes | Trustpilot category slug (e.g. electronics_technology) or a trustpilot.com/categories/... URL |
No output schema declared.
No examples provided.
trustpilot_category_newest 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.
| Name | Type | Req | Description |
|---|---|---|---|
| category_id | string | yes | Trustpilot category slug (e.g. bank) or a trustpilot.com/categories/... URL |
No output schema declared.
No examples provided.
trustpilot_company_reviews 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.
| Name | Type | Req | Description |
|---|---|---|---|
| domain | string | yes | Company website domain (e.g. gossby.com) or its Trustpilot review-page URL |
| get_sentiment | boolean | – | 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… |
| language | string | – | 2-letter ISO 639-1 language code (default: all languages) |
| pages | integer | – | Pages to fetch, 1-10 (default: 1). Each page returns up to 20 reviews and is billed as one request. |
| posted_ago | string | – | Only reviews from this period |
| query | string | – | Only reviews matching this keyword |
| rating | string | – | Only these star ratings, comma-separated 1-5 (e.g. '1,2') |
| sort_by | string | – | Sort order |
| verified | boolean | – | Only verified reviews |
| with_replies | boolean | – | Only reviews the company replied to |
No output schema declared.
No examples provided.
trustpilot_user_profile 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.
| Name | Type | Req | Description |
|---|---|---|---|
| page | integer | – | Page number, 1-500 (default: 1). Each page returns up to 20 reviews. |
| user_id | string | yes | Reviewer 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 Truth Social 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.
| Name | Type | Req | Description |
|---|---|---|---|
| get_sentiment | boolean | – | 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… |
| pages | integer | – | Number of pages to fetch, 1-20 (default: 1). Each page returns up to 20 posts |
| username | string | yes | Truth Social username, with or without leading @ (max 100 characters) |
No output schema declared.
No examples provided.
twitter_trends Twitter Trending Topics ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| woeid | integer | yes | Where On Earth ID for the location. Use 1 for Worldwide. |
No output schema declared.
No examples provided.
twitter_tweet_comments 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.
| Name | Type | Req | Description |
|---|---|---|---|
| get_sentiment | boolean | – | 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… |
| pages | integer | – | Number of pages to fetch, 1-20 (default: 1) |
| tweet_id | string | yes | Numeric tweet ID |
No output schema declared.
No examples provided.
twitter_tweet_details 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.
| Name | Type | Req | Description |
|---|---|---|---|
| get_sentiment | boolean | – | 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_id | string | yes | Numeric tweet ID |
No output schema declared.
No examples provided.
twitter_tweet_quotes Twitter Quote Tweets ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| get_sentiment | boolean | – | 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… |
| pages | integer | – | Number of pages to fetch, 1-20 (default: 1) |
| tweet_id | string | yes | Numeric tweet ID |
No output schema declared.
No examples provided.
twitter_tweet_retweets 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.
| Name | Type | Req | Description |
|---|---|---|---|
| pages | integer | – | Number of pages to fetch, 1-20 (default: 1) |
| tweet_id | string | yes | Numeric tweet ID |
No output schema declared.
No examples provided.
twitter_user_followers 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.
| Name | Type | Req | Description |
|---|---|---|---|
| pages | integer | – | Number of pages to fetch, 1-20 (default: 1) |
| username | string | yes | Twitter username (without @, max 50 characters) |
No output schema declared.
No examples provided.
twitter_user_following 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.
| Name | Type | Req | Description |
|---|---|---|---|
| pages | integer | – | Number of pages to fetch, 1-175 (default: 1). Each page returns ~50 accounts. |
| username | string | yes | Twitter username (without @, max 50 characters) |
No output schema declared.
No examples provided.
twitter_user_profile 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.
| Name | Type | Req | Description |
|---|---|---|---|
| username | string | yes | Twitter username (without @, max 50 characters) |
No output schema declared.
No examples provided.
twitter_user_replies 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.
| Name | Type | Req | Description |
|---|---|---|---|
| get_sentiment | boolean | – | 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… |
| pages | integer | – | Number of pages to fetch, 1-20 (default: 1) |
| username | string | yes | Twitter username (without @, max 50 characters) |
No output schema declared.
No examples provided.
twitter_user_tweets 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.
| Name | Type | Req | Description |
|---|---|---|---|
| get_sentiment | boolean | – | 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… |
| pages | integer | – | Number of pages to fetch, 1-20 (default: 1) |
| username | string | yes | Twitter username (without @, max 50 characters) |
No output schema declared.
No examples provided.
twitter_verified_followers 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.
| Name | Type | Req | Description |
|---|---|---|---|
| pages | integer | – | Number of pages to fetch, 1-20 (default: 1) |
| username | string | yes | Twitter username (without @, max 50 characters) |
No output schema declared.
No examples provided.
youtube_channel_details 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.
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | – | YouTube channel ID (24 characters, starts with UC) |
| name | string | – | Channel name or @handle (e.g. @mkbhd or Linus Tech Tips) |
| url | string | – | Channel URL: youtube.com/channel/..., youtube.com/@handle, /c/ or /user/ forms |
No output schema declared.
No examples provided.
youtube_video_details 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.
| Name | Type | Req | Description |
|---|---|---|---|
| url | string | yes | YouTube video URL (watch?v=, youtu.be/, /shorts/, /embed/ or /live/ forms) or 11-character video ID |
No output schema declared.
No examples provided.
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
claude mcp add --transport http io-apidirect-api-direct 'https://apidirect.io/mcp'
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.