canonical: https://jentic.com/apis/llmpulse.ai/llmpulse

# LLM Pulse API

The LLM Pulse API measures how a brand appears in AI-generated answers from ChatGPT, Perplexity, Gemini, Google AI Overviews, and Google AI Mode, returning brand mentions, citations, sentiment, and Share of Voice for each tracked project. It lets you set up projects, competitors, and tracked prompts, then read time-series and summary metrics, the individual AI responses behind them, and the sources those answers cite. Beyond tracking, it runs GEO audits and technical GEO reports, launches recommendation runs and GEO Writer content tasks, reads Google Search Console and AI referral traffic for the project, and sends signed webhook events such as mention.created or geo_audit_run.completed.

## For AI agents

Track brand visibility in AI answers: manage projects, prompts, and competitors in LLM Pulse, read Share of Voice, mentions, citations, and sentiment, and run GEO audits and recommendation reports.

## Scope

Does not run paid ad campaigns, host websites, or call language models on your behalf for chat. Use for tracking and improving brand visibility in AI-generated answers only.

## Capabilities

- Read Share of Voice over time, current, or by breakdown for a project with getShareOfVoice and the view parameter
- List brand and competitor mentions and citations found in AI answers from ChatGPT, Perplexity, Gemini, and Google AI Overviews
- Bulk-create tracked prompts for a project with country_code and language_code, and group them into tags
- Add competitors by brand_name and domain so their mentions and citations are tracked alongside yours
- Create GEO audits on a cadence, run them on demand, and compare two audit runs to see which issues changed
- Launch recommendation runs and GEO Writer tasks that draft content targeting specific tracked prompts
- Subscribe a target_url to signed webhook events such as mention.created and sentiment.negative_detected

## Use cases

### Agent-run AI visibility reporting through Jentic

A marketing agent asks Jentic for the LLM Pulse operations that report brand visibility, then calls getSummary and getShareOfVoice for a project_id over a range of days and pulls the top cited sources with getTopSources. It writes a weekly digest of how often the brand appears in AI answers versus competitors. The bearer key stays in your self-hosted Jentic One instance.

Example prompt: Search Jentic for 'get share of voice in AI answers', call getShareOfVoice with project_id 123, range 30, and view 'over_time', then summarize the trend

### Competitor tracking in AI answers

Add each rival with createCompetitor using project_id, brand_name, and domain, then read listCompetitorMentions and listCompetitorCitations to see where AI answers recommend them instead of you. listAllMentions combines brand and competitor mentions into one feed for side-by-side review.

Example prompt: Call createCompetitor with project_id 123, brand_name 'Acme', and domain 'acme.com', then call listCompetitorMentions for project_id 123

### GEO audits for key pages

Create GEO audits with createGeoAudits by passing project_id, a target, and audit_types, optionally on a cadence. Trigger a run with runGeoAudit, read its findings with listGeoAuditFindings, and use compareGeoAuditRuns with from_run and to_run to confirm that fixes landed between releases.

Example prompt: Call runGeoAudit for geo_audit_id 42, then call listGeoAuditFindings for the new run sequence and list the open findings

### Real-time alerts on mentions and sentiment

Register a public HTTPS target_url with createWebhook for event types such as mention.created, citation.created, or sentiment.negative_detected. LLM Pulse sends signed event payloads, and sampleWebhookPayloads returns example bodies so the receiver can be built before the first live event arrives.

Example prompt: Call createWebhook with project_id 123, event_type 'sentiment.negative_detected', and target_url 'https://hooks.example.org/llmpulse'

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | `/metrics/sov` | Share of Voice |
| GET | `/metrics/summary` | Aggregated metrics summary |
| GET | `/dimensions/mentions` | List brand mentions |
| GET | `/dimensions/citations` | List brand citations |
| POST | `/prompts` | Bulk-create tracked prompts |
| POST | `/competitors` | Add a competitor |
| POST | `/geo_audits` | Create GEO audits |
| POST | `/webhooks` | Create a webhook subscription |

## Key resources

- **Projects** — Tracked brands with their profile, prompts, competitors, and locales
- **Metrics** — Time-series and summary visibility, Share of Voice, and top cited sources
- **Mentions and citations** — Brand and competitor appearances in AI answers and the URLs they cite
- **GEO audits** — Scheduled page audits with runs, findings, issues, and alerts
- **Webhooks** — Signed event subscriptions for mentions, sentiment, and completed runs

## AI readiness

This API is usable in Jentic One now. Its AI-readiness score against Jentic's framework shows where it stands today and where improvements would make it even easier for agents to use.

