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

# Iterant Public API

The Iterant Public API reads a brand's website pages, ranked page opportunities, page performance reports, and AI visibility, and starts Iterant's agent to build or change a page. Page opportunities carry a priority score, search intent, and a drafted brief with outline and FAQ, while page reports project Search Console performance, traffic, conversions, and component anatomy for a chosen window. The AI visibility overview returns share of voice, citation gaps, and prompt scores across assistants such as ChatGPT, Gemini, and Google AI Overviews, and internal-linking advisories suggest which pages should link to a target page.

## For AI agents

Read a brand's pages, ranked page opportunities, Search Console performance, and AI visibility in Iterant, get internal-linking suggestions, and start Iterant's agent to build a page or run a prompt.

## Scope

Does not run paid search campaigns, manage backlinks, or host sites outside Iterant. Use for reading Iterant page, opportunity, and AI visibility data and starting Iterant agent tasks only.

## Capabilities

- List page opportunities ranked by priority score and filter by intent, role, archetype, status, or surface
- Read one opportunity's thesis, target prompt, keywords, and drafted brief, with supporting citations through includeEvidence
- Report a page's Search Console performance, traffic, conversions, or component anatomy over a 7d, 28d, or 90d window
- Track AI visibility as share of voice, citation gaps, top sources, or prompt scores, split by platform such as chatgpt or gemini
- Get internal-linking advice: which existing pages should link to a target page, with anchor text and a relevance score
- Start an Iterant agent task with a build_page command for an opportunityRef or a free-form prompt, and poll it to completion

## Use cases

### Agent-run content pipeline

An AI agent responsible for a brand's content picks the next page to build and hands it to Iterant. Through Jentic the agent searches for 'list page opportunities', reads the ranked list for the brand, and starts a task with command build_page and the chosen opportunityRef, with the bearer key injected at call time. It then polls the task until it reports succeeded and returns the resultingRoute.

Example prompt: Call GET `/api/v1/public/brands/{brandSlug}/page-opportunities`/ with status ready, then POST `/api/v1/public/brands/{brandSlug}/tasks`/ with command build_page and the top row's ref as opportunityRef, and poll GET `/api/v1/public/brands/{brandSlug}/tasks/{taskId}`/ until it settles

### AI search visibility reporting

A marketing lead wants to know how often assistants cite the brand against competitors. The visibility overview returns one projection per call, such as kpis, share_of_voice, citation_gaps, or top_sources, filtered by platform and window, so a weekly report can show where competitors win citations on ChatGPT, Gemini, or Google AI Overviews.

Example prompt: Call GET `/api/v1/public/brands/{brandSlug}/visibility/overview`/ with view citation_gaps, platform chatgpt, and window 28d, and list the prompts where the brand is not cited

### Page performance review

Before rewriting a page, an editor checks how it performs today. The page report takes a urlPath and asks only for the metrics needed, such as performance for Search Console clicks, impressions, CTR, and position, or traffic for sessions and conversions, over a 7d, 28d, or 90d window.

Example prompt: Call GET `/api/v1/public/brands/{brandSlug}/reports/pages`/ with urlPath /pricing, metrics performance, and window 28d, and report clicks and average position

### Internal linking for new pages

When a page goes live it needs links from the rest of the site. The linking advisory returns which existing pages should link to the target, the suggested anchor text, and the passage the link would sit in, each with a relevance from 0 to 1, so an editor can act on the strongest placements first.

Example prompt: Call GET `/api/v1/public/brands/{brandSlug}/linking/advisory`/ with urlPath /pricing and list suggestions with relevance above 0.6

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | `/api/v1/public/brands/` | List accessible brands |
| GET | `/api/v1/public/brands/{brandSlug}/overview/` | Get a brand overview |
| GET | `/api/v1/public/brands/{brandSlug}/page-opportunities/` | List page opportunities |
| GET | `/api/v1/public/brands/{brandSlug}/reports/pages/` | Get a page report |
| GET | `/api/v1/public/brands/{brandSlug}/visibility/overview/` | Get AI visibility |
| POST | `/api/v1/public/brands/{brandSlug}/tasks/` | Start an agent task |
| GET | `/api/v1/public/brands/{brandSlug}/tasks/{taskId}/` | Get an agent task |

