Skip to content

Personalize API Early Access

TIP

Access to our APIs is evaluated on a case-by-case basis. To find out if your use case is one that we support feel free to get in touch with the details of your project. partners@litmus.com

Litmus Personalize provides the ability to create dynamic content that can be embedded into an email. We offer several variations of these, which are referred to as "content types", and each type is configured and used slightly different; the type-specific documentation below covers the relevant details.

Using the Personalize API, you'll primarily be performing 2 functions on any content type: previewing and publishing. Previewing is intended to be used during the authoring process while adjusting parameters, and returns images to help visualize those adjustments. Publishing finalizes a piece of content and provides an artifact that can be permanently embedded into an email.

Templates

List all templates

GET https://api.litmus.com/v3/personalize/templates

Request

AttributeTypeDescription
filter[contentType]stringfilter list of templates by contentType
bash
curl https://api.litmus.com/v3/personalize/templates
curl https://api.litmus.com/v3/personalize/templates?filter[contentType]=timers

Response

AttributeTypeDescription
dataarraylist of templates
<template_n>.typestringtemplates
<template_n>.idstringtemplate identifier to use in other requests
<template_n>.attributes.contentTypestringcontent type for the template
<template_n>.attributes.colorsarraylist of configurable color attributes the template supports
json
{
    "data": [
        {
            "type": "templates",
            "id": "default_timer",
            "attributes": {
                "contentType": "timers",
                "colors": [
                    "text",
                    "background",
                    "label_text",
                    "digits_text"
                ]
            },
            "links": {
                "self": "https://api.litmus.com/v3/personalize/templates/default_timer"
            }
        },
        {
            "type": "templates",
            "id": "text",
            "attributes": {
                "contentType": "sentiment_trackers",
                "colors": [
                    "prompt",
                    "background",
                    "poll_option_text",
                    "option_background"
                ]
            },
            "links": {
                "self": "http://api.litmus.localhost:3000/v3/personalize/templates/text"
            }
        },
        # ... more templates
    ]
}

Get a template

GET https://api.litmus.com/v3/personalize/templates/:id

Request

bash
curl https://api.litmus.com/v3/personalize/templates/default_timer

Response

AttributeTypeDescription
typestringtemplates
idstringtemplate identifier to use in other requests
attributes.contentTypestringcontent type for the template
attributes.colorsarraylist of configurable color attributes the template supports
json
{
    "data": {
        "type": "templates",
        "id": "default_timer",
        "attributes": {
            "contentType": "timers",
            "colors": [
                "text",
                "background",
                "label_text",
                "digits_text"
            ]
        },
        "links": {
            "self": "https://api.litmus.com/v3/personalize/templates/default_timer"
        }
    }
}

Countdown timers

Preview

POST https://api.litmus.com/v3/personalize/timers/preview

Request

AttributeTypeDescription
templateIdstringtemplate identifier
countdown.timeISO 8601 timestamp (UTC)countdown target (should be future-dated)
expiration.messagestringdisplayed instead of the clock when the timer reaches zero
fallback.messagestringoptional message to display to Apple MPP-affected recipients
fontstringone of Montserrat, Open Sans, Roboto, Lato, Poppins, Noto Sans, Source Serif 4, Lora, PT Serif, Noto Serif, or Roboto Slab
colors.backgroundstringhex format color code for timer background
colors.label_textstringhex format color code for timer labels
colors.digits_textstringhex format color code for timer numbers
json
{
    "data": {
        "attributes": {
            "templateId": "default_timer",
            "countdown": {
                "time": "2024-02-09T00:00:00Z",
            },
            "expiration": {
                "message": "The sale has ended."
            },
            "fallback": {
                "message": "Sale ends on November 20th!"
            },
            "font": "Roboto",
            "colors": {
                "background": "#33A8CC",
                "label_text": "#FFFFFF",
                "digits_text": "#000000"
            }
        }
    }
}

Response

