Marketo Email Templates API

The Email Templates API from Marketo — 10 operation(s) for email templates.

Operations 13

GET /rest/asset/v1/emailTemplate/byName.json Get Email Template by Name #
GET /rest/asset/v1/emailTemplate/{id}.json Get Email Template by Id #
POST /rest/asset/v1/emailTemplate/{id}.json Update Email Template Metadata #
POST /rest/asset/v1/emailTemplate/{id}/approveDraft.json Approve Email Template Draft #
POST /rest/asset/v1/emailTemplate/{id}/clone.json Clone Email Template #
GET /rest/asset/v1/emailTemplate/{id}/content Get Email Template Content by Id #
POST /rest/asset/v1/emailTemplate/{id}/content.json Update Email Template Content #
POST /rest/asset/v1/emailTemplate/{id}/delete.json Delete Email Template #
POST /rest/asset/v1/emailTemplate/{id}/discardDraft.json Discard Email Template Draft #
POST /rest/asset/v1/emailTemplate/{id}/unapprove.json Unapprove Email Template Draft #
GET /rest/asset/v1/emailTemplates.json Get Email Templates #
POST /rest/asset/v1/emailTemplates.json Create Email Template #
GET /rest/asset/v1/emailTemplates/{id}/usedBy.json Get Email Template Used By #

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/marketo-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

marketo-email-templates-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  description: Marketo Engage Rest API
  version: '1.0'
  title: Marketo Engage Rest Email Templates API
  termsOfService: https://www.adobe.com/legal.html
  contact:
    name: Adobe Developer Relations
    url: https://experienceleague.adobe.com/en/docs/marketo-developer/marketo/home
    email: ''
  license:
    name: API License Agreement
    url: https://experienceleague.adobe.com/en/docs/marketo-developer/marketo/api-license
servers:
- url: https://localhost:8080/
tags:
- name: Email Templates
  description: Email Template Controller
