canonical: https://jentic.com/apis/getvero.com/vero-api

# Getvero Vero API

Jentic publishes the only available OpenAPI specification for Vero API, keeping it validated and agent-ready. The Vero API is the full marketing-automation surface combining user identification, event tracking, tag management, and campaign control. Across 18 endpoints it covers user identify and alias, event tracking, campaign list and create, campaign launch, trigger handling, and message and tag operations. Authentication is an authToken passed as a query parameter, matching the Track REST API's pattern.

## For AI agents

Identify users, track events, manage tags, and create or launch campaigns through the Vero marketing-automation API across 18 endpoints with query-token authentication.

## Scope

Does not handle SMS delivery, push notifications, or analytics dashboards - use for Vero user identification, event tracking, and campaign management only.

## Capabilities

- Identify users with traits to populate Vero campaign targeting
- Alias an anonymous user identifier to a known canonical user id
- Track events on a user record to drive lifecycle automations
- Create, list, and update marketing campaigns
- Launch a configured campaign to its targeted audience
- Edit tags on a user to move them between campaign segments
- Manage triggers that fire campaigns when an event arrives

## Use cases

### Programmatic Campaign Launch from a Workflow Tool

Marketing-ops teams want a workflow tool to launch a Vero campaign once an upstream event fires (e.g. trial start, billing change). POST `/campaigns/{id}/launch` accepts the campaign id and triggers delivery to its configured audience. Combined with GET /campaigns the system can find the right campaign by name or status before launching.

Example prompt: List campaigns with status 'ready', find the one named 'Trial Day 7', and launch it via POST `/campaigns/{id}/launch.`

### Identity Stitching with Alias

Web analytics tracks anonymous visitors before they sign up. When the user creates an account, POST `/users/alias` links the anonymous id to the new canonical user id so all events and tags collected pre-signup follow them into the marketing record. This avoids losing pre-signup behaviour data when targeting.

Example prompt: Alias anonymous id 'anon_482' to user id 'usr_482' and identify that user with email 'a@example.com'.

### Campaign Creation from Templates

Marketing teams that template campaigns (e.g. 'Trial Day N' for products with multiple plans) can use POST /campaigns to spin up new campaigns from a stored configuration. PATCH `/campaigns/{id}` updates campaign settings as the team iterates on copy or audience without recreating the campaign record.

Example prompt: Create a campaign named 'Q3 Win-Back' with the saved template id and report the new campaign id.

### AI Agent Marketing Operations

An AI agent monitoring product signals can identify users, edit tags, create campaigns, and launch them when conditions are met - all without UI navigation. Through Jentic the agent finds each operation by intent ('launch a vero campaign', 'tag a user') and Vero's authToken stays in the encrypted vault rather than being passed in as a query string the agent can see.

Example prompt: Identify user 'usr_555', tag them 'high-intent', then launch campaign id 'camp_high_intent_2026'.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | `/users/identify` | Identify or update a user with traits |
| POST | `/users/alias` | Alias an anonymous id to a canonical user id |
| POST | `/track` | Track an event for a user |
| GET | `/campaigns` | List campaigns |
| POST | `/campaigns` | Create a campaign |
| POST | `/campaigns/{id}/launch` | Launch a campaign |
| PATCH | `/campaigns/{id}` | Update a campaign |
| POST | `/tags/edit` | Add or remove tags on a user |

## Key resources

- **Users** — Identify, alias, unsubscribe, resubscribe, and delete users
- **Events** — Track events tied to a user with properties
- **Tags** — Edit tags on a user to manage segment membership
- **Campaigns** — List, create, retrieve, update, and launch marketing campaigns
- **Triggers** — Manage triggers that fire campaigns on inbound events
- **Messages** — Inspect message records sent through Vero campaigns

## Why Jentic

- **Setup:** Wiring the Vero API by hand means appending your auth_token to the query string on every request to api.getvero.com, and keeping that token out of your own access logs yourself. Through Jentic you install once, import the Vero API from the API Directory, store the token once, and your agent calls it.
- **Permission scoping:** Vero puts the campaign id in the URL path (`/campaigns/{id}/launch`, `/campaigns/{id}`), so a rule can pin your agent to one campaign for launch and update. You choose the operations it may call, so wider ones like identifying users or editing tags are not included unless you add them.
- **Credential handling:** Your Vero auth_token is stored once, encrypted, by your own Jentic One instance and injected at execution time, which matters because it rides in the query string. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'launch a Vero campaign' or 'alias an anonymous user', and Jentic returns the matching Vero operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Vero Track REST API** — The Track REST API is the lighter ingestion-only subset; the full Vero API also covers campaigns
- **Customer.io** — Customer.io is a comparable marketing-automation platform with similar identify, track, and campaign APIs
- **Mailchimp** — Mailchimp is a comparable email marketing platform with broader audience and template tooling

## FAQ

### Why is there no official OpenAPI spec for Vero API?

Vero does not publish an OpenAPI specification. Jentic generates and maintains this spec so that AI agents and developers can call Vero API via structured tooling. It is validated against the live API and kept up to date. Get started with Jentic One, the self-hosted execution layer.

### What authentication does the Vero API use?

Vero uses an apiKey scheme - the authToken is passed as a query parameter on every request. Through Jentic this token is stored encrypted in the vault and the agent receives a scoped invocation capability, which avoids leaking the token in URL query strings to client logs.

### Can I launch a campaign with the Vero API?

Yes. POST `/campaigns/{id}/launch` accepts the campaign id and triggers delivery to the campaign's configured audience. List campaigns first via GET /campaigns to confirm the campaign id and status before launching.

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

The spec does not declare specific rate limits. Vero's track surface is high-throughput; campaign mutation endpoints have lower limits. Production integrations should implement exponential backoff on 429 responses, especially around bulk identify or campaign create runs.

### How do I create a campaign through Jentic?

Search Jentic for 'create a vero campaign'. Jentic returns POST /campaigns with its input schema; load it with the campaign config (name, template, audience), execute, and capture the returned campaign id for follow-up operations.

### Can I link an anonymous user to a known user with the Vero API?

Yes. POST `/users/alias` maps an anonymous id to a canonical user id so events and tags collected pre-signup follow the user into the identified record. Run it once at signup time before subsequent identify or track calls.

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

Yes. Jentic One is self-hosted, so your own rules decide which Vero operations the agent may call and which credentials it may use. Because Vero puts the campaign id in the URL path (`/campaigns/{id}/launch` and `/campaigns/{id}`), you can pin the agent to a single campaign for launch and update. You choose the operations it may call, so broader ones like identifying users through `/users/identify` or editing tags through `/tags/edit` are excluded unless you add them.
