Which Countries Are Supported for Keyword Difficulty and Search Intent in Open SEO?

Keyword difficulty and search intent data is available for all DataForSEO Labs-supported markets, but is explicitly disabled for Google Ads-only countries such as Iceland (location code 2352) where these fields return null.

Open SEO retrieves keyword difficulty (KD) and search intent metrics through the DataForSEO Labs service. While the majority of global markets support these advanced features, certain countries served exclusively by Google Ads lack analytical depth for these specific metrics. Understanding this distinction is critical when interpreting keyword data across different regions.

Understanding the Data Provider Architecture

The library maintains a strict mapping between location codes and their respective data providers in src/shared/keyword-locations.ts. This central configuration distinguishes between markets served by DataForSEO Labs (which provide full KD and intent data) and those limited to Google Ads data (which omit these metrics).

The getKeywordDataProvider function serves as the authoritative source for determining capability. It accepts a numeric location code and returns either "labs" or "google_ads" as the provider identifier. This utility is used throughout the codebase to conditionally route keyword metric requests.

Key files governing this logic include:

How to Verify Country Support Programmatically

To determine whether a specific market supplies keyword difficulty and search intent, use the getKeywordDataProvider utility. This function returns "labs" for markets with full metrics and "google_ads" for markets that lack KD and intent support.

import { getKeywordDataProvider } from '@/shared/keyword-locations';

// Example: Check support for United States (location code 2840)
const locationCode = 2840;
const provider = getKeywordDataProvider(locationCode);

if (provider === 'labs') {
  console.log('Keyword difficulty and search intent are available for this country.');
} else {
  console.log('Only volume and CPC data available; KD and intent are null.');
}

When the provider returns "google_ads", the system deliberately omits KD and intent API calls, optimizing both performance and cost for markets where these metrics are unavailable.

Countries served exclusively by Google Ads represent the primary limitation for keyword difficulty and search intent coverage. Iceland (location code 2352) serves as the canonical example of a Google Ads-only market within the Open SEO codebase.

In src/server/lib/dataforseo/keyword-metrics.ts, the retrieval logic explicitly checks the provider type before requesting Labs-specific endpoints. For Iceland and similar markets, the code bypasses KD and intent calculations, returning null values for these fields while preserving available metrics like search volume and cost-per-click (CPC).

This architectural decision prevents unnecessary API calls to DataForSEO Labs for endpoints that would return empty datasets, ensuring efficient resource utilization across all supported geographies.

Summary

  • Full Support: All DataForSEO Labs markets (the majority of countries) return complete keyword difficulty and search intent data.
  • Limited Support: Google Ads-only markets (e.g., Iceland, location code 2352) return null for KD and intent fields.
  • Verification Method: Use getKeywordDataProvider(locationCode) from src/shared/keyword-locations.ts to programmatically check support status.
  • Implementation Logic: The system conditionally routes requests based on provider type in src/server/lib/dataforseo/keyword-metrics.ts.

Frequently Asked Questions

Which specific countries do not support keyword difficulty and search intent?

Iceland (location code 2352) is explicitly identified as a Google Ads-only market that lacks KD and intent support. Any country mapped to the "google_ads" provider in src/shared/keyword-locations.ts shares this limitation, though Iceland remains the primary documented example in the source code and test files.

How can I check if my target country supports these metrics before making API calls?

Import the getKeywordDataProvider function from src/shared/keyword-locations.ts and pass your target location code as an argument. If the function returns "labs", both keyword difficulty and search intent are available. A return value of "google_ads" indicates these metrics are not supported for that region.

What values are returned for keyword difficulty and search intent in unsupported countries?

For Google Ads-only markets, the system returns null for both keyword difficulty and search intent fields. This behavior is hardcoded in src/server/lib/dataforseo/keyword-metrics.ts to ensure consistent API responses regardless of the underlying data provider limitations.

Where is the logic that determines which data provider to use for each country?

The provider determination logic resides in src/shared/keyword-locations.ts, which exports the getKeywordDataProvider function. This mapping is extensively tested in src/shared/keyword-locations.test.ts, ensuring accurate provider assignment across all supported location codes.

Have a question about this repo?

These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:

Share the following with your agent to get started:
curl -s "https://instagit.com/install.md"

Works with
Claude Codex Cursor VS Code OpenClaw Any MCP Client

Maintain an open-source project? Get it listed too →