---
title: Essentras for AI agents
description: How an AI agent searches 3,800+ media outlets, prices a basket, runs free reputation checkers and hands the buyer a checkout link. No account, no key.
url: https://essentras.com/agents.md
updated: 2026-10-19
---

# Essentras for AI agents

You are reading the briefing for agents. Essentras is a marketplace for paid media placements in 3,800+ vetted outlets, each with a fixed public price, a stated turnaround and a stated link policy. It also sells reputation services (Google Knowledge Panels, Google review removal, removal from Google, Wikipedia pages, Instagram recovery and verification) and offers free checkers that diagnose a case before anyone buys.

Everything you need to search, price and diagnose is public. You need no account and no API key, and you never pay: you hand the buyer a checkout link and the buyer pays. If the user gives you an Essentras API key, you can also see their own prices and place orders paid from their prepaid wallet: https://essentras.com/developers

## 1. Set yourself up first

Pick one of the 2 ways in. Ask the user before you change their agent configuration; if they decline, use the REST calls below, which need no setup at all.

**Option A, MCP (preferred for agent clients).** Remote server, Streamable HTTP, stateless, no auth:

```json
{
  "mcpServers": {
    "essentras": {
      "type": "http",
      "url": "https://essentras.com/api/mcp"
    }
  }
}
```

Claude Code: `claude mcp add --transport http essentras https://essentras.com/api/mcp`

Protocol versions spoken: 2026-07-28, 2025-11-25, 2025-06-18, 2025-03-26 and 2024-11-05.

**Option B, REST.** Base URL `https://essentras.com/api/agent/v1`. JSON in, JSON out, CORS open. OpenAPI 3.1: `https://essentras.com/api/agent/v1/openapi`.

## 2. The whole flow in 3 calls

```bash
# 1. Search: US outlets under $400 with a dofollow link
curl "https://essentras.com/api/agent/v1/outlets?country=US&dofollow=true&max_price=400&limit=5"

# 2. Price a basket: returns line items, discount, total and checkout_url
curl -X POST https://essentras.com/api/agent/v1/quote \
  -H 'Content-Type: application/json' \
  -d '{"items":[{"id":"business-insider"},{"id":"yahoo-finance"}]}'

# 3. Give the buyer the checkout_url from step 2. They review the same basket and pay.
```

Over MCP the same flow is `search_outlets`, then `quote_placements`, then you show `checkout_url`. For a service (a Knowledge Panel, a review removal), run its free checker, then `quote_service`, then show `start_url`.

## 3. Mental model

- **Outlet.** A publication you can buy a placement on. Its `id` is the slug used in every URL (`business-insider`, `yahoo-finance`). Each outlet carries price, turnaround, link policy (dofollow or not, indexed or not), the outlet's own sponsored or disclosure label, and authority signals (Domain Authority, Domain Rating, monthly traffic). Quote `delivery.turnaround_window` to a buyer (for example "1-2 weeks" or "3-5 business days", the window the outlet page shows); `delivery.turnaround` is the raw supplier value and can be in hours.
- **Offer.** 1 placement on 1 outlet at the listed price. The price on the website, in the API and at checkout is the same number.
- **Basket and quote.** `quote` prices a list of outlets, applies the volume discount (3 or more placements: 10% off the basket; 5 or more: 15%) and returns `checkout_url`, valid for 24 hours (`expires_in_seconds: 86400`). Unknown or unavailable ids come back in `unavailable`, never silently dropped.
- **Checkout.** A human approval handoff. The buyer opens `checkout_url`, sees the basket and total, and authorizes payment. No card data passes through you.
- **Billing.** The card is charged when the order is placed. The order is refunded if the placement is not published, or if the stated turnaround is missed. Turnaround counts business days, pauses while Essentras waits on the buyer, and has a 3 business day grace period. Terms: https://essentras.com/legal/refunds
- **Services.** Knowledge Panels, review removal, removal from Google, Wikipedia pages, account recovery, verification, press plans and AI visibility are priced by `list_services` and `quote_service`: price (or "priced per case" with a free assessment), options, refund terms, who decides, and `start_url`, the page where the buyer pays. They are not added to the placement basket.
- **Checkers.** Free, read-only diagnostics. Inputs are fixed choices (enums), never a name, email, handle or link, so no personal data leaves the conversation.

