canonical: https://jentic.com/apis/blueshift.com/blueshift

# Blueshift API

Jentic publishes the only available OpenAPI specification for Blueshift API, keeping it validated and agent-ready. Blueshift is a customer data and cross-channel marketing automation platform, and the API exposes campaigns, customer events, customer profiles, email/push/SMS templates, catalogs, segments, custom user lists, promotions, shared assets, email validation, and subscription groups. It supports both event ingestion and campaign orchestration, including ad-hoc and scheduled launches plus bulk executions. Authentication uses HTTP Basic with API key credentials issued from the Blueshift dashboard.

## For AI agents

Send customer events into Blueshift, manage cross-channel campaigns and templates, and orchestrate triggered email, push, and SMS sends.

## Scope

Does not host the email or SMS sending infrastructure directly to consumer inboxes from your code, nor does it provide ad bidding or attribution - use for ingesting events, managing customer records, and orchestrating Blueshift campaigns and templates only.

## Capabilities

- Ingest customer events one at a time or in bulk for triggered campaigns
- Create, schedule, launch, pause, and archive cross-channel campaigns
- Update customer profile attributes and merge or forget customers for privacy compliance
- Manage email, push, and SMS templates including preview and update operations
- Validate single email addresses or batches before sending
- Read segments, custom user lists, and subscription groups for targeting
- Trigger ad-hoc campaign sends to a specific customer or segment via execute and bulk-execute

## Use cases

### Server-side event ingestion

Pipe customer behaviour events from a backend or data pipeline into Blueshift to power triggered campaigns. POST /api/v1/event accepts a single event with customer identifiers, event name, and properties; POST /api/v1/bulkevents accepts up to several thousand at a time. Use GET /api/v1/event/debug to verify ingestion during integration. Suitable for replacing client-side SDK telemetry with server-of-record event streams.

Example prompt: Call POST /api/v1/event with event_name='order_completed', customer_id, and order_value to trigger downstream campaigns.

### Programmatic campaign orchestration

Create, schedule, and launch Blueshift campaigns from outside the dashboard. POST /api/v1/campaigns creates a campaign, PATCH /api/v1/campaigns/{campaignUuid}/schedule sets timing, and PATCH /api/v1/campaigns/{campaignUuid}/launch makes it live. PATCH .../pause and PUT .../archive provide the rest of the lifecycle. Useful for replicating campaigns across environments and for CI-driven marketing automation.

Example prompt: Call POST /api/v1/campaigns with the campaign payload, then PATCH /api/v1/campaigns/{campaignUuid}/launch to make it live.

### Ad-hoc transactional sends

Trigger one-off transactional or transactional-style sends to specific customers via campaign execute endpoints. POST /api/v1/campaigns/execute runs a campaign for a single customer; POST /api/v1/campaigns/bulk-execute runs it for a list. Useful for order confirmations, password resets, or account notifications where the message body lives in a Blueshift template but the trigger is event-driven outside Blueshift.

Example prompt: Call POST /api/v1/campaigns/execute with campaign_uuid and a single customer_id to send a confirmation email.

### Privacy compliance workflows

Honour data subject requests by deleting or anonymising customer records. POST /api/v1/customers/delete hard-deletes a profile; POST /api/v1/customers/forget anonymises while keeping aggregate metrics; POST /api/v1/customers/merge consolidates duplicate profiles. Useful for GDPR, CCPA, and other privacy-led customer record hygiene.

Example prompt: Call POST /api/v1/customers/forget with customer_id to anonymise the record in line with a data subject request.

### AI agent marketing copilot

Let an AI agent run marketing operations on behalf of a marketer - pause an in-flight campaign, trigger a transactional send, or look up a segment. The agent searches Jentic for the right Blueshift operation by intent, loads the schema, and executes with the Basic auth credentials held in your Jentic One instance. Suitable for Slack-based marketing copilots and customer support agents who need to trigger account notifications.

Example prompt: Search Jentic for 'pause a Blueshift campaign', load the schema, and execute it for the campaignUuid that triggered an alert.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | /api/v1/event | Send a single customer event |
| POST | /api/v1/bulkevents | Send a batch of customer events |
| POST | /api/v1/campaigns/execute | Trigger a campaign send for one customer |
| PATCH | /api/v1/campaigns/{campaignUuid}/launch | Launch a draft campaign |
| PATCH | /api/v1/campaigns/{campaignUuid}/pause | Pause a running campaign |
| POST | /api/v1/customers | Create or upsert a customer profile |
| POST | /api/v1/customers/forget | Anonymise a customer record |
| GET | /api/v1/emails/validate | Validate a single email address |

