Get
const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.thanks.io/api/v2/creatives/{creativeId}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));curl --request GET \
--url https://api.thanks.io/api/v2/creatives/{creativeId} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.thanks.io/api/v2/creatives/{creativeId}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"data": {
"id": 501,
"name": "Spring open house",
"mailer_type": "postcard",
"postcard_size": "4x6",
"sub_account_id": null,
"source": "user",
"hidden": false,
"default": true,
"preview_image_url": null,
"thumbnail_url": "https://cdn.thanks.io/creative-thumbnails/501.png",
"share_url": "https://dashboard.thanks.io/creatives/share/6f1c2e9a-8a7d-4b8e-9d37-1c2b3a4d5e6f",
"is_complete": true,
"needs": [],
"image_template": {
"id": 6,
"name": "Spring open house",
"type": "postcard",
"image": "https://s3.amazonaws.com/cdn.thanks.io/user_image_library/1533645532.png",
"is_dynamic": false,
"dynamic_image_url": null,
"canva_id": null,
"default": false,
"created_from_creative_generation_id": null,
"deleted": false
},
"message_template": {
"id": 12,
"name": "Spring open house",
"type": "postcard",
"content": "Hi %FIRST_NAME%, spring is here!",
"handwriting_style_id": 7,
"custom_background_url": null,
"skip_creative_generation": false,
"default": false,
"deleted": false
},
"back_background": null,
"created_at": "2026-09-27T00:00:00.000000Z",
"updated_at": "2026-10-01T00:00:00.000000Z"
}
}{
"message": "Unauthorized"
}{
"message": "Not Found"
}Creatives Library
Get Creative
Get one creative from your Creatives library, with the image and message templates it pairs.
GET
/
creatives
/
{creativeId}
Get
const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.thanks.io/api/v2/creatives/{creativeId}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));curl --request GET \
--url https://api.thanks.io/api/v2/creatives/{creativeId} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.thanks.io/api/v2/creatives/{creativeId}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"data": {
"id": 501,
"name": "Spring open house",
"mailer_type": "postcard",
"postcard_size": "4x6",
"sub_account_id": null,
"source": "user",
"hidden": false,
"default": true,
"preview_image_url": null,
"thumbnail_url": "https://cdn.thanks.io/creative-thumbnails/501.png",
"share_url": "https://dashboard.thanks.io/creatives/share/6f1c2e9a-8a7d-4b8e-9d37-1c2b3a4d5e6f",
"is_complete": true,
"needs": [],
"image_template": {
"id": 6,
"name": "Spring open house",
"type": "postcard",
"image": "https://s3.amazonaws.com/cdn.thanks.io/user_image_library/1533645532.png",
"is_dynamic": false,
"dynamic_image_url": null,
"canva_id": null,
"default": false,
"created_from_creative_generation_id": null,
"deleted": false
},
"message_template": {
"id": 12,
"name": "Spring open house",
"type": "postcard",
"content": "Hi %FIRST_NAME%, spring is here!",
"handwriting_style_id": 7,
"custom_background_url": null,
"skip_creative_generation": false,
"default": false,
"deleted": false
},
"back_background": null,
"created_at": "2026-09-27T00:00:00.000000Z",
"updated_at": "2026-10-01T00:00:00.000000Z"
}
}{
"message": "Unauthorized"
}{
"message": "Not Found"
}Authorizations
Bearer token authentication using your thanks.io API key
Path Parameters
The creative's ID.
Response
OK
A creative from your Creatives library: a saved pairing of an image template and a message template, sent exactly as saved by passing its id as creative_id to any send or estimate endpoint.
Show child attributes
Show child attributes
Was this page helpful?