API Direct
REMOTE · APIDIRECT.IO
Search social media, news, forums and Google Maps: LinkedIn, X, Reddit, TikTok, YouTube.
Available components
Last scanned (4 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 →
amazon_best_sellers Amazon Best Sellers ~165
Get Amazon rankings for a category: Best Sellers, New Releases, Movers & Shakers, Most Wished For or Gift Ideas. Each item has rank, rank change, ASIN, title, price and rating. Up to 50 items per page; rankings cover the top 100. Billed $0.005 per request.
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | yes | Category slug, e.g. electronics or software (see https://apidirect.io/docs/amazon-categories) |
| country | string | – | Marketplace country code (default: "us") |
| page | integer | – | Page number, 1 or 2 (default: 1). Each page returns up to 50 items; rankings cover the top 100. |
| type | string | – | Ranking type |
No output schema declared.
No examples provided.
amazon_product_details Amazon Product Details ~103
Get an Amazon product by ASIN (from search_amazon_products). Returns pricing, buy box with seller_id, availability, condition, photos, videos, specs, feature bullets, description, per-star rating breakdown and top reviews. Billed $0.005 per request.
| Name | Type | Req | Description |
|---|---|---|---|
| asin | string | yes | 10-character Amazon ASIN (e.g. B07ZPKN6YR) |
| country | string | – | Marketplace country code (default: "us") |
No output schema declared.
No examples provided.
amazon_seller_products Amazon Seller Products ~129
Get the products an Amazon seller sells, by seller ID. Returns the same product objects as search_amazon_products plus the seller's total catalog size. Sort by price, reviews, newest or best sellers. About 16 results per page. Billed $0.005 per request.
| Name | Type | Req | Description |
|---|---|---|---|
| country | string | – | Marketplace country code (default: "us") |
| page | integer | – | Page number, 1-50 (default: 1). Each page returns ~16 results. |
| seller_id | string | yes | Amazon seller ID |
| sort_by | string | – | Sort order |
No output schema declared.
No examples provided.
amazon_seller_profile Amazon Seller Profile ~122
Get an Amazon seller's profile by seller ID (main_buy_box.seller_id from amazon_product_details). Returns name, logo, about text, registered business name and address, average rating, total ratings, positive-feedback percentage and a feedback breakdown over 30 days, 90 days, 12 months and lifetime. Billed $0.005 per request.
| Name | Type | Req | Description |
|---|---|---|---|
| country | string | – | Marketplace country code (default: "us") |
| seller_id | string | yes | Amazon seller ID (e.g. A2L77EE7U53NWQ) |
No output schema declared.
No examples provided.
amazon_seller_reviews Amazon Seller Reviews ~171
Get customer feedback on an Amazon seller by seller ID. Each review has author, text, star rating, date and whether the seller responded. Filter by star rating or positive/critical; page until has_next_page is false. Billed $0.005 per request.
| Name | Type | Req | Description |
|---|---|---|---|
| country | string | – | Marketplace country code (default: "us") |
| 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, 1-50 (default: 1) |
| seller_id | string | yes | Amazon seller ID |
| star_rating | string | – | Star rating filter |
No output schema declared.
No examples provided.
batch_requests Batch Requests ~158
Run up to 100 API Direct REST requests in one call, mixing any endpoints the other tools cover (e.g. 50 twitter_user_profile and 50 instagram_user_profile lookups). Each item gives a /v1 endpoint path and that endpoint's query parameters, as documented at https://apidirect.io/docs/batch. Items run concurrently and each returns its own status and body, in input order. /v1/web/ai-mode isn't supported. Large batches can take several minutes. The batch call is free; each item is billed at its endpoint's normal rate.
| Name | Type | Req | Description |
|---|---|---|---|
| requests | array | yes | 1-100 items to execute. Each item's params are exactly the query parameters that endpoint accepts when called directly (string or number values). |
No output schema declared.
No examples provided.
bluesky_post_comments Bluesky Post Comments ~225
Get the replies to a Bluesky post by URL or AT URI post_id (provide exactly one). Returns every reply Bluesky serves, up to 10 levels deep, as a flat list of full posts whose in_reply_to_id points at the parent. 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 | – | The post's AT URI as returned in post_id, e.g. at://did:plc:z72i7hdynmk6r22z27h6tvur/app.bsky.feed.post/3l6oveex3ii2l (max 200 characters). |
| url | string | – | Bluesky post URL, e.g. https://bsky.app/profile/bsky.app/post/3l6oveex3ii2l (max 500 characters). |
No output schema declared.
No examples provided.
bluesky_post_details Bluesky Post Details ~220
Get one Bluesky post by URL or AT URI post_id (provide exactly one). Returns text, author, date, engagement metrics (likes, replies, reposts, quotes, bookmarks), media, link card and quoted post. 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 | – | The post's AT URI as returned in post_id, e.g. at://did:plc:z72i7hdynmk6r22z27h6tvur/app.bsky.feed.post/3l6oveex3ii2l (max 200 characters). |
| url | string | – | Bluesky post URL, e.g. https://bsky.app/profile/bsky.app/post/3l6oveex3ii2l (max 500 characters). |
No output schema declared.
No examples provided.
bluesky_post_likes Bluesky Post Likes ~218
Get the users who liked a Bluesky post, newest first, by URL or AT URI post_id (provide exactly one). Returns each user's handle, display name, DID, bio, verification status, profile picture, join date and like time. Up to 50 per page. Billed $0.003 per page.
| Name | Type | Req | Description |
|---|---|---|---|
| pages | integer | – | Number of pages to fetch, 1-20 (default: 1). Each page returns up to 50 accounts; you are billed per page returned. |
| post_id | string | – | The post's AT URI as returned in post_id, e.g. at://did:plc:z72i7hdynmk6r22z27h6tvur/app.bsky.feed.post/3l6oveex3ii2l (max 200 characters). |
| url | string | – | Bluesky post URL, e.g. https://bsky.app/profile/bsky.app/post/3l6oveex3ii2l (max 500 characters). |
No output schema declared.
No examples provided.
bluesky_post_quotes Bluesky Post Quotes ~258
Get the posts that quote a Bluesky post, newest first, by URL or AT URI post_id (provide exactly one). Returns each quoting post's text, author, engagement metrics and media. Up to 50 per page. 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-20 (default: 1). Each page returns up to 50 posts; you are billed per page returned. |
| post_id | string | – | The post's AT URI as returned in post_id, e.g. at://did:plc:z72i7hdynmk6r22z27h6tvur/app.bsky.feed.post/3l6oveex3ii2l (max 200 characters). |
| url | string | – | Bluesky post URL, e.g. https://bsky.app/profile/bsky.app/post/3l6oveex3ii2l (max 500 characters). |
No output schema declared.
No examples provided.
bluesky_post_reposts Bluesky Post Reposts ~216
Get the users who reposted a Bluesky post, newest first, by URL or AT URI post_id (provide exactly one). Returns each user's handle, display name, DID, bio, verification status, profile picture and join date. Up to 50 per page. Billed $0.003 per page.
| Name | Type | Req | Description |
|---|---|---|---|
| pages | integer | – | Number of pages to fetch, 1-20 (default: 1). Each page returns up to 50 accounts; you are billed per page returned. |
| post_id | string | – | The post's AT URI as returned in post_id, e.g. at://did:plc:z72i7hdynmk6r22z27h6tvur/app.bsky.feed.post/3l6oveex3ii2l (max 200 characters). |
| url | string | – | Bluesky post URL, e.g. https://bsky.app/profile/bsky.app/post/3l6oveex3ii2l (max 500 characters). |
No output schema declared.
No examples provided.
bluesky_user_followers Bluesky User Followers ~173
Get a Bluesky user's followers, newest first, by handle, DID or profile URL (provide exactly one of username or url). Returns handle, display name, DID, bio, verification status, profile picture and join date. Up to 50 per page. Billed $0.003 per page.
| Name | Type | Req | Description |
|---|---|---|---|
| pages | integer | – | Number of pages to fetch, 1-20 (default: 1). Each page returns up to 50 accounts; you are billed per page returned. |
| url | string | – | Bluesky profile URL, e.g. https://bsky.app/profile/bsky.app (max 500 characters). |
| username | string | – | Bluesky handle, e.g. bsky.app, with or without leading @, or the account's DID (max 100 characters). |
No output schema declared.
No examples provided.
bluesky_user_following Bluesky User Following ~175
Get the accounts a Bluesky user follows, newest first, by handle, DID or profile URL (provide exactly one of username or url). Returns handle, display name, DID, bio, verification status, profile picture and join date. Up to 50 per page. Billed $0.003 per page.
| Name | Type | Req | Description |
|---|---|---|---|
| pages | integer | – | Number of pages to fetch, 1-20 (default: 1). Each page returns up to 50 accounts; you are billed per page returned. |
| url | string | – | Bluesky profile URL, e.g. https://bsky.app/profile/bsky.app (max 500 characters). |
| username | string | – | Bluesky handle, e.g. bsky.app, with or without leading @, or the account's DID (max 100 characters). |
No output schema declared.
No examples provided.
bluesky_user_likes Bluesky User Likes ~221
Get the posts a Bluesky user liked, newest first, by handle, DID or profile URL (provide exactly one of username or url). Returns each full post plus liked_at, when the user liked it. Up to 50 per page. 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-20 (default: 1). Each page returns up to 50 posts; you are billed per page returned. |
| url | string | – | Bluesky profile URL, e.g. https://bsky.app/profile/bsky.app (max 500 characters). |
| username | string | – | Bluesky handle, e.g. bsky.app, with or without leading @, or the account's DID (max 100 characters). |
No output schema declared.
No examples provided.
bluesky_user_posts Bluesky User Posts ~244
Get a Bluesky user's feed by handle, DID or profile URL (provide exactly one of username or url): their posts, replies and reposts, pinned post first then newest first, each flagged is_reply, is_repost and is_pinned. Returns post text, engagement metrics, media, link cards and quoted posts. Up to 50 posts per page. 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-20 (default: 1). Each page returns up to 50 posts; you are billed per page returned. |
| url | string | – | Bluesky profile URL, e.g. https://bsky.app/profile/bsky.app (max 500 characters). |
| username | string | – | Bluesky handle, e.g. bsky.app, with or without leading @, or the account's DID (max 100 characters). |
No output schema declared.
No examples provided.
bluesky_user_profile Bluesky User Profile ~134
Get a Bluesky user's profile by handle, DID or profile URL (provide exactly one of username or url). Returns display name, bio, follower, following and post counts, verification status, profile picture, banner, join date and the pinned post's ID. Billed $0.003 per request.
| Name | Type | Req | Description |
|---|---|---|---|
| url | string | – | Bluesky profile URL, e.g. https://bsky.app/profile/bsky.app (max 500 characters). |
| username | string | – | Bluesky handle, e.g. bsky.app, with or without leading @, or the account's DID (max 100 characters). |
No output schema declared.
No examples provided.
facebook_group_details Facebook Group Details ~63
Get a Facebook group by URL. Returns name, group ID, description, privacy setting, member count, location and cover photo. Pass the group ID to facebook_group_posts. Billed $0.008 per request.
| Name | Type | Req | Description |
|---|---|---|---|
| url | string | yes | Facebook group URL |
No output schema declared.
No examples provided.
facebook_group_posts Facebook Group Posts ~171
Get posts from a public Facebook group by numeric group ID (from facebook_group_details). Returns post text, author details, engagement metrics, media and Facebook's AI content label (ai_label). Sort by newest or relevance. Billed $0.008 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… |
| group_id | string | yes | Facebook group ID (numeric) |
| pages | integer | – | Number of pages to fetch (1-15, default 1). Billed per page. |
| sort_by | string | – | Sort order: most_recent or relevance (default: most_recent) |
No output schema declared.
No examples provided.
facebook_page_details Facebook Page Details ~87
Get a Facebook page by URL. Returns name, page_id, follower and like counts, categories, contact info, rating and verification status, plus the delegate_page_id and reels_page_id that facebook_page_videos and facebook_page_reels need. Billed $0.008 per request.
| Name | Type | Req | Description |
|---|---|---|---|
| url | string | yes | Facebook page URL (e.g. https://www.facebook.com/facebook) |
No output schema declared.
No examples provided.
facebook_page_photos Facebook Page Photos ~80
Get photos from a Facebook page by numeric page ID (from facebook_page_details). Returns photo IDs and image URLs. Billed $0.008 per page.
| Name | Type | Req | Description |
|---|---|---|---|
| page_id | string | yes | Facebook page ID (numeric) |
| pages | integer | – | Number of pages to fetch (1-15, default 1). Billed per page. |
No output schema declared.
No examples provided.
facebook_page_posts Facebook Page Posts ~188
Get posts from a Facebook page by numeric page ID (from facebook_page_details). Returns post text, engagement metrics, reaction breakdown, media and Facebook's AI content label (ai_label). Optionally limit to a date range. Billed $0.008 per page.
| Name | Type | Req | Description |
|---|---|---|---|
| end_date | string | – | Only posts up to this date (YYYY-MM-DD) |
| 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_id | string | yes | Facebook page ID (numeric) |
| pages | integer | – | Number of pages to fetch (1-15, default 1). Billed per page. |
| start_date | string | – | Only posts from this date onward (YYYY-MM-DD) |
No output schema declared.
No examples provided.
facebook_page_reels Facebook Page Reels ~137
Get reels from a Facebook page by its reels_page_id (from facebook_page_details). Returns reel metadata and engagement metrics. Billed $0.008 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-10, default 1). Billed per page. |
| reels_page_id | string | yes | Reels page ID (from page details endpoint) |
No output schema declared.
No examples provided.
facebook_page_reviews Facebook Page Reviews ~133
Get reviews of a Facebook page by numeric page ID (from facebook_page_details). Returns review text, recommendation status and author info. Billed $0.008 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… |
| page_id | string | yes | Facebook page ID (numeric) |
| pages | integer | – | Number of pages to fetch (1-15, default 1). Billed per page. |
No output schema declared.
No examples provided.
facebook_page_videos Facebook Page Videos ~136
Get videos from a Facebook page by its delegate_page_id (from facebook_page_details). Returns video metadata and play counts. Billed $0.008 per page.
| Name | Type | Req | Description |
|---|---|---|---|
| delegate_page_id | string | yes | Delegate page ID (from page details endpoint) |
| 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-15, default 1). Billed per page. |
No output schema declared.
No examples provided.
facebook_post_comments Facebook Post Comments ~174
Get the comments on a Facebook post by post ID (pfbid or numeric, from facebook_page_posts, facebook_group_posts or search_facebook_posts). Returns each comment's text, author details, reaction and reply counts, date and any attachment. Billed $0.008 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). Billed per page. |
| post_id | string | yes | Facebook post ID (pfbid or numeric, from facebook_page_posts, facebook_group_posts, or search_facebook_posts) |
No output schema declared.
No examples provided.
get_skill Get Skill Playbook ~147
Get one skill's step-by-step playbook with your inputs filled in: the ordered tool calls and filters that produce its outcome, for you to run. Pass the skill_id from list_skills, or the skill name the user gave (close matches resolve). Omit inputs and the playbook lists what to ask the user for. Free.
| Name | Type | Req | Description |
|---|---|---|---|
| inputs | object | – | The skill's inputs as key/value pairs, e.g. {"competitor": "Notion"}. Optional — omit and the playbook will tell you what to ask the user for. |
| skill_id | string | yes | The skill id from list_skills, e.g. "competitor-conquest-radar". |
No output schema declared.
No examples provided.
get_youtube_comments YouTube Video Comments ~144
Get the comments on a YouTube video by URL or video ID. Returns each comment's text, author, like and reply counts, date, link and up to 5 preview replies. Sort by newest or relevance. Up to about 100 comments per page. Billed $0.005 per page.
| Name | Type | Req | Description |
|---|---|---|---|
| pages | integer | – | Number of pages to fetch, 1-20 (default: 1). Each page returns up to ~100 comments. |
| sort_by | string | – | Sort order: most_recent (newest first) or relevance (default: relevance) |
| url | string | yes | YouTube video URL or 11-character video ID |
No output schema declared.
No examples provided.
google_ai_mode Google AI Mode ~146
Ask Google AI Mode a prompt and get its structured answer (reply_parts: paragraphs, headings, lists, images) with reference_links citations. Pass session_token from a previous response to ask a follow-up in the same conversation. Answers can take over a minute. Use search_web for plain search results. Billed $0.005 per request.
| Name | Type | Req | Description |
|---|---|---|---|
| country | string | – | 2-letter country code (default: "us") |
| language | string | – | 2-letter language code (default: "en") |
| prompt | string | yes | The AI Mode prompt (max 12000 characters) |
| session_token | string | – | Token from a prior response to continue the conversation |
No output schema declared.
No examples provided.
instagram_comment_replies Instagram Comment Replies ~249
Get the replies to one Instagram comment, by post URL or shortcode (provide exactly one) plus the comment_id from instagram_post_comments. Returns each reply's text, author details (including whether Instagram labels the commenter AI-generated), like count, date, link and parent comment. Returns an empty list when there are no replies. Billed $0.006 per page.
| Name | Type | Req | Description |
|---|---|---|---|
| code | string | – | The post's shortcode, e.g. CxYQJO8xuC6, or numeric media ID (max 50 characters) |
| comment_id | string | yes | The comment's numeric ID, from instagram_post_comments (comment_id) |
| 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-10 (default: 1) |
| url | string | – | Instagram post or reel URL, e.g. https://www.instagram.com/p/CxYQJO8xuC6/ (max 500 characters) |
No output schema declared.
No examples provided.
instagram_hashtag_posts Instagram Hashtag Posts ~218
Get Instagram posts and reels for a hashtag. Returns the same post objects as search_instagram plus the hashtag's total post count (top tab only). sort_by picks the tab: top (default), recent or reels. Up to about 30 new 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… |
| hashtag | string | yes | Hashtag, with or without the leading # (max 100 characters), e.g. summer |
| pages | integer | – | Number of pages to fetch, 1-10 (default: 1). Each page adds up to about 30 posts (repeats across pages are removed) |
| sort_by | string | – | Hashtag tab: top (default), recent (newest first), or reels (Reels only) |
No output schema declared.
No examples provided.
instagram_highlight_stories Instagram Highlight Stories ~141
Get the stories saved in one Instagram highlight, by highlight ID (from instagram_user_highlights) or highlight URL. Returns the highlight's title and cover plus each story's media URLs, post time, link stickers, mentions, tagged users, location, audio and AI detection method. Media URLs expire after about 6-24 hours. Billed $0.006 per request.
| Name | Type | Req | Description |
|---|---|---|---|
| highlight_id | string | yes | Highlight ID, e.g. 17987606483520330 (also accepts highlight:17987606483520330), or a highlight URL like https://www.instagram.com/stories/highlights/17987606483520330/ |
No output schema declared.
No examples provided.
instagram_post_comments Instagram Post Comments ~266
Get the comments on an Instagram post or reel by URL or shortcode (provide exactly one). Returns each comment's text, author details (including whether Instagram labels the commenter AI-generated), like and reply counts, date and link. Sort by popular (includes pinned) or recent. Up to 15 comments per page. Use instagram_comment_replies for a comment's replies. Billed $0.006 per page.
| Name | Type | Req | Description |
|---|---|---|---|
| code | string | – | The post's shortcode, e.g. CxYQJO8xuC6, or numeric media ID (max 50 characters) |
| 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 15 comments |
| sort_by | string | – | Sort order: popular (default, includes pinned comments) or recent |
| url | string | – | Instagram post or reel URL, e.g. https://www.instagram.com/p/CxYQJO8xuC6/ (max 500 characters) |
No output schema declared.
No examples provided.
instagram_post_details Instagram Post Details ~196
Get one Instagram post, reel or IGTV video by URL or shortcode (provide exactly one). Returns caption, like, comment, share and view counts, media URLs, carousel slides, audio track, tagged users, location, author details and Instagram's AI label. Billed $0.006 per request.
| Name | Type | Req | Description |
|---|---|---|---|
| code | string | – | The post's shortcode, e.g. CxYQJO8xuC6, or numeric media ID (max 50 characters) |
| 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… |
| url | string | – | Instagram post, reel, or story URL, e.g. https://www.instagram.com/p/CxYQJO8xuC6/ (max 500 characters) |
No output schema declared.
No examples provided.
instagram_post_likes Instagram Post Likes ~146
Get the users who liked an Instagram post or reel, by URL or shortcode (provide exactly one). Returns username, full name, user ID, verification and privacy status and profile picture for every liker Instagram exposes (typically several hundred), plus the total like count, in one request. Billed $0.006 per request.
| Name | Type | Req | Description |
|---|---|---|---|
| code | string | – | The post's shortcode, e.g. CxYQJO8xuC6, or numeric media ID (max 50 characters) |
| url | string | – | Instagram post or reel URL, e.g. https://www.instagram.com/p/CxYQJO8xuC6/ (max 500 characters) |
No output schema declared.
No examples provided.
instagram_user_followers Instagram User Followers ~216
Get an Instagram user's followers by username or profile URL (provide exactly one). Returns username, full name, user ID, verification and privacy status and profile picture, 50 per page. Verified accounts return only their first ~50 followers, and pages beyond that are not billed. Pass query to search the followers instead (up to 50 matches, billed as one page). Billed $0.006 per page.
| Name | Type | Req | Description |
|---|---|---|---|
| pages | integer | – | Number of pages to fetch, 1-40 (default: 1). Each page returns up to 50 followers; verified accounts return the first page only |
| query | string | – | Optional keyword to search this user's followers by username or name (max 100 characters). Returns up to 50 matches in a single request; pages is ignored |
| url | string | – | Instagram profile URL, e.g. https://instagram.com/natgeo (max 500 characters) |
| username | string | – | Instagram username, with or without leading @ (max 100 characters) |
No output schema declared.
No examples provided.
instagram_user_following Instagram User Following ~195
Get the accounts an Instagram user follows, by username or profile URL (provide exactly one). Returns username, full name, user ID, verification and privacy status and profile picture, 50 per page. Pass query to search the list instead (up to 50 matches, billed as one page). Billed $0.006 per page.
| Name | Type | Req | Description |
|---|---|---|---|
| pages | integer | – | Number of pages to fetch, 1-40 (default: 1). Each page returns up to 50 accounts |
| query | string | – | Optional keyword to search the accounts this user follows by username or name (max 100 characters). Returns up to 50 matches in a single request; pages is ignored |
| url | string | – | Instagram profile URL, e.g. https://instagram.com/natgeo (max 500 characters) |
| username | string | – | Instagram username, with or without leading @ (max 100 characters) |
No output schema declared.
No examples provided.
instagram_user_highlights Instagram User Highlights ~116
List an Instagram user's story highlights by username or profile URL (provide exactly one). Returns each highlight's ID, title, story count, cover image, created and updated dates and link. Pass a highlight ID to instagram_highlight_stories for its stories. Billed $0.006 per request.
| Name | Type | Req | Description |
|---|---|---|---|
| url | string | – | Instagram profile URL, e.g. https://instagram.com/natgeo (max 500 characters) |
| username | string | – | Instagram username, with or without leading @ (max 100 characters) |
No output schema declared.
No examples provided.
instagram_user_posts Instagram User Posts ~202
Get an Instagram user's recent posts and reels (their feed) by username or profile URL (provide exactly one). Returns captions, engagement metrics (likes, comments, shares, views), author metadata, hashtags, mentions and Instagram's AI label. Up to 12 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 12 posts |
| url | string | – | Instagram profile URL, e.g. https://instagram.com/natgeo (max 500 characters) |
| username | string | – | Instagram username, with or without leading @ (max 100 characters) |
No output schema declared.
No examples provided.
instagram_user_profile Instagram User Profile ~125
Get an Instagram user's full profile by username or profile URL (provide exactly one). Returns biography, follower, following and media counts, category, external link, verification status and date, the country the account is based in, join date, the number of former usernames and whether Instagram labels the account AI-generated. Billed $0.006 per request.
| Name | Type | Req | Description |
|---|---|---|---|
| url | string | – | Instagram profile URL, e.g. https://instagram.com/natgeo (max 500 characters) |
| username | string | – | Instagram username, with or without leading @ (max 100 characters) |
No output schema declared.
No examples provided.
instagram_user_stories Instagram User Stories ~146
Get an Instagram user's active stories (last 24 hours) by username or profile URL (provide exactly one). Returns each story's media URLs, post and expiry times, link stickers, mentions, tagged users, location, audio and AI detection method. Media URLs expire after about 6-24 hours. Returns an empty list when there are no active stories. Use instagram_user_highlights for saved stories. Billed $0.006 per request.
| Name | Type | Req | Description |
|---|---|---|---|
| url | string | – | Instagram profile URL, e.g. https://instagram.com/natgeo (max 500 characters) |
| username | string | – | Instagram username, with or without leading @ (max 100 characters) |
No output schema declared.
No examples provided.
linkedin_company_details LinkedIn Company Details ~74
Get a LinkedIn company page by URL. Returns name, description, employee count, industry, headquarters and locations, specialities, website and similar companies. Use search_linkedin_companies to find a company by name. Billed $0.006 per request.
| Name | Type | Req | Description |
|---|---|---|---|
| url | string | yes | LinkedIn company page URL |
No output schema declared.
No examples provided.
linkedin_company_posts LinkedIn Company Posts ~146
Get recent posts from a LinkedIn company page by URL. Returns post text, author info, images, videos and engagement metrics (likes, comments, shares, reactions). 10 posts per page. 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… |
| page | integer | – | Page number, 1-50 (default: 1). 10 posts per page |
| url | string | yes | LinkedIn company page URL |
No output schema declared.
No examples provided.
linkedin_job_details LinkedIn Job Details ~90
Get one LinkedIn job listing by URL or numeric job ID. Returns title, company, location, posting date, job type, experience level, workplace type, industry, salary, benefits and full description. Billed $0.002 per request.
| Name | Type | Req | Description |
|---|---|---|---|
| url | string | yes | LinkedIn job URL (e.g. https://linkedin.com/jobs/view/1234567890) or numeric job ID |
No output schema declared.
No examples provided.
linkedin_person_details LinkedIn Person Profile ~114
Get a LinkedIn person's profile by profile URL, public slug or member URN. Returns name, headline, about, location, follower and connection counts, open-to-work status, and the experience, education, skills, certifications, languages, honors, publications, volunteering and projects sections. Use linkedin_person_posts for their posts. Billed $0.006 per request.
| Name | Type | Req | Description |
|---|---|---|---|
| url | string | yes | LinkedIn profile URL, public slug (e.g. reidhoffman), or member URN (ACoAA...) |
No output schema declared.
No examples provided.
linkedin_person_posts LinkedIn Person Posts ~194
Get the recent posts a LinkedIn person authored, by profile URL or public slug. Returns post text, engagement metrics (likes, comments, shares, reactions), author info, images, videos and articles. 20 posts per page, up to about 600 posts. Use search_linkedin with author to filter a person's posts by keyword. 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… |
| page | integer | – | Page number, 1-30 (default: 1). 20 posts per page — up to ~600 of the person's most recent posts. |
| url | string | yes | LinkedIn profile URL or public slug (e.g. williamhgates) |
No output schema declared.
No examples provided.
linkedin_post_details LinkedIn Post Details ~108
Get one LinkedIn post by URL. Returns full post text, author details, images, embedded links and engagement metrics with reaction breakdowns. Billed $0.002 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… |
| url | string | yes | LinkedIn post URL |
No output schema declared.
No examples provided.
list_skills List Skills ~132
List API Direct's ready-made skills: playbooks that chain the data tools, with filters such as author_title, mentions_company and AI sentiment, to reach a business outcome (lead generation, competitor and brand monitoring, recruiting, due diligence, deal sourcing, market research). Returns each skill's id, name, category, summary and inputs. Use it when a request matches one of those goals, then run the chosen skill with get_skill. Free.
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | – | Optional: filter to a category substring, e.g. "sales", "recruiting", "investing", "crisis". |
No output schema declared.
No examples provided.
place_details Google Place Details ~143
Get a Google Maps place by place_id (from search_places). Returns name, address, phone, website, rating, review counts per star, opening hours, sample photos, coordinates, plus codes, menu link, owner info, and the emails, phones and social profiles found on the place's website. Billed $0.003 per request.
| Name | Type | Req | Description |
|---|---|---|---|
| country | string | – | 2-letter country code (default: "us") |
| language | string | – | 2-letter language code (default: "en") |
| place_id | string | yes | Google place_id (e.g. ChIJifIePKtZwokRVZ-UdRGkZzs) |
No output schema declared.
No examples provided.
place_photos Google Place Photos ~149
Get photos and videos of a Google Maps place by place_id (from search_places). Returns standard and large URLs, coordinates and capture time; photos and videos come mixed, so filter on the type field. Up to 10 items per page. Billed $0.01 per page.
| Name | Type | Req | Description |
|---|---|---|---|
| country | string | – | 2-letter country code (default: "us") |
| language | string | – | 2-letter language code (default: "en") |
| pages | integer | – | Number of pages to fetch, 1-10 (default: 1). Each page returns up to 10 items and is billed as one request. |
| place_id | string | yes | Google place_id |
No output schema declared.
No examples provided.
place_reviews Google Place Reviews ~250
Get reviews of a Google Maps place by place_id (from search_places). Each review has rating, text, author, timestamps, photos and any owner response. language returns only reviews originally written in that language; each sort_by order surfaces a different set, so combine them for more coverage. Up to 10 reviews per page. Billed $0.01 per page.
| Name | Type | Req | Description |
|---|---|---|---|
| country | string | – | 2-letter country code (default: "us") |
| 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 language code (default: "en"). Filters reviews to those originally written in this language. |
| pages | integer | – | Number of pages, 1-10 (default: 1). Each page returns up to 10 reviews and is billed as one request. |
| place_id | string | yes | Google place_id |
| sort_by | string | – | Sort order |
| translate_reviews | boolean | – | Translate the returned reviews into the requested language |
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.