AttributeTypeDescription
idstringtimer identifier
typestringJSON API type declaration
attributes.*.image.hrefstringURL for timer image variation (expiration, fallback, timer)
attributes.*.image.typestringimage format for the associated url
json
{
    "data": {
        "id": "1",
        "type": "timers",
        "attributes": {
            "countdown": {
                "image": {
                    "href": "http://api.litmus.com/countdown_1",
                    "type": "image/png"
                }
            },
            "expiration": {
                "image": {
                    "href": "http://api.litmus.com/expiration_1",
                    "type": "image/png"
                }
            },
            "fallback": {
                "image": {
                    "href": "http://api.litmus.com/fallback_1",
                    "type": "image/png"
                }
            }
        }
    }
}

Publish

POST https://api.litmus.com/v3/personalize/timers/publish

TIP

The request body for publishing is the same used for previewing.

Request

AttributesTypeDescription
templateIdstringtemplate identifier
countdown.timeISO 8601 timestamp (UTC)countdown target (should be future-dated)
expiration.messagestringdisplayed when the timer reaches zero
fallback.messagestringoptional message to display to Apple MPP-affected recipients
fontstringone of Montserrat, Open Sans, Roboto, Lato, Poppins, Noto Sans, Source Serif 4, Lora, PT Serif, Noto Serif, or Roboto Slab
colors.backgroundstringhex format color code for timer background
colors.label_textstringhex format color code for timer labels
colors.digits_textstringhex format color code for timer numbers
json
{
    "data": {
        "attributes": {
            "templateId": "default_timer",
            "countdown": {
                "time": "2024-02-09T00:00:00Z",
            },
            "expiration": {
                "message": "The sale has ended."
            },
            "fallback": {
                "message": "Sale ends on November 20th!"
            },
            "font": "Roboto",
            "colors": {
                "background": "#33A8CC",
                "label_text": "#FFFFFF",
                "digits_text": "#000000"
            }
        }
    }

}

Response

AttributeTypeDescription
idstringtimer identifier
typestringJSON API type declaration
attributes.timer.image.hrefstringURL for timer image
attributes.timer.image.typestringimage format for the associated url, always image/gif
json
{
    "data": {
        "id": "1",
        "type": "timers",
        "attributes": {
            "timer": {
                "image": {
                    "href": "http://image.na.ca.litmus.com/t/timer_1.gif?exp=2024-02-09T02%3A00%3A00.0000000%2B00%3A00",
                    "type": "image/gif"
                }
            }
        }
    }
}

The attributes.timer.image.href URL returned when publishing supports overriding the following query string parameters using merge tags:

ParameterTypeDescription
expISO 8601 timestamp (UTC)countdown target (should be future-dated)

Progress bars

Preview

POST https://api.litmus.com/v3/personalize/progress-bars/preview

Request

AttributeTypeDescription
templateIdstringtemplate identifier
minimumValueintegerlower bound of progress range
maximumValueintegerupper bound of progress range
colors.backgroundstringhex format color code for background
colors.progressFillstringhex format color code for progress bar fill
colors.progressBackgroundstringhex format color code for area beneath the fill
colors.progressValuestringhex format color code for progress number value
colors.minimumValuestringhex format color code for minimum number value
colors.maximumValuestringhex format color code for maximum number value
preview.progressValueintegersets the progress amount used for this preview (should be between minimum/maximum_value)
json
{
    "data": {
        "attributes": {
            "templateId": "linear_progress_bar",
            "minimumValue": 0,
            "maximumValue": 100,
            "colors": {
                "background": "#FFFFFF",
                "progressFill": "#40DC59",
                "progressBackground": "#EEEEEE",
                "progressValue": "#333333",
                "minimumValue": "#333333",
                "maximumValue": "#333333"
            },
            "preview": {
                "progressValue": 75
            }
        }
    }
}

Response

