Greenspark Email API
The Email API from Greenspark — 14 operation(s) for email.
Documentation
Documentation
https://docs.getgreenspark.com/docs
APIReference
https://docs.getgreenspark.com/reference
The Email API from Greenspark — 14 operation(s) for email.
openapi: 3.0.0
info:
title: Greenspark Climate Account Email API
version: 2.3.0
description: 'Greenspark Impact-as-a-Service Climate API: create carbon-offset, tree-planting, plastic-recovery and other climate impacts, fetch impact/project data, carbon estimations, reporting, email templates and embeddable impact widgets. Reconstructed by API Evangelist from the provider''s per-endpoint OpenAPI definitions published on docs.getgreenspark.com.'
contact:
name: Greenspark Support
email: support@getgreenspark.com
url: https://www.getgreenspark.com
servers:
- url: https://api.getgreenspark.com
description: Production
- url: https://sandbox.getgreenspark.com
description: Sandbox
- url: https://demo-api.getgreenspark.com
description: Demo
security:
- ApiKeyAuth: []
tags:
- name: Email
paths:
/v1/email/domains:
post:
deprecated: true
description: Deprecated — redirects to v2. Use addDomainV2.
operationId: addDomain
parameters: []
responses:
'200':
description: Domain has been successfully added.
content:
application/json:
schema:
$ref: '#/components/schemas/CustomDomainDto'
'400':
description: Bad request.
'401':
description: Provide your API key.
'403':
description: Please upgrade to a growth, premium or enterprise plan.
'404':
description: Not found.
security:
- access-key: []
summary: Add Domain
tags:
- Email
get:
deprecated: true
description: Deprecated — redirects to v2. Use fetchDomainsV2.
operationId: fetchDomains
parameters: []
responses:
'200':
description: Domains has been successfully queried.
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/CustomDomainDto'
'400':
description: Bad request.
'401':
description: Provide your API key.
'403':
description: Please upgrade to a growth, premium or enterprise plan.
'404':
description: Not found.
security:
- access-key: []
summary: Fetch Domains
tags:
- Email
/v2/email/domains:
post:
description: Add your domain and receive the DNS records that must be added to your domain.
operationId: addDomainV2
parameters: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CustomDomainRequestBody'
responses:
'200':
description: Domain has been successfully added.
content:
application/json:
schema:
$ref: '#/components/schemas/CustomDomainDto'
'400':
description: Bad request.
'401':
description: Provide your API key.
'403':
description: Please upgrade to a growth, premium or enterprise plan.
'404':
description: Not found.
security:
- access-key: []
summary: Add Domain
tags:
- Email
get:
description: Fetch your previously added domains.
operationId: fetchDomainsV2
parameters: []
responses:
'200':
description: Domains has been successfully queried.
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/CustomDomainDto'
'400':
description: Bad request.
'401':
description: Provide your API key.
'403':
description: Please upgrade to a growth, premium or enterprise plan.
'404':
description: Not found.
security:
- access-key: []
summary: Fetch Domains
tags:
- Email
/v1/email/templates:
post:
deprecated: true
description: Deprecated — redirects to v2. Use addTemplateV2. Add your notification template for email sending. If you do not want a customizable property to be custom, you should provide the default value for that property.
operationId: addTemplate
parameters: []
responses:
'200':
description: Notification template has been successfully added.
content:
application/json:
schema:
$ref: '#/components/schemas/NotificationTemplateResponseDto'
'400':
description: Bad request.
'401':
description: Provide your API key.
'403':
description: Please upgrade to a growth, premium or enterprise plan.
'404':
description: Not found.
security:
- access-key: []
summary: Add Template
tags:
- Email
get:
deprecated: true
description: Deprecated — redirects to v2. Use fetchTemplatesV2.
operationId: fetchTemplates
parameters: []
responses:
'200':
description: Templates has been successfully queried.
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/NotificationTemplateResponseDto'
'400':
description: Bad request.
'401':
description: Provide your API key.
'403':
description: Please upgrade to a growth, premium or enterprise plan.
'404':
description: Not found.
security:
- access-key: []
summary: Fetch Templates
tags:
- Email
/v2/email/templates:
post:
description: Add your notification template for email sending. If you do not want a customizable property to be custom, you should provide the default value for that property. You can get the default values for every template type from the templates-defaults endpoint.
operationId: addTemplateV2
parameters: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/NotificationTemplateRequestDto'
responses:
'200':
description: Notification template has been successfully added.
content:
application/json:
schema:
$ref: '#/components/schemas/NotificationTemplateResponseDto'
'400':
description: Bad request.
'401':
description: Provide your API key.
'403':
description: Please upgrade to a growth, premium or enterprise plan.
'404':
description: Not found.
security:
- access-key: []
summary: Add Template
tags:
- Email
get:
description: Fetch templates for email sending.
operationId: fetchTemplatesV2
parameters: []
responses:
'200':
description: Templates has been successfully queried.
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/NotificationTemplateResponseDto'
'400':
description: Bad request.
'401':
description: Provide your API key.
'403':
description: Please upgrade to a growth, premium or enterprise plan.
'404':
description: Not found.
security:
- access-key: []
summary: Fetch Templates
tags:
- Email
/v1/email/domains/{domainId}:
delete:
deprecated: true
description: Deprecated — redirects to v2. Use deleteDomainV2.
operationId: deleteDomain
parameters:
- name: domainId
required: true
in: path
description: The id of the custom domain object.
schema:
example: 63c5857475784b9acf05c919
type: string
responses:
'200':
description: Domains has been successfully deleted.
content:
application/json:
schema:
$ref: '#/components/schemas/CustomDomainDto'
'400':
description: Bad request.
'401':
description: Provide your API key.
'403':
description: Please upgrade to a growth, premium or enterprise plan.
'404':
description: Not found.
security:
- access-key: []
summary: Delete Domain
tags:
- Email
/v2/email/domains/{domainId}:
delete:
description: Delete your domain.
operationId: deleteDomainV2
parameters:
- name: domainId
required: true
in: path
description: The id of the custom domain object.
schema:
example: 63c5857475784b9acf05c919
type: string
responses:
'200':
description: Domains has been successfully deleted.
content:
application/json:
schema:
$ref: '#/components/schemas/CustomDomainDto'
'400':
description: Bad request.
'401':
description: Provide your API key.
'403':
description: Please upgrade to a growth, premium or enterprise plan.
'404':
description: Not found.
security:
- access-key: []
summary: Delete Domain
tags:
- Email
/v1/email/templates/{templateId}:
delete:
deprecated: true
description: Deprecated — redirects to v2. Use deleteTemplateV2.
operationId: deleteTemplate
parameters:
- name: templateId
required: true
in: path
description: The id of the notification template.
schema:
example: 853b035dcd13c4ad66c6d618
type: string
responses:
'200':
description: Template has been successfully deleted.
content:
application/json:
schema:
$ref: '#/components/schemas/NotificationTemplateResponseDto'
'400':
description: Bad request.
'401':
description: Provide your API key.
'403':
description: Please upgrade to a growth, premium or enterprise plan.
'404':
description: Not found.
security:
- access-key: []
summary: Delete Template
tags:
- Email
put:
deprecated: true
description: Deprecated — redirects to v2. Use updateTemplateV2. Update your notification template for email sending.
operationId: updateTemplate
parameters:
- name: templateId
required: true
in: path
description: The id of the notification template.
schema:
example: 853b035dcd13c4ad66c6d618
type: string
responses:
'200':
description: Notification template has been successfully updated.
content:
application/json:
schema:
$ref: '#/components/schemas/NotificationTemplateResponseDto'
'400':
description: Bad request.
'401':
description: Provide your API key.
'403':
description: Please upgrade to a growth, premium or enterprise plan.
'404':
description: Not found.
security:
- access-key: []
summary: Update Template
tags:
- Email
/v2/email/templates/{templateId}:
delete:
description: Delete your template.
operationId: deleteTemplateV2
parameters:
- name: templateId
required: true
in: path
description: The id of the notification template.
schema:
example: 853b035dcd13c4ad66c6d618
type: string
responses:
'200':
description: Template has been successfully deleted.
content:
application/json:
schema:
$ref: '#/components/schemas/NotificationTemplateResponseDto'
'400':
description: Bad request.
'401':
description: Provide your API key.
'403':
description: Please upgrade to a growth, premium or enterprise plan.
'404':
description: Not found.
security:
- access-key: []
summary: Delete Template
tags:
- Email
put:
description: Update your notification template for email sending. If you do not want a customizable property to be custom, you should provide the default value for that property. You can get the default values for every template type from the templates-defaults endpoint.
operationId: updateTemplateV2
parameters:
- name: templateId
required: true
in: path
description: The id of the notification template.
schema:
example: 853b035dcd13c4ad66c6d618
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/NotificationTemplateRequestDto'
responses:
'200':
description: Notification template has been successfully updated.
content:
application/json:
schema:
$ref: '#/components/schemas/NotificationTemplateResponseDto'
'400':
description: Bad request.
'401':
description: Provide your API key.
'403':
description: Please upgrade to a growth, premium or enterprise plan.
'404':
description: Not found.
security:
- access-key: []
summary: Update Template
tags:
- Email
/v1/email/templates/{templateId}/disable:
post:
description: Disable your notification template to stop sending emails.
operationId: disableTemplate
parameters:
- name: templateId
required: true
in: path
description: The id of the notification template.
schema:
example: 853b035dcd13c4ad66c6d618
type: string
responses:
'200':
description: Notification template has been successfully disabled.
content:
application/json:
schema:
$ref: '#/components/schemas/NotificationTemplateResponseDto'
'400':
description: Bad request.
'401':
description: Provide your API key.
'403':
description: Please upgrade to a growth, premium or enterprise plan.
'404':
description: Not found.
security:
- access-key: []
summary: Disable Template
tags:
- Email
/v1/email/templates-defaults:
get:
deprecated: true
description: Deprecated — redirects to v2. Use fetchTemplatesDefaultsV2.
operationId: fetchTemplatesDefaults
parameters: []
responses:
'200':
description: Template defaults has been successfully queried.
content:
application/json:
schema:
example:
variables:
type: order, feedback, newsletter subscription, impact action
firstName: John
lastName: Smith
impactsTextPresent: plant 3 trees, recover 7 plastic bottles and offset 5 kgs of CO2
impactsTextPast: planted 3 trees, recover 7 plastic bottles and offset 5 kgs of CO2
sellerName: Greenspark
templates:
- accountId: ''
isCustom: false
type:
name: Customer invitation
template: invitation
trigger:
- byLoyaltyPoints
- offsetByPercentageOrder
- offsetBySpend
- offsetByStoreRevenue
- offsetPerOrder
- offsetPerProduct
- byPercentageOfPaidInvoice
- byPercentageOfRevenue
- bySpendOfPaidInvoice
- byTieredSpendOfPaidInvoice
- perPaidInvoice
- offsetPerSubscription
- offsetPerReview
- perCompletedForm
- perSelectedAnswer
- customerCartContribution
isTriggerCustom: false
schedule: null
isScheduleCustom: false
settings:
from:
name: null
domain: null
alias: '{{{ sellerName }}} x Greenspark'
isAliasCustom: false
subject: Your {{{type}}} with {{{sellerName}}} {{{impactsTextPast}}}. Track your impact here.
isSubjectCustom: false
preheader: Activate your Greenspark dashboard & grow your impact today.
isPreheaderCustom: false
schedule:
startDate: '2026-05-26T14:06:53.231Z'
endDate: null
isEndDateCustom: false
content:
headerImage: http://res.cloudinary.com/dlilerh6s/image/upload/v1670515295/templates/abgf9boicpxujispedpy.png
isHeaderImageCustom: false
body: '<div style="font-family: inherit; text-align: inherit"><span style="font-family: tahoma, geneva, sans-serif; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: pre-wrap; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline; font-size: 14px">Hi {{{ firstName }}},</span></div><div style="font-family: inherit; text-align: inherit"><br></div><div style="font-family: inherit; text-align: inherit"><span style="line-height: 1.38; background-color: transparent; margin-top: 0pt; margin-bottom: 0pt; font-size: 10.5pt; font-family: Arial; color: #212121; font-weight: 400; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-variant-numeric: normal; font-variant-east-asian: normal; text-decoration-line: none; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; vertical-align: baseline; white-space: pre-wrap">Thanks so much for your </span><span style="line-height: 1.38; background-color: transparent; margin-top: 0pt; margin-bottom: 0pt; font-size: 10.5pt; font-family: Arial; color: #000000; font-weight: 400; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-variant-numeric: normal; font-variant-east-asian: normal; text-decoration-line: none; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; vertical-align: baseline; white-space: pre-wrap">{{{sellerName}}}</span><span style="line-height: 1.38; background-color: transparent; margin-top: 0pt; margin-bottom: 0pt; font-size: 10.5pt; font-family: Arial; color: #212121; font-weight: 400; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-variant-numeric: normal; font-variant-east-asian: normal; text-decoration-line: none; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; vertical-align: baseline; white-space: pre-wrap"> {{{ type }}}!</span></div><div style="font-family: inherit; text-align: inherit"> </div><div style="font-family: inherit; text-align: inherit"><span style="line-height: 1.38; background-color: transparent; margin-top: 0pt; margin-bottom: 0pt; font-size: 10.5pt; font-family: Arial; color: #212121; font-weight: 400; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-variant-numeric: normal; font-variant-east-asian: normal; text-decoration-line: none; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; vertical-align: baseline; white-space: pre-wrap">Did you know that </span><span style="line-height: 1.38; background-color: transparent; margin-top: 0pt; margin-bottom: 0pt; font-size: 10.5pt; font-family: Arial; color: #000000; font-weight: 400; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-variant-numeric: normal; font-variant-east-asian: normal; text-decoration-line: none; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; vertical-align: baseline; white-space: pre-wrap">{{{sellerName}}}</span><span style="line-height: 1.38; background-color: transparent; margin-top: 0pt; margin-bottom: 0pt; font-size: 10.5pt; font-family: Arial; color: #212121; font-weight: 400; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-variant-numeric: normal; font-variant-east-asian: normal; text-decoration-line: none; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; vertical-align: baseline; white-space: pre-wrap"> has partnered with Greenspark to {{{ impactsTextPresent }}} in your name? </span></div><div style="font-family: inherit; text-align: inherit"> </div><div style="font-family: inherit; text-align: inherit"><span style="line-height: 1.38; background-color: transparent; margin-top: 0pt; margin-bottom: 0pt; font-size: 10.5pt; font-family: Arial; color: #3b755f; font-weight: 700; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-variant-numeric: normal; font-variant-east-asian: normal; text-decoration-line: none; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; vertical-align: baseline; white-space: pre-wrap">Check out your unique digital certificate showcasing the impact your {{{ type }}} has created below. </span></div><div style="font-family: inherit; text-align: inherit"> </div><div style="font-family: inherit; text-align: inherit"><span style="line-height: 1.38; background-color: transparent; margin-top: 0pt; margin-bottom: 0pt; font-size: 10.5pt; font-family: Arial; color: #212121; font-weight: 400; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-variant-numeric: normal; font-variant-east-asian: normal; text-decoration-line: none; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; vertical-align: baseline; white-space: pre-wrap">If you’d like to learn about the story behind your impact, see where it’s taking place, and gain deeper insight into what it means for the planet you can activate your personalised Greenspark dashboard. It’s completely free as a gift from us to you. Follow the link below to discover more!</span></div><div style="font-family: inherit; text-align: inherit"> </div><div style="font-family: inherit; text-align: inherit"><span style="line-height: 1.38; background-color: transparent; margin-top: 0pt; margin-bottom: 0pt; font-size: 10.5pt; font-family: Arial; color: #212121; font-weight: 400; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-variant-numeric: normal; font-variant-east-asian: normal; text-decoration-line: none; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; vertical-align: baseline; white-space: pre-wrap">Many thanks, </span></div><div style="font-family: inherit; text-align: inherit"> </div><div style="font-family: inherit; text-align: inherit"><span style="line-height: 1.38; background-color: transparent; margin-top: 0pt; margin-bottom: 0pt; font-size: 10.5pt; font-family: Arial; color: #212121; font-weight: 400; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-variant-numeric: normal; font-variant-east-asian: normal; text-decoration-line: none; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; vertical-align: baseline; white-space: pre-wrap">{{{sellerName}}} & Greenspark</span><br></div>'
isBodyCustom: false
isFooterHidden: false
isFooterHiddenCustom: false
isTotalImpactHidden: false
isTotalImpactHiddenCustom: false
statuses:
- status: disabled
initiatedAt: '2026-05-26T14:06:53.231Z'
initiatedBy: system
- accountId: ''
isCustom: false
type:
name: Customer update
template: update
trigger:
- byLoyaltyPoints
- offsetByPercentageOrder
- offsetBySpend
- offsetByStoreRevenue
- offsetPerOrder
- offsetPerProduct
- byPercentageOfPaidInvoice
- byPercentageOfRevenue
- bySpendOfPaidInvoice
- byTieredSpendOfPaidInvoice
- perPaidInvoice
- offsetPerSubscription
- offsetPerReview
- perCompletedForm
- perSelectedAnswer
- customerCartContribution
isTriggerCustom: false
schedule: null
isScheduleCustom: false
settings:
from:
name: null
domain: null
alias: '{{{ sellerName }}} x Greenspark'
isAliasCustom: false
subject: Your {{{type}}} with {{{sellerName}}} {{{impactsTextPast}}}. Track your impact here.
isSubjectCustom: false
preheader: Login to your Greenspark dashboard.
isPreheaderCustom: false
schedule:
startDate: '2026-05-26T14:06:53.231Z'
endDate: null
isEndDateCustom: false
content:
headerImage: http://res.cloudinary.com/dlilerh6s/image/upload/v1670515295/templates/abgf9boicpxujispedpy.png
isHeaderImageCustom: false
body: '<div style="font-family: inherit; text-align: inherit"><span style="font-family: tahoma, geneva, sans-serif; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: pre-wrap; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline; font-size: 14px; color: #3b755f"><strong>Hi {{{ firstName }}},</strong></span></div><div style="font-family: inherit; text-align: inherit"><br></div><div style="font-family: inherit; text-align: inherit"><span style="white-space: pre-wrap">Thanks again for your {{{ type }}}! </span><span style="color: #212121; font-family: tahoma, geneva, sans-serif; font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: pre-wrap; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline">{{{sellerName}}}</span><span style="white-space: pre-wrap"> have partnered with Greenspark to {{{ impactsTextPresent }}} in your name. </span><span style="white-space: pre-wrap; color: #3b755f"><strong>Login to your dashboard to track the impact of your actions.</strong></span></div>'
isBodyCustom: false
isFooterHidden: false
isFooterHiddenCustom: false
isTotalImpactHidden: false
isTotalImpactHiddenCustom: false
statuses:
- status: disabled
initiatedAt: '2026-05-26T14:06:53.231Z'
initiatedBy: system
- accountId: ''
isCustom: false
type:
name: Customer nudge
template: nudge
trigger: null
isTriggerCustom: false
schedule:
- 3
- 7
- 14
isScheduleCustom: false
settings:
from:
name: null
domain: null
alias: Greenspark Team
isAliasCustom: false
subject: Your Greenspark invitation is waiting!
isSubjectCustom: false
preheader: Claim your Greenspark dashboard.
isPreheaderCustom: false
schedule:
startDate: '2026-05-26T14:06:53.231Z'
endDate: null
isEndDateCustom: false
content:
headerImage: http://res.cloudinary.com/dlilerh6s/image/upload/v1670515295/templates/abgf9boicpxujispedpy.png
isHeaderImageCustom: false
body: '<div style="font-family: inherit; text-align: inherit"><span style="font-family: tahoma, geneva, sans-serif; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: pre-wrap; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline; font-size: 14px; color: #3b755f"><strong>Hi {{{ firstName }}},</strong></span></div><div style="font-family: inherit; text-align: inherit"><br></div><div style="font-family: inherit; text-align: inherit"><span style="color: #212121; font-family: tahoma, geneva, sans-serif; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: center; text-indent: 0px; text-transform: none; white-space: pre-wrap; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(249, 249, 249); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline; font-size: 14px">Your Greenspark invitation is waiting. Claim your dashboard to track your overall impact from your purchases, reviews and newsletter signups with participating Greenspark retailers.</span></div>'
isBodyCustom: false
isFooterHidden: false
isFooterHiddenCustom: false
isTotalImpactHidden: false
isTotalImpactHiddenCustom: false
statuses:
- status: disabled
initiatedAt: '2026-05-26T14:06:53.231Z'
initiatedBy: system
'400':
description: Bad request.
'401':
description: Provide your API key.
'403':
description: Please upgrade to a growth, premium or enterprise plan.
'404':
description: Not found.
security:
- access-key: []
summary: Fetch Templates Defaults
tags:
- Email
/v2/email/templates-defaults:
get:
description: Fetch templates defaults for email sending.
operationId: fetchTemplatesDefaultsV2
parameters: []
responses:
'200':
description: Template defaults has be
# --- truncated at 32 KB (73 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/greenspark/refs/heads/main/openapi/greenspark-email-api-openapi.yml