Braze Templates > Email Templates API

The Templates > Email Templates API from Braze — 4 operation(s) for templates > email templates.

Operations 4

POST /templates/email/update Update Email Template #
GET /templates/email/list List Available Email Templates #
GET /templates/email/info See Email Template Information #
POST /templates/email/create Create Email Template #

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/braze-templates-email-templates-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

braze-templates-email-templates-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Braze Templates > Email Templates API
  description: The Braze and Radar integration allows you to access sophisticated location-based campaign triggers and user profile enrichment with rich, first-party location data.
  version: 1.0.0
servers:
- url: https://rest.iad-01.braze.com
  description: REST endpoint for instance US-01
- url: https://rest.iad-01.braze.com
  description: REST endpoint for instance US-01
- url: https://rest.iad-02.braze.com
  description: REST endpoint for instance US-02
- url: https://rest.iad-03.braze.com
  description: REST endpoint for instance US-03
- url: https://rest.iad-04.braze.com
  description: REST endpoint for instance US-04
- url: https://rest.iad-05.braze.com
  description: REST endpoint for instance US-05
- url: https://rest.iad-06.braze.com
  description: REST endpoint for instance US-06
- url: https://rest.iad-08.braze.com
  description: REST endpoint for instance US-08
- url: https://rest.fra-01.braze.eu
  description: REST endpoint for instance EU-01
- url: https://rest.fra-02.braze.eu
  description: REST endpoint for instance EU-02
