# SEO Research

Keyword research, competitor gap analysis and live search result snapshots.

**Base URL:** `https://api.trustpager.com/functions/v1/api/v1`

## Endpoints

### POST /seo-research/ai-visibility

Check how visible a brand is in AI-generated search answers via TrustPager SEO. Costs credits.

**Scopes:** `seo:write` — [full detail](./seo/post-seo-research-ai-visibility.md)

### POST /seo-research/backlink-links

Drill into the INDIVIDUAL backlinks for a domain via TrustPager SEO — the linking page, where it points (url_to), and whether it is broken. Optionally filter to one referring_domain. Use after seo_backlinks to inspect a specific domain or find broken inbound links. Costs credits.

**Scopes:** `seo:write` — [full detail](./seo/post-seo-research-backlink-links.md)

### POST /seo-research/backlinks

Analyse backlinks for a domain via TrustPager SEO. Returns referring domains with rank, backlink count, and dofollow status. Costs credits.

**Scopes:** `seo:write` — [full detail](./seo/post-seo-research-backlinks.md)

### POST /seo-research/brand-mentions

Find web mentions of a brand or business with sentiment via TrustPager SEO. Costs credits.

**Scopes:** `seo:write` — [full detail](./seo/post-seo-research-brand-mentions.md)

### POST /seo-research/competitor-gap

Find the keywords a competitor domain ranks for via TrustPager SEO, with volume/CPC/difficulty. Optionally pass your_domain to focus on the gap. Costs credits. Saved as a run.

**Scopes:** `seo:write` — [full detail](./seo/post-seo-research-competitor-gap.md)

### GET /seo-research/runs/:run_id

Fetch a TrustPager SEO research run by UUID with its full result rows.

**Scopes:** `seo:read` — [full detail](./seo/get-seo-research-runs-run-id.md)

### POST /seo-research/keyword-research

Run keyword research via TrustPager SEO. Returns each keyword with monthly search volume, CPC, competition, and keyword difficulty. Costs credits. Results are saved as a run you can re-open without paying again.

**Scopes:** `seo:write` — [full detail](./seo/post-seo-research-keyword-research.md)

### GET /seo-research/rank-snapshots

List rank position snapshots for tracked keywords via TrustPager SEO, newest first. Paginated: pagination.total is the real number of snapshots matching the filter, and pagination.next_cursor pages back through older history.

**Scopes:** `seo:read` — [full detail](./seo/get-seo-research-rank-snapshots.md)

### GET /seo-research/runs

List past TrustPager SEO research runs (newest first). Filter by website_id or tool.

**Scopes:** `seo:read` — [full detail](./seo/get-seo-research-runs.md)

### GET /seo-research/tracked-keywords

List tracked keywords for a website via TrustPager SEO.

**Scopes:** `seo:read` — [full detail](./seo/get-seo-research-tracked-keywords.md)

### POST /seo-research/llm-visibility

Ask a real LLM (ChatGPT) your prompts and check whether the brand is mentioned or cited in the AI answer via TrustPager SEO. The new frontier beyond Google rankings. Costs credits.

**Scopes:** `seo:write` — [full detail](./seo/post-seo-research-llm-visibility.md)

### POST /seo-research/local-seo

Audit local search presence for a business via TrustPager SEO. Returns map-pack listings with ratings, addresses, and reviews. Costs credits.

**Scopes:** `seo:write` — [full detail](./seo/post-seo-research-local-seo.md)

### POST /seo-research/site-audit

Start a technical site audit via TrustPager SEO. Crawls up to 100 pages and returns issues (missing titles, broken links, slow pages). Async — poll seo_get_run for results. Costs credits.

**Scopes:** `seo:write` — [full detail](./seo/post-seo-research-site-audit.md)

### POST /seo-research/serp-snapshot

Capture the live top organic search results for a keyword in a location via TrustPager SEO. Costs credits. Saved as a run.

**Scopes:** `seo:write` — [full detail](./seo/post-seo-research-serp-snapshot.md)

### POST /seo-research/track-keywords

Add keywords to the Rank Tracker for a website via TrustPager SEO. Triggers an immediate rank check and saves keywords for recurring position monitoring.

**Scopes:** `seo:write` — [full detail](./seo/post-seo-research-track-keywords.md)
