> ## Documentation Index
> Fetch the complete documentation index at: https://radarkit.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Tools

> Every tool the Radarkit MCP server offers, its cost and its arguments.

export const limits = {
  ipPerMinute: 600,
  heavyPerMinute: 10,
  writePerMinute: 20,
  promptsPerDay: 200,
  promptsPerCall: 50,
  rowsPerPage: 25,
  mcpRowsPerCall: 25,
  mcpAnswerChars: 1500,
  mcpAnswerCharsMax: 6000,
  maxDaysRows: 31,
  maxDaysVisibility: 366,
  cardExportRows: 5000,
  exportMaxDays: 365,
  exportMaxRows: 250000,
  exportFileDays: 7,
  downloadLinkMinutes: 30,
  exportsPerUser: 1,
  exportsPerOwner: 3
};

Every tool maps to one REST endpoint and costs the same. A key only sees the tools its permissions allow. Every result is the REST envelope: `data`, `meta`, `credits`, `request_id`.

Shared rules:

* `project` is the 24-character id from `list_projects`.
* `from` and `to` are `YYYY-MM-DD`. Row tools cover at most {limits.maxDaysRows} days per call. `get_visibility` covers {limits.maxDaysVisibility}.
* `model` is one name or several separated by commas: `chatgpt`, `gemini`, `perplexity`, `copilot`, `aimode`, `aioverview`.
* List tools return at most {limits.mcpRowsPerCall} rows, 25 by default. Follow `next_cursor` while `has_more` is `true`.

## Read

| Tool                 | Credits        | What it returns                                                                    |
| -------------------- | -------------- | ---------------------------------------------------------------------------------- |
| `get_account`        | 0              | Who the key belongs to, permissions, plan, both balances, rate limits.             |
| `list_projects`      | 1              | Every project the key can reach, with ids, models tracked, prompt count, next run. |
| `get_project`        | 1              | One project.                                                                       |
| `list_topics`        | 1              | The topics with how many prompts each holds.                                       |
| `list_prompts`       | 1              | The prompts with topic, last check and status per model.                           |
| `get_visibility`     | 1              | Visibility and brand score per model per day, plus the summary.                    |
| `list_responses`     | 1, 2 with text | One row per answer with brand mention, position, sentiment, searches, competitors. |
| `get_response`       | 2              | One answer in full with sources, competitors, rankings and products.               |
| `list_sources`       | 1              | One row per page an answer cited or consulted.                                     |
| `top_source_domains` | 2              | Domains ranked by how often answers used them.                                     |
| `get_competitors`    | 2              | Share of voice: who gets recommended, how often, at what position.                 |
| `list_rankings`      | 1              | One row per recommended domain per answer, with its position.                      |
| `get_query_fanout`   | 1              | One row per answer that searched, with the queries.                                |
| `get_web_search`     | 2              | How often models searched, and per prompt the distinct queries with counts.        |
| `get_sentiment`      | 2              | Positive, mixed and negative counts and shares, overall and per model.             |
| `estimate_export`    | 0              | Row count and whether there are enough Export rows.                                |
| `list_exports`       | 1              | The last 50 exports with status and download links.                                |
| `get_export`         | 0              | One export's status and download link.                                             |

## Write

| Tool             | Credits               | What it does                                                  |
| ---------------- | --------------------- | ------------------------------------------------------------- |
| `add_topic`      | 1                     | Creates a topic. Returns the existing one on a name clash.    |
| `add_prompts`    | 1                     | Adds up to {limits.promptsPerCall} prompts. Skips duplicates. |
| `run_prompt_now` | 1 + 1 realtime credit | Asks every model the prompt right away.                       |
| `create_export`  | Export rows           | Starts an export.                                             |

## Agents

| Tool                     | Credits                 | What it does                                                                |
| ------------------------ | ----------------------- | --------------------------------------------------------------------------- |
| `create_content_article` | 1 + 1 AI content credit | Has the Content agent write an article.                                     |
| `get_content_run`        | 0, 2 with text          | Status of an article run, with the article's title, scores and editor link. |
| `retry_content_run`      | 1                       | Restarts a failed or cancelled run.                                         |

## Arguments

