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

# Hermoso MCP server and OAuth (not the REST API)

The Hermoso API gives an AI agent one programmatic entry point into Hermoso's AI marketing studio: research the ads running in a market, generate on-brand image and video ad creative, publish or schedule it to a brand's connected channels, and build and read paid campaigns. The agent connects to a single JSON-RPC endpoint and calls tools after authenticating, with a key pinned to one brand workspace. Generation is metered in credits, and any call that arms real ad spend requires an explicit per-call confirmation.

## For AI agents

Drive Hermoso's AI marketing studio from one endpoint: research competitor ads, generate on-brand image and video creative, and publish or schedule it to a brand's channels. Metered in credits, with per-call confirmation before any real ad spend.

## Scope

Does not host a general media library API, manage account billing, or place ads outside a brand's connected channels. Use for researching, generating, publishing, and scheduling that brand's ads through Hermoso only.

## Capabilities

- Research ads running across the Meta, Google, and LinkedIn ad libraries and run competitor teardowns
- Generate finished on-brand image and video ad creative
- Publish or schedule generated ads to a brand's connected channels
- Build and read paid ad campaigns for a brand workspace
- Check the available tools, connected channels, and per-render credit costs before generating

## Use cases

### Agent-Run Ad Creative Loop

An AI agent driving brand marketing connects to the Hermoso API through Jentic and runs the full creative loop from one endpoint: it researches the ads a competitor is running, generates on-brand image and video creative, and publishes or schedules the winners to the brand's connected channels. A key is pinned to one brand workspace, so the agent only ever acts for that brand, and any call that arms real ad spend asks for an explicit confirmation first. Credits are checked up front so the agent knows each render's cost.

Example prompt: Research a competitor's active ads, generate three on-brand image variants, and schedule the best one to the brand's connected channel

### Competitor Ad Research

A brand team studies the market by pulling the ads competitors are running across the Meta, Google, and LinkedIn ad libraries and organic social search. The Hermoso research surface returns these teardowns plus reads of brand, workspace, and credit status, so an analyst or agent can brief a campaign on real market signal. This runs read-only under the research scope without spending credits.

Example prompt: Pull the active ads for a competitor from the Meta and LinkedIn ad libraries and summarize the common hooks

### Paid Campaign Build-Out

Once creative is approved, a team builds and reads paid campaigns on the brand's channels. The Hermoso acting surface creates campaigns and publishes creative under the generate scope, while every call that commits real ad spend requires a per-call confirmation regardless of the token. This keeps an automated workflow from arming budget silently.

Example prompt: Build a paid campaign for a brand, attach an approved creative, and read back the campaign status, confirming before any spend is armed

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | `/mcp` | Send a JSON-RPC request to the agent endpoint and call a tool |
| GET | `/mcp` | Open the server-to-client event stream |
| DELETE | `/mcp` | End the agent session |
| POST | `/oauth/token` | Exchange an authorization code for an access token |
| POST | `/oauth/register` | Register an OAuth client dynamically |
| GET | `/.well-known/oauth-authorization-server` | Get OAuth authorization-server metadata |

## Key resources

- **Research surface** — Meta, Google, and LinkedIn ad libraries, organic social search, competitor teardowns, and reads of brand, workspace, and credit status
- **Generation and publishing** — Generate image and video creative, publish or schedule to connected channels, and build and read paid campaigns
- **OAuth and discovery** — Dynamic client registration, authorization-code flow with PKCE, and protected-resource and server metadata

## 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:** 75 / 100
- **Maturity:** AI-Ready
- **Dimensions:**
  - Foundational Compliance: 100 / 100
  - Developer Experience & Jentic Compatibility: 64 / 100
  - AI-Readiness & Agent Experience: 63 / 100
  - Agent Usability: 94 / 100
  - Security: 75 / 100
  - AI Discoverability: 79 / 100
- **View full report:** https://jentic.com/apis/hermoso.ai/hermoso/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 the Hermoso API by hand means either minting an `hmk_` agent key or implementing the OAuth 2.1 authorization-code flow with PKCE and dynamic client registration, then connecting to the JSON-RPC endpoint and confirming any call that arms ad spend. Through Jentic you install once, import it from the API Directory, store the credential once, and your agent calls it.
- **Permission scoping:** Hermoso issues tokens with two scopes, hermoso.research for the read-only research surface and hermoso.generate for generating, publishing, and campaigns. A Jentic rule can allow only the operations your agent needs, so you can give it research without granting generation, and any call that arms real ad spend still requires a per-call confirmation.
- **Credential handling:** Your Hermoso 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 'research competitor ads' or 'generate an image ad', and Jentic returns the matching Hermoso operation with its input schema so the agent calls the right tool without reading the reference docs.

## Related APIs

- **Leonardo.Ai** — Generates AI images and creative assets, versus Hermoso's end-to-end ad research, generation, and publishing loop.
- **Runway** — Generates and edits AI video, versus Hermoso's on-brand ad creative plus campaign publishing.
- **Buffer** — Schedules and publishes organic social posts across channels, pairing with Hermoso's generated creative.

## FAQ

### What authentication does the Hermoso API use?

The Hermoso API accepts two bearer credentials on the Authorization header, per its OpenAPI spec: an `hmk_` agent key for scripts and headless agents, or an OAuth 2.1 token from the authorization-code flow with PKCE and open dynamic client registration. OAuth tokens carry a hermoso.research or hermoso.generate scope, and a key is pinned to one brand workspace. Through Jentic the credential is stored encrypted by your own Jentic One instance and injected at call time.

### Can I generate and publish ads with the Hermoso API?

Yes, under the hermoso.generate scope. You generate on-brand image and video creative, publish or schedule it to the brand's connected channels, and build and read paid campaigns. Researching competitor ads is available separately under the read-only hermoso.research scope, and any call that arms real ad spend requires a per-call confirmation.

### What are the rate limits for the Hermoso API?

The OpenAPI spec does not specify rate limits; generation is instead metered in credits with published per-render prices that you can read before rendering. For current limits and the price list, see the Hermoso documentation at https://hermoso.ai/docs/api/.

### How do I generate an ad through Jentic?

Search Jentic with a query like 'generate an on-brand image ad', add the Hermoso API from the directory, and store your `hmk_` key once. Your agent connects to the endpoint, checks the available tools and their credit costs, then generates and publishes the creative. To run it on your own infrastructure, install Jentic One from its GitHub repo.

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

Yes. Give the agent only the hermoso.research scope so it can study competitor ads but cannot generate, publish, or spend, or write a Jentic rule that allows just the operations you want, with every call logged. Hermoso also requires a per-call confirmation before any call that arms real ad spend, so budget cannot be committed silently.

### Is there a Hermoso MCP server?

Yes, Hermoso's public programmatic interface is itself a Model Context Protocol server. You can also connect it through Jentic: your agent reaches the same endpoint and tools, your `hmk_` key or OAuth token is injected at call time by your self-hosted instance instead of living in a config file, and your rules decide which operations the agent may call.