paths:
  /rest/asset/v1/emailTemplate/byName.json:
    get:
      tags:
      - Email Templates
      summary: Get Email Template by Name
      description: 'Retrieves and email template record by the given name. Required Permissions: Read-Only Assets, Read-Write Assets'
      operationId: getTemplateByNameUsingGET
      parameters:
      - name: name
        in: query
        description: name
        required: true
        schema:
          type: string
      - name: status
        in: query
        description: Status filter for draft or approved versions
        required: false
        schema:
          type: string
          enum:
          - approved
          - draft
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseOfEmailTemplateResponse'
  /rest/asset/v1/emailTemplate/{id}.json:
    get:
      tags:
      - Email Templates
      summary: Get Email Template by Id
      description: 'Returns an email template record by its id. Required Permissions: Read-Only Assets, Read-Write Assets'
      operationId: getTemplateByIdUsingGET
      parameters:
      - name: id
        in: path
        description: id
        required: true
        schema:
          type: integer
          format: int32
      - name: status
        in: query
        description: Status filter for draft or approved versions
        required: false
        schema:
          type: string
          enum:
          - approved
          - draft
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseOfEmailTemplateResponse'
    post:
      tags:
      - Email Templates
      summary: Update Email Template Metadata
      description: 'Updates the metadata for the designated email template. Required Permissions: Read-Write Assets'
      operationId: updateEmailTemplateUsingPOST
      parameters:
      - name: id
        in: path
        description: id
        required: true
        schema:
          type: integer
          format: int32
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseOfEmailTemplateResponse'
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/UpdateEmailTemplateMetaDataRequest'
        description: updateEmailMetaDataRequest
        required: true
  /rest/asset/v1/emailTemplate/{id}/approveDraft.json:
    post:
      tags:
      - Email Templates
      summary: Approve Email Template Draft
      description: 'Approves the current draft of the email template. Required Permissions: Approve Assets'
      operationId: approveDraftUsingPOST_1
      parameters:
      - name: id
        in: path
        description: id
        required: true
        schema:
          type: integer
          format: int32
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseOfEmailTemplateResponse'
  /rest/asset/v1/emailTemplate/{id}/clone.json:
    post:
      tags:
      - Email Templates
      summary: Clone Email Template
      description: 'Clones the designated email template. Required Permissions: Read-Write Assets'
      operationId: cloneTemplateUsingPOST
      parameters:
      - name: id
        in: path
        description: id
        required: true
        schema:
          type: integer
          format: int32
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseOfEmailTemplateResponse'
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/CloneEmailTemplateRequest'
        description: cloneEmailTemplateRequest
        required: true
  /rest/asset/v1/emailTemplate/{id}/content:
    get:
      tags:
      - Email Templates
      summary: Get Email Template Content by Id
      description: 'Returns the content for a given email template. Required Permissions: Read-Only Assets, Read-Write Assets'
      operationId: getTemplateContentByIdUsingGET
      parameters:
      - name: id
        in: path
        description: id
        required: true
        schema:
          type: integer
          format: int32
      - name: status
        in: query
        description: Status filter for draft or approved versions
        required: false
        schema:
          type: string
          enum:
          - approved
          - draft
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseOfEmailTemplateContentResponse'
  /rest/asset/v1/emailTemplate/{id}/content.json:
    post:
      tags:
      - Email Templates
      summary: Update Email Template Content
      description: 'Updates the content of the given email template. Required Permissions: Read-Write Assets'
      operationId: updateEmailTemplateContentUsingPOST
      parameters:
      - name: id
        in: path
        description: id
        required: true
        schema:
          type: integer
          format: int32
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseOfIdResponse'
      requestBody:
        content:
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/UpdateEmailTemplateContentRequest'
        description: updateEmailTemplateContentRequest
  /rest/asset/v1/emailTemplate/{id}/delete.json:
    post:
      tags:
      - Email Templates
      summary: Delete Email Template
      description: 'Deletes the designated email template. Required Permissions: Read-Write Assets'
      operationId: deleteTemplateUsingPOST
      parameters:
      - name: id
        in: path
        description: id
        required: true
        schema:
          type: integer
          format: int32
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseOfIdResponse'
  /rest/asset/v1/emailTemplate/{id}/discardDraft.json:
    post:
      tags:
      - Email Templates
      summary: Discard Email Template Draft
      description: 'Discards the current draft of the email template. Required Permissions: Read-Write Assets'
      operationId: discardDraftUsingPOST_1
      parameters:
      - name: id
        in: path
        description: id
        required: true
        schema:
          type: integer
          format: int32
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseOfIdResponse'
  /rest/asset/v1/emailTemplate/{id}/unapprove.json:
    post:
      tags:
      - Email Templates
      summary: Unapprove Email Template Draft
      description: 'Unapproves the current approved version of the Email Template. Required Permissions: Approve Assets'
      operationId: unapproveDraftUsingPOST_1
      parameters:
      - name: id
        in: path
        description: id
        required: true
        schema:
          type: integer
          format: int32
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseOfEmailTemplateResponse'
  /rest/asset/v1/emailTemplates.json:
    get:
      tags:
      - Email Templates
      summary: Get Email Templates
      description: 'Returns a list of email template records accessible in the target instance. Required Permissions: Read-Only Assets, Read-Write Assets.


        Note: Email templates created with the new email designer may appear in this API''s response, but some of the fields may be null or incomplete. For complete and reliable details of these assets, use the Email Templates (New) APIs; refer to the <a href="https://developer.adobe.com/marketo-apis/api/asset#operation/filterContentUsingGET_emailtemplate">List Email Templates</a> endpoint.'
      operationId: getEmailTemplatesUsingGET
      parameters:
      - name: offset
        in: query
        description: Integer offset for paging
        required: false
        schema:
          type: integer
          format: int32
      - name: maxReturn
        in: query
        description: Maximum number of records to return. Max 200, default 20
        required: false
        schema:
          type: integer
          format: int32
      - in: query
        name: status
        description: Status filter for draft or approved versions
        required: false
        schema:
          type: string
          enum:
          - approved
          - draft
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseOfEmailTemplateResponse'
    post:
      tags:
      - Email Templates
      summary: Create Email Template
      description: 'Creates a new email template. Required Permissions: Read-Write Assets'
      operationId: createEmailTemplateUsingPOST
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseOfEmailTemplateResponse'
      requestBody:
        content:
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/CreateEmailTemplateRequest'
        description: createEmailTemplateRequest
        required: true
  /rest/asset/v1/emailTemplates/{id}/usedBy.json:
    get:
      tags:
      - Email Templates
      summary: Get Email Template Used By
      description: 'Returns a list of email records which depend on a given email template. Required Permissions: Read-Only Assets, Read-Write Assets'
      operationId: getEmailTemplateUsedByUsingGET
      parameters:
      - name: id
        in: path
        description: Id of the email template
        required: true
        schema:
          type: integer
          format: int32
      - name: offset
        in: query
        description: Integer offset for paging
        required: false
        schema:
          type: integer
          format: int32
      - name: maxReturn
        in: query
        description: Maximum number of records to return. Max 200, default 20
        required: false
        schema:
          type: integer
          format: int32
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseOfEmailTemplateUsedByResponse'
components:
  schemas:
    Error:
      type: object
      required:
      - code
      - message
      properties:
        code:
          type: string
          description: Error code of the error. See full list of error codes <a href="https://developers.marketo.com/rest-api/error-codes/">here</a>
        message:
          type: string
          description: Message describing the cause of the error
    Folder:
      type: object
      required:
      - id
      - type
      properties:
        id:
          type: integer
          format: int32
          description: Id of the folder
        type:
          type: string
          description: Type of folder
          enum:
          - Folder
          - Program
      description: JSON representation of a folder
    CreateEmailTemplateRequest:
      type: object
      required:
      - name
      - folder
      - content
      properties:
        name:
          type: string
          description: Name of the Email Template. Must be unique under the parent folder.
        folder:
          description: JSON representation of parent folder, with members 'id', and 'type' which may be 'Folder' or 'Program'
          $ref: '#/components/schemas/Folder'
        description:
          type: string
          description: Description of the email template
        content:
          type: string
          description: HTML content for template. Multipart file.
    UpdateEmailTemplateContentRequest:
      type: object
      properties:
        content:
          type: string
          description: Content for the email template. Multipart file.
    UpdateEmailTemplateMetaDataRequest:
      type: object
      properties:
        description:
          type: string
          description: Description of the asset
        name:
          type: string
          description: Name of the Email Template
    ResponseOfEmailTemplateUsedByResponse:
      type: object
      properties:
        errors:
          type: array
          items:
            $ref: '#/components/schemas/Error'
        requestId:
          type: string
        result:
          type: array
          items:
            $ref: '#/components/schemas/EmailTemplateUsedByResponse'
        success:
          type: boolean
        warnings:
          type: array
          items:
            type: string
    ResponseOfEmailTemplateResponse:
      type: object
      properties:
        errors:
          type: array
          items:
            $ref: '#/components/schemas/Error'
        requestId:
          type: string
        result:
          type: array
          items:
            $ref: '#/components/schemas/EmailTemplateResponse'
        success:
          type: boolean
        warnings:
          type: array
          items:
            type: string
    EmailTemplateUsedByResponse:
      type: object
      required:
      - id
      - name
      - type
      - status
      - updatedAt
      properties:
        id:
          type: integer
          format: int64
          description: Id of the asset
        name:
          type: string
          description: Name of the asset
        type:
          type: string
          description: Type of asset
        status:
          type: string
          description: Status filter for draft or approved versions
          enum:
          - approved
          - draft
        updatedAt:
          type: string
          format: date-time
          description: Datetime the asset was most recently updated
    EmailTemplateResponse:
      type: object
      required:
      - folder
      - status
      properties:
        createdAt:
          type: string
          format: date-time
          description: Datetime the asset was created
        description:
          type: string
          description: Description of the asset
        folder:
          description: JSON representation of parent folder, with members 'id', and 'type' which may be 'Folder' or 'Program'
          $ref: '#/components/schemas/Folder'
        id:
          type: integer
          format: int64
          description: Id of the asset
        name:
          type: string
          description: Name of the asset
        status:
          type: string
          description: Status filter for draft or approved versions
        updatedAt:
          type: string
          format: date-time
          description: Datetime the asset was most recently updated
        url:
          type: string
          description: Url of the asset in the Marketo UI
        version:
          type: integer
          format: int32
          description: Template version type
          enum:
          - 1
          - 2
        workspace:
          type: string
          description: Name of the workspace
    CloneEmailTemplateRequest:
      type: object
      required:
      - folder
      - name
      properties:
        description:
          type: string
          description: Description of the asset
        folder:
          description: JSON representation of parent folder, with members 'id', and 'type' which may be 'Folder' or 'Program'
          $ref: '#/components/schemas/Folder'
        name:
          type: string
          description: Name of the Email Template
    EmailTemplateContentResponse:
      type: object
      required:
      - content
      - id
      - status
      properties:
        content:
          type: string
          description: HTML content of the template
        id:
          type: integer
          format: int32
          description: Unique integer id of the email template
        status:
          type: string
          description: Status filter for draft or approved versions
          enum:
          - approved
          - draft
    IdResponse:
      type: object
      required:
      - id
      properties:
        id:
          type: integer
          format: int32
          description: Id of the asset
    ResponseOfEmailTemplateContentResponse:
      type: object
      properties:
        errors:
          type: array
          items:
            $ref: '#/components/schemas/Error'
        requestId:
          type: string
        result:
          type: array
          items:
            $ref: '#/components/schemas/EmailTemplateContentResponse'
        success:
          type: boolean
        warnings:
          type: array
          items:
            type: string
    ResponseOfIdResponse:
      type: object
      properties:
        errors:
          type: array
          items:
            $ref: '#/components/schemas/Error'
        requestId:
          type: string
        result:
          type: array
          items:
            $ref: '#/components/schemas/IdResponse'
        success:
          type: boolean
        warnings:
          type: array
          items:
            type: string