---
title: "Find pages linking to multiple targets"
method: POST
path: "/seo/backlinks/page-intersection"
tags: ["seo"]
---

# Find pages linking to multiple targets

`POST /seo/backlinks/page-intersection`

## Request

- Base URL: `https://api.unifapi.com`
- URL: `https://api.unifapi.com/seo/backlinks/page-intersection`
- Auth: HTTP bearer

Return the referring pages that link to a set of targets, with the backlinks to each target. Useful for finding pages that link to your competitors but not to your site.

## Headers

- `Unifapi-Version` '2026-07-01'
- `Idempotency-Key` string

## Request body

- SeoBacklinksPageIntersectionRequest
  - `targets` string[], required: Domains, subdomains, or pages to find common referring pages for (1-20). Order is preserved as the 1-based index in the response.
  - `exclude_targets` string[]: Domains, subdomains, or pages to exclude (up to 10). Pages linking to these are dropped.
  - `intersection_mode` 'all' | 'partial': all (default) returns pages linking to any target; partial returns only pages linking to every target.
  - `backlinks_status_type` 'live' | 'all' | 'lost': Which backlinks to count: live (found on the last check, default), all, or lost.
  - `include_subdomains` boolean: Include backlinks pointing to the target's subdomains. Defaults to true.
  - `include_indirect_links` boolean: Include indirect links (via redirects or canonicals) to the target. Defaults to true.
  - `exclude_internal_backlinks` boolean: Exclude internal backlinks from the target's own subdomains. Defaults to true.
  - `internal_list_limit` integer: Maximum number of entries kept in each referring_links_* breakdown map. Defaults to 10.
  - `rank_scale` 'one_hundred' | 'one_thousand': Scale for rank values: one_thousand (0-1000, default) or one_hundred (0-100).
  - `filters` union: Filter the intersecting referring pages. Prefix each backlink field with the 1-based target index, e.g. 1.dofollow, 2.rank. Provide a single condition {"field","op","value"} or an {"and":[…]} / {"or":[…]} group of conditions (nest groups for mixed logic), up to 8 conditions. Operators: =, <>, <, <=, >, >=, in, not_in, like, not_like, ilike, not_ilike, match, not_match (use an array value with in / not_in). Filterable fields: dofollow (boolean, link is dofollow); is_new (boolean, appeared since the last check); is_lost (boolean, lost since the last check); is_broken (boolean, points to a broken page); rank (referring page rank, 0-1000); page_from_rank (referring page rank, 0-1000); domain_from_rank (referring domain rank, 0-1000); backlink_spam_score (spam score of the referring page, 0-100); item_type (anchor, image, link, redirect, or canonical); anchor (anchor text); tld_from (top-level domain of the referring page); semantic_location (link location, e.g. article, footer); first_seen (ISO date the backlink was first seen); last_seen (ISO date the backlink was last seen). Example: {"field":"1.dofollow","op":"=","value":true}
    - DataForSeoFilterCondition
      - `field` string, required: Field to filter on. See the endpoint's list of filterable fields.
      - `op` '=' | '<>' | '<' | '<=' | '>' | '>=' | 'in' | 'not_in' | 'like' | 'not_like' | 'ilike' | 'not_ilike' | 'match' | 'not_match', required: Comparison operator.
      - `value` union, required: Comparison value: a string, number, or boolean for scalar operators, or a non-empty array for "in" / "not_in".
        - string
        - number
        - boolean
        - union[]
          - union
            - string
            - number
            - boolean
    - object
      - `and` DataForSeoFilter[], required: Sub-expressions that must all match.
        - union
          - DataForSeoFilterCondition
            - `field` string, required: Field to filter on. See the endpoint's list of filterable fields.
            - `op` '=' | '<>' | '<' | '<=' | '>' | '>=' | 'in' | 'not_in' | 'like' | 'not_like' | 'ilike' | 'not_ilike' | 'match' | 'not_match', required: Comparison operator.
            - `value` union, required: Comparison value: a string, number, or boolean for scalar operators, or a non-empty array for "in" / "not_in".
              - …
          - object
            - `and` DataForSeoFilter[], required: Sub-expressions that must all match.
          - object
            - `or` DataForSeoFilter[], required: Sub-expressions where at least one must match.
    - object
      - `or` DataForSeoFilter[], required: Sub-expressions where at least one must match.
        - union
          - DataForSeoFilterCondition
            - `field` string, required: Field to filter on. See the endpoint's list of filterable fields.
            - `op` '=' | '<>' | '<' | '<=' | '>' | '>=' | 'in' | 'not_in' | 'like' | 'not_like' | 'ilike' | 'not_ilike' | 'match' | 'not_match', required: Comparison operator.
            - `value` union, required: Comparison value: a string, number, or boolean for scalar operators, or a non-empty array for "in" / "not_in".
              - …
          - object
            - `and` DataForSeoFilter[], required: Sub-expressions that must all match.
          - object
            - `or` DataForSeoFilter[], required: Sub-expressions where at least one must match.
  - `order_by` DataForSeoOrderByRule[]: Sort the intersecting referring pages. Prefix each field with the 1-based target index, e.g. 1.rank. Each rule is {"field","dir"} with dir asc or desc; up to 3 rules, applied in order. Sortable fields: dofollow, is_new, is_lost, is_broken, rank, page_from_rank, domain_from_rank, backlink_spam_score, item_type, anchor, tld_from, semantic_location, first_seen, last_seen.
    - `field` string, required: Field to sort by. See the endpoint's list of sortable fields.
    - `dir` 'asc' | 'desc': Sort direction: asc or desc. Defaults to desc.
  - `limit` integer: Maximum number of records to return. Defaults to 100.
  - `offset` integer: Number of records to skip from the start of the results.
  - `view` 'summary' | 'full': Controls backlink detail. summary keeps link identity and headline rank/anchor data; full adds referring-page details and link attributes. Defaults to summary.

## Response `200`

OK

- object
  - `request_id` string, required: UnifAPI request id for support and ledger correlation.
  - `data` SeoBacklinksPageIntersectionResponse, required
    - `targets` string[], required: The requested targets, in request order, echoed back. Each links_to entry's target matches one of these.
    - `view` 'summary' | 'full', required
    - `total_count` integer: Total number of intersecting pages available in DataForSEO's database.
    - `results` SeoBacklinksPageIntersectionItem[], required: Referring pages that link to the requested targets, with the backlinks to each target. Each page is one billable record.
      - `url_from` string: URL of the referring page that links to the targets.
      - `domain_from` string: Domain of the referring page.
      - `intersections_count` integer: Number of the requested targets this page links to.
      - `links_to` SeoBacklinksPageIntersectionTargetLinks[], required: Backlinks from this referring page to each requested target it links to, one entry per target.
        - `target` string, required: The requested target these backlinks point to.
        - `links` SeoBacklinkItem[], required
          - `domain_from` string: Domain of the page that links to the target.
          - `url_from` string: URL of the page that links to the target.
          - `url_to` string: Target URL the backlink points to.
          - `domain_to` string: Target domain the backlink points to.
          - `anchor` string: Anchor text of the backlink.
          - `dofollow` boolean: Whether the backlink is dofollow.
          - `item_type` string: Type of backlink: anchor, image, link, redirect, or canonical.
          - `rank` integer: Backlink rank of the referring page (0-1000).
          - `page_from_rank` integer: Rank of the referring page itself (0-1000).
          - `domain_from_rank` integer: Rank of the referring domain (0-1000).
          - `backlink_spam_score` integer: Spam score of the referring page, 0-100.
          - `is_new` boolean: Whether the backlink appeared since the last check.
          - `is_lost` boolean: Whether the backlink was lost since the last check.
          - `is_broken` boolean: Whether the backlink points to a broken page.
          - `first_seen` string: Date the backlink was first found.
          - `last_seen` string: Date the backlink was last seen.
          - `prev_seen` string: Previous date the backlink was seen before the last check (full view).
          - `tld_from` string: Top-level domain of the referring page (full view).
          - `url_from_https` boolean: Whether the referring page uses HTTPS (full view).
          - `url_to_https` boolean: Whether the target URL uses HTTPS (full view).
          - `alt` string: Alt text, if the backlink is an image link (full view).
          - `image_url` string: Image URL, if the backlink is an image link (full view).
          - `text_pre` string: Text immediately before the anchor (full view).
          - `text_post` string: Text immediately after the anchor (full view).
          - `semantic_location` string: Semantic location of the link on the page, e.g. article, footer (full view).
          - `attributes` string[]: Link rel attributes, e.g. nofollow, sponsored, ugc (full view).
          - `links_count` integer: Number of identical links from the referring page (full view).
          - `group_count` integer: Number of similar grouped links from the referring domain (full view).
          - `page_from_title` string: Title of the referring page (full view).
          - `page_from_language` string: Language of the referring page (full view).
          - `page_from_status_code` integer: HTTP status code of the referring page (full view).
          - `page_from_external_links` integer: Number of external links on the referring page (full view).
          - `page_from_internal_links` integer: Number of internal links on the referring page (full view).
          - `domain_from_country` string: Country of the referring domain (full view).
          - `domain_from_platform_type` string[]: Platform types of the referring domain, e.g. cms, blogs (full view).
          - `url_to_status_code` integer: HTTP status code of the target URL (full view).
          - `url_to_redirect_target` string: Redirect target of the backlink URL, if any (full view).
          - `is_indirect_link` boolean: Whether the link reaches the target via a redirect or canonical (full view).
  - `billing` Billing, required
    - `credits_charged` integer, required
    - `records_charged` integer, required
    - `balance_remaining` integer, required
    - `truncated_due_to_balance` boolean, required

## Other responses

- `400`: Validation or invalid-id error
- `401`: Missing, invalid, disabled, revoked, or expired UnifAPI API key
- `402`: Insufficient workspace credits
- `404`: Resource not found
- `429`: Rate limited
- `500`: Internal error
- `502`: Source error
- `503`: Source unavailable

---

[API](https://skmtc.dev/unifapi/apis/unifapi.md) · [All operations](https://skmtc.dev/unifapi/apis/unifapi/llms.txt) · [OpenAPI document](https://skmtc.dev/unifapi/apis/unifapi/revisions/1af90697ec4e?raw)
