canonical: https://jentic.com/apis/comunicate.eu/comunicate

# Comunicate.eu API

The Comunicate.eu API books advertorials and press releases on a network of publisher websites in Romania, Italy, and beyond. It searches the publisher list by niche, campaign type, authority, and price, creates articles from HTML or imported Word and Drive documents, orders professionally written articles, and requests publication of an article on chosen sites, paid from owned packages or the money balance. Before submitting, an agent can run an SEO analysis on an article and check whether it matches the ordered campaign type. Campaigns, balance, publication reports, and a live domain audit round out the surface, and a set of open public routes returns niches, budget plans, and market statistics without a key.

## For AI agents

Search publisher sites, create or order advertorial articles, check them against campaign-type rules, request publication on chosen sites, and track campaigns, balance, and publication status.

## Scope

Does not host your own blog, run paid search or display ads, or send email newsletters. Use for booking and tracking advertorial and press release placements on publisher sites only.

## Capabilities

- Search the publisher sites by niche, campaign type, authority, and price with GET `/partner/catalog`, and read per-site terms and accepted campaign types with GET `/partner/catalog/{siteId}`
- Create an article from HTML with title, contentHtml, focusKeyword, and seoTitle via POST `/partner/articles`, or import Word and other documents with POST `/partner/articles/import`
- Order a written article by topic (tema), campaignType, and word count (cuvinte) with POST `/partner/redactare` and track the order through statuses like NOUA and LIVRATA
- Run an SEO analysis with GET `/partner/articles/{articleId}/seo` and check campaign-type fit with GET `/partner/articles/{articleId}/potrivire` before submitting
- Request publication of one article on one or more sites by siteIds and campaignType with POST `/partner/publications`, optionally scheduled with scheduledFor
- Check owned packages, remaining credits, and money balance with GET `/partner/balance` before booking
- Plan a budget in lei by niche and city with the open GET `/public/plan` route, no key needed

## Use cases

### Advertorial booking agent through Jentic

A marketing agent can run an advertorial campaign end to end on Comunicate.eu. Through Jentic it finds each operation by intent: it searches GET `/partner/catalog` for sites in the right niche, creates the article with POST `/partner/articles`, checks GET `/partner/articles/{articleId}/potrivire` against the campaign type, confirms credit with GET `/partner/balance`, and books with POST `/partner/publications.` The bk_live_ key is injected at call time and never sits in the agent's context.

Example prompt: Call POST `/partner/publications` with articleId 'art_123', two siteIds from GET `/partner/catalog`, and a campaignType listed in each site's acceptedCampaigns, after confirming GET `/partner/balance` shows enough available credit

### Pre-submission quality checks

Rejected articles cost a publication cycle. GET `/partner/articles/{articleId}/seo` returns a score, findings, and an issues list with a code, severity, and message for each problem, while GET `/partner/articles/{articleId}/potrivire` answers a different question: whether the text is the article that was ordered for the campaign type, since an SEO-perfect text that carries links fails a brand-mention campaign.

Example prompt: Call GET `/partner/articles/art_123/seo` and GET `/partner/articles/art_123/potrivire` with the campaignType the client ordered, then list every issue with its code and severity

### Importing drafts from documents and Drive

Clients often send articles as Word files or a shared Drive folder. POST `/partner/articles/import` accepts .docx, .odt, .rtf, .html, and other formats, while GET `/partner/articles/drive` lists a folder shared with anyone with the link so the agent can pick the right documents before POST `/partner/articles/drive` imports them, with one result entry per file.

Example prompt: Call GET `/partner/articles/drive` with link set to the shared folder URL, choose the final draft files, then call POST `/partner/articles/drive` with link and fisiere listing those files

### Campaign reporting for clients

Agencies report back to clients per campaign. GET `/partner/campaigns/{campaignId}` returns a campaign with its articles and publications, GET `/partner/reports/summary` returns a period summary defaulting to the last 30 days, and GET `/partner/reports/publications` returns publications row by row for client reporting.

Example prompt: Call GET `/partner/reports/summary` with from '2026-10-01' and to '2026-10-31', then GET `/partner/reports/publications`, and summarise the published placements for the client

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | `/partner/catalog` | List publications |
| POST | `/partner/articles` | Create an article from HTML |
| POST | `/partner/redactare` | Order an article |
| GET | `/partner/articles/{articleId}/potrivire` | Check campaign-type match |
| POST | `/partner/publications` | Request publication |
| GET | `/partner/publications/{publicationId}` | One publication |
| GET | `/partner/balance` | Available balance |
| GET | `/public/plan` | Budget plan |

