Design Generation API Documentation
Using our Design Generation API, you can create design and replace text, images, and other elements. This can be incredibly powerful to way to create designs in bulk or on-demand.
This API is in Beta at the moment so expect new features and changes as time goes on. We want to make this an incredibly powerful addition to our arsenal so don't hesitate to reach out if you feel like something is missing or can be improved.
Requirements #
Using Design Generation API #
Before you get started, you need to select a design that you want to use as the base template for your API calls. To do that, open a design in Baseline Studio, select the settings tab on the left, click on "View API Config" and copy the request body it presents to you there.
You can then modify the fields under "changes" in that body to fit your needs.
Request #
- Request URL: https://api.baseline.is/v1/designs/
- Request method: POST
- Return type: application/json
- Content-Type: application/json
Request Header parameters: #
The key should be prefixed by the string literal "Token", with whitespace separating the two strings. For example:
Authorization: Token 9944b09199c62bcf9418ad846dd0e4bbdfc6ee4b
Parameter | Parameter Type | Description |
---|---|---|
Authorization | string | API Key |
Request Body parameters #
Parameter | Type | Description | Required |
---|---|---|---|
template | String | The Design ID to generate new ones based on | Yes |
changes | Array | An array containing the changes you want to make to the design. Each change is in the form of an object | Yes |
Changes array options #
Parameter | Description | Type |
---|---|---|
design_name | The name of the design, for use in Baseline. If empty, old design name will be used | String |
brand | The ID of the brand you want to override the design with | String |
image | An image you want replaced with another one | String |
text | An image you want replaced with another one | String |
Design name object #
Parameter | Description | Required |
---|---|---|
design_name | Used to set a specific | No |
Example #
{
"design_name": "Untitled Design", // Base64 coded binary image
}
Image object #
Parameter | Description | Required |
---|---|---|
id | Id for the specific image layer | Yes |
image_url | URL to an image you want to replace this image with | Yes |
remove_background | Used to set a specific | No |
Example #
{
"id": "47ad1dd7-5150-4746-9131-15548e18b32f",
"image_url": "https://images.pexels.com/photos/5962696/pexels-photo-5962696.jpeg",
"remove_background": 0
},
Text object #
Example #
Parameter | Description | Required |
---|---|---|
id | Id for the specific text layer | Yes |
text | Array of text objects describing the text you want inside this layer | Yes |
{
"id": "1b237da3-62e0-485a-8496-00a505c243c2", // Id of the original image element. Don't change this
"text": [
{
"type": "paragraph",
"attrs": {
"textAlign": "left"
},
"content": [
{
"text": "Take control via API",
"type": "text"
}
]
}
]
}
Example #
A full example can look something like the following:
{
"template": "awy2sGpF7ysukenbyCFNgB",
"changes": [
{
"brand": "3RUPBTX4bCfGTWg2QaU3zq"
},
{
"id": "5616ddbb-14f4-407d-8422-0dcbcabf5f3a",
"image_url": "https://images.pexels.com/photos/1190297/pexels-photo-1190297.jpeg",
"removeBackground": false
},
{
"id": "8b0ab6db-bc80-49f5-9358-ec28beb91137",
"text": [
{
"type": "paragraph",
"attrs": {
"textAlign": "left"
},
"content": [
{
"text": "How to grow your Instagram followers",
"type": "text"
}
]
}
],
"color": "#000000"
},
{
"id": "22bf8784-86f1-40b4-8905-be5b6c1fb1aa",
"text": [
{
"type": "paragraph",
"attrs": {
"textAlign": "left"
},
"content": [
{
"text": "Step by step",
"type": "text"
}
]
}
],
"color": "#000000"
}
]
}
Response #
Successful responses look like this: #
Status Code: 200
{
"template": "ZwRufg4Qfuty7EEZHQsofj",
"name": "Untitled Design",
"editor_url": "http://localhost:9090/studio/ZwRufg4Qfuty7EEZHQsofj",
"image_url": "https://baselined.s3.eu-west-1.amazonaws.com/static/content/designs/ZwRufg4Qfuty7EEZHQsofj/ZwRufg4Qfuty7EEZHQsofj-thumbnail.png",
"width": "1080",
"height": "1920"
}
During the Beta period, every user is limited to 100 requests per day.
Don’t wanna miss a thing?
Sign up for the Baseline Newsletter and get the latest updates from the Baseline Team.