listmonk/docs/swagger/collections.yaml
Kailash Nadh 2b95c88188
Add Postmark bounce webhook support (refactor #1385) (#1485)
Co-authored-by: Thomas Siebers <tom@tsiebers.de>
2023-08-31 21:27:34 +05:30

4010 lines
107 KiB
YAML

openapi: 3.0.0
servers:
- description: Listmonk Developement Server
url: http://localhost:9000/api
info:
version: "1.0.0"
title: Listmonk
description: The API collection for listmonk
license:
name: AGPL-3.0 license
url: https://github.com/knadh/listmonk/blob/master/LICENSE
tags:
- name: Miscellaneous
description: Misc API
- name: Settings
description: Settings API
- name: Admin
description: Admin API
- name: Logs
description: Logs API
- name: Subscribers
description: Subscribers API
externalDocs:
url: https://listmonk.app/docs/apis/subscribers/
- name: Bounces
description: Bounce API
- name: Lists
description: Subscriber List API
externalDocs:
url: https://listmonk.app/docs/apis/lists/
- name: Import
description: Import API
externalDocs:
url: https://listmonk.app/docs/apis/lists/
- name: Campaigns
description: Campaign API
externalDocs:
url: https://listmonk.app/docs/apis/campaigns/
- name: Media
description: Media API
externalDocs:
url: https://listmonk.app/docs/apis/media/
- name: Templates
description: Templates API
externalDocs:
url: https://listmonk.app/docs/apis/templates/
- name: Transactional
description: Transactional API
externalDocs:
url: https://listmonk.app/docs/apis/transactional/
- name: Maintenance
description: Maintenance API
- name: Public
description: Listmonk Public API
paths:
/health:
get:
tags:
- Miscellaneous
description: healthcheck endpoint
operationId: getHealthCheck
responses:
"200":
description: OK
content:
application/json:
schema:
type: object
properties:
data:
type: boolean
/config:
get:
tags:
- Miscellaneous
description: returns general server config.
operationId: getServerConfig
responses:
"200":
description: A server config object
content:
application/json:
schema:
type: object
properties:
data:
$ref: "#/components/schemas/ServerConfig"
"/lang/{lang}":
get:
tags:
- Miscellaneous
description: returns the JSON language pack given the language code
operationId: getI18nLang
parameters:
- in: path
name: lang
required: true
description: JSON language pack required
schema:
type: string
responses:
"200":
description: requested language pack
content:
application/json:
schema:
type: object
properties:
data:
$ref: "#/components/schemas/LanguagePack"
/dashboard/charts:
get:
tags:
- Miscellaneous
description: returns chart data points to render on the dashboard.
operationId: getDashboardCharts
responses:
"200":
description: chart data points
content:
application/json:
schema:
type: object
properties:
data:
$ref: "#/components/schemas/DashboardChart"
/dashboard/counts:
get:
tags:
- Miscellaneous
description: returns stats counts to show on the dashboard
operationId: getDashboardCounts
responses:
"200":
description: stat counts
content:
application/json:
schema:
type: object
properties:
data:
$ref: "#/components/schemas/DashboardCount"
/settings:
get:
tags:
- Settings
description: returns settings from DB
operationId: getSettings
responses:
"200":
description: settings object
content:
application/json:
schema:
type: object
properties:
data:
$ref: "#/components/schemas/Settings"
put:
tags:
- Settings
description: returns updated settings from the DB.
operationId: updateSettings
requestBody:
description: updated settings field values
content:
application/json:
schema:
$ref: "#/components/schemas/Settings"
responses:
"200":
description: updated settings object
content:
application/json:
schema:
type: object
properties:
data:
type: boolean
/settings/smtp/test:
post:
tags:
- Settings
description: test smtp settings
operationId: testSMTPSettings
requestBody:
description: updated SMTP settings field values
content:
application/json:
schema:
$ref: "#/components/schemas/SMTPTest"
responses:
"200":
description: updated SMTP test settings
content:
application/json:
schema:
type: object
properties:
data:
type: boolean
/admin/reload:
post:
tags:
- Admin
description: restarts the app
operationId: reloadApp
responses:
"200":
description: OK
content:
application/json:
schema:
type: object
properties:
data:
type: boolean
/logs:
get:
tags:
- Logs
description: returns the log entries stored in the log buffer
operationId: getLogs
responses:
"200":
description: stored log entries
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
type: string
/subscribers:
get:
tags:
- Subscribers
description: returns all subscribers.
operationId: getSubscribers
parameters:
- in: query
name: page
description: number of records to skip
schema:
type: integer
format: int32
- in: query
name: per_page
description: max number of records to return per page
schema:
type: integer
format: int32
- in: query
name: query
description: query subscribers with an SQL expression.
schema:
type: string
responses:
"200":
description: subscribers list
content:
application/json:
schema:
type: object
properties:
data:
type: object
properties:
results:
type: array
items:
$ref: "#/components/schemas/Subscriber"
query:
type: string
total:
type: integer
per_page:
type: integer
page:
type: integer
post:
description: handles creation of new subscriber
operationId: createSubscriber
tags:
- Subscribers
requestBody:
description: new subscriber info
content:
application/json:
schema:
$ref: "#/components/schemas/NewSubscriber"
responses:
"200":
description: subscriber object
content:
application/json:
schema:
type: object
properties:
data:
$ref: "#/components/schemas/Subscriber"
delete:
description: handles subscribers deletion
operationId: deleteSubscriberByList
tags:
- Subscribers
parameters:
- in: query
name: id
required: true
description: subscriber id/s to be deleted
schema:
type: string
responses:
"200":
description: OK
content:
application/json:
schema:
type: object
properties:
data:
type: boolean
"/subscribers/{id}":
get:
description: handles the retrieval of a single subscriber by ID.
operationId: getSubscriberById
tags:
- Subscribers
parameters:
- in: path
name: id
required: true
description: The id value of the subscriber you want to get.
schema:
type: integer
responses:
"200":
description: gets a single subscriber.
content:
application/json:
schema:
type: object
properties:
data:
$ref: "#/components/schemas/Subscriber"
put:
description: modify subscriber data
operationId: updateSubscriberById
tags:
- Subscribers
parameters:
- in: path
name: id
required: true
description: The id of subscriber to update
schema:
type: integer
requestBody:
description: new subscriber info
content:
application/json:
schema:
$ref: "#/components/schemas/UpdateSubscriber"
responses:
"200":
description: returns updated subscriber.
content:
application/json:
schema:
type: object
properties:
data:
$ref: "#/components/schemas/Subscriber"
delete:
description: handles subscriber deletion based on id
operationId: deleteSubscriberById
tags:
- Subscribers
parameters:
- in: path
name: id
required: true
description: The id value of the subscriber you want to get.
schema:
type: integer
responses:
"200":
description: OK
content:
application/json:
schema:
type: object
properties:
data:
type: boolean
/subscribers/lists:
put:
description: handles bulk addition or removal of subscribers
operationId: manageSubscriberLists
tags:
- Subscribers
requestBody:
description: The list of subscribers details to add or remove
content:
application/json:
schema:
$ref: "#/components/schemas/SubscriberQueryRequest"
responses:
"200":
description: OK
content:
application/json:
schema:
type: object
properties:
data:
type: boolean
"/subscribers/lists/{id}":
put:
description: handles bulk addition or removal of subscribers for a specified list id
operationId: manageSubscriberListById
tags:
- Subscribers
requestBody:
description: The list of subscribers to add or remove
content:
application/json:
schema:
$ref: "#/components/schemas/SubscriberQueryRequest"
parameters:
- in: path
name: id
required: true
description: The id of list you want to update
schema:
type: integer
format: int32
responses:
"200":
description: OK
content:
application/json:
schema:
type: object
properties:
data:
type: boolean
"/subscribers/blocklist":
put:
description: handles blocklisting of subscriber list
operationId: manageBlocklistBySubscriberList
tags:
- Subscribers
requestBody:
description: The list of subscribers to blocklist
content:
application/json:
schema:
$ref: "#/components/schemas/SubscriberQueryRequest"
responses:
"200":
description: OK
content:
application/json:
schema:
type: object
properties:
data:
type: boolean
"/subscribers/{id}/blocklist":
put:
description: handles the blocklisting of one or more subscribers.
operationId: manageBlocklistSubscribersById
tags:
- Subscribers
requestBody:
description: The id of subscriber to add or remove
content:
application/json:
schema:
$ref: "#/components/schemas/SubscriberQueryRequest"
parameters:
- in: path
name: id
required: true
description: The id value of the subscriber you want to blocklist.
schema:
type: integer
format: int32
responses:
"200":
description: OK
content:
application/json:
schema:
type: object
properties:
data:
type: boolean
"/subscribers/{id}/export":
get:
description: retrieves a subscriber's profile
operationId: exportSubscriberDataByID
tags:
- Subscribers
parameters:
- in: path
name: id
required: true
description: The id value of subscriber profile you want to export
schema:
type: integer
responses:
"200":
headers:
Cache-Control:
schema:
type: string
Content-Disposition:
schema:
type: string
example: attachment; filename="data.json"
description: subscriber data object
content:
application/json:
schema:
$ref: "#/components/schemas/SubscriberData"
"/subscribers/{id}/bounces":
get:
description: retrieves a subscriber's bounce records
operationId: getSubscriberBouncesById
tags:
- Subscribers
parameters:
- in: path
name: id
required: true
description: subscriber id
schema:
type: integer
responses:
"200":
description: list of bounce records of a subscriber
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
$ref: "#/components/schemas/Bounce"
delete:
description: deletes a subscriber's bounce records
operationId: deleteSubscriberBouncesById
tags:
- Subscribers
parameters:
- in: path
name: id
required: true
description: subscriber id
schema:
type: integer
responses:
"200":
description: OK
content:
application/json:
schema:
type: object
properties:
data:
type: boolean
"/subscribers/{id}/optin":
post:
description: sends an optin confirmation e-mail to a subscriber.
operationId: subscriberSendOptinById
tags:
- Subscribers
parameters:
- in: path
name: id
required: true
description: sends an optin confirmation e-mail to a subscriber
schema:
type: integer
responses:
"200":
description: OK
content:
application/json:
schema:
type: object
properties:
data:
type: boolean
"/subscribers/query/delete":
post:
description: bulk deletes based on an arbitrary SQL expression.
operationId: deleteSubscriberByQuery
tags:
- Subscribers
requestBody:
description: Arbitrary SQL expression.
content:
text/plain:
schema:
type: string
application/json:
schema:
$ref: "#/components/schemas/SubscriberQueryRequest"
responses:
"200":
description: OK
content:
application/json:
schema:
type: object
properties:
data:
type: boolean
"/subscribers/query/blocklist":
put:
description: bulk blocklists subscribers based on an arbitrary SQL expression.
operationId: blocklistSubscribersQuery
tags:
- Subscribers
requestBody:
description: Arbitrary SQL expression.
content:
text/plain:
schema:
type: string
application/json:
schema:
$ref: "#/components/schemas/SubscriberQueryRequest"
responses:
"200":
description: OK
content:
application/json:
schema:
type: object
properties:
data:
type: boolean
"/subscribers/query/lists":
put:
description: bulk adds/removes/unsubscribes subscribers from one or more lists based on an arbitrary SQL expression.
operationId: manageSubscriberListsByQuery
tags:
- Subscribers
requestBody:
description: Arbitrary SQL expression.
content:
text/plain:
schema:
type: string
application/json:
schema:
$ref: "#/components/schemas/SubscriberQueryRequest"
responses:
"200":
description: OK
content:
application/json:
schema:
type: object
properties:
data:
type: boolean
/bounces:
get:
description: handles retrieval of bounce records.
operationId: getBounces
tags:
- Bounces
requestBody:
description: output parameters form
required: true
content:
application/x-www-form-urlencoded:
schema:
type: object
properties:
source:
type: string
order_by:
type: string
order:
type: string
parameters:
- in: query
name: campaign_id
description: bounce record retrieval of particular campaign
schema:
type: integer
- in: query
name: page
description: total number of pages
schema:
type: integer
- in: query
name: per_page
description: number of items per page
schema:
type: integer
responses:
"200":
description: list of bounce records
content:
application/json:
schema:
type: object
properties:
data:
type: object
properties:
results:
type: array
items:
$ref: "#/components/schemas/Bounce"
query:
type: string
total:
type: integer
per_page:
type: integer
page:
type: integer
delete:
description: handles retrieval of bounce records.
operationId: deleteBounces
tags:
- Bounces
parameters:
- in: query
name: all
description: flag for multiple bounce record deletion
schema:
type: boolean
- in: query
name: id
description: list of bounce ids to delete
schema:
type: string
responses:
"200":
description: OK
content:
application/json:
schema:
type: object
properties:
data:
type: boolean
"/bounces/{id}":
get:
description: handles retrieval of bounce record by id
operationId: getBounceById
parameters:
- in: path
name: id
required: true
description: The id value of the bounce you want to retreive.
schema:
type: integer
tags:
- Bounces
responses:
"200":
description: bounce object
content:
application/json:
schema:
type: object
properties:
data:
$ref: "#/components/schemas/Bounce"
delete:
description: handles bounce deletion, either a single one (ID in the URI), or a list.
operationId: deleteBounceById
parameters:
- in: path
name: id
required: true
description: The id value of the bounce you want to delete.
schema:
type: integer
tags:
- Bounces
responses:
"200":
description: OK
content:
application/json:
schema:
type: object
properties:
data:
type: boolean
/lists:
get:
description: retrieves lists with additional metadata like subscriber counts. This may be slow.
operationId: getLists
tags:
- Lists
parameters:
- in: query
name: page
description: total number of pages
schema:
type: integer
- in: query
name: per_page
description: number of items per page
schema:
type: integer
requestBody:
required: true
description: output parameters form
content:
application/x-www-form-urlencoded:
schema:
type: object
properties:
query:
description: Optional string to search a list by name.
type: string
order_by:
description: Field to sort results by. name|status|created_at|updated_at
type: string
order:
description: ASC|DESC Sort by ascending or descending order.
type: string
minimal:
type: boolean
responses:
"200":
description: list of metadata
content:
application/json:
schema:
type: object
properties:
data:
type: object
properties:
results:
type: array
items:
$ref: "#/components/schemas/List"
total:
type: integer
per_page:
type: integer
page:
type: integer
post:
description: handles list creation
operationId: createList
tags:
- Lists
requestBody:
description: new list info
content:
application/json:
schema:
$ref: "#/components/schemas/NewList"
responses:
"200":
description: updated list object
content:
application/json:
schema:
type: object
properties:
data:
$ref: "#/components/schemas/List"
"/lists/{list_id}":
get:
description: retrieves lists with additional metadata like subscriber counts. This may be slow.
operationId: getListById
tags:
- Lists
parameters:
- in: path
name: list_id
required: true
description: The id value of the list you want to retreive.
schema:
type: integer
responses:
"200":
description: list object
content:
application/json:
schema:
type: object
properties:
data:
$ref: "#/components/schemas/List"
put:
description: handles list modification
operationId: updateListById
tags:
- Lists
parameters:
- in: path
name: list_id
required: true
description: The id value of the list you want to update
schema:
type: integer
requestBody:
description: updated list field values
content:
application/json:
schema:
$ref: "#/components/schemas/List"
responses:
"200":
description: updated list object
content:
application/json:
schema:
type: object
properties:
data:
$ref: "#/components/schemas/List"
delete:
description: handles list deletion, either a single one (ID in the URI), or a list.
operationId: deleteListById
tags:
- Lists
parameters:
- in: path
name: list_id
required: true
description: The id value of the lists you want to delete.
schema:
type: integer
responses:
"200":
description: OK
content:
application/json:
schema:
type: object
properties:
data:
type: boolean
/import/subscribers:
get:
description: returns import status.
operationId: getImportSubscribers
tags:
- Import
responses:
"200":
description: import status
content:
application/json:
schema:
type: object
properties:
data:
$ref: "#/components/schemas/ImportStatus"
post:
description: handles the uploading and bulk importing of a ZIP file of one or more CSV files.
operationId: importSubscribers
tags:
- Import
requestBody:
description: uploads and bulk imports of compressed CSV files
content:
application/json:
schema:
type: object
properties:
params:
type: string
file:
type: string
responses:
"200":
description: updated import status
content:
application/json:
schema:
type: object
properties:
data:
$ref: "#/components/schemas/ImportStatus"
delete:
description: sends a stop signal to the importer.
operationId: stopImportSubscribers
tags:
- Import
responses:
"200":
description: response
content:
application/json:
schema:
type: object
properties:
data:
$ref: "#/components/schemas/ImportStatus"
/import/subscribers/logs:
get:
description: returns import statistics
operationId: getImportSubscriberStats
tags:
- Import
responses:
"200":
description: import statistics
content:
application/json:
schema:
type: object
properties:
data:
type: string
/campaigns:
get:
description: handles retrieval of campaigns
operationId: getCampaigns
parameters:
- in: query
name: status
description: status flag of campaign
schema:
type: array
items:
type: string
enum: [scheduled, running, paused, cancelled]
- in: query
name: no_body
description: boolean flag for response with/without body
schema:
type: boolean
- in: query
name: page
description: total number of pages
schema:
type: integer
- in: query
name: per_page
description: number of items per page
schema:
type: integer
requestBody:
required: true
description: output parameters form
content:
application/x-www-form-urlencoded:
schema:
type: object
properties:
query:
description: Optional string to search a list by name.
type: string
order_by:
description: Field to sort results by. name|status|created_at|updated_at
type: string
order:
description: ASC|DESC Sort by ascending or descending order.
type: string
tags:
- Campaigns
responses:
"200":
description: list of campaigns
content:
application/json:
schema:
type: object
properties:
data:
type: object
properties:
results:
type: array
items:
$ref: "#/components/schemas/Campaign"
query:
type: string
total:
type: integer
per_page:
type: integer
page:
type: integer
post:
description: handles campaign creation
operationId: createCampaign
tags:
- Campaigns
requestBody:
description: new campaign info
content:
application/json:
schema:
$ref: "#/components/schemas/CampaignRequest"
responses:
"200":
description: new campaign object
content:
application/json:
schema:
type: object
properties:
data:
$ref: "#/components/schemas/CampaignUpdate"
"/campaigns/{id}":
get:
description: handles retrieval of campaigns.
operationId: getCampaignById
tags:
- Campaigns
parameters:
- in: path
name: id
required: true
description: The id value of the campaign you want to get.
schema:
type: integer
- in: query
name: no_body
required: false
description: boolean flag for response with/without body
schema:
type: boolean
responses:
"200":
description: campaign object
content:
application/json:
schema:
type: object
properties:
data:
$ref: "#/components/schemas/Campaign"
put:
description: handle updation of campaign
operationId: updateCampaignById
tags:
- Campaigns
parameters:
- in: path
name: id
required: true
description: the id value of campaign you want to update
schema:
type: integer
requestBody:
description: updated campaign fields
content:
application/json:
schema:
$ref: "#/components/schemas/CampaignRequest"
responses:
"200":
description: updated campaign object
content:
application/json:
schema:
type: object
properties:
data:
$ref: "#/components/schemas/CampaignUpdate"
delete:
description: deletes specified campaign
operationId: deleteCampaignById
tags:
- Campaigns
parameters:
- in: path
name: id
required: true
description: The id value of the campaign you want to get.
schema:
type: integer
responses:
"200":
description: OK
content:
application/json:
schema:
type: object
properties:
data:
type: boolean
/campaigns/running/stats:
get:
description: returns stats of a given set of campaign IDs.
operationId: getRunningCampaignStats
tags:
- Campaigns
responses:
"200":
description: list of stats for given set of campaign ids
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
$ref: "#/components/schemas/CampaignStats"
"/campaigns/analytics/{type}":
get:
description: retrieves view counts for a campaign.
operationId: getCampaignAnalytics
tags:
- Campaigns
parameters:
- in: path
required: true
name: type
description: type of stats, either links, view, click or bounce
schema:
type: string
enum: [links, views, clicks, bounces]
- in: query
required: true
name: from
description: start value of date range
schema:
type: string
- in: query
required: true
name: to
description: end value of date range
schema:
type: string
- in: query
name: id
description: campaign id/s to retrive view counts
schema:
type: string
responses:
"200":
description: list of stats for given set of campaign ids
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
$ref: "#/components/schemas/CampaignAnalyticsCount"
"/campaigns/{id}/preview":
get:
description: renders the HTML preview of a campaign body
operationId: previewCampaignById
tags:
- Campaigns
parameters:
- in: path
name: id
required: true
description: The id value of the campaign you want to get the preview of
schema:
type: integer
requestBody:
required: true
description: template id
content:
application/x-www-form-urlencoded:
schema:
type: object
properties:
template_id:
description: template id
type: integer
responses:
"200":
description: HTML Preview of requested campaign
content:
text/html:
schema:
type: string
example: <h3>Hi John!</h3>This is a e-mail campaign. Your second name is Doe and you are from Bengaluru
post:
description: renders the HTML preview of a campaign body
operationId: updatePreviewCampaignById
tags:
- Campaigns
parameters:
- in: path
name: id
required: true
description: The id value of the campaign you want to get the preview of
schema:
type: integer
requestBody:
required: true
description: template id, body and content type
content:
application/x-www-form-urlencoded:
schema:
type: object
properties:
template_id:
description: template id
type: integer
content_type:
description: content type
type: string
body:
description: template body
type: string
responses:
"200":
description: HTML Preview of requested campaign
content:
text/html:
schema:
type: string
example: <h3>Hi John!</h3>This is a e-mail campaign. Your second name is Doe and you are from Bengaluru
"/campaigns/{id}/text":
post:
description: renders the HTML preview of a campaign body
operationId: previewCampaignTextById
tags:
- Campaigns
requestBody:
required: true
description: template id, content type and campaign body
content:
application/x-www-form-urlencoded:
schema:
type: object
properties:
template_id:
description: template id
type: integer
content_type:
description: content type
type: string
body:
description: campaign body
type: string
parameters:
- in: path
name: id
required: true
description: The id value of the campaign you want to get the preview of
schema:
type: integer
responses:
"200":
description: response
content:
text/html:
schema:
type: string
example: <h3>Hi John!</h3><p>This is a test e-mail campaign. Your second name is Doe and you are from Bengaluru</p>
"/campaigns/{id}/status":
put:
description: handles campaign status modification
operationId: updateCampaignStatusById
tags:
- Campaigns
parameters:
- in: path
name: id
required: true
description: The id value of the campaign you want to get the preview of
schema:
type: integer
requestBody:
description: campaign status update
content:
application/json:
schema:
type: object
properties:
status:
type: string
enum: [scheduled, running, paused, cancelled]
responses:
"200":
description: response
content:
application/json:
schema:
type: object
properties:
data:
$ref: "#/components/schemas/Campaign"
"/campaigns/{id}/archive":
put:
description: handles campaign status modification
operationId: updateCampaignArchiveById
tags:
- Campaigns
parameters:
- in: path
name: id
required: true
description: The id value of the campaign you want to get the preview of
schema:
type: integer
requestBody:
description: archive campaign related parameters
content:
application/json:
schema:
type: object
properties:
archive:
type: boolean
archive_template_id:
type: integer
archive_meta:
type: object
responses:
"200":
description: response
content:
application/json:
schema:
type: object
properties:
data:
type: boolean
"/campaigns/{id}/content":
post:
description: handles campaign content (body) format conversions.
operationId: createCampaignContentById
tags:
- Campaigns
requestBody:
description: updated campaign content
content:
application/json:
schema:
$ref: "#/components/schemas/CampaignContentRequest"
parameters:
- in: path
name: id
description: ID of campaign that you choose to create content
required: true
schema:
type: integer
responses:
"200":
description: response
content:
application/json:
schema:
type: object
properties:
data:
type: string
"/campaigns/{id}/test":
post:
description: handles sending of campaign message to arbitrary subscribers for testing
operationId: testCampaignById
tags:
- Campaigns
parameters:
- in: path
name: id
description: ID of campaign that you want to test
required: true
schema:
type: integer
requestBody:
required: true
description: template id
content:
application/x-www-form-urlencoded:
schema:
type: object
properties:
template_id:
description: template id
type: integer
application/json:
schema:
$ref: "#/components/schemas/CampaignRequest"
responses:
"200":
description: response
content:
application/json:
schema:
type: object
properties:
data:
type: boolean
"/media":
get:
description: handles retrieval of uploaded media.
operationId: getMedia
tags:
- Media
responses:
"200":
description: response
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
$ref: "#/components/schemas/MediaFileObject"
post:
description: handles media file uploads.
operationId: uploadMedia
tags:
- Media
requestBody:
description: upload media file
content:
multipart/form-data:
schema:
type: string
format: binary
responses:
"200":
description: response
content:
application/json:
schema:
type: object
properties:
data:
$ref: "#/components/schemas/MediaFileObject"
"/media/{id}":
get:
description: handles retrieval of uploaded media.
operationId: getMediaById
tags:
- Media
parameters:
- in: path
name: id
required: true
description: media file id
schema:
type: integer
responses:
"200":
description: response
content:
application/json:
schema:
type: object
properties:
data:
$ref: "#/components/schemas/MediaFileObject"
delete:
description: handles deletion of uploaded media.
operationId: deleteMediaById
tags:
- Media
parameters:
- in: path
name: id
required: true
description: The id value of the list you want to delete.
schema:
type: integer
responses:
"200":
description: response
content:
application/json:
schema:
type: object
properties:
data:
type: boolean
/templates:
get:
description: handles retrieval of templates
operationId: getTemplates
tags:
- Templates
parameters:
- in: query
name: no_body
description: boolean flag for response with/without body
required: true
schema:
type: boolean
responses:
"200":
description: response
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
$ref: "#/components/schemas/Template"
"/templates/{id}":
get:
description: handles retrieval of templates
operationId: getTemplateById
tags:
- Templates
parameters:
- in: path
name: id
required: true
schema:
type: integer
description: The id value of the template you want to get.
- in: query
name: no_body
description: boolean flag for response with/without body
required: false
schema:
type: boolean
responses:
"200":
description: response
content:
application/json:
schema:
type: object
properties:
data:
$ref: "#/components/schemas/Template"
delete:
description: handles deletion of templates
operationId: deleteTemplateById
tags:
- Templates
parameters:
- in: path
name: id
required: true
description: The id value of the template you want to delete.
schema:
type: integer
responses:
"200":
description: response
content:
application/json:
schema:
type: object
properties:
data:
type: boolean
/templates/preview:
post:
description: get the HTML preview of a template.
operationId: previewTemplate
tags:
- Templates
requestBody:
required: true
description: template parameters
content:
application/x-www-form-urlencoded:
schema:
type: object
properties:
template_type:
description: type of template
type: string
body:
description: template body
type: string
responses:
"200":
description: response
content:
text/html:
schema:
type: string
example: <p>Hi there</p>
"/templates/{id}/preview":
get:
description: renders the HTML preview of a template.
operationId: previewTemplateById
tags:
- Templates
requestBody:
description: template parameters
required: true
content:
application/x-www-form-urlencoded:
schema:
type: object
properties:
template_type:
description: type of template
type: string
body:
description: template body
type: string
parameters:
- in: path
name: id
required: true
schema:
type: integer
description: The id value of the template you want to get.
responses:
"200":
description: response
content:
text/html:
schema:
type: string
example: <p>Hi there</p>
"/templates/{id}/default":
put:
description: handles template modification.
operationId: updateTemplateById
tags:
- Templates
parameters:
- in: path
name: id
required: true
description: The id value of the template you want to set to the default template.
schema:
type: integer
responses:
"200":
description: response
content:
application/json:
schema:
$ref: "#/components/schemas/Template"
/tx:
post:
tags:
- Transactional
description: send message to a subscriber
operationId: transactWithSubscriber
requestBody:
description: email message to a subscriber
content:
application/json:
schema:
$ref: "#/components/schemas/TransactionalMessage"
responses:
"200":
description: OK
content:
application/json:
schema:
type: object
properties:
data:
type: boolean
"/maintenance/subscribers/{type}":
delete:
description: garbage collects (deletes) orphaned or blocklisted subscribers.
operationId: deleteGCSubscribers
tags:
- Maintenance
parameters:
- in: path
name: type
description: type of GC collected subscribers
schema:
type: string
required: true
responses:
"200":
description: response
content:
application/json:
schema:
type: object
properties:
data:
type: object
properties:
count:
type: integer
"/maintenance/analytics/{type}":
delete:
description: garbage collects (deletes) campaign analytics.
operationId: deleteCampaignAnalyticsByType
tags:
- Maintenance
requestBody:
description: date parameter
required: true
content:
application/x-www-form-urlencoded:
schema:
type: object
properties:
before_date:
type: string
format: date
parameters:
- in: path
name: type
description: type of GC collected subscribers
schema:
type: string
required: true
responses:
"200":
description: response
content:
application/json:
schema:
type: object
properties:
data:
type: boolean
"/maintenance/subscriptions/unconfirmed":
delete:
description: garbage collects (deletes) orphaned or blocklisted subscribers.
operationId: deleteUnconfirmedSubscriptions
tags:
- Maintenance
requestBody:
required: true
description: date parameter
content:
application/x-www-form-urlencoded:
schema:
type: object
properties:
before_date:
type: string
format: date
responses:
"200":
description: response
content:
application/json:
schema:
type: object
properties:
data:
type: object
properties:
count:
type: integer
"/public/lists":
get:
description: returns the list of public lists with minimal fields
operationId: getPublicLists
tags:
- Public
responses:
"200":
description: response
content:
application/json:
schema:
type: array
items:
type: object
properties:
uuid:
type: string
name:
type: string
"/public/subscription":
post:
description: handles subscription requests coming from public API calls.
operationId: handlePublicSubscription
tags:
- Public
requestBody:
description: subscription request parameters
content:
application/json:
schema:
type: object
properties:
name:
type: string
email:
type: string
list_uuids:
type: array
items:
type: string
responses:
"200":
description: response
content:
application/json:
schema:
type: object
properties:
has_optin:
type: boolean
components:
schemas:
LanguagePack:
type: object
properties:
data:
type: object
properties:
_.code:
type: string
_.name:
type: string
admin.errorMarshallingConfig:
type: string
analytics.count:
type: string
analytics.fromDate:
type: string
analytics.invalidDates:
type: string
analytics.isUnique:
type: string
analytics.links:
type: string
analytics.nonUnique:
type: string
analytics.title:
type: string
analytics.toDate:
type: string
bounces.source:
type: string
bounces.unknownService:
type: string
bounces.view:
type: string
campaigns.addAltText:
type: string
campaigns.archive:
type: string
campaigns.archiveEnable:
type: string
campaigns.archiveHelp:
type: string
campaigns.archiveMeta:
type: string
campaigns.archiveMetaHelp:
type: string
campaigns.cantUpdate:
type: string
campaigns.clicks:
type: string
campaigns.confirmDelete:
type: string
campaigns.confirmSchedule:
type: string
campaigns.confirmSwitchFormat:
type: string
campaigns.content:
type: string
campaigns.contentHelp:
type: string
campaigns.continue:
type: string
campaigns.copyOf:
type: string
campaigns.customHeadersHelp:
type: string
campaigns.dateAndTime:
type: string
campaigns.ended:
type: string
campaigns.errorSendTest:
type: string
campaigns.fieldInvalidBody:
type: string
campaigns.fieldInvalidFromEmail:
type: string
campaigns.fieldInvalidListIDs:
type: string
campaigns.fieldInvalidMessenger:
type: string
campaigns.fieldInvalidName:
type: string
campaigns.fieldInvalidSendAt:
type: string
campaigns.fieldInvalidSubject:
type: string
campaigns.formatHTML:
type: string
campaigns.fromAddress:
type: string
campaigns.fromAddressPlaceholder:
type: string
campaigns.invalid:
type: string
campaigns.invalidCustomHeaders:
type: string
campaigns.markdown:
type: string
campaigns.needsSendAt:
type: string
campaigns.newCampaign:
type: string
campaigns.noKnownSubsToTest:
type: string
campaigns.noOptinLists:
type: string
campaigns.noSubs:
type: string
campaigns.noSubsToTest:
type: string
campaigns.notFound:
type: string
campaigns.onlyActiveCancel:
type: string
campaigns.onlyActivePause:
type: string
campaigns.onlyDraftAsScheduled:
type: string
campaigns.onlyPausedDraft:
type: string
campaigns.onlyScheduledAsDraft:
type: string
campaigns.pause:
type: string
campaigns.plainText:
type: string
campaigns.preview:
type: string
campaigns.progress:
type: string
campaigns.queryPlaceholder:
type: string
campaigns.rateMinuteShort:
type: string
campaigns.rawHTML:
type: string
campaigns.removeAltText:
type: string
campaigns.richText:
type: string
campaigns.schedule:
type: string
campaigns.scheduled:
type: string
campaigns.send:
type: string
campaigns.sendLater:
type: string
campaigns.sendTest:
type: string
campaigns.sendTestHelp:
type: string
campaigns.sendToLists:
type: string
campaigns.sent:
type: string
campaigns.start:
type: string
campaigns.started:
type: string
campaigns.startedAt:
type: string
campaigns.stats:
type: string
campaigns.status.cancelled:
type: string
campaigns.status.draft:
type: string
campaigns.status.finished:
type: string
campaigns.status.paused:
type: string
campaigns.status.running:
type: string
campaigns.status.scheduled:
type: string
campaigns.statusChanged:
type: string
campaigns.subject:
type: string
campaigns.testEmails:
type: string
campaigns.testSent:
type: string
campaigns.timestamps:
type: string
campaigns.trackLink:
type: string
campaigns.views:
type: string
dashboard.campaignViews:
type: string
dashboard.linkClicks:
type: string
dashboard.messagesSent:
type: string
dashboard.orphanSubs:
type: string
email.data.info:
type: string
email.data.title:
type: string
email.optin.confirmSub:
type: string
email.optin.confirmSubHelp:
type: string
email.optin.confirmSubInfo:
type: string
email.optin.confirmSubTitle:
type: string
email.optin.confirmSubWelcome:
type: string
email.optin.privateList:
type: string
email.status.campaignReason:
type: string
email.status.campaignSent:
type: string
email.status.campaignUpdateTitle:
type: string
email.status.importFile:
type: string
email.status.importRecords:
type: string
email.status.importTitle:
type: string
email.status.status:
type: string
email.unsub:
type: string
email.unsubHelp:
type: string
email.viewInBrowser:
type: string
forms.formHTML:
type: string
forms.formHTMLHelp:
type: string
forms.noPublicLists:
type: string
forms.publicLists:
type: string
forms.publicSubPage:
type: string
forms.selectHelp:
type: string
forms.title:
type: string
globals.buttons.add:
type: string
globals.buttons.addNew:
type: string
globals.buttons.back:
type: string
globals.buttons.cancel:
type: string
globals.buttons.clone:
type: string
globals.buttons.close:
type: string
globals.buttons.continue:
type: string
globals.buttons.delete:
type: string
globals.buttons.deleteAll:
type: string
globals.buttons.edit:
type: string
globals.buttons.enabled:
type: string
globals.buttons.insert:
type: string
globals.buttons.learnMore:
type: string
globals.buttons.more:
type: string
globals.buttons.new:
type: string
globals.buttons.ok:
type: string
globals.buttons.remove:
type: string
globals.buttons.save:
type: string
globals.buttons.saveChanges:
type: string
globals.days.0:
type: string
globals.days.1:
type: string
globals.days.2:
type: string
globals.days.3:
type: string
globals.days.4:
type: string
globals.days.5:
type: string
globals.days.6:
type: string
globals.days.7:
type: string
globals.fields.createdAt:
type: string
globals.fields.description:
type: string
globals.fields.id:
type: string
globals.fields.name:
type: string
globals.fields.status:
type: string
globals.fields.type:
type: string
globals.fields.updatedAt:
type: string
globals.fields.uuid:
type: string
globals.messages.confirm:
type: string
globals.messages.confirmDiscard:
type: string
globals.messages.created:
type: string
globals.messages.deleted:
type: string
globals.messages.deletedCount:
type: string
globals.messages.done:
type: string
globals.messages.emptyState:
type: string
globals.messages.errorCreating:
type: string
globals.messages.errorDeleting:
type: string
globals.messages.errorFetching:
type: string
globals.messages.errorInvalidIDs:
type: string
globals.messages.errorUUID:
type: string
globals.messages.errorUpdating:
type: string
globals.messages.internalError:
type: string
globals.messages.invalidData:
type: string
globals.messages.invalidID:
type: string
globals.messages.invalidUUID:
type: string
globals.messages.missingFields:
type: string
globals.messages.notFound:
type: string
globals.messages.passwordChange:
type: string
globals.messages.updated:
type: string
globals.months.1:
type: string
globals.months.10:
type: string
globals.months.11:
type: string
globals.months.12:
type: string
globals.months.2:
type: string
globals.months.3:
type: string
globals.months.4:
type: string
globals.months.5:
type: string
globals.months.6:
type: string
globals.months.7:
type: string
globals.months.8:
type: string
globals.months.9:
type: string
globals.states.off:
type: string
globals.terms.all:
type: string
globals.terms.analytics:
type: string
globals.terms.bounce:
type: string
globals.terms.bounces:
type: string
globals.terms.campaign:
type: string
globals.terms.campaigns:
type: string
globals.terms.dashboard:
type: string
globals.terms.day:
type: string
globals.terms.hour:
type: string
globals.terms.list:
type: string
globals.terms.lists:
type: string
globals.terms.media:
type: string
globals.terms.messenger:
type: string
globals.terms.messengers:
type: string
globals.terms.minute:
type: string
globals.terms.month:
type: string
globals.terms.second:
type: string
globals.terms.settings:
type: string
globals.terms.subscriber:
type: string
globals.terms.subscribers:
type: string
globals.terms.subscriptions:
type: string
globals.terms.tag:
type: string
globals.terms.tags:
type: string
globals.terms.template:
type: string
globals.terms.templates:
type: string
globals.terms.tx:
type: string
globals.terms.year:
type: string
import.alreadyRunning:
type: string
import.blocklist:
type: string
import.csvDelim:
type: string
import.csvDelimHelp:
type: string
import.csvExample:
type: string
import.csvFile:
type: string
import.csvFileHelp:
type: string
import.errorCopyingFile:
type: string
import.errorProcessingZIP:
type: string
import.errorStarting:
type: string
import.importDone:
type: string
import.importStarted:
type: string
import.instructions:
type: string
import.instructionsHelp:
type: string
import.invalidDelim:
type: string
import.invalidFile:
type: string
import.invalidMode:
type: string
import.invalidParams:
type: string
import.invalidSubStatus:
type: string
import.listSubHelp:
type: string
import.mode:
type: string
import.overwrite:
type: string
import.overwriteHelp:
type: string
import.recordsCount:
type: string
import.stopImport:
type: string
import.subscribe:
type: string
import.title:
type: string
import.upload:
type: string
lists.confirmDelete:
type: string
lists.confirmSub:
type: string
lists.invalidName:
type: string
lists.newList:
type: string
lists.optin:
type: string
lists.optinHelp:
type: string
lists.optinTo:
type: string
lists.optins.double:
type: string
lists.optins.single:
type: string
lists.sendCampaign:
type: string
lists.sendOptinCampaign:
type: string
lists.type:
type: string
lists.typeHelp:
type: string
lists.types.private:
type: string
lists.types.public:
type: string
logs.title:
type: string
maintenance.help:
type: string
maintenance.maintenance.unconfirmedOptins:
type: string
maintenance.olderThan:
type: string
maintenance.title:
type: string
maintenance.unconfirmedSubs:
type: string
media.errorReadingFile:
type: string
media.errorResizing:
type: string
media.errorSavingThumbnail:
type: string
media.errorUploading:
type: string
media.invalidFile:
type: string
media.title:
type: string
media.unsupportedFileType:
type: string
media.upload:
type: string
media.uploadHelp:
type: string
media.uploadImage:
type: string
menu.allCampaigns:
type: string
menu.allLists:
type: string
menu.allSubscribers:
type: string
menu.dashboard:
type: string
menu.forms:
type: string
menu.import:
type: string
menu.logs:
type: string
menu.maintenance:
type: string
menu.media:
type: string
menu.newCampaign:
type: string
menu.settings:
type: string
public.archiveEmpty:
type: string
public.archiveTitle:
type: string
public.blocklisted:
type: string
public.campaignNotFound:
type: string
public.confirmOptinSubTitle:
type: string
public.confirmSub:
type: string
public.confirmSubInfo:
type: string
public.confirmSubTitle:
type: string
public.dataRemoved:
type: string
public.dataRemovedTitle:
type: string
public.dataSent:
type: string
public.dataSentTitle:
type: string
public.errorFetchingCampaign:
type: string
public.errorFetchingEmail:
type: string
public.errorFetchingLists:
type: string
public.errorProcessingRequest:
type: string
public.errorTitle:
type: string
public.invalidFeature:
type: string
public.invalidLink:
type: string
public.managePrefs:
type: string
public.managePrefsUnsub:
type: string
public.noListsAvailable:
type: string
public.noListsSelected:
type: string
public.noSubInfo:
type: string
public.noSubTitle:
type: string
public.notFoundTitle:
type: string
public.prefsSaved:
type: string
public.privacyConfirmWipe:
type: string
public.privacyExport:
type: string
public.privacyExportHelp:
type: string
public.privacyTitle:
type: string
public.privacyWipe:
type: string
public.privacyWipeHelp:
type: string
public.sub:
type: string
public.subConfirmed:
type: string
public.subConfirmedTitle:
type: string
public.subName:
type: string
public.subNotFound:
type: string
public.subOptinPending:
type: string
public.subPrivateList:
type: string
public.subTitle:
type: string
public.unsub:
type: string
public.unsubFull:
type: string
public.unsubHelp:
type: string
public.unsubTitle:
type: string
public.unsubbedInfo:
type: string
public.unsubbedTitle:
type: string
public.unsubscribeTitle:
type: string
settings.appearance.adminHelp:
type: string
settings.appearance.adminName:
type: string
settings.appearance.customCSS:
type: string
settings.appearance.customJS:
type: string
settings.appearance.name:
type: string
settings.appearance.publicHelp:
type: string
settings.appearance.publicName:
type: string
settings.bounces.action:
type: string
settings.bounces.blocklist:
type: string
settings.bounces.count:
type: string
settings.bounces.countHelp:
type: string
settings.bounces.delete:
type: string
settings.bounces.enable:
type: string
settings.bounces.enableMailbox:
type: string
settings.bounces.enableSES:
type: string
settings.bounces.enableSendgrid:
type: string
settings.bounces.enablePostmark:
type: string
settings.bounces.enableWebhooks:
type: string
settings.bounces.enabled:
type: string
settings.bounces.folder:
type: string
settings.bounces.folderHelp:
type: string
settings.bounces.invalidScanInterval:
type: string
settings.bounces.name:
type: string
settings.bounces.scanInterval:
type: string
settings.bounces.scanIntervalHelp:
type: string
settings.bounces.sendgridKey:
type: string
settings.bounces.postmarkUsername:
type: string
settings.bounces.postmarkUsernameHelp:
type: string
settings.bounces.postmarkPassword:
type: string
settings.bounces.type:
type: string
settings.bounces.username:
type: string
settings.confirmRestart:
type: string
settings.duplicateMessengerName:
type: string
settings.errorEncoding:
type: string
settings.errorNoSMTP:
type: string
settings.general.adminNotifEmails:
type: string
settings.general.adminNotifEmailsHelp:
type: string
settings.general.checkUpdates:
type: string
settings.general.checkUpdatesHelp:
type: string
settings.general.enablePublicArchive:
type: string
settings.general.enablePublicArchiveHelp:
type: string
settings.general.enablePublicSubPage:
type: string
settings.general.enablePublicSubPageHelp:
type: string
settings.general.faviconURL:
type: string
settings.general.faviconURLHelp:
type: string
settings.general.fromEmail:
type: string
settings.general.fromEmailHelp:
type: string
settings.general.language:
type: string
settings.general.logoURL:
type: string
settings.general.logoURLHelp:
type: string
settings.general.name:
type: string
settings.general.rootURL:
type: string
settings.general.rootURLHelp:
type: string
settings.general.sendOptinConfirm:
type: string
settings.general.sendOptinConfirmHelp:
type: string
settings.general.siteName:
type: string
settings.invalidMessengerName:
type: string
settings.mailserver.authProtocol:
type: string
settings.mailserver.host:
type: string
settings.mailserver.hostHelp:
type: string
settings.mailserver.idleTimeout:
type: string
settings.mailserver.idleTimeoutHelp:
type: string
settings.mailserver.maxConns:
type: string
settings.mailserver.maxConnsHelp:
type: string
settings.mailserver.password:
type: string
settings.mailserver.passwordHelp:
type: string
settings.mailserver.port:
type: string
settings.mailserver.portHelp:
type: string
settings.mailserver.skipTLS:
type: string
settings.mailserver.skipTLSHelp:
type: string
settings.mailserver.tls:
type: string
settings.mailserver.tlsHelp:
type: string
settings.mailserver.username:
type: string
settings.mailserver.waitTimeout:
type: string
settings.mailserver.waitTimeoutHelp:
type: string
settings.media.provider:
type: string
settings.media.s3.bucket:
type: string
settings.media.s3.bucketPath:
type: string
settings.media.s3.bucketPathHelp:
type: string
settings.media.s3.bucketType:
type: string
settings.media.s3.bucketTypePrivate:
type: string
settings.media.s3.bucketTypePublic:
type: string
settings.media.s3.key:
type: string
settings.media.s3.publicURL:
type: string
settings.media.s3.publicURLHelp:
type: string
settings.media.s3.region:
type: string
settings.media.s3.secret:
type: string
settings.media.s3.uploadExpiry:
type: string
settings.media.s3.uploadExpiryHelp:
type: string
settings.media.s3.url:
type: string
settings.media.s3.urlHelp:
type: string
settings.media.title:
type: string
settings.media.upload.path:
type: string
settings.media.upload.pathHelp:
type: string
settings.media.upload.uri:
type: string
settings.media.upload.uriHelp:
type: string
settings.messengers.maxConns:
type: string
settings.messengers.maxConnsHelp:
type: string
settings.messengers.messageSaved:
type: string
settings.messengers.name:
type: string
settings.messengers.nameHelp:
type: string
settings.messengers.password:
type: string
settings.messengers.retries:
type: string
settings.messengers.retriesHelp:
type: string
settings.messengers.skipTLSHelp:
type: string
settings.messengers.timeout:
type: string
settings.messengers.timeoutHelp:
type: string
settings.messengers.url:
type: string
settings.messengers.urlHelp:
type: string
settings.messengers.username:
type: string
settings.needsRestart:
type: string
settings.performance.batchSize:
type: string
settings.performance.batchSizeHelp:
type: string
settings.performance.concurrency:
type: string
settings.performance.concurrencyHelp:
type: string
settings.performance.maxErrThreshold:
type: string
settings.performance.maxErrThresholdHelp:
type: string
settings.performance.messageRate:
type: string
settings.performance.messageRateHelp:
type: string
settings.performance.name:
type: string
settings.performance.slidingWindow:
type: string
settings.performance.slidingWindowDuration:
type: string
settings.performance.slidingWindowDurationHelp:
type: string
settings.performance.slidingWindowHelp:
type: string
settings.performance.slidingWindowRate:
type: string
settings.performance.slidingWindowRateHelp:
type: string
settings.privacy.allowBlocklist:
type: string
settings.privacy.allowBlocklistHelp:
type: string
settings.privacy.allowExport:
type: string
settings.privacy.allowExportHelp:
type: string
settings.privacy.allowPrefs:
type: string
settings.privacy.allowPrefsHelp:
type: string
settings.privacy.allowWipe:
type: string
settings.privacy.allowWipeHelp:
type: string
settings.privacy.domainBlocklist:
type: string
settings.privacy.domainBlocklistHelp:
type: string
settings.privacy.individualSubTracking:
type: string
settings.privacy.individualSubTrackingHelp:
type: string
settings.privacy.listUnsubHeader:
type: string
settings.privacy.listUnsubHeaderHelp:
type: string
settings.privacy.name:
type: string
settings.restart:
type: string
settings.smtp.customHeaders:
type: string
settings.smtp.customHeadersHelp:
type: string
settings.smtp.enabled:
type: string
settings.smtp.heloHost:
type: string
settings.smtp.heloHostHelp:
type: string
settings.smtp.name:
type: string
settings.smtp.retries:
type: string
settings.smtp.retriesHelp:
type: string
settings.smtp.sendTest:
type: string
settings.smtp.setCustomHeaders:
type: string
settings.smtp.testConnection:
type: string
settings.smtp.testEnterEmail:
type: string
settings.smtp.toEmail:
type: string
settings.title:
type: string
settings.updateAvailable:
type: string
subscribers.advancedQuery:
type: string
subscribers.advancedQueryHelp:
type: string
subscribers.attribs:
type: string
subscribers.attribsHelp:
type: string
subscribers.blocklistedHelp:
type: string
subscribers.confirmBlocklist:
type: string
subscribers.confirmDelete:
type: string
subscribers.confirmExport:
type: string
subscribers.domainBlocklisted:
type: string
subscribers.downloadData:
type: string
subscribers.email:
type: string
subscribers.emailExists:
type: string
subscribers.errorBlocklisting:
type: string
subscribers.errorNoIDs:
type: string
subscribers.errorNoListsGiven:
type: string
subscribers.errorPreparingQuery:
type: string
subscribers.errorSendingOptin:
type: string
subscribers.export:
type: string
subscribers.invalidAction:
type: string
subscribers.invalidEmail:
type: string
subscribers.invalidJSON:
type: string
subscribers.invalidName:
type: string
subscribers.listChangeApplied:
type: string
subscribers.lists:
type: string
subscribers.listsHelp:
type: string
subscribers.listsPlaceholder:
type: string
subscribers.manageLists:
type: string
subscribers.markUnsubscribed:
type: string
subscribers.newSubscriber:
type: string
subscribers.numSelected:
type: string
subscribers.optinSubject:
type: string
subscribers.preconfirm:
type: string
subscribers.preconfirmHelp:
type: string
subscribers.query:
type: string
subscribers.queryPlaceholder:
type: string
subscribers.reset:
type: string
subscribers.selectAll:
type: string
subscribers.sendOptinConfirm:
type: string
subscribers.sentOptinConfirm:
type: string
subscribers.status.blocklisted:
type: string
subscribers.status.confirmed:
type: string
subscribers.status.enabled:
type: string
subscribers.status.subscribed:
type: string
subscribers.status.unconfirmed:
type: string
subscribers.status.unsubscribed:
type: string
subscribers.subscribersDeleted:
type: string
templates.cantDeleteDefault:
type: string
templates.default:
type: string
templates.dummyName:
type: string
templates.dummySubject:
type: string
templates.errorCompiling:
type: string
templates.errorRendering:
type: string
templates.fieldInvalidName:
type: string
templates.makeDefault:
type: string
templates.newTemplate:
type: string
templates.placeholderHelp:
type: string
templates.preview:
type: string
templates.rawHTML:
type: string
templates.subject:
type: string
users.login:
type: string
users.logout:
type: string
ServerConfig:
type: object
properties:
data:
type: object
properties:
messengers:
type: array
items:
type: string
langs:
type: array
items:
type: object
properties:
code:
type: string
name:
type: string
lang:
type: string
update:
type: string
needs_restart:
type: boolean
version:
type: string
DashboardChart:
type: object
properties:
link_clicks:
type: array
items:
type: object
properties:
count:
type: integer
date:
type: string
campaign_views:
type: array
items:
type: object
properties:
count:
type: integer
date:
type: string
DashboardCount:
type: object
properties:
data:
type: object
properties:
subscribers:
type: object
properties:
total:
type: integer
blocklisted:
type: object
orphans:
type: integer
lists:
type: object
properties:
total:
type: integer
private:
type: integer
public:
type: integer
optin_single:
type: integer
optin_double:
type: integer
campaigns:
type: object
properties:
total:
type: integer
by_status:
type: object
properties:
draft:
type: integer
messages:
type: integer
SMTPSettings:
type: object
properties:
uuid:
type: string
enabled:
type: boolean
host:
type: string
hello_hostname:
type: string
port:
type: integer
auth_protocol:
type: string
username:
type: string
email_headers:
type: array
items:
type: object
max_conns:
type: integer
max_msg_retries:
type: integer
idle_timeout:
type: string
wait_timeout:
type: string
tls_type:
type: string
tls_skip_verify:
type: boolean
SMTPTest:
type: object
properties:
uuid:
type: string
enabled:
type: boolean
host:
type: string
hello_hostname:
type: string
port:
type: integer
auth_protocol:
type: string
username:
type: string
email_headers:
type: array
items:
type: object
max_conns:
type: integer
max_msg_retries:
type: integer
idle_timeout:
type: string
wait_timeout:
type: string
tls_type:
type: string
tls_skip_verify:
type: boolean
strEmailHeaders:
type: string
password:
type: string
email:
type: string
MailBoxBounces:
type: object
properties:
uuid:
type: string
enabled:
type: boolean
type:
type: string
host:
type: string
port:
type: integer
auth_protocol:
type: string
return_path:
type: string
username:
type: string
tls_enabled:
type: boolean
tls_skip_verify:
type: boolean
scan_interval:
type: string
Settings:
type: object
properties:
app.site_name:
type: string
app.root_url:
type: string
app.logo_url:
type: string
app.favicon_url:
type: string
app.from_email:
type: string
app.notify_emails:
type: array
items:
type: string
app.enable_public_subscription_page:
type: boolean
app.enable_public_archive:
type: boolean
app.send_optin_confirmation:
type: boolean
app.check_updates:
type: boolean
app.lang:
type: string
app.batch_size:
type: integer
app.concurrency:
type: integer
app.max_send_errors:
type: integer
app.message_rate:
type: integer
app.message_sliding_window:
type: boolean
app.message_sliding_window_duration:
type: string
app.message_sliding_window_rate:
type: integer
privacy.individual_tracking:
type: boolean
privacy.unsubscribe_header:
type: boolean
privacy.allow_blocklist:
type: boolean
privacy.allow_preferences:
type: boolean
privacy.allow_export:
type: boolean
privacy.allow_wipe:
type: boolean
privacy.exportable:
type: array
items:
type: string
privacy.domain_blocklist:
type: array
items:
type: object
upload.provider:
type: string
upload.filesystem.upload_path:
type: string
upload.filesystem.upload_uri:
type: string
upload.s3.url:
type: string
upload.s3.public_url:
type: string
upload.s3.aws_access_key_id:
type: string
upload.s3.aws_default_region:
type: string
upload.s3.bucket:
type: string
upload.s3.bucket_domain:
type: string
upload.s3.bucket_path:
type: string
upload.s3.bucket_type:
type: string
upload.s3.expiry:
type: string
smtp:
type: array
items:
$ref: "#/components/schemas/SMTPSettings"
messengers:
type: array
items:
type: object
bounce.enabled:
type: boolean
bounce.webhooks_enabled:
type: boolean
bounce.count:
type: integer
bounce.action:
type: string
bounce.ses_enabled:
type: boolean
bounce.sendgrid_enabled:
type: boolean
bounce.sendgrid_key:
type: string
bounce.postmark_enabled:
type: boolean
bounce.postmark_username:
type: string
bounce.postmark_password:
type: string
bounce.mailboxes:
type: array
items:
$ref: "#/components/schemas/MailBoxBounces"
appearance.admin.custom_css:
type: string
appearance.admin.custom_js:
type: string
appearance.public.custom_css:
type: string
appearance.public.custom_js:
type: string
SubscriberProfile:
type: object
properties:
id:
type: integer
uuid:
type: string
email:
type: string
name:
type: string
attribs:
type: object
properties:
city:
type: string
good:
type: boolean
type:
type: string
status:
type: string
created_at:
type: string
updated_at:
type: string
Subscriptions:
type: object
properties:
subscription_status:
type: string
name:
type: string
type:
type: string
created_at:
type: string
SubscriberData:
type: object
properties:
email:
type: string
profile:
type: array
items:
$ref: "#/components/schemas/SubscriberProfile"
subscriptions:
type: array
items:
$ref: "#/components/schemas/Subscriptions"
campaign_views:
type: array
items:
type: object
link_clicks:
type: array
items:
type: object
Subscriber:
type: object
properties:
id:
type: integer
created_at:
type: string
updated_at:
type: string
uuid:
type: string
email:
type: string
name:
type: string
attribs:
type: object
properties:
city:
type: string
good:
type: boolean
type:
type: string
status:
type: string
lists:
type: array
items:
type: object
properties:
subscription_status:
type: string
id:
type: integer
uuid:
type: string
name:
type: string
type:
type: string
tags:
type: array
items:
type: string
created_at:
type: string
updated_at:
type: string
NewSubscriber:
type: object
properties:
email:
type: string
name:
type: string
status:
type: string
lists:
type: array
items:
type: integer
list_uuids:
type: array
items:
type: string
preconfirm_subscriptions:
type: boolean
attribs:
type: object
properties:
city:
type: string
projects:
type: integer
stack:
type: object
properties:
languages:
type: array
items:
type: string
UpdateSubscriber:
type: object
properties:
email:
type: string
name:
type: string
status:
type: string
lists:
type: array
items:
type: integer
list_uuids:
type: array
items:
type: string
preconfirm_subscriptions:
type: boolean
attribs:
type: object
properties:
city:
type: string
projects:
type: integer
stack:
type: object
properties:
languages:
type: array
items:
type: string
SubscriberQueryRequest:
type: object
properties:
query:
type: string
ids:
type: array
description: The ids of the subscribers to be modified.
items:
type: integer
action:
type: string
enum: [add, remove, unsubscribe]
description: Whether to add, remove, or unsubscribe the users.
target_list_ids:
type: integer
description: The ids of the lists to be modified.
items:
type: integer
status:
type: string
enum: [confirmed, unconfirmed, unsubscribed]
description: confirmed, unconfirmed, or unsubscribed status.
Bounce:
type: object
properties:
results:
type: array
items:
type: object
properties:
id:
type: integer
type:
type: string
source:
type: string
meta:
type: object
created_at:
type: string
email:
type: string
subscriber_uuid:
type: string
subscriber_id:
type: integer
campaign:
type: object
properties:
id:
type: integer
name:
type: string
campaign_uuid:
type: string
total:
type: integer
List:
type: object
properties:
id:
type: integer
created_at:
type: string
updated_at:
type: string
uuid:
type: string
name:
type: string
type:
type: string
optin:
type: string
tags:
type: array
items:
type: string
subscriber_count:
type: integer
NewList:
type: object
properties:
name:
type: string
type:
type: string
enum: [public, private]
optin:
type: string
enum: [single, double]
tags:
type: array
items:
type: string
ImportStatus:
type: object
properties:
data:
type: object
properties:
name:
type: string
total:
type: integer
imported:
type: integer
status:
type: string
Campaign:
type: object
properties:
id:
type: integer
created_at:
type: string
updated_at:
type: string
CampaignID:
type: integer
views:
type: integer
clicks:
type: integer
lists:
type: array
items:
type: object
properties:
id:
type: integer
name:
type: string
started_at:
type: string
to_send:
type: integer
sent:
type: integer
uuid:
type: string
type:
type: string
enum: [regular, optin]
name:
type: string
subject:
type: string
from_email:
type: string
body:
type: string
send_at:
type: string
status:
type: string
content_type:
type: string
enum: [richtext, html, markdown, plain]
tags:
type: array
items:
type: string
template_id:
type: integer
messenger:
type: string
CampaignContentRequest:
type: object
properties:
id:
type: integer
created_at:
type: string
updated_at:
type: string
CampaignID:
type: integer
views:
type: integer
clicks:
type: integer
lists:
type: array
items:
type: object
properties:
id:
type: integer
name:
type: string
started_at:
type: string
to_send:
type: integer
sent:
type: integer
uuid:
type: string
type:
type: string
enum: [regular, optin]
name:
type: string
subject:
type: string
from_email:
type: string
body:
type: string
send_at:
type: string
status:
type: string
content_type:
type: string
enum: [richtext, html, markdown, plain]
tags:
type: array
items:
type: string
template_id:
type: integer
messenger:
type: string
from:
type: string
to:
type: string
CampaignRequest:
type: object
properties:
name:
type: string
subject:
type: string
lists:
type: array
items:
type: number
from_email:
type: string
content_type:
type: string
messenger:
type: string
type:
type: string
tags:
type: array
items:
type: string
send_later:
type: boolean
send_at:
type: object
properties:
headers:
type: array
items:
type: object
template_id:
type: number
CampaignUpdate:
type: object
properties:
name:
type: string
subject:
type: string
lists:
type: array
items:
type: integer
from_email:
type: string
messenger:
type: string
type:
type: string
tags:
type: array
items:
type: string
send_later:
type: boolean
send_at:
type: object
headers:
type: array
items:
type: object
template_id:
type: integer
content_type:
type: string
body:
type: string
altbody:
type: string
archive:
type: boolean
archive_template_id:
type: integer
archive_meta:
type: object
CampaignStats:
type: object
properties:
id:
type: integer
status:
type: string
to_send:
type: integer
sent:
type: integer
started_at:
type: string
format: date
updated_at:
type: string
format: date
rate:
type: integer
net_rate:
type: integer
CampaignAnalyticsCount:
type: object
properties:
campaign_id:
type: integer
count:
type: integer
timestamp:
type: string
format: date-time
MediaFileObject:
type: object
properties:
id:
type: integer
uuid:
type: string
filename:
type: string
created_at:
type: string
thumb_url:
type: string
uri:
type: string
Template:
type: object
properties:
id:
type: integer
created_at:
type: string
updated_at:
type: string
name:
type: string
body:
type: string
type:
type: string
is_default:
type: boolean
TransactionalMessage:
type: object
properties:
subscriber_email:
type: string
subscriber_id:
type: integer
template_id:
type: integer
from_email:
type: string
data:
type: object
headers:
type: array
items:
type: object
messenger:
type: string
content_type:
type: string