AttributeTypeDescription
idstringprogress bar identifier
typestringJSON API type declaration
attributes.image.hrefstringURL for progress bar preview image
attributes.image.typestringimage format for the associated url
json
{
    "data": {
        "id": "1",
        "type": "progress_bars",
        "attributes": {
            "image": {
                "href": "http://api.litmus.com/progress_bar_1",
                "type": "image/png"
            }
        }
    }
}

Publish

POST https://api.litmus.com/v3/personalize/progress-bars/publish

TIP

The request body for publishing is the same used for previewing, with the exception of preview.

Request

AttributesTypeDescription
templateIdstringtemplate identifier
minimumValueintegerlower bound of progress range
maximumValueintegerupper bound of progress range
colors.backgroundstringhex format color code for background
colors.progressFillstringhex format color code for progress bar fill
colors.progressBackgroundstringhex format color code for area beneath the fill
colors.progressValuestringhex format color code for progress number value
colors.minimumValuestringhex format color code for minimum number value
colors.maximumValuestringhex format color code for maximum number value
json
{
    "data": {
        "attributes": {
            "templateId": "linear_progress_bar",
            "minimumValue": 0,
            "maximumValue": 100,
            "colors": {
                "background": "#FFFFFF",
                "progressFill": "#40DC59",
                "progressBackground": "#EEEEEE",
                "progressValue": "#333333",
                "minimumValue": "#333333",
                "maximumValue": "#333333"
            }
        }
    }
}

Response

AttributeTypeDescription
idstringtimer identifier
typestringJSON API type declaration
attributes.image.hrefstringURL for progress bar image
attributes.image.typestringimage format for the associated url
json
{
    "data": {
        "id": "1",
        "type": "progress_bars",
        "attribute": {
            "image": {
                "href": "http://image.na.ca.litmus.com/pb/progress_bar_1.png?min=0&max=100&cur=MERGE_YOUR_VALUE",
                "type": "image/png"
            }
        }
    }
}

The attributes.image.href URL returned when publishing supports overriding the following query string parameters using merge tags:

ParameterTypeDescription
minintegerlower bound of progress range
maxintegerupper bound of progress range
curintegersets the progress amount (should be between minimum/maximum_value)

Sentiment trackers

Preview

POST https://api.litmus.com/v3/personalize/sentiment-trackers/preview

Request

AttributeTypeDescription
templateIdstringtemplate identifier
colors.resultsValuestringhex format color code for result values
json
{
    "data": {
        "attributes": {
            "templateId": "emoji_sentiment_tracker",
            "colors": {
                "resultsValue": "#000000"
            }
        }
    }
}

Response

AttributeTypeDescription
idstringsentiment tracker identifier
typestringJSON API type declaration
attributes.<option_n>.image.hrefstringURL for sentiment tracker option
attributes.<option_n>.image.typestringimage format for sentiment tracker option
json
{
    "data": {
        "id": "1",
        "type": "sentiment_trackers",
        "attributes": {
            "option_1": {
                "image": {
                    "href": "http://api.litmus.com/sentiment_tracker_1_option_1",
                    "type": "image/png"
                }
            },
            "option_2": {
                "image": {
                    "href": "http://api.litmus.com/sentiment_tracker_1_option_2",
                    "type": "image/png"
                }
            },
            "option_3": {
                "image": {
                    "href": "http://api.litmus.com/sentiment_tracker_1_option_3",
                    "type": "image/png"
                }
            }
        }
    }
}

Publish

POST https://api.litmus.com/v3/personalize/sentiment-trackers/publish

Request

AttributeTypeDescription
templateIdstringtemplate identifier
urlintegerwhere we'll redirect users after voting
colors.resultsValuestringhex format color code for result values
json
{
    "data": {
        "attributes": {
            "templateId": "emoji_sentiment_tracker",
            "url": "https://litmus.com",
            "colors": {
                "resultsValue": "#000000"
            }
        }
    }
}

Response

