[Cotlet](https://cotlet.dev/index.md) · [Integrations](https://cotlet.dev/integrations.md) · [How it works](https://cotlet.dev/how-it-works.md) · [Use cases](https://cotlet.dev/use-cases.md) · [Security](https://cotlet.dev/security.md) · [For developers](https://cotlet.dev/for-developers.md) · [For automation agencies](https://cotlet.dev/for-agencies.md) · [Blog](https://cotlet.dev/blog.md) · [API docs](https://cotlet.dev/docs.md) · [Help center](https://cotlet.dev/help.md) · [Changelog](https://cotlet.dev/changelog.md) · [Contact](https://cotlet.dev/contact.md) · [Pricing](https://cotlet.dev/pricing.md) · [Sign up](https://cotlet.dev/signup)

# Tag AccuRanker keywords in bulk

> Tag or untag hundreds of AccuRanker keywords by landing page or search term, so Share of Voice and reports group by campaign without manual selecting.

Source: https://cotlet.dev/integrations/accuranker-api-mcp-server/tag-keywords-in-bulk

Your Tag Cloud is out of date: new pricing keywords have no tag, an old test tag is still on dozens of keywords, and the report that groups by tag shows the wrong numbers.

Cotlet does it in your own AccuRanker account with list\_keywords, add\_tags and remove\_tags, called by your AI agent, an n8n workflow or a script.

[Sign up free](https://cotlet.dev/app/signup?app=accuranker) [All AccuRanker tools](https://cotlet.dev/integrations/accuranker-api-mcp-server.md)

Hosted · nothing to install or maintain

## Can AccuRanker do this on its own?

The official MCP can read tags with list\_tags but cannot create, edit or delete them (checked 23 Oct 2026). The Write API pages name groups, domains and keywords, not tags. In the app, dynamic tags tag keywords by filter rules and are set up in the Tag Cloud, not from a list a colleague sends you.

## How you do it in AccuRanker today

1. Open the domain, go to the Keywords tab, click Add filter and choose Multiple Keywords, paste the list and click Add.
2. Tick the keywords, click Edit, choose Add tags and pick the tags. You can also click Add Tag in the Tag Cloud and fill out the form.
3. To tag from a file instead, download the CSV report from the keyword list, keep the 16 columns the guide names, write tags as tag1,tag2,tag3 and upload it from the Import menu.
4. To remove a tag from one keyword, hover over the tag and click the small x. For several, select the keywords and choose Delete, then Remove Tags.
5. None of this runs on its own: every new batch of keywords needs the same filter and click sequence again.

## How to tag AccuRanker keywords in bulk

Prompt

```
In AccuRanker, find the keywords on Acme Outdoors whose landing page is under /pricing and tag them pricing-pages. Remove the tag q3-test from every keyword that still has it.
```

1. 01  
### Read the current tags  
Your agent calls list\_tags first, so it reuses the spelling of tags that exist, such as pricing-pages, instead of creating pricing\_pages next to it.
2. 02  
### Select the keywords  
list\_keywords runs with the domain and returns the landing page URL of each row. The agent keeps rows whose landing page starts with /pricing and lists the ones with no landing page for you.
3. 03  
### Tag in one pass  
add\_tags sends the keyword IDs and the tag names together, so a tag is not applied row by row. It adds static tags: they stay on the keywords until someone removes them.
4. 04  
### Remove the old tag  
For q3-test, the agent reads the keywords that carry it and calls remove\_tags with their IDs. It removes the tag from those keywords only; the tag itself stays in the Tag Cloud until you delete it there.
5. 05  
### Leave dynamic tags alone  
remove\_tags works on static tags only, as the x in the app does. When a tag in list\_tags is dynamic, the agent reports it and leaves it, because AccuRanker removes it by itself once a keyword stops matching the filter.

### What you get back

Example data

```
Domain: Acme Outdoors (48213)
Tagged pricing-pages: 23 keywords
No landing page, left for you: 2
Removed q3-test from 31 keywords
Skipped, dynamic tag: top-movers
```

### Other ways to ask

- Tag every keyword containing "alternative" with competitor-intent.
- Tag the keywords from this pasted list with the campaign name, then show me the tag counts.
- Remove the tag q3-test from all domains in the Clients group.
- Every week, tag new keywords whose landing page is a blog post with content.

## What AccuRanker allows, and what to know first

- AccuRanker has two kinds of tags: a static tag stays on its keywords until you delete the tag or the keywords, and a dynamic tag follows filter rules and falls away when a keyword stops matching.
- The small x on a tag in the keyword list works for static tags only.
- Deleting a tag in the Tag Cloud removes it from all keywords; "Edit static tag" removes it from only some.
- In the CSV import, changing anything besides tags creates duplicate keywords, so the guide says to keep all 16 columns and edit only Tags.
- The guide gives no limit on tags per keyword and no naming rules, so the agent keeps names short and lowercase with hyphens.

add\_tags and remove\_tags change only your own AccuRanker data and reach no one else, so they run without asking first.

Sources: [AccuRanker Help: Static tags and tagging keywords](https://www.accuranker.com/help/keywords/tagging-keywords/) · [AccuRanker Help: How to bulk add tags](https://www.accuranker.com/help/keywords/bulk-adding-tags/) · [AccuRanker Help: Dynamic Tagging](https://www.accuranker.com/help/keywords/dynamic-tagging-rules/) · [AccuRanker Help: MCP tool reference](https://www.accuranker.com/help/getting-started/accuranker-mcp-tool-reference/)

## Call add\_tags from a script

curl

```
curl -X POST https://cotlet.dev/api/v1/accuranker/domains/48213/tags \
  -H "Authorization: Bearer $COTLET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"keyword_ids":["k_90311","k_90312","k_90340"],"tags":["pricing-pages"]}'
```

Example response

```
{
"tagged_keywords": 3,
"tags_applied": [
"pricing-pages"
],
"tag_type": "static"
}
```

MCP: add https://cotlet.dev/mcp/v1 with the same key; the call is accuranker\_write → add\_tags. Example data.

[Schedule it in n8n, Make, Zapier or cron](https://cotlet.dev/integrations/accuranker-api-mcp-server.md#automations)

## AccuRanker tools this automation uses

__Cotlet AccuRanker tools used to tag AccuRanker keywords in bulk__
| Tool | Parameters |
| -------------- | ----------------------------------------------- |
| list\_keywords | domain\_id, search, tag, search\_engine, cursor |
| add\_tags | domain\_id, keyword\_ids, tags |
| remove\_tags | domain\_id, keyword\_ids, tags |

[All 11 AccuRanker tools with descriptions](https://cotlet.dev/integrations/accuranker-api-mcp-server.md#tools)

## Frequently asked questions

### Is it safe to connect AccuRanker to Cotlet?

Yes. You sign in to AccuRanker yourself, in your own Cloud Browser in the EU, and we never save your password. Your agents only get AccuRanker once you enable it, every background request is listed, and the browser profile is stored encrypted with AES-256-GCM, the cipher 1Password uses for its vaults. The AI model never sees a login, posts and messages wait for your OK, and Disable for agents cuts access in one click. Independent scanners grade cotlet.dev A+ on Qualys SSL Labs, securityheaders.com and Mozilla Observatory; live results are on https://cotlet.dev/security.

## More AccuRanker automations

- [Bulk add keywords to AccuRanker](https://cotlet.dev/integrations/accuranker-api-mcp-server/bulk-add-keywords.md)
- [Set up a new client domain in AccuRanker](https://cotlet.dev/integrations/accuranker-api-mcp-server/set-up-new-client-domain.md)
- [AccuRanker API and MCP server: every tool](https://cotlet.dev/integrations/accuranker-api-mcp-server.md)
- [All use cases](https://cotlet.dev/use-cases.md)

## Give your agent access to AccuRanker.

Free 7-day trial with 2,000 credits, no card needed. Cotlet is independent and not affiliated with AccuRanker.

[Sign up free](https://cotlet.dev/app/signup?app=accuranker)

---

Give your AI agents your signed-in browser.

**Product:** [Integrations](https://cotlet.dev/integrations.md) · [Use cases](https://cotlet.dev/use-cases.md) · [How it works](https://cotlet.dev/how-it-works.md) · [Pricing](https://cotlet.dev/pricing.md) · [Security](https://cotlet.dev/security.md)

**Resources:** [Blog](https://cotlet.dev/blog.md) · [API docs](https://cotlet.dev/docs.md) · [Help center](https://cotlet.dev/help.md) · [Changelog](https://cotlet.dev/changelog.md) · [GitHub](https://github.com/cotletdev/cotlet)

**Solutions:** [For developers](https://cotlet.dev/for-developers.md) · [For automation agencies](https://cotlet.dev/for-agencies.md)

**Company:** [About](https://cotlet.dev/about.md) · [AI info: company facts](https://cotlet.dev/ai-info.md) · [Contact](https://cotlet.dev/contact.md)

**Legal:** [Terms of service](https://cotlet.dev/terms) · [Privacy policy](https://cotlet.dev/privacy) · [Refund policy](https://cotlet.dev/refunds) · [Acceptable use](https://cotlet.dev/acceptable-use) · [Cookie policy](https://cotlet.dev/cookies) · [DPA](https://cotlet.dev/dpa) · [Subprocessors](https://cotlet.dev/subprocessors)

**Elsewhere:** [Status page](https://status.cotlet.dev) · [Cotlet on GitHub](https://github.com/cotletdev) · [Cotlet on X](https://x.com/cotletdev) · [Cotlet on LinkedIn](https://www.linkedin.com/company/cotletdev) · [Cotlet on Product Hunt](https://www.producthunt.com/products/cotlet) · [Cotlet on Crunchbase](https://www.crunchbase.com/organization/cotlet) · [Cotlet on SaaSHub](https://www.saashub.com/cotlet)

Cotlet.dev is built by Bart Krawczyk and Jake Slugocki, the founders of Take Group sp. z o.o., ul. Wincentego Janasa 4, 40-855 Katowice, Poland. KRS 0000871398, NIP 6342984273, VAT EU: PL6342984273. [About us](https://cotlet.dev/about.md)

Cotlet is an independent service. It is not affiliated with, endorsed by or sponsored by any of the products listed on this site. Product names are trademarks of their respective owners.
