Endpoints: 28,729MCP servers: 18,413Payout addresses: 2,070Paid calls: 1,526Letters: 13Defects: 1,322counted 4 min ago
teppi

Server definition

Hash
sha256:a082d16a0dbb37b9825b6f785ceee39b04a0cef3f118167a3e20d489f7b47069
What it is
What a remote MCP server returned when asked what it offers: 103 tools

The blob, as servednamed by its sha256

{ "instructions": "API Direct gives you data tools for LinkedIn, X/Twitter, Reddit, YouTube, Instagram, Threads, Bluesky, Truth Social, TikTok, Facebook, forums, news, web search and Google Maps — PLUS a library of ready-made \"skills\": expert playbooks (exposed via the list_skills and get_skill tools, and as MCP prompts) that chain these tools with non-obvious filters to deliver a concrete outcome.\n\nIMPORTANT: When the user's request resembles a common business goal — finding leads, intercepting a competitor's customers, sourcing talent, monitoring brand/reputation, sourcing deals, or market research — FIRST call list_skills to check for a matching playbook, and if one fits call get_skill and follow its steps instead of improvising your own searches. The skills use filters (author_title, mentions_company, author_company, AI sentiment, freshness windows) that produce far better results than a naive search.\n\nIf the user names a skill (e.g. \"use the layoff-wave-interceptor skill\"), call get_skill with that skill_id IMMEDIATELY — you do NOT need to call list_skills first, and you do NOT need an exact id (get_skill resolves close names). NEVER tell the user you don't have a skill without first attempting get_skill: these skills are NOT a built-in capability of yours, they live in this connector, so your own knowledge can't tell you whether one exists — only get_skill can.\n\nThe full skill catalog (id — name, by category) is below; treat any of these ids as a valid get_skill argument:\n\nLead Generation & Sales:\n - competitor-conquest-radar — Competitor Conquest Radar\n - hiring-signal-account-builder — Hiring-Signal Account Builder\n - just-funded-outreach-window — Just-Funded Outreach Window\n - switcher-harvesting-engine — Switcher Harvesting Engine\n - local-buying-intent-capture — Local Buying-Intent Lead Capture\n - pre-call-account-dossier — Pre-Call Account Dossier\nRecruiting & Talent:\n - competitor-employee-poacher — Competitor Employee Poacher\n - layoff-wave-interceptor — Layoff Wave Interceptor\n - reddit-deep-expertise-sourcer — Reddit Deep-Expertise Sourcer\n - creative-talent-direct-line — Creative Talent Direct Line\n - local-trades-talent-scout — Local Trades Talent Scout\nCompetitive Intelligence:\n - market-map-similar-companies — Market Map via Similar-Companies Crawl\n - distress-layoff-early-warning — Distress & Layoff Early-Warning\n - competitor-hiring-roadmap-decoder — Competitor Hiring Roadmap Decoder\n - pricing-objection-miner — Pricing Objection Miner\n - review-weakness-miner — Review Weakness Miner\n - paid-creative-reverse-engineer — Paid-Creative Reverse Engineer\nInvesting & Deal Sourcing:\n - series-a-inflection-detector — Series-A Inflection Detector\n - pe-roll-up-target-finder — PE Roll-Up Target Finder\n - founder-launch-signal-radar — Founder Launch-Signal Radar\n - turnaround-acquisition-target-finder — Turnaround Acquisition Target Finder\n - dtc-traction-scout — DTC Breakout Traction Scout\n - fresh-fundraise-detector — Fresh Fundraise Detector\nPR, Reputation & Crisis:\n - ai-serp-reputation-audit — AI-SERP Reputation Audit\n - crisis-amplification-tracer — Crisis Amplification Tracer\n - one-star-review-triage-queue — One-Star Review Triage Queue\n - crisis-statement-reaction-gauge — Crisis-Statement Reaction Gauge\n - executive-mention-tracker — Executive Mention Tracker\nProduct & Customer Insights:\n - enterprise-account-health-monitor — Enterprise Account Health Monitor\n - churn-intent-saver — Churn-Intent Saver\n - feature-request-harvester — Feature Request Harvester\n - outage-early-warning-siren — Outage Early-Warning Siren\n - support-deflection-gap-finder — Support Deflection Gap-Finder\n - influencer-complaint-rescue — Influencer Complaint Rescue\nContent & Influencer:\n - rising-creator-early-detector — Rising-Creator Early Detector\n - creator-contact-extractor — Creator Contact Extractor\n - viral-tiktok-pattern-miner — Viral TikTok Pattern Miner\n - tweet-amplifier-outreach-list — Amplifier Outreach List\n - niche-youtube-creator-leaderboard — Niche YouTube Creator Leaderboard\nOSINT & Due Diligence:\n - storefront-to-human-contact-bridge — Storefront-to-Human Contact Bridge\n - adverse-media-sweep — Adverse Media Sweep\n - cross-platform-identity-resolver — Cross-Platform Identity Resolver\n - cited-dossier-verifier — Cited Dossier Verifier\n - reviewer-footprint-tracker — Reviewer Footprint Tracker\nCross-Platform Power Plays:\n - trend-to-founder-to-inbox — Trend-to-Founder-to-Inbox\n - local-smb-lead-gauntlet — Local SMB Lead Gauntlet\n - cross-platform-demand-triangulation — Cross-Platform Demand Triangulation\n - city-market-entry-scan — City Market-Entry Scan\nBrand & Social Listening:\n - omnichannel-brand-sentiment-pulse — Omnichannel Brand Sentiment Pulse\n - ugc-advocate-creator-finder — UGC Advocate & Creator Finder\n - cross-platform-video-share-of-voice — Cross-Platform Video Share-of-Voice\n - employee-advocacy-vs-official-voice — Employee Advocacy vs Official Voice\n - high-reach-detractor-radar — High-Reach Detractor Radar\nMarket Research & Trends:\n - geo-trend-divergence-radar — Geo-Trend Divergence Radar\n - local-category-complaint-miner — Local Category Complaint Miner\n - buyer-intent-serp-ai-map — Buyer-Intent SERP and AI-Overview Map\n - hiring-demand-leading-indicator — Hiring-as-Demand Leading Indicator\n - cross-platform-trend-validation-funnel — Cross-Platform Trend Validation Funnel\nLocal & Places:\n - local-contact-harvester — Local Contact Harvester\n - unhappy-customer-winback-miner — Unhappy-Customer Win-Back Miner\n - owner-decision-maker-outreach-chain — Owner Decision-Maker Outreach Chain\n - local-ai-visibility-audit — Local AI Visibility Audit\n - new-location-expansion-signal-detector — New-Location Expansion Signal Detector", "tools": [ { "description": "Get Amazon best-seller rankings for a category — Best Sellers, New Releases, Movers & Shakers, Most Wished For, or Gift Ideas. Each item includes rank, rank change, ASIN, title, price, and rating. Each page returns up to 50 ranked items (rankings typically cover the top 100).", "inputSchema": { "properties": { "category": { "description": "Category slug, e.g. electronics or software (see /docs/amazon-categories)", "type": "string" }, "country": { "default": "us", "description": "Marketplace country code (default: \"us\")", "type": "string" }, "page": { "default": 1, "description": "Page number, 1 or 2 (default: 1). Each page returns up to 50 items; rankings cover the top 100.", "type": "integer" }, "type": { "default": "best_sellers", "description": "Ranking type", "enum": [ "best_sellers", "gift_ideas", "most_wished_for", "movers_and_shakers", "new_releases" ], "type": "string" } }, "required": [ "category" ], "type": "object" }, "name": "amazon_best_sellers", "outputSchema": null }, { "description": "Get full details for an Amazon product by ASIN (the 10-character code returned by search_amazon_products). Returns pricing, buy box with seller_id, availability, condition, photos, videos, specs, about bullets, description, rating breakdown per star, and top reviews.", "inputSchema": { "properties": { "asin": { "description": "10-character Amazon ASIN (e.g. B07ZPKN6YR)", "type": "string" }, "country": { "default": "us", "description": "Marketplace country code (default: \"us\")", "type": "string" } }, "required": [ "asin" ], "type": "object" }, "name": "amazon_product_details", "outputSchema": null }, { "description": "Get the catalog of products sold by an Amazon seller by seller ID. Returns the same product objects as search_amazon_products plus the seller's total catalog size. Each page returns ~16 results; sortable by price, reviews, newest, or best sellers.", "inputSchema": { "properties": { "country": { "default": "us", "description": "Marketplace country code (default: \"us\")", "type": "string" }, "page": { "default": 1, "description": "Page number, 1-50 (default: 1). Each page returns ~16 results.", "type": "integer" }, "seller_id": { "description": "Amazon seller ID", "type": "string" }, "sort_by": { "default": "relevance", "description": "Sort order", "enum": [ "relevance", "lowest_price", "highest_price", "reviews", "newest", "best_sellers" ], "type": "string" } }, "required": [ "seller_id" ], "type": "object" }, "name": "amazon_seller_products", "outputSchema": null }, { "description": "Get an Amazon seller's profile by seller ID (from a product's main_buy_box.seller_id). Returns seller 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 / lifetime.", "inputSchema": { "properties": { "country": { "default": "us", "description": "Marketplace country code (default: \"us\")", "type": "string" }, "seller_id": { "description": "Amazon seller ID (e.g. A2L77EE7U53NWQ)", "type": "string" } }, "required": [ "seller_id" ], "type": "object" }, "name": "amazon_seller_profile", "outputSchema": null }, { "description": "Get customer feedback for an Amazon seller by seller ID. Each review includes author name, text, star rating, date, and whether the seller responded. Filter by star rating (5_stars..1_stars) or positive/critical sentiment; paginate with page until has_next_page is false.", "inputSchema": { "properties": { "country": { "default": "us", "description": "Marketplace country code (default: \"us\")", "type": "string" }, "get_sentiment": { "default": false, "description": "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 endpoints.", "type": "boolean" }, "page": { "default": 1, "description": "Page number, 1-50 (default: 1)", "type": "integer" }, "seller_id": { "description": "Amazon seller ID", "type": "string" }, "star_rating": { "default": "all", "description": "Star rating filter", "enum": [ "all", "5_stars", "4_stars", "3_stars", "2_stars", "1_stars", "positive", "critical" ], "type": "string" } }, "required": [ "seller_id" ], "type": "object" }, "name": "amazon_seller_reviews", "outputSchema": null }, { "description": "Execute up to 100 API Direct requests in a single call — any mix of the other tools' endpoints (e.g. 50 twitter_user_profile lookups + 50 instagram_user_profile lookups). Items run concurrently server-side and each returns its own status and body, in input order. The batch call itself is free; each item bills at its endpoint's normal rate. Not supported inside a batch: /v1/web/ai-mode. Large batches can take several minutes. See /docs/batch.", "inputSchema": { "properties": { "requests": { "description": "1-100 items to execute. Each item's params are exactly the query parameters that endpoint accepts when called directly (string or number values).", "items": { "properties": { "endpoint": { "description": "The /v1 endpoint path to call, e.g. /v1/twitter/user", "type": "string" }, "params": { "description": "The endpoint's own query parameters, e.g. {'username': 'naval'}", "type": "object" }, "tag": { "description": "Optional label (max 100 chars) echoed back on this item's result", "type": "string" } }, "required": [ "endpoint" ], "type": "object" }, "type": "array" } }, "required": [ "requests" ], "type": "object" }, "name": "batch_requests", "outputSchema": null }, { "description": "Get the replies to a Bluesky post. Billed $0.003 per request. Provide exactly one of url or post_id.", "inputSchema": { "properties": { "get_sentiment": { "default": false, "description": "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 endpoints.", "type": "boolean" }, "post_id": { "description": "The post's AT URI as returned in post_id, e.g. at://did:plc:z72i7hdynmk6r22z27h6tvur/app.bsky.feed.post/3l6oveex3ii2l (max 200 characters).", "type": "string" }, "url": { "description": "Bluesky post URL, e.g. https://bsky.app/profile/bsky.app/post/3l6oveex3ii2l (max 500 characters).", "type": "string" } }, "type": "object" }, "name": "bluesky_post_comments", "outputSchema": null }, { "description": "Get a single Bluesky post by URL or ID. Billed $0.003 per request. Provide exactly one of url or post_id.", "inputSchema": { "properties": { "get_sentiment": { "default": false, "description": "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 endpoints.", "type": "boolean" }, "post_id": { "description": "The post's AT URI as returned in post_id, e.g. at://did:plc:z72i7hdynmk6r22z27h6tvur/app.bsky.feed.post/3l6oveex3ii2l (max 200 characters).", "type": "string" }, "url": { "description": "Bluesky post URL, e.g. https://bsky.app/profile/bsky.app/post/3l6oveex3ii2l (max 500 characters).", "type": "string" } }, "type": "object" }, "name": "bluesky_post_details", "outputSchema": null }, { "description": "Get the users who liked a Bluesky post, newest first. Billed $0.003 per page. Provide exactly one of url or post_id.", "inputSchema": { "properties": { "pages": { "default": 1, "description": "Number of pages to fetch, 1-20 (default: 1). Each page returns up to 50 accounts; you are billed per page returned.", "type": "integer" }, "post_id": { "description": "The post's AT URI as returned in post_id, e.g. at://did:plc:z72i7hdynmk6r22z27h6tvur/app.bsky.feed.post/3l6oveex3ii2l (max 200 characters).", "type": "string" }, "url": { "description": "Bluesky post URL, e.g. https://bsky.app/profile/bsky.app/post/3l6oveex3ii2l (max 500 characters).", "type": "string" } }, "type": "object" }, "name": "bluesky_post_likes", "outputSchema": null }, { "description": "Get the posts that quote a Bluesky post, newest first. Billed $0.003 per page. Provide exactly one of url or post_id.", "inputSchema": { "properties": { "get_sentiment": { "default": false, "description": "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 endpoints.", "type": "boolean" }, "pages": { "default": 1, "description": "Number of pages to fetch, 1-20 (default: 1). Each page returns up to 50 posts; you are billed per page returned.", "type": "integer" }, "post_id": { "description": "The post's AT URI as returned in post_id, e.g. at://did:plc:z72i7hdynmk6r22z27h6tvur/app.bsky.feed.post/3l6oveex3ii2l (max 200 characters).", "type": "string" }, "url": { "description": "Bluesky post URL, e.g. https://bsky.app/profile/bsky.app/post/3l6oveex3ii2l (max 500 characters).", "type": "string" } }, "type": "object" }, "name": "bluesky_post_quotes", "outputSchema": null }, { "description": "Get the users who reposted a Bluesky post, newest first. Billed $0.003 per page. Provide exactly one of url or post_id.", "inputSchema": { "properties": { "pages": { "default": 1, "description": "Number of pages to fetch, 1-20 (default: 1). Each page returns up to 50 accounts; you are billed per page returned.", "type": "integer" }, "post_id": { "description": "The post's AT URI as returned in post_id, e.g. at://did:plc:z72i7hdynmk6r22z27h6tvur/app.bsky.feed.post/3l6oveex3ii2l (max 200 characters).", "type": "string" }, "url": { "description": "Bluesky post URL, e.g. https://bsky.app/profile/bsky.app/post/3l6oveex3ii2l (max 500 characters).", "type": "string" } }, "type": "object" }, "name": "bluesky_post_reposts", "outputSchema": null }, { "description": "Get the followers of a Bluesky user, newest first. Billed $0.003 per page. Provide exactly one of username or url.", "inputSchema": { "properties": { "pages": { "default": 1, "description": "Number of pages to fetch, 1-20 (default: 1). Each page returns up to 50 accounts; you are billed per page returned.", "type": "integer" }, "url": { "description": "Bluesky profile URL, e.g. https://bsky.app/profile/bsky.app (max 500 characters).", "type": "string" }, "username": { "description": "Bluesky handle, e.g. bsky.app, with or without leading @, or the account's DID (max 100 characters).", "type": "string" } }, "type": "object" }, "name": "bluesky_user_followers", "outputSchema": null }, { "description": "Get the accounts a Bluesky user follows, newest first. Billed $0.003 per page. Provide exactly one of username or url.", "inputSchema": { "properties": { "pages": { "default": 1, "description": "Number of pages to fetch, 1-20 (default: 1). Each page returns up to 50 accounts; you are billed per page returned.", "type": "integer" }, "url": { "description": "Bluesky profile URL, e.g. https://bsky.app/profile/bsky.app (max 500 characters).", "type": "string" }, "username": { "description": "Bluesky handle, e.g. bsky.app, with or without leading @, or the account's DID (max 100 characters).", "type": "string" } }, "type": "object" }, "name": "bluesky_user_following", "outputSchema": null }, { "description": "Get the posts a Bluesky user has liked, newest first. Billed $0.003 per page. Provide exactly one of username or url.", "inputSchema": { "properties": { "get_sentiment": { "default": false, "description": "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 endpoints.", "type": "boolean" }, "pages": { "default": 1, "description": "Number of pages to fetch, 1-20 (default: 1). Each page returns up to 50 posts; you are billed per page returned.", "type": "integer" }, "url": { "description": "Bluesky profile URL, e.g. https://bsky.app/profile/bsky.app (max 500 characters).", "type": "string" }, "username": { "description": "Bluesky handle, e.g. bsky.app, with or without leading @, or the account's DID (max 100 characters).", "type": "string" } }, "type": "object" }, "name": "bluesky_user_likes", "outputSchema": null }, { "description": "Get a user's feed by handle: their posts, replies, and reposts in feed order (the pinned post first, then newest first), each flagged with is_reply, is_repost, and is_pinned. Billed $0.003 per page. Provide exactly one of username or url.", "inputSchema": { "properties": { "get_sentiment": { "default": false, "description": "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 endpoints.", "type": "boolean" }, "pages": { "default": 1, "description": "Number of pages to fetch, 1-20 (default: 1). Each page returns up to 50 posts; you are billed per page returned.", "type": "integer" }, "url": { "description": "Bluesky profile URL, e.g. https://bsky.app/profile/bsky.app (max 500 characters).", "type": "string" }, "username": { "description": "Bluesky handle, e.g. bsky.app, with or without leading @, or the account's DID (max 100 characters).", "type": "string" } }, "type": "object" }, "name": "bluesky_user_posts", "outputSchema": null }, { "description": "Get a Bluesky user's full profile by handle, DID, or profile URL. Billed $0.003 per request. Provide exactly one of username or url.", "inputSchema": { "properties": { "url": { "description": "Bluesky profile URL, e.g. https://bsky.app/profile/bsky.app (max 500 characters).", "type": "string" }, "username": { "description": "Bluesky handle, e.g. bsky.app, with or without leading @, or the account's DID (max 100 characters).", "type": "string" } }, "type": "object" }, "name": "bluesky_user_profile", "outputSchema": null }, { "description": "Get Facebook group details including name, description, members count, and privacy setting.", "inputSchema": { "properties": { "url": { "description": "Facebook group URL", "type": "string" } }, "required": [ "url" ], "type": "object" }, "name": "facebook_group_details", "outputSchema": null }, { "description": "Get posts from a public Facebook group.", "inputSchema": { "properties": { "get_sentiment": { "default": false, "description": "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 endpoints.", "type": "boolean" }, "group_id": { "description": "Facebook group ID (numeric)", "type": "string" }, "pages": { "default": 1, "description": "Number of pages to fetch (1-15, default 1). Billed per page.", "type": "integer" }, "sort_by": { "default": "most_recent", "description": "Sort order: most_recent or relevance (default: most_recent)", "enum": [ "most_recent", "relevance" ], "type": "string" } }, "required": [ "group_id" ], "type": "object" }, "name": "facebook_group_posts", "outputSchema": null }, { "description": "Get detailed information about a Facebook page including name, followers, categories, contact info, and verification status.", "inputSchema": { "properties": { "url": { "description": "Facebook page URL (e.g. https://www.facebook.com/facebook)", "type": "string" } }, "required": [ "url" ], "type": "object" }, "name": "facebook_page_details", "outputSchema": null }, { "description": "Get photos from a Facebook page.", "inputSchema": { "properties": { "page_id": { "description": "Facebook page ID (numeric)", "type": "string" }, "pages": { "default": 1, "description": "Number of pages to fetch (1-15, default 1). Billed per page.", "type": "integer" } }, "required": [ "page_id" ], "type": "object" }, "name": "facebook_page_photos", "outputSchema": null }, { "description": "Get recent posts from a Facebook page by page ID.", "inputSchema": { "properties": { "end_date": { "description": "Filter posts until this date", "type": "string" }, "get_sentiment": { "default": false, "description": "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 endpoints.", "type": "boolean" }, "page_id": { "description": "Facebook page ID (numeric)", "type": "string" }, "pages": { "default": 1, "description": "Number of pages to fetch (1-15, default 1). Billed per page.", "type": "integer" }, "start_date": { "description": "Filter posts from this date", "type": "string" } }, "required": [ "page_id" ], "type": "object" }, "name": "facebook_page_posts", "outputSchema": null }, { "description": "Get reels from a Facebook page. Requires the reels_page_id from the page details endpoint.", "inputSchema": { "properties": { "get_sentiment": { "default": false, "description": "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 endpoints.", "type": "boolean" }, "pages": { "default": 1, "description": "Number of pages to fetch (1-10, default 1). Billed per page.", "type": "integer" }, "reels_page_id": { "description": "Reels page ID (from page details endpoint)", "type": "string" } }, "required": [ "reels_page_id" ], "type": "object" }, "name": "facebook_page_reels", "outputSchema": null }, { "description": "Get reviews for a Facebook page.", "inputSchema": { "properties": { "get_sentiment": { "default": false, "description": "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 endpoints.", "type": "boolean" }, "page_id": { "description": "Facebook page ID (numeric)", "type": "string" }, "pages": { "default": 1, "description": "Number of pages to fetch (1-15, default 1). Billed per page.", "type": "integer" } }, "required": [ "page_id" ], "type": "object" }, "name": "facebook_page_reviews", "outputSchema": null }, { "description": "Get videos from a Facebook page. Requires the delegate_page_id from the page details endpoint.", "inputSchema": { "properties": { "delegate_page_id": { "description": "Delegate page ID (from page details endpoint)", "type": "string" }, "get_sentiment": { "default": false, "description": "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 endpoints.", "type": "boolean" }, "pages": { "default": 1, "description": "Number of pages to fetch (1-15, default 1). Billed per page.", "type": "integer" } }, "required": [ "delegate_page_id" ], "type": "object" }, "name": "facebook_page_videos", "outputSchema": null }, { "description": "Get comments on a Facebook post by post ID. Returns each comment's text, author details, reaction and reply counts, date, and any attachment.", "inputSchema": { "properties": { "get_sentiment": { "default": false, "description": "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 endpoints.", "type": "boolean" }, "pages": { "default": 1, "description": "Number of pages to fetch (1-20, default 1). Billed per page.", "type": "integer" }, "post_id": { "description": "Facebook post ID (pfbid or numeric, from facebook_page_posts, facebook_group_posts, or search_facebook_posts)", "type": "string" } }, "required": [ "post_id" ], "type": "object" }, "name": "facebook_post_comments", "outputSchema": null }, { "description": "Get a ready-made skill's step-by-step playbook with your inputs filled in, then follow it. Returns an ordered recipe of tool calls to execute. PREFER running a matching skill over improvising raw searches — skills encode the filters and sequencing that produce far better results. If the user names a skill (e.g. \"use the local-buying-intent-capture skill\"), pass that as skill_id directly; otherwise call list_skills first to find the right id.", "inputSchema": { "properties": { "inputs": { "additionalProperties": true, "description": "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.", "type": "object" }, "skill_id": { "description": "The skill id from list_skills, e.g. \"competitor-conquest-radar\".", "type": "string" } }, "required": [ "skill_id" ], "type": "object" }, "name": "get_skill", "outputSchema": null }, { "description": "Get comments from a YouTube video. Returns each comment's text, author, like count, reply count, date, a direct link, and up to 5 preview replies. Billed $0.005 per page.", "inputSchema": { "properties": { "pages": { "default": 1, "description": "Number of pages to fetch, 1-20 (default: 1). Each page returns up to ~100 comments.", "type": "integer" }, "sort_by": { "default": "relevance", "description": "Sort order: most_recent (newest first) or relevance (default: relevance)", "enum": [ "most_recent", "relevance" ], "type": "string" }, "url": { "description": "YouTube video URL or 11-character video ID", "type": "string" } }, "required": [ "url" ], "type": "object" }, "name": "get_youtube_comments", "outputSchema": null }, { "description": "Send a prompt to Google's AI Mode and get back a structured conversational reply (reply_parts: paragraphs, headings, lists, images) with reference_links citations. Use session_token from a previous response to continue the conversation.", "inputSchema": { "properties": { "country": { "default": "us", "description": "2-letter country code (default: \"us\")", "type": "string" }, "language": { "default": "en", "description": "2-letter language code (default: \"en\")", "type": "string" }, "prompt": { "description": "The AI Mode prompt (max 12000 characters)", "type": "string" }, "session_token": { "description": "Token from a prior response to continue the conversation", "type": "string" } }, "required": [ "prompt" ], "type": "object" }, "name": "google_ai_mode", "outputSchema": null }, { "description": "Get the replies to one Instagram comment (its thread) by post URL or shortcode plus the comment ID from instagram_post_comments. Returns each reply's text, author details (including whether Instagram labels the commenter as an AI-generated profile), like count, date, link, and the comment it replies to. Billed per page. Returns an empty list when the comment has no replies. Provide exactly one of url or code.", "inputSchema": { "properties": { "code": { "description": "The post's shortcode, e.g. CxYQJO8xuC6, or numeric media ID (max 50 characters)", "type": "string" }, "comment_id": { "description": "The comment's numeric ID, from instagram_post_comments (comment_id)", "type": "string" }, "get_sentiment": { "default": false, "description": "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 endpoints.", "type": "boolean" }, "pages": { "default": 1, "description": "Number of pages to fetch, 1-10 (default: 1)", "type": "integer" }, "url": { "description": "Instagram post or reel URL, e.g. https://www.instagram.com/p/CxYQJO8xuC6/ (max 500 characters)", "type": "string" } }, "required": [ "comment_id" ], "type": "object" }, "name": "instagram_comment_replies", "outputSchema": null }, { "description": "Get Instagram posts and reels for a hashtag. Returns the same post objects as search_instagram (captions, engagement metrics, media URLs, author metadata, hashtags, mentions, AI detection method) plus the hashtag's total post count, up to about 30 new posts per page (billed per page). sort_by picks the hashtag page tab: top (default), recent, or reels.", "inputSchema": { "properties": { "get_sentiment": { "default": false, "description": "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 endpoints.", "type": "boolean" }, "hashtag": { "description": "Hashtag, with or without the leading # (max 100 characters), e.g. summer", "type": "string" }, "pages": { "default": 1, "description": "Number of pages to fetch, 1-10 (default: 1). Each page adds up to about 30 posts (repeats across pages are removed)", "type": "integer" }, "sort_by": { "default": "top", "description": "Hashtag tab: top (default), recent (newest first), or reels (Reels only)", "enum": [ "top", "recent", "reels" ], "type": "string" } }, "required": [ "hashtag" ], "type": "object" }, "name": "instagram_hashtag_posts", "outputSchema": null }, { "description": "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 every story's media URLs, post time, link stickers, mentions, tagged users, location, audio, and Instagram's AI detection method. Media URLs are temporary (~6-24 hours).", "inputSchema": { "properties": { "highlight_id": { "description": "Highlight ID, e.g. 17987606483520330 (also accepts highlight:17987606483520330), or a highlight URL like https://www.instagram.com/stories/highlights/17987606483520330/", "type": "string" } }, "required": [ "highlight_id" ], "type": "object" }, "name": "instagram_highlight_stories", "outputSchema": null }, { "description": "Get the comments on an Instagram post or reel by post URL or shortcode. Returns each comment's text, author details (including whether Instagram labels the commenter as an AI-generated profile), like and reply counts, date, and link, up to 15 per page (billed per page), sorted by popular (default, includes pinned) or recent. Use instagram_comment_replies to fetch a comment's replies. Provide exactly one of url or code.", "inputSchema": { "properties": { "code": { "description": "The post's shortcode, e.g. CxYQJO8xuC6, or numeric media ID (max 50 characters)", "type": "string" }, "get_sentiment": { "default": false, "description": "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 endpoints.", "type": "boolean" }, "pages": { "default": 1, "description": "Number of pages to fetch, 1-20 (default: 1). Each page returns up to 15 comments", "type": "integer" }, "sort_by": { "default": "popular", "description": "Sort order: popular (default, includes pinned comments) or recent", "enum": [ "popular", "recent" ], "type": "string" }, "url": { "description": "Instagram post or reel URL, e.g. https://www.instagram.com/p/CxYQJO8xuC6/ (max 500 characters)", "type": "string" } }, "type": "object" }, "name": "instagram_post_comments", "outputSchema": null }, { "description": "Get full details for a single Instagram post, reel, or IGTV video by post URL or shortcode. Returns the caption, like/comment/share/view counts, media URLs, carousel slides, audio track info, tagged users, location, author details, and Instagram's AI label. Provide exactly one of url or code.", "inputSchema": { "properties": { "code": { "description": "The post's shortcode, e.g. CxYQJO8xuC6, or numeric media ID (max 50 characters)", "type": "string" }, "get_sentiment": { "default": false, "description": "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 endpoints.", "type": "boolean" }, "url": { "description": "Instagram post, reel, or story URL, e.g. https://www.instagram.com/p/CxYQJO8xuC6/ (max 500 characters)", "type": "string" } }, "type": "object" }, "name": "instagram_post_details", "outputSchema": null }, { "description": "Get the users who liked an Instagram post or reel by post URL or shortcode. Returns username, full name, user ID, verification and privacy status, and profile picture for every liker Instagram exposes (typically several hundred), plus the post's total like count, in a single request. Provide exactly one of url or code.", "inputSchema": { "properties": { "code": { "description": "The post's shortcode, e.g. CxYQJO8xuC6, or numeric media ID (max 50 characters)", "type": "string" }, "url": { "description": "Instagram post or reel URL, e.g. https://www.instagram.com/p/CxYQJO8xuC6/ (max 500 characters)", "type": "string" } }, "type": "object" }, "name": "instagram_post_likes", "outputSchema": null }, { "description": "Get an Instagram user's followers by username or profile URL. Returns username, full name, user ID, verification and privacy status, and profile picture for each follower, 50 per page (billed per page returned). Verified (blue checkmark) accounts return only their first ~50 followers; extra pages are not billed. Pass query to search the followers instead (up to 50 matches, one request). Provide exactly one of username or url.", "inputSchema": { "properties": { "pages": { "default": 1, "description": "Number of pages to fetch, 1-40 (default: 1). Each page returns up to 50 followers; verified accounts return the first page only", "type": "integer" }, "query": { "description": "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", "type": "string" }, "url": { "description": "Instagram profile URL, e.g. https://instagram.com/natgeo (max 500 characters)", "type": "string" }, "username": { "description": "Instagram username, with or without leading @ (max 100 characters)", "type": "string" } }, "type": "object" }, "name": "instagram_user_followers", "outputSchema": null }, { "description": "Get the accounts an Instagram user follows, by username or profile URL. Returns username, full name, user ID, verification and privacy status, and profile picture for each account, 50 per page (billed per page returned). Pass query to search the following list instead (up to 50 matches, one request). Provide exactly one of username or url.", "inputSchema": { "properties": { "pages": { "default": 1, "description": "Number of pages to fetch, 1-40 (default: 1). Each page returns up to 50 accounts", "type": "integer" }, "query": { "description": "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", "type": "string" }, "url": { "description": "Instagram profile URL, e.g. https://instagram.com/natgeo (max 500 characters)", "type": "string" }, "username": { "description": "Instagram username, with or without leading @ (max 100 characters)", "type": "string" } }, "type": "object" }, "name": "instagram_user_following", "outputSchema": null }, { "description": "Get an Instagram user's story highlights tray by username or profile URL. Returns each highlight's ID, title, story count, cover image, created / updated dates, and link. Use instagram_highlight_stories with a highlight_id to fetch the stories inside a highlight. Provide exactly one of username or url.", "inputSchema": { "properties": { "url": { "description": "Instagram profile URL, e.g. https://instagram.com/natgeo (max 500 characters)", "type": "string" }, "username": { "description": "Instagram username, with or without leading @ (max 100 characters)", "type": "string" } }, "type": "object" }, "name": "instagram_user_highlights", "outputSchema": null }, { "description": "Get a single Instagram user's recent posts and reels (their feed) by profile URL or username. Returns captions, engagement metrics (likes, comments, shares, views), author metadata, hashtags, mentions, and Instagram's AI label. Up to 12 posts per page; billed per page. Provide exactly one of url or username.", "inputSchema": { "properties": { "get_sentiment": { "default": false, "description": "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 endpoints.", "type": "boolean" }, "pages": { "default": 1, "description": "Number of pages to fetch, 1-20 (default: 1). Each page returns up to 12 posts", "type": "integer" }, "url": { "description": "Instagram profile URL, e.g. https://instagram.com/natgeo (max 500 characters)", "type": "string" }, "username": { "description": "Instagram username, with or without leading @ (max 100 characters)", "type": "string" } }, "type": "object" }, "name": "instagram_user_posts", "outputSchema": null }, { "description": "Get the full profile for a single Instagram user by username or profile URL. Returns biography, follower / following counts, media count, category, external link, verification status, country the account is based in, join date, verification date, former usernames, and whether Instagram labels the account as an AI-generated profile. Provide exactly one of username or url.", "inputSchema": { "properties": { "url": { "description": "Instagram profile URL, e.g. https://instagram.com/natgeo (max 500 characters)", "type": "string" }, "username": { "description": "Instagram username, with or without leading @ (max 100 characters)", "type": "string" } }, "type": "object" }, "name": "instagram_user_profile", "outputSchema": null }, { "description": "Get an Instagram user's currently active stories (last 24 hours) by username or profile URL. Returns each story's media URLs (image or video), post time and expiry, link stickers, mentions, tagged users, location, audio, and Instagram's AI detection method. Media URLs are temporary (~6-24 hours). Returns an empty list when the user has no active stories. Provide exactly one of username or url.", "inputSchema": { "properties": { "url": { "description": "Instagram profile URL, e.g. https://instagram.com/natgeo (max 500 characters)", "type": "string" }, "username": { "description": "Instagram username, with or without leading @ (max 100 characters)", "type": "string" } }, "type": "object" }, "name": "instagram_user_stories", "outputSchema": null }, { "description": "Get detailed information about a LinkedIn company page by URL. Returns company name, description, employee count, locations, specialities, industry, website, and similar companies.", "inputSchema": { "properties": { "url": { "description": "LinkedIn company page URL", "type": "string" } }, "required": [ "url" ], "type": "object" }, "name": "linkedin_company_details", "outputSchema": null }, { "description": "Get recent posts from a LinkedIn company page by URL. Returns posts with engagement metrics (likes, comments, shares, reactions).", "inputSchema": { "properties": { "get_sentiment": { "default": false, "description": "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 endpoints.", "type": "boolean" }, "page": { "default": 1, "description": "Page number, 1-50 (default: 1). 10 posts per page", "type": "integer" }, "url": { "description": "LinkedIn company page URL", "type": "string" } }, "required": [ "url" ], "type": "object" }, "name": "linkedin_company_posts", "outputSchema": null }, { "description": "Get detailed information about a specific 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.", "inputSchema": { "properties": { "url": { "description": "LinkedIn job URL (e.g. https://linkedin.com/jobs/view/1234567890) or numeric job ID", "type": "string" } }, "required": [ "url" ], "type": "object" }, "name": "linkedin_job_details", "outputSchema": null }, { "description": "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.", "inputSchema": { "properties": { "url": { "description": "LinkedIn profile URL, public slug (e.g. reidhoffman), or member URN (ACoAA...)", "type": "string" } }, "required": [ "url" ], "type": "object" }, "name": "linkedin_person_details", "outputSchema": null }, { "description": "Get recent posts authored by a LinkedIn person by profile URL or public slug. Returns posts with engagement metrics (likes, comments, shares, reactions), author info, images, videos, and articles.", "inputSchema": { "properties": { "get_sentiment": { "default": false, "description": "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 endpoints.", "type": "boolean" }, "page": { "default": 1, "description": "Page number, 1-30 (default: 1). 20 posts per page — up to ~600 of the person's most recent posts.", "type": "integer" }, "url": { "description": "LinkedIn profile URL or public slug (e.g. williamhgates)", "type": "string" } }, "required": [ "url" ], "type": "object" }, "name": "linkedin_person_posts", "outputSchema": null }, { "description": "Get detailed information about a specific LinkedIn post by URL. Returns full post text, author details, and engagement metrics (likes, comments, shares, reaction breakdowns).", "inputSchema": { "properties": { "get_sentiment": { "default": false, "description": "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 endpoints.", "type": "boolean" }, "url": { "description": "LinkedIn post URL", "type": "string" } }, "required": [ "url" ], "type": "object" }, "name": "linkedin_post_details", "outputSchema": null }, { "description": "START HERE for common goals. Lists the ready-made API Direct skills — expert playbooks that chain these tools (with non-obvious filters like author_title, mentions_company, author_company, freshness windows and AI sentiment) to deliver a concrete outcome: find leads, intercept a competitor's unhappy customers, source talent, monitor brand/reputation, detect just-raised startups, build a local acquisition list, run due diligence, and more. Whenever the user's request looks like lead-gen, competitor/brand monitoring, recruiting, due diligence, deal sourcing or market research, call this FIRST to check for a matching playbook before improvising your own searches. Returns each skill's id, name, category, what it does, and its inputs. Then call get_skill to run one.", "inputSchema": { "properties": { "category": { "description": "Optional: filter to a category substring, e.g. \"sales\", \"recruiting\", \"investing\", \"crisis\".", "type": "string" } }, "type": "object" }, "name": "list_skills", "outputSchema": null }, { "description": "Get full details for a Google Maps place by place_id (the ChIJ... value returned by search_places). Returns name, address, phone, website, rating, review counts per star, opening hours, photos sample, coordinates, plus codes, menu link, owner info, and an emails / phones / social profile scrape of the place's website.", "inputSchema": { "properties": { "country": { "default": "us", "description": "2-letter country code (default: \"us\")", "type": "string" }, "language": { "default": "en", "description": "2-letter language code (default: \"en\")", "type": "string" }, "place_id": { "description": "Google place_id (e.g. ChIJifIePKtZwokRVZ-UdRGkZzs)", "type": "string" } }, "required": [ "place_id" ], "type": "object" }, "name": "place_details", "outputSchema": null }, { "description": "Get photos and videos for a Google Maps place by place_id. Returns photo URLs (both standard and large), coordinates, and capture timestamps. Photos and videos are returned together — filter by the type field client-side if you want one or the other. Use the pages parameter to fetch more — each page returns up to 10 items and is billed as one request.", "inputSchema": { "properties": { "country": { "default": "us", "description": "2-letter country code (default: \"us\")", "type": "string" }, "language": { "default": "en", "description": "2-letter language code (default: \"en\")", "type": "string" }, "pages": { "default": 1, "description": "Number of pages to fetch, 1-10 (default: 1). Each page returns up to 10 items and is billed as one request.", "type": "integer" }, "place_id": { "description": "Google place_id", "type": "string" } }, "required": [ "place_id" ], "type": "object" }, "name": "place_photos", "outputSchema": null }, { "description": "Get user reviews for a Google Maps place by place_id. Each review includes rating, review text, author info, timestamps, photos, and any owner response. Each page returns up to 10 reviews. The `language` parameter filters reviews to those originally written in that language (language=fr returns French reviews only, language=es returns Spanish only, etc.). Combine with sort_by (4 options) to surface a much larger pool.", "inputSchema": { "properties": { "country": { "default": "us", "description": "2-letter country code (default: \"us\")", "type": "string" }, "get_sentiment": { "default": false, "description": "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 endpoints.", "type": "boolean" }, "language": { "default": "en", "description": "2-letter language code (default: \"en\"). Filters reviews to those originally written in this language.", "type": "string" }, "pages": { "default": 1, "description": "Number of pages, 1-10 (default: 1). Each page returns up to 10 reviews and is billed as one request.", "type": "integer" }, "place_id": { "description": "Google place_id", "type": "string" }, "sort_by": { "default": "most_relevant", "description": "Sort order", "enum": [ "most_relevant", "newest", "highest_ranking", "lowest_ranking" ], "type": "string" }, "translate_reviews": { "default": false, "description": "Translate the returned reviews into the requested language", "type": "boolean" } }, "required": [ "place_id" ], "type": "object" }, "name": "place_reviews", "outputSchema": null }, { "description": "Search Amazon products by keyword across 24 marketplaces. Returns ASIN, title, price, original price, rating, ratings count, Prime status, sales volume, badges, and delivery info. Filter by category, price range, condition, brand, seller, Prime eligibility, deals, and rating floor. Each page returns ~16 results.", "inputSchema": { "properties": { "brand": { "description": "Brand name(s), comma-separated for multiple", "type": "string" }, "category": { "description": "Numeric Amazon category node ID(s) from an Amazon URL's ?node= parameter, comma-separated", "type": "string" }, "category_id": { "description": "Category slug, e.g. electronics (see /docs/amazon-categories)", "type": "string" }, "country": { "default": "us", "description": "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", "type": "string" }, "deals_and_discounts": { "default": "none", "description": "Deals filter", "enum": [ "none", "all_discounts", "todays_deals" ], "type": "string" }, "four_stars_and_up": { "default": false, "description": "Only products rated 4 stars and up", "type": "boolean" }, "is_prime": { "default": false, "description": "Only products with Prime-eligible offers", "type": "boolean" }, "max_price": { "description": "Maximum price in the marketplace currency", "type": "number" }, "min_price": { "description": "Minimum price in the marketplace currency", "type": "number" }, "page": { "default": 1, "description": "Page number, 1-20 (default: 1). Each page returns ~16 results.", "type": "integer" }, "product_condition": { "default": "all", "description": "Product condition filter", "enum": [ "all", "new", "used", "renewed", "collectible" ], "type": "string" }, "query": { "description": "Search keyword or a product ASIN (max 500 characters)", "type": "string" }, "seller_id": { "description": "Only products from specific seller ID(s), comma-separated", "type": "string" }, "sort_by": { "default": "relevance", "description": "Sort order", "enum": [ "relevance", "lowest_price", "highest_price", "reviews", "newest", "best_sellers" ], "type": "string" } }, "required": [ "query" ], "type": "object" }, "name": "search_amazon_products", "outputSchema": null }, { "description": "Search Bluesky posts by keyword. Billed $0.003 per page.", "inputSchema": { "properties": { "end_date": { "description": "Only posts up to this date (format: YYYY-MM-DD)", "type": "string" }, "get_sentiment": { "default": false, "description": "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 endpoints.", "type": "boolean" }, "pages": { "default": 1, "description": "Number of pages to fetch, 1-20 (default: 1). Each page returns up to 50 posts; you are billed per page returned.", "type": "integer" }, "query": { "description": "Search keyword (max 500 characters). Bluesky search syntax works: \"exact phrase\", -exclude, from:handle, lang:en, #tag", "type": "string" }, "sort_by": { "default": "most_recent", "description": "Sort order: \"most_recent\" or \"relevance\"", "enum": [ "most_recent", "relevance" ], "type": "string" }, "start_date": { "description": "Only posts from this date onward (format: YYYY-MM-DD)", "type": "string" } }, "required": [ "query" ], "type": "object" }, "name": "search_bluesky", "outputSchema": null }, { "description": "Search Bluesky users by keyword. Billed $0.003 per page.", "inputSchema": { "properties": { "pages": { "default": 1, "description": "Number of pages to fetch, 1-20 (default: 1). Each page returns up to 50 users; you are billed per page returned.", "type": "integer" }, "query": { "description": "Search keyword (max 500 characters)", "type": "string" } }, "required": [ "query" ], "type": "object" }, "name": "search_bluesky_users", "outputSchema": null }, { "description": "Search Facebook events by keyword. Optionally scope results to a place with location_id (resolve one via the search_facebook_locations tool).", "inputSchema": { "properties": { "end_date": { "description": "Filter events until this date (YYYY-MM-DD)", "type": "string" }, "location_id": { "description": "Facebook location ID (from search_facebook_locations) to scope results to a place", "type": "string" }, "pages": { "default": 1, "description": "Number of pages to fetch (1-15, default 1). Billed per page.", "type": "integer" }, "query": { "description": "Search keyword (max 500 characters)", "type": "string" }, "start_date": { "description": "Filter events from this date (YYYY-MM-DD)", "type": "string" } }, "required": [ "query" ], "type": "object" }, "name": "search_facebook_events", "outputSchema": null }, { "description": "Resolve a place name (city, region, or country) to Facebook location IDs. Use the returned id as the location_id argument to search_facebook_posts or search_facebook_events to scope a search to that place.", "inputSchema": { "properties": { "query": { "description": "Place name to resolve, e.g. \"London\" or \"Paris, France\" (max 500 characters)", "type": "string" } }, "required": [ "query" ], "type": "object" }, "name": "search_facebook_locations", "outputSchema": null }, { "description": "Search Facebook pages by keyword.", "inputSchema": { "properties": { "pages": { "default": 1, "description": "Number of pages to fetch (1-15, default 1). Billed per page.", "type": "integer" }, "query": { "description": "Search keyword (max 500 characters)", "type": "string" } }, "required": [ "query" ], "type": "object" }, "name": "search_facebook_pages", "outputSchema": null }, { "description": "Search Facebook posts by keyword across all of Facebook. Optionally scope results to a place with location_id (resolve one via the search_facebook_locations tool).", "inputSchema": { "properties": { "end_date": { "description": "Filter posts until this date", "type": "string" }, "get_sentiment": { "default": false, "description": "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 endpoints.", "type": "boolean" }, "location_id": { "description": "Facebook location ID (from search_facebook_locations) to scope results to a place", "type": "string" }, "pages": { "default": 1, "description": "Number of pages to fetch (1-15, default 1). Billed per page.", "type": "integer" }, "query": { "description": "Search keyword (max 500 characters)", "type": "string" }, "sort_by": { "default": "relevance", "description": "Sort order: most_recent or relevance (default: relevance)", "enum": [ "most_recent", "relevance" ], "type": "string" }, "start_date": { "description": "Filter posts from this date", "type": "string" } }, "required": [ "query" ], "type": "object" }, "name": "search_facebook_posts", "outputSchema": null }, { "description": "Search Facebook videos by keyword.", "inputSchema": { "properties": { "end_date": { "description": "Filter videos until this date", "type": "string" }, "get_sentiment": { "default": false, "description": "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 endpoints.", "type": "boolean" }, "pages": { "default": 1, "description": "Number of pages to fetch (1-15, default 1). Billed per page.", "type": "integer" }, "query": { "description": "Search keyword (max 500 characters)", "type": "string" }, "sort_by": { "default": "relevance", "description": "Sort order: most_recent or relevance (default: relevance)", "enum": [ "most_recent", "relevance" ], "type": "string" }, "start_date": { "description": "Filter videos from this date", "type": "string" } }, "required": [ "query" ], "type": "object" }, "name": "search_facebook_videos", "outputSchema": null }, { "description": "Search forum posts across the web.", "inputSchema": { "properties": { "country": { "description": "2-letter ISO country code, e.g. \"us\", \"gb\"", "type": "string" }, "get_sentiment": { "default": false, "description": "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 endpoints.", "type": "boolean" }, "page": { "default": 1, "description": "Page number, 1-10 (default: 1). 10 posts per page", "type": "integer" }, "query": { "description": "Search keyword (max 500 characters)", "type": "string" }, "time": { "default": "any", "description": "Time filter: \"any\", \"hour\", \"day\", \"week\", \"month\", or \"year\"", "enum": [ "any", "hour", "day", "week", "month", "year" ], "type": "string" } }, "required": [ "query" ], "type": "object" }, "name": "search_forums", "outputSchema": null }, { "description": "Search Instagram posts by keyword. Each post includes Instagram's AI label (ai_label: label text such as \"AI content\" plus detection_method).", "inputSchema": { "properties": { "get_sentiment": { "default": false, "description": "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 endpoints.", "type": "boolean" }, "pages": { "default": 1, "description": "Number of pages to fetch, 1-20 (default: 1)", "type": "integer" }, "query": { "description": "Search keyword (max 500 characters)", "type": "string" } }, "required": [ "query" ], "type": "object" }, "name": "search_instagram", "outputSchema": null }, { "description": "Search Instagram users by keyword. Returns username, full name, verification status, profile picture, and whether Instagram labels the account as an AI-generated profile.", "inputSchema": { "properties": { "query": { "description": "Search keyword (max 500 characters)", "type": "string" } }, "required": [ "query" ], "type": "object" }, "name": "search_instagram_users", "outputSchema": null }, { "description": "Search LinkedIn posts. Provide a `query` and/or a filter below. Powerful filters: author (posts BY a person), author_title (posts by people with a given job title, e.g. Founder/CEO — applies alongside a query), author_company (posts by employees of a company id), from_company (posts by a company page id), mentions_company (posts that MENTION a company id), mentions_member (posts that mention a person), author_industry. Returns post content, engagement metrics, attached media, a has_content_entities repost flag, and optional AI sentiment.", "inputSchema": { "properties": { "author": { "description": "Posts authored by this person — profile URL, public slug (e.g. williamhgates), or member URN. Comma-separate for multiple.", "type": "string" }, "author_company": { "description": "Posts by people who work at this company. Numeric LinkedIn company id (from search_linkedin_companies).", "type": "string" }, "author_industry": { "description": "Posts by authors in these numeric LinkedIn industry id(s), comma-separated. Advanced; applies alongside a query.", "type": "string" }, "author_title": { "description": "Posts by authors whose job title matches this free text (e.g. \"CEO\", \"Founder\"). Applies alongside a query.", "type": "string" }, "from_company": { "description": "Posts authored by a company page. Numeric company id(s), comma-separated.", "type": "string" }, "get_sentiment": { "default": false, "description": "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 endpoints.", "type": "boolean" }, "mentions_company": { "description": "Posts that mention this company. Numeric company id.", "type": "string" }, "mentions_member": { "description": "Posts that mention this person (profile URL, public slug, or member URN).", "type": "string" }, "page": { "default": 1, "description": "Page number, 1-25 (default: 1). 20 posts per page", "type": "integer" }, "posted_ago": { "description": "Only posts from this period: \"24h\", \"7d\", or \"30d\" (default: all time). Works with both sort orders and every filter", "enum": [ "24h", "7d", "30d" ], "type": "string" }, "query": { "description": "Search keyword (max 500 characters). Optional if you supply a filter below.", "type": "string" }, "sort_by": { "default": "most_recent", "description": "Sort order: \"most_recent\" or \"relevance\"", "enum": [ "most_recent", "relevance" ], "type": "string" } }, "required": [], "type": "object" }, "name": "search_linkedin", "outputSchema": null }, { "description": "Search LinkedIn companies by keyword. Returns company name, description, followers, and logo.", "inputSchema": { "properties": { "page": { "default": 1, "description": "Page number, 1-100 (default: 1). 10 results per page.", "type": "integer" }, "query": { "description": "Search keyword (max 500 characters)", "type": "string" } }, "required": [ "query" ], "type": "object" }, "name": "search_linkedin_companies", "outputSchema": null }, { "description": "Search LinkedIn job listings by keyword. Returns title, company (with 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/expansion/funding signal.", "inputSchema": { "properties": { "company_ids": { "description": "Filter by company — comma-separated numeric LinkedIn company id(s) (from search_linkedin_companies).", "type": "string" }, "job_type": { "description": "Job type filter: full_time, part_time, contract, temporary, volunteer, internship, other. Comma-separated for multiple.", "type": "string" }, "location_id": { "description": "Filter by location — a numeric LinkedIn location id (see the Job Location IDs doc).", "type": "string" }, "page": { "default": 1, "description": "Page number, 1-40 (default: 1). 25 jobs per page", "type": "integer" }, "posted_ago": { "description": "Maximum job age: \"1h\", \"24h\", \"7d\", or \"30d\" (default: all time)", "enum": [ "1h", "24h", "7d", "30d" ], "type": "string" }, "query": { "description": "Search keyword (max 500 characters)", "type": "string" }, "sort_by": { "description": "Sort order: \"most_recent\" or \"relevance\" (default: relevance)", "enum": [ "most_recent", "relevance" ], "type": "string" } }, "required": [ "query" ], "type": "object" }, "name": "search_linkedin_jobs", "outputSchema": null }, { "description": "Search news articles from thousands of sources worldwide.", "inputSchema": { "properties": { "country": { "default": "us", "description": "2-letter country code (default: \"us\")", "type": "string" }, "language": { "default": "en", "description": "2-letter language code (default: \"en\")", "type": "string" }, "limit": { "default": 10, "description": "Number of results, 1-100 (default: 10)", "type": "integer" }, "query": { "description": "Search keyword (max 500 characters)", "type": "string" }, "source": { "description": "Filter by news source domain, e.g. \"bbc.com\"", "type": "string" }, "time_published": { "default": "anytime", "description": "Time filter: \"anytime\", \"1h\", \"1d\", \"7d\", or \"1y\"", "enum": [ "anytime", "1h", "1d", "7d", "1y" ], "type": "string" } }, "required": [ "query" ], "type": "object" }, "name": "search_news", "outputSchema": null }, { "description": "Search Google Maps places (local businesses, points of interest) by free-text query. Returns place_id, name, address, phone, website, rating, review count, opening hours, coordinates, and more. Optionally bias results by geographic center (lat/lng/zoom). Each page returns up to 10 results.", "inputSchema": { "properties": { "country": { "default": "us", "description": "2-letter country code (default: \"us\")", "type": "string" }, "language": { "default": "en", "description": "2-letter language code (default: \"en\")", "type": "string" }, "lat": { "description": "Center latitude for geographic bias (use with lng)", "type": "number" }, "lng": { "description": "Center longitude for geographic bias (use with lat)", "type": "number" }, "pages": { "default": 1, "description": "Number of pages, 1-20 (default: 1). Each page returns up to 10 results and is billed as one request.", "type": "integer" }, "query": { "description": "Search keyword, e.g. \"coffee shops brooklyn\" (max 500 characters)", "type": "string" }, "zoom": { "default": 13, "description": "Map zoom level 1-20 (default: 13). Smaller widens radius.", "type": "integer" } }, "required": [ "query" ], "type": "object" }, "name": "search_places", "outputSchema": null }, { "description": "Search Reddit posts.", "inputSchema": { "properties": { "get_sentiment": { "default": false, "description": "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 endpoints.", "type": "boolean" }, "page": { "default": 1, "description": "Page number, 1-12 (default: 1). 20 posts per page", "type": "integer" }, "posted_ago": { "description": "Only posts from this period: \"1h\", \"24h\", \"7d\", \"30d\", or \"12m\" (default: all time). Works with every sort_by", "enum": [ "1h", "24h", "7d", "30d", "12m" ], "type": "string" }, "query": { "description": "Search keyword (max 500 characters)", "type": "string" }, "sort_by": { "default": "most_recent", "description": "Sort order: \"most_recent\", \"relevance\", \"hot\", or \"top\"", "enum": [ "most_recent", "relevance", "hot", "top" ], "type": "string" } }, "required": [ "query" ], "type": "object" }, "name": "search_reddit", "outputSchema": null }, { "description": "Search Reddit comments.", "inputSchema": { "properties": { "get_sentiment": { "default": false, "description": "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 endpoints.", "type": "boolean" }, "pages": { "default": 1, "description": "Number of pages to fetch, 1-10 (default: 1)", "type": "integer" }, "query": { "description": "Search keyword (max 500 characters)", "type": "string" }, "sort_by": { "default": "most_recent", "description": "Sort order: \"most_recent\", \"relevance\", or \"top\"", "enum": [ "most_recent", "relevance", "top" ], "type": "string" } }, "required": [ "query" ], "type": "object" }, "name": "search_reddit_comments", "outputSchema": null }, { "description": "Search Reddit users by keyword. Returns profile data including username, karma scores, account age, and bio.", "inputSchema": { "properties": { "query": { "description": "Search keyword (max 500 characters)", "type": "string" } }, "required": [ "query" ], "type": "object" }, "name": "search_reddit_users", "outputSchema": null }, { "description": "Search Threads (Meta's Threads app) posts by keyword. Returns post text, author, engagement metrics, media, and post permalinks. Billed $0.006 per request.", "inputSchema": { "properties": { "get_sentiment": { "default": false, "description": "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 endpoints.", "type": "boolean" }, "query": { "description": "Search keyword (max 500 characters)", "type": "string" } }, "required": [ "query" ], "type": "object" }, "name": "search_threads", "outputSchema": null }, { "description": "Search Threads (Meta's Threads app) users by keyword. Returns username, full name, verification status, and profile picture. Billed $0.006 per request.", "inputSchema": { "properties": { "query": { "description": "Search keyword (max 500 characters)", "type": "string" } }, "required": [ "query" ], "type": "object" }, "name": "search_threads_users", "outputSchema": null }, { "description": "Search TikTok videos by keyword.", "inputSchema": { "properties": { "get_sentiment": { "default": false, "description": "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 endpoints.", "type": "boolean" }, "pages": { "default": 1, "description": "Number of pages to fetch, 1-10 (default: 1)", "type": "integer" }, "publish_time": { "default": 0, "description": "Time filter: 0=ALL, 1=24h, 7=week, 30=month, 90=3months, 180=6months", "enum": [ 0, 1, 7, 30, 90, 180 ], "type": "integer" }, "query": { "description": "Search keyword (max 500 characters)", "type": "string" }, "region": { "description": "2-letter region code, e.g. \"us\", \"gb\", \"jp\"", "type": "string" }, "sort_by": { "default": "relevance", "description": "Sort order: \"relevance\", \"most_recent\", or \"most_liked\"", "enum": [ "relevance", "most_recent", "most_liked" ], "type": "string" } }, "required": [ "query" ], "type": "object" }, "name": "search_tiktok", "outputSchema": null }, { "description": "Search TikTok users by keyword. Returns username, bio, follower/following counts, likes, and video count.", "inputSchema": { "properties": { "pages": { "default": 1, "description": "Number of pages to fetch, 1-10 (default: 1)", "type": "integer" }, "query": { "description": "Search keyword (max 500 characters)", "type": "string" } }, "required": [ "query" ], "type": "object" }, "name": "search_tiktok_users", "outputSchema": null }, { "description": "Search Trustpilot categories by keyword. Returns up to 6 fuzzy matches with category_id and name; the search never returns zero matches, so check the names. Feed a category_id into trustpilot_category_companies or trustpilot_category_details.", "inputSchema": { "properties": { "query": { "description": "Keyword (max 200 characters), e.g. 'bank' or 'shop'", "type": "string" } }, "required": [ "query" ], "type": "object" }, "name": "search_trustpilot_categories", "outputSchema": null }, { "description": "Search Trustpilot companies by name or keyword. Each match includes business_unit_id, name, domain, website, Trustpilot page URL, logo, TrustScore rating, stars, review count, categories, and location. Also returns matching categories (feed a category_id into trustpilot_category_companies). 10 results per page; filter by minimum rating and minimum review count.", "inputSchema": { "properties": { "min_rating": { "description": "Minimum TrustScore", "enum": [ "3", "4", "4.5" ], "type": "string" }, "min_review_count": { "description": "Minimum number of reviews", "enum": [ "25", "50", "100", "250", "500" ], "type": "string" }, "page": { "default": 1, "description": "Page number, 1-500 (default: 1). Each page returns up to 10 results.", "type": "integer" }, "query": { "description": "Company name or keyword (max 500 characters)", "type": "string" } }, "required": [ "query" ], "type": "object" }, "name": "search_trustpilot_companies", "outputSchema": null }, { "description": "Search Twitter/X posts.", "inputSchema": { "properties": { "end_date": { "description": "Only posts up to and including this date (YYYY-MM-DD, UTC). Not with posted_ago", "type": "string" }, "get_sentiment": { "default": false, "description": "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 endpoints.", "type": "boolean" }, "pages": { "default": 1, "description": "Number of pages to fetch, 1-20 (default: 1)", "type": "integer" }, "posted_ago": { "description": "Only posts from this period: \"1h\", \"24h\", \"7d\", \"30d\", or \"12m\" (default: all time). Works with both sort orders", "enum": [ "1h", "24h", "7d", "30d", "12m" ], "type": "string" }, "query": { "description": "Search keyword (max 500 characters). Supports X search operators", "type": "string" }, "sort_by": { "default": "most_recent", "description": "Sort order: \"most_recent\" or \"relevance\"", "enum": [ "most_recent", "relevance" ], "type": "string" }, "start_date": { "description": "Only posts from this date onward (YYYY-MM-DD, UTC). Not with posted_ago", "type": "string" } }, "required": [ "query" ], "type": "object" }, "name": "search_twitter", "outputSchema": null }, { "description": "Search Twitter/X users by keyword. Returns profile data including username, bio, follower counts, and verification status.", "inputSchema": { "properties": { "pages": { "default": 1, "description": "Number of pages to fetch, 1-20 (default: 1)", "type": "integer" }, "query": { "description": "Search keyword (max 500 characters)", "type": "string" } }, "required": [ "query" ], "type": "object" }, "name": "search_twitter_users", "outputSchema": null }, { "description": "Search the web (Google organic results). Returns title, URL, snippet, source and domain for each result. Supports country and language targeting, time filters, city-level geo, and an optional Google AI Overview.", "inputSchema": { "properties": { "country": { "default": "us", "description": "2-letter country code (default: \"us\")", "type": "string" }, "device": { "default": "desktop", "description": "Device profile: \"desktop\" or \"mobile\"", "enum": [ "desktop", "mobile" ], "type": "string" }, "include_ai_overview": { "default": false, "description": "Include Google AI Overview when available (+$0.002 flat surcharge)", "type": "boolean" }, "language": { "default": "en", "description": "2-letter language code (default: \"en\")", "type": "string" }, "location": { "description": "City-level geo location (e.g. \"London,England,United Kingdom\")", "type": "string" }, "pages": { "default": 1, "description": "Number of result pages to fetch, 1-10 (default: 1). 10 results per page.", "type": "integer" }, "query": { "description": "Search keyword (max 500 characters). Supports Google advanced operators (site:, inurl:, intitle:, etc.)", "type": "string" }, "time": { "default": "any", "description": "Time filter: \"any\", \"hour\", \"day\", \"week\", \"month\", or \"year\"", "enum": [ "any", "hour", "day", "week", "month", "year" ], "type": "string" } }, "required": [ "query" ], "type": "object" }, "name": "search_web", "outputSchema": null }, { "description": "Search YouTube videos.", "inputSchema": { "properties": { "get_sentiment": { "default": false, "description": "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 endpoints.", "type": "boolean" }, "pages": { "default": 1, "description": "Number of pages to fetch, 1-20 (default: 1)", "type": "integer" }, "query": { "description": "Search keyword (max 500 characters)", "type": "string" }, "upload_date": { "description": "Filter by upload date: \"last_hour\", \"today\", \"this_week\", \"this_month\", or \"this_year\"", "enum": [ "last_hour", "today", "this_week", "this_month", "this_year" ], "type": "string" } }, "required": [ "query" ], "type": "object" }, "name": "search_youtube", "outputSchema": null }, { "description": "Search YouTube channels by keyword. Returns channel name, description, subscriber count, and thumbnail.", "inputSchema": { "properties": { "pages": { "default": 1, "description": "Number of pages to fetch, 1-20 (default: 1)", "type": "integer" }, "query": { "description": "Search keyword (max 500 characters)", "type": "string" } }, "required": [ "query" ], "type": "object" }, "name": "search_youtube_channels", "outputSchema": null }, { "description": "Get a single Threads (Meta's Threads app) user's recent posts by username. Returns post text, engagement metrics, media, timestamps, and permalinks. Billed $0.006 per request.", "inputSchema": { "properties": { "get_sentiment": { "default": false, "description": "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 endpoints.", "type": "boolean" }, "username": { "description": "Threads username, with or without leading @ (max 100 characters)", "type": "string" } }, "required": [ "username" ], "type": "object" }, "name": "threads_user_posts", "outputSchema": null }, { "description": "Get the full profile for a single Threads (Meta's Threads app) user by username. Returns biography, bio links, follower count, verification status, and profile metadata. Billed $0.006 per request.", "inputSchema": { "properties": { "username": { "description": "Threads username, with or without leading @ (max 100 characters)", "type": "string" } }, "required": [ "username" ], "type": "object" }, "name": "threads_user_profile", "outputSchema": null }, { "description": "Get the full profile for a single TikTok user by username, numeric user ID, or profile URL. Returns bio, bio link, follower/following counts, total likes, video count, verification status, join date, and linked Instagram/X/YouTube accounts. Provide exactly one of username, user_id, or url.", "inputSchema": { "properties": { "url": { "description": "TikTok profile URL, e.g. https://www.tiktok.com/@tiktok (max 500 characters)", "type": "string" }, "user_id": { "description": "Numeric TikTok user ID, as returned by search_tiktok_users", "type": "string" }, "username": { "description": "TikTok username, with or without leading @ (max 100 characters)", "type": "string" } }, "type": "object" }, "name": "tiktok_user_profile", "outputSchema": null }, { "description": "Get full details for a single TikTok video by video URL or numeric video ID. Returns the caption, play/like/comment/share/save counts, watermark-free playback and download URLs, cover images, music track info, and author details. Provide exactly one of url or video_id.", "inputSchema": { "properties": { "url": { "description": "TikTok video URL, e.g. https://www.tiktok.com/@tiktok/video/7516594811734854943 (max 500 characters)", "type": "string" }, "video_id": { "description": "Numeric TikTok video ID, as returned by search_tiktok", "type": "string" } }, "type": "object" }, "name": "tiktok_video_details", "outputSchema": null }, { "description": "List the companies in a Trustpilot category (20 per page, up to 500 pages) with name, domain, TrustScore, review count, categories and location, plus the category's size and subcategories. Filter by country, minimum rating and claimed status; sort by recommended or recently reviewed. Category IDs: see /docs/trustpilot-category-ids or search_trustpilot_categories.", "inputSchema": { "properties": { "category_id": { "description": "Trustpilot category slug (e.g. electronics_technology, bank) or a trustpilot.com/categories/... URL", "type": "string" }, "claimed": { "default": false, "description": "Only companies that have claimed their Trustpilot profile", "type": "boolean" }, "country": { "description": "2-letter ISO 3166-1 country code (default: all countries)", "type": "string" }, "min_rating": { "description": "Minimum TrustScore", "enum": [ "3", "3.5", "4", "4.5" ], "type": "string" }, "page": { "default": 1, "description": "Page number, 1-500 (default: 1). Each page returns up to 20 companies.", "type": "integer" }, "sort_by": { "default": "recommended", "description": "Sort order", "enum": [ "recommended", "recently_reviewed" ], "type": "string" } }, "required": [ "category_id" ], "type": "object" }, "name": "trustpilot_category_companies", "outputSchema": null }, { "description": "Get a Trustpilot category: display name, number of businesses, parent category, and its subcategories with their ids and business counts. Works for top-level, second- and third-level category slugs.", "inputSchema": { "properties": { "category_id": { "description": "Trustpilot category slug (e.g. electronics_technology) or a trustpilot.com/categories/... URL", "type": "string" } }, "required": [ "category_id" ], "type": "object" }, "name": "trustpilot_category_details", "outputSchema": null }, { "description": "Get the newest companies added to a Trustpilot category (a short unpaginated list, often 0-10 entries) with name, domain, TrustScore, review count and location, plus the category's size and subcategories.", "inputSchema": { "properties": { "category_id": { "description": "Trustpilot category slug (e.g. bank) or a trustpilot.com/categories/... URL", "type": "string" } }, "required": [ "category_id" ], "type": "object" }, "name": "trustpilot_category_newest", "outputSchema": null }, { "description": "Get a company's Trustpilot reviews plus its full profile (TrustScore, star rating, review counts, per-star breakdown, categories, claimed/verification status, reply behaviour, contact details). Each review has rating, title, text, dates, verification level, likes, author id/name/country and the company's reply. Filter by star rating, recency, language, verified-only, has-reply, or keyword. 20 reviews per page, up to 10 pages in one call.", "inputSchema": { "properties": { "domain": { "description": "Company website domain (e.g. gossby.com) or its Trustpilot review-page URL", "type": "string" }, "get_sentiment": { "default": false, "description": "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 endpoints.", "type": "boolean" }, "language": { "description": "2-letter ISO 639-1 language code (default: all languages)", "type": "string" }, "pages": { "default": 1, "description": "Pages to fetch, 1-10 (default: 1). Each page returns up to 20 reviews and is billed as one request.", "type": "integer" }, "posted_ago": { "description": "Only reviews from this period", "enum": [ "30d", "3m", "6m", "12m" ], "type": "string" }, "query": { "description": "Only reviews matching this keyword", "type": "string" }, "rating": { "description": "Only these star ratings, comma-separated 1-5 (e.g. '1,2')", "type": "string" }, "sort_by": { "default": "most_relevant", "description": "Sort order", "enum": [ "most_relevant", "newest" ], "type": "string" }, "verified": { "default": false, "description": "Only verified reviews", "type": "boolean" }, "with_replies": { "default": false, "description": "Only reviews the company replied to", "type": "boolean" } }, "required": [ "domain" ], "type": "object" }, "name": "trustpilot_company_reviews", "outputSchema": null }, { "description": "Get a Trustpilot reviewer's public profile (name, country, review count, verified, likes, reads) and the reviews they have written across all companies, 20 per page, each with the company name/domain, rating, title, text, dates and the company's reply. The user_id is a review's author_id.", "inputSchema": { "properties": { "page": { "default": 1, "description": "Page number, 1-500 (default: 1). Each page returns up to 20 reviews.", "type": "integer" }, "user_id": { "description": "Reviewer ID (24 hex characters, a review's author_id) or a trustpilot.com/users/... URL", "type": "string" } }, "required": [ "user_id" ], "type": "object" }, "name": "trustpilot_user_profile", "outputSchema": null }, { "description": "Get a single Truth Social user's recent posts (their feed) by username. Returns post text, engagement metrics (replies, reposts, likes), media attachments, hashtags, reply status, and permalinks. Up to 20 posts per page; billed $0.006 per page.", "inputSchema": { "properties": { "get_sentiment": { "default": false, "description": "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 endpoints.", "type": "boolean" }, "pages": { "default": 1, "description": "Number of pages to fetch, 1-20 (default: 1). Each page returns up to 20 posts", "type": "integer" }, "username": { "description": "Truth Social username, with or without leading @ (max 100 characters)", "type": "string" } }, "required": [ "username" ], "type": "object" }, "name": "truthsocial_user_posts", "outputSchema": null }, { "description": "Get the current trending topics for a specific location on Twitter/X. Use woeid=1 for Worldwide.", "inputSchema": { "properties": { "woeid": { "description": "Where On Earth ID for the location. Use 1 for Worldwide.", "type": "integer" } }, "required": [ "woeid" ], "type": "object" }, "name": "twitter_trends", "outputSchema": null }, { "description": "Get the comments (replies) on a specific tweet.", "inputSchema": { "properties": { "get_sentiment": { "default": false, "description": "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 endpoints.", "type": "boolean" }, "pages": { "default": 1, "description": "Number of pages to fetch, 1-20 (default: 1)", "type": "integer" }, "tweet_id": { "description": "Numeric tweet ID", "type": "string" } }, "required": [ "tweet_id" ], "type": "object" }, "name": "twitter_tweet_comments", "outputSchema": null }, { "description": "Get detailed information for a single tweet by its ID. Returns full content, engagement metrics, and author info.", "inputSchema": { "properties": { "get_sentiment": { "default": false, "description": "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 endpoints.", "type": "boolean" }, "tweet_id": { "description": "Numeric tweet ID", "type": "string" } }, "required": [ "tweet_id" ], "type": "object" }, "name": "twitter_tweet_details", "outputSchema": null }, { "description": "Get the quote tweets for a specific tweet.", "inputSchema": { "properties": { "get_sentiment": { "default": false, "description": "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 endpoints.", "type": "boolean" }, "pages": { "default": 1, "description": "Number of pages to fetch, 1-20 (default: 1)", "type": "integer" }, "tweet_id": { "description": "Numeric tweet ID", "type": "string" } }, "required": [ "tweet_id" ], "type": "object" }, "name": "twitter_tweet_quotes", "outputSchema": null }, { "description": "Get the users who retweeted a specific tweet.", "inputSchema": { "properties": { "pages": { "default": 1, "description": "Number of pages to fetch, 1-20 (default: 1)", "type": "integer" }, "tweet_id": { "description": "Numeric tweet ID", "type": "string" } }, "required": [ "tweet_id" ], "type": "object" }, "name": "twitter_tweet_retweets", "outputSchema": null }, { "description": "Get the followers of a specific Twitter/X user.", "inputSchema": { "properties": { "pages": { "default": 1, "description": "Number of pages to fetch, 1-20 (default: 1)", "type": "integer" }, "username": { "description": "Twitter username (without @, max 50 characters)", "type": "string" } }, "required": [ "username" ], "type": "object" }, "name": "twitter_user_followers", "outputSchema": null }, { "description": "Get the accounts that a specific Twitter/X user is following.", "inputSchema": { "properties": { "pages": { "default": 1, "description": "Number of pages to fetch, 1-175 (default: 1). Each page returns ~50 accounts.", "type": "integer" }, "username": { "description": "Twitter username (without @, max 50 characters)", "type": "string" } }, "required": [ "username" ], "type": "object" }, "name": "twitter_user_following", "outputSchema": null }, { "description": "Get detailed profile information for a Twitter/X user by username. Returns follower/following counts, bio, verification status, and account metadata.", "inputSchema": { "properties": { "username": { "description": "Twitter username (without @, max 50 characters)", "type": "string" } }, "required": [ "username" ], "type": "object" }, "name": "twitter_user_profile", "outputSchema": null }, { "description": "Get replies posted by a specific Twitter/X user.", "inputSchema": { "properties": { "get_sentiment": { "default": false, "description": "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 endpoints.", "type": "boolean" }, "pages": { "default": 1, "description": "Number of pages to fetch, 1-20 (default: 1)", "type": "integer" }, "username": { "description": "Twitter username (without @, max 50 characters)", "type": "string" } }, "required": [ "username" ], "type": "object" }, "name": "twitter_user_replies", "outputSchema": null }, { "description": "Get tweets posted by a specific Twitter/X user.", "inputSchema": { "properties": { "get_sentiment": { "default": false, "description": "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 endpoints.", "type": "boolean" }, "pages": { "default": 1, "description": "Number of pages to fetch, 1-20 (default: 1)", "type": "integer" }, "username": { "description": "Twitter username (without @, max 50 characters)", "type": "string" } }, "required": [ "username" ], "type": "object" }, "name": "twitter_user_tweets", "outputSchema": null }, { "description": "Get the verified (blue checkmark) followers of a specific Twitter/X user.", "inputSchema": { "properties": { "pages": { "default": 1, "description": "Number of pages to fetch, 1-20 (default: 1)", "type": "integer" }, "username": { "description": "Twitter username (without @, max 50 characters)", "type": "string" } }, "required": [ "username" ], "type": "object" }, "name": "twitter_verified_followers", "outputSchema": null }, { "description": "Get details for a YouTube channel: channel name, description, subscriber count, video count, total views, country, creation date, verification status, external links, profile picture, and banner. Provide exactly one of id, url, or name.", "inputSchema": { "properties": { "id": { "description": "YouTube channel ID (24 characters, starts with UC)", "type": "string" }, "name": { "description": "Channel name or @handle (e.g. @mkbhd or Linus Tech Tips)", "type": "string" }, "url": { "description": "Channel URL: youtube.com/channel/..., youtube.com/@handle, /c/ or /user/ forms", "type": "string" } }, "type": "object" }, "name": "youtube_channel_details", "outputSchema": null }, { "description": "Get details for a YouTube video: title, full description, channel name and ID, publish date, duration in seconds, view count, category, keywords, and thumbnail. Works for regular videos, Shorts, and live streams.", "inputSchema": { "properties": { "url": { "description": "YouTube video URL (watch?v=, youtu.be/, /shorts/, /embed/ or /live/ forms) or 11-character video ID", "type": "string" } }, "required": [ "url" ], "type": "object" }, "name": "youtube_video_details", "outputSchema": null } ] }
Verify it yourselfcurl -s https://api.teppi.xyz/v1/evidence/sha256:a082d16a0dbb37b9825b6f785ceee39b04a0cef3f118167a3e20d489f7b47069 | sha256sum