Fetching personalized HTML
Your server or app can easily retrieve content from Fresh Relevance for use on your site by making an HTTP GET request for each required piece of content. This can then be incorporated into the mobile app or web page. The content can be retrieved either in JSON format or in HTML format.
The HTML format can be merged into your page's markup where needed.
In JSON format, information such as the list of items in a recommendation block is returned. You could use these to drive other types of content on the webpage.
Learn more about key concepts
Ensure you have read and understood the Fresh Relevance Key Concepts as this is essential to understanding how the product and APIs work.
Struggling to get the correct URL to get a slot
To find the specific URL for a Slot stored in your account:
- Go to Content > Slots.
- Select the Web Personalization tab.
- Select the Slot you want, then select the Use icon.
- The URL to request that slot is shown under Feed URL.
Fetching content
Single slot
You can easily fetch the content of a single slot using the Content API and the Get slot call
You need to replace:
Your content serving domain
with the correct domain.
To find this, expand the User menu, then go to Settings > System configuration > Custom domains and copy the domain from the Content Serving URL, for example, c8.dycdn.net
Your account id
with your account ID.
To get your account ID from Fresh Relevance, expand the Settings menu and copy the Account ID e.g.

Slot id
with the slot's ID, you want the content for.
API token
with a Dynamic Content API token with read permission for content; you can find out how to create and edit API access tokens here.
Required format
with one of the following options:
Format | Description |
---|---|
html | Returns the SmartBlock selected by the Slot formatted as HTML. |
blockimage | Returns the SmartBlock selected by the Slot formatted as an image. |
dynamichtml | Returns open-time HTML. Note: Not needed for server-side personalization. |
full | Returns everything as a JSON container, with HTML inside, plus metadata. |
compact | Returns everything as a JSON container, matching items inside items, plus metadata. Useful for Recommendations to return product IDs without the accompanying HTML. |
appjson | Returns everything as a JSON container, with HTML inside, matching items inside items, plus metadata. |
Example format responses:
<table cellspacing="0" cellpadding="0" border="0" style="width: 600px;" align="center">
<tr>
<td class="imagecontainer" data-imageindex="0" style="border-radius: 0px;
padding: 0px;
text-align: center;
background-color: #ffffff;
">
<a href target="_blank" style="text-decoration: none;">
<img src="https://media.giphy.com/media/v1.Y2lkPTc5MGI3NjExcTVtbWpmZWZ2eHhjbndva2NsYXAyaHJ3c3Nnb3c3bWloYm96NnB6biZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/xTiN0CNHgoRf1Ha7CM/giphy.gif" alt="GIF">
</a>
</td>
</tr>
</table>
<table cellspacing="0" cellpadding="0" border="0" style="width: 600px;" align="center">
<tr>
<td class="imagecontainer" data-imageindex="0" style="border-radius: 0px;
padding: 0px;
text-align: center;
background-color: #ffffff;
">
<a href="" target="_blank" style="text-decoration: none;">
<img src="https://media.giphy.com/media/v1.Y2lkPTc5MGI3NjExcTVtbWpmZWZ2eHhjbndva2NsYXAyaHJ3c3Nnb3c3bWloYm96NnB6biZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/xTiN0CNHgoRf1Ha7CM/giphy.gif" alt="GIF" />
</a>
</td>
</tr>
</table>
<table cellspacing="0" cellpadding="0" border="0" style="width: 600px;" align="center">
<tr>
<td class="imagecontainer" data-imageindex="0" style="border-radius: 0px;
padding: 0px;
text-align: center;
background-color: #ffffff;
"><a class="fr__link-wrapper"
href="https://c8.dycdn.net/rg55bjkl/s/push2dd/?k=3ldtt4d&format=dynamiclink"><img src="https://c8.dycdn.net/rg55bjkl/s/push2dd/?k=3ldtt4d&format=dynamicimage"></a>
</td>
</tr>
</table>
{
"html": "<table cellspacing=\"0\" cellpadding=\"0\" border=\"0\" style=\"width: 600px;\" align=\"center\">\n\n <tr>\n\n <td class=\"imagecontainer\" data-imageindex=\"0\" style=\"border-radius: 0px; \n padding: 0px;\n text-align: center;\n background-color: #ffffff;\n \">\n\n <a href target=\"_blank\" style=\"text-decoration: none;\">\n\n <img src=\"https://media.giphy.com/media/v1.Y2lkPTc5MGI3NjExcTVtbWpmZWZ2eHhjbndva2NsYXAyaHJ3c3Nnb3c3bWloYm96NnB6biZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/xTiN0CNHgoRf1Ha7CM/giphy.gif\" alt=\"GIF\">\n\n </a>\n\n </td>\n\n </tr>\n\n</table>",
"js": null,
"css": null,
"var": {
"tmclt": true
},
"meta": {
"tmsl": "push2dd",
"tmsb": "aa7u9zu",
"tmrl": "l0tt40i",
"tmcs": "iz2z0mg",
"tmcv": 0,
"tmty": "e",
"tmsn": "Test LS",
"products": []
}
}
{
"html": null,
"js": null,
"css": null,
"var": {},
"meta": {
"tmsl": "push2dd",
"tmsb": "aa7u9zu",
"tmrl": "l0tt40i",
"tmty": "e",
"tmsn": "Test LS"
},
"items": []
}
{
"html": "\n\n<table cellspacing=\"0\" cellpadding=\"0\" border=\"0\" style=\"width: 600px;\" align=\"center\">\n\n <tr>\n\n <td class=\"imagecontainer\" data-imageindex=\"0\" style=\"border-radius: 0px; \n padding: 0px;\n text-align: center;\n background-color: #ffffff;\n \">\n\n <a href=\"\" target=\"_blank\" style=\"text-decoration: none;\">\n\n <img src=\"https://media.giphy.com/media/v1.Y2lkPTc5MGI3NjExcTVtbWpmZWZ2eHhjbndva2NsYXAyaHJ3c3Nnb3c3bWloYm96NnB6biZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/xTiN0CNHgoRf1Ha7CM/giphy.gif\" alt=\"GIF\" />\n\n </a>\n\n </td>\n\n </tr>\n\n</table>\n",
"js": null,
"css": null,
"var": {},
"meta": {
"tmsl": "push2dd",
"tmsb": "aa7u9zu",
"tmrl": "l0tt40i",
"tmcs": "iz2z0mg",
"tmcv": 0,
"tmty": "e",
"tmsn": "Test LS",
"products": []
},
"items": []
}
Additional personalization parameters
This endpoint also supports personalization by including an identifier for the shopper in the query string parameters.
Any of the following optional query string parameters are supported:
Parameter | Description |
---|---|
e | The user's email address. |
d | An identifier for a device the shopper used to visit your website. The device ID is a cookie value that is generated by our script on your website. This is stored in the tms_VisitorID cookie. This first-party cookie is available in the Cookie HTTP header when you request it from your server. |
cid | The shopper's customer ID. This only works if this value is known to Fresh Relevance already. Learn more in Import person data. |
If you're using filters to return relevant content based on the specific site, then you may also need to pass through additional parameters, such as:
Parameter | Description |
---|---|
prid | Unique product identifier e.g. 12345 |
sbr | Site Brand/Territory for the product (e.g., the product was shown in USD on the US version of the store) e.g,. DEMO |
curr | Currency - ISO 4217 currency code e.g., USD |
Examples
Fetch HTML content for server-side merging
https://c8.dycdn.net/abcdefg1/s/push2dd/?k=z321xx4d&format=html
Fetch JSON content for server-side processing
https://c8.dycdn.net/abcdefg1/s/push2dd/?k=z321xx4d&format=full
Fetch JSON content for server-side processing with additional personalization
https://c8.dycdn.net/abcdefg1/s/push2dd/?k=z321xx4d&format=full&[email protected]
Multi slots
For websites and apps doing large-scale personalization, we have the Retrieve multiple slots call in the Content API. It fetches several slots at once, which results in fewer round-trips from the server and is, therefore, faster.
We recommend this approach for performance.
Updated 2 months ago