AttributeTypeDescription
idstringsentiment tracker identifier
typestringJSON API type declaration
attributes.<option_n>.image.hrefstringURL for sentiment tracker option
attributes.<option_n>.image.typestringimage format for sentiment tracker option
attributes.<option_n>.vote.hrefstringvote URL for sentiment tracker option
attributes.<option_n>.vote.hrefstringvote URL format sentiment tracker option, always text/html
json
{
    "data": {
        "id": 1,
        "type": "sentiment_trackers",
        "attributes": {
            "option_1": {
                "image": {
                    "href": "http://api.litmus.com/sentiment_tracker_1_option_1",
                    "type": "image/png"
                },
                "vote": {
                    "href": "https://click.litmus.com/sentiment_tracker_1_option_1",
                    "type": "text/html"
                }
            },
            "option_2": {
                "image": {
                    "href": "http://api.litmus.com/sentiment_tracker_1_option_2",
                    "type": "image/png"
                },
                "vote": {
                    "href": "https://click.litmus.com/sentiment_tracker_1_option_2",
                    "type": "text/html"
                }
            },
            "option_3": {
                "image": {
                    "href": "http://api.litmus.com/sentiment_tracker_1_option_3",
                    "type": "image/png"
                },
                "vote": {
                    "href": "https://click.litmus.com/sentiment_tracker_1_option_3",
                    "type": "text/html"
                }
            }
        }
    }
}

Report

GET https://api.litmus.com/v3/personalize/sentiment-trackers/:id/report

Request

AttributeTypeDescription
idstringsentiment tracker identifier

Response

AttributeTypeDescription
totalClicksintegertotal clicks
attributes.<option_n>.clickCountstringnumber of clicks for this option
attributes.<option_n>.clickPercentstringpercentage of clicks for this option
json
{
  "data": {
    "type": "sentiment_trackers_report",
    "id": "3",
    "attributes": {
      "totalClicks": 1234,
      "option_1": {
        "clickCount": 1000,
        "clickPercent": 81
      },
      "option_2": {
        "clickCount": 234,
        "clickPercent": 19
      }
    }
  }
}

Conditional Images

Preview

POST https://api.litmus.com/v3/personalize/conditional-images/preview

Request

AttributeTypeDescription
templateIdstringtemplate identifier
mergeTagstringthe value of the parameter that will be compared against the rules
parameterNamestringthe name of the parameter that will be compared against the rules
rules.imageUrlstringURL of the image that will be returned for the rule
rules.operatorstringcomparison operator. Must be one of ["equals", "does not equal", "contains", "does not contain", "empty", "is not empty", "is in", "is not in"]
rules.valuestringthe value that will be compared against the mergeTag
rules.clickUrlstringURL that the image will navigate to when clicked by the end user
fallback.imageUrlstringURL of the fallback image
fallback.clickUrlstringURL that the fallback image will navigate to when clicked by the end user
json
{
    "data": {
        "attributes": {
            "parameterName": "cake_preference",
            "mergeTag": "vanilla",
            "templateId": "default_conditional_images",
            "rules": [
                {
                    "imageUrl": "https://www.litmus.com/wp-content/themes/litmus/dist/images/litmus-logo.svg",
                    "operator": "equals", 
                    "value": "Vanilla",
                    "clickUrl": "http://example.com/vanilla"
                },
                {
                    "imageUrl": "https://www.litmus.com/wp-content/themes/litmus/dist/images/litmus-logo-reversed.svg",
                    "operator": "equals", 
                    "value": "Chocolate",
                    "clickUrl": "http://example.com/chocolate"
                }
            ],
            "fallback": {
                "imageUrl": "https://www.litmus.com/wp-content/uploads/2024/03/hp_mobilesuk.png",
                "clickUrl": "http://example.com/fallback"
            }
        }
    }
}

Response

AttributeTypeDescription
idstringconditional image identifier
typestringJSON API type declaration
attributes.image.hrefstringURL for preview image
attributes.image.typestringimage format for the associated URL
attributes.clickUrlstringURL that the image will navigate to when clicked by the user
json
{
    "data": {
        "type": "conditional_images",
        "id": "1",
        "attributes": {
            "image": {
                "type": "image/png",
                "href": "http://api.litmus.com/litmus-logo.svg"
            },
            "clickUrl": "http://example.com/vanilla"
        }
    }
}

