Get Gallery Template
Retrieve a single gallery template, including its full HTML body. Use POST /templates/gallery/:id/copy to save the gallery template directly into your custom templates in one call. To customize the HTML before saving, fetch the html here and pass it to Create Template.
Endpoint
GET /templates/gallery/:id
Returns: 200 OK
Path Parameters
| Parameter | Type | Description |
|---|---|---|
id | string | Gallery template ID (from Browse Gallery) |
Response
{
"id": "01957e3a-4b5c-7d8e-9f0a-1b2c3d4e5f6a",
"name": "Modern Welcome Email",
"has_amp": false,
"created_at": "2026-01-15T10:00:00.000Z",
"html": "<html>...</html>",
"template_types": [
{ "id": "01957e3a-4b5c-7d8e-9f0a-1b2c3d4e5f6a", "name": "Newsletter" }
],
"template_seasons": [],
"template_features": [
{ "id": "01957e3a-4b5c-7d8e-9f0a-1b2c3d4e5f6d", "name": "Hero Image" }
],
"template_industries": [
{ "id": "01957e3a-4b5c-7d8e-9f0a-1b2c3d4e5f6f", "name": "E-commerce" }
]
}
In addition to the list fields, the detail response adds:
| Field | Type | Description |
|---|---|---|
html | string | Full rendered HTML. Pass to Create Template as html. |
template_types | object[] | Categories the template belongs to: {id, name} per entry. |
template_seasons | object[] | Season tags. |
template_features | object[] | Feature tags (e.g., "Hero Image", "Coupon"). |
template_industries | object[] | Industry tags. |
Examples
- cURL
- JavaScript
- Python
- C#
- PHP
curl "https://api.arsel.sa/v1/templates/gallery/01957e3a-4b5c-7d8e-9f0a-1b2c3d4e5f6a" \
-H "Authorization: Bearer $ARSEL_API_KEY"
const response = await fetch("https://api.arsel.sa/v1/templates/gallery/01957e3a-4b5c-7d8e-9f0a-1b2c3d4e5f6a", {
headers: {
Authorization: `Bearer ${process.env.ARSEL_API_KEY}`,
},
});
const data = await response.json();
if (!response.ok) {
throw new Error(`${data.name}: ${data.message}`);
}
console.log(data);
import os
import requests
response = requests.get(
"https://api.arsel.sa/v1/templates/gallery/01957e3a-4b5c-7d8e-9f0a-1b2c3d4e5f6a",
headers={"Authorization": f"Bearer {os.environ['ARSEL_API_KEY']}"},
)
response.raise_for_status()
print(response.json())
using System.Net.Http.Headers;
var client = new HttpClient(); // share one instance across requests
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue(
"Bearer", Environment.GetEnvironmentVariable("ARSEL_API_KEY"));
var response = await client.GetAsync("https://api.arsel.sa/v1/templates/gallery/01957e3a-4b5c-7d8e-9f0a-1b2c3d4e5f6a");
var body = await response.Content.ReadAsStringAsync();
if (!response.IsSuccessStatusCode)
throw new HttpRequestException($"{(int)response.StatusCode}: {body}");
Console.WriteLine(body);
<?php
$ch = curl_init("https://api.arsel.sa/v1/templates/gallery/01957e3a-4b5c-7d8e-9f0a-1b2c3d4e5f6a");
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
"Authorization: Bearer " . getenv("ARSEL_API_KEY"),
],
]);
$data = json_decode(curl_exec($ch), true);
if (curl_getinfo($ch, CURLINFO_HTTP_CODE) >= 400) {
throw new Exception("{$data['name']}: {$data['message']}");
}
print_r($data);
Error Responses
- 404 Not Found
- 401 Unauthorized
{
"status_code": 404,
"name": "not_found",
"message": "Gallery template not found"
}
{
"status_code": 401,
"name": "unauthorized",
"message": "Invalid API Key"
}