---
title: "Load domain keywords"
method: POST
path: "/projects/{project_id}/domain-overview/keywords"
tags: ["domain-overview"]
---

# Load domain keywords

`POST /projects/{project_id}/domain-overview/keywords`

## Request

- Base URL: `https://eu.bisibility.com/api/v1`
- URL: `https://eu.bisibility.com/api/v1/projects/{project_id}/domain-overview/keywords`
- Auth: one of:
  - HTTP bearer
  - HTTP bearer
  - OAuth 2 (authorization code, authorization URL `/api/auth/oauth2/authorize`, token URL `/api/auth/oauth2/token`, scopes: `api:write`)

Loads one provider-backed keyword page. max_cost_cents is required; use zero for cache-only access.

## Path parameters

- `project_id` string, required: Public project ID; membership and token scope are enforced.

## Headers

- `Bisibility-API-Version` 'v1'
- `Idempotency-Key` string
- `X-Bisibility-Source` 'sdk' | 'cli' | 'mcp'

## Request body

- DomainOverviewKeywordsRequest
  - `fresh` boolean
  - `language_code` string, required
  - `location_code` integer, required
  - `scope_override` 'root' | 'subdomain'
  - `target` string, required
  - `limit` integer, required
  - `max_cost_cents` integer, required
  - `offset` integer, required

## Response `200`

JSON response

- DomainOverviewKeywordsResponse
  - `data` object, required
    - `cached` boolean, required
    - `cost_cents` number, required
    - `data` DomainOverviewKeywordsData, required
      - `cost_cents` number, required
      - `rows` object[], required
        - `cpc_cents` number, nullable, required
        - `difficulty` number, nullable, required
        - `estimated_traffic` number, nullable, required
        - `intent` 'informational' | 'navigational' | 'commercial' | 'transactional' | 'null', nullable, required
        - `keyword` string, required
        - `position` number, nullable, required
        - `rank_absolute` number, nullable, required
        - `rank_absolute_delta` number, nullable, required
        - `ranking_url` string, nullable, required
        - `search_volume` number, nullable, required
        - `serp_features` string[], required
      - `total_count` integer, nullable, required
    - `fetched_at` string, date-time, nullable, required

## Other responses

- `400`: Bad request
- `401`: Unauthorized
- `402`: Deployment credits exhausted for a paid provider request
- `403`: Forbidden, or `byok_required`: the account runs paid provider work only on its own provider keys and none serves this request
- `404`: Not found
- `409`: snapshot_expired; Unsupported API version
- `422`: unsupported_target, unsupported_location, needs_reauth, lookup_failed, or cost_limit_exceeded
- `429`: budget_exhausted, in_progress, or rate_limited

---

[API](https://skmtc.dev/bisibility/apis/bisibility-public-api.md) · [All operations](https://skmtc.dev/bisibility/apis/bisibility-public-api/llms.txt) · [OpenAPI document](https://skmtc.dev/bisibility/apis/bisibility-public-api/revisions/a6e1ec0dec82?raw)
