# Getting started > Connect Manifold to your agent in a minute and make your first call. Manifold is one remote MCP server with 71 read-only tools for growth: Google search data, what AI engines say about a brand, social platforms, ad libraries, and people and companies. Your agent calls them like any other tool, and each call costs a few credits. ## Connect in a minute 1. **Add the server to your client.** Paste the server URL, or run one command. Each client has its own page under [Clients](https://www.manifoldmcp.com/docs/clients). ```text https://mcp.manifoldmcp.com/mcp ``` 2. **Sign in.** Your client opens a browser. Sign in with Google or email and approve Manifold. This creates your account and a workspace with 500 free credits. There is no card to add. 3. **Ask for something real.** For example: - "What does Google show for *crm for startups*, and who ranks?" - "Audit example.com for technical SEO and AI readiness." - "Find the head of marketing at Northwind and their work email." ## What your agent can do - [SEO tools](https://www.manifoldmcp.com/docs/tools/seo): Google organic search: keywords, rankings, results pages, domains, backlinks and site health. - [AI answer tools](https://www.manifoldmcp.com/docs/tools/aeo): What ChatGPT, Claude, Gemini, Perplexity and Google's AI answers say and cite, and whether a site is ready for them. - [People and company tools](https://www.manifoldmcp.com/docs/tools/leads): People and companies, and finding and verifying work emails. Every reveal is charged. - [Ad library tools](https://www.manifoldmcp.com/docs/tools/ads): Ads running in the platforms' public ad libraries, by keyword, brand or advertiser. - [Reddit tools](https://www.manifoldmcp.com/docs/tools/reddit): Posts, comments and communities: search across Reddit, or watch what appears in a subreddit. - [TikTok tools](https://www.manifoldmcp.com/docs/tools/tiktok): Accounts, videos, comments, transcripts, followers and audiences. - [Instagram tools](https://www.manifoldmcp.com/docs/tools/instagram): Accounts, posts, reels, comments and transcripts. - [Facebook tools](https://www.manifoldmcp.com/docs/tools/facebook): Pages, posts, groups, comments and transcripts. - [YouTube tools](https://www.manifoldmcp.com/docs/tools/youtube): Channels, videos, comments and transcripts. - [LinkedIn tools](https://www.manifoldmcp.com/docs/tools/linkedin): People, company pages and posts. - [X tools](https://www.manifoldmcp.com/docs/tools/x): Accounts and posts on X. ## How it works - **Every tool is read-only.** Manifold looks things up. It never posts, sends or changes anything. - **Every call costs credits**, and the response says how many in `meta.credits_charged`. 100 credits are one US dollar. See [Credits](https://www.manifoldmcp.com/docs/credits). - **Repeat questions cost less.** An answer served from the cache costs 25% of the live price, and nothing if your workspace already paid for it. See [Caching](https://www.manifoldmcp.com/docs/caching). - **Your agent can ask the price first.** `dry_run: true` returns the estimate for free, and `max_credits` caps a call. ## Next - [Authentication](https://www.manifoldmcp.com/docs/authentication): OAuth from your client, or an API key for scripts. - [How the tools work](https://www.manifoldmcp.com/docs/tools): Shared parameters, responses, pagination and async tasks. - [Credits](https://www.manifoldmcp.com/docs/credits): What a call costs, and how to cap it. - [Docs for agents](https://www.manifoldmcp.com/docs/for-agents): Every page as Markdown, and llms.txt. Source: https://www.manifoldmcp.com/docs --- # Authentication > Sign in with OAuth from your client, or send an API key. Both spend one workspace's credits. Manifold takes two kinds of credential. Both go to `https://mcp.manifoldmcp.com/mcp` as a bearer token, and both spend the credits of one workspace. | | OAuth | API key | | --- | --- | --- | | For | Chat apps and coding agents that can sign in | Scripts, CI, and clients that cannot run OAuth | | How | Your client opens a browser and you sign in | Copy a key from the app and send it as a header | | Spends | Your personal workspace's credits | The credits of the workspace that made the key | ## OAuth Most clients find the sign-in by themselves. The server publishes its OAuth metadata (RFC 9728) and the client runs OAuth 2.1 with PKCE: ```text https://mcp.manifoldmcp.com/.well-known/oauth-protected-resource/mcp ``` You see the Manifold sign-in page. Sign in with Google or email and approve the client. The first sign-in creates your account with 500 free credits. ## API keys The dashboard at [app.manifoldmcp.com](https://app.manifoldmcp.com) has a key ready to copy. Make more keys, and revoke them, on the API keys page. Send a key in the `Authorization` header: ```http Authorization: Bearer mk_live_... ``` A key you make on the API keys page is shown once. Manifold keeps only a hash of it, so a lost key cannot be recovered: revoke it and make another. A revoked key can keep working for up to a minute while the change reaches every data centre. ## Workspaces Credits, keys, usage and billing belong to a workspace, not to a person, so a team shares one balance and one set of keys. Sign-up creates a personal workspace, and the account menu in the app switches between workspaces. > OAuth spends your personal workspace's credits. To spend a team workspace's credits from a client, use an API key made in that workspace. ## Turn tool groups off The app's Tools page has a switch for each tool group. A group that is off is not in the tool list your clients see, and the change reaches the server within a minute. [`get_task`](https://www.manifoldmcp.com/docs/tools#async-tasks) has no group and is always there, so a task that already started can still be read. ## When a request is refused A missing or bad credential gets HTTP 401 with a `WWW-Authenticate` header that points at the OAuth metadata. The `error_description` says why: | Description | What to do | | --- | --- | | Bearer token required | Send a token, or sign in from your client | | API key is unknown or revoked | Copy a current key from the app | | OAuth token is invalid or expired | Sign in again from your client | Source: https://www.manifoldmcp.com/docs/authentication --- # Docs for agents > Every page as Markdown, llms.txt, and a setup page written for an agent to follow. These docs are for people and for the agents that work for them. Every page is also plain Markdown at a stable URL, so an agent can read it without scraping HTML. ## Markdown for every page Add `.md` to a docs URL to get the page as Markdown, for example `https://www.manifoldmcp.com/docs/credits.md`. The introduction is at `https://www.manifoldmcp.com/docs/index.md`. Each page's HTML also links its Markdown with ``. The **Copy page** button at the top of each page copies the same Markdown. Its menu opens the page in ChatGPT or Claude, ready for a question. ## llms.txt | File | What it holds | | --- | --- | | [/llms.txt](https://www.manifoldmcp.com/llms.txt) | An index of the docs: every page with a link to its Markdown and one line on what it covers | | [/llms-full.txt](https://www.manifoldmcp.com/llms-full.txt) | Every page in one Markdown file | ## The setup page `https://www.manifoldmcp.com/setup.md` is written for an agent that has been asked to connect Manifold. It gives the server, how to add it to the client the agent runs in, and what to do next. Give your agent one line: ```text Read https://www.manifoldmcp.com/setup.md and connect Manifold. ``` ## Inside the server A connected agent does not need these docs to use the tools. When it connects, the server sends instructions: a glossary, the credit rules and the common workflows. Each tool description says when to use the tool, what it returns, its parameters and its cost. The tool pages here are built from those same descriptions, so the two always agree. Source: https://www.manifoldmcp.com/docs/for-agents --- # Clients > Manifold is one remote MCP server. Pick the app or agent you use. Manifold is one remote MCP server over streamable HTTP. A client that can add a remote MCP server can use it, and most need only the server URL: ```text https://mcp.manifoldmcp.com/mcp ``` | Client | How | | --- | --- | | [Claude](https://www.manifoldmcp.com/docs/clients/claude) | Go to Settings, then Connectors, and add a custom connector. Paste the URL and sign in. | | [Claude Code](https://www.manifoldmcp.com/docs/clients/claude-code) | Run this, then /mcp to sign in. | | [ChatGPT](https://www.manifoldmcp.com/docs/clients/chatgpt) | Turn on developer mode. Go to Settings, then Apps & Connectors, and choose Create. Paste the URL. | | [Codex](https://www.manifoldmcp.com/docs/clients/codex) | Run this, then codex mcp login manifold to sign in. | | [Cursor](https://www.manifoldmcp.com/docs/clients/cursor) | One click, or paste the URL in the MCP section of Cursor Settings. | | [Gemini CLI](https://www.manifoldmcp.com/docs/clients/gemini) | Run this, then /mcp auth manifold to sign in. | | [Grok](https://www.manifoldmcp.com/docs/clients/grok) | Go to Settings, then Connectors, and add a connector. Paste the URL and sign in. | | [Grok Bot](https://www.manifoldmcp.com/docs/clients/grok-bot) | Paste this to the bot. It adds Manifold and asks you to sign in. | | [OpenCode](https://www.manifoldmcp.com/docs/clients/opencode) | Run opencode mcp add, choose Remote and paste the URL. | | [Any other client](https://www.manifoldmcp.com/docs/clients/other) | Add it as a remote MCP server in any other client. | ## What every client needs - **The server URL** above. The transport is streamable HTTP. - **A sign-in.** Most clients open a browser for OAuth. A client that cannot do that sends an API key as a bearer token. See [Authentication](https://www.manifoldmcp.com/docs/authentication). ## Check that it works Ask your agent "What Manifold tools do you have?" It should name tools such as [`seo_get_serp`](https://www.manifoldmcp.com/docs/tools/seo#seo_get_serp) and [`leads_search_people`](https://www.manifoldmcp.com/docs/tools/leads#leads_search_people). Then ask a real question, and look for `meta.credits_charged` in the result to see what it cost. ## If something goes wrong - **No tools appear.** Reload or restart the client after you add the server. In chat apps, check that Manifold is on for this chat. - **The browser never opens.** Some clients need a sign-in step of their own: `/mcp` in Claude Code, `codex mcp login manifold` in Codex, `/mcp auth manifold` in Gemini CLI. - **Some tools are missing.** A tool group may be switched off on the app's Tools page. See [Authentication](https://www.manifoldmcp.com/docs/authentication#turn-tool-groups-off). - **A call returns `InsufficientCredits`.** The workspace is out of credits. See [Plans and top-ups](https://www.manifoldmcp.com/docs/plans). Source: https://www.manifoldmcp.com/docs/clients --- # Connect Claude > Add Manifold to Claude and give it search, AI answer, social, ads and people tools. Go to Settings, then Connectors, and add a custom connector. Paste the URL and sign in. The server URL: ```text https://mcp.manifoldmcp.com/mcp ``` ## Steps 1. In Claude on the web or the desktop app, open **Settings → Connectors**. 2. Choose **Add custom connector**. Name it Manifold and paste the server URL. 3. Choose **Connect**, then sign in to Manifold in the window that opens and approve Claude. 4. Start a chat, check that Manifold is on in the chat's tools menu, and ask a question. A connector you add on the web is also there in the desktop app and on your phone. ## Try it ```text Use Manifold to find the top 10 Google results for "crm for startups" and tell me who ranks. ``` Source: https://www.manifoldmcp.com/docs/clients/claude --- # Connect Claude Code > Add Manifold to Claude Code and give it search, AI answer, social, ads and people tools. Run this, then /mcp to sign in. Run this in a terminal: ```sh claude mcp add --transport http manifold https://mcp.manifoldmcp.com/mcp ``` ## Steps 1. Run the command above. It adds Manifold for the current project. Add `--scope user` to add it for every project. 2. Start Claude Code and run `/mcp`. Choose **manifold** and sign in in the browser. 3. Ask a question. Claude Code asks before it calls a tool the first time. ## With an API key For CI or a machine with no browser, send an API key instead of signing in: ```sh claude mcp add --transport http manifold https://mcp.manifoldmcp.com/mcp --header "Authorization: Bearer mk_live_..." ``` ## Try it ```text Use Manifold to audit example.com: run a technical crawl and check its AI readiness. ``` Source: https://www.manifoldmcp.com/docs/clients/claude-code --- # Connect ChatGPT > Add Manifold to ChatGPT and give it search, AI answer, social, ads and people tools. Turn on developer mode. Go to Settings, then Apps & Connectors, and choose Create. Paste the URL. The server URL: ```text https://mcp.manifoldmcp.com/mcp ``` ## Steps 1. Turn on developer mode in ChatGPT's settings. Custom MCP connectors need it. 2. Open **Settings → Apps & Connectors** and choose **Create**. 3. Name it Manifold, paste the server URL and create it. Sign in to Manifold when ChatGPT asks. 4. In a chat, add Manifold from the tools menu and ask a question. ## Try it ```text Use Manifold to show me the ads Olipop is running on Meta right now. ``` Source: https://www.manifoldmcp.com/docs/clients/chatgpt --- # Connect Codex > Add Manifold to Codex and give it search, AI answer, social, ads and people tools. Run this, then codex mcp login manifold to sign in. Run this in a terminal: ```sh codex mcp add manifold --url https://mcp.manifoldmcp.com/mcp ``` ## Steps 1. Run the command above. 2. Run `codex mcp login manifold` and sign in in the browser. 3. Start Codex and ask a question. ## In config.toml The command writes this to `~/.codex/config.toml`. You can also add it by hand: ```toml [mcp_servers.manifold] url = "https://mcp.manifoldmcp.com/mcp" ``` ## Try it ```text Use Manifold to list the keywords example.com ranks for in the top 10. ``` Source: https://www.manifoldmcp.com/docs/clients/codex --- # Connect Cursor > Add Manifold to Cursor and give it search, AI answer, social, ads and people tools. One click, or paste the URL in the MCP section of Cursor Settings. The server URL: ```text https://mcp.manifoldmcp.com/mcp ``` ## Steps 1. Choose **Add to Cursor** at the top of this page. Or open **Cursor Settings → MCP**, add a server and paste the URL. 2. Cursor lists Manifold. Choose it to sign in, and approve Cursor in the browser. 3. Ask in the agent chat. ## In mcp.json To share the server with a project, add it to `.cursor/mcp.json`: ```json { "mcpServers": { "manifold": { "url": "https://mcp.manifoldmcp.com/mcp" } } } ``` To use an API key instead of signing in, add `"headers": { "Authorization": "Bearer mk_live_..." }` beside the URL. Keep the key out of version control. Source: https://www.manifoldmcp.com/docs/clients/cursor --- # Connect Gemini CLI > Add Manifold to Gemini CLI and give it search, AI answer, social, ads and people tools. Run this, then /mcp auth manifold to sign in. Run this in a terminal: ```sh gemini mcp add --transport http manifold https://mcp.manifoldmcp.com/mcp ``` ## Steps 1. Run the command above. 2. Start Gemini CLI and run `/mcp auth manifold`. Sign in in the browser. 3. Run `/mcp` to see the tools, then ask a question. ## In settings.json The command writes the server to your Gemini CLI settings. By hand, in `~/.gemini/settings.json`: ```json { "mcpServers": { "manifold": { "httpUrl": "https://mcp.manifoldmcp.com/mcp" } } } ``` Source: https://www.manifoldmcp.com/docs/clients/gemini --- # Connect Grok > Add Manifold to Grok and give it search, AI answer, social, ads and people tools. Go to Settings, then Connectors, and add a connector. Paste the URL and sign in. The server URL: ```text https://mcp.manifoldmcp.com/mcp ``` ## Steps 1. In Grok, open **Settings → Connectors** and choose **Add connector**. 2. Paste the server URL and sign in to Manifold. 3. Ask a question in a new chat. Source: https://www.manifoldmcp.com/docs/clients/grok --- # Connect Grok Bot > Add Manifold to Grok Bot and give it search, AI answer, social, ads and people tools. Paste this to the bot. It adds Manifold and asks you to sign in. Paste this to the bot: ```text Add the Manifold MCP server as a plugin: https://mcp.manifoldmcp.com/mcp. ``` ## Steps 1. Paste the prompt above to the Grok bot. 2. The bot adds Manifold and sends you a sign-in link. Sign in and approve it. 3. Ask the bot a question. Source: https://www.manifoldmcp.com/docs/clients/grok-bot --- # Connect OpenCode > Add Manifold to OpenCode and give it search, AI answer, social, ads and people tools. Run opencode mcp add, choose Remote and paste the URL. The server URL: ```text https://mcp.manifoldmcp.com/mcp ``` ## Steps 1. Run `opencode mcp add`. 2. Choose **Remote**, name it manifold and paste the server URL. 3. Sign in to Manifold when OpenCode asks, then ask a question. ## In opencode.json ```json { "$schema": "https://opencode.ai/config.json", "mcp": { "manifold": { "type": "remote", "url": "https://mcp.manifoldmcp.com/mcp" } } } ``` Source: https://www.manifoldmcp.com/docs/clients/opencode --- # Connect any MCP client > Add Manifold as a remote MCP server in any client, with OAuth or an API key. Add it as a remote MCP server in any other client. The server URL: ```text https://mcp.manifoldmcp.com/mcp ``` ## What to enter | Setting | Value | | --- | --- | | Transport | Streamable HTTP | | URL | `https://mcp.manifoldmcp.com/mcp` | | Auth | OAuth 2.1 with PKCE, found from the server's metadata. Or an API key as a bearer token | A client that supports OAuth for remote servers finds the sign-in by itself. See [Authentication](https://www.manifoldmcp.com/docs/authentication). ## With an API key Many clients take a JSON config in this shape. The file and the key names differ from client to client, so check yours: ```json { "mcpServers": { "manifold": { "url": "https://mcp.manifoldmcp.com/mcp", "headers": { "Authorization": "Bearer mk_live_..." } } } } ``` ## From your own code Use any MCP client library with a streamable HTTP transport, the URL above and the `Authorization` header. The server is stateless, and every tool is read-only. Source: https://www.manifoldmcp.com/docs/clients/other --- # How the tools work > The parameters every tool shares, what a response carries, pagination and async tasks. Manifold has 71 tools in groups. Each tool is read-only and safe to repeat: it looks something up and changes nothing. This page covers what every tool shares. Each group has its own page with every tool's parameters, result and cost. - [SEO tools](https://www.manifoldmcp.com/docs/tools/seo): Google organic search: keywords, rankings, results pages, domains, backlinks and site health. - [AI answer tools](https://www.manifoldmcp.com/docs/tools/aeo): What ChatGPT, Claude, Gemini, Perplexity and Google's AI answers say and cite, and whether a site is ready for them. - [People and company tools](https://www.manifoldmcp.com/docs/tools/leads): People and companies, and finding and verifying work emails. Every reveal is charged. - [Ad library tools](https://www.manifoldmcp.com/docs/tools/ads): Ads running in the platforms' public ad libraries, by keyword, brand or advertiser. - [Reddit tools](https://www.manifoldmcp.com/docs/tools/reddit): Posts, comments and communities: search across Reddit, or watch what appears in a subreddit. - [TikTok tools](https://www.manifoldmcp.com/docs/tools/tiktok): Accounts, videos, comments, transcripts, followers and audiences. - [Instagram tools](https://www.manifoldmcp.com/docs/tools/instagram): Accounts, posts, reels, comments and transcripts. - [Facebook tools](https://www.manifoldmcp.com/docs/tools/facebook): Pages, posts, groups, comments and transcripts. - [YouTube tools](https://www.manifoldmcp.com/docs/tools/youtube): Channels, videos, comments and transcripts. - [LinkedIn tools](https://www.manifoldmcp.com/docs/tools/linkedin): People, company pages and posts. - [X tools](https://www.manifoldmcp.com/docs/tools/x): Accounts and posts on X. ## Common parameters Many tools take some of these. A tool's page lists the ones it takes. | Parameter | Default | What it does | | --- | --- | --- | | `location` | `"United States"` | Where the search runs, by name or provider code | | `language` | `"en"` | ISO 639-1 language code | | `device` | `"desktop"` | `"desktop"` or `"mobile"` | | `limit` | 100 | The most rows to return, up to 1,000 | | `cursor` | None | The next page: `meta.cursor` from the previous result | | `provider` | The server's choice | Which data provider to use. `meta.provider` says which one answered | | `max_credits` | None | Refuse the call with `BudgetExceeded` if the estimate is higher | | `dry_run` | `false` | Return only `meta` with the estimate. Costs nothing | Search data is Google only. ## Targets Tools that take a `target` accept a domain or a URL, and the form sets the scope: | Target | Covers | | --- | --- | | `example.com` | The domain and all its subdomains | | `www.example.com` | That host only | | `https://example.com/pricing` | That page only | ## What a response carries A result is the tool's data plus `meta` and `hints`. The same JSON also comes back as text, for clients that read text only. | `meta` field | What it says | | --- | --- | | `provider` | The data provider that answered | | `credits_charged` | What this call cost | | `est_credits` | The estimate made before the call | | `cached` | `true` if the answer came from the [cache](https://www.manifoldmcp.com/docs/caching) | | `data_as_of` | When the provider's data is from | | `rows_returned`, `rows_available` | Rows in this result, and in total where the provider says | | `cursor` | Pass it back as `cursor` for the next page. `null` on the last page | | `request_id` | Quote it when you contact support | `hints` lists up to three tools worth calling next, cheapest first, each with its estimate. `null` means the provider has no data. `0` means it measured zero. ## Pagination List tools return up to `limit` rows and a `meta.cursor`. To get the next page, call the same tool with the same input and `cursor` set to that value. The cursor is opaque: pass it back as it is. ## Batch inputs Tools that take a list, such as a list of domains, return the rows that worked and an `errors` list for the rest. Each error names its input, so one bad domain does not fail the batch. ## Async tasks Two tools take longer than a request should: [`seo_run_technical_crawl`](https://www.manifoldmcp.com/docs/tools/seo#seo_run_technical_crawl) and [`aeo_run_ai_answers`](https://www.manifoldmcp.com/docs/tools/aeo#aeo_run_ai_answers). They return a `task_id` and `poll_after_s` at once. Wait that many seconds, then call [`get_task`](https://www.manifoldmcp.com/docs/tools#async-tasks) with the `task_id`: ```json {"task_id": "task_01J..."} ``` While the task runs, [`get_task`](https://www.manifoldmcp.com/docs/tools#async-tasks) returns `TaskPending` with a new `poll_after_s`. When it is done it returns the result under `result`, with the settled charge in `meta.credits_charged`. [`get_task`](https://www.manifoldmcp.com/docs/tools#async-tasks) is free, and results are kept for 30 days. ## Prompts The server also has one MCP prompt, **Link outreach** (`link_outreach`). Give it your site and a competitor or a keyword. It walks your agent through finding sites worth a link, rating them, finding a contact at each and checking the addresses. Sending the emails stays with you. Source: https://www.manifoldmcp.com/docs/tools --- # SEO tools > Google organic search: keywords, rankings, results pages, domains, backlinks and site health. Google organic search, from DataForSEO: keywords, rankings, results pages, domains, backlinks and site health. [`seo_get_page`](https://www.manifoldmcp.com/docs/tools/seo#seo_get_page) fetches the page itself. A few terms the results use. **Volume** is monthly searches. **KD** is keyword difficulty, 0 to 100. **domain_rank** is DataForSEO's authority score from its backlink index, 0 to 1000: the same kind of number as Ahrefs DR or Moz DA, on a different scale. A **target** is a domain or a URL (see [targets](https://www.manifoldmcp.com/docs/tools#targets)). Common paths: keyword research is one [`seo_search_keywords`](https://www.manifoldmcp.com/docs/tools/seo#seo_search_keywords) call, which already has the metrics. For a domain, start with [`seo_get_domain_overview`](https://www.manifoldmcp.com/docs/tools/seo#seo_get_domain_overview), then the backlinks or its ranked keywords. For site health, [`seo_get_page`](https://www.manifoldmcp.com/docs/tools/seo#seo_get_page) checks one URL and [`seo_run_technical_crawl`](https://www.manifoldmcp.com/docs/tools/seo#seo_run_technical_crawl) a whole site, as an [async task](https://www.manifoldmcp.com/docs/tools#async-tasks). | Tool | What it does | Cost | | --- | --- | --- | | [`seo_search_keywords`](#seo_search_keywords) | Get keyword ideas | From 5 credits | | [`seo_get_keyword_metrics`](#seo_get_keyword_metrics) | Check keyword metrics | From 5 credits | | [`seo_get_serp`](#seo_get_serp) | Get search results for a query | From 1 credit | | [`seo_get_position`](#seo_get_position) | Get a site's position for a keyword | From 6 credits | | [`seo_get_domain_overview`](#seo_get_domain_overview) | Get a domain overview | From 5 credits | | [`seo_get_ranked_keywords`](#seo_get_ranked_keywords) | Get a domain's ranked keywords | From 5 credits | | [`seo_get_serp_competitors`](#seo_get_serp_competitors) | Find search competitors | From 5 credits | | [`seo_get_keyword_gap`](#seo_get_keyword_gap) | Find keyword gaps | From 5 credits | | [`seo_get_backlink_summary`](#seo_get_backlink_summary) | Get a backlink summary | From 10 credits | | [`seo_get_backlinks`](#seo_get_backlinks) | Get backlinks | From 10 credits | | [`seo_get_referring_domains`](#seo_get_referring_domains) | Get referring domains | From 10 credits | | [`seo_get_domain_ratings`](#seo_get_domain_ratings) | Get domain ratings in bulk | From 1 credit | | [`seo_get_traffic_estimates`](#seo_get_traffic_estimates) | Get traffic estimates in bulk | From 50 credits | | [`seo_get_page`](#seo_get_page) | Get an on-page snapshot | Free | | [`seo_run_technical_crawl`](#seo_run_technical_crawl) | Run a technical audit | From 3 credits | ## `seo_search_keywords`: Get keyword ideas Candidate keywords around a seed, with volume, difficulty, intent, CPC and trend for each. **Use when:** "find keywords for X", "what should I target around X", "keyword ideas for a page about X". **Not for:** metrics on keywords the user already has, use [`seo_get_keyword_metrics`](https://www.manifoldmcp.com/docs/tools/seo#seo_get_keyword_metrics) (this tool already returns those metrics, so do not call it afterwards). Prompts people ask AI engines, use [`aeo_search_prompts`](https://www.manifoldmcp.com/docs/tools/aeo#aeo_search_prompts). The top-10 page for one query, use [`seo_get_serp`](https://www.manifoldmcp.com/docs/tools/seo#seo_get_serp). **Returns:** List. `rows[]`: keyword, volume, kd (0 to 100), intent, cpc (USD), competition, trend[12] (month, volume). volume, kd, cpc null = provider has no data; 0 = measured zero. **Cost:** 5 + 5 per 100 rows. Default 100 rows = 10 credits. Cached 7 days. | Parameter | Default and notes | | --- | --- | | `seed` | Required | | `mode` | "suggestions" contains the seed \| "related" SERP-similar \| "ideas" same category, default suggestions | | `location` | "United States" | | `language` | "en" | | `limit` | 100, max 1000 | Also takes `cursor`, `provider`, `max_credits`, `dry_run`: see [common parameters](https://www.manifoldmcp.com/docs/tools#common-parameters). ```json { "seed": "crm for startups", "mode": "suggestions", "limit": 50 } ``` ## `seo_get_keyword_metrics`: Check keyword metrics Volume, difficulty, intent, CPC and 12-month trend for keywords you already have, with AI-engine prompt volume on request. **Use when:** the user supplies keywords, or you need numbers for a list from elsewhere. `ai_volume` true when the question is how often AI engines see the keyword. **Not for:** discovering keywords, use [`seo_search_keywords`](https://www.manifoldmcp.com/docs/tools/seo#seo_search_keywords) (it already includes these metrics, do not call this after it). AI-engine prompts, use [`aeo_search_prompts`](https://www.manifoldmcp.com/docs/tools/aeo#aeo_search_prompts). Checking rankings, use [`seo_get_position`](https://www.manifoldmcp.com/docs/tools/seo#seo_get_position). **Returns:** List. `rows[]`: keyword, volume, kd, intent, cpc, competition, trend[12], `ai_volume`, `ai_trend`[12]. One row per input keyword in the order given. volume/kd null = provider has no data; 0 = measured zero. With source `google_ads`, kd and intent are always null and keywords over 80 characters come back all null. `ai_volume` and `ai_trend` are null unless `ai_volume` is true. **Cost:** 5 + 5 per 100 keywords with source labs; 24 flat with source `google_ads`; `ai_volume` adds 4 + 4 per 100 keywords. Default 100 keywords = 10 credits. Cached 7 days. | Parameter | Default and notes | | --- | --- | | `keywords[]` | Required, max 1000 | | `source` | "labs" \| "`google_ads`", default labs; `google_ads` is Google Keyword Planner's own volume, slower | | `ai_volume` | False | | `location` | "United States" | | `language` | "en" | Also takes `provider`, `max_credits`, `dry_run`: see [common parameters](https://www.manifoldmcp.com/docs/tools#common-parameters). ```json { "keywords": [ "crm for startups", "hubspot alternative" ], "ai_volume": true } ``` ## `seo_get_serp`: Get search results for a query The top organic results and SERP features Google shows for one query. **Use when:** "what ranks for X", "who is on page one for X", "is there a featured snippet or AI overview for X". **Not for:** where one site ranks for a keyword, use [`seo_get_position`](https://www.manifoldmcp.com/docs/tools/seo#seo_get_position) (it scans the top 100 for you). General web retrieval to read pages, use `web_search_pages`. Keyword ideas, use [`seo_search_keywords`](https://www.manifoldmcp.com/docs/tools/seo#seo_search_keywords). **Returns:** Record. keyword, location, language, device, `check_url`, `results_count`, `features[]` (`featured_snippet`, `people_also_ask`, video, `ai_overview` and others), `results[]` (rank, `organic_rank`, type, url, domain, title, snippet), `ai_overview` (text, `references[]`) or null. **Cost:** 1 credit per 10 results, +1 with `ai_overview`. Default top 10 = 1 credit. Cached 24 hours. | Parameter | Default and notes | | --- | --- | | `keyword` | Required | | `location` | "United States" | | `language` | "en" | | `device` | "desktop" \| "mobile" | | `depth` | 10, max 100 | | `ai_overview` | False; true adds Google's AI overview and its cited sources | Also takes `provider`, `max_credits`, `dry_run`: see [common parameters](https://www.manifoldmcp.com/docs/tools#common-parameters). ```json { "keyword": "hubspot alternative", "depth": 10, "ai_overview": true } ``` ## `seo_get_position`: Get a site's position for a keyword Where one target ranks for one keyword, scanning the top 100 server-side. **Use when:** "where does example.com rank for X", "did we make page one for X", a rank check for a handful of keywords. **Not for:** every keyword a domain ranks for, use [`seo_get_ranked_keywords`](https://www.manifoldmcp.com/docs/tools/seo#seo_get_ranked_keywords). The full page-one list, use [`seo_get_serp`](https://www.manifoldmcp.com/docs/tools/seo#seo_get_serp). Tracking over time: call this on a schedule from the host; the server keeps no history. **Returns:** Record. keyword, target, rank (absolute, null when not in the top 100), `organic_rank`, url, title, `scanned_depth`, `above[]` (rank, domain, url of the organic results ahead, at most 10). **Cost:** 6 credits flat. Cached 24 hours. | Parameter | Default and notes | | --- | --- | | `keyword` | Required | | `target` | Required; example.com covers subdomains, www.example.com is that host, a URL is that page | | `location` | "United States" | | `language` | "en" | | `device` | "desktop" | Also takes `provider`, `max_credits`, `dry_run`: see [common parameters](https://www.manifoldmcp.com/docs/tools#common-parameters). ```json { "keyword": "hubspot alternative", "target": "example.com" } ``` ## `seo_get_domain_overview`: Get a domain overview Traffic estimate, ranked keyword count, position spread, top pages and domain rank for one domain. The canonical source of domain rank. **Use when:** "how strong is competitor.com", "how much traffic does X get", sizing a site before a deeper look. **Not for:** the keywords behind the traffic, use [`seo_get_ranked_keywords`](https://www.manifoldmcp.com/docs/tools/seo#seo_get_ranked_keywords). Link counts, use [`seo_get_backlink_summary`](https://www.manifoldmcp.com/docs/tools/seo#seo_get_backlink_summary) (its `domain_rank` equals this one). Many domains at once, use [`seo_get_domain_ratings`](https://www.manifoldmcp.com/docs/tools/seo#seo_get_domain_ratings) for domain rank or [`seo_get_traffic_estimates`](https://www.manifoldmcp.com/docs/tools/seo#seo_get_traffic_estimates) for traffic. **Returns:** Record. target, `domain_rank` (0 to 1000 on DataForSEO, the same kind of number as Ahrefs DR or Moz DA but not the same scale), `organic_traffic`, `organic_keywords`, `organic_traffic_cost` (USD), positions (`top_3`, `top_10`, `top_100`), `top_pages[]` (url, `organic_traffic`, `organic_keywords`), `history[]` (12 months: month, `organic_traffic`, `organic_keywords`) only with history true. null = provider has no data. **Cost:** 5 credits; +56 with history. Cached 7 days. | Parameter | Default and notes | | --- | --- | | `target` | Required | | `location` | "United States" | | `language` | "en" | | `history` | False | Also takes `provider`, `max_credits`, `dry_run`: see [common parameters](https://www.manifoldmcp.com/docs/tools#common-parameters). ```json { "target": "competitor.com" } ``` ## `seo_get_ranked_keywords`: Get a domain's ranked keywords Keywords a domain or one page ranks for in the top 100, with position, URL and metrics. **Use when:** "what does competitor.com rank for", "which keywords send traffic to this page", building a list of a site's topics. **Not for:** keywords a competitor has that you do not, use [`seo_get_keyword_gap`](https://www.manifoldmcp.com/docs/tools/seo#seo_get_keyword_gap). One keyword's position, use [`seo_get_position`](https://www.manifoldmcp.com/docs/tools/seo#seo_get_position). New keyword ideas, use [`seo_search_keywords`](https://www.manifoldmcp.com/docs/tools/seo#seo_search_keywords). **Returns:** List. `rows[]`: keyword, rank, url, volume, kd, cpc, intent, traffic (estimated monthly visits from this keyword). Sorted by traffic. null = provider has no data. **Cost:** 5 + 5 per 100 rows. Default 100 rows = 10 credits. Cached 7 days. | Parameter | Default and notes | | --- | --- | | `target` | Required; a domain covers subdomains, a URL is that page only | | `location` | "United States" | | `language` | "en" | | `limit` | 100, max 1000 | Also takes `cursor`, `provider`, `max_credits`, `dry_run`: see [common parameters](https://www.manifoldmcp.com/docs/tools#common-parameters). ```json { "target": "competitor.com", "limit": 200 } ``` ## `seo_get_serp_competitors`: Find search competitors Domains that share search results with a target, with how many keywords overlap. SERP competitors, not business competitors. **Use when:** "who competes with example.com in search", "which sites show up for the same queries as X", choosing competitors for a keyword gap. **Not for:** the keywords themselves, use [`seo_get_keyword_gap`](https://www.manifoldmcp.com/docs/tools/seo#seo_get_keyword_gap). A single domain's strength, use [`seo_get_domain_overview`](https://www.manifoldmcp.com/docs/tools/seo#seo_get_domain_overview). **Returns:** List. `rows[]`: domain, `shared_keywords`, `avg_position`, `organic_traffic`, `organic_keywords`. Sorted by shared keywords. The target itself is excluded. **Cost:** 5 + 5 per 100 rows. Default 100 rows = 10 credits. Cached 7 days. | Parameter | Default and notes | | --- | --- | | `target` | Required | | `location` | "United States" | | `language` | "en" | | `limit` | 100, max 1000 | Also takes `cursor`, `provider`, `max_credits`, `dry_run`: see [common parameters](https://www.manifoldmcp.com/docs/tools#common-parameters). ```json { "target": "example.com", "limit": 20 } ``` ## `seo_get_keyword_gap`: Find keyword gaps Keywords one competitor ranks for in the top 100 that the target does not rank for at all. **Use when:** "what does competitor.com rank for that we do not", "find gaps against X", content opportunities from a rival. **Not for:** everything a domain ranks for, use [`seo_get_ranked_keywords`](https://www.manifoldmcp.com/docs/tools/seo#seo_get_ranked_keywords). Finding who the competitors are, use [`seo_get_serp_competitors`](https://www.manifoldmcp.com/docs/tools/seo#seo_get_serp_competitors). Fresh ideas around a topic, use [`seo_search_keywords`](https://www.manifoldmcp.com/docs/tools/seo#seo_search_keywords). **Returns:** List. `rows[]`: keyword, competitor, `competitor_rank`, `competitor_url`, volume, kd, cpc, intent. Sorted by volume. **Cost:** 5 + 5 per 100 rows. Default 100 rows = 10 credits. Cached 7 days. | Parameter | Default and notes | | --- | --- | | `target` | Required | | `competitor` | Required, one domain | | `location` | "United States" | | `language` | "en" | | `limit` | 100, max 1000 | Also takes `cursor`, `provider`, `max_credits`, `dry_run`: see [common parameters](https://www.manifoldmcp.com/docs/tools#common-parameters). ```json { "target": "example.com", "competitor": "competitor.com", "limit": 100 } ``` ## `seo_get_backlink_summary`: Get a backlink summary Link totals for a domain or page: backlinks, referring domains, dofollow share, link types and domain rank. **Use when:** "how many links does X have", "what is X's link profile like", a quick authority check alongside [`seo_get_domain_overview`](https://www.manifoldmcp.com/docs/tools/seo#seo_get_domain_overview). **Not for:** the individual links or their anchor text, use [`seo_get_backlinks`](https://www.manifoldmcp.com/docs/tools/seo#seo_get_backlinks). The sites linking, use [`seo_get_referring_domains`](https://www.manifoldmcp.com/docs/tools/seo#seo_get_referring_domains). Domain rank for many domains, use [`seo_get_domain_ratings`](https://www.manifoldmcp.com/docs/tools/seo#seo_get_domain_ratings). **Returns:** Record. target, `domain_rank` (equals [`seo_get_domain_overview`](https://www.manifoldmcp.com/docs/tools/seo#seo_get_domain_overview)'s `domain_rank`), backlinks, `referring_domains`, `referring_main_domains`, `referring_ips`, `dofollow_backlinks`, `dofollow_share` (0 to 1), `broken_backlinks`, `first_seen`, `link_types` (anchor, image, redirect, canonical counts). null = provider has no data. **Cost:** 10 credits flat. Cached 7 days. | Parameter | Default and notes | | --- | --- | | `target` | Required; a domain includes subdomains unless `include_subdomains` is false | | `include_subdomains` | True | Also takes `provider`, `max_credits`, `dry_run`: see [common parameters](https://www.manifoldmcp.com/docs/tools#common-parameters). ```json { "target": "competitor.com" } ``` ## `seo_get_backlinks`: Get backlinks Individual backlinks pointing at a domain or page, strongest referring domain first. **Use when:** "show me the links to this page", "which pages link to competitor.com", finding link sources to replicate. **Not for:** totals only, use [`seo_get_backlink_summary`](https://www.manifoldmcp.com/docs/tools/seo#seo_get_backlink_summary). One row per linking site, use [`seo_get_referring_domains`](https://www.manifoldmcp.com/docs/tools/seo#seo_get_referring_domains). Rating the linking sites, use [`seo_get_domain_ratings`](https://www.manifoldmcp.com/docs/tools/seo#seo_get_domain_ratings). **Returns:** List. `rows[]`: `url_from`, `url_to`, `domain_from`, `dr_from`, `page_title`, anchor, dofollow, type, `first_seen`, `last_seen`, lost. **Cost:** 10 + 1.5 per 100 rows. Default 100 rows = 12 credits. Cached 7 days. | Parameter | Default and notes | | --- | --- | | `target` | Required | | `include_subdomains` | True | | `limit` | 100, max 1000 | Also takes `cursor`, `provider`, `max_credits`, `dry_run`: see [common parameters](https://www.manifoldmcp.com/docs/tools#common-parameters). ```json { "target": "https://competitor.com/blog/best-crm", "limit": 50 } ``` ## `seo_get_referring_domains`: Get referring domains Domains linking to a target, one row per domain, with domain rank, link counts and spam score. **Use when:** "who links to competitor.com", "build a list of sites to pitch for links", link prospecting from a rival's profile. **Not for:** every individual link, use [`seo_get_backlinks`](https://www.manifoldmcp.com/docs/tools/seo#seo_get_backlinks). Totals, use [`seo_get_backlink_summary`](https://www.manifoldmcp.com/docs/tools/seo#seo_get_backlink_summary). Rating your own list of domains, use [`seo_get_domain_ratings`](https://www.manifoldmcp.com/docs/tools/seo#seo_get_domain_ratings). **Returns:** List. `rows[]`: domain, `domain_rank`, backlinks, `referring_pages`, `dofollow_backlinks`, `spam_score`, `first_seen`, lost. Sorted by `domain_rank`. **Cost:** 10 + 1.5 per 100 rows. Default 100 rows = 12 credits. Cached 7 days. | Parameter | Default and notes | | --- | --- | | `target` | Required | | `include_subdomains` | True | | `limit` | 100, max 1000 | Also takes `cursor`, `provider`, `max_credits`, `dry_run`: see [common parameters](https://www.manifoldmcp.com/docs/tools#common-parameters). ```json { "target": "competitor.com", "limit": 200 } ``` ## `seo_get_domain_ratings`: Get domain ratings in bulk Domain rank only, for up to 1,000 domains in one call. The cheap way to rate a list. **Use when:** "rate these domains", "which of these sites are worth a link", filtering a prospect list by authority. **Not for:** traffic numbers, use [`seo_get_traffic_estimates`](https://www.manifoldmcp.com/docs/tools/seo#seo_get_traffic_estimates) (10x the cost). A full profile of one domain, use [`seo_get_domain_overview`](https://www.manifoldmcp.com/docs/tools/seo#seo_get_domain_overview) or [`seo_get_backlink_summary`](https://www.manifoldmcp.com/docs/tools/seo#seo_get_backlink_summary). **Returns:** List. `rows[]`: domain, `domain_rank` (0 to 1000 on DataForSEO, the same kind of number as Ahrefs DR or Moz DA but not the same scale; null when the index has no data). One row per input domain in the order given. `errors[]` lists inputs that were not valid domains. **Cost:** 1 + 2.5 per 100 domains. Default 100 domains = 4 credits. Cached 7 days. | Parameter | Default and notes | | --- | --- | | `targets[]` | Required, max 1000 | Also takes `provider`, `max_credits`, `dry_run`: see [common parameters](https://www.manifoldmcp.com/docs/tools#common-parameters). ```json { "targets": [ "example.com", "competitor.com", "blog.example.net" ] } ``` ## `seo_get_traffic_estimates`: Get traffic estimates in bulk Estimated monthly organic and paid traffic for up to 1,000 domains in one call. **Use when:** "how much traffic do these sites get", comparing a list of domains by size, checking a prospect list for reach. **Not for:** authority, use [`seo_get_domain_ratings`](https://www.manifoldmcp.com/docs/tools/seo#seo_get_domain_ratings) (a tenth of the cost). One domain in depth, use [`seo_get_domain_overview`](https://www.manifoldmcp.com/docs/tools/seo#seo_get_domain_overview). **Returns:** List. `rows[]`: domain, `organic_traffic`, `organic_keywords`, `paid_traffic`. One row per input domain in the order given. null = provider has no data. `errors[]` lists inputs that were not valid domains. **Cost:** 50 + 50 per 100 domains. Default 100 domains = 100 credits. Cached 7 days. | Parameter | Default and notes | | --- | --- | | `targets[]` | Required, max 1000 | | `location` | "United States" | | `language` | "en" | Also takes `provider`, `max_credits`, `dry_run`: see [common parameters](https://www.manifoldmcp.com/docs/tools#common-parameters). ```json { "targets": [ "example.com", "competitor.com" ] } ``` ## `seo_get_page`: Get an on-page snapshot An on-page snapshot of one URL: title, meta description, canonical, robots, headings, word count, schema types and link counts. Fetched live, free. **Use when:** "check the on-page SEO of this URL", "what schema does this page use", a quick look before a crawl. **Not for:** a whole site, use [`seo_run_technical_crawl`](https://www.manifoldmcp.com/docs/tools/seo#seo_run_technical_crawl). Rankings for the page, use [`seo_get_ranked_keywords`](https://www.manifoldmcp.com/docs/tools/seo#seo_get_ranked_keywords) with the URL. What the page ranks against, use [`seo_get_serp`](https://www.manifoldmcp.com/docs/tools/seo#seo_get_serp). **Returns:** Record. url, `final_url`, status, title, `meta_description`, canonical, `robots_meta`, lang, h1[], h2[], `word_count`, `schema_types[]`, `links_internal`, `links_external`, images, `images_without_alt`. null = the tag is absent. **Cost:** 0 credits, rate limited. Cached 1 hour. | Parameter | Default and notes | | --- | --- | | `url` | Required, http or https | Also takes `max_credits`, `dry_run`: see [common parameters](https://www.manifoldmcp.com/docs/tools#common-parameters). ```json { "url": "https://example.com/pricing" } ``` ## `seo_run_technical_crawl`: Run a technical audit Crawl a site for technical SEO issues. Slow: returns a task_id, then read the result with get_task. **Use when:** "audit example.com", "crawl the site for broken links and duplicate titles", a technical health check. **Not for:** one page, use [`seo_get_page`](https://www.manifoldmcp.com/docs/tools/seo#seo_get_page). Rankings or traffic, use [`seo_get_domain_overview`](https://www.manifoldmcp.com/docs/tools/seo#seo_get_domain_overview). **Returns:** Task. `task_id` now; [`get_task`](https://www.manifoldmcp.com/docs/tools#async-tasks) returns target, `pages_requested`, `pages_crawled`, rendered, `onpage_score`, `status_codes`, `broken_links`, `broken_resources`, `non_indexable`, `duplicate_titles`, `duplicate_descriptions`, `issues[]` (check, pages, `sample_urls[]`). Results expire after 30 days. **Cost:** 3 credits per 100 pages; 30 per 100 pages rendered. The charge is on `max_pages` requested, not pages crawled. Default 1,000 pages = 30 credits. | Parameter | Default and notes | | --- | --- | | `target` | Required, a domain | | `max_pages` | Required, max 1000 on the Free plan | | `render` | False; true executes JavaScript and costs 10x | **Note:** Lighthouse is not available in this phase. Also takes `max_credits`, `dry_run`: see [common parameters](https://www.manifoldmcp.com/docs/tools#common-parameters). ```json { "target": "example.com", "max_pages": 500 } ``` Source: https://www.manifoldmcp.com/docs/tools/seo --- # AI answer tools > What ChatGPT, Claude, Gemini, Perplexity and Google's AI answers say and cite, and whether a site is ready for them. What AI engines say, and whether a site is ready for them. `chatgpt` and `gemini` are the answers their consumer apps show a person, read live from chatgpt.com and gemini.google.com. `claude` and `perplexity` are live answers from their model APIs with web search on. `ai_overview` and `ai_mode` are Google's AI answers. The data comes from DataForSEO. [`aeo_get_site_readiness`](https://www.manifoldmcp.com/docs/tools/aeo#aeo_get_site_readiness) reads the site itself and is free. A **prompt** is a question people ask an engine. A **mention** is your brand in the answer text. A **citation** is a source the engine links. For a baseline, run [`aeo_get_site_readiness`](https://www.manifoldmcp.com/docs/tools/aeo#aeo_get_site_readiness), find the prompts that matter with [`aeo_search_prompts`](https://www.manifoldmcp.com/docs/tools/aeo#aeo_search_prompts), then run them with [`aeo_run_ai_answers`](https://www.manifoldmcp.com/docs/tools/aeo#aeo_run_ai_answers) and the brands to look for. AI answers run as an [async task](https://www.manifoldmcp.com/docs/tools#async-tasks) and are never cached. | Tool | What it does | Cost | | --- | --- | --- | | [`aeo_run_ai_answers`](#aeo_run_ai_answers) | Run AI answers for a prompt | From 2 credits | | [`aeo_search_prompts`](#aeo_search_prompts) | Search AI prompts | From 30 credits | | [`aeo_get_site_readiness`](#aeo_get_site_readiness) | Get AI readiness for a site | Free | ## `aeo_run_ai_answers`: Run AI answers for a prompt What AI engines answer for a prompt, with the brands they mention and the sources they cite. Slow: returns a task_id, then read the result with get_task. **Use when:** "does ChatGPT recommend us for X", "who do AI engines cite for X", an AI visibility baseline for a brand across engines. **Not for:** which prompts people ask, use [`aeo_search_prompts`](https://www.manifoldmcp.com/docs/tools/aeo#aeo_search_prompts). Google's ten blue links, use [`seo_get_serp`](https://www.manifoldmcp.com/docs/tools/seo#seo_get_serp) (`ai_overview`: true adds the overview to it at 1 credit). Whether a site is ready for AI crawlers, use [`aeo_get_site_readiness`](https://www.manifoldmcp.com/docs/tools/aeo#aeo_get_site_readiness). **Returns:** Task. `task_id` now; [`get_task`](https://www.manifoldmcp.com/docs/tools#async-tasks) returns `prompts[]`, `engines[]`, `brands[]`, `rows[]` (prompt, engine, model, answer, `mentions[]` (brand, mentioned, position, cited), `citations[]` (position, url, domain, title), `answered_at`) and `errors[]` for cells that failed. answer null = the engine showed no AI answer. chatgpt and gemini are what their apps show a person, model chosen by the app; claude and perplexity come from their model APIs. Answers are live and non-deterministic; results are kept 30 days and never cached. **Cost:** per prompt, 6 credits each for claude and perplexity, 2 each for chatgpt, gemini, `ai_overview` and `ai_mode`. Default 1 prompt on the five default engines = 18 credits. A cell that fails is not charged. | Parameter | Default and notes | | --- | --- | | `prompts[]` | Required, max 10, each max 500 characters | | `engines[]` | Default chatgpt, claude, gemini, perplexity, `ai_overview`; also `ai_mode` | | `brands[]` | Names or domains to detect, max 10 | | `location` | "United States" | | `language` | "en" | Also takes `max_credits`, `dry_run`: see [common parameters](https://www.manifoldmcp.com/docs/tools#common-parameters). ```json { "prompts": [ "best crm for startups" ], "brands": [ "HubSpot", "pipedrive.com" ] } ``` ## `aeo_search_prompts`: Search AI prompts Prompts people ask an AI engine (ChatGPT or Google AI Overview) about a topic or brand, from the provider's index of observed answers. Not keywords. **Use when:** "what do people ask ChatGPT about X", "which prompts mention our brand", building an AI visibility baseline. **Not for:** Google keywords and volumes, use [`seo_search_keywords`](https://www.manifoldmcp.com/docs/tools/seo#seo_search_keywords). What the AI engines answer right now, use [`aeo_run_ai_answers`](https://www.manifoldmcp.com/docs/tools/aeo#aeo_run_ai_answers). Web pages to read, use `web_search_pages`. **Returns:** List. `rows[]`: prompt, `ai_search_volume` (a People Also Ask proxy, not query logs), `engines[]`, `mentions_brand` (a domain input is cited, a keyword input appears in the answer), `cited_domains[]`, `answer_preview`, `last_seen`. **Cost:** 30 + 30 per 100 rows. Default 50 rows = 45 credits. Cached 7 days. | Parameter | Default and notes | | --- | --- | | `keyword` or `domain` | One required | | `engine` | "chatgpt" \| "`ai_overview`", default chatgpt | | `location` | "United States" | | `language` | "en" | | `limit` | 50, max 500 | Also takes `cursor`, `provider`, `max_credits`, `dry_run`: see [common parameters](https://www.manifoldmcp.com/docs/tools#common-parameters). ```json { "domain": "example.com", "limit": 50 } ``` ## `aeo_get_site_readiness`: Get AI readiness for a site Whether a site is set up for AI answer engines, from about seventeen live fetches of its origin, free. Checks what the engines document as gating their answers: robots.txt access for every known AI crawler (search, user fetch, training), CDN or WAF rules that turn away the answer crawlers' user agents before robots.txt is read, content present in the raw HTML without JavaScript on the homepage and on one page sampled from the sitemap, noindex and snippet directives, then freshness signals, redirect chains, sitemap, title and description, structured data, and llms.txt. **Use when:** "is our site ready for AI search", "do we block GPTBot", "are we blocking ChatGPT at Cloudflare", "do we have an llms.txt", before an AI visibility push. **Not for:** what the engines answer, use [`aeo_run_ai_answers`](https://www.manifoldmcp.com/docs/tools/aeo#aeo_run_ai_answers). A full technical audit, use [`seo_run_technical_crawl`](https://www.manifoldmcp.com/docs/tools/seo#seo_run_technical_crawl). One page's on-page tags, use [`seo_get_page`](https://www.manifoldmcp.com/docs/tools/seo#seo_get_page). **Returns:** Record. `checks[]` (check, ok, tier, detail, source) with failing checks first. tier says how much a check is worth: `blocks_citations` is documented by an engine, `evidence_backed` is measured, hygiene is standard practice, policy is a legitimate choice that never fails, unproven is reported but never fails on absence (llms.txt, schema presence). Plus `robots_txt` (`ai_bots[]` with kind and `honours_robots`, sitemaps, `content_signal`), edge (`probes[]` per answer crawler user agent), homepage (status, `response_ms`, `word_count` and `js_shell` from the raw HTML, canonical, `robots_meta`, `x_robots_tag`, `schema_types`, `same_as`, `date_modified`, `last_modified_header`), `sample_page` (the same rendering and date fields for the first content URL in the sitemap, null when there is none), markdown (whether the origin answers Accept: text/markdown with the content, which passes the JavaScript check), `redirects[]`, sitemap, `llms_txt` (present, `issues[]`), `llms_full_txt`. No crawl, no LLM call. **Cost:** 0 credits, rate limited. Cached 1 hour. | Parameter | Default and notes | | --- | --- | | `target` | Required, a domain or URL; fetches go to its origin | Also takes `max_credits`, `dry_run`: see [common parameters](https://www.manifoldmcp.com/docs/tools#common-parameters). ```json { "target": "example.com" } ``` Source: https://www.manifoldmcp.com/docs/tools/aeo --- # People and company tools > People and companies, and finding and verifying work emails. Every reveal is charged. Companies and people from Apollo, and work emails found and checked. A domain's addresses come from Hunter. One person's email comes from a waterfall of Findymail, Hunter and Icypeas, and Icypeas verifies it. Person records never carry an email. There are two ways to get one: [`leads_get_email`](https://www.manifoldmcp.com/docs/tools/leads#leads_get_email) for one person, and [`leads_get_domain_emails`](https://www.manifoldmcp.com/docs/tools/leads#leads_get_domain_emails) for a domain. An email search that finds nothing costs 1 credit, not the full price. For a target list: [`leads_search_companies`](https://www.manifoldmcp.com/docs/tools/leads#leads_search_companies), then [`leads_search_people`](https://www.manifoldmcp.com/docs/tools/leads#leads_search_people) by title, then [`leads_get_email`](https://www.manifoldmcp.com/docs/tools/leads#leads_get_email) for each person worth contacting. | Tool | What it does | Cost | | --- | --- | --- | | [`leads_search_companies`](#leads_search_companies) | Search companies | From 10 credits | | [`leads_get_company`](#leads_get_company) | Get a company profile | From 10 credits | | [`leads_search_people`](#leads_search_people) | Search people | From 1 credit | | [`leads_get_person`](#leads_get_person) | Get a person profile | From 10 credits | | [`leads_get_email`](#leads_get_email) | Find a person's work email | From 6 credits | | [`leads_get_email_status`](#leads_get_email_status) | Verify an email address | From 1 credit | | [`leads_get_domain_emails`](#leads_get_domain_emails) | Get a domain's email addresses | From 2 credits | ## `leads_search_companies`: Search companies Companies matching a name, keywords, location or headcount, as stubs. **Use when:** "find fintech companies in London with 50 to 200 staff", "companies that do X", building an account list by firmographics. **Not for:** one known company, use [`leads_get_company`](https://www.manifoldmcp.com/docs/tools/leads#leads_get_company) (by domain). People at companies, use [`leads_search_people`](https://www.manifoldmcp.com/docs/tools/leads#leads_search_people). A site's traffic, use [`seo_get_domain_overview`](https://www.manifoldmcp.com/docs/tools/seo#seo_get_domain_overview). **Returns:** List. `rows[]`: id, name, domain, website, `linkedin_url`, `founded_year`; industry, employees and location are null on a search and filled by [`leads_get_company`](https://www.manifoldmcp.com/docs/tools/leads#leads_get_company). `rows_available` is the provider's total. **Cost:** 10 credits per page of 100. Default 10 credits. Cached 30 days. | Parameter | Default and notes | | --- | --- | | `name` | Optional | | `keywords[]` | Optional | | `industries[]` | Optional | | `locations[]` | Optional | | `employee_ranges[]` | "min,max" | | `limit` | 100 | **Note:** At least one of them. Also takes `cursor`, `provider`, `max_credits`, `dry_run`: see [common parameters](https://www.manifoldmcp.com/docs/tools#common-parameters). ```json { "keywords": [ "payments" ], "locations": [ "London" ], "employee_ranges": [ "51,200" ] } ``` ## `leads_get_company`: Get a company profile The full firmographic record of one company, by domain. **Use when:** "tell me about acme.com", sizing a company, the industry, revenue and funding stage behind a domain, filling in a search stub. **Not for:** search traffic and rankings, use [`seo_get_domain_overview`](https://www.manifoldmcp.com/docs/tools/seo#seo_get_domain_overview). Who works there, use [`leads_search_people`](https://www.manifoldmcp.com/docs/tools/leads#leads_search_people). Email addresses, use [`leads_get_domain_emails`](https://www.manifoldmcp.com/docs/tools/leads#leads_get_domain_emails). **Returns:** Record. id, name, domain, website, `linkedin_url`, industry, `industries[]`, employees, location, `founded_year`, description, `keywords[]`, revenue (USD), `total_funding` (USD), `funding_stage`, `technologies[]`, phone, ticker. null = the provider does not hold it. NoData when the provider does not know the domain. **Cost:** 10 credits, 1 on NoData. Cached 30 days. | Parameter | Default and notes | | --- | --- | | `domain` | Required | Also takes `provider`, `max_credits`, `dry_run`: see [common parameters](https://www.manifoldmcp.com/docs/tools#common-parameters). ```json { "domain": "acme.com" } ``` ## `leads_search_people`: Search people People matching title, seniority and company filters, as stubs. No email. **Use when:** "find heads of marketing at fintech startups", building a target list by role, prospecting by ICP. **Not for:** someone to email at a specific website about a link, use [`leads_get_domain_emails`](https://www.manifoldmcp.com/docs/tools/leads#leads_get_domain_emails) (keyed by domain). One person's full record, use [`leads_get_person`](https://www.manifoldmcp.com/docs/tools/leads#leads_get_person). An email for a named person, use [`leads_get_email`](https://www.manifoldmcp.com/docs/tools/leads#leads_get_email). **Returns:** List. `rows[]`: id, `first_name`, `last_name` (masked on a search; [`leads_get_person`](https://www.manifoldmcp.com/docs/tools/leads#leads_get_person) reveals it), title, company, `has_email` ([`leads_get_email`](https://www.manifoldmcp.com/docs/tools/leads#leads_get_email) can reveal it). seniority, `company_domain`, location and `linkedin_url` are null on a search and filled by [`leads_get_person`](https://www.manifoldmcp.com/docs/tools/leads#leads_get_person). `rows_available` is the provider's total. **Cost:** 1 credit per page of 100. Default 1 credit. Cached 7 days. | Parameter | Default and notes | | --- | --- | | `titles[]` | Optional | | `seniority[]` | Junior \| senior \| executive | | `company_domains[]` | Optional | | `industries[]` | Optional | | `locations[]` | Optional | | `keywords` | Optional | | `limit` | 100 | **Note:** At least one of them. Also takes `cursor`, `provider`, `max_credits`, `dry_run`: see [common parameters](https://www.manifoldmcp.com/docs/tools#common-parameters). ```json { "titles": [ "head of marketing" ], "industries": [ "fintech" ], "locations": [ "London" ], "limit": 50 } ``` ## `leads_get_person`: Get a person profile The full record of one person: real name, title, seniority, company, location, LinkedIn and employment history. No email. **Use when:** filling in a search stub by id, "who is the head of growth at acme.com", checking a person's current role before outreach. **Not for:** the email, use [`leads_get_email`](https://www.manifoldmcp.com/docs/tools/leads#leads_get_email) (the paid reveal). Many people at once, use [`leads_search_people`](https://www.manifoldmcp.com/docs/tools/leads#leads_search_people). **Returns:** Record. id, `first_name`, `last_name`, title, seniority, company, `company_domain`, `company_id`, `company_linkedin_url`, location, `linkedin_url`, headline, `has_email`, `employment_history[]` (company, title, start, end, current). NoData when nobody matches. **Cost:** 10 credits when matched, 1 on NoData. Cached 30 days. | Parameter | Default and notes | | --- | --- | | `id` or `first_name` + `last_name` + `domain` or `linkedin_url` | `id`: from [`leads_search_people`](https://www.manifoldmcp.com/docs/tools/leads#leads_search_people) | Also takes `provider`, `max_credits`, `dry_run`: see [common parameters](https://www.manifoldmcp.com/docs/tools#common-parameters). ```json { "first_name": "Jordan", "last_name": "Blake", "domain": "northstaranalytics.io" } ``` ## `leads_get_email`: Find a person's work email Find and verify the work email of one named person. The only paid reveal keyed by a person; it runs a waterfall of sources and stops at the first verified hit. **Use when:** you have a person and their company and need an address to send to, "get me the email of Jordan Blake at acme.com", after [`leads_search_people`](https://www.manifoldmcp.com/docs/tools/leads#leads_search_people) showed `has_email`. **Not for:** anyone at a website (no name), use [`leads_get_domain_emails`](https://www.manifoldmcp.com/docs/tools/leads#leads_get_domain_emails). Checking an address you already hold, use [`leads_get_email_status`](https://www.manifoldmcp.com/docs/tools/leads#leads_get_email_status). The person's role and history, use [`leads_get_person`](https://www.manifoldmcp.com/docs/tools/leads#leads_get_person). **Returns:** Record. `first_name`, `last_name`, domain, email, confidence (0 to 100 or null), `verification_status` (valid | `accept_all` | invalid | unknown), `found_by` (the source that hit). NoData when no source finds one; do not retry. **Cost:** 6 credits on a hit, 1 on NoData. Cached 90 days. | Parameter | Default and notes | | --- | --- | | `id` or `first_name` + `last_name` + `domain` | `id`: a person id, which also fills the name and domain | Also takes `provider`, `max_credits`, `dry_run`: see [common parameters](https://www.manifoldmcp.com/docs/tools#common-parameters). ```json { "first_name": "Jordan", "last_name": "Blake", "domain": "acme.com" } ``` ## `leads_get_email_status`: Verify an email address Whether an email address the user already has will deliver. **Use when:** "is jane@acme.com still valid", cleaning a list before a send, checking a shortlist from [`leads_get_domain_emails`](https://www.manifoldmcp.com/docs/tools/leads#leads_get_domain_emails). **Not for:** finding an address, use [`leads_get_email`](https://www.manifoldmcp.com/docs/tools/leads#leads_get_email) or [`leads_get_domain_emails`](https://www.manifoldmcp.com/docs/tools/leads#leads_get_domain_emails). **Returns:** Record. email, status (valid | invalid | `accept_all` | unknown; `accept_all` means the server takes anything, so the address is unproven), result (deliverable | undeliverable | risky | unknown), score (0 to 100), disposable, webmail, `mx_records`, `smtp_check`. null = the verifier does not report it. **Cost:** 1 credit. Cached 30 days. | Parameter | Default and notes | | --- | --- | | `email` | Required | Also takes `provider`, `max_credits`, `dry_run`: see [common parameters](https://www.manifoldmcp.com/docs/tools#common-parameters). ```json { "email": "jane@acme.com" } ``` ## `leads_get_domain_emails`: Get a domain's email addresses Email addresses known for a website's domain, with name, role, confidence and where each was seen. The contact-finding tool for link outreach. **Use when:** "find someone to email at these sites about a backlink", "who runs content at example.com", "get contacts for the referring domains of X". **Not for:** one named person, use [`leads_get_email`](https://www.manifoldmcp.com/docs/tools/leads#leads_get_email). People by title across many companies, use [`leads_search_people`](https://www.manifoldmcp.com/docs/tools/leads#leads_search_people). Checking an address works, use [`leads_get_email_status`](https://www.manifoldmcp.com/docs/tools/leads#leads_get_email_status). Choosing which sites to contact, use [`seo_get_referring_domains`](https://www.manifoldmcp.com/docs/tools/seo#seo_get_referring_domains), [`seo_get_backlinks`](https://www.manifoldmcp.com/docs/tools/seo#seo_get_backlinks), [`seo_get_domain_ratings`](https://www.manifoldmcp.com/docs/tools/seo#seo_get_domain_ratings). **Returns:** List, highest confidence first. `rows[]`: domain, email, `first_name`, `last_name`, position, department, seniority, type (personal | generic), confidence (0 to 100), `verification_status`, `sources[]` (url, `last_seen_at`; empty = inferred from the domain's pattern), `linkedin_url`. `domains[]`: domain, pattern (the address format, for example {first}.{last}), organization, `rows_available`. `errors[]` lists domains that failed. Addresses come back unverified for the most part; verify the shortlist with [`leads_get_email_status`](https://www.manifoldmcp.com/docs/tools/leads#leads_get_email_status), not the whole list. **Cost:** 2 credits per domain + 6 per 10 addresses returned. Default one domain with 30 addresses = 20 credits. Cached 30 days. | Parameter | Default and notes | | --- | --- | | `domains[]` | Required, max 20 | | `department[]` | All; outreach usually wants editorial, marketing, communication | | `seniority[]` | All | | `type` | "all"; generic means role addresses such as press@, often the only working one on a small site | | `limit` | 30 per domain, cap 100 | Also takes `cursor`, `provider`, `max_credits`, `dry_run`: see [common parameters](https://www.manifoldmcp.com/docs/tools#common-parameters). ```json { "domains": [ "example.com" ], "department": [ "marketing", "communication" ], "type": "all" } ``` Source: https://www.manifoldmcp.com/docs/tools/leads --- # Ad library tools > Ads running in the platforms' public ad libraries, by keyword, brand or advertiser. The ads in the public ad libraries of Meta, TikTok, LinkedIn and Google, by keyword, brand or advertiser. Each call costs what the data provider charges for it, usually 1 credit. For a teardown of one competitor, use [`ads_get_advertiser_ads`](https://www.manifoldmcp.com/docs/tools/ads#ads_get_advertiser_ads) (on Google, find the advertiser with [`ads_search_advertisers`](https://www.manifoldmcp.com/docs/tools/ads#ads_search_advertisers) first), then [`ads_get_ad`](https://www.manifoldmcp.com/docs/tools/ads#ads_get_ad) for the offer and the destination. | Tool | What it does | Cost | | --- | --- | --- | | [`ads_search_ads`](#ads_search_ads) | Search ads | From 1 credit | | [`ads_search_advertisers`](#ads_search_advertisers) | Find advertisers | From 1 credit | | [`ads_get_advertiser_ads`](#ads_get_advertiser_ads) | Get an advertiser's ads | From 1 credit | | [`ads_get_ad`](#ads_get_ad) | Get an ad | From 1 credit | ## `ads_search_ads`: Search ads Ads running on a platform's public library, by keyword or brand. **Use when:** "what ads is this category running", finding the angles and offers competitors are paying for. **Not for:** one advertiser's whole set, use [`ads_get_advertiser_ads`](https://www.manifoldmcp.com/docs/tools/ads#ads_get_advertiser_ads). Google, whose library is keyed by advertiser: use [`ads_search_advertisers`](https://www.manifoldmcp.com/docs/tools/ads#ads_search_advertisers) first. Organic posts, use the platform's own search tool. **Returns:** List, one page per call. `rows[]`: platform, id, url, advertiser, `advertiser_id`, headline, body, format, `first_shown`, `last_shown`, active, impressions, spend, countries, placements (where it ran: facebook, instagram), cta, `destination_url`, `media_url`. Impressions and spend are the ranges the library publishes, so they are text. meta.cursor pages the next set. **Cost:** 1 credit per page. Cached 24 hours. | Parameter | Default and notes | | --- | --- | | `platform` | Required, "facebook" \| "tiktok" \| "linkedin" | | `query` | Required | | `country` | Optional, an ISO code | | `active_only` | False | Also takes `cursor`, `provider`, `max_credits`, `dry_run`: see [common parameters](https://www.manifoldmcp.com/docs/tools#common-parameters). ```json { "platform": "facebook", "query": "creatine gummies", "active_only": true } ``` ## `ads_search_advertisers`: Find advertisers The advertisers matching a brand name in Google's ad library, with their ids. **Use when:** before [`ads_get_advertiser_ads`](https://www.manifoldmcp.com/docs/tools/ads#ads_get_advertiser_ads) on Google, because that library is keyed by advertiser id and one brand has one entry per region. **Not for:** the ads themselves, use [`ads_get_advertiser_ads`](https://www.manifoldmcp.com/docs/tools/ads#ads_get_advertiser_ads) with the id this returns. The other libraries, which search their ads directly with [`ads_search_ads`](https://www.manifoldmcp.com/docs/tools/ads#ads_search_ads). **Returns:** List. `rows[]`: platform, id, name, region, `ads_estimate`, website. **Cost:** 1 credit. Cached 7 days. | Parameter | Default and notes | | --- | --- | | `platform` | Required, "google" | | `query` | Required, a brand name | | `region` | Optional, an ISO country code | Also takes `provider`, `max_credits`, `dry_run`: see [common parameters](https://www.manifoldmcp.com/docs/tools#common-parameters). ```json { "platform": "google", "query": "lululemon", "region": "US" } ``` ## `ads_get_advertiser_ads`: Get an advertiser's ads Every ad one advertiser is running, from a platform's public library. **Use when:** a competitor teardown: what they are running, since when, and with what offer. **Not for:** a keyword sweep across advertisers, use [`ads_search_ads`](https://www.manifoldmcp.com/docs/tools/ads#ads_search_ads). One creative in full, use [`ads_get_ad`](https://www.manifoldmcp.com/docs/tools/ads#ads_get_ad). **Returns:** List, one page per call. `rows[]`: platform, id, url, advertiser, `advertiser_id`, headline, body, format, `first_shown`, `last_shown`, active, impressions, spend, countries, placements (where it ran: facebook, instagram), cta, `destination_url`, `media_url`. Impressions and spend are the ranges the library publishes, so they are text. meta.cursor pages the next set. **Cost:** 1 credit per page, or 25 on google with details. Cached 24 hours. | Parameter | Default and notes | | --- | --- | | `platform` | Required, "facebook" \| "tiktok" \| "linkedin" \| "google" | | `advertiser` | Required: a page id or name on facebook, an advertiser name on tiktok, a company name or id on linkedin, a domain or advertiser id on google | | `country` | Optional | | `active_only` | False | | `details` | False; google only, adds the creative text and costs 25 credits | Also takes `cursor`, `provider`, `max_credits`, `dry_run`: see [common parameters](https://www.manifoldmcp.com/docs/tools#common-parameters). ```json { "platform": "google", "advertiser": "lululemon.com" } ``` ## `ads_get_ad`: Get an ad One ad from a platform's public library, with its creative text and where it sends people. **Use when:** reading the offer and the call to action behind an ad you found in a list. **Not for:** a set of ads, use [`ads_search_ads`](https://www.manifoldmcp.com/docs/tools/ads#ads_search_ads) or [`ads_get_advertiser_ads`](https://www.manifoldmcp.com/docs/tools/ads#ads_get_advertiser_ads). What is said in an ad video, use the platform's transcript tool. **Returns:** Record. `rows[]`: platform, id, url, advertiser, `advertiser_id`, headline, body, format, `first_shown`, `last_shown`, active, impressions, spend, countries, placements (where it ran: facebook, instagram), cta, `destination_url`, `media_url`. Impressions and spend are the ranges the library publishes, so they are text. **Cost:** 1 credit. Cached 7 days. | Parameter | Default and notes | | --- | --- | | `platform` | Required, "facebook" \| "tiktok" \| "linkedin" \| "google" | | `id` | Required: an ad id on facebook and tiktok, the ad URL on linkedin and google | Also takes `provider`, `max_credits`, `dry_run`: see [common parameters](https://www.manifoldmcp.com/docs/tools#common-parameters). ```json { "platform": "facebook", "id": "1185617869915074" } ``` Source: https://www.manifoldmcp.com/docs/tools/ads --- # Reddit tools > Posts, comments and communities: search across Reddit, or watch what appears in a subreddit. Posts, comments and communities on Reddit. Search is ranked and never complete. [`reddit_get_new_posts`](https://www.manifoldmcp.com/docs/tools/reddit#reddit_get_new_posts) is different: it returns everything posted in a window, says how much of the window it covered, and is never cached. To listen to a topic, find communities with [`reddit_search_subreddits`](https://www.manifoldmcp.com/docs/tools/reddit#reddit_search_subreddits), read their rules with [`reddit_get_subreddit`](https://www.manifoldmcp.com/docs/tools/reddit#reddit_get_subreddit), then call [`reddit_get_new_posts`](https://www.manifoldmcp.com/docs/tools/reddit#reddit_get_new_posts) with your match terms. Send `next_since` back as `since` on the next check, and drop posts you have already seen by `id`. | Tool | What it does | Cost | | --- | --- | --- | | [`reddit_search_posts`](#reddit_search_posts) | Search Reddit posts | From 1 credit | | [`reddit_search_comments`](#reddit_search_comments) | Search Reddit comments | From 1 credit | | [`reddit_get_new_posts`](#reddit_get_new_posts) | Get new posts in subreddits | From 1 credit | | [`reddit_get_post`](#reddit_get_post) | Get a Reddit post | From 1 credit | | [`reddit_get_comments`](#reddit_get_comments) | Get a thread's comments | From 1 credit | | [`reddit_search_subreddits`](#reddit_search_subreddits) | Find subreddits for a topic | From 1 credit | | [`reddit_get_subreddit`](#reddit_get_subreddit) | Get a subreddit | From 1 credit | ## `reddit_search_posts`: Search Reddit posts Reddit posts matching a query, ranked by the search, across all of Reddit or inside one community. **Use when:** "what do people on Reddit say about X", "find threads complaining about Y", "who is asking for a tool like ours". **Not for:** everything new in a community since you last looked, use [`reddit_get_new_posts`](https://www.manifoldmcp.com/docs/tools/reddit#reddit_get_new_posts) (ranked search is never complete). Reading one thread, use [`reddit_get_post`](https://www.manifoldmcp.com/docs/tools/reddit#reddit_get_post) and [`reddit_get_comments`](https://www.manifoldmcp.com/docs/tools/reddit#reddit_get_comments). Choosing communities to watch, use [`reddit_search_subreddits`](https://www.manifoldmcp.com/docs/tools/reddit#reddit_search_subreddits). **Returns:** List, one page per call, ranked, not exhaustive. `rows[]`: id, subreddit, title, author, `created_at`, score, comments, `upvote_ratio`, url, `link_url`, body (cut at 2000 characters), flair, `over_18`. meta.cursor pages the next set. **Cost:** 1 credit per call, one page. Cached 1 hour. | Parameter | Default and notes | | --- | --- | | `query` | Required, 2 to 200 characters | | `subreddit` | Optional, search one community | | `sort` | "relevance" \| "new" \| "top" \| "`comment_count`", default relevance | | `time_range` | "all" \| "day" \| "week" \| "month" \| "year", default all | Also takes `cursor`, `provider`, `max_credits`, `dry_run`: see [common parameters](https://www.manifoldmcp.com/docs/tools#common-parameters). ```json { "query": "hubspot alternative", "sort": "new", "time_range": "month" } ``` ## `reddit_search_comments`: Search Reddit comments Reddit comments matching a query, ranked by the search, across all of Reddit or inside one community. **Use when:** "what do people reply when someone asks about X", "find recommendations of a competitor inside threads", mining opinions rather than thread titles. **Not for:** thread titles and bodies, use [`reddit_search_posts`](https://www.manifoldmcp.com/docs/tools/reddit#reddit_search_posts). Every comment on one thread, use [`reddit_get_comments`](https://www.manifoldmcp.com/docs/tools/reddit#reddit_get_comments). New activity in a community, use [`reddit_get_new_posts`](https://www.manifoldmcp.com/docs/tools/reddit#reddit_get_new_posts). **Returns:** List, one page per call, ranked, not exhaustive. `rows[]`: id, `post_id`, subreddit, author, `created_at`, score, body (cut at 2000 characters), url, depth. meta.cursor pages the next set. **Cost:** 1 credit per call, one page. Cached 1 hour. | Parameter | Default and notes | | --- | --- | | `query` | Required, 2 to 200 characters | | `subreddit` | Optional, search one community | | `sort` | "relevance" \| "new" \| "top" \| "`comment_count`", default relevance | | `time_range` | "all" \| "day" \| "week" \| "month" \| "year", default all | Also takes `cursor`, `provider`, `max_credits`, `dry_run`: see [common parameters](https://www.manifoldmcp.com/docs/tools#common-parameters). ```json { "query": "best crm for a two person team", "time_range": "year" } ``` ## `reddit_get_new_posts`: Get new posts in subreddits Every post created in the given subreddits inside a time window, oldest first. The check-in tool: complete for the window it reports, unlike search. **Use when:** "anything new in r/startups since yesterday", "watch these subreddits for mentions of our category", any repeated look at the same communities. **Not for:** keyword search across all of Reddit, use [`reddit_search_posts`](https://www.manifoldmcp.com/docs/tools/reddit#reddit_search_posts) (ranked, not complete). Reading a thread, use [`reddit_get_post`](https://www.manifoldmcp.com/docs/tools/reddit#reddit_get_post) and [`reddit_get_comments`](https://www.manifoldmcp.com/docs/tools/reddit#reddit_get_comments). Choosing which subreddits to watch, use [`reddit_search_subreddits`](https://www.manifoldmcp.com/docs/tools/reddit#reddit_search_subreddits). **Returns:** List, oldest first. `rows[]`: id, subreddit, title, author, `created_at`, score, comments, `upvote_ratio`, url, `link_url`, body, flair, `over_18`. `coverage[]` per subreddit: `covered_from`, complete, `pages_fetched`. `covered_from` later than since, or complete false, means the window was cut: raise pages, shorten since, or pass meta.cursor. `next_since` is the value to send as since next time; it overlaps by two minutes, so dedupe rows on id. **Cost:** 1 credit per subreddit per page. Three subreddits at the default is 3 credits. Never cached. | Parameter | Default and notes | | --- | --- | | `subreddits[]` | Required, up to 10 | | `since` | "24h"; "30m", "6h", "2d" or an ISO 8601 timestamp, max 7 days | | `pages` | 1 to 3, default 1, per subreddit | | `match[]` | Optional terms; keeps posts whose title or body holds one, case insensitive | Also takes `cursor`, `provider`, `max_credits`, `dry_run`: see [common parameters](https://www.manifoldmcp.com/docs/tools#common-parameters). ```json { "subreddits": [ "startups", "SaaS" ], "since": "24h", "match": [ "crm", "pipeline" ] } ``` ## `reddit_get_post`: Get a Reddit post One Reddit thread in full: the whole post body, its score, its flair and how big the community is. **Use when:** a row from a search or a check-in is worth reading properly, or you need the full text a row cut at 2000 characters. **Not for:** the replies, use [`reddit_get_comments`](https://www.manifoldmcp.com/docs/tools/reddit#reddit_get_comments). Finding threads in the first place, use [`reddit_search_posts`](https://www.manifoldmcp.com/docs/tools/reddit#reddit_search_posts) or [`reddit_get_new_posts`](https://www.manifoldmcp.com/docs/tools/reddit#reddit_get_new_posts). **Returns:** Record. id, subreddit, title, author, `created_at`, score, comments, `upvote_ratio`, url, `link_url`, body (full), flair, `over_18`, `subreddit_subscribers`, locked, archived. **Cost:** 1 credit. Cached 1 hour. | Parameter | Default and notes | | --- | --- | | `url` | Required, the thread URL from a row's url | Also takes `provider`, `max_credits`, `dry_run`: see [common parameters](https://www.manifoldmcp.com/docs/tools#common-parameters). ```json { "url": "https://www.reddit.com/r/startups/comments/1lfbo7u/what_crm_do_you_use/" } ``` ## `reddit_get_comments`: Get a thread's comments The comments on one Reddit thread, flattened in reading order with their reply depth. **Use when:** "what did people reply", judging whether a thread is worth answering, pulling the objections out of a discussion. **Not for:** comments across many threads, use [`reddit_search_comments`](https://www.manifoldmcp.com/docs/tools/reddit#reddit_search_comments). The post itself, use [`reddit_get_post`](https://www.manifoldmcp.com/docs/tools/reddit#reddit_get_post). **Returns:** List, in reading order: a reply follows the comment it answers. `rows[]`: id, `post_id`, subreddit, author, `created_at`, score, body (cut at 2000 characters), url, depth (0 is top level). meta.cursor loads more of the thread. **Cost:** 1 credit per call, one page of the thread. Cached 1 hour. | Parameter | Default and notes | | --- | --- | | `url` | Required, the thread URL from a row's url | Also takes `cursor`, `provider`, `max_credits`, `dry_run`: see [common parameters](https://www.manifoldmcp.com/docs/tools#common-parameters). ```json { "url": "https://www.reddit.com/r/startups/comments/1lfbo7u/what_crm_do_you_use/" } ``` ## `reddit_search_subreddits`: Find subreddits for a topic The communities that discuss a topic, counted from one page of search results. **Use when:** "which subreddits talk about X", picking the communities to pass to [`reddit_get_new_posts`](https://www.manifoldmcp.com/docs/tools/reddit#reddit_get_new_posts), sizing where a conversation happens. **Not for:** a full directory of subreddits about a topic (this counts a sample of posts, so a quiet community can be missing). One community's rules and size, use [`reddit_get_subreddit`](https://www.manifoldmcp.com/docs/tools/reddit#reddit_get_subreddit). The posts themselves, use [`reddit_search_posts`](https://www.manifoldmcp.com/docs/tools/reddit#reddit_search_posts). **Returns:** List, most posts in the sample first. `rows[]`: name, url, subscribers, `posts_in_sample`, `example_post_url`. **Cost:** 1 credit. Cached 1 hour. | Parameter | Default and notes | | --- | --- | | `query` | Required, 2 to 200 characters | | `time_range` | "all" \| "day" \| "week" \| "month" \| "year", default all | Also takes `provider`, `max_credits`, `dry_run`: see [common parameters](https://www.manifoldmcp.com/docs/tools#common-parameters). ```json { "query": "cold email deliverability", "time_range": "year" } ``` ## `reddit_get_subreddit`: Get a subreddit One community: how big it is, how busy it is, and the rules it posts, as the moderators wrote them. **Use when:** before you post or reply anywhere, to read the rules on self promotion; sizing a community found by [`reddit_search_subreddits`](https://www.manifoldmcp.com/docs/tools/reddit#reddit_search_subreddits). **Not for:** the posts in the community, use [`reddit_get_new_posts`](https://www.manifoldmcp.com/docs/tools/reddit#reddit_get_new_posts) or [`reddit_search_posts`](https://www.manifoldmcp.com/docs/tools/reddit#reddit_search_posts). Finding communities, use [`reddit_search_subreddits`](https://www.manifoldmcp.com/docs/tools/reddit#reddit_search_subreddits). **Returns:** Record. name, url, subscribers, `weekly_active_users`, `weekly_contributions`, description, rules (the text as written; read it, it is not parsed into flags), `submit_text`, `created_at`. **Cost:** 1 credit. Cached 7 days. | Parameter | Default and notes | | --- | --- | | `subreddit` | Required, the name without the r/ prefix, for example "startups" | Also takes `provider`, `max_credits`, `dry_run`: see [common parameters](https://www.manifoldmcp.com/docs/tools#common-parameters). ```json { "subreddit": "SaaS" } ``` Source: https://www.manifoldmcp.com/docs/tools/reddit --- # TikTok tools > Accounts, videos, comments, transcripts, followers and audiences. Public TikTok data. Each call costs what the data provider charges for it, and the cost line under each tool below gives the number. A question TikTok cannot answer has no tool, rather than a tool that returns nothing. To check a creator, get the profile, then their videos, then [`tiktok_get_audience`](https://www.manifoldmcp.com/docs/tools/tiktok#tiktok_get_audience) for where their audience is, by country. | Tool | What it does | Cost | | --- | --- | --- | | [`tiktok_get_profile`](#tiktok_get_profile) | Get a TikTok account | From 1 credit | | [`tiktok_get_videos`](#tiktok_get_videos) | Get an account's videos | From 1 credit | | [`tiktok_get_video`](#tiktok_get_video) | Get a TikTok video | From 10 credits | | [`tiktok_get_comments`](#tiktok_get_comments) | Get a video's comments | From 1 credit | | [`tiktok_search_videos`](#tiktok_search_videos) | Search TikTok videos | From 1 credit | | [`tiktok_get_transcript`](#tiktok_get_transcript) | Get a video's transcript | From 1 credit | | [`tiktok_get_followers`](#tiktok_get_followers) | Get an account's followers | From 1 credit | | [`tiktok_get_audience`](#tiktok_get_audience) | Get an account's audience | From 26 credits | ## `tiktok_get_profile`: Get a TikTok account One TikTok account: its follower count, its lifetime likes and how many videos it has posted. **Use when:** sizing a creator or a brand on TikTok, checking a handle is real, reading a bio before outreach. **Not for:** the account's videos, use [`tiktok_get_videos`](https://www.manifoldmcp.com/docs/tools/tiktok#tiktok_get_videos). Where its audience is, use [`tiktok_get_audience`](https://www.manifoldmcp.com/docs/tools/tiktok#tiktok_get_audience). Finding accounts by topic, use [`tiktok_search_videos`](https://www.manifoldmcp.com/docs/tools/tiktok#tiktok_search_videos) and read the authors. **Returns:** Record. platform, kind, id, handle, name, url, bio, verified, followers, following, `posts_count`, likes, views, location, website, employees, industry, `created_at`. A field the platform does not publish is null. **Cost:** 1 credit. Cached 24 hours. | Parameter | Default and notes | | --- | --- | | `handle` | Required, with or without the @ | Also takes `provider`, `max_credits`, `dry_run`: see [common parameters](https://www.manifoldmcp.com/docs/tools#common-parameters). ```json { "handle": "@gymshark" } ``` ## `tiktok_get_videos`: Get an account's videos The videos one TikTok account has posted, newest or most viewed first. **Use when:** "what has this creator posted", judging how often a brand posts, pulling a creator's recent work before a partnership. **Not for:** one video in full, use [`tiktok_get_video`](https://www.manifoldmcp.com/docs/tools/tiktok#tiktok_get_video). What was said in it, use [`tiktok_get_transcript`](https://www.manifoldmcp.com/docs/tools/tiktok#tiktok_get_transcript). Videos by topic rather than by account, use [`tiktok_search_videos`](https://www.manifoldmcp.com/docs/tools/tiktok#tiktok_search_videos). **Returns:** List, one page per call. `rows[]`: platform, id, url, author, `author_name`, `created_at`, text (cut at 2000 characters), likes, comments, shares, views, media, `duration_s`, `is_ad`. A number the platform does not publish is null. meta.cursor pages the next set. **Cost:** 1 credit per page. Cached 6 hours. | Parameter | Default and notes | | --- | --- | | `handle` | Required | | `sort` | "latest" \| "popular", default latest | Also takes `cursor`, `provider`, `max_credits`, `dry_run`: see [common parameters](https://www.manifoldmcp.com/docs/tools#common-parameters). ```json { "handle": "gymshark", "sort": "popular" } ``` ## `tiktok_get_video`: Get a TikTok video One TikTok video with its engagement: views, likes, comments, shares and its length. **Use when:** a row from a search or a listing is worth the detail, or you have a URL and nothing else. **Not for:** what was said in it, use [`tiktok_get_transcript`](https://www.manifoldmcp.com/docs/tools/tiktok#tiktok_get_transcript). The replies, use [`tiktok_get_comments`](https://www.manifoldmcp.com/docs/tools/tiktok#tiktok_get_comments). **Returns:** Record. `rows[]`: platform, id, url, author, `author_name`, `created_at`, text (cut at 2000 characters), likes, comments, shares, views, media, `duration_s`, `is_ad`. A number the platform does not publish is null. **Cost:** 10 credits when the vendor has to fetch the media, 1 when it does not. The estimate is the higher one, so `max_credits` never surprises you. Cached 6 hours. | Parameter | Default and notes | | --- | --- | | `url` | Required, the video URL | Also takes `provider`, `max_credits`, `dry_run`: see [common parameters](https://www.manifoldmcp.com/docs/tools#common-parameters). ```json { "url": "https://www.tiktok.com/@gymshark/video/7517114944362499342" } ``` ## `tiktok_get_comments`: Get a video's comments The comments on one TikTok video. **Use when:** reading what an audience actually said, finding objections and questions under a creator's post. **Not for:** comments across many videos (there is no such search on TikTok). The video itself, use [`tiktok_get_video`](https://www.manifoldmcp.com/docs/tools/tiktok#tiktok_get_video). **Returns:** List, one page per call. `rows[]`: platform, id, `post_id`, author, `created_at`, text (cut at 2000 characters), likes, replies, depth. meta.cursor pages the next set. **Cost:** 1 credit per page. Cached 6 hours. | Parameter | Default and notes | | --- | --- | | `url` | Required, the video URL | Also takes `cursor`, `provider`, `max_credits`, `dry_run`: see [common parameters](https://www.manifoldmcp.com/docs/tools#common-parameters). ```json { "url": "https://www.tiktok.com/@gymshark/video/7517114944362499342" } ``` ## `tiktok_search_videos`: Search TikTok videos TikTok videos matching a keyword, ranked by the platform's own search. **Use when:** "what is TikTok saying about X", finding creators in a category, watching a product or a brand name. **Not for:** one account's own videos, use [`tiktok_get_videos`](https://www.manifoldmcp.com/docs/tools/tiktok#tiktok_get_videos). A complete window of everything posted (TikTok search is ranked and never complete). **Returns:** List, one page per call, ranked. `rows[]`: platform, id, url, author, `author_name`, `created_at`, text (cut at 2000 characters), likes, comments, shares, views, media, `duration_s`, `is_ad`. A number the platform does not publish is null. meta.cursor pages the next set. **Cost:** 1 credit per page. Cached 6 hours. | Parameter | Default and notes | | --- | --- | | `query` | Required | | `since` | "day" \| "week" \| "month" \| "year" \| "all", default month | | `sort` | "relevance" \| "latest" \| "popular", default relevance | Also takes `cursor`, `provider`, `max_credits`, `dry_run`: see [common parameters](https://www.manifoldmcp.com/docs/tools#common-parameters). ```json { "query": "creatine gummies", "since": "month", "sort": "popular" } ``` ## `tiktok_get_transcript`: Get a video's transcript What is said out loud in one TikTok video, as text. **Use when:** reading a video without watching it, pulling the claims or the hook out of an ad or a review. **Not for:** the video's numbers, use [`tiktok_get_video`](https://www.manifoldmcp.com/docs/tools/tiktok#tiktok_get_video). The written caption, which [`tiktok_get_video`](https://www.manifoldmcp.com/docs/tools/tiktok#tiktok_get_video) already returns as text. **Returns:** Record. platform, url, language, text (the full transcript, uncut). NoData when the video carries no speech the platform kept. **Cost:** 1 credit, or 11 with `ai_fallback`. Cached 30 days. | Parameter | Default and notes | | --- | --- | | `url` | Required | | `language` | Optional, for a video with several | | `ai_fallback` | False; true transcribes the audio when TikTok holds no transcript, adds 10 credits and covers videos up to 2 minutes | Also takes `provider`, `max_credits`, `dry_run`: see [common parameters](https://www.manifoldmcp.com/docs/tools#common-parameters). ```json { "url": "https://www.tiktok.com/@gymshark/video/7517114944362499342" } ``` ## `tiktok_get_followers`: Get an account's followers The accounts that follow one TikTok account, with their own follower counts. **Use when:** judging whether a creator's audience is real, looking for the notable accounts in a following. **Not for:** where an audience is in the world, use [`tiktok_get_audience`](https://www.manifoldmcp.com/docs/tools/tiktok#tiktok_get_audience). How big the account is, use [`tiktok_get_profile`](https://www.manifoldmcp.com/docs/tools/tiktok#tiktok_get_profile). **Returns:** List, one page per call. `rows[]`: platform, handle, name, url, followers, bio. meta.cursor pages the next set. **Cost:** 1 credit per page. Cached 7 days. | Parameter | Default and notes | | --- | --- | | `handle` | Required | Also takes `cursor`, `provider`, `max_credits`, `dry_run`: see [common parameters](https://www.manifoldmcp.com/docs/tools#common-parameters). ```json { "handle": "gymshark" } ``` ## `tiktok_get_audience`: Get an account's audience Where one TikTok account's audience is, by country. **Use when:** checking a creator reaches the market you sell in, before paying for a partnership. **Not for:** who the followers are, use [`tiktok_get_followers`](https://www.manifoldmcp.com/docs/tools/tiktok#tiktok_get_followers). The account's size, use [`tiktok_get_profile`](https://www.manifoldmcp.com/docs/tools/tiktok#tiktok_get_profile). **Returns:** List, largest share first. `rows[]`: country, `country_code`, share (percent, a decimal), count. The split comes from a sample of followers, a few hundred for an account of millions: count is followers in that sample, not in the account, so read share and ignore count as a size. **Cost:** 26 credits, because the vendor charges 26 for this one call. Check the handle with [`tiktok_get_profile`](https://www.manifoldmcp.com/docs/tools/tiktok#tiktok_get_profile) first. Cached 7 days. | Parameter | Default and notes | | --- | --- | | `handle` | Required | Also takes `provider`, `max_credits`, `dry_run`: see [common parameters](https://www.manifoldmcp.com/docs/tools#common-parameters). ```json { "handle": "gymshark" } ``` Source: https://www.manifoldmcp.com/docs/tools/tiktok --- # Instagram tools > Accounts, posts, reels, comments and transcripts. Public Instagram data. Each call costs what the data provider charges for it, and the cost line under each tool below gives the number. A question Instagram cannot answer has no tool, rather than a tool that returns nothing. | Tool | What it does | Cost | | --- | --- | --- | | [`instagram_get_profile`](#instagram_get_profile) | Get an Instagram account | From 1 credit | | [`instagram_get_posts`](#instagram_get_posts) | Get an account's posts | From 1 credit | | [`instagram_get_reels`](#instagram_get_reels) | Get an account's reels | From 1 credit | | [`instagram_get_post`](#instagram_get_post) | Get a post or reel | From 10 credits | | [`instagram_get_comments`](#instagram_get_comments) | Get a post's comments | From 1 credit | | [`instagram_search_posts`](#instagram_search_posts) | Search posts by hashtag | From 1 credit | | [`instagram_get_transcript`](#instagram_get_transcript) | Get a reel's transcript | From 1 credit | ## `instagram_get_profile`: Get an Instagram account One Instagram account: followers, posts and whether it is a business account. **Use when:** sizing a creator or a brand, checking a handle, reading a bio and its link before outreach. **Not for:** the account's posts, use [`instagram_get_posts`](https://www.manifoldmcp.com/docs/tools/instagram#instagram_get_posts) or [`instagram_get_reels`](https://www.manifoldmcp.com/docs/tools/instagram#instagram_get_reels). Posts by topic, use [`instagram_search_posts`](https://www.manifoldmcp.com/docs/tools/instagram#instagram_search_posts). **Returns:** Record. platform, kind, id, handle, name, url, bio, verified, followers, following, `posts_count`, likes, views, location, website, employees, industry, `created_at`. A field the platform does not publish is null. kind is company for a business account. **Cost:** 1 credit. Cached 24 hours. | Parameter | Default and notes | | --- | --- | | `handle` | Required, with or without the @ | Also takes `provider`, `max_credits`, `dry_run`: see [common parameters](https://www.manifoldmcp.com/docs/tools#common-parameters). ```json { "handle": "gymshark" } ``` ## `instagram_get_posts`: Get an account's posts The posts on one Instagram account, newest first. **Use when:** "what has this account been posting", judging cadence and engagement before a partnership. **Not for:** reels only, use [`instagram_get_reels`](https://www.manifoldmcp.com/docs/tools/instagram#instagram_get_reels). One post in full, use [`instagram_get_post`](https://www.manifoldmcp.com/docs/tools/instagram#instagram_get_post). Posts by hashtag, use [`instagram_search_posts`](https://www.manifoldmcp.com/docs/tools/instagram#instagram_search_posts). **Returns:** List, one page per call. `rows[]`: platform, id, url, author, `author_name`, `created_at`, text (cut at 2000 characters), likes, comments, shares, views, media, `duration_s`, `is_ad`. A number the platform does not publish is null. meta.cursor pages the next set. **Cost:** 1 credit per page. Cached 6 hours. | Parameter | Default and notes | | --- | --- | | `handle` | Required | Also takes `cursor`, `provider`, `max_credits`, `dry_run`: see [common parameters](https://www.manifoldmcp.com/docs/tools#common-parameters). ```json { "handle": "gymshark" } ``` ## `instagram_get_reels`: Get an account's reels The reels on one Instagram account, newest first. **Use when:** video is what matters: watching a brand's reel cadence, pulling a creator's recent reels. **Not for:** every post type, use [`instagram_get_posts`](https://www.manifoldmcp.com/docs/tools/instagram#instagram_get_posts). What is said in a reel, use [`instagram_get_transcript`](https://www.manifoldmcp.com/docs/tools/instagram#instagram_get_transcript). **Returns:** List, one page per call. `rows[]`: platform, id, url, author, `author_name`, `created_at`, text (cut at 2000 characters), likes, comments, shares, views, media, `duration_s`, `is_ad`. A number the platform does not publish is null. meta.cursor pages the next set. **Cost:** 1 credit per page. Cached 6 hours. | Parameter | Default and notes | | --- | --- | | `handle` | Required | Also takes `cursor`, `provider`, `max_credits`, `dry_run`: see [common parameters](https://www.manifoldmcp.com/docs/tools#common-parameters). ```json { "handle": "gymshark" } ``` ## `instagram_get_post`: Get a post or reel One Instagram post or reel with its caption and its engagement. **Use when:** a row is worth the detail, or you have a URL and nothing else. **Not for:** the comments, use [`instagram_get_comments`](https://www.manifoldmcp.com/docs/tools/instagram#instagram_get_comments). What is said in a reel, use [`instagram_get_transcript`](https://www.manifoldmcp.com/docs/tools/instagram#instagram_get_transcript). **Returns:** Record. `rows[]`: platform, id, url, author, `author_name`, `created_at`, text (cut at 2000 characters), likes, comments, shares, views, media, `duration_s`, `is_ad`. A number the platform does not publish is null. **Cost:** 10 credits when the vendor has to fetch the media, 1 when it does not. The estimate is the higher one. Cached 6 hours. | Parameter | Default and notes | | --- | --- | | `url` | Required, the post or reel URL | Also takes `provider`, `max_credits`, `dry_run`: see [common parameters](https://www.manifoldmcp.com/docs/tools#common-parameters). ```json { "url": "https://www.instagram.com/p/DKSMEpKRd6h/" } ``` ## `instagram_get_comments`: Get a post's comments The comments on one Instagram post or reel. **Use when:** reading what an audience said, finding the questions a product post keeps getting. **Not for:** the post itself, use [`instagram_get_post`](https://www.manifoldmcp.com/docs/tools/instagram#instagram_get_post). Comments across many posts, which Instagram does not offer. **Returns:** List, one page per call. `rows[]`: platform, id, `post_id`, author, `created_at`, text (cut at 2000 characters), likes, replies, depth. depth is 1 for a reply, and replies only come back when you ask for them. **Cost:** 1 credit per page, or 15 with `include_replies`. Cached 6 hours. | Parameter | Default and notes | | --- | --- | | `url` | Required | | `include_replies` | False; true costs 15 credits and is charged even when no reply comes back, because the vendor looks up every comment separately | Also takes `cursor`, `provider`, `max_credits`, `dry_run`: see [common parameters](https://www.manifoldmcp.com/docs/tools#common-parameters). ```json { "url": "https://www.instagram.com/p/DKSMEpKRd6h/" } ``` ## `instagram_search_posts`: Search posts by hashtag Instagram posts under one hashtag. **Use when:** "who is posting about X on Instagram", watching a campaign hashtag or a product tag. **Not for:** free-text search (Instagram search is by hashtag here). One account's posts, use [`instagram_get_posts`](https://www.manifoldmcp.com/docs/tools/instagram#instagram_get_posts). **Returns:** List, one page per call, ranked by Instagram. `rows[]`: platform, id, url, author, `author_name`, `created_at`, text (cut at 2000 characters), likes, comments, shares, views, media, `duration_s`, `is_ad`. A number the platform does not publish is null. meta.cursor pages the next set. **Cost:** 1 credit per page. Cached 6 hours. | Parameter | Default and notes | | --- | --- | | `query` | Required, the hashtag, with or without the # | | `since` | "day" \| "week" \| "month" \| "year" \| "all", default month | Also takes `cursor`, `provider`, `max_credits`, `dry_run`: see [common parameters](https://www.manifoldmcp.com/docs/tools#common-parameters). ```json { "query": "#gymshark", "since": "week" } ``` ## `instagram_get_transcript`: Get a reel's transcript What is said out loud in one Instagram reel, as text. **Use when:** reading a reel without watching it, pulling the claims out of a creator's video. **Not for:** the caption, which [`instagram_get_post`](https://www.manifoldmcp.com/docs/tools/instagram#instagram_get_post) already returns. The numbers, use [`instagram_get_post`](https://www.manifoldmcp.com/docs/tools/instagram#instagram_get_post). **Returns:** Record. platform, url, language, text (the full transcript, uncut). NoData when the reel carries no speech. The vendor transcribes reels up to two minutes long; a longer one is refused as InvalidTarget with the reason. **Cost:** 1 credit. Cached 30 days. | Parameter | Default and notes | | --- | --- | | `url` | Required | | `language` | Optional | Also takes `provider`, `max_credits`, `dry_run`: see [common parameters](https://www.manifoldmcp.com/docs/tools#common-parameters). ```json { "url": "https://www.instagram.com/reel/DKSMEpKRd6h/" } ``` Source: https://www.manifoldmcp.com/docs/tools/instagram --- # Facebook tools > Pages, posts, groups, comments and transcripts. Public Facebook data. Each call costs what the data provider charges for it, and the cost line under each tool below gives the number. A question Facebook cannot answer has no tool, rather than a tool that returns nothing. | Tool | What it does | Cost | | --- | --- | --- | | [`facebook_get_profile`](#facebook_get_profile) | Get a Facebook page | From 1 credit | | [`facebook_get_posts`](#facebook_get_posts) | Get a page's posts | From 1 credit | | [`facebook_get_post`](#facebook_get_post) | Get a Facebook post | From 1 credit | | [`facebook_get_comments`](#facebook_get_comments) | Get a post's comments | From 1 credit | | [`facebook_get_group_posts`](#facebook_get_group_posts) | Get a group's posts | From 1 credit | | [`facebook_get_transcript`](#facebook_get_transcript) | Get a video's transcript | From 1 credit | ## `facebook_get_profile`: Get a Facebook page One Facebook page: its followers, its category, its address and its website. **Use when:** checking a business page is real and current, reading its category and contact details. **Not for:** its posts, use [`facebook_get_posts`](https://www.manifoldmcp.com/docs/tools/facebook#facebook_get_posts). Its ads, use [`ads_get_advertiser_ads`](https://www.manifoldmcp.com/docs/tools/ads#ads_get_advertiser_ads) with platform facebook. **Returns:** Record. platform, kind, id, handle, name, url, bio, verified, followers, following, `posts_count`, likes, views, location, website, employees, industry, `created_at`. A field the platform does not publish is null. kind is company, because these are pages rather than people. **Cost:** 1 credit. Cached 24 hours. | Parameter | Default and notes | | --- | --- | | `handle` or `url` | `handle`: a page name; `url`: the full page URL; give one | Also takes `provider`, `max_credits`, `dry_run`: see [common parameters](https://www.manifoldmcp.com/docs/tools#common-parameters). ```json { "url": "https://www.facebook.com/gymshark" } ``` ## `facebook_get_posts`: Get a page's posts The posts on one Facebook page, newest first. **Use when:** watching what a business page publishes, judging cadence and reactions. **Not for:** a group's posts, use [`facebook_get_group_posts`](https://www.manifoldmcp.com/docs/tools/facebook#facebook_get_group_posts). One post in full, use [`facebook_get_post`](https://www.manifoldmcp.com/docs/tools/facebook#facebook_get_post). **Returns:** List, one page per call. `rows[]`: platform, id, url, author, `author_name`, `created_at`, text (cut at 2000 characters), likes, comments, shares, views, media, `duration_s`, `is_ad`. A number the platform does not publish is null. Facebook publishes no share count, so shares is null. **Cost:** 1 credit per page. Cached 6 hours. | Parameter | Default and notes | | --- | --- | | `handle` or `url` | `handle`: a page name; `url`: the full page URL; give one | Also takes `cursor`, `provider`, `max_credits`, `dry_run`: see [common parameters](https://www.manifoldmcp.com/docs/tools#common-parameters). ```json { "url": "https://www.facebook.com/gymshark" } ``` ## `facebook_get_post`: Get a Facebook post One Facebook post with its reactions, comments, shares and views. **Use when:** a row is worth the detail, or you have a URL and nothing else. **Not for:** the comments themselves, use [`facebook_get_comments`](https://www.manifoldmcp.com/docs/tools/facebook#facebook_get_comments). What is said in a video, use [`facebook_get_transcript`](https://www.manifoldmcp.com/docs/tools/facebook#facebook_get_transcript). **Returns:** Record. `rows[]`: platform, id, url, author, `author_name`, `created_at`, text (cut at 2000 characters), likes, comments, shares, views, media, `duration_s`, `is_ad`. A number the platform does not publish is null. **Cost:** 1 credit. Cached 6 hours. | Parameter | Default and notes | | --- | --- | | `url` | Required, the post or reel URL | Also takes `provider`, `max_credits`, `dry_run`: see [common parameters](https://www.manifoldmcp.com/docs/tools#common-parameters). ```json { "url": "https://www.facebook.com/reel/1535656380759655" } ``` ## `facebook_get_comments`: Get a post's comments The comments on one Facebook post. **Use when:** reading what people replied to a page or a group post. **Not for:** the post itself, use [`facebook_get_post`](https://www.manifoldmcp.com/docs/tools/facebook#facebook_get_post). Comments across many posts, which Facebook does not offer. **Returns:** List, one page per call. `rows[]`: platform, id, `post_id`, author, `created_at`, text (cut at 2000 characters), likes, replies, depth. meta.cursor pages the next set. **Cost:** 1 credit per page. Cached 6 hours. | Parameter | Default and notes | | --- | --- | | `url` | Required | Also takes `cursor`, `provider`, `max_credits`, `dry_run`: see [common parameters](https://www.manifoldmcp.com/docs/tools#common-parameters). ```json { "url": "https://www.facebook.com/reel/1535656380759655" } ``` ## `facebook_get_group_posts`: Get a group's posts The posts in one Facebook group, newest first. **Use when:** watching a community you sell into, the way [`reddit_get_new_posts`](https://www.manifoldmcp.com/docs/tools/reddit#reddit_get_new_posts) watches a subreddit. **Not for:** a page's own posts, use [`facebook_get_posts`](https://www.manifoldmcp.com/docs/tools/facebook#facebook_get_posts). A complete window since a moment, which Facebook does not offer: page with the cursor and dedupe on id. **Returns:** List, one page per call. `rows[]`: platform, id, url, author, `author_name`, `created_at`, text (cut at 2000 characters), likes, comments, shares, views, media, `duration_s`, `is_ad`. A number the platform does not publish is null. meta.cursor pages the next set. **Cost:** 1 credit per page. Cached 6 hours. | Parameter | Default and notes | | --- | --- | | `url` | Required, the group URL | Also takes `cursor`, `provider`, `max_credits`, `dry_run`: see [common parameters](https://www.manifoldmcp.com/docs/tools#common-parameters). ```json { "url": "https://www.facebook.com/groups/742354120555345" } ``` ## `facebook_get_transcript`: Get a video's transcript What is said out loud in one Facebook video or reel, as text. **Use when:** reading a video without watching it, pulling the claims out of a page's ad or clip. **Not for:** the post's text, which [`facebook_get_post`](https://www.manifoldmcp.com/docs/tools/facebook#facebook_get_post) already returns. **Returns:** Record. platform, url, language, text (the full transcript, uncut). NoData when the post carries no speech. **Cost:** 1 credit. Cached 30 days. | Parameter | Default and notes | | --- | --- | | `url` | Required | | `language` | Optional | Also takes `provider`, `max_credits`, `dry_run`: see [common parameters](https://www.manifoldmcp.com/docs/tools#common-parameters). ```json { "url": "https://www.facebook.com/reel/1535656380759655" } ``` Source: https://www.manifoldmcp.com/docs/tools/facebook --- # YouTube tools > Channels, videos, comments and transcripts. Public YouTube data. Each call costs what the data provider charges for it, and the cost line under each tool below gives the number. A question YouTube cannot answer has no tool, rather than a tool that returns nothing. | Tool | What it does | Cost | | --- | --- | --- | | [`youtube_get_channel`](#youtube_get_channel) | Get a YouTube channel | From 1 credit | | [`youtube_get_videos`](#youtube_get_videos) | Get a channel's videos | From 1 credit | | [`youtube_get_video`](#youtube_get_video) | Get a YouTube video | From 1 credit | | [`youtube_get_comments`](#youtube_get_comments) | Get a video's comments | From 1 credit | | [`youtube_search_videos`](#youtube_search_videos) | Search YouTube videos | From 1 credit | | [`youtube_get_transcript`](#youtube_get_transcript) | Get a video's transcript | From 1 credit | ## `youtube_get_channel`: Get a YouTube channel One YouTube channel: subscribers, total views and when it joined. **Use when:** sizing a channel before a sponsorship, checking a handle, reading a channel description. **Not for:** its videos, use [`youtube_get_videos`](https://www.manifoldmcp.com/docs/tools/youtube#youtube_get_videos). Videos by topic, use [`youtube_search_videos`](https://www.manifoldmcp.com/docs/tools/youtube#youtube_search_videos). **Returns:** Record. platform, kind, id, handle, name, url, bio, verified, followers, following, `posts_count`, likes, views, location, website, employees, industry, `created_at`. A field the platform does not publish is null. kind is channel, followers is the subscriber count. **Cost:** 1 credit. Cached 24 hours. | Parameter | Default and notes | | --- | --- | | `handle` | Required, with or without the @ | Also takes `provider`, `max_credits`, `dry_run`: see [common parameters](https://www.manifoldmcp.com/docs/tools#common-parameters). ```json { "handle": "@ThePatMcAfeeShow" } ``` ## `youtube_get_videos`: Get a channel's videos The videos on one YouTube channel, newest or most viewed first. **Use when:** "what does this channel publish", judging cadence and view counts before a sponsorship. **Not for:** one video in full, use [`youtube_get_video`](https://www.manifoldmcp.com/docs/tools/youtube#youtube_get_video). What is said in it, use [`youtube_get_transcript`](https://www.manifoldmcp.com/docs/tools/youtube#youtube_get_transcript). **Returns:** List, one page per call. `rows[]`: platform, id, url, author, `author_name`, `created_at`, text (cut at 2000 characters), likes, comments, shares, views, media, `duration_s`, `is_ad`. A number the platform does not publish is null. A listing carries views and length; likes and comments come with [`youtube_get_video`](https://www.manifoldmcp.com/docs/tools/youtube#youtube_get_video). **Cost:** 1 credit per page. Cached 6 hours. | Parameter | Default and notes | | --- | --- | | `handle` | Required | | `sort` | "latest" \| "popular", default latest | Also takes `cursor`, `provider`, `max_credits`, `dry_run`: see [common parameters](https://www.manifoldmcp.com/docs/tools#common-parameters). ```json { "handle": "@ThePatMcAfeeShow", "sort": "popular" } ``` ## `youtube_get_video`: Get a YouTube video One YouTube video with its views, likes, comments and length. **Use when:** a row is worth the detail, or you have a URL and nothing else. **Not for:** what is said in it, use [`youtube_get_transcript`](https://www.manifoldmcp.com/docs/tools/youtube#youtube_get_transcript). The comments, use [`youtube_get_comments`](https://www.manifoldmcp.com/docs/tools/youtube#youtube_get_comments). **Returns:** Record. `rows[]`: platform, id, url, author, `author_name`, `created_at`, text (cut at 2000 characters), likes, comments, shares, views, media, `duration_s`, `is_ad`. A number the platform does not publish is null. **Cost:** 1 credit. Cached 6 hours. | Parameter | Default and notes | | --- | --- | | `url` | Required | Also takes `provider`, `max_credits`, `dry_run`: see [common parameters](https://www.manifoldmcp.com/docs/tools#common-parameters). ```json { "url": "https://www.youtube.com/watch?v=5EWaxmWgQMI" } ``` ## `youtube_get_comments`: Get a video's comments The comments on one YouTube video, most liked first. **Use when:** reading what an audience said, finding the objections under a review or a tutorial. **Not for:** the video itself, use [`youtube_get_video`](https://www.manifoldmcp.com/docs/tools/youtube#youtube_get_video). What is said in it, use [`youtube_get_transcript`](https://www.manifoldmcp.com/docs/tools/youtube#youtube_get_transcript). **Returns:** List, one page per call. `rows[]`: platform, id, `post_id`, author, `created_at`, text (cut at 2000 characters), likes, replies, depth. depth is the reply level. meta.cursor pages the next set. `created_at` is approximate: the platform shows an age such as "3 weeks ago", so it is exact only to that unit. **Cost:** 1 credit per page. Cached 6 hours. | Parameter | Default and notes | | --- | --- | | `url` | Required | Also takes `cursor`, `provider`, `max_credits`, `dry_run`: see [common parameters](https://www.manifoldmcp.com/docs/tools#common-parameters). ```json { "url": "https://www.youtube.com/watch?v=5EWaxmWgQMI" } ``` ## `youtube_search_videos`: Search YouTube videos YouTube videos matching a keyword, ranked by YouTube's own search. **Use when:** "what videos cover X", finding review and tutorial coverage of a product or a competitor. **Not for:** one channel's own videos, use [`youtube_get_videos`](https://www.manifoldmcp.com/docs/tools/youtube#youtube_get_videos). Text pages about X, use [`seo_get_serp`](https://www.manifoldmcp.com/docs/tools/seo#seo_get_serp). **Returns:** List, one page per call, ranked. `rows[]`: platform, id, url, author, `author_name`, `created_at`, text (cut at 2000 characters), likes, comments, shares, views, media, `duration_s`, `is_ad`. A number the platform does not publish is null. meta.cursor pages the next set. `created_at` is approximate: the platform shows an age such as "3 weeks ago", so it is exact only to that unit. **Cost:** 1 credit per page. Cached 6 hours. | Parameter | Default and notes | | --- | --- | | `query` | Required | | `since` | "day" \| "week" \| "month" \| "year" \| "all", default month | | `sort` | "relevance" \| "latest" \| "popular", default relevance | Also takes `cursor`, `provider`, `max_credits`, `dry_run`: see [common parameters](https://www.manifoldmcp.com/docs/tools#common-parameters). ```json { "query": "best crm for agencies", "since": "year" } ``` ## `youtube_get_transcript`: Get a video's transcript The transcript of one YouTube video, as text. **Use when:** reading a video instead of watching it, pulling claims, chapters or quotes out of long content. **Not for:** the video's numbers, use [`youtube_get_video`](https://www.manifoldmcp.com/docs/tools/youtube#youtube_get_video). The comments, use [`youtube_get_comments`](https://www.manifoldmcp.com/docs/tools/youtube#youtube_get_comments). **Returns:** Record. platform, url, language, text (the full transcript, uncut). NoData when the video has no captions. **Cost:** 1 credit. Cached 30 days. | Parameter | Default and notes | | --- | --- | | `url` | Required | | `language` | Optional, for a video with several | Also takes `provider`, `max_credits`, `dry_run`: see [common parameters](https://www.manifoldmcp.com/docs/tools#common-parameters). ```json { "url": "https://www.youtube.com/watch?v=5EWaxmWgQMI" } ``` Source: https://www.manifoldmcp.com/docs/tools/youtube --- # LinkedIn tools > People, company pages and posts. Public LinkedIn data. Each call costs what the data provider charges for it, and the cost line under each tool below gives the number. A question LinkedIn cannot answer has no tool, rather than a tool that returns nothing. | Tool | What it does | Cost | | --- | --- | --- | | [`linkedin_get_profile`](#linkedin_get_profile) | Get a LinkedIn profile | From 1 credit | | [`linkedin_get_company`](#linkedin_get_company) | Get a company page | From 1 credit | | [`linkedin_get_company_posts`](#linkedin_get_company_posts) | Get a company's posts | From 1 credit | | [`linkedin_get_post`](#linkedin_get_post) | Get a LinkedIn post | From 1 credit | | [`linkedin_search_posts`](#linkedin_search_posts) | Search LinkedIn posts | From 1 credit | ## `linkedin_get_profile`: Get a LinkedIn profile One LinkedIn person: their headline, location, followers and connections. **Use when:** checking a person before outreach, reading how they describe themselves. **Not for:** a company page, use [`linkedin_get_company`](https://www.manifoldmcp.com/docs/tools/linkedin#linkedin_get_company). An email address, use [`leads_get_email`](https://www.manifoldmcp.com/docs/tools/leads#leads_get_email). A person's full employment record, use [`leads_get_person`](https://www.manifoldmcp.com/docs/tools/leads#leads_get_person). **Returns:** Record. platform, kind, id, handle, name, url, bio, verified, followers, following, `posts_count`, likes, views, location, website, employees, industry, `created_at`. A field the platform does not publish is null. LinkedIn publishes no post count or id for a person, so those are null. **Cost:** 1 credit. Cached 24 hours. | Parameter | Default and notes | | --- | --- | | `url` or `handle` | `url`: the full profile URL; `handle`: the part after /in/; give one | Also takes `provider`, `max_credits`, `dry_run`: see [common parameters](https://www.manifoldmcp.com/docs/tools#common-parameters). ```json { "url": "https://www.linkedin.com/in/williamhgates" } ``` ## `linkedin_get_company`: Get a company page One LinkedIn company page: headcount, industry, location and website. **Use when:** sizing a company from its own page, confirming an industry and a headcount band before outreach. **Not for:** a company's own posts, use [`linkedin_get_company_posts`](https://www.manifoldmcp.com/docs/tools/linkedin#linkedin_get_company_posts). A richer firmographic record, use [`leads_get_company`](https://www.manifoldmcp.com/docs/tools/leads#leads_get_company). A person, use [`linkedin_get_profile`](https://www.manifoldmcp.com/docs/tools/linkedin#linkedin_get_profile). **Returns:** Record. platform, kind, id, handle, name, url, bio, verified, followers, following, `posts_count`, likes, views, location, website, employees, industry, `created_at`. A field the platform does not publish is null. kind is company, employees is LinkedIn's own headcount. **Cost:** 1 credit. Cached 24 hours. | Parameter | Default and notes | | --- | --- | | `handle` or `url` | `handle`: the company slug; `url`: the full company URL; give one | Also takes `provider`, `max_credits`, `dry_run`: see [common parameters](https://www.manifoldmcp.com/docs/tools#common-parameters). ```json { "handle": "shopify" } ``` ## `linkedin_get_company_posts`: Get a company's posts The posts on one LinkedIn company page, newest first. **Use when:** watching what a competitor publishes, judging cadence and engagement. **Not for:** posts by topic across LinkedIn, use [`linkedin_search_posts`](https://www.manifoldmcp.com/docs/tools/linkedin#linkedin_search_posts). One post in full, use [`linkedin_get_post`](https://www.manifoldmcp.com/docs/tools/linkedin#linkedin_get_post). **Returns:** List, one page per call. `rows[]`: platform, id, url, author, `author_name`, `created_at`, text (cut at 2000 characters), likes, comments, shares, views, media, `duration_s`, `is_ad`. A number the platform does not publish is null. LinkedIn publishes no view count, so views is null. This listing carries no engagement at all; [`linkedin_get_post`](https://www.manifoldmcp.com/docs/tools/linkedin#linkedin_get_post) has likes and comments for one post. `created_at` is approximate: the platform shows an age such as "3 weeks ago", so it is exact only to that unit. **Cost:** 1 credit per page. Cached 6 hours. | Parameter | Default and notes | | --- | --- | | `handle` or `url` | `handle`: the company slug; `url`: the full company URL; give one | Also takes `cursor`, `provider`, `max_credits`, `dry_run`: see [common parameters](https://www.manifoldmcp.com/docs/tools#common-parameters). ```json { "handle": "shopify" } ``` ## `linkedin_get_post`: Get a LinkedIn post One LinkedIn post with its text, its author and its engagement. **Use when:** a row from a search is worth the detail, or you have a URL and nothing else. **Not for:** the comments (LinkedIn does not expose them here). A company's whole feed, use [`linkedin_get_company_posts`](https://www.manifoldmcp.com/docs/tools/linkedin#linkedin_get_company_posts). **Returns:** Record. `rows[]`: platform, id, url, author, `author_name`, `created_at`, text (cut at 2000 characters), likes, comments, shares, views, media, `duration_s`, `is_ad`. A number the platform does not publish is null. **Cost:** 1 credit. Cached 6 hours. | Parameter | Default and notes | | --- | --- | | `url` | Required, the post URL | Also takes `provider`, `max_credits`, `dry_run`: see [common parameters](https://www.manifoldmcp.com/docs/tools#common-parameters). ```json { "url": "https://www.linkedin.com/posts/aagupta_what-you-need-to-know-ai-agents-activity-7354600338621906944-RvXR" } ``` ## `linkedin_search_posts`: Search LinkedIn posts LinkedIn posts matching a keyword, ranked by LinkedIn's own search. **Use when:** "what is being said about X on LinkedIn", finding the people posting about a category. **Not for:** one company's posts, use [`linkedin_get_company_posts`](https://www.manifoldmcp.com/docs/tools/linkedin#linkedin_get_company_posts). Finding people to contact, use [`leads_search_people`](https://www.manifoldmcp.com/docs/tools/leads#leads_search_people). **Returns:** List, one page per call, ranked. `rows[]`: platform, id, url, author, `author_name`, `created_at`, text (cut at 2000 characters), likes, comments, shares, views, media, `duration_s`, `is_ad`. A number the platform does not publish is null. meta.cursor pages the next set. `created_at` is approximate: the platform shows an age such as "3 weeks ago", so it is exact only to that unit. **Cost:** 1 credit per page. Cached 6 hours. | Parameter | Default and notes | | --- | --- | | `query` | Required | | `since` | "day" \| "week" \| "month" \| "year" \| "all", default month | Also takes `cursor`, `provider`, `max_credits`, `dry_run`: see [common parameters](https://www.manifoldmcp.com/docs/tools#common-parameters). ```json { "query": "rfp automation", "since": "week" } ``` Source: https://www.manifoldmcp.com/docs/tools/linkedin --- # X tools > Accounts and posts on X. Public X data. Each call costs what the data provider charges for it, and the cost line under each tool below gives the number. A question X cannot answer has no tool, rather than a tool that returns nothing. | Tool | What it does | Cost | | --- | --- | --- | | [`twitter_get_profile`](#twitter_get_profile) | Get an X account | From 1 credit | | [`twitter_get_tweets`](#twitter_get_tweets) | Get an account's posts | From 1 credit | | [`twitter_get_tweet`](#twitter_get_tweet) | Get a post on X | From 1 credit | ## `twitter_get_profile`: Get an X account One X account: followers, following, how much it posts and its bio. **Use when:** sizing an account, checking a handle, reading a bio and its link before outreach. **Not for:** its posts, use [`twitter_get_tweets`](https://www.manifoldmcp.com/docs/tools/x#twitter_get_tweets). One post, use [`twitter_get_tweet`](https://www.manifoldmcp.com/docs/tools/x#twitter_get_tweet). **Returns:** Record. platform, kind, id, handle, name, url, bio, verified, followers, following, `posts_count`, likes, views, location, website, employees, industry, `created_at`. A field the platform does not publish is null. verified is true for a paid checkmark as well as a legacy one. **Cost:** 1 credit. Cached 24 hours. | Parameter | Default and notes | | --- | --- | | `handle` | Required, with or without the @ | Also takes `provider`, `max_credits`, `dry_run`: see [common parameters](https://www.manifoldmcp.com/docs/tools#common-parameters). ```json { "handle": "@stripe" } ``` ## `twitter_get_tweets`: Get an account's posts The recent posts on one X account, newest first. **Use when:** "what has this account been saying", watching a competitor's announcements. **Not for:** keyword search across X, which is not covered here; use one account at a time. One post, use [`twitter_get_tweet`](https://www.manifoldmcp.com/docs/tools/x#twitter_get_tweet). **Returns:** List, one page per call. `rows[]`: platform, id, url, author, `author_name`, `created_at`, text (cut at 2000 characters), likes, comments, shares, views, media, `duration_s`, `is_ad`. A number the platform does not publish is null. shares carries retweets, comments carries replies. X returns one page, so meta.cursor is null. **Cost:** 1 credit. Cached 6 hours. | Parameter | Default and notes | | --- | --- | | `handle` | Required | Also takes `provider`, `max_credits`, `dry_run`: see [common parameters](https://www.manifoldmcp.com/docs/tools#common-parameters). ```json { "handle": "stripe" } ``` ## `twitter_get_tweet`: Get a post on X One post on X with its replies, reposts, likes and views. **Use when:** a row is worth the detail, or you have a URL and nothing else. **Not for:** the replies themselves, which are not covered here. An account's feed, use [`twitter_get_tweets`](https://www.manifoldmcp.com/docs/tools/x#twitter_get_tweets). **Returns:** Record. `rows[]`: platform, id, url, author, `author_name`, `created_at`, text (cut at 2000 characters), likes, comments, shares, views, media, `duration_s`, `is_ad`. A number the platform does not publish is null. **Cost:** 1 credit. Cached 6 hours. | Parameter | Default and notes | | --- | --- | | `url` | Required, the post URL | Also takes `provider`, `max_credits`, `dry_run`: see [common parameters](https://www.manifoldmcp.com/docs/tools#common-parameters). ```json { "url": "https://x.com/stripe/status/1834021269559501236" } ``` Source: https://www.manifoldmcp.com/docs/tools/x --- # Credits > What a call costs, how the charge is worked out, and how to cap it. Manifold is paid for in credits. 100 credits are one US dollar. Most calls spend some, a few tools are free, and each result says what it cost in `meta.credits_charged`. ## What calls cost Each tool's cost is a formula on what you ask for: the rows, the pages, the engines. The tool's description states it, so your agent knows the price before it calls. Some common calls: | Call | Tool | Credits | Dollars | | --- | --- | --- | --- | | The top 10 Google results for a keyword | [`seo_get_serp`](https://www.manifoldmcp.com/docs/tools/seo#seo_get_serp) | 1 credit | $0.01 | | 100 keyword ideas with their metrics | [`seo_search_keywords`](https://www.manifoldmcp.com/docs/tools/seo#seo_search_keywords) | 10 credits | $0.10 | | A domain overview | [`seo_get_domain_overview`](https://www.manifoldmcp.com/docs/tools/seo#seo_get_domain_overview) | 5 credits | $0.05 | | 1,000 backlinks | [`seo_get_backlinks`](https://www.manifoldmcp.com/docs/tools/seo#seo_get_backlinks) | 25 credits | $0.25 | | One prompt on ChatGPT, Claude, Gemini and Perplexity | [`aeo_run_ai_answers`](https://www.manifoldmcp.com/docs/tools/aeo#aeo_run_ai_answers) | 16 credits | $0.16 | | A 100-page technical crawl | [`seo_run_technical_crawl`](https://www.manifoldmcp.com/docs/tools/seo#seo_run_technical_crawl) | 3 credits | $0.03 | | A person's work email, found | [`leads_get_email`](https://www.manifoldmcp.com/docs/tools/leads#leads_get_email) | 6 credits | $0.06 | | A person's work email, not found | [`leads_get_email`](https://www.manifoldmcp.com/docs/tools/leads#leads_get_email) | 1 credit | $0.01 | | A TikTok profile | [`tiktok_get_profile`](https://www.manifoldmcp.com/docs/tools/tiktok#tiktok_get_profile) | 1 credit | $0.01 | Each tool's page lists its cost. These are free: [`get_task`](https://www.manifoldmcp.com/docs/tools#async-tasks), [`seo_get_page`](https://www.manifoldmcp.com/docs/tools/seo#seo_get_page), [`aeo_get_site_readiness`](https://www.manifoldmcp.com/docs/tools/aeo#aeo_get_site_readiness), and any call with `dry_run: true`. ## How a charge is worked out 1. **Estimate.** The server prices the call at the most it can cost, for example the full `limit` you asked for. 2. **Hold.** It holds that many credits on your balance. If the balance is too low, the call stops with `InsufficientCredits` and costs nothing. 3. **Settle.** After the call it charges for what came back, such as the rows returned, and never more than the estimate. The rest of the hold is released. A call that reaches a provider costs at least 1 credit, even when the provider has nothing (`NoData`). A call that fails because a provider is down, the input is bad or too many of your calls are running costs nothing. See [Errors and limits](https://www.manifoldmcp.com/docs/limits). An answer from the [cache](https://www.manifoldmcp.com/docs/caching) skips the hold and costs 25% of the live price, rounded up, with a minimum of 1 credit. An answer your workspace already paid for is free until it expires. ## Cap what a call can spend Calls spend credits without a confirmation step, so give your agent a budget: - **`max_credits`** refuses any call whose estimate is higher. The result is `BudgetExceeded` with the estimate, and nothing is charged. - **`dry_run: true`** returns only `meta` with the estimate. It costs nothing. ```json {"keyword": "crm for startups", "depth": 100, "max_credits": 5} ``` ## Watch your usage The app's **Usage** page lists every call that was charged or served from the cache, with the tool, the target and the credits. The dashboard shows a month of credits and your balance. Calls that failed are not listed, because they cost nothing. ## Run out, and top up When a call is not answered from the cache and the balance is below its estimate, the call returns `InsufficientCredits`, and your agent should stop and tell you. A cache hit takes no hold, so it can still be served on a low balance. Buy credits or change plan on the app's **Billing** page. See [Plans and top-ups](https://www.manifoldmcp.com/docs/plans). Source: https://www.manifoldmcp.com/docs/credits --- # Caching > Repeat calls are served from a shared cache for a fraction of the price. What is cached, and for how long. Manifold keeps each tool's answer for a while, and gives the same answer to the same question until it expires. A cached answer comes back at once. It costs 25% of the live price the first time your workspace gets it, and nothing after that. ## What a cached answer costs A cache hit costs 25% of what the live call cost, rounded up, with a minimum of 1 credit. Free tools stay free. There is no hold on your balance for a hit. You pay for an answer once. After your workspace has paid for it, by the live call or by its first cache hit, every repeat of the same question is free until the answer expires. An agent can ask again after a retry or a new plan and not pay twice. When the answer expires and is fetched again, the new answer is a new purchase. | Live call | Cache hit | | --- | --- | | 1 credit | 1 credit | | 5 credits | 2 credits | | 10 credits | 3 credits | | 50 credits | 13 credits | | 100 credits | 25 credits | ## How to tell A cached result has `meta.cached: true`, and `meta.credits_charged` is the hit price, or 0 when your workspace already paid for the answer. `meta.data_as_of` says how old the data is. The rest of `meta`, the rows and the cursor, are the ones stored with the answer. ## What counts as the same question The cache key is the tool, the provider and the tool's input after it is normalised. Normalising removes differences that do not change the answer, such as letter case or spaces at the ends of a keyword. Everything that does change the answer is part of the key: `location`, `language`, `device`, `limit`, `cursor` and each tool's own parameters. A different `limit` is a different question. A dry run returns before the cache, so it never reads or fills it. Each provider has its own entries. ## Shared across workspaces The cache holds public data only (search results, public profiles, ads and posts), so it is shared: if another workspace asked the same question this morning, you get their answer at the cache price, and your repeats are then free. Nothing about who asked is part of an answer. ## How long answers are kept Each kind of data is kept about as long as it stays true. Rankings move daily, a transcript never changes, and an email address changes rarely. | Kept for | Tools | | --- | --- | | 1 hour | [`seo_get_page`](https://www.manifoldmcp.com/docs/tools/seo#seo_get_page), [`aeo_get_site_readiness`](https://www.manifoldmcp.com/docs/tools/aeo#aeo_get_site_readiness), [`reddit_search_posts`](https://www.manifoldmcp.com/docs/tools/reddit#reddit_search_posts), [`reddit_search_comments`](https://www.manifoldmcp.com/docs/tools/reddit#reddit_search_comments), [`reddit_get_post`](https://www.manifoldmcp.com/docs/tools/reddit#reddit_get_post), [`reddit_get_comments`](https://www.manifoldmcp.com/docs/tools/reddit#reddit_get_comments), [`reddit_search_subreddits`](https://www.manifoldmcp.com/docs/tools/reddit#reddit_search_subreddits) | | 6 hours | [`tiktok_get_videos`](https://www.manifoldmcp.com/docs/tools/tiktok#tiktok_get_videos), [`tiktok_get_video`](https://www.manifoldmcp.com/docs/tools/tiktok#tiktok_get_video), [`tiktok_get_comments`](https://www.manifoldmcp.com/docs/tools/tiktok#tiktok_get_comments), [`tiktok_search_videos`](https://www.manifoldmcp.com/docs/tools/tiktok#tiktok_search_videos), [`instagram_get_posts`](https://www.manifoldmcp.com/docs/tools/instagram#instagram_get_posts), [`instagram_get_reels`](https://www.manifoldmcp.com/docs/tools/instagram#instagram_get_reels), [`instagram_get_post`](https://www.manifoldmcp.com/docs/tools/instagram#instagram_get_post), [`instagram_get_comments`](https://www.manifoldmcp.com/docs/tools/instagram#instagram_get_comments), [`instagram_search_posts`](https://www.manifoldmcp.com/docs/tools/instagram#instagram_search_posts), [`facebook_get_posts`](https://www.manifoldmcp.com/docs/tools/facebook#facebook_get_posts), [`facebook_get_post`](https://www.manifoldmcp.com/docs/tools/facebook#facebook_get_post), [`facebook_get_comments`](https://www.manifoldmcp.com/docs/tools/facebook#facebook_get_comments), [`facebook_get_group_posts`](https://www.manifoldmcp.com/docs/tools/facebook#facebook_get_group_posts), [`youtube_get_videos`](https://www.manifoldmcp.com/docs/tools/youtube#youtube_get_videos), [`youtube_get_video`](https://www.manifoldmcp.com/docs/tools/youtube#youtube_get_video), [`youtube_get_comments`](https://www.manifoldmcp.com/docs/tools/youtube#youtube_get_comments), [`youtube_search_videos`](https://www.manifoldmcp.com/docs/tools/youtube#youtube_search_videos), [`linkedin_get_company_posts`](https://www.manifoldmcp.com/docs/tools/linkedin#linkedin_get_company_posts), [`linkedin_get_post`](https://www.manifoldmcp.com/docs/tools/linkedin#linkedin_get_post), [`linkedin_search_posts`](https://www.manifoldmcp.com/docs/tools/linkedin#linkedin_search_posts), [`twitter_get_tweets`](https://www.manifoldmcp.com/docs/tools/x#twitter_get_tweets), [`twitter_get_tweet`](https://www.manifoldmcp.com/docs/tools/x#twitter_get_tweet) | | 1 day | [`seo_get_serp`](https://www.manifoldmcp.com/docs/tools/seo#seo_get_serp), [`seo_get_position`](https://www.manifoldmcp.com/docs/tools/seo#seo_get_position), [`ads_search_ads`](https://www.manifoldmcp.com/docs/tools/ads#ads_search_ads), [`ads_get_advertiser_ads`](https://www.manifoldmcp.com/docs/tools/ads#ads_get_advertiser_ads), [`tiktok_get_profile`](https://www.manifoldmcp.com/docs/tools/tiktok#tiktok_get_profile), [`instagram_get_profile`](https://www.manifoldmcp.com/docs/tools/instagram#instagram_get_profile), [`facebook_get_profile`](https://www.manifoldmcp.com/docs/tools/facebook#facebook_get_profile), [`youtube_get_channel`](https://www.manifoldmcp.com/docs/tools/youtube#youtube_get_channel), [`linkedin_get_profile`](https://www.manifoldmcp.com/docs/tools/linkedin#linkedin_get_profile), [`linkedin_get_company`](https://www.manifoldmcp.com/docs/tools/linkedin#linkedin_get_company), [`twitter_get_profile`](https://www.manifoldmcp.com/docs/tools/x#twitter_get_profile) | | 7 days | [`seo_search_keywords`](https://www.manifoldmcp.com/docs/tools/seo#seo_search_keywords), [`seo_get_keyword_metrics`](https://www.manifoldmcp.com/docs/tools/seo#seo_get_keyword_metrics), [`seo_get_domain_overview`](https://www.manifoldmcp.com/docs/tools/seo#seo_get_domain_overview), [`seo_get_ranked_keywords`](https://www.manifoldmcp.com/docs/tools/seo#seo_get_ranked_keywords), [`seo_get_serp_competitors`](https://www.manifoldmcp.com/docs/tools/seo#seo_get_serp_competitors), [`seo_get_keyword_gap`](https://www.manifoldmcp.com/docs/tools/seo#seo_get_keyword_gap), [`seo_get_backlink_summary`](https://www.manifoldmcp.com/docs/tools/seo#seo_get_backlink_summary), [`seo_get_backlinks`](https://www.manifoldmcp.com/docs/tools/seo#seo_get_backlinks), [`seo_get_referring_domains`](https://www.manifoldmcp.com/docs/tools/seo#seo_get_referring_domains), [`seo_get_domain_ratings`](https://www.manifoldmcp.com/docs/tools/seo#seo_get_domain_ratings), [`seo_get_traffic_estimates`](https://www.manifoldmcp.com/docs/tools/seo#seo_get_traffic_estimates), [`aeo_search_prompts`](https://www.manifoldmcp.com/docs/tools/aeo#aeo_search_prompts), [`leads_search_people`](https://www.manifoldmcp.com/docs/tools/leads#leads_search_people), [`ads_search_advertisers`](https://www.manifoldmcp.com/docs/tools/ads#ads_search_advertisers), [`ads_get_ad`](https://www.manifoldmcp.com/docs/tools/ads#ads_get_ad), [`reddit_get_subreddit`](https://www.manifoldmcp.com/docs/tools/reddit#reddit_get_subreddit), [`tiktok_get_followers`](https://www.manifoldmcp.com/docs/tools/tiktok#tiktok_get_followers), [`tiktok_get_audience`](https://www.manifoldmcp.com/docs/tools/tiktok#tiktok_get_audience) | | 30 days | [`leads_search_companies`](https://www.manifoldmcp.com/docs/tools/leads#leads_search_companies), [`leads_get_company`](https://www.manifoldmcp.com/docs/tools/leads#leads_get_company), [`leads_get_person`](https://www.manifoldmcp.com/docs/tools/leads#leads_get_person), [`leads_get_email_status`](https://www.manifoldmcp.com/docs/tools/leads#leads_get_email_status), [`leads_get_domain_emails`](https://www.manifoldmcp.com/docs/tools/leads#leads_get_domain_emails), [`tiktok_get_transcript`](https://www.manifoldmcp.com/docs/tools/tiktok#tiktok_get_transcript), [`instagram_get_transcript`](https://www.manifoldmcp.com/docs/tools/instagram#instagram_get_transcript), [`facebook_get_transcript`](https://www.manifoldmcp.com/docs/tools/facebook#facebook_get_transcript), [`youtube_get_transcript`](https://www.manifoldmcp.com/docs/tools/youtube#youtube_get_transcript) | | 90 days | [`leads_get_email`](https://www.manifoldmcp.com/docs/tools/leads#leads_get_email) | | Never cached | [`seo_run_technical_crawl`](https://www.manifoldmcp.com/docs/tools/seo#seo_run_technical_crawl), [`aeo_run_ai_answers`](https://www.manifoldmcp.com/docs/tools/aeo#aeo_run_ai_answers), [`reddit_get_new_posts`](https://www.manifoldmcp.com/docs/tools/reddit#reddit_get_new_posts) | An empty answer (`NoData`) is never cached: asking again asks the provider again, at the `NoData` price of 1 credit. AI answers are never cached, because the point is what an engine says now. A new-posts window is never cached, because each call asks about a different stretch of time. A technical crawl is never cached either. ## Getting fresh data There is no parameter to skip the cache. If an answer is too old for your question, check `meta.data_as_of`, and ask again once the entry has expired. A small change to the question, such as a different `limit`, is also a different entry. Source: https://www.manifoldmcp.com/docs/caching --- # Plans and top-ups > Free credits to start, monthly plans, and top-ups that never expire. Every workspace starts on Pay as you go with 500 free credits. After that, buy credits when you need them, or take a monthly plan for a lower price per credit. | Plan | Price | Credits | Per credit | | --- | --- | --- | --- | | Pay as you go | Free | 500 once | | | Pro | $20 a month | 2,500 a month | 0.80¢ | | Pro | $40 a month | 5,500 a month | 0.73¢ | | Pro | $80 a month | 12,000 a month | 0.67¢ | | Pro | $150 a month | 24,000 a month | 0.63¢ | | Max | $250 a month | 42,000 a month | 0.60¢ | | Max | $500 a month | 90,000 a month | 0.56¢ | | Max | $1,000 a month | 190,000 a month | 0.53¢ | | Max | $2,000 a month | 400,000 a month | 0.50¢ | Change plan on the app's **Billing** page. There is no overage: when the credits run out, calls stop until you top up or the month renews. ## Plan credits and top-ups - **Monthly plan credits** arrive each month and reset at renewal. The free credits on Pay as you go come once. - **Top-ups** are one-off purchases of $10 to $500, at 100 credits a dollar. They never expire. - Plan credits are spent first, then top-ups. Billing can also top up for you when the balance drops below a threshold you choose. Turn on auto top-up on the Billing page. ## Limits today Every plan has these limits for now: - One call in flight at a time per provider family, per workspace. More calls wait up to 30 seconds, then get `ConcurrencyLimit`. - A technical crawl covers up to 1,000 pages. - One AI answers run takes up to 10 prompts. See [Errors and limits](https://www.manifoldmcp.com/docs/limits) for the rate limit. Source: https://www.manifoldmcp.com/docs/plans --- # Errors and limits > The typed errors a tool returns, what each one costs, and the rate limits. When a tool cannot answer, it returns a typed error in the result's structured content, with a `message`, `meta` and `hints`. Your agent can act on the type without reading the message. ## Tool errors | Error | Charged | What it means, and what to do | | --- | --- | --- | | `BudgetExceeded` | No | The estimate (`est_credits`) is above your `max_credits`. Raise the cap or ask for less | | `InsufficientCredits` | No | The balance is below the estimate. Stop and top up | | `NoData` | 1 credit | The provider has nothing for this input. Do not retry the same input | | `InvalidTarget` | No | The input is wrong: a bad domain, a bad parameter or a stale cursor. `target` names it. Fix it and retry | | `ProviderUnavailable` | No | A provider is down or slow. Retry after `retry_after_s` | | `ConcurrencyLimit` | No | Too many of your own calls at once. Retry after `retry_after_s`, and send fewer in parallel | | `TaskPending` | No | An async task is still running. Call [`get_task`](https://www.manifoldmcp.com/docs/tools#async-tasks) again after `poll_after_s` | | `TaskFailed` | No | An async task failed. The message says why | `TaskPending` is not marked as an error, because nothing went wrong. Every other type is. ## Rate limits - **Requests.** About 120 requests a minute per workspace, counted in each Cloudflare data centre separately, so the limit is approximate. A request over it gets HTTP 429 with `retry-after: 60`. - **Calls in flight.** One call at a time per provider family per workspace. The search tools, the people and company tools, and the social tools are separate families, so one of each can run at once. Extra calls wait up to 30 seconds for a turn, then return `ConcurrencyLimit`. ## Sign-in errors A missing, unknown or expired credential gets HTTP 401 before any tool runs. See [Authentication](https://www.manifoldmcp.com/docs/authentication#when-a-request-is-refused). Source: https://www.manifoldmcp.com/docs/limits