Skip to content
List tagscurl
curl -X GET -gs -u "$API_ID:$API_KEY" \
  "https://e1.envoke.com/v2/tags?limit=1"

# 200 OK
[
  {
    "id": "42",
    "external_id": "a1b2c3d4e5f6",
    "name": "Newsletter Subscribers",
    "group": "Engagement",
    "description": "Contacts who opted in to the monthly newsletter",
    "display_names": { "en": "Newsletter", "fr": "Infolettre" }
  }
]

Build on Envoke

Reference documentation for the Envoke REST APIs, written from and checked against the API code. Every page is also available as plain Markdown for AI coding agents.
  • Authentication

    Every request to the Envoke REST APIs is authenticated with HTTP Basic Auth: your API ID is the username and your API Key is the password. This article explains where to find them, what must be in place before they work, how API limits apply, and what the API returns when it refuses a request.

  • Which API do I use?

    Envoke's REST API is a set of small APIs, one per resource. This article explains which APIs answer on /v1 and which on /v2, how tags, subscriptions, and mandatory consent relate to each other, when to send with the Send API or the Message API, how the Reports API relates to the reports in Envoke, and what your account needs before its first send.

  • Your first integration

    This walkthrough builds a small integration end to end with curl: it defines a custom field and a tag, creates or updates a contact that uses them, creates a template from HTML, subscribes a webhook to the result, sends the template to the contact, and receives the webhook. The examples use a fictional organisation, the Birchwood Community Garden, which assigns garden plots to its members. Each step links to the full reference for the endpoint it uses.

All requests go to https://e1.envoke.com with the API version in the path (/v1 or /v2). Authentication is HTTP Basic Auth using your API ID and API Key; see Authentication.

Contacts and audience

Content and sending

Reporting

Webhooks

Writing your own email HTML for the Templates, Messages, or Send API? These pages cover the structure Envoke’s drag-and-drop editor needs, merge tags, the unsubscribe footer, and what Envoke changes when it sends. Start with the overview.

  • Making HTML Editable

    The drag-and-drop editor does not parse arbitrary HTML into blocks. It works on a small, fixed structure of sections, rows, and editable regions, marked with class names. This page shows the minimum structure the editor needs, ending with a complete template you can paste in and adapt.

  • Merge Tags and Conditionals

    Merge tags are placeholders that Envoke fills in for each contact when an email is sent. This page lists the tags you can use in your own HTML, how their values are written into the email, and what happens when a tag is misspelled or has no value.

  • Unsubscribe Link, Address, and Footer

    Anti-spam laws such as Canada's CASL and the US CAN-SPAM Act require commercial email to give recipients a way to unsubscribe and to include the sender's postal address. You can place both in your own footer, or leave them out and let Envoke add its default footer. This page explains how Envoke decides, and what it does and does not check.

  • What Happens When Envoke Sends

    The HTML stored in Envoke is not exactly the HTML your recipients receive. When each email is sent, Envoke personalises it, adds tracking and, if needed, a footer, and generates a plain-text version. This page lists every change, in order, so you can tell which differences in a received email come from Envoke.

Point a coding agent at one file and it has the whole reference. Every page also has a raw Markdown copy: add .md to its URL, for example /v2/tags/insert.md.

  • /llms.txtIndex of every page, linking each Markdown copy
  • /llms-full.txtThe whole reference in one file
  • /openapi.jsonMerged OpenAPI 3.1 for every published API
  • Postman collectionGenerated from the OpenAPI file; link coming soon