Appearance
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
Attribute | Type | Description |
---|---|---|
filter[contentType] | string | filter 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
Attribute | Type | Description |
---|---|---|
data | array | list of templates |
<template_n>.type | string | templates |
<template_n>.id | string | template identifier to use in other requests |
<template_n>.attributes.contentType | string | content type for the template |
<template_n>.attributes.colors | array | list 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
Attribute | Type | Description |
---|---|---|
type | string | templates |
id | string | template identifier to use in other requests |
attributes.contentType | string | content type for the template |
attributes.colors | array | list 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
Attribute | Type | Description |
---|---|---|
templateId | string | template identifier |
countdown.time | ISO 8601 timestamp (UTC) | countdown target (should be future-dated) |
expiration.message | string | displayed instead of the clock when the timer reaches zero |
fallback.message | string | optional message to display to Apple MPP-affected recipients |
font | string | one of Montserrat , Open Sans , Roboto , Lato , Poppins , Noto Sans , Source Serif 4 , Lora , PT Serif , Noto Serif , or Roboto Slab |
colors.background | string | hex format color code for timer background |
colors.label_text | string | hex format color code for timer labels |
colors.digits_text | string | hex 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
Attribute | Type | Description |
---|---|---|
id | string | timer identifier |
type | string | JSON API type declaration |
attributes.*.image.href | string | URL for timer image variation (expiration, fallback, timer) |
attributes.*.image.type | string | image 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
Attributes | Type | Description |
---|---|---|
templateId | string | template identifier |
countdown.time | ISO 8601 timestamp (UTC) | countdown target (should be future-dated) |
expiration.message | string | displayed when the timer reaches zero |
fallback.message | string | optional message to display to Apple MPP-affected recipients |
font | string | one of Montserrat , Open Sans , Roboto , Lato , Poppins , Noto Sans , Source Serif 4 , Lora , PT Serif , Noto Serif , or Roboto Slab |
colors.background | string | hex format color code for timer background |
colors.label_text | string | hex format color code for timer labels |
colors.digits_text | string | hex 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
Attribute | Type | Description |
---|---|---|
id | string | timer identifier |
type | string | JSON API type declaration |
attributes.timer.image.href | string | URL for timer image |
attributes.timer.image.type | string | image 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:
Parameter | Type | Description |
---|---|---|
exp | ISO 8601 timestamp (UTC) | countdown target (should be future-dated) |
Progress bars
Preview
POST
https://api.litmus.com/v3/personalize/progress-bars/preview
Request
Attribute | Type | Description |
---|---|---|
templateId | string | template identifier |
minimumValue | integer | lower bound of progress range |
maximumValue | integer | upper bound of progress range |
colors.background | string | hex format color code for background |
colors.progressFill | string | hex format color code for progress bar fill |
colors.progressBackground | string | hex format color code for area beneath the fill |
colors.progressValue | string | hex format color code for progress number value |
colors.minimumValue | string | hex format color code for minimum number value |
colors.maximumValue | string | hex format color code for maximum number value |
preview.progressValue | integer | sets 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
Attribute | Type | Description |
---|---|---|
id | string | progress bar identifier |
type | string | JSON API type declaration |
attributes.image.href | string | URL for progress bar preview image |
attributes.image.type | string | image 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
Attributes | Type | Description |
---|---|---|
templateId | string | template identifier |
minimumValue | integer | lower bound of progress range |
maximumValue | integer | upper bound of progress range |
colors.background | string | hex format color code for background |
colors.progressFill | string | hex format color code for progress bar fill |
colors.progressBackground | string | hex format color code for area beneath the fill |
colors.progressValue | string | hex format color code for progress number value |
colors.minimumValue | string | hex format color code for minimum number value |
colors.maximumValue | string | hex 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
Attribute | Type | Description |
---|---|---|
id | string | timer identifier |
type | string | JSON API type declaration |
attributes.image.href | string | URL for progress bar image |
attributes.image.type | string | image 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:
Parameter | Type | Description |
---|---|---|
min | integer | lower bound of progress range |
max | integer | upper bound of progress range |
cur | integer | sets the progress amount (should be between minimum/maximum_value ) |
Sentiment trackers
Preview
POST
https://api.litmus.com/v3/personalize/sentiment-trackers/preview
Request
Attribute | Type | Description |
---|---|---|
templateId | string | template identifier |
colors.resultsValue | string | hex format color code for result values |
json
{
"data": {
"attributes": {
"templateId": "emoji_sentiment_tracker",
"colors": {
"resultsValue": "#000000"
}
}
}
}
Response
Attribute | Type | Description |
---|---|---|
id | string | sentiment tracker identifier |
type | string | JSON API type declaration |
attributes.<option_n>.image.href | string | URL for sentiment tracker option |
attributes.<option_n>.image.type | string | image 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
Attribute | Type | Description |
---|---|---|
templateId | string | template identifier |
url | integer | where we'll redirect users after voting |
colors.resultsValue | string | hex format color code for result values |
json
{
"data": {
"attributes": {
"templateId": "emoji_sentiment_tracker",
"url": "https://litmus.com",
"colors": {
"resultsValue": "#000000"
}
}
}
}
Response
Attribute | Type | Description |
---|---|---|
id | string | sentiment tracker identifier |
type | string | JSON API type declaration |
attributes.<option_n>.image.href | string | URL for sentiment tracker option |
attributes.<option_n>.image.type | string | image format for sentiment tracker option |
attributes.<option_n>.vote.href | string | vote URL for sentiment tracker option |
attributes.<option_n>.vote.href | string | vote 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
Attribute | Type | Description |
---|---|---|
id | string | sentiment tracker identifier |
Response
Attribute | Type | Description |
---|---|---|
totalClicks | integer | total clicks |
attributes.<option_n>.clickCount | string | number of clicks for this option |
attributes.<option_n>.clickPercent | string | percentage 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
Attribute | Type | Description |
---|---|---|
templateId | string | template identifier |
mergeTag | string | the value of the parameter that will be compared against the rules |
parameterName | string | the name of the parameter that will be compared against the rules |
rules.imageUrl | string | URL of the image that will be returned for the rule |
rules.operator | string | comparison operator. Must be one of ["equals", "does not equal", "contains", "does not contain", "empty", "is not empty", "is in", "is not in"] |
rules.value | string | the value that will be compared against the mergeTag |
rules.clickUrl | string | URL that the image will navigate to when clicked by the end user |
fallback.imageUrl | string | URL of the fallback image |
fallback.clickUrl | string | URL 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
Attribute | Type | Description |
---|---|---|
id | string | conditional image identifier |
type | string | JSON API type declaration |
attributes.image.href | string | URL for preview image |
attributes.image.type | string | image format for the associated URL |
attributes.clickUrl | string | URL 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
Attribute | Type | Description |
---|---|---|
templateId | string | template identifier |
parameterName | string | the name of the parameter that will be compared against the rules |
rules.imageUrl | string | URL of the image that will be returned for the rule |
rules.operator | string | comparison operator. Must be one of ["equals", "does not equal", "contains", "does not contain", "empty", "is not empty", "is in", "is not in"] |
rules.value | string | the value that will be compared against the mergeTag that is passed in via the URL params |
rules.clickUrl | string | URL that the image will navigate to when clicked by the end user |
fallback.imageUrl | string | URL of the fallback image |
fallback.clickUrl | string | URL 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
Attribute | Type | Description |
---|---|---|
id | string | conditional image identifier |
type | string | JSON API type declaration |
attributes.image.href | string | URL for preview image |
attributes.image.type | string | image format for the associated URL |
attributes.clickUrl | string | URL 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
Attribute | Type | Description |
---|---|---|
templateId | string | template identifier |
event.title | string | the title of the event |
event.startDatetime | string | datetime format start time of the event in UTC timezone |
event.endDatetime | string | datetime format end time of the event in UTC timezone, only if allDay is false |
event.description | string | the description of the event |
event.location | string | the location of the event |
event.allDay | boolean | will the event be all day (no start or end time) |
button.text | string | the text that will appear in the button image |
button.cornerRadius | integer | the radius of the corner in px |
button.fontFamily | string | one 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.fontSize | integer | the size of the font |
button.borderWidth | integer | the width of the border |
button.width | integer | the width of the button image |
button.height | integer | the height of the button image |
button.colors.background | string | hex format color of the button image background |
button.colors.text | string | hex format color of the button image text |
button.colors.border | string | hex 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
Attribute | Type | Description |
---|---|---|
id | string | calendar event identifier |
type | string | JSON API type declaration |
attributes.image.href | string | URL for preview image |
attributes.image.type | string | image format for the associated URL |
attributes.icsUrl | string | URL for the ics file download |
attributes.googleUrl | string | URL link to the google calendar invite |
attributes.outlookUrl | string | URL link to the outlook calendar invite |
attributes.appleUrl | string | URL link to the apple calendar ics file download |
attributes.aolUrl | string | URL link to the aol calendar invite |
attributes.yahooUrl | string | URL 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
Attribute | Type | Description |
---|---|---|
templateId | string | template identifier |
event.title | string | the title of the event |
event.startDatetime | string | datetime format start time of the event in UTC timezone |
event.endDatetime | string | datetime format end time of the event in UTC timezone, only if allDay is false |
event.description | string | the description of the event |
event.location | string | the location of the event |
event.allDay | boolean | will the event be an all day (no start or end time) |
button.text | string | the text that will appear in the button image |
button.cornerRadius | integer | the radius of the corner in px |
button.fontFamily | string | one 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.fontSize | integer | the size of the font |
button.borderWidth | integer | the width of the border |
button.width | integer | the width of the button image |
button.height | integer | the height of the button image |
button.colors.background | string | hex format color of the button image background |
button.colors.text | string | hex format color of the button image text |
button.colors.border | string | hex 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
Attribute | Type | Description |
---|---|---|
id | string | calendar event identifier |
type | string | JSON API type declaration |
attributes.image.href | string | URL for preview image |
attributes.image.type | string | image format for the associated URL |
attributes.icsUrl | string | URL for the ics file download |
attributes.googleUrl | string | URL link to the google calendar invite |
attributes.outlookUrl | string | URL link to the outlook calendar invite |
attributes.appleUrl | string | URL link to the apple calendar ics file download |
attributes.aolUrl | string | URL link to the aol calendar invite |
attributes.yahooUrl | string | URL 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"
}
}
}