Publish

POST https://api.litmus.com/v3/personalize/conditional-images/publish

Request

AttributeTypeDescription
templateIdstringtemplate identifier
parameterNamestringthe name of the parameter that will be compared against the rules
rules.imageUrlstringURL of the image that will be returned for the rule
rules.operatorstringcomparison operator. Must be one of ["equals", "does not equal", "contains", "does not contain", "empty", "is not empty", "is in", "is not in"]
rules.valuestringthe value that will be compared against the mergeTag that is passed in via the URL params
rules.clickUrlstringURL that the image will navigate to when clicked by the end user
fallback.imageUrlstringURL of the fallback image
fallback.clickUrlstringURL that the fallback image will navigate to when clicked by the end user
json
{
    "data": {
        "attributes": {
            "parameterName": "cheese",
            "templateId": "default_conditional_images",
            "rules": [
                {
                    "imageUrl": "https://www.litmus.com/wp-content/themes/litmus/dist/images/litmus-logo.svg",
                    "operator": "equals", 
                    "value": "swiss",
                    "clickUrl": "http://example.com/swiss"
                },
                {
                    "imageUrl": "https://www.litmus.com/wp-content/themes/litmus/dist/images/litmus-logo-reversed.svg",
                    "operator": "equals", 
                    "value": "cheddar",
                    "clickUrl": "http://example.com/cheddar"
                }
            ],
            "fallback":{
                "imageUrl": "https://www.litmus.com/wp-content/uploads/2024/03/hp_mobilesuk.png",
                "clickUrl": "http://example.com/fallback"
            }
        }
    }
}

Response

AttributeTypeDescription
idstringconditional image identifier
typestringJSON API type declaration
attributes.image.hrefstringURL for preview image
attributes.image.typestringimage format for the associated URL
attributes.clickUrlstringURL that the image will navigate to when clicked by the user
json
{
    "data": {
        "type": "conditional_images",
        "id": "1",
        "attributes": {
            "image": {
                "type": "image/png",
                "href": "https://image.na.ca.litmustest.com/ci/4tlp0c37f9a462juv1bzukoj4.png?cheese=REPLACE_WITH_YOUR_MERGE_TAG"
            },
            "clickUrl": "https://click.na.ca.litmustest.com/ci/4tlp0c37f9a462juv1bzukoj4?cheese=REPLACE_WITH_YOUR_MERGE_TAG"
        }
    }
}

Calendar Events

Preview

POST https://api.litmus.com/v3/personalize/calendar-events/preview

Request

AttributeTypeDescription
templateIdstringtemplate identifier
event.titlestringthe title of the event
event.startDatetimestringdatetime format start time of the event in UTC timezone
event.endDatetimestringdatetime format end time of the event in UTC timezone, only if allDay is false
event.descriptionstringthe description of the event
event.locationstringthe location of the event
event.allDaybooleanwill the event be all day (no start or end time)
button.textstringthe text that will appear in the button image
button.cornerRadiusintegerthe radius of the corner in px
button.fontFamilystringone of Open Sans,
Montserrat, Nunito, Raleway, Oswald, Roboto, Lato, Poppins, Noto Sans, Merriweather, Playfair Display, Roboto Slab, Source Serif 4, Lora, PT Serif, Noto Serif, Kalam, Dancing Script, Amatic SC, Permanent Marker, Indie Flower, Sacramento, Source Code Pro, Graduate, Special, Elite, Cabin Sketch, Creepster Bangers, or Emilys Candy
button.fontSizeintegerthe size of the font
button.borderWidthintegerthe width of the border
button.widthintegerthe width of the button image
button.heightintegerthe height of the button image
button.colors.backgroundstringhex format color of the button image background
button.colors.textstringhex format color of the button image text
button.colors.borderstringhex format color of the button image border
json
{
    "data": {
        "attributes": {
            "templateId": "default_calendar_event",
            "event": {
                "title": "Tea Time!",
                "endDatetime": "2030-09-16 16:00:00",
                "startDatetime": "2030-09-16 15:00:00",
                "description": "<h1>Join us for ☕️ tea! ☕️</h1><p>Connect with fellow tea enthusiasts...</p>",
                "location": "10 Downing St, London SW1A 2AA",
                "allDay": false
            },
            "button": {
                "text": "Accept Invite",
                "cornerRadius": 8,
                "fontFamily": "lato",
                "fontSize": 18,
                "borderWidth": 2,
                "width": 300,
                "height": 60,
                "colors": {
                    "background": "#40b7bf",
                    "text": "#143452",
                    "border": "#000000"
                }
            }
        }
    }
}

