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 (10 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
reddit_post_comments ~325

Get the comments on a Reddit post, replies included, by URL or post ID (provide exactly one). Comments come in thread order with depth and parent ID, plus text, author, score, date and permalink. Sort by top, best, most_recent, controversial, oldest or qa. 50 per page, up to ~4,000 per thread; more than 10 pages can take over a minute on a big thread. 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-80 (default: 1). Each page returns up to 50 comments.
post_idstring–Reddit post ID, e.g. 1wwv97o (a t3_ prefix is accepted). Provide exactly one of url or post_id.
sort_bystring–Sort order: top, best (Reddit's default order), most_recent, controversial, oldest, or qa (Q&A) (default: top)
urlstring–Reddit post URL, e.g. https://www.reddit.com/r/Python/comments/1wwv97o/my_python_magic_is_gone/ or https://redd.it/1wwv97o (max 500 characters). Provide exactly one of url or post_id.

No output schema declared.

No examples provided.

reddit_post_crossposts ~219

Get the crossposts and reposts of a Reddit post's link across Reddit, by URL or post ID (provide exactly one). Returns subreddit, author, date, score, upvote ratio and comment count for each, up to 100. 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–Reddit post ID, e.g. 1wwv97o (a t3_ prefix is accepted). Provide exactly one of url or post_id.
urlstring–Reddit post URL, e.g. https://www.reddit.com/r/Python/comments/1wwv97o/my_python_magic_is_gone/ or https://redd.it/1wwv97o (max 500 characters). Provide exactly one of url or post_id.

No output schema declared.

No examples provided.

reddit_post_details ~237

Get one Reddit post by URL or post ID (provide exactly one). Returns title, text, author, subreddit, date, score, upvote ratio, comment and crosspost counts, flair, the shared link, thumbnail, video links, gallery images and NSFW/spoiler/locked flags. Use reddit_post_comments for its comments. 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–Reddit post ID, e.g. 1wwv97o (a t3_ prefix is accepted). Provide exactly one of url or post_id.
urlstring–Reddit post URL, e.g. https://www.reddit.com/r/Python/comments/1wwv97o/my_python_magic_is_gone/ or https://redd.it/1wwv97o (max 500 characters). Provide exactly one of url or post_id.

No output schema declared.

No examples provided.

reddit_subreddit_details ~142

Get a subreddit's details by name or URL (provide exactly one). Returns members, weekly active users, weekly contributions, description, sidebar, creation date, type, language, icon, banner, NSFW and quarantine flags, and status (active, private, banned or quarantined). Billed $0.003 per request.

NameTypeReqDescription
subredditstring–Subreddit name, with or without r/, e.g. Python. Provide exactly one of subreddit or url.
urlstring–Subreddit URL, e.g. https://www.reddit.com/r/Python/ (max 500 characters). Provide exactly one of subreddit or url.

No output schema declared.

No examples provided.

reddit_subreddit_posts ~377

Get a subreddit's posts by name or URL (provide exactly one), sorted hot, new, top, rising or controversial; posted_ago sets the window for top and controversial (1h to all); flair keeps only posts with that flair. Returns title, text, author, date, score, upvote ratio, comment count, flair, shared link and video/gallery links for each post. 25 per page, up to ~1,000 posts. Billed $0.003 per page.

NameTypeReqDescription
flairstring–Only posts with exactly this flair, e.g. Hiring (max 64 characters, not case-sensitive).
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-40 (default: 1). Each page returns up to 25 posts.
posted_agostring–Time window for sort_by=top or sort_by=controversial: 1h, 24h, 7d, 30d, 12m, or all (default: 24h, Reddit's own default). Rejected with any other sort_by.
sort_bystring–Sort order: hot, most_recent, top, rising, or controversial (default: hot)
subredditstring–Subreddit name, with or without r/, e.g. Python. Provide exactly one of subreddit or url.
urlstring–Subreddit URL, e.g. https://www.reddit.com/r/Python/ (max 500 characters). Provide exactly one of subreddit or url.

No output schema declared.

No examples provided.

reddit_subreddit_rules ~131

Get a subreddit's rules by name or URL (provide exactly one), in order. Returns each rule's title, full text, what it applies to (link, comment or all), report reason and the date it was added. Billed $0.003 per request.

NameTypeReqDescription
subredditstring–Subreddit name, with or without r/, e.g. Python. Provide exactly one of subreddit or url.
urlstring–Subreddit URL, e.g. https://www.reddit.com/r/Python/ (max 500 characters). Provide exactly one of subreddit or url.

No output schema declared.

No examples provided.

reddit_trending ~423

Get the posts trending across Reddit: r/popular (feed=popular, worldwide or one country's with country, e.g. GB) or r/all (feed=all), sorted hot, most_recent, top, rising or controversial; posted_ago sets the window for top and controversial. Returns title, text, subreddit, author, date, score, upvote ratio, comment count, flair, shared link and video/gallery links for each post. 25 per page, up to ~500 posts. Billed $0.003 per page.

NameTypeReqDescription
countrystring–One country's r/popular, as on reddit.com: AR, AU, BG, CA, CL, CO, CZ, DE, ES, FI, FR, GB, GR, HR, HU, IE, IN, IS, IT, JP, MX, MY, NZ, PH, PL, PR, PT, RO, RS, SE, SG, TH, TR, TW or US (default: world…
feedstring–popular (r/popular: the most active posts in public, non-NSFW communities) or all (r/all: every community) (default: popular)
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 25 posts.
posted_agostring–Time window for sort_by=top or sort_by=controversial: 1h, 24h, 7d, 30d, 12m, or all (default: 24h). Rejected with any other sort_by.
sort_bystring–Sort order: hot, most_recent, top, rising, or controversial (default: hot)

No output schema declared.

No examples provided.

reddit_user_comments ~326

Get a Reddit user's comments by username or profile URL (provide exactly one), sorted most_recent, hot, top or controversial; posted_ago sets the window for top and controversial (default: all time). Returns text, score, date, subreddit and permalink for each, plus the title and link of the post it was on. 25 per page, up to ~1,000 comments. 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-40 (default: 1). Each page returns up to 25 comments.
posted_agostring–Time window for sort_by=top or sort_by=controversial: 1h, 24h, 7d, 30d, 12m, or all (default: all). Rejected with any other sort_by.
sort_bystring–Sort order: most_recent, hot, top, or controversial (default: most_recent)
urlstring–Reddit profile URL, e.g. https://www.reddit.com/user/spez (max 500 characters). Provide exactly one of username or url.
usernamestring–Reddit username, with or without u/ (3-20 characters). Provide exactly one of username or url.

No output schema declared.

No examples provided.

reddit_user_posts ~332

Get a Reddit user's submitted posts by username or profile URL (provide exactly one), sorted most_recent, hot, top or controversial; posted_ago sets the window for top and controversial (default: all time). Returns title, text, subreddit, date, score, upvote ratio, comment count, flair, shared link and video/gallery links for each post. 25 per page, up to ~1,000 posts. 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-40 (default: 1). Each page returns up to 25 posts.
posted_agostring–Time window for sort_by=top or sort_by=controversial: 1h, 24h, 7d, 30d, 12m, or all (default: all). Rejected with any other sort_by.
sort_bystring–Sort order: most_recent, hot, top, or controversial (default: most_recent)
urlstring–Reddit profile URL, e.g. https://www.reddit.com/user/spez (max 500 characters). Provide exactly one of username or url.
usernamestring–Reddit username, with or without u/ (3-20 characters). Provide exactly one of username or url.

No output schema declared.

No examples provided.

reddit_user_profile ~136

Get a Reddit user's profile by username or profile URL (provide exactly one). Returns display name, followers, post and comment counts, post, comment, total and award karma, bio, avatar, banner, account creation date and verified, Premium, moderator and employee flags. Billed $0.003 per request.

NameTypeReqDescription
urlstring–Reddit profile URL, e.g. https://www.reddit.com/user/spez (max 500 characters). Provide exactly one of username or url.
usernamestring–Reddit username, with or without u/ (3-20 characters). Provide exactly one of username or url.

No output schema declared.

No examples provided.

search_amazon_products ~387

Search Amazon products by keyword or ASIN across 24 marketplaces. Returns ASIN, title, price and original price, rating and ratings count, Prime status, sales volume, badges and delivery info. Filter by category, price, condition, brand, seller, Prime, deals and 4+ stars. About 16 results per page. Use amazon_product_details for one product. Billed $0.005 per request.

NameTypeReqDescription
brandstring–Brand name(s), comma-separated for multiple
categorystring–Numeric Amazon category node ID(s) from an Amazon URL's ?node= parameter, comma-separated
category_idstring–Category slug, e.g. electronics (see https://apidirect.io/docs/amazon-categories)
countrystring–Marketplace country code (default: "us"). One of: us, au, br, ca, cn, fr, de, in, it, mx, nl, sg, es, tr, ae, gb, jp, sa, pl, se, be, eg, za, ie
deals_and_discountsstring–Deals filter
four_stars_and_upboolean–Only products rated 4 stars and up
is_primeboolean–Only products with Prime-eligible offers
max_pricenumber–Maximum price in the marketplace currency
min_pricenumber–Minimum price in the marketplace currency
pageinteger–Page number, 1-20 (default: 1). Each page returns ~16 results.
product_conditionstring–Product condition filter
querystringyesSearch keyword or a product ASIN (max 500 characters)
seller_idstring–Only products from specific seller ID(s), comma-separated
sort_bystring–Sort order

No output schema declared.

No examples provided.

search_bluesky ~270

Search Bluesky posts by keyword; Bluesky search syntax works in query. Returns post text, author, date, engagement metrics (likes, replies, reposts, quotes, bookmarks), media, link cards and quoted posts. Sort by newest or relevance and limit to a date range. Up to 50 posts per page. Billed $0.003 per page.

NameTypeReqDescription
end_datestring–Only posts up to this date (format: YYYY-MM-DD)
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 50 posts; you are billed per page returned.
querystringyesSearch keyword (max 500 characters). Bluesky search syntax works: "exact phrase", -exclude, from:handle, lang:en, #tag
sort_bystring–Sort order: "most_recent" or "relevance"
start_datestring–Only posts from this date onward (format: YYYY-MM-DD)

No output schema declared.

No examples provided.

search_bluesky_users ~114

Search Bluesky users by keyword, matching handles, display names and bios. Returns handle, display name, DID, bio, verification status, profile picture and join date. Up to 50 users per page. Billed $0.003 per page.

NameTypeReqDescription
pagesinteger–Number of pages to fetch, 1-20 (default: 1). Each page returns up to 50 users; you are billed per page returned.
querystringyesSearch keyword (max 500 characters)

No output schema declared.

No examples provided.

search_facebook_events ~151

Search public Facebook events by keyword. Returns event names, IDs and links. Limit to a date range or scope to a place with a location_id from search_facebook_locations. Billed $0.008 per page.

NameTypeReqDescription
end_datestring–Filter events until this date (YYYY-MM-DD)
location_idstring–Facebook location ID (from search_facebook_locations) to scope results to a place
pagesinteger–Number of pages to fetch (1-15, default 1). Billed per page.
querystringyesSearch keyword (max 500 characters)
start_datestring–Filter events from this date (YYYY-MM-DD)

No output schema declared.

No examples provided.

search_facebook_locations ~82

Resolve a place name (city, region or country) to Facebook location IDs. Pass a returned id as location_id to search_facebook_posts or search_facebook_events. Billed $0.004 per request.

NameTypeReqDescription
querystringyesPlace name to resolve, e.g. "London" or "Paris, France" (max 500 characters)

No output schema declared.

No examples provided.

search_facebook_pages ~91

Search Facebook pages by keyword. Returns page name, URL, profile image and verification status. Pass a page URL to facebook_page_details for its IDs and full profile. Billed $0.008 per page.

NameTypeReqDescription
pagesinteger–Number of pages to fetch (1-15, default 1). Billed per page.
querystringyesSearch keyword (max 500 characters)

No output schema declared.

No examples provided.

search_facebook_posts ~243

Search public Facebook posts by keyword. Returns post text, author details, engagement metrics, media and Facebook's AI content label (ai_label). Limit to a date range, sort by newest or relevance, or scope to a place with a location_id from search_facebook_locations. Billed $0.008 per page.

NameTypeReqDescription
end_datestring–Only posts up to this date (YYYY-MM-DD)
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…
location_idstring–Facebook location ID (from search_facebook_locations) to scope results to a place
pagesinteger–Number of pages to fetch (1-15, default 1). Billed per page.
querystringyesSearch keyword (max 500 characters)
sort_bystring–Sort order: most_recent or relevance (default: relevance)
start_datestring–Only posts from this date onward (YYYY-MM-DD)

No output schema declared.

No examples provided.

search_facebook_videos ~195

Search Facebook videos by keyword. Returns title, description, author, thumbnail and view metrics. Limit to a date range and sort by newest or relevance. Billed $0.008 per page.

NameTypeReqDescription
end_datestring–Only videos up to this date (YYYY-MM-DD)
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-15, default 1). Billed per page.
querystringyesSearch keyword (max 500 characters)
sort_bystring–Sort order: most_recent or relevance (default: relevance)
start_datestring–Only videos from this date onward (YYYY-MM-DD)

No output schema declared.

No examples provided.

search_forums ~207

Search forum posts across discussion boards, Q&A sites and community forums on the web. Returns title, URL, source domain and a content snippet. Filter by time period and country. 10 posts per page. Use search_reddit for Reddit. Billed $0.008 per request.

NameTypeReqDescription
countrystring–2-letter ISO country code, e.g. "us", "gb"
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, 1-10 (default: 1). 10 posts per page
querystringyesSearch keyword (max 500 characters)
timestring–Time filter: "any", "hour", "day", "week", "month", or "year"

No output schema declared.

No examples provided.

search_instagram ~165

Search Instagram posts by keyword. Returns caption, author, date, engagement metrics (likes, comments, shares, views), media URLs, hashtags, mentions and Instagram's AI label (ai_label with detection_method). Use instagram_hashtag_posts for a hashtag's feed. 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)
querystringyesSearch keyword (max 500 characters). Cannot start with # or @

No output schema declared.

No examples provided.

search_instagram_users ~70

Search Instagram users by keyword. Returns username, full name, verification status, profile picture and whether Instagram labels the account AI-generated. Use instagram_user_profile for one account's full profile. Billed $0.006 per request.

NameTypeReqDescription
querystringyesSearch keyword (max 500 characters)

No output schema declared.

No examples provided.

search_linkedin ~485

Search LinkedIn posts by keyword and/or filters: author (posts by a person), author_title (posts by people with a job title, e.g. Founder), author_company (posts by a company's employees), from_company (posts by a company page), mentions_company or mentions_member (posts mentioning a company or person), author_industry. Returns post text, author, date, engagement metrics, attached media and a has_content_entities flag (true when an image, article, video or job is attached). Company ids come from search_linkedin_companies. 20 posts per page. Billed $0.006 per request.

NameTypeReqDescription
authorstring–Posts authored by this person — profile URL, public slug (e.g. williamhgates), or member URN. Comma-separate for multiple.
author_companystring–Posts by people who work at this company. Numeric LinkedIn company id (from search_linkedin_companies).
author_industrystring–Posts by authors in these numeric LinkedIn industry id(s), comma-separated. Advanced; applies alongside a query.
author_titlestring–Posts by authors whose job title matches this free text (e.g. "CEO", "Founder"). Applies alongside a query.
from_companystring–Posts authored by a company page. Numeric company id(s), comma-separated.
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…
mentions_companystring–Posts that mention this company. Numeric company id.
mentions_memberstring–Posts that mention this person (profile URL, public slug, or member URN).
pageinteger–Page number, 1-25 (default: 1). 20 posts per page
posted_agostring–Only posts from this period: "24h", "7d", or "30d" (default: all time). Works with both sort orders and every filter
querystring–Search keyword (max 500 characters). Optional if you supply a filter below.
sort_bystring–Sort order: "most_recent" or "relevance"

No output schema declared.

No examples provided.

search_linkedin_companies ~131

Search LinkedIn companies by keyword. Returns name, subtitle (industry and location), description, follower count as text (e.g. 2M followers), logo, URL and company_id, the numeric id that search_linkedin (author_company, from_company, mentions_company) and search_linkedin_jobs (company_ids) take. 10 results per page. Billed $0.006 per request.

NameTypeReqDescription
pageinteger–Page number, 1-100 (default: 1). 10 results per page.
querystringyesSearch keyword (max 500 characters)

No output schema declared.

No examples provided.

search_linkedin_jobs ~272

Search LinkedIn job listings by keyword. Returns title, company and company_id, location, posting date, job type, experience level, workplace type, industry, salary and full description. Filter by recency, job type, company and location; useful as a hiring or expansion signal. 25 jobs per page. Billed $0.006 per request.

NameTypeReqDescription
company_idsstring–Filter by company — comma-separated numeric LinkedIn company id(s) (from search_linkedin_companies).
job_typestring–Job type filter: full_time, part_time, contract, temporary, volunteer, internship, other. Comma-separated for multiple.
location_idstring–Filter by location — a numeric LinkedIn location id (see https://apidirect.io/docs/linkedin-job-locations).
pageinteger–Page number, 1-40 (default: 1). 25 jobs per page
posted_agostring–Maximum job age: "1h", "24h", "7d", or "30d" (default: all time)
querystringyesSearch keyword (max 500 characters)
sort_bystring–Sort order: "most_recent" or "relevance" (default: relevance)

No output schema declared.

No examples provided.

search_news ~179

Search news articles from thousands of sources worldwide. Returns title, URL, snippet, author, source and publish date. Filter by time period, source domain, country and language; up to 100 results per call. Billed $0.008 per request.

NameTypeReqDescription
countrystring–2-letter country code (default: "us")
languagestring–2-letter language code (default: "en")
limitinteger–Number of results, 1-100 (default: 10)
querystringyesSearch keyword (max 500 characters)
sourcestring–Filter by news source domain, e.g. "bbc.com"
time_publishedstring–Time filter: "anytime", "1h", "1d", "7d", or "1y"

No output schema declared.

No examples provided.

search_places ~239

Search Google Maps places (businesses and points of interest) by free-text query. Returns place_id, name, address, phone, website, rating, review count, opening hours and coordinates. Optionally bias results around lat/lng with zoom. Up to 10 results per page. Pass a place_id to place_details, place_reviews or place_photos. Billed $0.01 per page.

NameTypeReqDescription
countrystring–2-letter country code (default: "us")
languagestring–2-letter language code (default: "en")
latnumber–Center latitude for geographic bias (use with lng)
lngnumber–Center longitude for geographic bias (use with lat)
pagesinteger–Number of pages, 1-20 (default: 1). Each page returns up to 10 results and is billed as one request.
querystringyesSearch keyword, e.g. "coffee shops brooklyn" (max 500 characters)
zoominteger–Map zoom level 1-20 (default: 13). Smaller widens radius.

No output schema declared.

No examples provided.

search_reddit ~312

Search Reddit posts by keyword. Returns title, URL, subreddit, author, text, score, comment count, flair and video/gallery links. Sort by newest, relevance, hot, top or most commented, limit to a time window or one subreddit, and optionally include NSFW posts. 20 posts per page. Use search_reddit_comments to search comment text and reddit_subreddit_posts to browse a subreddit. 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…
include_nsfwboolean–Include posts marked NSFW (left out by default)
pageinteger–Page number, 1-12 (default: 1). 20 posts per page
posted_agostring–Only posts from this period: "1h", "24h", "7d", "30d", "12m", or "all" (default: all). Works with every sort_by
querystringyesSearch keyword (max 500 characters)
sort_bystring–Sort order: "most_recent", "relevance", "hot", "top", or "most_commented"
subredditstring–Only posts from this subreddit, with or without r/ (e.g. Python)

No output schema declared.

No examples provided.

search_reddit_comments ~216

Search Reddit comments by keyword, optionally in one subreddit. Returns comment text, subreddit, author, date, the comment, post and parent IDs, a link to the comment and a link for the parent post (its Reddit thread, or the article, image or video a link post shares). Use search_reddit for posts. 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-10 (default: 1)
querystringyesSearch keyword (max 500 characters)
sort_bystring–Sort order: "most_recent", "relevance", or "top"
subredditstring–Only comments from this subreddit, with or without r/ (e.g. Python)

No output schema declared.

No examples provided.

search_reddit_subreddits ~116

Search subreddits by keyword. Returns name, ID, title, member count, description, creation date, type, language and icon for each. 25 per page. Use reddit_subreddit_details for one subreddit's weekly activity. Billed $0.003 per page.

NameTypeReqDescription
pagesinteger–Number of pages to fetch, 1-10 (default: 1). Each page returns up to 25 subreddits.
querystringyesSearch keyword (max 500 characters)

No output schema declared.

No examples provided.

search_reddit_users ~113

Search Reddit users by keyword. Returns username, user ID, bio, post and comment karma, account creation date, banner, verified, moderator, employee and NSFW flags and profile link. 25 per page, up to 4 pages. Billed $0.003 per page.

NameTypeReqDescription
pagesinteger–Number of pages to fetch, 1-4 (default: 1). Each page returns up to 25 users
querystringyesSearch keyword (max 500 characters)

No output schema declared.

No examples provided.

search_substack ~237

Search Substack posts by keyword across every publication. Returns post title, subtitle, author, publication, publication date, engagement (likes, comments, restacks), paywall status, word count, cover image and tags, plus the publications related to the query. Limit to a time window from the past day to the past year. 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…
languagestring–Two-letter language code, e.g. es, to rank posts in that language first
pageinteger–Page number, 1-101 (default: 1). 16-20 posts per page
posted_agostring–Only posts from this period: "24h", "7d", "30d", or "12m" (default: all time)
querystringyesSearch keyword (max 500 characters)

No output schema declared.

No examples provided.

search_substack_notes ~187

Search Substack Notes by keyword. Returns each note's text, author, date, engagement (likes, replies, restacks) and any quoted post or note, newest first or top first. Up to 12 notes per page. 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-250 (default: 1). Each page returns up to 12 notes; you are billed per page returned.
querystringyesSearch keyword (max 500 characters)
sort_bystring–Sort order: "most_recent" or "top"

No output schema declared.

No examples provided.

search_substack_publications ~130

Search Substack publications by name or keyword. Returns name, URL, tagline, author, subscriber badge, paid-subscriber band, prices, bestseller tier and language for each publication. 20 per page, up to 4 pages. Billed $0.003 per request.

NameTypeReqDescription
languagestring–Two-letter language code, e.g. es, to rank publications in that language first
pageinteger–Page number, 1-4 (default: 1). 20 publications per page
querystringyesSearch keyword (max 500 characters)

No output schema declared.

No examples provided.

search_substack_users ~93

Search Substack authors and publication profiles by name or keyword. Returns handle, display name, bio, follower count, subscriber badge, bestseller tier and primary publication for each profile. Billed $0.003 per request.

NameTypeReqDescription
pageinteger–Page number, 1-4 (default: 1). 20 profiles per page
querystringyesSearch keyword (max 500 characters)

No output schema declared.

No examples provided.

search_threads ~182

Search Threads (Meta) posts by keyword. Returns post text, author, engagement metrics (likes, replies, reposts, quotes, reshares), media, link previews, permalinks and Threads' AI label (ai_label). About 20 posts on the first page and 10 on each later 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-200 (default: 1). The first page returns about 20 posts and later pages about 10
querystringyesSearch keyword (max 500 characters)

No output schema declared.

No examples provided.

search_threads_users ~69

Search Threads (Meta) users by keyword. Returns username, display name, user ID, verification and privacy status and profile picture. Use threads_user_profile for one account's full profile. Billed $0.006 per request.

NameTypeReqDescription
querystringyesSearch keyword (max 500 characters)

No output schema declared.

No examples provided.

search_tiktok ~268

Search TikTok videos by keyword. Returns title, URL, engagement metrics (plays, likes, comments, shares, downloads), author metadata, music and publish date. Filter by publish time and region; sort by relevance, newest or most liked. Use tiktok_video_details for one video's full details. 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-10 (default: 1)
publish_timeinteger–Time filter: 0=ALL, 1=24h, 7=week, 30=month, 90=3months, 180=6months
querystringyesSearch keyword (max 500 characters)
regionstring–ISO 3166-1 alpha-2 country code (e.g. us, gb, jp; use gb for the UK, not uk).
sort_bystring–Sort order: "relevance", "most_recent", or "most_liked"

No output schema declared.

No examples provided.

search_tiktok_hashtags ~114

Search TikTok hashtags by keyword. Returns each hashtag's numeric ID, name, video count, total views and cover image, 30 per page, most relevant first. Use tiktok_hashtag_videos to get a hashtag's videos. Billed $0.006 per page.

NameTypeReqDescription
pagesinteger–Number of pages to fetch, 1-1000 (default: 1). Each page returns up to 30 hashtags.
querystringyesSearch keyword (max 500 characters)

No output schema declared.

No examples provided.

search_tiktok_users ~95

Search TikTok users by keyword. Returns username, nickname, bio, follower and following counts, total likes, video count and verification status. Use tiktok_user_profile for one account's full profile. Billed $0.006 per page.

NameTypeReqDescription
pagesinteger–Number of pages to fetch, 1-10 (default: 1)
querystringyesSearch keyword (max 500 characters)

No output schema declared.

No examples provided.

search_trustpilot_categories ~91

Search Trustpilot categories by keyword. Returns up to 6 fuzzy matches with category_id and name; it never returns zero matches, so check the names fit. Pass a category_id to trustpilot_category_companies or trustpilot_category_details. Billed $0.005 per request.

NameTypeReqDescription
querystringyesKeyword (max 200 characters), e.g. 'bank' or 'shop'

No output schema declared.

No examples provided.

search_trustpilot_companies ~155

Search Trustpilot companies by name or keyword. Returns business_unit_id, name, domain, website, Trustpilot URL, logo, TrustScore, stars, review count, categories and location, plus matching categories. Filter by minimum rating and review count. 10 results per page. Use trustpilot_company_reviews for a company's reviews. Billed $0.005 per request.

NameTypeReqDescription
min_ratingstring–Minimum TrustScore
min_review_countstring–Minimum number of reviews
pageinteger–Page number, 1-500 (default: 1). Each page returns up to 10 results.
querystringyesCompany name or keyword (max 500 characters)

No output schema declared.

No examples provided.

search_twitter ~304

Search Twitter/X posts by keyword; X search operators work in query. Returns tweet text, author username, URL, date, engagement metrics (likes, retweets, replies, views) and X's "Made with AI" label (ai_label). Filter by time window (posted_ago) or date range. Use twitter_user_tweets for one account's timeline. Billed $0.006 per page.

NameTypeReqDescription
end_datestring–Only posts up to and including this date (YYYY-MM-DD, UTC). Not with posted_ago
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)
posted_agostring–Only posts from this period: "1h", "24h", "7d", "30d", or "12m" (default: all time). Works with both sort orders
querystringyesSearch keyword (max 500 characters). Supports X search operators
sort_bystring–Sort order: "most_recent" or "relevance"
start_datestring–Only posts from this date onward (YYYY-MM-DD, UTC). Not with posted_ago

No output schema declared.

No examples provided.

search_twitter_users ~91

Search Twitter/X users by keyword. Returns username, display name, bio, follower and following counts, verification status and profile image. Use twitter_user_profile when you know the username. Billed $0.006 per page.

NameTypeReqDescription
pagesinteger–Number of pages to fetch, 1-20 (default: 1)
querystringyesSearch keyword (max 500 characters)

No output schema declared.

No examples provided.

search_web ~259

Search the web through Google organic results. Returns title, URL, snippet, source and domain for each result. Google operators (site:, intitle:) work in query; target by country, language, city and device, filter by time, and optionally include Google's AI Overview. 10 results per page. Billed $0.004 per page.

NameTypeReqDescription
countrystring–2-letter country code (default: "us")
devicestring–Device profile: "desktop" or "mobile"
include_ai_overviewboolean–Include Google AI Overview when available (+$0.002 flat surcharge)
languagestring–2-letter language code (default: "en")
locationstring–City-level geo location (e.g. "London,England,United Kingdom")
pagesinteger–Number of result pages to fetch, 1-10 (default: 1). 10 results per page.
querystringyesSearch keyword (max 500 characters). Supports Google advanced operators (site:, inurl:, intitle:, etc.)
timestring–Time filter: "any", "hour", "day", "week", "month", or "year"

No output schema declared.

No examples provided.

search_youtube ~178

Search YouTube videos by keyword. Returns title, URL, channel, publish date, description, view count, length and thumbnail. Filter by upload date. Use youtube_video_details for one video's full metadata. Billed $0.005 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)
querystringyesSearch keyword (max 500 characters)
upload_datestring–Filter by upload date: "last_hour", "today", "this_week", "this_month", or "this_year"

No output schema declared.

No examples provided.

search_youtube_channels ~84

Search YouTube channels by keyword. Returns channel name, description, subscriber count and thumbnail. Use youtube_channel_details for one channel's full stats. Billed $0.005 per page.

NameTypeReqDescription
pagesinteger–Number of pages to fetch, 1-20 (default: 1)
querystringyesSearch keyword (max 500 characters)

No output schema declared.

No examples provided.

substack_category_feed ~157

Get a Substack category's feed: the posts and notes Substack shows for the topic, top, newest or posts only. Each item is tagged note or post. About 11 items per page. Billed $0.003 per page.

NameTypeReqDescription
categorystringyesCategory ID or slug, e.g. 4 or technology. See https://apidirect.io/docs/substack-category-ids
pagesinteger–Number of pages to fetch, 1-250 (default: 1). Each page returns about 11 items; you are billed per page returned.
sort_bystring–Sort order: "top", "most_recent" or "posts" (posts only, no notes)

No output schema declared.

No examples provided.

substack_category_publications ~160

Get a Substack category's leaderboard: the top publications ranked by Substack, each with its full details (subscriber badge, paid band, prices, author) and rank. Billed $0.003 per request.

NameTypeReqDescription
categorystringyesCategory ID or slug, e.g. 4 or technology (bestsellers and podcasts for the site-wide boards). See https://apidirect.io/docs/substack-category-ids
pageinteger–Page number (default: 1), 25 publications per page. Up to 21 pages; rising 10; bestsellers and podcasts 4
tierstring–all, paid or rising (bestsellers: rising; podcasts: all or paid)

No output schema declared.

No examples provided.

substack_note_details ~190

Get a Substack Note by URL or ID, with its replies. Returns the note text, author, date, likes, replies and restacks, any quoted post or note, and the reply thread nested to any depth (provide exactly one of url, note_id). 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…
note_idstring–Numeric note ID, with or without the c- prefix. Provide either url or note_id.
urlstring–Note URL, e.g. https://substack.com/@hamish/note/c-355659691 (max 500 characters). Provide either url or note_id.

No output schema declared.

No examples provided.

substack_post_comments ~284

Get the full comment thread of a Substack post, nested. Returns every comment with text, author, date, likes, replies and restacks, replies nested under their parent to any depth, sorted by relevance, newest first or oldest first (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.
sort_bystring–Sort order: "relevance" (best first), "most_recent" or "oldest"
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.

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.