# Design Details

<figure><img src="https://3568284716-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHvY8mOYKzvcoxVpCu4FE%2Fuploads%2FLRgZpmbnmc8kjryX9ZUK%2Fimage.png?alt=media&#x26;token=b1d4c506-974b-4fdf-9270-533fd6a7ed27" alt=""><figcaption></figcaption></figure>

When you retrieve a design's information, you'll receive a complete specification that includes:

#### Core Identifiers

* Unique design ID for API reference

#### Format Definitions

* List of all output formats configured for the design
* Each format has a unique name & a unique uid within its parent design

#### Layer Configuration

* Complete inventory of all layers
* Supports 9 distinct layer types

#### Property Mappings

* Detailed property values for each layer
* Properties are format-specific and can include:
  * Color values
  * Content payloads
  * Image URLs
  * Other format-specific attributes

**Additional information about layers:**

* `mandatory` (boolean):

  * `true` – The layer **must** be explicitly provided in API requests. Omitting it will result in a generation error. It **must differ from the default value** defined in the design.
  * `false` – The layer is optional during API generation.&#x20;

  Use this field to programmatically determine which layers require values before submitting a generation request.&#x20;

## Get Design details

> Retrieve the details of a design (general information, formats, elements & properties).<br>

```json
{"openapi":"3.0.3","info":{"title":"API Reference - Abyssale","version":"0.0.1"},"tags":[{"name":"Designs","description":"A design is a layout including at least:\n- one format (dimension, i.e. Facebook feed 1200x628 or IAB 300x250)\n- one element (text, button, image, shape...)\n\nAll elements have their own properties that can be customized (color, text payload, image...).\n\nOnce designed, all properties of the design will act as a reference for subsequent image generation. Obviously, those properties can be overridden by sending new parameters in the generation API call.\n\nAbyssale provides a list of free template designs in the Template Library page. Feel free to use one to start designing your design instead of doing it from scratch.\n\n**All of your designs are listed in the different project pages, only those are accessible via API.**\n"}],"servers":[{"url":"https://api.abyssale.com","description":"Main Production Server"}],"security":[{"api_key":[]}],"components":{"securitySchemes":{"api_key":{"description":"All of your Abyssale requests must contain a `x-api-key header` with your API Key.","type":"apiKey","name":"x-api-key","in":"header"}},"schemas":{"Design":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier (UUID) of the design."},"name":{"type":"string","description":"Name of the design."},"type":{"type":"string","enum":["static","animated","printer","printer_multipage"],"description":"Type of the design"},"created_at":{"type":"integer","description":"Timestamp of when the design has been created."},"updated_at":{"type":"integer","description":"Timestamp of when the design has been updated for the last time."},"category_name":{"type":"string","nullable":true,"description":"Design Category"}},"required":["id","name","created_at","updated_at"]},"DesignFormat":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier (name) of the format."},"uid":{"type":"string","description":"Unique UUID of the format"},"width":{"type":"number","description":"Width of the format"},"height":{"type":"number","description":"Height of the format"},"preview_url":{"type":"string","format":"uri","description":"Preview Image URL of the format"},"dynamic_image_url":{"type":"string","format":"uri","description":"URL of the existing dynamic image for this format."}},"required":["id","width","height"]},"DesignElement":{"type":"object","properties":{"name":{"type":"string","description":"Layer name (`root` is a special element that allows to customize the image background color.)"},"type":{"type":"string","enum":["container","text","button","image","logo","shape","illustration","rating","qrcode","chart"],"description":"Layer type"},"attributes":{"type":"array","description":"List of all attributes","items":{"type":"object","properties":{"id":{"type":"string","description":"The attribute name"},"help":{"type":"string","description":"An helper to understand what is this attribute"},"values":{"type":"object","additionalProperties":{"type":"string","description":"The value of the attribute related to a format."}}}},"required":["id","help","values"]}},"required":["name","type","attributes"]}}},"paths":{"/designs/{designId}":{"get":{"summary":"Get Design details","description":"Retrieve the details of a design (general information, formats, elements & properties).\n","tags":["Designs"],"parameters":[{"in":"path","name":"designId","schema":{"type":"string","format":"uuid"},"required":true,"description":"Unique identifier (UUID) of the design"}],"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Design"},{"type":"object","properties":{"formats":{"type":"array","description":"The list of formats available in the design.\n\nThe id property can be used to specify the format you would like to generate in the generation API call.\n","items":{"$ref":"#/components/schemas/DesignFormat"}},"elements":{"type":"array","description":"The list of all elements (& customizable properties) contained in the design.\n\n`name` is the layer name (root is a special element that allows to customize the image background color.)\n\n`attributes` contains the list of all customizable properties:\n- `id`: The attribute ID\n- `values`: the related value for this attribute in each format (if defined)\n","items":{"$ref":"#/components/schemas/DesignElement"}},"variables":{"type":"object","description":"Variables used within the text layers of the design.\nKeys represent variable names (without braces), and values\nrepresent the placeholder format in the design (e.g. \"{name}\").\n","additionalProperties":{"type":"string"}}}}]}}}},"404":{"description":"Design Not found"}}}}}}
```