Response

AttributeTypeDescription
idstringcalendar event identifier
typestringJSON API type declaration
attributes.image.hrefstringURL for preview image
attributes.image.typestringimage format for the associated URL
attributes.icsUrlstringURL for the ics file download
attributes.googleUrlstringURL link to the google calendar invite
attributes.outlookUrlstringURL link to the outlook calendar invite
attributes.appleUrlstringURL link to the apple calendar ics file download
attributes.aolUrlstringURL link to the aol calendar invite
attributes.yahooUrlstringURL link to the yahoo calendar invite
json
{
    "data": {
        "type": "calendar_events",
        "id": "574",
        "attributes": {
            "image": {
                "type": "image/png",
                "href": "https://litmus-personalize-public-stg-use2.s3.amazonaws.com/previews/c8buuzll12xe6x6g62u6hw9o5.png"
            },
            "icsUrl": "https://litmus-personalize-public-stg-use2.s3.amazonaws.com/previews/qto09o3jndeyoeriyyprifsd3.ics",
            "googleUrl": "https://calendar.google.com/calendar/render?action=TEMPLATE&dates=20300916T150000Z%2F20300916T160000Z&text=Tea+Time!&details=%3ch1%3eJoin+us+for+%e2%98%95%ef%b8%8f+tea!+%e2%98%95%ef%b8%8f%3c%2fh1%3e%3cp%3eConnect+with+fellow+tea+enthusiasts...%3c%2fp%3e&location=10+Downing+St%2c+London+SW1A+2AA",
            "outlookUrl": "https://outlook.live.com/owa/?path=/calendar/action/compose&rru=addevent&startdt=2030-09-16T15%3a00%3a00Z&enddt=2030-09-16T16%3a00%3a00Z&subject=Tea+Time!&body=%3ch1%3eJoin+us+for+%e2%98%95%ef%b8%8f+tea!+%e2%98%95%ef%b8%8f%3c%2fh1%3e%3cp%3eConnect+with+fellow+tea+enthusiasts...%3c%2fp%3e&location=10+Downing+St%2c+London+SW1A+2AA&allday=False",
            "appleUrl": "https://litmus-personalize-public-stg-use2.s3.amazonaws.com/previews/qto09o3jndeyoeriyyprifsd3.ics",
            "aolUrl": "https://calendar.aol.com/?st=20300916T150000Z&et=20300916T160000Z&title=Tea+Time!&desc=%3ch1%3eJoin+us+for+%e2%98%95%ef%b8%8f+tea!+%e2%98%95%ef%b8%8f%3c%2fh1%3e%3cp%3eConnect+with+fellow+tea+enthusiasts...%3c%2fp%3e&in_loc=10+Downing+St%2c+London+SW1A+2AA&dur=&v=60",
            "yahooUrl": "https://calendar.yahoo.com/?st=20300916T150000Z&et=20300916T160000Z&title=Tea+Time!&desc=%3ch1%3eJoin+us+for+%e2%98%95%ef%b8%8f+tea!+%e2%98%95%ef%b8%8f%3c%2fh1%3e%3cp%3eConnect+with+fellow+tea+enthusiasts...%3c%2fp%3e&in_loc=10+Downing+St%2c+London+SW1A+2AA&dur=&v=60"
        }
    }
}

