Image Export
How to export images - Abyssale REST API
You can generate an export (.zip format) containing several images.
This process is asynchronous and requires a webhook server to listen to export events.
The export process

(1) Ask an export

Create a banner export
# Do not forget to replace {YOUR-API-KEY}
curl -X POST -H "x-api-key:{YOUR-API-KEY}" -H "Content-Type: application/json" \
-d '{
"callback_url": "",
"ids": ["{banner_id1}", "{banner_id2}", "{banner_id3}"]
}' \
const axios = require('axios');
const payload = {
"callback_url": "",
"ids": ["{banner_id1}", "{banner_id2}", "{banner_id3}"]
// Replace {id} by your template ID"{id}/generate", payload, {
headers: {"x-api-key": "{YOUR-API-KEY}", "Content-Type": "application/json", "timeout": 30000}
}).then(response => {
import json
import requests
export_payload = {
"callback_url": "",
"ids": ["{banner_id1}", "{banner_id2}", "{banner_id3}"]
# Do not forget to replace {YOUR-API-KEY} and {template_id}
r ="{template_id}/generate",
headers={"x-api-key": "YOUR-API-KEY", "Content-Type": "application/json"},

(2) Receive the export request ID

If the export request is accepted, the API call returns the export_id. It represents the ID of the asynchronous export and allows toto identify the asynchronous response.

The following errors can occur:

  • 400: A given parameter is invalid. Body response:
"message": "body_validation_errors: {'media': {'ids': {0: ['Length must be 36.']}}}",
"errors": {
"media": {
"ids": {
"0": [
"Length must be 36."
  • 404: One the given banner ID cannot be found.

(3) NewExport event

Once the export is generated on the Abyssale side, a NewExport event is sent (POST) to the callback_url
If the initial request returns an export ID, the NewExport event will always be sent.