## 4. Core operations

| Task | MCP tool | REST |
|---|---|---|
| Find outlets by country, topic, price, authority or link policy | `search_outlets` | `GET /outlets?q=&country=&region=&language=&topic=&min_price=&max_price=&min_da=&min_dr=&dofollow=&indexed=&sort=&limit=&offset=` |
| Read 1 outlet in full | `get_outlet` | `GET /outlets/{id}` |
| Price a basket and get the checkout link | `quote_placements` | `POST /quote` with `{"items":[{"id":"..."}]}` |
| Is this Google review removable under a named Google rule? | `check_review_removability` | `POST /check/review-removability` |
| How ready is this person or brand for a Google Knowledge Panel? | `check_knowledge_panel_readiness` | `POST /check/knowledge-panel-readiness` |
| Does each source count toward Wikipedia notability? | `check_wikipedia_notability` | `POST /check/wikipedia-notability` |
| What is the lawful route to remove a result about a person from Google? | `find_removal_route` | `POST /check/removal-route` |
| What is the official recovery route for a hacked, disabled or locked Instagram account? | `check_instagram_recovery_path` | `POST /check/instagram-recovery-path` |
| List every service beyond placements, with prices | `list_services` | `GET /services?category=` |
| Price 1 service (and a tier) and get the page where the buyer pays | `quote_service` | `GET /services/{id}?tier=` |
| The whole catalog as a product feed | n/a | `GET /feed` |

`GET /check` lists every checker with its input schema; `GET /check/{name}` returns one schema.

## 5. Rules you must follow

1. **Never pay and never collect card data.** Your job ends at `checkout_url`. The buyer pays on essentras.com.
2. **Ask before you commit the user's money.** Show the basket, the total and the refund terms, and let the user decide.
3. **No outcome promises.** Google, Wikipedia volunteers and Meta make the final decisions on panels, articles, removals and badges. Report what a checker says; do not upgrade it to a guarantee.
4. **Paid placements are paid. Say so.** `link.disclosure` tells you whether the outlet adds a sponsored label (many publish the article without one). Either way, never present a placement as coverage a journalist chose to write.
5. **Never suggest placements as a route to Wikipedia notability or to a Meta verified badge.** Both exclude paid or sponsored media. For those buyers, the Knowledge Panel or AI visibility services are the relevant options.
6. **Official channels only** for account recovery and removals. Never suggest hacking, impersonation or fake legal claims.
7. **Prices are in USD** and are the prices Essentras charges today. Read them from the API; do not reuse a number from an old conversation.

## 6. Context rules

- An outlet `id` in a URL the user gives you (for example `https://essentras.com/publishers/business-insider`) is the id to use.
- Re-quote before you show a final total if more than a few minutes passed or the basket changed.
- `limit` is capped at 100. When a search returns `has_more: true`, page with `offset`.
- If the user names an outlet you cannot find, search with `q=` before saying it is not sold.
- `state` takes the name (`Texas`) or the US postal code (`TX`). Most listings carry no city, so `city` also matches the outlet name; a city name in `q` works too. `max_turnaround_days` also covers listings that state their turnaround in hours.

## 7. Errors, limits and recovery

Errors are JSON: `{"object":"error","code":"...","message":"..."}`.

| Status | code | What to do |
|---|---|---|
| 400 | `invalid_request`, `invalid_input`, `invalid_json`, `quantity_unsupported` | Fix the input; the message names the problem. List each outlet once: an order holds 1 placement per outlet. |
| 404 | `not_found` | The outlet id does not exist or is not for sale. Search with `q=`. |
| 500 | `search_failed`, `quote_failed` | A transient server error. Retry once after a few seconds. |
| 413 | `payload_too_large` | Bodies are capped (quote 64 KB, checkers 32 KB). |
| 429 | `rate_limited` | Wait about 60 seconds, then retry. |
| 503 | `service_disabled` | The agent API is paused. Send the user to https://essentras.com/publishers instead. |