## Key resources

- **Brands** — Brands the key can read, with slug, site, and outstanding work, plus a one-call brand overview
- **Pages** — A brand's pages by status or path prefix, and full detail for one page by urlPath
- **Page opportunities** — Ranked opportunities with filters and a detail view with brief and optional evidence
- **Reports and visibility** — Page performance reports and AI visibility projections by view, platform, and window
- **Agent tasks** — Start build_page or prompt tasks, list them, and poll one by taskId

## 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:** 61 / 100
- **Maturity:** AI-Aware
- **Dimensions:**
  - Foundational Compliance: 72 / 100
  - Developer Experience & Jentic Compatibility: 72 / 100
  - AI-Readiness & Agent Experience: 40 / 100
  - Agent Usability: 94 / 100
  - Security: 60 / 100
  - AI Discoverability: 65 / 100
- **View full report:** https://jentic.com/apis/iterant.ai/iterant/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 Iterant by hand means minting an itr_ key, sending it as a bearer token, handling RateLimit fields and Retry-After on 429s, and sending an Idempotency-Key on task starts. Through Jentic you install once, import Iterant from the API Directory, store the key once, and your agent calls it.
- **Permission scoping:** Iterant puts the brand slug in the URL path (`/api/v1/public/brands/{brandSlug}/...`), so a rule can pin your agent to one brand. You choose the operations it may call, so task starts that change the site, such as POST to the tasks route, are not included unless you add them.
- **Credential handling:** Your Iterant API 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 'list page opportunities' or 'track AI visibility for a brand', and Jentic returns the matching Iterant operation with its input schema, including brandSlug and the view and window enums, so the agent calls the right endpoint.

## Related APIs

- **Semrush** — Keyword, backlink, and domain analytics for search marketing research
- **Ahrefs** — Backlink and organic search data across the web
- **Plausible Analytics** — Privacy-focused site analytics to cross-check traffic on pages Iterant builds

## FAQ

### What authentication does the Iterant Public API use?

Per its OpenAPI spec, every operation uses a bearer token: send Authorization: Bearer with an itr_ API key that an organization admin mints under Settings > Developers. An org-scoped key reads every brand in the organization, and a brand-pinned key reads only its own. Through Jentic the key is stored by your own instance and attached at call time, so the agent never sees it.

### What are the rate limits for the Iterant Public API?

The spec states 600 requests per minute per key and 30 task starts per minute, with RateLimit-Limit, RateLimit-Remaining, and RateLimit-Reset fields on responses. A 429 carries Retry-After in seconds. See https://iterant.ai/docs/developers/rest-api for details.

### How long does an Iterant agent task take?

The spec says a typical task settles in about five minutes and recommends polling GET `/api/v1/public/brands/{brandSlug}/tasks/{taskId}`/ every 30 to 60 seconds. A build_page task reports the page it produced in resultingRoute, and the task create call accepts an Idempotency-Key header so a retry within 24 hours returns the first task.

### Is there an Iterant MCP server?

You don't need an MCP server to give your agent Iterant. Jentic connects it directly from the API Directory: import it, store your key once, and your agent calls the page, opportunity, and visibility operations it needs without loading another server's tool definitions into its context.

### Can I limit what my agent is allowed to do with the Iterant Public API?

Yes. Write a rule that allows only the GET operations under `/api/v1/public/brands/acme`/, for example, and the agent can read that brand's pages, opportunities, reports, and visibility but cannot start tasks that change the site. Every call it makes is logged.

### How do I read a brand's AI visibility through Jentic?

Search Jentic for 'track AI visibility for a brand', load the GET `/api/v1/public/brands/{brandSlug}/visibility/overview`/ operation, and execute it with the brandSlug from the brands list and a view such as kpis. To run it on your own infrastructure, install Jentic One from its GitHub repo.