- **Score:** 64 / 100
- **Maturity:** AI-Aware
- **Dimensions:**
  - Foundational Compliance: 74 / 100
  - Developer Experience & Jentic Compatibility: 62 / 100
  - AI-Readiness & Agent Experience: 49 / 100
  - Agent Usability: 76 / 100
  - Security: 75 / 100
  - AI Discoverability: 72 / 100
- **View full report:** https://jentic.com/apis/llmpulse.ai/llmpulse/scorecard
- **How the score is calculated:** https://docs.jentic.com/reference/api-readiness-framework/overview/
- **More about the dimensions:** https://docs.jentic.com/reference/api-readiness-framework/specification/#dimensional-model-overview

### Score it yourself

Every API in the directory is allowlisted, so you can re-score it with no key required.

- **Score your own API:** https://jentic.com/scorecard.md
- **Scoring CLI agent skill:** https://github.com/jentic/jentic-api-scorecard/blob/main/skills/jentic-api-scorecard/SKILL.md

```sh
npx @jentic/api-scorecard-cli score <openapi-url>
```

## Why Jentic

- **Setup:** Wiring LLM Pulse by hand means handling its bearer API key, passing project_id on most operations, and paging through mention and citation lists yourself. Through Jentic you install once, import LLM Pulse from the API Directory, store the key once, and your agent calls it.
- **Permission scoping:** LLM Pulse passes project_id as a query or body field on most operations, so rules bound which operations your agent may call rather than which project. You choose the operations it may call, so destructive ones like deleteCompetitor, removeTeamMember, or deleteGeoAudit are not included unless you add them.
- **Credential handling:** Your LLM Pulse key is stored once, encrypted, by your own Jentic One instance and injected at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'share of voice in AI answers' or 'run a GEO audit', and Jentic returns the matching LLM Pulse operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Semrush API** — Classic search keyword, ranking, and backlink data
- **Ahrefs API** — Backlink, keyword, and site audit data for classic SEO
- **AI Mention Tracker API** — Tracks brand mentions inside AI assistant answers
- **Google Search Console API** — Google search performance and indexing data for a verified site

## FAQ

### What authentication does the LLM Pulse API use?

Per its OpenAPI spec, REST calls use an HTTP bearer API key managed in your LLM Pulse account (Scale plan or above), and a key can be limited to one or several projects when it is created. The spec also declares an OAuth2 scheme (OAuth 2.1 with PKCE) used by the MCP endpoint alongside the bearer key. Through Jentic the key is stored encrypted by your own Jentic One instance and injected at call time.

### Can I read Share of Voice in AI answers with the LLM Pulse API?

Yes. Call GET `/metrics/sov` with a project_id and a range or from and to dates, and set view to over_time, current, or breakdown. You can narrow it by competitors and model, and GET `/metrics/timeseries` and GET `/metrics/summary` return the broader visibility metrics for the same project.

### What are the rate limits for the LLM Pulse API?

The OpenAPI spec does not publish fixed numbers. Call GET /account to read your account plan, quota usage, and rate limits as they apply to your key, and see the LLM Pulse API reference for plan details.

### How do I add tracked prompts with the LLM Pulse API through Jentic?

Install Jentic One with `curl -fsSL https://raw.githubusercontent.com/jentic/jentic-one/main/tools/install.sh | sh`, add the LLM Pulse API from the Jentic API Directory, and have your agent search for 'bulk create tracked prompts'. Jentic returns createPrompts (POST /prompts) with its schema, and the agent sends project_id, prompts, country_code, and language_code. To run it on your own infrastructure, install Jentic One from its GitHub repo.

### Is there an LLM Pulse MCP server?

Yes - LLM Pulse offers an MCP endpoint at /mcp. You can also connect the LLM Pulse API directly through Jentic: your agent gets the full 127-endpoint surface from the spec without loading another server's tool definitions into its context, your credential is injected at call time by your self-hosted instance instead of living in an MCP config, and your rules decide which operations the agent may call.

### Can I limit what my agent is allowed to do with the LLM Pulse API?

Yes. For a reporting agent, write a rule that allows getSummary, getShareOfVoice, getTopSources, listMentions, and listCitations. The agent can then read visibility data and compile reports, but it cannot delete competitors, remove team members, or create webhooks, because those operations are not in the allowed set, and every call it makes is logged.

### Can the LLM Pulse API send events to my own endpoint?

Yes. POST /webhooks takes project_id, event_type, and a public HTTPS target_url that receives signed payloads. Event types include mention.created, citation.created, prompt_execution.completed, sentiment.negative_detected, and geo_audit_run.completed, and GET `/webhooks/sample/{event_type}` returns sample payloads for testing.
