Cookbook: Track rankings across countries
Monitor the same keywords from several countries on a schedule with the SERP position tracker, and read the movements over time.
Goal: track how a set of keywords ranks for your domain in, say, the US, UK, and Germany — refreshed automatically every week — and see which keywords moved.
You’ll need
Section titled “You’ll need”- An organization with the SERP Position Tracker feature and available token balance.
- The keywords you want to track and the domain you’re tracking for.
- To automate it: an API key with the Search permission, or an MCP client.
The approach
Section titled “The approach”One campaign tracks one country’s SERP. To cover three countries you create one campaign per country with the same keywords, each on a weekly schedule. Then you read each campaign’s latest run to compare positions.
Create the first campaign
Section titled “Create the first campaign”In app.isearchfrom.com, open Position Tracker → New campaign.
Name it clearly, e.g. Brand keywords — US. Set the domain, add your keywords, and choose
country US, your language, device, and engine.
Add a schedule
Section titled “Add a schedule”Turn on a schedule and pick weekly at a time that suits you. See Schedules & alerts for cron and timezone details.
Duplicate for each country
Section titled “Duplicate for each country”Create two more campaigns — … — UK (country GB) and … — DE (country DE) — with the same
keywords but the matching country and language.
Read the results
Section titled “Read the results”Each run produces per-keyword positions. Open a campaign to see current ranks, and compare across your three campaigns. See Reading tracker results.
Create one campaign per country. The body is the same except country and language:
BASE_URL="https://api.isearchfrom.com/v1"
for pair in "US:en" "GB:en" "DE:de"; do country="${pair%%:*}"; lang="${pair##*:}" curl -s -X POST "$BASE_URL/tools/serp/position-tracker/campaigns" \ -H "X-API-Key: $ISEARCHFROM_API_KEY" \ -H "Content-Type: application/json" \ -d "{ \"name\": \"Brand keywords — $country\", \"domain\": \"example.com\", \"keywords\": [\"best crm software\", \"crm for startups\"], \"country\": \"$country\", \"language\": \"$lang\", \"device\": \"desktop\", \"engine\": \"google\", \"schedule\": { \"cron\": \"0 8 * * 1\", \"timezone\": \"UTC\" } }"doneTrigger an immediate first run (optional — schedules run on their own):
curl -X POST "$BASE_URL/tools/serp/position-tracker/campaigns/$CAMPAIGN_ID/runs" \ -H "X-API-Key: $ISEARCHFROM_API_KEY"Read the latest run and its per-keyword positions:
curl "$BASE_URL/tools/serp/position-tracker/campaigns/$CAMPAIGN_ID/runs?limit=1" \ -H "X-API-Key: $ISEARCHFROM_API_KEY"Once you’ve connected a client, ask in natural language:
Using iSearchFrom, create three position-tracking campaigns for example.com with thekeywords "best crm software" and "crm for startups" — one for the US (en), one for theUK (en), and one for Germany (de) — each on a weekly Monday 08:00 schedule. Then triggera first run for each and tell me the starting positions.The agent calls create_position_campaign three times, trigger_position_run for each, and reads
the results with get_position_run. See the tool catalog.
Verify
Section titled “Verify”- Each campaign shows a completed run with a position for every keyword.
- Re-running next week, the campaign shows movement (up/down) per keyword.
- Token balance dropped by roughly
keywords × countriesper run — that’s expected; each keyword check costs tokens. See Token usage.
Variations
Section titled “Variations”- Get notified on big moves — add alert rules and a webhook, then relay them to Slack. See Send alerts to Slack.
- Cities, not just countries — set a
cityfor hyper-local SERPs (great for local SEO). See Local SEO. - Track competitors too — add competitor domains to the campaign to see where they rank for the same terms.