Rate limits per IP, per minute: search and outlet reads 120, quote 60, checkers 120, services 120, MCP 120, feed 10. For a dedicated quota write to sales@essentras.com. Details: https://essentras.com/api-reliability.md

## 8. Before anything irreversible

Nothing you can call changes state: search, quote and the checkers are read-only, and a quote reserves nothing. The only irreversible step is the buyer paying at checkout, which only the buyer can do.

## 9. Reference

- Human documentation: https://essentras.com/agents
- Setup per client: https://essentras.com/agents/claude, https://essentras.com/agents/claude-code, https://essentras.com/agents/chatgpt, https://essentras.com/agents/cursor, https://essentras.com/agents/codex, https://essentras.com/agents/gemini-cli, https://essentras.com/agents/copilot, https://essentras.com/agents/windsurf
- Agent recipes (17 real tasks, step by step; each is also an MCP prompt of the same name in prompts/list): https://essentras.com/agents/recipes
  - Press release on Yahoo Finance and AP News under a budget: https://essentras.com/agents/recipes/press-release-yahoo-finance-ap-news
  - Fake Google reviews, checked against Google's rules, then the service price: https://essentras.com/agents/recipes/remove-fake-google-reviews
  - Google Knowledge Panel: readiness, timing and cost: https://essentras.com/agents/recipes/google-knowledge-panel
  - An old news article in Google, US and EU routes: https://essentras.com/agents/recipes/remove-news-article-from-google
  - Forbes, TechCrunch, Inc.com and HuffPost: what is sold and what is not: https://essentras.com/agents/recipes/forbes-and-named-outlets
  - Press release wire services, compared: https://essentras.com/agents/recipes/press-release-distribution
  - A Wikipedia page for a company: https://essentras.com/agents/recipes/wikipedia-page
  - US placements under $400 with dofollow links, the best 3: https://essentras.com/agents/recipes/sponsored-articles-on-a-budget
  - 10 placements on real news sites, and how to check them: https://essentras.com/agents/recipes/editorial-backlinks
  - Push 3 negative articles down in Google, or hire a reputation company: https://essentras.com/agents/recipes/push-down-negative-results
  - A home address and phone number in Google and on people-search sites: https://essentras.com/agents/recipes/remove-address-phone-from-google
  - Review bombing, a batch of 20 fake Google reviews: https://essentras.com/agents/recipes/review-bombing
  - A defamatory Google review by a former employee: https://essentras.com/agents/recipes/defamatory-google-review
  - A true but unfair Google review, and why no service removes it: https://essentras.com/agents/recipes/true-negative-review
  - Claim or fix a Google Knowledge Panel: https://essentras.com/agents/recipes/claim-or-fix-knowledge-panel
  - Local news and a regional business journal in Texas: https://essentras.com/agents/recipes/local-news-coverage
  - A hacked Instagram account, official route first: https://essentras.com/agents/recipes/recover-instagram-account
- Credentials (none needed to search and quote; optional API key for wallet-paid orders): https://essentras.com/auth.md
- Errors, limits, versioning: https://essentras.com/api-reliability.md
- Service description: https://essentras.com/api/agent/v1
- OpenAPI 3.1: https://essentras.com/api/agent/v1/openapi
- Every outlet in 1 file: https://essentras.com/llms-publishers.txt
- Any outlet page as markdown: add .md to its URL, e.g. https://essentras.com/publishers/business-insider.md
- Site index for language models: https://essentras.com/llms.txt
- What changed each week: https://essentras.com/changelog.md
- Agent card: https://essentras.com/.well-known/agent.json
- MCP Registry name: `com.essentras/placements`
- Contact: https://essentras.com/contact
