Skip to main content
Back to all posts

How to Get Keyword Search Volume via API in 2026

6 min readJonathan Geiger
keyword researchsearch volumetutorialSEO

Getting keyword search volume programmatically is usually more painful than it should be. The standard path runs through a Google Ads account, an OAuth flow, and the Keyword Planner, which hands back bucketed ranges like "10K to 100K" instead of real numbers unless you are spending money.

Trackee skips all of that. You send a list of keywords in one POST request and get back monthly search volume, CPC, and competition for each one.

This tutorial walks through the POST /v1/keywords endpoint end to end: getting a key, making the call, reading the fields, batching keywords, and scoping results to a specific market.

What you need

Three things:

  • A free Trackee account.
  • An access key from the dashboard.
  • The x-access-key header on every request.

No OAuth, no ad account, no billing setup. The free plan includes credits so you can run real queries while you build.

Step 1: Get your API key

Sign in to your Trackee dashboard and open the API keys section. Create a key and copy it somewhere safe. You will paste it into the x-access-key header.

Treat the key like a password. Keep it in an environment variable rather than hardcoding it, and never commit it to a repo. If a key leaks, rotate it from the dashboard and the old one stops working.

Step 2: Look up keywords

Send the keywords you want data for as a JSON array. Here is the full request:

curl -X POST https://api.trackee.dev/v1/keywords \
  -H "x-access-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "keywords": ["crm software", "email marketing"] }'

And the full response:

{
  "success": true,
  "credits": { "charged": 2, "remaining": 4998 },
  "data": {
    "location": "United States",
    "language": "en",
    "keywords": [
      {
        "keyword": "crm software",
        "volume": 165000,
        "cpc": 39.75,
        "competition": "LOW",
        "competition_index": 7
      },
      {
        "keyword": "email marketing",
        "volume": 90500,
        "cpc": 74.34,
        "competition": "LOW",
        "competition_index": 8
      }
    ]
  }
}

Here is what each field on a keyword means:

  • keyword is the term you asked about, echoed back so you can match rows to your input.
  • volume is the estimated average monthly searches. In the example, "crm software" gets about 165,000 searches a month in the US.
  • cpc is the average cost per click in dollars if you were to advertise on that term. A high number, like the 74.34 on "email marketing", signals that advertisers pay real money for those clicks, which usually means commercial intent.
  • competition is a coarse label: LOW, MEDIUM, or HIGH. It reflects how many advertisers are bidding, not how hard the term is to rank for organically.
  • competition_index is the same idea on a 0 to 100 scale, so you can sort and filter numerically instead of parsing a string.

Note that competition here is ad competition, not organic difficulty. A keyword can have LOW ad competition and still be brutal to rank for in the regular results. Use it as a demand and intent signal, then pair it with rank data when you plan.

Pricing is simple: 1 credit per keyword. The two keywords above charged 2 credits, and the response tells you exactly what was charged and what is left. You can send up to 100 keywords in a single call.

Batch, do not loop

The most common mistake with this endpoint is calling it once per keyword in a loop. Do not do that.

The endpoint takes an array. Send all your keywords at once, up to 100 per call:

curl -X POST https://api.trackee.dev/v1/keywords \
  -H "x-access-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "keywords": ["crm software", "email marketing", "marketing automation", "sales pipeline", "lead scoring"] }'

The price is identical either way, since you pay per keyword, not per request. Batching just saves you round trips, connection overhead, and rate-limit headroom. Five keywords in one call is one HTTP request instead of five.

If you have more than 100 keywords, split them into chunks of 100 and send each chunk as its own call. A list of 450 keywords becomes 5 requests instead of 450.

Scope to a market

Search volume is not global. "Football" means something very different in the US than in the UK, and the numbers reflect that. By default the endpoint returns United States data in English, which is why you see "location": "United States" and "language": "en" in the response.

To target a different market, pass location and language in the body:

curl -X POST https://api.trackee.dev/v1/keywords \
  -H "x-access-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "keywords": ["crm software", "email marketing"], "location": "United Kingdom", "language": "en" }'

The response echoes back the location and language it used, so you can confirm you queried the right market. Run the same keyword list against a few locations to compare demand across regions before you commit to a market.

Turn volume into a plan

Raw numbers are not a strategy. The point of pulling volume is to decide where to spend your effort.

A quick way to prioritize: sort your keywords by volume, then look at competition_index and cpc together. High volume with lower competition is the obvious sweet spot. High CPC tells you the term converts, which matters more than raw traffic if you are chasing revenue instead of pageviews.

Volume tells you the size of the prize. It does not tell you whether you can win it. For that you need to know where you actually rank. Pull volume for your target list here, then feed the promising terms into the Rank Tracking API to see your current positions. A high-volume keyword where you sit at position 14 is a bigger opportunity than a low-volume one where you already own the top spot.

That combination, demand from this endpoint plus position from rank tracking, is what turns a keyword list into a ranked backlog you can act on.

What's next

You now have everything you need to pull search volume, CPC, and competition for any list of keywords with a single request.

From here:

  • Read the full Keyword Research API page for the complete parameter list and more examples.
  • Browse the API reference for every endpoint, including rank tracking and AI visibility.
  • Check the free plan to see included credits and grab a key.

Start with a small batch of your real target keywords, confirm the numbers look right for your market, then scale up to your full list.

You might also like