{% hint style="info" %}
[The full api reference can be found here](https://api-reference.abyssale.com/#tag/Templates/paths/~1templates~1{templateId}/get)
{% endhint %}

{% hint style="info" %}
Advanced properties can be retrieved by using the `?i=advanced` query URL parameter.
{% endhint %}

### Sample response

```json
{
    "template_id": "7dc0229b-cc0e-4fe5-971d-325164480887",
    "name": "Abyssale demo - FB Feed",
    "type": "static",
    "created_at": 1681215684,
    "updated_at": 1681217794,
    "category_name": "Abyssale Demo",
    "formats": [
        {
            "id": "medium-rectangle",
            "uid": "9b57d65e-eb2c-4a74-a51e-4482917c248a",
            "width": 300,
            "height": 250,
            "preview_url": "https://public-example-link.com/preview/87f7f83b-894f-4900-abe2-3e0e769b12d7.png"
        },
        {
            "id": "wide-skyscraper",
            "uid": "088afbb8-bace-4f17-82e4-d30fc6719f4d",
            "width": 160,
            "height": 600,
            "preview_url": "https://public-example-link.com/preview/87f7f83b-894f-4900-abe2-3e0e769b12d7-wide-skyscraper.png"
        }
    ],
    "elements": [
        {
            "name": "root",
            "type": "container",
            "settings": {
                "is_mandatory": false
            },
            "attributes": [
                {
                    "id": "background_color",
                    "help": "6 digits hexadecimal background color of the banner (i.e. #F3F3F3)",
                    "values": {
                        "medium-rectangle": "#ffffff",
                        "wide-skyscraper": "#c3bfbf"
                    }
                }
            ],
            "layout": {
                "medium-rectangle": {
                    "x": 0,
                    "y": 0,
                    "width": 300,
                    "height": 250
                },
                "wide-skyscraper": {
                    "x": 0,
                    "y": 0,
                    "width": 160,
                    "height": 600
                }
            }
        },
        {
            "name": "tb-text_0",
            "type": "text",
            "settings": {
                "is_mandatory": false
            },
            "attributes": [
                {
                    "id": "payload",
                    "help": "Text content (i.e. Lorem ipsum)",
                    "values": {
                        "medium-rectangle": "Lorem Ipsum",
                        "wide-skyscraper": "Test"
                    }
                },
                {
                    "id": "color",
                    "help": "6 or 8 digits hexadecimal color of the text (i.e. #EAEAEA)",
                    "values": {
                        "medium-rectangle": "#000000",
                        "wide-skyscraper": "#000000",
                    }
                }
            ],
            "layout": {
                "medium-rectangle": {
                    "x": 20,
                    "y": 40,
                    "width": 200,
                    "height": 50
                },
                "wide-skyscraper": {
                    "x": 10,
                    "y": 20,
                    "width": 100,
                    "height": 100
                }
            }
        },
    ]
}
```

This sample represents the details of a design (ID: **7dc0229b-cc0e-4fe5-971d-325164480887)**, which contains:

* 2 formats: **medium-rectangle** and **wide-skyscraper.** *Those names can be used in the image generation endpoints to define which formats to create.*
* 2 elements:&#x20;
  * **root** (type: container)
    * The root property is always available and corresponds to the root format container.
    * It contains a single `background_color` attribute:
      * with a `#ffffff` value on the **medium-rectangle** format
      * with a `#c3bfbf` value on the **wide-skyscraper** format
  * **tb-text\_0** (type: text). It contains 2 attributes:
    * `payload`: The text content.&#x20;
      * `Lorem Ipsum` on the **medium-rectangle** format
      * `Test` on the **wide-skyscraper** format
    * `color`: The text color.
      * `#000000` for both formats

### For type [printer multi pages ](https://developers.abyssale.com/rest-api/generation/asynchronous-generation/generate-multi-page-pdf-for-printing), you have to use the same logic but with all the elements per pages

### sample response

```json
{
    "id": "4a2e214c-cb04-4388-bd59-bb93b03abe15",
    "name": "untitled",
    "type": "printer_multipage",
    "template_id": "4a2e214c-cb04-4388-bd59-bb93b03abe15",
    "pages": [
        {
            "id": "page_1",
            "uuid": "088afbb8-bace-4f17-82e4-d30fc6719f4a",
            "width": 5.5,
            "height": 8.5,
            "unit": "in",
            "preview_url": "https://production-banners.s3-eu-west-1.amazonaws.com/templates/e0d292f2-ec21-11e9-a539-3c408bf94155/b4d64049-e9be-4e06-af35-6310ba4199db.png"
        },
        {
            "id": "page_2",
            "uuid": "188afbb8-bace-4f17-82e4-d30fc6719f4a",
            "width": 5.5,
            "height": 8.5,
            "unit": "in",
            "preview_url": "https://production-banners.s3-eu-west-1.amazonaws.com/templates/e0d292f2-ec21-11e9-a539-3c408bf94155/b4d64049-e9be-4e06-af35-6310ba4199db-page_2.png"
        },
        {
            "id": "page_3",
            "uuid": "288afbb8-bace-4f17-82e4-d30fc6719f4a",
            "width": 5.5,
            "height": 8.5,
            "unit": "in",
            "preview_url": "https://production-banners.s3-eu-west-1.amazonaws.com/templates/e0d292f2-ec21-11e9-a539-3c408bf94155/b4d64049-e9be-4e06-af35-6310ba4199db-page_3.png"
        },
        {
            "id": "page_4",
            "uuid": "388afbb8-bace-4f17-82e4-d30fc6719f4a",
            "width": 5.5,
            "height": 8.5,
            "unit": "in",
            "preview_url": "https://production-banners.s3-eu-west-1.amazonaws.com/templates/e0d292f2-ec21-11e9-a539-3c408bf94155/b4d64049-e9be-4e06-af35-6310ba4199db-page_4.png"
        }
    ],
    "elements_per_page": {
        "page_1": [
            {
                "name": "root",
                "type": "container",
                "settings": {
                    "is_mandatory": false
                },
                "attributes": {
                    "background_color": {
                        "id": "background_color",
                        "help": "6 or 8 digits hexadecimal background color (i.e. #F3F3F3) or a CMYK color (i.e. cmyk(0,10,0,50)) of the banner ",
                        "values": "cmyka(0,0,0,0,100)"
                    }
                },
                "layout": {
                    "x": 0,
                    "y": 0,
                    "width": 5.5,
                    "height": 8.5
                }
            },
            {
                "name": "tb-image_0",
                "type": "image",
                "settings": {
                    "is_mandatory": false
                },
                "attributes": {
                    "image_url": {
                        "id": "image_url",
                        "help": "Public HTTP(s) URL of the image (i.e. https://photo.com/image.png)",
                        "values": "https://production-banners.s3-eu-west-1.amazonaws.com/templates/v2/e0d292f2-ec21-11e9-a539-3c408bf94155/4a2e214c-cb04-4388-bd59-bb93b03abe15/v2_66bcfed3-792f-44b5-a4d6-bd9ecd5806e9.jpeg"
                    }
                },
                "layout": {
                    "x": 0.15,
                    "y": 2.546,
                    "width": 5.333,
                    "height": 5.8
                }
            },
            {
                "name": "tb-text_0",
                "type": "text",
                "settings": {
                    "is_mandatory": false
                },
                "attributes": {
                    "payload": {
                        "id": "payload",
                        "help": "Text content (i.e. Lorem ipsum)",
                        "values": "Aby Mag"
                    },
                    "color": {
                        "id": "color",
                        "help": "6 or 8 digits hexadecimal color (i.e. #EAEAEA) or a CMYK color (i.e. cmyk(0,10,0,50)) of the text",
                        "values": "cmyka(0,0,0,100,100)"
                    }
                },
                "layout": {
                    "x": 0.3,
                    "y": 0.179,
                    "width": 5.275,
                    "height": 2.058
                }
            }
        ],
        "page_2": [
            {
                "name": "root",
                "type": "container",
                "settings": {
                    "is_mandatory": false
                },
                "attributes": {
                    "background_color": {
                        "id": "background_color",
                        "help": "6 or 8 digits hexadecimal background color (i.e. #F3F3F3) or a CMYK color (i.e. cmyk(0,10,0,50)) of the banner ",
                        "values": "cmyka(0,0,0,0,100)"
                    }
                },
                "layout": {
                    "x": 0,
                    "y": 0,
                    "width": 5.5,
                    "height": 8.5
                }
            },
            {
                "name": "tb-image_0",
                "type": "image",
                "settings": {
                    "is_mandatory": false
                },
                "attributes": {
                    "image_url": {
                        "id": "image_url",
                        "help": "Public HTTP(s) URL of the image (i.e. https://photo.com/image.png)",
                        "values": "https://production-banners.s3-eu-west-1.amazonaws.com/templates/v2/e0d292f2-ec21-11e9-a539-3c408bf94155/4a2e214c-cb04-4388-bd59-bb93b03abe15/v2_6a887b92-9d46-4dca-a6d9-ed3648918c39.jpeg"
                    }
                },
                "layout": {
                    "x": 2.904,
                    "y": 0.012,
                    "width": 2.415,
                    "height": 2.415
                }
            },
            {
                "name": "tb-text_0",
                "type": "text",
                "settings": {
                    "is_mandatory": false
                },
                "attributes": {
                    "payload": {
                        "id": "payload",
                        "help": "Text content (i.e. Lorem ipsum)",
                        "values": "Health"
                    },
                    "color": {
                        "id": "color",
                        "help": "6 or 8 digits hexadecimal color (i.e. #EAEAEA) or a CMYK color (i.e. cmyk(0,10,0,50)) of the text",
                        "values": "cmyka(0,0,0,100,100)"
                    }
                },
                "layout": {
                    "x": 0.304,
                    "y": 1.046,
                    "width": 2.494,
                    "height": 0.775
                }
            },
            {
                "name": "tb-text_1",
                "type": "text",
                "settings": {
                    "is_mandatory": false
                },
                "attributes": {
                    "payload": {
                        "id": "payload",
                        "help": "Text content (i.e. Lorem ipsum)",
                        "values": "Le Lorem Ipsum est simplement du faux texte employé dans la composition et la mise en page avant impression. Le Lorem Ipsum est le faux texte standard de l'imprimerie depuis les années 1500, quand un imprimeur anonyme assembla ensemble des morceaux de texte pour réaliser un livre spécimen de polices de texte. Il n'a pas fait que survivre cinq siècles, mais s'est aussi adapté à la bureautique informatique, sans que son contenu n'en soit modifié. Il a été popularisé dans les années 1960 grâce à la vente de feuilles Letraset contenant des passages du Lorem Ipsum, et, plus récemment, par son inclusion dans des applications de mise en page de texte, comme Aldus PageMaker."
                    },
                    "color": {
                        "id": "color",
                        "help": "6 or 8 digits hexadecimal color (i.e. #EAEAEA) or a CMYK color (i.e. cmyk(0,10,0,50)) of the text",
                        "values": "cmyka(0,0,0,100,100)"
                    }
                },
                "layout": {
                    "x": 0.179,
                    "y": 2.762,
                    "width": 5.088,
                    "height": 5.5
                }
            }
        ],
        "page_3": [
            {
                "name": "root",
                "type": "container",
                "settings": {
                    "is_mandatory": false
                },
                "attributes": {
                    "background_color": {
                        "id": "background_color",
                        "help": "6 or 8 digits hexadecimal background color (i.e. #F3F3F3) or a CMYK color (i.e. cmyk(0,10,0,50)) of the banner ",
                        "values": "cmyka(0,0,0,0,100)"
                    }
                },
                "layout": {
                    "x": 0,
                    "y": 0,
                    "width": 5.5,
                    "height": 8.5
                }
            },
            {
                "name": "tb-image_0",
                "type": "image",
                "settings": {
                    "is_mandatory": false
                },
                "attributes": {
                    "image_url": {
                        "id": "image_url",
                        "help": "Public HTTP(s) URL of the image (i.e. https://photo.com/image.png)",
                        "values": "https://production-banners.s3-eu-west-1.amazonaws.com/templates/v2/e0d292f2-ec21-11e9-a539-3c408bf94155/4a2e214c-cb04-4388-bd59-bb93b03abe15/v2_a14f51da-4e2a-407e-9ad7-66f946668f53.jpeg"
                    }
                },
                "layout": {
                    "x": 2.904,
                    "y": 0.212,
                    "width": 2.415,
                    "height": 2.415
                }
            },
            {
                "name": "tb-text_0",
                "type": "text",
                "settings": {
                    "is_mandatory": false
                },
                "attributes": {
                    "payload": {
                        "id": "payload",
                        "help": "Text content (i.e. Lorem ipsum)",
                        "values": "Sport"
                    },
                    "color": {
                        "id": "color",
                        "help": "6 or 8 digits hexadecimal color (i.e. #EAEAEA) or a CMYK color (i.e. cmyk(0,10,0,50)) of the text",
                        "values": "cmyka(0,0,0,100,100)"
                    }
                },
                "layout": {
                    "x": 0.296,
                    "y": 1.054,
                    "width": 2.494,
                    "height": 0.775
                }
            },
            {
                "name": "tb-text_1",
                "type": "text",
                "settings": {
                    "is_mandatory": false
                },
                "attributes": {
                    "payload": {
                        "id": "payload",
                        "help": "Text content (i.e. Lorem ipsum)",
                        "values": "Le Lorem Ipsum est simplement du faux texte employé dans la composition et la mise en page avant impression. Le Lorem Ipsum est le faux texte standard de l'imprimerie depuis les années 1500, quand un imprimeur anonyme assembla ensemble des morceaux de texte pour réaliser un livre spécimen de polices de texte. Il n'a pas fait que survivre cinq siècles, mais s'est aussi adapté à la bureautique informatique, sans que son contenu n'en soit modifié. Il a été popularisé dans les années 1960 grâce à la vente de feuilles Letraset contenant des passages du Lorem Ipsum, et, plus récemment, par son inclusion dans des applications de mise en page de texte, comme Aldus PageMaker."
                    },
                    "color": {
                        "id": "color",
                        "help": "6 or 8 digits hexadecimal color (i.e. #EAEAEA) or a CMYK color (i.e. cmyk(0,10,0,50)) of the text",
                        "values": "cmyka(0,0,0,100,100)"
                    }
                },
                "layout": {
                    "x": 0.179,
                    "y": 2.763,
                    "width": 5.088,
                    "height": 5.5
                }
            }
        ],
        "page_4": [
            {
                "name": "root",
                "type": "container",
                "settings": {
                    "is_mandatory": false
                },
                "attributes": {
                    "background_color": {
                        "id": "background_color",
                        "help": "6 or 8 digits hexadecimal background color (i.e. #F3F3F3) or a CMYK color (i.e. cmyk(0,10,0,50)) of the banner ",
                        "values": "cmyka(0,0,0,0,100)"
                    }
                },
                "layout": {
                    "x": 0,
                    "y": 0,
                    "width": 5.5,
                    "height": 8.5
                }
            },
            {
                "name": "tb-image_0",
                "type": "image",
                "settings": {
                    "is_mandatory": false
                },
                "attributes": {
                    "image_url": {
                        "id": "image_url",
                        "help": "Public HTTP(s) URL of the image (i.e. https://photo.com/image.png)",
                        "values": "https://production-banners.s3-eu-west-1.amazonaws.com/templates/v2/e0d292f2-ec21-11e9-a539-3c408bf94155/4a2e214c-cb04-4388-bd59-bb93b03abe15/v2_366bee0e-5ec2-4c65-b095-516ab65cd549.jpeg"
                    }
                },
                "layout": {
                    "x": 2.896,
                    "y": 0.212,
                    "width": 2.414,
                    "height": 2.415
                }
            },
            {
                "name": "tb-text_0",
                "type": "text",
                "settings": {
                    "is_mandatory": false
                },
                "attributes": {
                    "payload": {
                        "id": "payload",
                        "help": "Text content (i.e. Lorem ipsum)",
                        "values": "Psycho"
                    },
                    "color": {
                        "id": "color",
                        "help": "6 or 8 digits hexadecimal color (i.e. #EAEAEA) or a CMYK color (i.e. cmyk(0,10,0,50)) of the text",
                        "values": "cmyka(0,0,0,100,100)"
                    }
                },
                "layout": {
                    "x": 0.296,
                    "y": 1.054,
                    "width": 2.494,
                    "height": 0.775
                }
            },
            {
                "name": "tb-text_1",
                "type": "text",
                "settings": {
                    "is_mandatory": false
                },
                "attributes": {
                    "payload": {
                        "id": "payload",
                        "help": "Text content (i.e. Lorem ipsum)",
                        "values": "Le Lorem Ipsum est simplement du faux texte employé dans la composition et la mise en page avant impression. Le Lorem Ipsum est le faux texte standard de l'imprimerie depuis les années 1500, quand un imprimeur anonyme assembla ensemble des morceaux de texte pour réaliser un livre spécimen de polices de texte. Il n'a pas fait que survivre cinq siècles, mais s'est aussi adapté à la bureautique informatique, sans que son contenu n'en soit modifié. Il a été popularisé dans les années 1960 grâce à la vente de feuilles Letraset contenant des passages du Lorem Ipsum, et, plus récemment, par son inclusion dans des applications de mise en page de texte, comme Aldus PageMaker."
                    },
                    "color": {
                        "id": "color",
                        "help": "6 or 8 digits hexadecimal color (i.e. #EAEAEA) or a CMYK color (i.e. cmyk(0,10,0,50)) of the text",
                        "values": "cmyka(0,0,0,100,100)"
                    }
                },
                "layout": {
                    "x": 0.179,
                    "y": 2.763,
                    "width": 5.088,
                    "height": 5.5
                }
            }
        ]
    },
    "created_at": 1715775978,
    "updated_at": 1715865885,
    "category_name": "PRO - Tech test"  
}
```