<AccordionGroup>
  <Accordion title="get_account">
    No arguments.
  </Accordion>

  <Accordion title="list_projects">
    No arguments.
  </Accordion>

  <Accordion title="get_project">
    | Argument  | Type   | Required | Meaning     |
    | --------- | ------ | -------- | ----------- |
    | `project` | string | yes      | Project id. |
  </Accordion>

  <Accordion title="list_topics">
    | Argument  | Type   | Required | Meaning     |
    | --------- | ------ | -------- | ----------- |
    | `project` | string | yes      | Project id. |
  </Accordion>

  <Accordion title="list_prompts">
    | Argument   | Type    | Required | Meaning                                       |
    | ---------- | ------- | -------- | --------------------------------------------- |
    | `project`  | string  | yes      | Project id.                                   |
    | `topic_id` | integer | no       | Only prompts in this topic.                   |
    | `limit`    | integer | no       | Rows per call, up to {limits.mcpRowsPerCall}. |
    | `cursor`   | string  | no       | `next_cursor` from the previous call.         |
  </Accordion>

  <Accordion title="get_visibility">
    | Argument     | Type   | Required | Meaning                                            |
    | ------------ | ------ | -------- | -------------------------------------------------- |
    | `project`    | string | yes      | Project id.                                        |
    | `from`, `to` | string | no       | Date range, up to {limits.maxDaysVisibility} days. |
    | `model`      | string | no       | Models to include.                                 |
  </Accordion>

  <Accordion title="list_responses">
    | Argument            | Type    | Required | Meaning                                                                                                |
    | ------------------- | ------- | -------- | ------------------------------------------------------------------------------------------------------ |
    | `project`           | string  | yes      | Project id.                                                                                            |
    | `from`, `to`        | string  | no       | Date range, up to {limits.maxDaysRows} days.                                                           |
    | `model`             | string  | no       | Models to include.                                                                                     |
    | `prompt_id`         | integer | no       | Only answers to this prompt.                                                                           |
    | `brand_mentioned`   | boolean | no       | `true` for answers that mention the brand, `false` for the rest.                                       |
    | `limit`             | integer | no       | Rows per call, up to {limits.mcpRowsPerCall}.                                                          |
    | `cursor`            | string  | no       | `next_cursor` from the previous call.                                                                  |
    | `include_content`   | boolean | no       | Include the answer as Markdown. 2 credits.                                                             |
    | `max_content_chars` | integer | no       | Characters of answer text per row, 200 to {limits.mcpAnswerCharsMax}. Default {limits.mcpAnswerChars}. |
  </Accordion>

  <Accordion title="get_response">
    | Argument            | Type    | Required | Meaning                                                       |
    | ------------------- | ------- | -------- | ------------------------------------------------------------- |
    | `project`           | string  | yes      | Project id.                                                   |
    | `response_id`       | integer | yes      | Response id from `list_responses`.                            |
    | `max_content_chars` | integer | no       | Characters of answer text, 200 to {limits.mcpAnswerCharsMax}. |
  </Accordion>

  <Accordion title="list_sources">
    | Argument          | Type    | Required | Meaning                                                                  |
    | ----------------- | ------- | -------- | ------------------------------------------------------------------------ |
    | `project`         | string  | yes      | Project id.                                                              |
    | `from`, `to`      | string  | no       | Date range, up to {limits.maxDaysRows} days.                             |
    | `model`           | string  | no       | Models to include.                                                       |
    | `prompt_id`       | integer | no       | Only sources for this prompt.                                            |
    | `domain`          | string  | no       | Only this domain.                                                        |
    | `cited`           | boolean | no       | `true` for pages linked in the answer, `false` for pages only consulted. |
    | `limit`, `cursor` |         | no       | Paging.                                                                  |
  </Accordion>

  <Accordion title="top_source_domains">
    | Argument     | Type    | Required | Meaning                                           |
    | ------------ | ------- | -------- | ------------------------------------------------- |
    | `project`    | string  | yes      | Project id.                                       |
    | `from`, `to` | string  | no       | Date range, up to {limits.maxDaysRows} days.      |
    | `model`      | string  | no       | Models to include.                                |
    | `limit`      | integer | no       | Domains to return, up to {limits.mcpRowsPerCall}. |
  </Accordion>

  <Accordion title="get_competitors">
    | Argument     | Type   | Required | Meaning                                      |
    | ------------ | ------ | -------- | -------------------------------------------- |
    | `project`    | string | yes      | Project id.                                  |
    | `from`, `to` | string | no       | Date range, up to {limits.maxDaysRows} days. |
    | `model`      | string | no       | Models to include.                           |
  </Accordion>

  <Accordion title="list_rankings">
    | Argument          | Type    | Required | Meaning                                                       |
    | ----------------- | ------- | -------- | ------------------------------------------------------------- |
    | `project`         | string  | yes      | Project id.                                                   |
    | `from`, `to`      | string  | no       | Date range, up to {limits.maxDaysRows} days.                  |
    | `model`           | string  | no       | Models to include.                                            |
    | `prompt_id`       | integer | no       | Only rankings for this prompt.                                |
    | `domain`          | string  | no       | Only this domain, for example your own to see where you rank. |
    | `limit`, `cursor` |         | no       | Paging.                                                       |
  </Accordion>

  <Accordion title="get_query_fanout">
    | Argument          | Type    | Required | Meaning                                      |
    | ----------------- | ------- | -------- | -------------------------------------------- |
    | `project`         | string  | yes      | Project id.                                  |
    | `from`, `to`      | string  | no       | Date range, up to {limits.maxDaysRows} days. |
    | `model`           | string  | no       | Models to include.                           |
    | `prompt_id`       | integer | no       | Only this prompt.                            |
    | `limit`, `cursor` |         | no       | Paging.                                      |
  </Accordion>

  <Accordion title="get_web_search">
    | Argument     | Type    | Required | Meaning                                                            |
    | ------------ | ------- | -------- | ------------------------------------------------------------------ |
    | `project`    | string  | yes      | Project id.                                                        |
    | `from`, `to` | string  | no       | Date range, up to {limits.maxDaysRows} days.                       |
    | `model`      | string  | no       | Models to include.                                                 |
    | `prompt_id`  | integer | no       | One prompt. Leave out for every active prompt, most queries first. |
    | `limit`      | integer | no       | Prompts to return.                                                 |
  </Accordion>

  <Accordion title="get_sentiment">
    | Argument     | Type   | Required | Meaning                                      |
    | ------------ | ------ | -------- | -------------------------------------------- |
    | `project`    | string | yes      | Project id.                                  |
    | `from`, `to` | string | no       | Date range, up to {limits.maxDaysRows} days. |
    | `model`      | string | no       | Models to include.                           |
  </Accordion>

  <Accordion title="estimate_export and create_export">
    | Argument         | Type       | Required | Meaning                                                                   |
    | ---------------- | ---------- | -------- | ------------------------------------------------------------------------- |
    | `project`        | string     | yes      | Project id.                                                               |
    | `type`           | string     | yes      | `responses`, `sources`, `competitors`, `rankings` or `query_fanout`.      |
    | `format`         | string     | no       | `csv` or `ndjson`. Default `csv`.                                         |
    | `from`, `to`     | string     | no       | Date range, up to {limits.exportMaxDays} days. Default: the last 30 days. |
    | `models`         | string\[]  | no       | Models to include.                                                        |
    | `topic_ids`      | integer\[] | no       | Only prompts in these topics.                                             |
    | `prompt_ids`     | integer\[] | no       | Only these prompts.                                                       |
    | `include_answer` | boolean    | no       | `responses` only. Include the answer as Markdown. Default `true`.         |
  </Accordion>

  <Accordion title="list_exports">
    | Argument  | Type   | Required | Meaning     |
    | --------- | ------ | -------- | ----------- |
    | `project` | string | yes      | Project id. |
  </Accordion>

  <Accordion title="get_export">
    | Argument | Type   | Required | Meaning                                           |
    | -------- | ------ | -------- | ------------------------------------------------- |
    | `export` | string | yes      | Export id from `create_export` or `list_exports`. |
  </Accordion>

  <Accordion title="add_topic">
    | Argument  | Type   | Required | Meaning                           |
    | --------- | ------ | -------- | --------------------------------- |
    | `project` | string | yes      | Project id.                       |
    | `name`    | string | yes      | Topic name, up to 255 characters. |
  </Accordion>

  <Accordion title="add_prompts">
    | Argument   | Type      | Required | Meaning                                                               |
    | ---------- | --------- | -------- | --------------------------------------------------------------------- |
    | `project`  | string    | yes      | Project id.                                                           |
    | `topic_id` | integer   | yes      | Topic id.                                                             |
    | `prompts`  | string\[] | yes      | 1 to {limits.promptsPerCall} prompt texts, each up to 255 characters. |
  </Accordion>

  <Accordion title="run_prompt_now">
    | Argument    | Type    | Required | Meaning     |
    | ----------- | ------- | -------- | ----------- |
    | `project`   | string  | yes      | Project id. |
    | `prompt_id` | integer | yes      | Prompt id.  |
  </Accordion>

  <Accordion title="create_content_article">
    | Argument             | Type    | Required | Meaning                                                                                                                                 |
    | -------------------- | ------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------- |
    | `project`            | string  | yes      | Project id.                                                                                                                             |
    | `prompt_id`          | integer | yes      | The prompt the article targets.                                                                                                         |
    | `article_type`       | string  | no       | `blog_post`, `listicle`, `comparison`, `alternatives`, `faq` or `first_person_review`.                                                  |
    | `keyword`            | string  | yes      | The keyword the article should rank for.                                                                                                |
    | `country`            | string  | no       | Two-letter country to rank in; drives the SERP research. Default: the project region.                                                   |
    | `language`           | string  | no       | `en`, `da`, `de`, `es`, `fr`, `it`, `pt`, `nl`, `pl` or `ru`. Default: English.                                                         |
    | `additional_details` | string  | no       | Instructions for the writer, up to 1,500 characters.                                                                                    |
    | `force`              | boolean | no       | Write a new article even if one for the same prompt, type and keyword exists.                                                           |
    | `sheet`              | string  | no       | Content sheet the row goes on under Agents → Sheets. Default: the project's "API" sheet. A full sheet (50 rows) rolls over to "Name 2". |
  </Accordion>

  <Accordion title="get_content_run">
    | Argument       | Type    | Required | Meaning                                     |
    | -------------- | ------- | -------- | ------------------------------------------- |
    | `run`          | integer | yes      | Run id from `create_content_article`.       |
    | `include_body` | boolean | no       | Include the article as Markdown. 2 credits. |
  </Accordion>

  <Accordion title="retry_content_run">
    | Argument | Type    | Required | Meaning |
    | -------- | ------- | -------- | ------- |
    | `run`    | integer | yes      | Run id. |
  </Accordion>
</AccordionGroup>
