### GET /projects/:id/setup-state
Source: https://docs.useplunk.com/api-reference/overview.md
Retrieves the onboarding setup state for a specific project.
```APIDOC
## GET /projects/:id/setup-state
### Description
Onboarding setup state.
### Method
GET
### Endpoint
/projects/:id/setup-state
### Parameters
#### Path Parameters
- **id** (string) - Required - The ID of the project.
### Response
#### Success Response (200)
- **state** (string) - The current setup state of the project (e.g., "completed", "in_progress").
```
--------------------------------
### List Campaigns Request Example
Source: https://docs.useplunk.com/api-reference/campaigns/listCampaigns.md
This cURL command demonstrates how to make a GET request to the campaigns endpoint. Remember to replace 'YOUR_API_KEY' with your actual API key.
```bash
curl -X GET 'https://next-api.useplunk.com/campaigns' \
-H 'Authorization: Bearer YOUR_API_KEY'
```
--------------------------------
### List Templates API Request Example
Source: https://docs.useplunk.com/api-reference/templates/listTemplates.md
This cURL command demonstrates how to make a GET request to the List Templates API endpoint, including the necessary authorization header.
```bash
curl -X GET 'https://next-api.useplunk.com/templates' \
-H 'Authorization: Bearer YOUR_API_KEY'
```
--------------------------------
### Example DMARC Record
Source: https://docs.useplunk.com/guides/verifying-domains.md
This is an example of a DMARC TXT record. It's recommended to start with 'p=none' for monitoring before tightening to 'quarantine' or 'reject'.
```text
v=DMARC1; p=none; rua=mailto:dmarc-reports@yourdomain.com
```
--------------------------------
### List Contacts Request Example
Source: https://docs.useplunk.com/api-reference/contacts/listContacts.md
This cURL command demonstrates how to make a GET request to the List Contacts API endpoint. Ensure you replace 'YOUR_API_KEY' with your actual Plunk API key.
```bash
curl -X GET 'https://next-api.useplunk.com/contacts' \
-H 'Authorization: Bearer YOUR_API_KEY'
```
--------------------------------
### Send Email Request Body Example
Source: https://docs.useplunk.com/api-reference/public-api/sendEmail.md
A basic example of a request body for sending an email. Ensure 'to' is provided.
```json
{
"to": "user@example.com"
}
```
--------------------------------
### Example cURL Request to Create Segment
Source: https://docs.useplunk.com/api-reference/segments/createSegment.md
An example using cURL to send a POST request to create a segment, including authorization and request payload.
```bash
curl -X POST 'https://next-api.useplunk.com/segments' \
-H 'Authorization: Bearer YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"name":"string","filters":null}'
```
--------------------------------
### Example cURL Request to Get Contact
Source: https://docs.useplunk.com/api-reference/contacts/getContact.md
Use this cURL command to make a GET request to retrieve a specific contact by their ID. Ensure you replace `{id}` with the actual contact ID and `YOUR_API_KEY` with your valid Plunk API key.
```bash
curl -X GET 'https://next-api.useplunk.com/contacts/{id}' \
-H 'Authorization: Bearer YOUR_API_KEY'
```
--------------------------------
### Template Created Response Example
Source: https://docs.useplunk.com/api-reference/templates/createTemplate.md
Shows the structure of the response when a template is successfully created.
```json
{
"id": "string",
"name": "string",
"subject": "string",
"body": "string",
"type": "TRANSACTIONAL",
"createdAt": "2026-06-11T18:58:23.320Z"
}
```
--------------------------------
### List Segments cURL Request Example
Source: https://docs.useplunk.com/api-reference/segments/listSegments.md
Use this cURL command to make a GET request to the List Segments endpoint. Ensure you replace 'YOUR_API_KEY' with your actual Plunk API key.
```bash
curl -X GET 'https://next-api.useplunk.com/segments' \
-H 'Authorization: Bearer YOUR_API_KEY'
```
--------------------------------
### Get Contact Response Example
Source: https://docs.useplunk.com/api-reference/contacts/getContact.md
This JSON object shows the structure of a successful response when retrieving contact details.
```json
{
"id": "string",
"email": "user@example.com",
"subscribed": false,
"data": null,
"createdAt": "2026-06-11T18:58:23.310Z",
"updatedAt": "2026-06-11T18:58:23.310Z"
}
```
--------------------------------
### Example cURL Request to Create Template
Source: https://docs.useplunk.com/api-reference/templates/createTemplate.md
Demonstrates how to make a POST request to the create template endpoint using cURL.
```bash
curl -X POST 'https://next-api.useplunk.com/templates' \
-H 'Authorization: Bearer YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"name":"string","subject":"string","body":"string","type":"TRANSACTIONAL"}'
```
--------------------------------
### Webhook URL Example
Source: https://docs.useplunk.com/guides/webhooks.md
Example of a webhook URL that uses contact ID for parameterization. Ensure a static scheme (http/https) is included.
```text
https://api.example.com/users/{{id}}/events
```
--------------------------------
### Create Campaign Request Body Example
Source: https://docs.useplunk.com/api-reference/campaigns/createCampaign.md
This JSON object demonstrates the required fields for creating a new campaign.
```json
{
"name": "string",
"subject": "string",
"body": "string",
"from": "user@example.com",
"audienceType": "ALL"
}
```
--------------------------------
### Start Stripe Checkout Session
Source: https://docs.useplunk.com/concepts/billing.md
Initiates a Stripe Checkout session for upgrading the project's plan.
```APIDOC
## POST /users/@me/projects/:id/checkout
### Description
Starts a Stripe Checkout session for upgrades.
### Method
POST
### Endpoint
/users/@me/projects/:id/checkout
### Parameters
#### Path Parameters
- **id** (string) - Required - The ID of the project.
```
--------------------------------
### GET /users/@me/projects
Source: https://docs.useplunk.com/api-reference/overview.md
Lists all projects associated with the currently authenticated user.
```APIDOC
## GET /users/@me/projects
### Description
List the user's projects.
### Method
GET
### Endpoint
/users/@me/projects
### Response
#### Success Response (200)
- **projects** (array) - A list of projects belonging to the user.
- **id** (string) - The project's unique identifier.
- **name** (string) - The name of the project.
```
--------------------------------
### GET /config
Source: https://docs.useplunk.com/api-reference/overview.md
Retrieves public feature flags and configuration settings, indicating which integrations are enabled.
```APIDOC
## GET /config
### Description
Public, no-auth feature flags — which integrations are enabled (OAuth providers, billing, S3, SMTP, …).
### Method
GET
### Endpoint
/config
### Response
#### Success Response (200)
- **integrations** (object) - An object detailing enabled integrations.
- **oauthProviders** (array) - List of enabled OAuth providers.
- **billing** (boolean) - Whether billing is enabled.
- **s3** (boolean) - Whether S3 integration is enabled.
- **smtp** (boolean) - Whether SMTP integration is enabled.
```
--------------------------------
### Create Template Request Body Example
Source: https://docs.useplunk.com/api-reference/templates/createTemplate.md
Defines the structure and required fields for creating a new email template.
```json
{
"name": "string",
"subject": "string",
"body": "string",
"type": "TRANSACTIONAL"
}
```
--------------------------------
### Campaign Created Response Example
Source: https://docs.useplunk.com/api-reference/campaigns/createCampaign.md
This JSON object shows the structure of a successful campaign creation response.
```json
{
"success": false,
"data": {
"id": "string",
"name": "string",
"subject": "string",
"type": "ALL",
"status": "DRAFT",
"scheduledAt": "2026-06-11T18:58:23.283Z"
}
}
```
--------------------------------
### GET /projects/:id/security
Source: https://docs.useplunk.com/api-reference/overview.md
Retrieves the security state for a single project.
```APIDOC
## GET /projects/:id/security
### Description
Security state for a single project.
### Method
GET
### Endpoint
/projects/:id/security
### Parameters
#### Path Parameters
- **id** (string) - Required - The ID of the project.
### Response
#### Success Response (200)
- **securityStatus** (string) - The security status of the project (e.g., "secure", "at_risk").
```
--------------------------------
### Track Event Request Body Example
Source: https://docs.useplunk.com/api-reference/public-api/trackEvent.md
This JSON object demonstrates the required fields for tracking an event.
```json
{
"email": "user@example.com",
"event": "string"
}
```
--------------------------------
### Track Event Response Example
Source: https://docs.useplunk.com/api-reference/public-api/trackEvent.md
This JSON object shows a successful response after tracking an event.
```json
{
"success": false,
"data": {
"contact": "string",
"event": "string",
"timestamp": "2026-06-11T18:58:23.312Z"
}
}
```
--------------------------------
### Confirmation Email Template
Source: https://docs.useplunk.com/recipes/waitlist.md
Example of a marketing email template for a waitlist, using {{variable}} placeholders for personalization.
```text
Subject: You're on the list, {{firstName}}
Hi {{firstName}}, thanks for joining the {{product}} waitlist.
We'll let you know as soon as your spot opens up.
```
--------------------------------
### List Campaigns Response Example
Source: https://docs.useplunk.com/api-reference/campaigns/listCampaigns.md
This JSON object shows the structure of a successful response when listing campaigns. It includes details about each campaign and pagination information.
```json
{
"campaigns": [
{
"id": "string",
"name": "string",
"subject": "string",
"type": "ALL",
"status": "DRAFT",
"scheduledAt": "2026-06-11T18:58:23.283Z"
}
],
"page": 0,
"pageSize": 0,
"total": 0,
"totalPages": 0
}
```
--------------------------------
### Track Event cURL Example
Source: https://docs.useplunk.com/api-reference/public-api/trackEvent.md
This cURL command shows how to send a POST request to track an event, including necessary headers and the request body.
```bash
curl -X POST 'https://next-api.useplunk.com/v1/track' \
-H 'Authorization: Bearer YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"email":"user@example.com","event":"string"}'
```
--------------------------------
### Send Marketing Email with Subscription
Source: https://docs.useplunk.com/openapi.json
Example of sending a marketing email and explicitly setting the recipient's subscription status to true.
```json
{
"to": "user@example.com",
"subject": "Weekly Newsletter",
"body": "
This Week's Updates
",
"subscribed": true
}
```
--------------------------------
### GET /activity/types
Source: https://docs.useplunk.com/api-reference/overview.md
List the distinct types of activity recorded within the project.
```APIDOC
## GET /activity/types
### Description
Distinct activity types in the project.
### Method
GET
### Endpoint
/activity/types
```
--------------------------------
### GET /auth/oauth-config
Source: https://docs.useplunk.com/api-reference/overview.md
Retrieves information about the configured OAuth providers available for authentication.
```APIDOC
## GET /auth/oauth-config
### Description
Which OAuth providers are configured.
### Method
GET
### Endpoint
/auth/oauth-config
### Response
#### Success Response (200)
- **providers** (array) - A list of configured OAuth providers.
- **name** (string) - The name of the OAuth provider (e.g., "google", "github").
- **clientId** (string) - The client ID for the OAuth provider.
```
--------------------------------
### cURL Example for Creating/Updating Contact
Source: https://docs.useplunk.com/api-reference/contacts/createContact.md
This cURL command demonstrates how to send a POST request to the /contacts endpoint with an email address and an API key for authentication.
```bash
curl -X POST 'https://next-api.useplunk.com/contacts' \
-H 'Authorization: Bearer YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"email":"user@example.com"}'
```
--------------------------------
### GET /domains/project/:projectId
Source: https://docs.useplunk.com/api-reference/overview.md
List domains configured for a project. This includes both verified and pending domains.
```APIDOC
## GET /domains/project/:projectId
### Description
List domains configured for a project (verified and pending).
### Method
GET
### Endpoint
/domains/project/:projectId
### Parameters
#### Path Parameters
- **projectId** (string) - Required - The ID of the project to list domains for.
```
--------------------------------
### Webhook Security Header Example
Source: https://docs.useplunk.com/guides/webhooks.md
Configure a secret header on the webhook step to verify the authenticity of incoming webhook requests. This is preferred over IP allowlisting.
```json
// Webhook step → Headers
{
"Authorization": "Bearer your-shared-secret"
}
```
--------------------------------
### Cursor-Based Pagination Request
Source: https://docs.useplunk.com/api-reference/overview.md
Use cursor-based pagination for list endpoints by including the 'limit' and 'cursor' parameters in your GET request.
```bash
GET /contacts?limit=100&cursor=abc123
```
--------------------------------
### GET /domains/:id/verify
Source: https://docs.useplunk.com/api-reference/overview.md
Force a verification check for a specific domain. This check runs immediately, otherwise, it's performed every 5 minutes in the background.
```APIDOC
## GET /domains/:id/verify
### Description
Force a verification check now (otherwise checked every 5 minutes in the background).
### Method
GET
### Endpoint
/domains/:id/verify
### Parameters
#### Path Parameters
- **id** (string) - Required - The ID of the domain to verify.
```
--------------------------------
### Webhook Body with Contact and Event Data
Source: https://docs.useplunk.com/guides/webhooks.md
Example of a custom webhook request body that includes contact email, plan, and event referrer. Variables are interpolated.
```json
{
"email": "{{email}}",
"plan": "{{plan}}",
"referrer": "{{event.referrer}}"
}
```
--------------------------------
### Example cURL Request to Create Campaign
Source: https://docs.useplunk.com/api-reference/campaigns/createCampaign.md
Use this cURL command to send a POST request to create a campaign. Ensure you replace 'YOUR_API_KEY' with your actual API key.
```bash
curl -X POST 'https://next-api.useplunk.com/campaigns' \
-H 'Authorization: Bearer YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"name":"string","subject":"string","body":"string","from":"user@example.com","audienceType":"ALL"}'
```
--------------------------------
### Create Contact and Track Signup Event
Source: https://docs.useplunk.com/recipes/double-opt-in.md
Use cURL to create a contact with 'subscribed: false' and then track a 'signup.pending' event to initiate the confirmation workflow. Ensure both calls use your secret API key.
```bash
curl https://next-api.useplunk.com/contacts \
-H "Authorization: Bearer sk_your_secret_key" \
-d '{ "email": "ada@example.com", "subscribed": false, "data": { "firstName": "Ada" } }'
```
```bash
curl https://next-api.useplunk.com/v1/track \
-H "Authorization: Bearer sk_your_secret_key" \
-d '{ "event": "signup.pending", "email": "ada@example.com", "subscribed": false }'
```
--------------------------------
### POST /auth/signup
Source: https://docs.useplunk.com/api-reference/overview.md
Allows new users to sign up. This endpoint is subject to the `DISABLE_SIGNUPS` configuration, which may prevent new signups.
```APIDOC
## POST /auth/signup
### Description
Sign up a new user (subject to `DISABLE_SIGNUPS`).
### Method
POST
### Endpoint
/auth/signup
### Parameters
#### Request Body
- **email** (string) - Required - The email address for the new user.
- **password** (string) - Required - The password for the new user.
- **name** (string) - Optional - The name of the new user.
### Response
#### Success Response (201)
- **message** (string) - Confirmation message of successful signup.
```
--------------------------------
### GET /analytics/campaign-stats
Source: https://docs.useplunk.com/api-reference/overview.md
Get a detailed campaign-level breakdown of analytics.
```APIDOC
## GET /analytics/campaign-stats
### Description
Campaign-level breakdown.
### Method
GET
### Endpoint
/analytics/campaign-stats
```
--------------------------------
### GET /contacts/:id
Source: https://docs.useplunk.com/api-reference/overview.md
Get a single contact by their ID.
```APIDOC
## GET /contacts/:id
### Description
Get a single contact by their ID.
### Method
GET
### Endpoint
/contacts/:id
### Parameters
#### Path Parameters
- **id** (string) - Required - The unique identifier of the contact.
```
--------------------------------
### POST /users/@me/projects
Source: https://docs.useplunk.com/api-reference/overview.md
Creates a new project for the currently authenticated user.
```APIDOC
## POST /users/@me/projects
### Description
Create a project.
### Method
POST
### Endpoint
/users/@me/projects
### Parameters
#### Request Body
- **name** (string) - Required - The name of the new project.
### Response
#### Success Response (201)
- **id** (string) - The unique identifier of the newly created project.
- **name** (string) - The name of the project.
```
--------------------------------
### GET /activity/stats
Source: https://docs.useplunk.com/api-reference/overview.md
Get aggregated counts for various activity metrics, suitable for dashboard display.
```APIDOC
## GET /activity/stats
### Description
Aggregated counts for dashboard charts.
### Method
GET
### Endpoint
/activity/stats
```
--------------------------------
### GET /users/@me
Source: https://docs.useplunk.com/api-reference/overview.md
Retrieves information about the currently authenticated user.
```APIDOC
## GET /users/@me
### Description
Get the current user.
### Method
GET
### Endpoint
/users/@me
### Response
#### Success Response (200)
- **id** (string) - The unique identifier of the user.
- **email** (string) - The email address of the user.
- **name** (string) - The name of the user.
```
--------------------------------
### GET /analytics/top-events
Source: https://docs.useplunk.com/api-reference/overview.md
List the most frequent custom event names.
```APIDOC
## GET /analytics/top-events
### Description
Most frequent custom event names.
### Method
GET
### Endpoint
/analytics/top-events
```
--------------------------------
### Build Custom Docker Image
Source: https://docs.useplunk.com/self-hosting/docker.md
Build a custom Docker image for Plunk from source. Tag the image as 'plunk:custom' for use in your deployment.
```bash
docker build -t plunk:custom .
```
--------------------------------
### GET /auth/logout
Source: https://docs.useplunk.com/api-reference/overview.md
Clears the authentication cookie, effectively logging the user out.
```APIDOC
## GET /auth/logout
### Description
Clear the auth cookie.
### Method
GET
### Endpoint
/auth/logout
### Response
#### Success Response (200)
- **message** (string) - Confirmation message of successful logout.
```
--------------------------------
### GET /analytics/top-campaigns
Source: https://docs.useplunk.com/api-reference/overview.md
Identify top-performing campaigns based on specified metrics.
```APIDOC
## GET /analytics/top-campaigns
### Description
Top-performing campaigns by metric.
### Method
GET
### Endpoint
/analytics/top-campaigns
```
--------------------------------
### Start Workflow Execution with Initial Context
Source: https://docs.useplunk.com/concepts/workflows.md
Initiate a new workflow execution. You can provide an initial context object to parameterize variables for this specific execution, which is useful for data not stored on the contact.
```bash
POST /workflows/:id/executions
{
"context": {
"couponCode": "SUMMER2024",
"referrerName": "Jane Doe"
}
}
```
--------------------------------
### GET /projects/:id/members
Source: https://docs.useplunk.com/api-reference/overview.md
Retrieves the list of team members for a specific project.
```APIDOC
## GET /projects/:id/members
### Description
Project team members.
### Method
GET
### Endpoint
/projects/:id/members
### Parameters
#### Path Parameters
- **id** (string) - Required - The ID of the project.
### Response
#### Success Response (200)
- **members** (array) - A list of project members.
- **userId** (string) - The ID of the member.
- **role** (string) - The role of the member in the project (e.g., "admin", "developer").
```
--------------------------------
### GET /analytics/timeseries
Source: https://docs.useplunk.com/api-reference/overview.md
Retrieve time-series data for email sends, opens, and clicks.
```APIDOC
## GET /analytics/timeseries
### Description
Email send / open / click time-series.
### Method
GET
### Endpoint
/analytics/timeseries
```
--------------------------------
### GET /activity/upcoming
Source: https://docs.useplunk.com/api-reference/overview.md
View upcoming scheduled sends and currently active executions.
```APIDOC
## GET /activity/upcoming
### Description
Upcoming scheduled sends and active executions.
### Method
GET
### Endpoint
/activity/upcoming
```
--------------------------------
### POST /domains
Source: https://docs.useplunk.com/api-reference/overview.md
Add a domain for verification. The response will include the necessary DNS records that need to be added to your domain's configuration.
```APIDOC
## POST /domains
### Description
Add a domain for verification. Returns the DNS records you need to add.
### Method
POST
### Endpoint
/domains
### Response
#### Success Response (200)
- **dnsRecords** (array) - An array of DNS records required for domain verification.
```
--------------------------------
### Get Contact
Source: https://docs.useplunk.com/api-reference/contacts/getContact.md
Fetches a single contact's details by their unique identifier.
```APIDOC
## GET /contacts/{id}
### Description
Get a single contact by ID.
### Method
GET
### Endpoint
/contacts/{id}
### Parameters
#### Path Parameters
- **id** (string) - Required - Unique contact identifier
### Response
#### Success Response (200)
- **id** (string) - Unique contact identifier
- **email** (string) - Contact email address
- **subscribed** (boolean) - Subscription status
- **data** (object) - Custom contact data fields
- **createdAt** (string) -
- **updatedAt** (string) -
#### Response Example
```json
{
"id": "string",
"email": "user@example.com",
"subscribed": false,
"data": null,
"createdAt": "2026-06-11T18:58:23.310Z",
"updatedAt": "2026-06-11T18:58:23.310Z"
}
```
### Error Handling
#### Error Response (404)
- Contact not found
```
--------------------------------
### GET /contacts/import/:jobId
Source: https://docs.useplunk.com/api-reference/overview.md
Poll the status of a CSV import job using its `jobId`.
```APIDOC
## GET /contacts/import/:jobId
### Description
Poll the status of a CSV import job using its `jobId`.
### Method
GET
### Endpoint
/contacts/import/:jobId
### Parameters
#### Path Parameters
- **jobId** (string) - Required - The ID of the import job.
```
--------------------------------
### Get Billing Limits
Source: https://docs.useplunk.com/concepts/billing.md
Retrieves the currently set per-category billing limits for a project.
```APIDOC
## GET /users/@me/projects/:id/billing-limits
### Description
Reads per-category caps for a project.
### Method
GET
### Endpoint
/users/@me/projects/:id/billing-limits
### Parameters
#### Path Parameters
- **id** (string) - Required - The ID of the project.
```
--------------------------------
### Import Accordion Components
Source: https://docs.useplunk.com/guides/receiving-emails.md
Imports necessary Accordion components from 'fumadocs-ui' for displaying collapsible content.
```javascript
import {Accordion, Accordions} from 'fumadocs-ui/components/accordion';
```
--------------------------------
### GET /users/@me/projects/:id/billing-invoices
Source: https://docs.useplunk.com/api-reference/overview.md
Retrieves a list of Stripe invoices associated with a specific project.
```APIDOC
## GET /users/@me/projects/:id/billing-invoices
### Description
Stripe invoices for the project.
### Method
GET
### Endpoint
/users/@me/projects/:id/billing-invoices
### Parameters
#### Path Parameters
- **id** (string) - Required - The ID of the project to retrieve invoices for.
### Response
#### Success Response (200)
- **invoices** (array) - A list of Stripe invoices.
- **invoiceId** (string) - The ID of the invoice.
- **date** (string) - The date the invoice was issued.
- **amount** (number) - The total amount of the invoice.
- **status** (string) - The status of the invoice (e.g., "paid", "unpaid").
```
--------------------------------
### GET /users/@me/projects/:id/billing-limits
Source: https://docs.useplunk.com/api-reference/overview.md
Retrieves the per-category billing limits configured for a specific project.
```APIDOC
## GET /users/@me/projects/:id/billing-limits
### Description
Read per-category billing caps.
### Method
GET
### Endpoint
/users/@me/projects/:id/billing-limits
### Parameters
#### Path Parameters
- **id** (string) - Required - The ID of the project to retrieve billing limits for.
### Response
#### Success Response (200)
- **limits** (object) - An object containing billing limits per category.
- **categoryName** (object) - Details for a specific billing category.
- **limit** (number) - The billing limit amount.
- **unit** (string) - The unit of the limit (e.g., "requests", "GB").
```
--------------------------------
### GET /activity/recent-count
Source: https://docs.useplunk.com/api-reference/overview.md
Fetch the recent event count, used for the dashboard's 'live' indicator.
```APIDOC
## GET /activity/recent-count
### Description
Recent event count for the dashboard's "live" indicator.
### Method
GET
### Endpoint
/activity/recent-count
```
--------------------------------
### Minimal .env Configuration
Source: https://docs.useplunk.com/self-hosting/docker.md
Configure essential environment variables for Plunk deployment, including JWT secret, database password, domain names, and AWS SES settings. Ensure domains point to your server and use a secure password.
```bash
# Required
JWT_SECRET="$(openssl rand -base64 32)"
DB_PASSWORD="your-secure-password"
# Domains (point these to your server)
API_DOMAIN="api.yourdomain.com"
DASHBOARD_DOMAIN="app.yourdomain.com"
LANDING_DOMAIN="www.yourdomain.com"
WIKI_DOMAIN="docs.yourdomain.com"
USE_HTTPS="true"
# AWS SES
AWS_SES_REGION="us-east-1"
AWS_SES_ACCESS_KEY_ID="your-key"
AWS_SES_SECRET_ACCESS_KEY="your-secret"
SES_CONFIGURATION_SET="plunk-tracking"
```
--------------------------------
### GET /contacts/fields/:field/usage
Source: https://docs.useplunk.com/api-reference/overview.md
Show where a custom field is referenced across segments, campaigns, and workflows.
```APIDOC
## GET /contacts/fields/:field/usage
### Description
Show where a custom field is referenced across segments, campaigns, and workflows.
### Method
GET
### Endpoint
/contacts/fields/:field/usage
### Parameters
#### Path Parameters
- **field** (string) - Required - The name of the custom field.
```
--------------------------------
### Example cURL Request for Email Verification
Source: https://docs.useplunk.com/api-reference/public-api/verifyEmail.md
Use this cURL command to send a POST request to the email verification endpoint. Remember to replace YOUR_API_KEY with your actual Plunk API key.
```bash
curl -X POST 'https://next-api.useplunk.com/v1/verify' \
-H 'Authorization: Bearer YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"email":"user@example.com"}'
```
--------------------------------
### POST /users/@me/projects/:id/checkout
Source: https://docs.useplunk.com/api-reference/overview.md
Creates a Stripe Checkout session for the specified project, likely for payment or subscription purposes.
```APIDOC
## POST /users/@me/projects/:id/checkout
### Description
Create a Stripe Checkout session.
### Method
POST
### Endpoint
/users/@me/projects/:id/checkout
### Parameters
#### Path Parameters
- **id** (string) - Required - The ID of the project for which to create a checkout session.
### Response
#### Success Response (200)
- **checkoutUrl** (string) - The URL for the Stripe Checkout session.
```
--------------------------------
### GET /contacts/fields
Source: https://docs.useplunk.com/api-reference/overview.md
List standard and custom fields, including their inferred types and coverage percentages.
```APIDOC
## GET /contacts/fields
### Description
List standard and custom fields, including their inferred types and coverage percentages.
### Method
GET
### Endpoint
/contacts/fields
```
--------------------------------
### Send Campaign cURL Example
Source: https://docs.useplunk.com/api-reference/campaigns/sendCampaign.md
This cURL command demonstrates how to send a POST request to the /campaigns/{id}/send endpoint. Replace {id} with your campaign ID and YOUR_API_KEY with your actual API key. The 'scheduledFor' field in the data payload determines the send time.
```bash
curl -X POST 'https://next-api.useplunk.com/campaigns/{id}/send' \
-H 'Authorization: Bearer YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"scheduledFor":"2026-06-11T18:58:23.310Z"}'
```
--------------------------------
### GET /contacts/bulk/:jobId
Source: https://docs.useplunk.com/api-reference/overview.md
Poll the status of a bulk operation (subscribe, unsubscribe, delete) using its `jobId`.
```APIDOC
## GET /contacts/bulk/:jobId
### Description
Poll the status of a bulk operation (subscribe, unsubscribe, delete) using its `jobId`.
### Method
GET
### Endpoint
/contacts/bulk/:jobId
### Parameters
#### Path Parameters
- **jobId** (string) - Required - The ID of the bulk job.
```
--------------------------------
### GET /templates
Source: https://docs.useplunk.com/api-reference/templates/listTemplates.md
Retrieves a paginated list of email templates. Supports filtering by type and searching by name.
```APIDOC
## GET /templates
### Description
Get a paginated list of email templates.
### Method
GET
### Endpoint
/templates
### Query Parameters
- **limit** (integer) - Optional - Maximum items per page
- **cursor** (string) - Optional - Pagination cursor
- **type** (enum) - Optional - Type of template, can be "TRANSACTIONAL" or "MARKETING"
- **search** (string) - Optional - Search term for template names
### Responses
#### Success Response (200) - List of templates
- **templates** (array