Publish

POST https://api.litmus.com/v3/personalize/calendar-events/publish

Request

AttributeTypeDescription
templateIdstringtemplate identifier
event.titlestringthe title of the event
event.startDatetimestringdatetime format start time of the event in UTC timezone
event.endDatetimestringdatetime format end time of the event in UTC timezone, only if allDay is false
event.descriptionstringthe description of the event
event.locationstringthe location of the event
event.allDaybooleanwill the event be an all day (no start or end time)
button.textstringthe text that will appear in the button image
button.cornerRadiusintegerthe radius of the corner in px
button.fontFamilystringone of Open Sans,
Montserrat, Nunito, Raleway, Oswald, Roboto, Lato, Poppins, Noto Sans, Merriweather, Playfair Display, Roboto Slab, Source Serif 4, Lora, PT Serif, Noto Serif, Kalam, Dancing Script, Amatic SC, Permanent Marker, Indie Flower, Sacramento, Source Code Pro, Graduate, Special, Elite, Cabin Sketch, Creepster Bangers, or Emilys Candy
button.fontSizeintegerthe size of the font
button.borderWidthintegerthe width of the border
button.widthintegerthe width of the button image
button.heightintegerthe height of the button image
button.colors.backgroundstringhex format color of the button image background
button.colors.textstringhex format color of the button image text
button.colors.borderstringhex format color of the button image border
json
{
    "data": {
        "attributes": {
            "templateId": "default_calendar_event",
            "event": {
                "title": "Tea Time!",
                "endDatetime": "2030-09-16 16:00:00",
                "startDatetime": "2030-09-16 15:00:00",
                "description": "<h1>Join us for ☕️ tea! ☕️</h1><p>Connect with fellow tea enthusiasts...</p>",
                "location": "10 Downing St, London SW1A 2AA",
                "allDay": false
            },
            "button": {
                "text": "Accept Invite",
                "cornerRadius": 8,
                "fontFamily": "lato",
                "fontSize": 18,
                "borderWidth": 2,
                "width": 300,
                "height": 60,
                "colors": {
                    "background": "#40b7bf",
                    "text": "#143452",
                    "border": "#000000"
                }
            }
        }
    }
}

Response

