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

# Blueink API v2

Jentic publishes the only available OpenAPI specification for Blueink API v2, keeping it validated and agent-ready. Blueink is an electronic signature platform, and the v2 API exposes signing bundles, signer packets, reusable templates, person directory entries, and webhook subscriptions. Senders create a bundle of documents, attach packets for each signer, and track signing events through to completion-of-evidence reports. Authentication uses a private API token sent as a Bearer header, and the base URL is https://api.blueink.com/api/v2.

## For AI agents

Send documents for electronic signature, track signer status, and download signed bundles and certificates of evidence through Blueink.

## Scope

Does not store long-term document archives, generate document content, or process payments - use for sending, tracking, and downloading electronic signature bundles only.

## Capabilities

- Create a signing bundle from raw files or a saved envelope template
- Track signer progress through bundle event timelines and packet status
- Generate embedded signing URLs for in-app signature flows
- Send reminder emails to signers who have not yet completed their packet
- Cancel an in-flight bundle before all signers have completed
- Manage a directory of recurring signers in the persons resource
- Configure webhooks to receive bundle and packet status events with custom headers

## Use cases

### Contract signing for sales close

Send a sales contract for electronic signature when a deal closes in the CRM. POST /bundles/ uploads the document and signer packets in a single call, returning a bundleSlug used to track progress. Subsequent GET /bundles/{bundleSlug}/events/ reveals each viewed, signed, and declined event, and GET /bundles/{bundleSlug}/files/ returns the executed PDF and certificate of evidence after completion.

Example prompt: Call POST /bundles/ with a contract PDF and a signer packet for the prospect's email, then poll GET /bundles/{bundleSlug}/events/ until status is 'complete'.

### Embedded signing in a customer portal

Embed the Blueink signing experience inside the sender's own application instead of redirecting to Blueink's hosted UI. Create the bundle, then call POST /packets/{packetId}/embed_url/ for each signer to receive a short-lived URL you load into an iframe or webview. Useful for SaaS onboarding, financial services portals, and any flow where staying on-brand matters.

Example prompt: Call POST /packets/{packetId}/embed_url/ for an existing packet and return the signing URL for embedding.

### Template-driven recurring agreements

Use saved Blueink envelope templates to issue NDAs, SOWs, or HR onboarding documents repeatedly with consistent fields and routing. POST /bundles/create_from_envelope_template/ creates a new bundle from a template ID, with signer details merged in at send time. GET /templates/ and GET /templates/{templateId}/ enumerate available templates and their fields.

Example prompt: Call POST /bundles/create_from_envelope_template/ with a template ID and signer info to issue a new NDA for a vendor onboarding.

### Webhook-driven completion automation

Trigger downstream workflows when Blueink documents are fully signed by configuring webhooks. POST /webhooks/ creates a subscription, and POST /webhooks/headers/ attaches custom HTTP headers (e.g. for HMAC verification). When a bundle completes, the webhook fires with bundle and packet details so the receiving system can store the executed PDF and update the originating record.

Example prompt: Call POST /webhooks/ with a target URL and event filter for bundle.completed, then POST /webhooks/headers/ to add an Authorization header for the receiver.

### AI agent contract sending assistant

Let an AI agent draft, send, and chase contracts on a user's behalf. The agent searches Jentic for the right Blueink operation by intent, loads the schema, and executes with the API token held in your Jentic One instance. Suitable for sales copilots, legal-ops automation, and HR onboarding agents that need to put documents in front of signers without manual UI work.

Example prompt: Search Jentic for 'send a document for signature', load the schema for POST /bundles/, and execute it with a contract PDF and signer email for an embedded signing flow.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | /bundles/ | Create a new signing bundle |
| POST | /bundles/create_from_envelope_template/ | Create a bundle from a saved template |
| GET | /bundles/{bundleSlug}/events/ | Return the event timeline for a bundle |
| PUT | /bundles/{bundleSlug}/cancel/ | Cancel an in-flight bundle |
| POST | /packets/{packetId}/embed_url/ | Generate an embedded signing URL |
| PUT | /packets/{packetId}/remind/ | Send a reminder to a signer |
| GET | /packets/{packetId}/coe/ | Download the certificate of evidence |
| POST | /webhooks/ | Create a webhook subscription |

