Unif API Docs
seoCompetitors

Find domains competing for keywords

Return the domains that rank for a set of seed keywords, ranked by visibility, with average position, estimated traffic, and the number of shared keywords, to discover SERP competitors.

Pricing — $$ · min $0.05

Minimum 50 credits ($0.05) per call. Records returned above the minimum bill 1 credit ($0.001) each.

POST
/seo/competitors/serp

Authorization

bearerAuth
AuthorizationBearer <token>

UnifAPI API key. Provider credentials are managed by UnifAPI.

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/seo/competitors/serp" \  -H "Content-Type: application/json" \  -d '{    "keywords": [      "string"    ]  }'
{
  "request_id": "string",
  "data": {
    "keywords": [
      "string"
    ],
    "location": "string",
    "language": "string",
    "total_count": 0,
    "results": [
      {
        "domain": "string",
        "avg_position": 0,
        "median_position": 0,
        "rating": 0,
        "etv": 0,
        "keywords_count": 0,
        "visibility": 0,
        "relevant_serp_items": 0
      }
    ]
  },
  "billing": {
    "credits_charged": 0,
    "records_charged": 0,
    "balance_remaining": 0,
    "truncated_due_to_balance": true
  }
}
{
  "error": {
    "type": "validation_error",
    "message": "string",
    "request_id": "string",
    "issues": [
      null
    ],
    "billing": {
      "credits_required": 0,
      "credits_charged": 0,
      "records_charged": 0,
      "balance_remaining": 0,
      "truncated_due_to_balance": true
    }
  }
}
{
  "error": {
    "type": "validation_error",
    "message": "string",
    "request_id": "string",
    "issues": [
      null
    ],
    "billing": {
      "credits_required": 0,
      "credits_charged": 0,
      "records_charged": 0,
      "balance_remaining": 0,
      "truncated_due_to_balance": true
    }
  }
}
{
  "error": {
    "type": "validation_error",
    "message": "string",
    "request_id": "string",
    "issues": [
      null
    ],
    "billing": {
      "credits_required": 0,
      "credits_charged": 0,
      "records_charged": 0,
      "balance_remaining": 0,
      "truncated_due_to_balance": true
    }
  }
}
{
  "error": {
    "type": "validation_error",
    "message": "string",
    "request_id": "string",
    "issues": [
      null
    ],
    "billing": {
      "credits_required": 0,
      "credits_charged": 0,
      "records_charged": 0,
      "balance_remaining": 0,
      "truncated_due_to_balance": true
    }
  }
}
{
  "error": {
    "type": "validation_error",
    "message": "string",
    "request_id": "string",
    "issues": [
      null
    ],
    "billing": {
      "credits_required": 0,
      "credits_charged": 0,
      "records_charged": 0,
      "balance_remaining": 0,
      "truncated_due_to_balance": true
    }
  }
}
{
  "error": {
    "type": "validation_error",
    "message": "string",
    "request_id": "string",
    "issues": [
      null
    ],
    "billing": {
      "credits_required": 0,
      "credits_charged": 0,
      "records_charged": 0,
      "balance_remaining": 0,
      "truncated_due_to_balance": true
    }
  }
}
{
  "error": {
    "type": "validation_error",
    "message": "string",
    "request_id": "string",
    "issues": [
      null
    ],
    "billing": {
      "credits_required": 0,
      "credits_charged": 0,
      "records_charged": 0,
      "balance_remaining": 0,
      "truncated_due_to_balance": true
    }
  }
}
{
  "error": {
    "type": "validation_error",
    "message": "string",
    "request_id": "string",
    "issues": [
      null
    ],
    "billing": {
      "credits_required": 0,
      "credits_charged": 0,
      "records_charged": 0,
      "balance_remaining": 0,
      "truncated_due_to_balance": true
    }
  }
}