security:
- BearerAuth: []
tags:
- name: Templates > Email Templates
paths:
  /templates/email/update:
    post:
      tags:
      - Templates > Email Templates
      summary: Update Email Template
      description: '> Use this endpoint to update email templates on the Braze dashboard.


        To use this endpoint, youll need to generate an API key with the `templates.email.update` permission.


        You can access an email templates `email_template_id` by navigating to it on the **Templates & Media** page. The Create email template endpoint will also return an `email_template_id` reference.


        All fields other than the `email_template_id` are optional, but you must specify at least one field to update.


        ### Rate limit


        We apply the default Braze rate limit of 250,000 requests per hour to this endpoint, as documented in API rate limits.


        ### Request parameters


        | Parameter | Required | Data Type | Description |

        | --- | --- | --- | --- |

        | `email_template_id` | Required | String | Your email template''s API identifier. |

        | `template_name` | Optional | String | Name of your email template. |

        | `subject` | Optional | String | Email template subject line. |

        | `body` | Optional | String | Email template body that may include HTML. |

        | `plaintext_body` | Optional | String | A plaintext version of the email template body. |

        | `preheader` | Optional | String | Email preheader used to generate previews in some clients. |

        | `tags` | Optional | String | Tags must already exist. |

        | `should_inline_css` | Optional | Boolean | Enables or disables the `inline_css` feature per template. If not provided, Braze will use the default setting for the AppGroup. One of `true` or `false` is expected. |


        ### Possible errors


        The following table lists possible returned errors and their associated troubleshooting steps, if applicable.


        | Error | Troubleshooting |

        | --- | --- |

        | Template name is required | |

        | Tags must be an array | Tags must be formatted as an array of strings, for example `["marketing", "promotional", "transactional"]`. |

        | All tags must be strings | Make sure your tags are encapsulated in quotes (`""`). |

        | Some tags could not be found | To add a tag when creating an email template, the tag must already exist in Braze. |

        | Invalid value for `should_inline_css`. One of `true` or `false` was expected | This parameter only accepts boolean values (true or false). Make sure the value for `should_inline_css` is not encapsulated in quotes (`""`), which causes the value to be sent as a string instead. |'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              example:
                email_template_id: email_template_id
                template_name: Weekly Newsletter
                subject: This Week's Styles
                body: Check out this week's digital lookbook to inspire your outfits. Take a look at https://www.braze.com/
                plaintext_body: This is the updated text within my email body and here is a link to https://www.braze.com/.
                preheader: We want you to have the best looks this Summer
                tags:
                - Tag1
                - Tag2
              properties:
                email_template_id:
                  type: string
                template_name:
                  type: string
                subject:
                  type: string
                body:
                  type: string
                plaintext_body:
                  type: string
                preheader:
                  type: string
                tags:
                  type: array
                  items:
                    type: string
      parameters:
      - name: Content-Type
        in: header
        schema:
          type: string
        example: application/json
      - name: Authorization
        in: header
        schema:
          type: string
        example: Bearer {{api_key}}
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
        '201':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
      operationId: postTemplatesEmailUpdate
      x-operation-id-source: derived
  /templates/email/list:
    get:
      tags:
      - Templates > Email Templates
      summary: List Available Email Templates
      description: '> Use this endpoint to get a list of available templates in your Braze account.


        To use this endpoint, youll need to generate an API key with the `templates.email.list` permission.


        ### Rate limit


        We apply the default Braze rate limit of 250,000 requests per hour to this endpoint, as documented in API rate limits.


        ### Response


        > **Important:** Templates built using the Drag & Drop Editor for email are not provided in this response.


        ``` json

        {

        "count": number of templates returned

        "templates": [template with the following properties]:

        "email_template_id": (string) your email template''s API Identifier,

        "template_name": (string) the name of your email template,

        "created_at": (string, in ISO 8601),

        "updated_at": (string, in ISO 8601),

        "tags": (array of strings) tags appended to the template

        }


        ```'
      parameters:
      - name: Authorization
        in: header
        schema:
          type: string
        example: Bearer {{api_key}}
      - name: modified_after
        in: query
        schema:
          type: string
        description: '(Optional) String in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)


          Retrieve only templates updated at or after the given time.'
        example: '2020-01-01T01:01:01.000000'
      - name: modified_before
        in: query
        schema:
          type: string
        description: '(Optional) String in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)


          Retrieve only templates updated at or before the given time.'
        example: '2020-02-01T01:01:01.000000'
      - name: limit
        in: query
        schema:
          type: integer
        description: '(Optional) Positive Number


          Maximum number of templates to retrieve. Default to 100 if not provided, with a maximum acceptable value of 1000.'
        example: 1
      - name: offset
        in: query
        schema:
          type: integer
        description: '(Optional) Positive Number


          Number of templates to skip before returning rest of the templates that fit the search criteria.'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
      operationId: getTemplatesEmailList
      x-operation-id-source: derived
  /templates/email/info:
    get:
      tags:
      - Templates > Email Templates
      summary: See Email Template Information
      description: '> Use this endpoint to get information on your email templates.


        To use this endpoint, youll need to generate an API key with the `templates.email.info` permission.


        > **Important:** Templates built using the drag-and-drop editor for email are not accepted.


        ### Rate limit


        We apply the default Braze rate limit of 250,000 requests per hour to this endpoint, as documented in API rate limits.


        ### Response


        ``` json

        Content-Type: application/json

        Authorization: Bearer YOUR-REST-API-KEY

        {

        "email_template_id": (string) your email template''s API Identifier,

        "template_name": (string) the name of your email template,

        "description": (string) email template description,

        "subject": (string) the email template subject line,

        "preheader": (optional, string) the email preheader used to generate previews in some clients),

        "body": (optional, string) the email template body that may include HTML,

        "plaintext_body": (optional, string) a plaintext version of the email template body,

        "should_inline_css": (optional, boolean) whether there is inline CSS in the body of the template - defaults to the css inlining value for the App Group,

        "tags": (string) tag names,

        "created_at": (string, in ISO 8601),

        "updated_at": (string, in ISO 8601)

        }


        ```


        Images in this response will show in the `body` variable as HTML.'
      parameters:
      - name: Authorization
        in: header
        schema:
          type: string
        example: Bearer {{api_key}}
      - name: email_template_id
        in: query
        schema:
          type: string
        description: '(Required) String


          See [email template''s API identifier](https://www.braze.com/docs/api/identifier_types/).'
        example: '{{email_template_id}}'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
      operationId: getTemplatesEmailInfo
      x-operation-id-source: derived
  /templates/email/create:
    post:
      tags:
      - Templates > Email Templates
      summary: Create Email Template
      description: '> Use this endpoint to create email templates on the Braze dashboard.


        To use this endpoint, youll need to generate an API key with the `templates.email.create` permission.


        These templates will be available on the **Templates & Media** page. The response from this endpoint will include a field for `email_template_id`, which can be used to update the template in subsequent API calls.


        Users email subscription status can be updated and retrieved via Braze using a RESTful API. You can use the API to set up bi-directional sync between Braze and other email systems or your own database. All API requests are made over HTTPS.


        ### Rate limit


        We apply the default Braze rate limit of 250,000 requests per hour to this endpoint, as documented in API rate limits.


        ### Request parameters


        | Parameter | Required | Data Type | Description |

        | --- | --- | --- | --- |

        | `template_name` | Required | String | Name of your email template. |

        | `subject` | Required | String | Email template subject line. |

        | `body` | Required | String | Email template body that may include HTML. |

        | `plaintext_body` | Optional | String | A plaintext version of the email template body. |

        | `preheader` | Optional | String | Email preheader used to generate previews in some clients. |

        | `tags` | Optional | String | Tags must already exist. |

        | `should_inline_css` | Optional | Boolean | Enables or disables the `inline_css` feature per template. If not provided, Braze will use the default setting for the app group. One of `true` or `false` is expected. |


        ### Possible errors


        The following table lists possible returned errors and their associated troubleshooting steps, if applicable.


        | Error | Troubleshooting |

        | --- | --- |

        | Template name is required | Enter a template name. |

        | Tags must be an array | Tags must be formatted as an array of strings, for example `["marketing", "promotional", "transactional"]`. |

        | All tags must be strings | Make sure your tags are encapsulated in quotes (`""`). |

        | Some tags could not be found | To add a tag when creating an email template, the tag must already exist in Braze. |

        | Email must have valid Content Block names | The email contains Content Blocks that don''t exist in this environment. |

        | Invalid value for `should_inline_css`. One of `true` or `false` was expected | This parameter only accepts boolean values (true or false). Make sure the value for `should_inline_css` is not encapsulated in quotes (`""`), which causes the value to be sent as a string instead. |'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              example:
                template_name: email_template_name
                subject: Welcome to my email template!
                body: This is the text within my email body and https://www.braze.com/ here is a link to Braze.com.
                plaintext_body: This is the text within my email body and here is a link to https://www.braze.com/.
                preheader: My preheader is pretty cool.
                tags:
                - Tag1
                - Tag2
              properties:
                template_name:
                  type: string
                subject:
                  type: string
                body:
                  type: string
                plaintext_body:
                  type: string
                preheader:
                  type: string
                tags:
                  type: array
                  items:
                    type: string
      parameters:
      - name: Content-Type
        in: header
        schema:
          type: string
        example: application/json
      - name: Authorization
        in: header
        schema:
          type: string
        example: Bearer {{api_key}}
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
        '201':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
      operationId: postTemplatesEmailCreate
      x-operation-id-source: derived
components:
  responses:
    Unauthorized:
      description: 401 Unauthorized
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    BadRequest:
      description: 400 Bad Request
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    NotFound:
      description: 404 Not Found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Forbidden:
      description: 403 Forbidden
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    InternalServerError:
      description: 500 Internal Server Error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    TooManyRequests:
      description: 429 Rate Limited
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  schemas:
    Error:
      type: object
      properties:
        message:
          type: string
        errors:
          type: array
          items:
            type: string
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer