openapi: 3.2.0 info: version: 1.0.0 title: Listmonk Miscellaneous API description: The API collection for listmonk license: name: AGPL-3.0 license url: https://github.com/knadh/listmonk/blob/master/LICENSE servers: - description: Listmonk Developement Server url: http://localhost:9000/api tags: - name: Miscellaneous description: Misc 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' components: schemas: 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 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.numSelected: type: string bounces.selectAll: 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.subscribeWarning: 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.enableAzure: type: string settings.bounces.enableSendgrid: type: string settings.bounces.enableForwardemail: 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.azureSharedSecret: type: string settings.bounces.azureSharedSecretHelp: type: string settings.bounces.azureSharedSecretHeader: type: string settings.bounces.azureSharedSecretHeaderHelp: type: string settings.bounces.name: type: string settings.bounces.scanInterval: type: string settings.bounces.scanIntervalHelp: type: string settings.bounces.sendgridKey: type: string settings.bounces.forwardemailKey: 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.name: type: string settings.mailserver.nameHelp: 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