Built-in tool

Find SEO Competitors

Competitor domains that rank for the same keywords as a target domain, ranked by keyword overlap.

3 creditsNo API key needed

Endpoint

Parameters

NameTypeRequiredNote
targetstring · requiredstringrequired

Domain to find competitors for, e.g. "example.com" (no protocol).

Example: example

limitnumber · optionalnumberoptional

Maximum number of competitors to return (1-1000). Defaults to 50.

Default: 50

language_namestring · optionalstringoptional

Language for results. Defaults to English.

One of: Afrikaans, Akan, Albanian, Amharic, Arabic, Armenian, Azeri, Balinese, Basque, Belarusian and 119 more

Default: English

location_namestring · optionalstringoptional

Country for results. Defaults to United States.

One of: Afghanistan, Albania, Algeria, American Samoa, Andorra, Angola, Antarctica, Antigua and Barbuda, Argentina, Armenia and 203 more

Default: United States

Response schema

{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "elements"
  ],
  "properties": {
    "elements": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "domain": {
            "type": [
              "string",
              "null"
            ]
          },
          "organic_etv": {
            "type": [
              "number",
              "null"
            ],
            "description": "The competitor's estimated monthly organic traffic across its whole domain. Null when the provider returns no whole-domain metrics for that competitor. This is the provider’s own aggregate over every keyword the domain ranks for, so it uses their CTR curve — which flattens past ~position 28 and therefore overstates traffic from deep-ranking keywords. Use Ranked Keywords for per-keyword figures modelled on our own curve."
          },
          "avg_position": {
            "type": [
              "number",
              "null"
            ]
          },
          "intersections": {
            "type": [
              "number",
              "null"
            ],
            "description": "Keywords this competitor shares with the target."
          },
          "shared_keywords_etv": {
            "type": [
              "number",
              "null"
            ],
            "description": "The competitor's estimated traffic from the keywords it shares with the target."
          },
          "organic_keywords_count": {
            "type": [
              "number",
              "null"
            ],
            "description": "Total keywords the competitor ranks for across its whole domain — not just the shared ones. Null when the provider returns no whole-domain metrics for that competitor."
          }
        },
        "additionalProperties": true
      }
    },
    "returned": {
      "type": "number",
      "description": "How many rows this run returned, after any Limit was applied."
    },
    "truncated": {
      "type": "boolean"
    },
    "suggestion": {
      "type": "string"
    },
    "totalCount": {
      "type": "number",
      "description": "How many records the provider says MATCH in total, independent of Limit — routinely in the millions (spotify.com has 2,583,327 ranking pages). It is a match count, NOT how many this endpoint will serve: Limit caps what one call returns, so do not compare it against the row count to judge completeness and do not paginate towards it. Absent when the provider sent no count."
    },
    "totalElements": {
      "type": "number",
      "description": "DEPRECATED — despite the name this is the count RETURNED by this run, not a grand total, so it equals your Limit on a limited run. Kept at that value deliberately: ENG-17058 asked for depth 5 to report 5, and it is a live number in existing flows. Use `returned` for this number or `totalCount` for how many records match."
    }
  },
  "additionalProperties": true
}

Get started

How to use this tool

  1. Connect your AI

    Add Connie to ChatGPT, Claude or Slack once, and this tool comes with it. There’s no API key or account to set up.

  2. Ask for the outcome

    Describe what you need in plain words. Your AI runs this tool when the job calls for it, along with any others it needs.

  3. Make it a workflow

    Add it as a step in a workflow that runs the same way every time, on a schedule or when something happens.

  4. Stay in control

    Choose whether it runs on its own or asks first. When it asks, you see an Allow or Deny card before any credits are spent.