## Key resources

- **Publisher sites** — Searchable publisher list with niche, authority, price, accepted campaign types, and offers
- **Articles** — Advertorial texts created from HTML or imported documents, with SEO analysis, campaign fit, and revisions
- **Writing orders (redactare)** — Paid requests for a written article, tracked from NOUA to LIVRATA
- **Publications** — Requests to publish an article on chosen sites, with event history and failure reasons
- **Campaigns** — Groupings of articles and publications with type, client, dates, and budget
- **Balance and reports** — Owned packages, credits, money balance, and period or per-publication reports

## 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:** 68 / 100
- **Maturity:** AI-Aware
- **Dimensions:**
  - Foundational Compliance: 99 / 100
  - Developer Experience & Jentic Compatibility: 63 / 100
  - AI-Readiness & Agent Experience: 48 / 100
  - Agent Usability: 94 / 100
  - Security: 75 / 100
  - AI Discoverability: 68 / 100
- **View full report:** https://jentic.com/apis/comunicate.eu/comunicate/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 Comunicate.eu by hand means choosing between a bk_live_ bearer key and an OAuth 2.1 PKCE flow, learning which routes are open, and handling 409 payment-choice retries yourself. Through Jentic you install once, import the Comunicate.eu API from the API Directory, store the key once, and your agent calls it.
- **Permission scoping:** Comunicate.eu puts the article, campaign, order, and publication ids in the URL path, so a rule can hold your agent to one article (`/partner/articles/{articleId}/...`) or one campaign. You choose the operations it may call, so spending or destructive ones like publication requests or campaign deletion are not included unless you add them.
- **Credential handling:** Your Comunicate.eu 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 'publish an advertorial on news sites' or 'check an article against campaign rules', and Jentic returns the matching Comunicate.eu operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Ghost API** — Publish posts to a site you own
- **Contentful API** — Headless CMS for drafting and storing article content
- **Semrush API** — Keyword and domain research

## FAQ

### Is there a Comunicate.eu MCP server?

Yes - per its OpenAPI spec, Comunicate.eu offers an MCP server. You can also connect the Comunicate.eu API directly through Jentic: your agent gets the full 39-endpoint surface from the spec without loading another server's tool definitions into its context, your key 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.

### What authentication does the Comunicate.eu API use?

Per its OpenAPI spec, the /partner routes accept an API key from Integrations sent as a bearer token (Authorization: Bearer bk_live_...), or an OAuth 2.1 access token from the authorization code flow with PKCE and scopes such as CATALOG_READ, ARTICLES_WRITE, and PUBLICATIONS_WRITE. The /public routes are open and need no key, and writing anything requires a key. Through Jentic, the key is stored encrypted by your own Jentic One instance and injected at call time.

### How do I pay for a publication through the API?

POST `/partner/publications` pays from an owned package or the money balance. When several owned packages cover the same site, the request is rejected with 409 and a list of options, and you retry with packageTypeId. Check GET `/partner/balance` first; written-article orders through POST `/partner/redactare` are paid from the money balance, not from credits.

### Can I limit what my agent is allowed to do with the Comunicate.eu API?

Yes. For example, write a rule that allows GET `/partner/catalog`, POST `/partner/articles`, and the GET `/partner/articles/{articleId}/seo` and /potrivire checks, but not POST `/partner/publications` or POST `/partner/redactare.` The agent can then draft and check advertorials without spending credit or money, and every call it makes is logged.

### What are the rate limits for the Comunicate.eu API?

The OpenAPI spec does not specify rate limits for the /partner routes, and it states the /public routes carry no rate-limit headers to negotiate. Check https://comunicate.eu for current limits.

### How do I request publication of an article through Jentic?

Search Jentic for 'publish an advertorial on news sites', load the post_publications operation, and call POST `/partner/publications` with articleId, siteIds, and campaignType, which are all required. To run it on your own infrastructure, install Jentic One from its GitHub repo.

### Can I see what an advertorial costs without an account?

Yes. The open routes need no key: GET `/public/statistici-piata` returns market statistics including price per campaign type, GET `/public/plan` returns publication packages for a budget in lei by niche and city, and GET `/public/niches` lists niches with publication counts and average authority.
