SEOpost/backlink-gap

Domains linking to competitors but not you

BacklinksCompetitors
Cost / request

$0.01

Response format

JSON

Protocol

REST

Description

Finds domains that link to one or more competitor targets but NOT to the excluded target (you). The output is a ready-made link-building prospect list; chain it with an email-finder tool to turn rows into outreach. Response shape: each row's referring domain lives at items[].domain_intersection["1"], ["2"], ... keyed by the 1-based index of your `targets` array, with that referring domain's own authority score in `rank` (0-1000ish, higher is stronger; this is the referring domain's rank, a different metric from the target-domain rank in backlinks_summary). Default sort is rank descending. When ranking prospects, check referring_domains and backlinks together — a huge backlink count with few referring domains usually means sitewide boilerplate links, not authority.

Parameters

bodyRequest Bodyrequired

Content type: application/json

{
  "type": "object",
  "required": [
    "targets"
  ],
  "properties": {
    "targets": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "minItems": 1,
      "maxItems": 20,
      "description": "Competitor domains whose backlink sources to intersect (1-20)."
    },
    "exclude_targets": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "maxItems": 10,
      "description": "Domains the referring sites must NOT already link to. Put your own domain here."
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 1000,
      "default": 100,
      "description": "Max referring domains to return. Default 100."
    },
    "offset": {
      "type": "integer",
      "minimum": 0,
      "description": "Pagination offset."
    },
    "filters": {
      "type": "array",
      "items": {},
      "description": "Optional filter expression, e.g. minimum domain rank."
    },
    "order_by": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Sort rules, e.g. [\"1.rank,desc\"]."
    }
  }
}

Responses

Referring domains that link to the targets, in `result[0].items`.

{
  "type": "object"
}

Agent / Developer Schema

Machine-readable formats for integrating this endpoint into AI agents and toolchains.

{
  "operationId": "backlink_gap",
  "method": "post",
  "path": "/backlink-gap",
  "summary": "Domains linking to competitors but not you",
  "description": "Finds domains that link to one or more competitor targets but NOT to the excluded target (you). The output is a ready-made link-building prospect list; chain it with an email-finder tool to turn rows into outreach. Response shape: each row's referring domain lives at items[].domain_intersection[\"1\"], [\"2\"], ... keyed by the 1-based index of your `targets` array, with that referring domain's own authority score in `rank` (0-1000ish, higher is stronger; this is the referring domain's rank, a different metric from the target-domain rank in backlinks_summary). Default sort is rank descending. When ranking prospects, check referring_domains and backlinks together — a huge backlink count with few referring domains usually means sitewide boilerplate links, not authority.",
  "parameters": [],
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "type": "object",
          "required": [
            "targets"
          ],
          "properties": {
            "targets": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "minItems": 1,
              "maxItems": 20,
              "description": "Competitor domains whose backlink sources to intersect (1-20)."
            },
            "exclude_targets": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "maxItems": 10,
              "description": "Domains the referring sites must NOT already link to. Put your own domain here."
            },
            "limit": {
              "type": "integer",
              "minimum": 1,
              "maximum": 1000,
              "default": 100,
              "description": "Max referring domains to return. Default 100."
            },
            "offset": {
              "type": "integer",
              "minimum": 0,
              "description": "Pagination offset."
            },
            "filters": {
              "type": "array",
              "items": {},
              "description": "Optional filter expression, e.g. minimum domain rank."
            },
            "order_by": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Sort rules, e.g. [\"1.rank,desc\"]."
            }
          }
        },
        "example": {
          "targets": [
            "competitor-a.com",
            "competitor-b.com"
          ],
          "exclude_targets": [
            "yourapp.com"
          ],
          "limit": 100
        }
      }
    }
  },
  "responses": [
    {
      "statusCode": "200",
      "description": "Referring domains that link to the targets, in `result[0].items`.",
      "content": {
        "application/json": {
          "schema": {
            "type": "object"
          }
        }
      }
    },
    {
      "statusCode": "400",
      "description": "Bad request or upstream task error."
    },
    {
      "statusCode": "401",
      "description": "Unauthorized."
    },
    {
      "statusCode": "429",
      "description": "Too many requests."
    },
    {
      "statusCode": "5XX",
      "description": "Upstream error."
    }
  ]
}

Pricing

$0.01per successful request

Credits are deducted from your agntdata balance on each successful API call. Failed requests (4xx/5xx) are not charged.

Start using this endpoint

Generate your API key and make your first call in under a minute. Free tier available with transparent pricing.