## Key resources

- **Bundles** — Top-level signing envelope containing files, packets, and event history
- **Packets** — Per-signer assignment within a bundle, with embed URL and reminder operations
- **Templates** — Reusable envelope definitions for recurring document types
- **Persons** — Directory of recurring signers with stored contact details
- **Webhooks** — Event subscriptions for bundle and packet status changes, with optional custom headers
- **Files** — Original and signed PDFs, plus completion-of-evidence reports

## Why Jentic

- **Setup:** Wiring Blueink by hand means implementing its bearer auth and threading bundle and packet ids through the signature lifecycle yourself. Through Jentic you install once, import Blueink from the API Directory, store the token once, and your agent calls it.
- **Permission scoping:** Blueink puts the bundle and packet ids in the URL path (/bundles/{bundleSlug}, /packets/{packetId}), so a rule can pin your agent to acting on a given bundle or packet: it can read events or send a reminder and nothing else. You choose the operations it may call, so cancelling a bundle is not included unless you add it.
- **Credential handling:** Your Blueink bearer token 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 'send a document for signature' or 'send a signing reminder', and Jentic returns the matching Blueink operation with its input schema so the agent calls the right endpoint without browsing the docs.

## Related APIs

- **Bloomerang** — Donor CRM - pair when collecting signed pledge agreements tied to constituent records
- **Blueshift** — Customer engagement - pair to send signed-document confirmation emails or reminders
- **Bluetick** — Email follow-up automation - pair for chasing signers who haven't completed

## FAQ

### Why is there no official OpenAPI spec for Blueink API v2?

Blueink publishes a Postman collection and HTML reference but does not distribute a maintained OpenAPI 3 file. Jentic generates and maintains this spec so AI agents and developers can call the Blueink API 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 Blueink API use?

Blueink uses a private API token sent as a Bearer credential in the Authorization header (Authorization: Token <api-key>). Tokens are issued from the Blueink dashboard. Through Jentic, the token is stored in the encrypted vault and injected at execution time, so the agent never handles the raw value.

### Can I send a document for signature through this API?

Yes. POST /bundles/ accepts the documents, signer packets (each with email, name, and signature fields), and routing rules in a single call, returning a bundleSlug used to track the bundle. Files can be uploaded inline as base64 or referenced by URL.

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

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

### How do I track signer status through Jentic?

Search Jentic for 'check the signing status of a bundle', load the schema for GET /bundles/{bundleSlug}/events/, and execute it with the bundleSlug. Install with pip install jentic and call await client.execute(ExecutionRequest(...)). The response lists viewed, signed, declined, and completed events per signer.

### Does Blueink support embedded signing?

Yes. After creating a bundle, call POST /packets/{packetId}/embed_url/ for each signer to receive a short-lived signing URL. Load the URL in an iframe or webview to keep signers inside your own application.

### Is the Blueink API free?

Blueink offers tiered pricing - API access is included on paid plans, and a free trial is available for evaluation. Per-document pricing depends on the plan; volume discounts apply on annual contracts.

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

Yes. Because Jentic One is self-hosted, you write the rules that decide which Blueink operations and credentials your agent may use. Blueink carries the bundle and packet ids in the URL path (/bundles/{bundleSlug}, /packets/{packetId}), so you can pin the agent to a specific bundle or packet and allow only the calls you want, such as reading its events with GET /bundles/{bundleSlug}/events/ or sending a reminder with PUT /packets/{packetId}/remind/. Destructive actions like cancelling a bundle with PUT /bundles/{bundleSlug}/cancel/ stay off limits unless you explicitly add them to the allowed set.
