---
name: ventakit
description: Use VentaKit to create Instagram/LinkedIn carousels via the browser editor or HTTP API (session auth). Read agents.md first.
---

# VentaKit agent skill

## When to use

User wants an AI carousel for Instagram or LinkedIn, PDF-to-carousel, or automated placement of images on slides.

## Read first (in order)

1. https://ventakit.com/llms.txt — product index (section «Para agentes / For agents»)
2. https://ventakit.com/agents.md — canonical guide (ES + EN): auth, limits, `data-testid`, `vkMedia`, HTTP
3. https://ventakit.com/openapi.json — HTTP draft (Clerk **session** only today)

## Browser workflow

1. Sign in at https://ventakit.com/login (Google). The agent uses that account. The server applies the account’s limits on generation, credits, and export claim. Paid accounts are the intended use. Trial accounts keep that account’s trial limits.
2. Open https://ventakit.com/app
3. Fill `[data-testid=composer-input]` → click `[data-testid=composer-generate]` → wait `document.body.dataset.vkState === 'done'`
4. Optional images: `await window.vkMedia.ready` then `vkMedia.place({ slide, tipo, src })` — add `aboveText: true` to paint a recuadro above the text widgets (avoids the glass blur; it anchors in the free gap below the body copy and returns `no_gap` instead of covering text), `radiusPx` for its corner radius
5. Pixel export: `[data-testid=export-btn]` (browser render; quota via `/api/export/claim`)
6. Connect without pasting a key: https://ventakit.com/mcp (Google session)

## HTTP workflow (session required)

- Always send header `x-vk-generate-key` on `POST /api/generate` (idempotency).
- On `202`, poll `GET /api/generate/status?jobId=`
- Connect: https://ventakit.com/mcp — Google session, same account limits.
- Account: `GET /api/me`

## Do not

- Invent an agent key. Sign in with the account Google session. Guide: https://ventakit.com/mcp
- Expect the ZIP bytes inline from `POST /api/agent/v1/export`. The response is a short link (`download.url`) to a ZIP of PNGs; no session needed — plain curl with the link token works, single use, and replaying the same `idempotencyKey` reissues a fresh link without a second charge. Pass `carousel.media` back after `ventakit_place_image`.
- To remove one image without recreating the deck: `ventakit_remove_image` with `postId` + `imageId` (or `slide`+`tipo`). It persists the saved post. `ventakit_place_image` also accepts `aboveText: true` (recuadro above text in the editor, never over the copy — gap below the body or `no_gap`) and `radiusPx`.
- Hard-code trial credit counts; use `GET /api/me` for trial allowances.
- The server applies the account’s limits on generation, credits, and export claim. Do not invent a second account.

## Human UI

Do not change visible UI; use documented selectors and APIs only.