AttributeTypeDescription
idstringcalendar event identifier
typestringJSON API type declaration
attributes.image.hrefstringURL for preview image
attributes.image.typestringimage format for the associated URL
attributes.icsUrlstringURL for the ics file download
attributes.googleUrlstringURL link to the google calendar invite
attributes.outlookUrlstringURL link to the outlook calendar invite
attributes.appleUrlstringURL link to the apple calendar ics file download
attributes.aolUrlstringURL link to the aol calendar invite
attributes.yahooUrlstringURL link to the yahoo calendar invite
json
{
    "data": {
        "type": "calendar_events",
        "id": "575",
        "attributes": {
            "image": {
                "type": "image/png",
                "href": "https://image.na.ca.litmustest.com/ce/78ypy21w2sgjod8r9pst0iaj7.png?tl=Tea%20Time!&st=2030-09-16T15%3A00%3A00.0000000%2B00%3A00&et=2030-09-16T16%3A00%3A00.0000000%2B00%3A00&ad=False&des=%3Ch1%3EJoin%20us%20for%20%E2%98%95%EF%B8%8F%20tea!%20%E2%98%95%EF%B8%8F%3C%2Fh1%3E%3Cp%3EConnect%20with%20fellow%20tea%20enthusiasts...%3C%2Fp%3E&loc=10%20Downing%20St,%20London%20SW1A%202AA"
            },
            "icsUrl": "https://click.na.ca.litmustest.com/ce/78ypy21w2sgjod8r9pst0iaj7/ics?tl=Tea%20Time!&st=2030-09-16T15%3A00%3A00.0000000%2B00%3A00&et=2030-09-16T16%3A00%3A00.0000000%2B00%3A00&ad=False&des=%3Ch1%3EJoin%20us%20for%20%E2%98%95%EF%B8%8F%20tea!%20%E2%98%95%EF%B8%8F%3C%2Fh1%3E%3Cp%3EConnect%20with%20fellow%20tea%20enthusiasts...%3C%2Fp%3E&loc=10%20Downing%20St,%20London%20SW1A%202AA",
            "googleUrl": "https://click.na.ca.litmustest.com/ce/78ypy21w2sgjod8r9pst0iaj7/google?tl=Tea%20Time!&st=2030-09-16T15%3A00%3A00.0000000%2B00%3A00&et=2030-09-16T16%3A00%3A00.0000000%2B00%3A00&ad=False&des=%3Ch1%3EJoin%20us%20for%20%E2%98%95%EF%B8%8F%20tea!%20%E2%98%95%EF%B8%8F%3C%2Fh1%3E%3Cp%3EConnect%20with%20fellow%20tea%20enthusiasts...%3C%2Fp%3E&loc=10%20Downing%20St,%20London%20SW1A%202AA",
            "outlookUrl": "https://click.na.ca.litmustest.com/ce/78ypy21w2sgjod8r9pst0iaj7/outlook?tl=Tea%20Time!&st=2030-09-16T15%3A00%3A00.0000000%2B00%3A00&et=2030-09-16T16%3A00%3A00.0000000%2B00%3A00&ad=False&des=%3Ch1%3EJoin%20us%20for%20%E2%98%95%EF%B8%8F%20tea!%20%E2%98%95%EF%B8%8F%3C%2Fh1%3E%3Cp%3EConnect%20with%20fellow%20tea%20enthusiasts...%3C%2Fp%3E&loc=10%20Downing%20St,%20London%20SW1A%202AA",
            "appleUrl": "https://click.na.ca.litmustest.com/ce/78ypy21w2sgjod8r9pst0iaj7/ics?tl=Tea%20Time!&st=2030-09-16T15%3A00%3A00.0000000%2B00%3A00&et=2030-09-16T16%3A00%3A00.0000000%2B00%3A00&ad=False&des=%3Ch1%3EJoin%20us%20for%20%E2%98%95%EF%B8%8F%20tea!%20%E2%98%95%EF%B8%8F%3C%2Fh1%3E%3Cp%3EConnect%20with%20fellow%20tea%20enthusiasts...%3C%2Fp%3E&loc=10%20Downing%20St,%20London%20SW1A%202AA",
            "aolUrl": "https://click.na.ca.litmustest.com/ce/78ypy21w2sgjod8r9pst0iaj7/aol?tl=Tea%20Time!&st=2030-09-16T15%3A00%3A00.0000000%2B00%3A00&et=2030-09-16T16%3A00%3A00.0000000%2B00%3A00&ad=False&des=%3Ch1%3EJoin%20us%20for%20%E2%98%95%EF%B8%8F%20tea!%20%E2%98%95%EF%B8%8F%3C%2Fh1%3E%3Cp%3EConnect%20with%20fellow%20tea%20enthusiasts...%3C%2Fp%3E&loc=10%20Downing%20St,%20London%20SW1A%202AA",
            "yahooUrl": "https://click.na.ca.litmustest.com/ce/78ypy21w2sgjod8r9pst0iaj7/yahoo?tl=Tea%20Time!&st=2030-09-16T15%3A00%3A00.0000000%2B00%3A00&et=2030-09-16T16%3A00%3A00.0000000%2B00%3A00&ad=False&des=%3Ch1%3EJoin%20us%20for%20%E2%98%95%EF%B8%8F%20tea!%20%E2%98%95%EF%B8%8F%3C%2Fh1%3E%3Cp%3EConnect%20with%20fellow%20tea%20enthusiasts...%3C%2Fp%3E&loc=10%20Downing%20St,%20London%20SW1A%202AA"
        }
    }
}