# Connect a CMS integration
Source: https://docs.keupera.com/api-reference/account-&-utilities/connect-a-cms-integration
/api-reference/openapi.json post /connect
Registers a CMS integration against your API key. Used by the Framer plugin and WordPress connector.
# Verify credentials
Source: https://docs.keupera.com/api-reference/account-&-utilities/verify-credentials
/api-reference/openapi.json get /me
Returns basic profile info for the authenticated user. This endpoint skips the paid-tier check and works on any valid API key — use it to verify that a key is valid regardless of subscription tier.
# AI Visibility
Source: https://docs.keupera.com/api-reference/ai-visibility
Brand Radar campaigns, the Prompt Research Engine, and aggregated visibility scores.
Track how your brand — and your competitors — appear across LLM answers. This module exposes Brand Radar campaigns, the Prompt Research Engine, and a consolidated visibility score. Every endpoint below has a live playground in the sidebar.
## What you can do
Monitor a prompt across LLMs and track brand vs. competitor mentions, ranks, and context over time.
Research a custom prompt across AI models on a schedule and get clustered, analyzed results.
Pull one aggregated overview across Brand Radar, Prompt Research, Authority, and Funnel.
Create, update frequency and status, toggle competitors, and delete campaigns.
## Concepts
* **Frequency** — how often (in days) a campaign re-runs against the LLMs. Defaults to `7`.
* **Languages** — each campaign can run its prompt in up to **3** languages; defaults to `["en"]`.
* **Visibility score** — a 0–100 measure of how prominently your brand appears in the generated answers for a campaign's prompt.
`GET /score` is the fastest way to get a single-call snapshot of AI visibility across every sub-feature for a website.
# Create a Brand Radar campaign
Source: https://docs.keupera.com/api-reference/ai-visibility/create-a-brand-radar-campaign
/api-reference/openapi.json post /brand-radar/campaigns
Creates a Brand Radar campaign that monitors a prompt across LLMs and tracks brand and competitor mentions.
# Create a Prompt Research campaign
Source: https://docs.keupera.com/api-reference/ai-visibility/create-a-prompt-research-campaign
/api-reference/openapi.json post /prompt-research/campaigns
Creates a Prompt Research Engine campaign that researches a custom prompt across AI models on a schedule.
# Delete a Brand Radar campaign
Source: https://docs.keupera.com/api-reference/ai-visibility/delete-a-brand-radar-campaign
/api-reference/openapi.json delete /brand-radar/campaigns/{id}
Deletes a Brand Radar campaign.
# Get AI Visibility Score
Source: https://docs.keupera.com/api-reference/ai-visibility/get-ai-visibility-score
/api-reference/openapi.json get /score
Returns an aggregated overview across all AI visibility sub-features — Brand Radar, Prompt Research, Authority, and Funnel.
# Get Brand Radar results
Source: https://docs.keupera.com/api-reference/ai-visibility/get-brand-radar-results
/api-reference/openapi.json get /brand-radar/campaigns/{id}/results
Returns the run results for a Brand Radar campaign, including mentions and visibility scores.
# Get Prompt Research campaign
Source: https://docs.keupera.com/api-reference/ai-visibility/get-prompt-research-campaign
/api-reference/openapi.json get /prompt-research/campaigns/{id}
Returns a Prompt Research campaign together with its analyzed run results.
# List Brand Radar campaigns
Source: https://docs.keupera.com/api-reference/ai-visibility/list-brand-radar-campaigns
/api-reference/openapi.json get /brand-radar/campaigns
Returns all Brand Radar campaigns for a website.
# List Prompt Research campaigns
Source: https://docs.keupera.com/api-reference/ai-visibility/list-prompt-research-campaigns
/api-reference/openapi.json get /prompt-research/campaigns
Returns all Prompt Research Engine campaigns for a website.
# Update a Brand Radar campaign
Source: https://docs.keupera.com/api-reference/ai-visibility/update-a-brand-radar-campaign
/api-reference/openapi.json patch /brand-radar/campaigns/{id}
Updates a Brand Radar campaign's frequency or status, or toggles competitor tracking.
# Analytics
Source: https://docs.keupera.com/api-reference/analytics
Website traffic, Google Search Console data, and AI bot crawl activity.
Query traffic and performance data for your website, cached Google Search Console stats, and AI bot crawl activity. Every endpoint below has a live playground in the sidebar.
## What you can do
Summary, daily series, top pages, referrers, and device / browser / geo breakdowns.
Cached GSC daily stats plus top keywords and pages.
AI bot crawl activity by bot, by day, and by most-crawled page.
## Date range parameters
Every analytics endpoint accepts the same date-range parameters:
Preset range — one of `7d`, `30d`, `90d`.
Start date (`YYYY-MM-DD`).
End date (`YYYY-MM-DD`).
When both `from` and `to` are provided, `range` is ignored.
# Bot traffic summary
Source: https://docs.keupera.com/api-reference/analytics/bot-traffic-summary
/api-reference/openapi.json get /bot-traffic/summary
Returns AI bot crawl activity aggregated by bot.
# Browser breakdown
Source: https://docs.keupera.com/api-reference/analytics/browser-breakdown
/api-reference/openapi.json get /website/browsers
Returns traffic broken down by browser.
# Daily bot traffic
Source: https://docs.keupera.com/api-reference/analytics/daily-bot-traffic
/api-reference/openapi.json get /bot-traffic/daily
Returns daily AI bot crawl activity per bot.
# Daily traffic
Source: https://docs.keupera.com/api-reference/analytics/daily-traffic
/api-reference/openapi.json get /website/daily
Returns daily traffic time series.
# Device breakdown
Source: https://docs.keupera.com/api-reference/analytics/device-breakdown
/api-reference/openapi.json get /website/devices
Returns traffic broken down by device type.
# Geographic traffic
Source: https://docs.keupera.com/api-reference/analytics/geographic-traffic
/api-reference/openapi.json get /website/geo
Returns traffic broken down by country.
# Referrers
Source: https://docs.keupera.com/api-reference/analytics/referrers
/api-reference/openapi.json get /website/referrers
Returns top traffic sources.
# Search Console daily stats
Source: https://docs.keupera.com/api-reference/analytics/search-console-daily-stats
/api-reference/openapi.json get /search-console/daily
Returns cached Google Search Console daily performance.
# Search Console top keywords
Source: https://docs.keupera.com/api-reference/analytics/search-console-top-keywords
/api-reference/openapi.json get /search-console/keywords
Returns top-performing keywords from Google Search Console.
# Search Console top pages
Source: https://docs.keupera.com/api-reference/analytics/search-console-top-pages
/api-reference/openapi.json get /search-console/pages
Returns top-performing pages from Google Search Console.
# Top crawled pages
Source: https://docs.keupera.com/api-reference/analytics/top-crawled-pages
/api-reference/openapi.json get /bot-traffic/top-pages
Returns the pages most crawled by AI bots.
# Top pages
Source: https://docs.keupera.com/api-reference/analytics/top-pages
/api-reference/openapi.json get /website/top-pages
Returns the most-viewed pages.
# Website summary
Source: https://docs.keupera.com/api-reference/analytics/website-summary
/api-reference/openapi.json get /website/summary
Returns aggregate web analytics from your Keupera tracking script.
# Backlinks
Source: https://docs.keupera.com/api-reference/backlinks
Manage backlink campaigns, opportunities, and outreach emails.
Run backlink research campaigns, work the opportunities discovered for each campaign, and generate or send personalized outreach emails. Every endpoint below has a live playground in the sidebar.
## What you can do
Create a campaign for a keyword and niche; opportunity research runs automatically in the background.
List, inspect, and update discovered opportunities — status, contact details, and notes.
Produce an AI-written, personalized outreach email for any opportunity.
Send the email through your organization's configured SMTP and track the response.
## Concepts
* **`target_domain`** — the domain a campaign researches backlinks for. Defaults to the website's own domain; set it to research a subdomain or partner site instead.
* **Opportunity scoring** — each opportunity carries a `relevance_score` (0–100), `domain_authority`, `domain_rating`, estimated `monthly_traffic`, and AI `reasoning` explaining why it surfaced.
Backlink opportunity research is triggered automatically once a campaign is created — poll the campaign's `progress` field or list its opportunities to watch results arrive.
Organization SMTP settings must be configured under **Settings** before you can send outreach emails.
# Create campaign
Source: https://docs.keupera.com/api-reference/backlinks/create-campaign
/api-reference/openapi.json post /campaigns
Creates a backlink research campaign. Opportunity research is triggered automatically in the background once the campaign is created. Consumes backlink research credits.
# Generate an outreach email
Source: https://docs.keupera.com/api-reference/backlinks/generate-an-outreach-email
/api-reference/openapi.json post /opportunities/{id}/generate-email
Generates an AI-written, personalized outreach email for an opportunity. Consumes AI credits.
# Get an opportunity
Source: https://docs.keupera.com/api-reference/backlinks/get-an-opportunity
/api-reference/openapi.json get /opportunities/{id}
Returns a single backlink opportunity, including its parent campaign context.
# Get campaign details
Source: https://docs.keupera.com/api-reference/backlinks/get-campaign-details
/api-reference/openapi.json get /campaigns/{id}
Returns a single campaign, including research progress.
# Get strategic recommendations
Source: https://docs.keupera.com/api-reference/backlinks/get-strategic-recommendations
/api-reference/openapi.json get /campaigns/{id}/recommendations
Returns AI-generated link-building strategy recommendations for a campaign.
# List campaign opportunities
Source: https://docs.keupera.com/api-reference/backlinks/list-campaign-opportunities
/api-reference/openapi.json get /campaigns/{id}/opportunities
Returns backlink opportunities discovered for a campaign.
# List campaigns
Source: https://docs.keupera.com/api-reference/backlinks/list-campaigns
/api-reference/openapi.json get /campaigns
Returns all backlink campaigns for a website.
# Send an outreach email
Source: https://docs.keupera.com/api-reference/backlinks/send-an-outreach-email
/api-reference/openapi.json post /opportunities/{id}/send-email
Sends an outreach email for an opportunity via your organization's configured SMTP. Organization SMTP settings must be configured under **Settings** before sending. Updates the opportunity status to `outreach_sent`.
# Update an opportunity
Source: https://docs.keupera.com/api-reference/backlinks/update-an-opportunity
/api-reference/openapi.json patch /opportunities/{id}
Updates the status, contact details, or notes on an opportunity.
# Content
Source: https://docs.keupera.com/api-reference/content
Plan, generate, update, and publish AI-written articles, plus content automation.
Manage blog articles across the full content pipeline — planning, AI generation, scheduling, and publishing — and configure content automation per website. Every endpoint below has a live playground in the sidebar.
## What you can do
Create an article from a title or a linked keyword, with an optional outline and schedule date.
Kick off the generation pipeline for a planned article, then update, schedule, and publish it.
Fetch scheduled article events within a date range for your editorial calendar.
Read and update per-website automation — auto-plan, auto-generate, auto-publish, and more.
## The content pipeline
Articles move through `planned → queued → in-progress → completed → published`. Plan with `POST /articles`, start generation with `POST /articles/{id}/generate`, then patch status and schedule fields as the article progresses.
Deleting an article that's linked to a keyword reverts that keyword's status back to `active`.
The `GET /blog-posts` and `GET /blog-posts/{id}` endpoints are **legacy** and marked deprecated. Use the `/articles` endpoints going forward.
# Create an article
Source: https://docs.keupera.com/api-reference/content/create-an-article
/api-reference/openapi.json post /articles
Plans a new article. Provide either a `title` or a `keyword_id`. Optionally pass an `outline` for AI-assisted drafting and a `date` to schedule publishing.
# Delete an article
Source: https://docs.keupera.com/api-reference/content/delete-an-article
/api-reference/openapi.json delete /articles/{id}
Deletes an article. If the article is linked to a keyword, the keyword status is reverted to `active`.
# Get a blog post (legacy)
Source: https://docs.keupera.com/api-reference/content/get-a-blog-post-legacy
/api-reference/openapi.json get /blog-posts/{id}
**Legacy.** Use `GET /articles/{id}` going forward.
# Get an article
Source: https://docs.keupera.com/api-reference/content/get-an-article
/api-reference/openapi.json get /articles/{id}
Returns full article details, including linked keyword data.
# Get automation settings
Source: https://docs.keupera.com/api-reference/content/get-automation-settings
/api-reference/openapi.json get /automation
Returns the content automation settings for a website.
# Get calendar events
Source: https://docs.keupera.com/api-reference/content/get-calendar-events
/api-reference/openapi.json get /articles/calendar
Returns scheduled article events within a date range.
# List articles
Source: https://docs.keupera.com/api-reference/content/list-articles
/api-reference/openapi.json get /articles
Returns a paginated list of articles for a website.
# List blog posts (legacy)
Source: https://docs.keupera.com/api-reference/content/list-blog-posts-legacy
/api-reference/openapi.json get /blog-posts
**Legacy.** Use `GET /articles` going forward.
# Trigger article generation
Source: https://docs.keupera.com/api-reference/content/trigger-article-generation
/api-reference/openapi.json post /articles/{id}/generate
Starts the AI content generation pipeline for a planned article. Consumes AI credits.
# Update an article
Source: https://docs.keupera.com/api-reference/content/update-an-article
/api-reference/openapi.json patch /articles/{id}
Updates article fields. The `date` field is a shortcut that sets both `published_at` and `scheduled_publish_at`.
# Update automation settings
Source: https://docs.keupera.com/api-reference/content/update-automation-settings
/api-reference/openapi.json patch /automation
Updates the content automation settings for a website.
# API Overview
Source: https://docs.keupera.com/api-reference/introduction
Base URL, authentication, pagination, and error handling for the Keupera Public API.
The **Keupera Public API** gives you programmatic access to every major platform module — Keyword Research, Backlinks, Content, AI Visibility, and Analytics. Every endpoint on the left has a **live playground**: add your API key and send real requests straight from these docs.
Research, enrich, star, and group keywords.
Run campaigns and generate outreach.
Plan, generate, and publish articles.
Track your brand across LLM answers.
Traffic, Search Console, and bot data.
Verify keys and connect a CMS.
## Base URL
All resources are served under a single versioned prefix:
```bash theme={null}
https://app.keupera.com/api/v1
```
## Authentication
Every request must include your API key as a Bearer token:
```http theme={null}
Authorization: Bearer YOUR_KEUPERA_API_KEY
```
Generate keys from **Account → API Keys** in your [Keupera dashboard](https://app.keupera.com). Each key:
* Belongs to a single user and is bound to **one website by default** (configurable in the dashboard).
* Requires a paid subscription tier with API access enabled.
* Only sees websites within your organization(s).
Your subscription plan must include Public API access. Requests from plans without API entitlement return `403 Forbidden`. Never ship a key in a browser — always proxy requests through your own backend.
## Make your first request
Open **Account → API Keys** in the [dashboard](https://app.keupera.com) and copy a key.
Call `GET /me` — it works on any valid key regardless of subscription tier, so it's the fastest way to confirm authentication.
```bash cURL theme={null}
curl https://app.keupera.com/api/v1/me \
-H "Authorization: Bearer YOUR_KEUPERA_API_KEY"
```
```js Node.js theme={null}
const res = await fetch("https://app.keupera.com/api/v1/me", {
headers: { Authorization: `Bearer ${process.env.KEUPERA_API_KEY}` },
});
const { data } = await res.json();
console.log(data.email);
```
```python Python theme={null}
import os, requests
res = requests.get(
"https://app.keupera.com/api/v1/me",
headers={"Authorization": f"Bearer {os.environ['KEUPERA_API_KEY']}"},
)
print(res.json()["data"]["email"])
```
List your keywords. Use the **API Explorer** on any endpoint page to try it live and copy the generated code.
```bash theme={null}
curl "https://app.keupera.com/api/v1/keywords?limit=10" \
-H "Authorization: Bearer YOUR_KEUPERA_API_KEY"
```
## Scoping to a specific website
If your key is bound to a website, every request defaults to that website. To target a different website you own, pass `website_id` as a query parameter:
```http theme={null}
GET /api/v1/keywords?website_id=
```
The website must belong to one of your organizations, otherwise the API returns `403`.
## Common parameters
Most list endpoints accept pagination, and analytics endpoints accept a date range.
Override the target website. Defaults to the API key's website.
Number of results to return. Default varies per endpoint.
Page number for paginated endpoints.
Analytics only. Preset date range — one of `7d`, `30d`, `90d`.
Analytics only. Start date (`YYYY-MM-DD`).
Analytics only. End date (`YYYY-MM-DD`).
When both `from` and `to` are provided, `range` is ignored.
## Response format
All responses are JSON and follow a consistent envelope.
```json Success theme={null}
{
"data": [ /* ... */ ],
"meta": {
"total": 150,
"page": 1,
"limit": 20
}
}
```
```json Error theme={null}
{ "error": "Descriptive error message" }
```
List endpoints wrap results in `data` and add a `meta` object for pagination. Single-resource endpoints return the object directly under `data`.
## HTTP status codes
| Code | Meaning |
| ----- | ---------------------------------------------------------------- |
| `200` | Success |
| `201` | Created |
| `202` | Accepted — long-running job queued |
| `400` | Bad request — missing or invalid parameters |
| `401` | Unauthorized — missing or invalid API key |
| `402` | Usage limit reached — crawl credits, AI credits, etc. exhausted |
| `403` | Forbidden — inactive key, no API access, or unauthorized website |
| `404` | Not found |
| `500` | Internal server error |
## Rate limits & usage
Each API call counts against your plan's limits the same way in-app actions do. When a limit is reached the API responds with `402 Payment Required`. Enable metered billing in **Account → Billing → Usage** to allow overage.
| Resource | Routes that consume it |
| -------------------------------------- | ----------------------------------------------------------------------------------------- |
| `keyword_research` (10 crawl credits) | `POST /keywords/research`, enrichment in `POST /keywords` |
| `backlink_research` (20 crawl credits) | `POST /campaigns` |
| `ai_credits` (per-token) | `POST /opportunities/:id/generate-email`, `POST /articles`, `POST /articles/:id/generate` |
| `crawl_credits` | Enrichment, GSC syncs |
## Handling errors
Confirm the `Authorization: Bearer ` header is present and the key is active. Test with `GET /me`, which bypasses the paid-tier check.
You've exhausted a credit bucket (keyword research, backlink research, or AI credits). Enable metered billing under **Account → Billing → Usage** to allow overage, or wait for the next cycle.
Either your plan doesn't include Public API access, the key is inactive, or the `website_id` you passed isn't in one of your organizations.
`POST /keywords/research` returns a `job_id`. Poll `GET /keywords/research/{jobId}` until `status` is `completed` or `failed`. Avoid `sync: true` in production — it's subject to gateway timeouts.
## CORS
All endpoints respond with `Access-Control-Allow-Origin: *`, so they can be called from any origin — but never ship a key in a browser. Always proxy requests through your own backend.
## Prefer natural language?
Connect the [Keupera MCP Server](/mcp/introduction) to run these same operations from Claude, Cursor, or any MCP-compatible client without writing HTTP calls yourself.
# Keywords
Source: https://docs.keupera.com/api-reference/keywords
Research, enrich, and manage keywords and keyword groups.
Manage keyword research programmatically — list, add, delete, star, bulk-update status, trigger AI-powered research, and organize keywords into groups. Every endpoint below has a live playground in the sidebar.
## What you can do
List with filters, add in bulk (with optional enrichment), delete, star, and bulk-update status.
Expand seed terms into ranked keyword ideas with DataForSEO enrichment.
List keyword groups and assign keywords to them (groups are auto-created on add).
Pass `enrich: true` when adding keywords to auto-fill volume, difficulty, CPC, and intent.
## The research job flow
`POST /keywords/research` is a **long-running** operation. It returns a `job_id` immediately with `202 Accepted` — poll `GET /keywords/research/{jobId}` until `status` is `completed` or `failed`.
`POST /keywords/research` with your `seed_keywords`. You get back `{ "job_id", "status": "pending", "poll_url" }`.
`GET /keywords/research/{jobId}` returns `status` — one of `pending`, `processing`, `completed`, or `failed`. Results land in `result` when done.
Avoid `sync: true` in production — it waits inline and is subject to gateway timeouts. Keyword research consumes crawl credits and returns `402` when your quota is exhausted.
# Add keywords
Source: https://docs.keupera.com/api-reference/keywords/add-keywords
/api-reference/openapi.json post /keywords
Adds one or more keywords to a website. Set `enrich: true` to auto-fill volume, difficulty, CPC, and intent via DataForSEO — this consumes keyword research credits.
# Bulk update keyword status
Source: https://docs.keupera.com/api-reference/keywords/bulk-update-keyword-status
/api-reference/openapi.json patch /keywords/status
Updates the status of multiple keywords in a single request.
# Delete keywords
Source: https://docs.keupera.com/api-reference/keywords/delete-keywords
/api-reference/openapi.json delete /keywords
Deletes one or more keywords by ID.
# List keyword groups
Source: https://docs.keupera.com/api-reference/keywords/list-keyword-groups
/api-reference/openapi.json get /keywords/groups
Returns all keyword groups for a website.
# List keywords
Source: https://docs.keupera.com/api-reference/keywords/list-keywords
/api-reference/openapi.json get /keywords
Returns a paginated list of keywords for the authenticated website.
# Poll a research job
Source: https://docs.keupera.com/api-reference/keywords/poll-a-research-job
/api-reference/openapi.json get /keywords/research/{jobId}
Returns the current state of a keyword research job. Poll until `status` is `completed` or `failed`.
# Toggle keyword star
Source: https://docs.keupera.com/api-reference/keywords/toggle-keyword-star
/api-reference/openapi.json patch /keywords/{id}/star
Stars or unstars a keyword.
# Trigger keyword research
Source: https://docs.keupera.com/api-reference/keywords/trigger-keyword-research
/api-reference/openapi.json post /keywords/research
Generates keyword ideas using AI plus DataForSEO enrichment.
This is a **long-running job**. By default the endpoint returns a job handle immediately (`202 Accepted`) — poll `GET /keywords/research/{jobId}` with the returned `job_id` until `status` is `completed`. Pass `"sync": true` to wait inline, but this is not recommended as it is subject to gateway timeouts.
Consumes keyword research credits.
# Account & Utilities
Source: https://docs.keupera.com/api-reference/utilities
Verify credentials, connect a CMS, and reference internal endpoints and webhooks.
Account-level and utility endpoints. `GET /me` and `POST /connect` have live playgrounds in the sidebar; the internal endpoints below are documented for reference only.
## What you can do
`GET /me` returns basic profile info and works on any valid key — the fastest way to test authentication.
`POST /connect` registers a Framer or WordPress integration against your API key.
`GET /me` skips the paid-tier check, so it succeeds on any valid API key regardless of subscription. Use it in health checks and setup wizards to confirm a key is live.
## Internal endpoints
These endpoints exist on the API surface but are not intended for direct integration.
### Track bot hit
```http theme={null}
POST /track-bot
```
Used by the Keupera in-page tracker script to record AI bot visits. **Not intended for direct integration** — read the data via the [Analytics bot-traffic endpoints](/api-reference/analytics) instead.
## Webhooks
Configure outbound webhooks in **Account → Integrations**. Keupera will `POST` a JSON payload to your endpoint on the events you subscribe to.
### Inbound webhooks
| Path | Purpose |
| ---------------------------- | -------------------------------------------------------------- |
| `POST /api/v1/polar-webhook` | Polar billing events (Keupera-internal — do not call directly) |
# AI Funnel
Source: https://docs.keupera.com/features/ai-funnel
Simulate AI conversations to measure your brand's presence.
The **AI Decision Funnel** (part of AI Studio) maps out how well your brand performs throughout the stages of an AI-led customer journey.
## Simulating the AI Journey
Instead of a static snapshot, the AI Funnel simulates a multi-turn conversation between a user and an AI model:
* **Awareness**: When a user asks a broad question about a problem or category.
* **Consideration**: When a user narrows down their options.
* **Decision**: When the AI recommends a specific brand or solution.
## Funnel Campaigns
A **Funnel Campaign** runs these simulations periodically, letting you see exactly where your brand drops off the AI's radar or where a competitor suddenly gains the upper hand. The goal is to ensure your brand survives the funnel, from the initial question to the final recommendation.
# Analytics
Source: https://docs.keupera.com/features/analytics
Deep dive into your search performance and traffic insights.
The **Analytics** module integrates data from your website traffic and Google Search Console (GSC) to provide a unified view of your organic performance.
## Overview
The Analytics view provides an aggregated summary of your website's performance:
* **Total Visits & Pageviews**
* **Average Visit Duration & Bounce Rate**
* **Devices & Browsers Breakdown**
* **Geographic Traffic**
## Search Performance
By integrating with Google Search Console, Keupera brings your search metrics right into the platform:
* **Top Pages & Keywords**: See which URLs and queries bring in the most organic clicks.
* **Position Distribution**: Understand how many keywords rank in the Top 3, Pos 4-10, Pos 11-20, etc.
* **Striking Distance Keywords**: Identify keywords ranking on page 2 (positions 11-20) with high impressions that are prime targets for optimization.
* **Keyword Cannibalization**: Spot instances where multiple pages on your site are competing for the same search term.
## AI Bot Traffic
A unique feature of Keupera Analytics is **AI Bot Traffic Tracking**. We identify and summarize visits from AI crawlers (like OpenAI, Anthropic, or Perplexity bots), showing you:
* Which AI bots are indexing your site.
* The specific paths and pages they are visiting most frequently.
# Authority Layer
Source: https://docs.keupera.com/features/authority
Audit your brand's presence on platforms AI models trust.
The **Authority Layer** (part of AI Studio) focuses on third-party validation. AI models don't just trust what you say about yourself; they look for corroboration from authoritative sources.
## Trust Signals
This tool audits your brand's presence across platforms that serve as key trust signals for AI:
* **Review Sites**: G2, Capterra, Trustpilot.
* **Directories**: Wikipedia, Crunchbase, industry-specific listings.
* **News & PR**: High-authority publications mentioning your brand.
## Authority Campaigns
An **Authority Campaign** calculates an **Authority Score** based on the breadth and quality of these external sources. It helps you identify which platforms you need to target to improve your overall reputation in the eyes of an LLM.
# Backlinks
Source: https://docs.keupera.com/features/backlinks
Manage backlink campaigns and track link building opportunities.
The **Backlinks** module is designed to help you discover, evaluate, and manage high-quality link-building opportunities.
## Campaign Management
You can create organized **Backlink Campaigns** targeted around specific pages or goals. Each campaign acts as a central workspace for tracking outreach and success.
## Finding Opportunities
Keupera automatically highlights potential backlinks tailored to your domain's niche and content. You can review opportunities based on:
* **Domain Authority**: Evaluating the trust and strength of the referring site.
* **Relevance**: Ensuring the linking site is contextually aligned with your business.
* **Status Tracking**: Keep tabs on whether a link has been requested, is in progress, or successfully acquired.
## Reporting
In Agency Mode or for internal tracking, you can generate reports demonstrating the growth of your backlink profile over time, directly contributing to your overall SEO authority.
# Brand Radar
Source: https://docs.keupera.com/features/brand-radar
Track how AI models mention and perceive your brand.
The **Brand Radar** (part of AI Studio) helps you understand if and how Large Language Models (LLMs) like ChatGPT, Claude, and Gemini talk about you.
## How It Works
By setting up **Brand Radar Campaigns**, you tell Keupera to regularly query AI models about your brand, products, or industry.
* **Visibility Score**: An aggregate metric indicating how often your brand appears in relevant AI responses.
* **Sentiment Analysis**: Whether the AI models speak positively, neutrally, or negatively about your offerings.
* **Competitor Mentions**: See which of your competitors are being recommended alongside or instead of you.
## Why It Matters
As users increasingly turn to AI for recommendations instead of traditional search engines, ensuring your brand is part of the AI's "knowledge base" is critical. Brand Radar alerts you if you're losing visibility to competitors in this new ecosystem.
# Calendar
Source: https://docs.keupera.com/features/calendar
Schedule, organize, and plan your SEO content pipeline.
The **Calendar** feature is designed for planning your content strategy in a structured, timeline-based format.
## Overview
A visual representation of your upcoming articles, blog posts, and landing pages, the Calendar allows you to:
* Schedule publishing dates.
* Assign topics to specific writers or campaigns.
* See which content is currently in progress, under review, or published.
## Agency Mode
If you're using Keupera as an agency, the Calendar becomes an essential tool for managing client deliverables. You can switch between clients to view customized content schedules, assign To-Do's to team members, and ensure that every piece is moving forward.
# Competitors
Source: https://docs.keupera.com/features/competitors
Analyze and benchmark against competing domains.
The **Competitors** tool allows you to track rival websites and uncover strategic gaps in your own content and AI visibility.
## Tracking Competitors
You can add multiple competitor domains to your dashboard to monitor their performance over time. Keupera not only lets you add known competitors manually but also automatically suggests them based on AI visibility and search overlap via **Brand Radar Suggestions**.
## Deep Analysis
By running a deep analysis on a tracked competitor, you gain access to:
* **Market Overlap**: Understanding how much your audience intersects with theirs.
* **Main Topics**: Identifying the core subject areas their content focuses on.
* **Top Keywords**: Exposing the high-value search terms driving traffic to their site.
* **Content Gaps**: Seeing exactly where they rank for terms you currently don't.
## Reporting
All competitor data is stored and updated over time, allowing you to generate reports and track if the gap is widening or closing across search and AI recommendation engines.
# Dashboard
Source: https://docs.keupera.com/features/dashboard
Overview of your SEO and AI visibility metrics.
The **Dashboard** is your central hub for monitoring your site's search performance and AI visibility. It provides a comprehensive, high-level summary of how your brand is performing across different channels.
## Key Metrics
On the Dashboard, you'll find an immediate summary of:
* **Organic Traffic**: Total visits from search engines over a specific timeframe.
* **Top Ranking Keywords**: A quick glimpse of keywords driving the most traffic.
* **AI Brand Visibility**: Overall score of how frequently and positively your brand is mentioned by major AI models (like ChatGPT and Claude).
## Quick Actions
From the Dashboard, you can quickly jump into core modules:
* Navigate to **Analytics** for deeper data dives.
* Access the **AI Studio** tools to measure and improve AI model recommendations.
* Launch a new **Content** creation session.
## Organization & Site Selection
If you manage multiple properties or work within an agency, use the site selector in the top navigation to switch contexts. The Dashboard dynamically updates to reflect the data of the currently selected property.
# Editor
Source: https://docs.keupera.com/features/editor
Write and optimize content with real-time SEO intelligence.
The **Editor** is an intelligent writing environment designed to help you create high-ranking content.
## Real-Time Optimization
As you write, the Editor provides feedback and suggestions based on target keywords, helping you optimize:
* Title Tags and Meta Descriptions.
* Heading structure (H1, H2, H3).
* Keyword density and placement.
* Readability and content length.
## Collaboration
The Editor supports commenting and review workflows, allowing teams and agencies to collaborate on drafts before they go live.
## AI Assistance
You can utilize AI tools directly within the Editor to generate outlines, suggest content angles, or refine paragraphs to ensure your article aligns perfectly with user search intent.
# Entity Layer
Source: https://docs.keupera.com/features/entity-layer
Profile how AI systems understand your brand's core data.
The **Entity Layer** (part of AI Studio) analyzes how well AI systems understand your business as a distinct, factual entity.
## The Concept
AI models rely on structured data, knowledge graphs, and clear, consistent facts to build their understanding of the world. The Entity Layer tools help you:
* **Audit Structured Data**: Check if your website's Schema markup correctly defines your organization, products, and services.
* **Consistency Checks**: Ensure your brand's name, description, and core facts are consistent across the web, making it easier for AI to piece the puzzle together.
## Campaigns & Scoring
By running an **Entity Campaign**, you receive an **Entity Score** that highlights issues like missing factual data or conflicting information that might confuse an AI attempting to summarize your brand.
# Focus Tools
Source: https://docs.keupera.com/features/focus-tools
Professional-grade SEO and AI utilities to supercharge your workflow.
The **Focus Tools** section provides a suite of specialized utilities categorized by SEO discipline:
## Keyword Research
* **Keyword Intent Checker**: Decode user intent behind queries.
* **Long-Tail Keyword Generator**: Discover high-opportunity, low-competition keywords.
* **Keyword Gap Analyzer**: See what you're missing vs competitors.
* **Search Volume Checker**: Get accurate monthly search estimates.
## Link Building
* **Outreach Email Generator**: Draft personalized link-building outreach emails.
* **Backlink Finder**: Find high-quality link opportunities.
* **Broken Link Checker**: Identify 404s to reclaim value.
* **Authority Checker**: Check domain and page strength.
## Writing & Content
* **Content Outline Generator**: Build publication-ready article outlines.
* **Title & Headline Generator**: Create click-worthy, SEO-optimized headlines.
* **Meta Description Generator**: Write compelling search-result summaries.
* **Article Rewriter & Optimizer**: Refresh existing content for better performance.
## Technical SEO
* **SEO Audit**: Identify technical issues instantly.
* **Sitemap Generator**: Create XML sitemaps for crawlers.
* **Robots.txt Generator**: Control crawler access effectively.
* **SSL Checker**: Verify security certificate validity.
## SERP & Utilities
* **SERP Previewer**: Visualize your snippet in search results.
* **Rich Snippet Generator**: Create schema markup easily.
* **Rank Tracker**: Monitor keyword positions over time.
* **Google Index Checker**: Verify URL indexing status.
* **URL Encoder/Decoder**, **Favicon Fetcher**, **WHOIS Lookup**, and **DNS Lookup**.
# Keywords
Source: https://docs.keupera.com/features/keywords
Discover and track high-value keywords for your website.
The **Keywords** feature empowers you to research, track, and optimize the search terms that matter most to your business.
## Researching Keywords
By entering a seed term or domain, you can generate comprehensive lists of relevant keywords. Each keyword includes critical data points:
* **Search Volume**: Monthly estimated searches.
* **Keyword Difficulty**: How hard it will be to rank for the term.
* **Search Intent**: Understanding whether the user is looking for information, navigating to a specific site, or ready to purchase.
## Tracking & Management
Keywords aren't just for research; Keupera allows you to track their performance over time:
* **Keyword Groups**: Organize terms logically based on topic or product category.
* **Funnel Stage**: Map keywords to the customer journey (Awareness, Consideration, Decision).
* **Enrichment**: Connect your tracked keywords directly to Google Search Console to see actual impressions and clicks.
## Actions
From the Keywords view, you can seamlessly push targets to the **Editor** to start creating optimized content, or assign them as **To-Do's** if you operate in Agency Mode.
# Prompt Engine
Source: https://docs.keupera.com/features/prompt-engine
Discover what users ask AI about your niche.
The **Prompt Engine** (part of AI Studio) is a revolutionary research tool that flips traditional keyword research on its head. Instead of looking at what people type into Google, it explores what questions users pose to conversational AI models.
## AI Prompt Research
Setting up a **Prompt Research Campaign** involves tracking specific topics or products. The engine discovers and clusters the exact prompts users are generating.
## Use Cases
* **Content Ideation**: Generate FAQ sections and deeply informative content based on the exact phrasing of complex AI queries.
* **Product Development**: Understand what users are actually trying to achieve and where they encounter friction with existing solutions.
* **Sales Enablement**: Prepare your team with answers to the nuanced questions prospects ask AI before speaking to a human.
# Welcome to Keupera
Source: https://docs.keupera.com/index
The AI-native SEO platform — programmatically access keyword research, backlinks, content, AI visibility, and analytics.
Keupera is an all-in-one SEO and AI visibility platform. The **Keupera Public API** lets you integrate every major module directly into your own tools and workflows. Those include Keyword Research, Backlink Research, Content Management, AI Visibility, and Analytics.
Make your first authenticated request in under 5 minutes.
## API modules
Research, enrich, and manage keywords and keyword groups.
Run backlink campaigns, manage opportunities, and send outreach.
Plan, generate, and publish AI-written blog articles.
Track brand mentions across LLMs with Brand Radar and Prompt Research.
Website analytics, Search Console, and AI bot traffic.
Base URL, authentication, pagination, and error handling.
## Get started
Create a key from **Settings → API Keys** in your Keupera dashboard.
Authenticate and fetch your first dataset.
API access requires a subscription plan that includes the Public API. If you
receive a `403`, upgrade your plan or contact [ask@support.keupera.com](mailto:ask@support.keupera.com).
# Web analytics pixel
Source: https://docs.keupera.com/integrations/analytics-pixel
Install the cookieless Keupera tracker to power the Analytics module.
The Keupera tracker is a lightweight (under 2 KB), cookieless JavaScript snippet that streams pageviews into the [Analytics](/features/analytics) module. It populates the **Website** summary, daily traffic, top pages, referrers, devices, browsers, and geo breakdowns.
## How it works
* No cookies. A `keupera_session_id` is generated in `sessionStorage` and reset when the tab closes.
* Uses `navigator.sendBeacon` so the request never blocks navigation; falls back to `fetch` on older browsers.
* Captures URL, path, hostname, referrer, and UTM parameters automatically.
* Skips common sensitive paths (`/wp-admin`, `/wp-login`, `/admin`, `/.env`, `/.git`).
## Get your Tracking API key
Go to **Account → API Keys** in your [dashboard](https://app.keupera.com).
Click **Create API key** and choose the **Tracking** scope. Tracking keys are restricted — they can only send analytics events, never read or mutate other data, so it's safe to expose them in client-side HTML.
Never embed a Full Access (`sk_live_...`) key in your website's HTML. Always use a **Tracking** scoped key for the pixel.
## Install on any website
Paste this snippet just before `` on every page you want to track:
```html theme={null}
```
That's the whole install. The script self-initialises on `DOMContentLoaded` and fires a `pageview` event automatically.
## Platform-specific install
Install the [Keupera Connector plugin](/integrations/wordpress). It injects the snippet into `wp_head` automatically when **Enable Website Analytics** is on (default). The plugin uses your Tracking key if provided, otherwise it falls back to the connected Full Access key.
Install the **Keupera** plugin from the Framer marketplace and paste your Tracking key. The plugin handles the snippet injection.
Add the following to your root layout (`app/layout.tsx`). Set `NEXT_PUBLIC_KEUPERA_TRACKING_KEY` in your `.env.local`.
```html theme={null}
```
Or use `next/script` — set `window.KEUPERA_API_KEY` in a `beforeInteractive` Script and load the tracker with `strategy="afterInteractive"`.
Add the snippet in **Site Settings → Custom Code → Header**. The exact path varies per builder but every modern site builder supports a global `` injection field.
## Custom events (optional)
After the tracker loads, `window.keupera.track(eventName, properties)` is available for custom events:
```js theme={null}
window.keupera?.track("signup_clicked", { plan: "pro" });
```
Custom events show up in the **Analytics → Events** view alongside pageviews.
## Verify the install
1. Open your live site in a new browser tab.
2. Open DevTools → **Network** and filter by `track`. You should see a `POST` to `https://sqnxgokfnvdglftrgekd.supabase.co/functions/v1/track` returning `204`.
3. In Keupera, open **Analytics → Website Summary**. New sessions appear within \~30 seconds.
If you see `Keupera Analytics: API Key not found` in the console, the `window.KEUPERA_API_KEY` assignment ran after the tracker — make sure the key `