## Key resources

- **Campaigns** — Cross-channel campaign lifecycle including create, schedule, launch, pause, archive, execute
- **Events** — Single and bulk customer event ingestion with debug visibility
- **Customers** — Customer profile CRUD plus merge, forget, and delete for privacy compliance
- **Email Templates** — Template management for transactional and marketing email
- **Push Templates** — Mobile and web push notification template management
- **SMS Templates** — SMS message template management
- **Segments** — Read-only listing of segments for targeting
- **Catalogs** — Product catalogs for personalisation and recommendations
- **Email Validation** — Single and bulk email address validation before send
- **Subscription Groups** — List subscription preference groups for opt-in management

## Why Jentic

- **Setup:** Wiring Blueshift by hand means constructing its HTTP Basic auth header from your API key and mapping event, customer, and campaign writes yourself. Through Jentic you install once, import Blueshift from the API Directory, store the API key once, and your agent calls it.
- **Permission scoping:** Blueshift's writes carry their data in the request body (/api/v1/event, /api/v1/customers), while campaign actions put the campaign id in the path (/api/v1/campaigns/{campaignUuid}/launch); limit the agent to the operations it needs, such as sending events or reading email validation. You choose that set, so launching or pausing a campaign is not included unless you add it.
- **Credential handling:** Your Blueshift API key is stored once, encrypted, by your own Jentic One instance and injected into the Basic auth header at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'send a customer event' or 'launch a campaign', and Jentic returns the matching Blueshift operation with its input schema so the agent calls the right endpoint without browsing the docs site.

## Related APIs

- **Bluetick** — Lighter-weight email follow-up automation for sales sequences instead of multi-channel marketing
- **Blogger API** — Pair to publish blog content and trigger Blueshift campaigns to announce posts
- **Bloomerang** — Donor CRM - pair when nonprofit gift events should drive multi-channel donor stewardship

## FAQ

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

Blueshift publishes a developer documentation site but does not distribute a maintained OpenAPI 3 file. Jentic generates and maintains this spec so AI agents and developers can call Blueshift via standard 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 Blueshift API use?

Blueshift uses HTTP Basic Authentication with API key credentials issued from the Blueshift dashboard. The username is the Event API key and the password is left empty (or vice versa, depending on endpoint group). Through Jentic, the credentials are held in the encrypted vault and injected at execution, so the agent never sees them.

### Can I send customer events through this API?

Yes. POST /api/v1/event accepts a single event with event_name and customer identifier (customer_id or email). POST /api/v1/bulkevents accepts an array of up to several thousand events per call for batch ingestion. Use GET /api/v1/event/debug to verify a recent event was accepted by the platform.

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

Blueshift applies per-account rate limits that are not enumerated in the spec. The published guidance is to keep event volume under a few hundred requests per second per account; HTTP 429 responses include a Retry-After header. Higher throughput is available on enterprise plans by request.

### How do I trigger a one-off campaign send through Jentic?

Search Jentic for 'trigger a Blueshift campaign for one customer', load the schema for POST /api/v1/campaigns/execute, and execute it with campaign_uuid and customer_id. Install with pip install jentic and call await client.execute(ExecutionRequest(...)).

### Does Blueshift support GDPR data subject requests?

Yes. POST /api/v1/customers/delete hard-deletes a customer record, POST /api/v1/customers/forget anonymises while preserving aggregates, and POST /api/v1/customers/merge consolidates duplicates. These cover the common right-to-be-forgotten and right-to-rectification flows.

### Is the Blueshift API free?

API access is included with a Blueshift subscription - there is no separate API fee. Pricing depends on monthly tracked users and channel volume; demos and sandbox access are available on request.

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

Yes. Because you run Jentic One yourself, you decide exactly which Blueshift operations your agent may call and which credentials it may use. You can grant only the operations the task needs, such as sending events through POST /api/v1/event or reading email validation, while withholding campaign lifecycle actions like PATCH /api/v1/campaigns/{campaignUuid}/launch or pause unless you explicitly add them. Blueshift writes carry their data in the request body and campaign actions put the campaign id in the path, so scoping the operation set is enough to keep the agent inside the boundary you set.
