Skip to main content

Generate personalized pages & dynamic GIFs using Sendr API

John Bromley avatar
Written by John Bromley
Updated over a month ago

This guide will walk you through the available endpoints, how to authenticate, and how to integrate Sendr to generate personalized pages and GIFs.

🌐 Base URL

https://api.sendr.io

All API endpoints are appended to this base URL.

πŸ” Authentication

All API requests must include your Sendr API Key in the headers:

X-API-Key: YOUR_API_KEY
Accept: application/json

You can generate your API Key in the app.sendr.io > Settings


πŸ“ Sendr Endpoints

1. List Page Templates

Retrieve all your page templates.

Endpoint:

GET /api/v1/page-template/list

Headers:

X-API-Key: YOUR_API_KEY
Accept: application/json

Sample Response:

[
{
"id": "template_123",
"name": "Welcome Page",
"thumbnailUrl": "https://example.com/thumb.jpg"
"pageViews": 40,
"videoPlays": 0,
"uniqueViews": 17,
}
]


2. Get Page Template Variables

Fetch the variables defined in a page template. These variables are used when generating personalized pages.

Endpoint:

GET /api/v1/page-template/{{Page_Template_ID}}/variables

Replace {{Page_Template_ID}} with your page template ID that can be found in the URL of your page template in Sendr. Example: https://app.sendr.io/templates/296

Headers:

X-API-Key: YOUR_API_KEY
Accept: application/json

Sample Response:

[
{
"tag": "firstName",
"label": "First Name"
},
{
"tag": "companyName",
"label": "Company Name"
}
]


3. Generate Personalized Page

Create a dynamic, personalized page using a template and user-specific variables. This request is asynchronous β€” you’ll receive the completed page via a webhook event.

Endpoint:

POST /api/v1/enrichment/personalized-page

Headers:

X-API-Key: YOUR_API_KEY
Content-Type: application/json
Accept: application/json

Body:

{
"templateId": "template_123",
"websiteToScreenshotUrl": "https://yourwebsite.com",
"variablesValues": {
"firstName": "John",
"companyName": "Sendr Inc."
},
"attributes": {
"userId": "456",
"customNote": "Follow-up email"
}
}

Response:

{
"jobId": "job_001"
}


4. Webhook: Page Generation Completed

You’ll receive a POST request when the page is ready.

Payload:

{
"pageUrl": "https://sendr.page/generated/abc123",
"attributes": {
"userId": "456",
"customNote": "Follow-up email"
}
}

Use the attributes you passed in the request to map results back to your system.


5. Generate GIF from Personalized Page

Convert a personalized page into an animated GIF. This is also asynchronous, and results will be sent via webhook.

Endpoint:

POST /api/v1/enrichment/dynamic-gif

Headers:

X-API-Key: YOUR_API_KEY
Content-Type: application/json
Accept: application/json

Body:

{
{
"pageUrl": "https://sendr.page/generated/abc123",
"attributes": {
"userId": "456",
"campaign": "AprilLaunch"
}
}

Response:

{
"jobId": "job_002"
}


6. Webhook: GIF Generation Completed

Once the GIF is ready, your webhook endpoint will receive:

{
"gifEmbed": "<iframe src='https://sendr.page/gif/abc123' />",
"attributes": {
"userId": "456",
"campaign": "AprilLaunch"
}
}


πŸ“© Webhook Configuration

Set your webhook URL and secret key in the Sendr Settings under Webhook Endpoint.

Webhook Headers:

X-Webhook-Secret: YOUR_SECRET

Use the attributes object to identify and map jobs in your app.


πŸ’‘ Tips

  • You can pass any key-value pair in attributes to help track jobs.

  • All request bodies should be in JSON format.

  • Page and GIF generation are queued jobs β€” always use the webhook to receive the final result.


πŸ›  Need Help?

Contact our support team at [email protected] or drop us a message on live if you need help setting up your integration.

Did this answer your question?