Api Endpoint

SEO Keyword Ideas and Difficulty

Keyword ideas for a seed keyword, each with Google search volume, CPC, competition, keyword difficulty and search intent; up to 100 ideas in one $0.04 call (Google Ads data). Use when you need related keywords to target. volume = avg monthly searches, cpc in USD, competition 0-1, difficulty 0-100. No ideas returns empty results (still charged). Bad input is free; upstream errors are not charged.

Open interactive test console

Offering

Provider
keywords.duoleads.com
Method
POST
Offering type
Api Endpoint
Transport type
http
Category
Business And Commerce
Delivery
Not provided
Pricing model
Not provided
x402 version
2

Endpoint context

URL
https://keywords.duoleads.com/v1/keyword-ideas
MIME type
application/json
First seen
2026-10-16T01:50:24.663Z
Last seen
Tags
keyword-ideas, keyword-research, seo, search-volume, keyword-difficulty

Payment pricing

x402 payment terms are the authoritative price for calling this endpoint.

Payment option 1
0.04 USDC
Atomic price: 40000 · Network: eip155:8453 · Asset: USDC · Scheme: exact
Raw x402 terms
[
  {
    "scheme": "exact",
    "network": "eip155:8453",
    "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
    "amount": "40000",
    "payTo": "0xCD673f7e1daD254347AEab6be0DEFe8b9C6b3A39"
  }
]

Observed health

Status
Reachable
Latest latency
230 ms
Average latency
671 ms
HTTP status
405
Last checked
Reachability
100% over 14 checks

Latency is measured to the first response headers. A reachable result does not verify response accuracy or merchant identity.

Input schema

{
  "type": "object",
  "properties": {
    "type": {
      "type": "string",
      "const": "http"
    },
    "method": {
      "type": "string",
      "enum": [
        "POST"
      ]
    },
    "bodyType": {
      "type": "string",
      "enum": [
        "json",
        "form-data",
        "text"
      ]
    },
    "body": {
      "type": "object",
      "properties": {
        "keyword": {
          "type": "string",
          "minLength": 1,
          "maxLength": 80,
          "description": "Seed keyword to expand (at most 80 characters). Whitespace and control characters are normalised to single spaces and the seed to lower case; only a seed of 1 to 10 words and at most 80 characters can be expanded, so a seed that is then empty or longer is a free 400."
        },
        "limit": {
          "type": "integer",
          "minimum": 1,
          "maximum": 100,
          "description": "Maximum ideas to return. Defaults to 20."
        },
        "locationCode": {
          "type": "integer",
          "description": "Google Ads location code (geo target ID). Defaults to 2840 (United States); an unsupported code falls back to 2840 (United States, market.fallback)."
        },
        "languageCode": {
          "type": "string",
          "description": "Language code (2-letter). Defaults to en. An unsupported location falls back to 2840 (United States) with en (or the requested language if the United States offers it); a supported location with a language it does not offer uses that location's default language (en if offered). Either way market.fallback is true and market.warnings says what was used."
        },
        "country": {
          "type": "string",
          "description": "Optional ISO 3166-1 alpha-2 code or country name, used when locationCode is absent (uk = gb)."
        },
        "includeMonthly": {
          "type": "boolean",
          "description": "Add each idea's monthly search volumes (monthly[])."
        }
      },
      "required": [
        "keyword"
      ]
    }
  },
  "required": [
    "type",
    "method",
    "bodyType",
    "body"
  ],
  "additionalProperties": false
}

Output schema

{
  "type": "object",
  "properties": {
    "type": {
      "type": "string"
    },
    "example": {
      "type": "object"
    }
  },
  "required": [
    "type"
  ]
}