Customer.io Design Studio API

Use these endpoints to manage emails, translations, and components made with Design Studio. You can programmatically manage Design Studio content and migrate templates from an external service. To manage assets like images, use the [Assets API](/integrations/api/app/#tag/assets). These endpoints do not enable you to publish changes to connected workflows like campaigns, nor can you update global styles. They're only for content management at this time. Learn more about the [best practices](/integrations/api/integrate-with-ds/) for sending HTML through these endpoints. If you're an external tool and interested in being listed as one of our integrated partners, please reach out to [product@customer.io](mailto:product@customer.io) to chat with a Product Manager!

Business capability
Marketing Management BC-400

Operations 20

Each operation below carries the questions people ask an LLM about it and the instructions they give an agent to run it. Generated by API Evangelist overlay

GET /v1/design_studio/folders List Design Studio folders · List folders #
Ask an LLM
“What folders do I have in Design Studio?”
“Can I list Design Studio folders created after a certain date?”
Tell an agent
List the Design Studio folders under {parent_folder_id}.
Show Design Studio folders sorted by {sort_by}.
POST /v1/design_studio/folders Create a Design Studio folder · Create a folder #
Ask an LLM
“How do I create a folder in Design Studio for my templates?”
“Can I create a Design Studio subfolder inside another folder?”
Tell an agent
Create a Design Studio folder named {name}.
Create Design Studio folder {name} under {parent_folder_id}.
GET /v1/design_studio/folders/{id} Get a Design Studio folder · Get a folder #
Ask an LLM
“How do I look up a Design Studio folder by its UUID?”
“Which parent does a Design Studio folder belong to?”
Tell an agent
Get Design Studio folder {id}.
Show details of Design Studio folder {id}.
PUT /v1/design_studio/folders/{id} Rename or move a Design Studio folder · Update a folder #
Ask an LLM
“Can I rename a Design Studio folder?”
“If I move a Design Studio folder, do its files move too?”
Tell an agent
Rename Design Studio folder {id} to {name}.
Move Design Studio folder {id} into {parent_folder_id}.
DELETE /v1/design_studio/folders/{id} Delete a Design Studio folder and contents · Delete a folder #
Ask an LLM
“How do I delete a Design Studio folder along with everything in it?”
“Why can't I delete a Design Studio folder with emails used in campaigns?”
Tell an agent destructive · confirm first
Delete Design Studio folder {id} and all its files.
Remove Design Studio folder {id}.
GET /v1/design_studio/emails List Design Studio emails · List emails #
Ask an LLM
“What emails have I built in Design Studio?”
“Can I list only Design Studio emails that are templates or have translations?”
Tell an agent
List my Design Studio emails.
Show Design Studio emails in folder {parent_folder_id}.
POST /v1/design_studio/emails Create a Design Studio email · Create an email #
Ask an LLM
“How do I create a new email in Design Studio through the API?”
“Can I save a Design Studio email as a template?”
Tell an agent
Create a Design Studio email named {name}.
Create Design Studio email {name} with content {content}.
GET /v1/design_studio/emails/{id} Get a Design Studio email · Get an email #
Ask an LLM
“How do I get the content and envelope of a Design Studio email?”
“Does fetching a Design Studio email include its translations?”
Tell an agent
Get Design Studio email {id}.
Show the content and envelope of Design Studio email {id}.
PUT /v1/design_studio/emails/{id} Update a Design Studio email · Update an email #
Ask an LLM
“How do I change the subject or content of a Design Studio email?”
“Does updating a Design Studio email publish it?”
Tell an agent
Rename Design Studio email {id} to {name}.
Update the content of Design Studio email {id} to {content}.
DELETE /v1/design_studio/emails/{id} Delete a Design Studio email · Delete an email #
Ask an LLM
“How do I delete an email from Design Studio?”
“Can I delete a Design Studio email linked to a campaign?”
Tell an agent destructive · confirm first
Delete Design Studio email {id}.
Remove Design Studio email {id} and its translations.
GET /v1/design_studio/emails/{id}/languages List translations of a Design Studio email · List email translations #
Ask an LLM
“Which languages is a Design Studio email translated into?”
“How do I get every translation of one Design Studio email?”
Tell an agent
List translations of Design Studio email {id}.
Show all language versions of Design Studio email {id}.
POST /v1/design_studio/emails/{id}/languages Add a translation to a Design Studio email · Create an email translation #
Ask an LLM
“How do I add a French version of a Design Studio email?”
“If I skip the content when adding a translation, what gets copied?”
Tell an agent
Add a {language} translation to Design Studio email {id}.
Create the {language} version of Design Studio email {id} with content {content}.
GET /v1/design_studio/emails/{id}/languages/{language} Get one translation of a Design Studio email · Get an email translation #
Ask an LLM
“How do I see the Spanish version of a Design Studio email?”
“Can I fetch a Design Studio email translation by language code?”
Tell an agent
Get the {language} translation of Design Studio email {id}.
Show Design Studio email {id} in {language}.
PUT /v1/design_studio/emails/{id}/languages/{language} Update a Design Studio email translation · Update an email translation #
Ask an LLM
“How do I edit the German translation of a Design Studio email?”
“Does editing a Design Studio translation publish it?”
Tell an agent
Update the {language} translation of Design Studio email {id}.
Set the {language} content of Design Studio email {id} to {content}.
DELETE /v1/design_studio/emails/{id}/languages/{language} Delete a Design Studio email translation · Delete an email translation #
Ask an LLM
“How do I remove one language from a Design Studio email?”
“Can I delete a translation from an email linked to a workflow?”
Tell an agent destructive · confirm first
Delete the {language} translation of Design Studio email {id}.
Remove {language} from Design Studio email {id}.
GET /v1/design_studio/components List Design Studio components · List components #
Ask an LLM
“What reusable components have I built in Design Studio?”
“Can I filter Design Studio components by their tag?”
Tell an agent
List my Design Studio components.
Show Design Studio components with tag {tag}.
POST /v1/design_studio/components Create a Design Studio component · Create a component #
Ask an LLM
“How do I create a custom reusable component in Design Studio?”
“What do I need to provide to make a new Design Studio component?”
Tell an agent
Create a Design Studio component {name} with tag {tag} and content {content}.
Add a custom component called {name} tagged {tag} using {content}.
GET /v1/design_studio/components/{id} Get a Design Studio component · Get a component #
Ask an LLM
“How do I read the full content of a Design Studio component?”
“Can I fetch one Design Studio component by ID?”
Tell an agent
Get Design Studio component {id}.
Show the content of Design Studio component {id}.
PUT /v1/design_studio/components/{id} Update a Design Studio component · Update a component #
Ask an LLM
“How do I change the content of an existing Design Studio component?”
“Can I retag or move a Design Studio component?”
Tell an agent
Update Design Studio component {id} content to {content}.
Rename Design Studio component {id} to {name}.
DELETE /v1/design_studio/components/{id} Delete a Design Studio component · Delete a component #
Ask an LLM
“How do I delete a Design Studio component?”
“What happens to emails that use a component I delete?”
Tell an agent destructive · confirm first
Delete Design Studio component {id}.
Remove component {id} from Design Studio.

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/customer-io:customer-io-design-studio-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

customer-io-design-studio-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  version: 1.0.0
  title: Customer.io App Design Studio API
  description: Our App API provides ways to trigger messages and retrieve information about people, campaigns, broadcasts, and more.
servers:
- url: https://api.customer.io
  description: The base URL for broadcasts, transactional messages, and data-retrieval APIs. These endpoints use bearer authorization, and require a [token that you generate in the UI](https://fly.customer.io/settings/api_credentials?keyType=app).
- url: https://api-eu.customer.io
  description: The base URL for broadcasts, transactional messages, and data-retrieval APIs (EU region). These endpoints use bearer authorization, and require a [token that you generate in the UI](https://fly.customer.io/settings/api_credentials?keyType=app).
tags:


# --- truncated at 32 KB (393 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/customer-io/refs/heads/main/openapi/customer-io-design-studio-api-openapi.yml