---
title: "List billing email templates"
description: "Every email type, including ones never customised — those return the built-in with customized: false."
canonical_url: "https://twominutebilling.com/help/developers/api-reference/webhooks/list-billing-email-templates"
---
# List billing email templates

> Every email type, including ones never customised — those return the built-in with customized: false.

<api-operation method="GET" path="/v1/businesses/{biz}/emails/templates">
<template v-slot:docs="">

Every email type, including ones never customised — those return the built-in with `customized: false`.

## Path parameters

<table>
<thead>
  <tr>
    <th>
      Parameter
    </th>
    
    <th>
      Type
    </th>
    
    <th>
      Required
    </th>
    
    <th>
      Description
    </th>
  </tr>
</thead>

<tbody>
  <tr>
    <td>
      <code>
        biz
      </code>
    </td>
    
    <td>
      <code>
        string
      </code>
    </td>
    
    <td>
      <strong>
        yes
      </strong>
    </td>
    
    <td>
      Business id (biz_…)
    </td>
  </tr>
</tbody>
</table>

## Response

<table>
<thead>
  <tr>
    <th>
      Field
    </th>
    
    <th>
      Type
    </th>
    
    <th>
      Description
    </th>
  </tr>
</thead>

<tbody>
  <tr>
    <td>
      <code>
        object
      </code>
    </td>
    
    <td>
      <code>
        string
      </code>
    </td>
    
    <td>
      The object type; always <code>
        list
      </code>
      
      . One of <code>
        list
      </code>
      
      .
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        data
      </code>
    </td>
    
    <td>
      <code>
        array of object
      </code>
    </td>
    
    <td>
      The email templates.
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        data.object
      </code>
    </td>
    
    <td>
      <code>
        string
      </code>
    </td>
    
    <td>
      The object type; always <code>
        email_template
      </code>
      
      . One of <code>
        email_template
      </code>
      
      .
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        data.id
      </code>
    </td>
    
    <td>
      <code>
        string
      </code>
    </td>
    
    <td>
      Null when this is the built-in — no override row exists.
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        data.type
      </code>
    </td>
    
    <td>
      <code>
        string
      </code>
    </td>
    
    <td>
      The email type this template is for.
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        data.subject
      </code>
    </td>
    
    <td>
      <code>
        string
      </code>
    </td>
    
    <td>
      The subject line of the email.
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        data.heading
      </code>
    </td>
    
    <td>
      <code>
        string
      </code>
    </td>
    
    <td>
      The heading at the top of the email.
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        data.body
      </code>
    </td>
    
    <td>
      <code>
        string
      </code>
    </td>
    
    <td>
      The body text of the email.
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        data.footer
      </code>
    </td>
    
    <td>
      <code>
        string
      </code>
    </td>
    
    <td>
      This email's own footer, same syntax and HTML subset as body. Null or empty uses the business footer (<code>
        email_config.footerNote
      </code>
      
      ), else the built-in one.
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        data.cta_label
      </code>
    </td>
    
    <td>
      <code>
        string
      </code>
    </td>
    
    <td>
      Button text override. Null keeps <code>
        default_cta_label
      </code>
      
      .
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        data.show_facts
      </code>
    </td>
    
    <td>
      <code>
        boolean
      </code>
    </td>
    
    <td>
      False hides the facts card.
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        data.block_order
      </code>
    </td>
    
    <td>
      <code>
        array of string
      </code>
    </td>
    
    <td>
      Order of the movable sections, each exactly once. Null = body, action, facts, footer.
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        data.default_cta_label
      </code>
    </td>
    
    <td>
      <code>
        string
      </code>
    </td>
    
    <td>
      The engine's button label; null when this email never has a button.
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        data.has_facts
      </code>
    </td>
    
    <td>
      <code>
        boolean
      </code>
    </td>
    
    <td>
      Whether this email ever has a facts card.
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        data.default_footer
      </code>
    </td>
    
    <td>
      <code>
        string
      </code>
    </td>
    
    <td>
      What a null <code>
        footer
      </code>
      
       uses: the business footer (<code>
        email_config.footerNote
      </code>
      
      ), else the built-in one.
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        data.built_in
      </code>
    </td>
    
    <td>
      <code>
        object
      </code>
    </td>
    
    <td>
      The built-in subject, heading and body, for resetting a draft to the default.
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        data.customized
      </code>
    </td>
    
    <td>
      <code>
        boolean
      </code>
    </td>
    
    <td>
      False = the built-in. Improvements to built-ins reach these businesses automatically.
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        data.variables
      </code>
    </td>
    
    <td>
      <code>
        array of object
      </code>
    </td>
    
    <td>
      Merge variables the engine populates for this type.
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        data.attachments
      </code>
    </td>
    
    <td>
      <code>
        object
      </code>
    </td>
    
    <td>
      This business's attachment rule for this email: business config, not template wording, changed through <code>
        email_config.attachments
      </code>
      
      . Null when the email is about no document.
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        data.updated_at
      </code>
    </td>
    
    <td>
      <code>
        string · ISO-8601
      </code>
    </td>
    
    <td>
      When the email template was last changed (ISO-8601 UTC).
    </td>
  </tr>
</tbody>
</table>

## Status codes

<table>
<thead>
  <tr>
    <th>
      Status
    </th>
    
    <th>
      Meaning
    </th>
  </tr>
</thead>

<tbody>
  <tr>
    <td>
      <code>
        200
      </code>
    </td>
    
    <td>
      Success
    </td>
  </tr>
</tbody>
</table>
</template>

<template v-slot:request="">

```bash [Request]
curl "$TMBILLING_URL/v1/businesses/biz_XXXXXXXXXXXX01/emails/templates" \
  -H "Authorization: Bearer $TMBILLING_API_KEY"
```

</template>

<template v-slot:response="">

```json [200 OK]
{
  "object": "list",
  "data": [
    {
      "object": "email_template",
      "type": "invoice_issued",
      "subject": "Your invoice from Brightwater Analytics",
      "heading": "Thanks for your business",
      "body": "Requested by the customer.",
      "customized": false
    }
  ]
}
```

</template>
</api-operation>


## Sitemap

See the full [sitemap](https://twominutebilling.com/sitemap.md) for all pages.
