BrightLocal automation

Bulk update BrightLocal Local Rank Tracker keywords

A new service line means every location needs a new keyword, and BrightLocal tracks keywords per report, so the change touches dozens of reports.

Cotlet does it in your own BrightLocal account with list_rank_tracker_reports, update_rank_tracker_keywords and rerun_report, called by your AI agent, an n8n workflow or a script.

Hosted · nothing to install or maintain

Can BrightLocal do this on its own?

BrightLocal's REST API can update reports, and the CSV bulk upload covers many reports in the app (checked 23 Oct 2026). The official MCP server is read-only. A city-specific keyword per location still means building the CSV rows by hand or writing code against the API.

How you do it in BrightLocal today

  1. Open Local SEO Tools > Rank Tracker and click Settings, then Download Report Settings for a CSV of every location's rank tracker settings.
  2. Open the CSV and edit the Search terms column (J), separating terms with a pipe character, for example plumber new york|plumber near me.
  3. Back on the overview page, click Bulk Uploads, then Upload CSV.
  4. Click Actions > Re-run Report in each report, because the new keywords show only after a run.
  5. For one report, open Actions > Edit Report, scroll to Search Settings, enter one term per line and click Update Report.

How to bulk update BrightLocal Local Rank Tracker keywords

Prompt

Add "invisalign" plus the city to the keywords of every Local Rank Tracker report in the Texas group, then re-run those reports.
  1. 01

    List the reports to change

    list_rank_tracker_reports returns each report with its location city and current keyword count. The agent keeps the reports in the group you named.

  2. 02

    Check the keyword ceiling

    A Local Rank Tracker report holds at most 100 search terms. The agent counts the new total first and skips a report that would pass 100, naming it in the result.

  3. 03

    Build the keyword per city

    For each report the agent adds the term with the city from the location, for example "invisalign austin", and drops terms that are already tracked.

  4. 04

    Save the keywords

    update_rank_tracker_keywords saves the new list on the report. It reaches nobody and one more call restores the old list, so it does not wait for your OK.

  5. 05

    Re-run so the data appears

    BrightLocal shows new keywords only after the next run. rerun_report starts it, and the agent asks before each run if you left confirmation on, because every manual run is counted against the account.

What you get back

Example data

Texas group: 12 reports
Added "invisalign" + city to 11
Skipped 1: Summit Ortho already tracks 100 terms
Re-run started for 11 reports

Other ways to ask

  • Remove "teeth whitening" from every report and add "teeth whitening near me".
  • Add the keywords from my pasted list to one location only.
  • Update the keywords but do not re-run anything, I will run them tonight.

What BrightLocal allows, and what to know first

  • A Local Rank Tracker report accepts up to 100 search terms; more needs a custom plan.
  • Changes to a report's settings do not show until the next report run.
  • Ad hoc Local Rank Tracker reports are run once and must be re-run by hand to update.
  • On an Ad-hoc location, each manual report run uses an Ad-hoc Report Run from the plan.

rerun_report asks for your OK by default. To run it on a schedule without you, switch confirmation off for that tool in your dashboard.

Sources: BrightLocal Help: Can I bulk update keywords in Local Rank Tracker reports? · BrightLocal Help: How do I add or change keywords in a Rank Tracker report? · BrightLocal Help: How many search terms can I enter into the Rank Tracker? · BrightLocal Help: Getting Started with BrightLocal

Call update_rank_tracker_keywords from a script

curl

curl -X PATCH https://cotlet.dev/api/v1/brightlocal/reports/lrt_4821/rank-tracker-keywords \
  -H "Authorization: Bearer $COTLET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"keywords":["dentist austin","emergency dentist austin","teeth whitening austin","dental implants near me","invisalign austin"]}'

Example response

{
  "report_id": "lrt_4821",
  "location": "Harbor Dental, Austin",
  "keyword_count": 5,
  "added": [
    "invisalign austin"
  ],
  "removed": [],
  "takes_effect": "next run"
}

MCP: add https://cotlet.dev/mcp/v1 with the same key; the call is brightlocal_write → update_rank_tracker_keywords. Example data.

Schedule it in n8n, Make, Zapier or cron

BrightLocal tools this automation uses

Cotlet BrightLocal tools used to bulk update BrightLocal Local Rank Tracker keywords
Tool Parameters
list_rank_tracker_reports location_id, cursor
update_rank_tracker_keywords report_id, keywords
rerun_report report_id, report_type
All 11 BrightLocal tools with descriptions

Frequently asked questions

Is it safe to connect BrightLocal to Cotlet?

Yes. You sign in to BrightLocal yourself, in your own Cloud Browser in the EU, and we never save your password. Your agents only get BrightLocal 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.

Give your agent access to BrightLocal.

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