Sequenzy Email AI Style API

The Email AI Style API from Sequenzy — 1 operation(s) for email ai style.

Operations 3

GET /email-ai-style Get saved AI email style #
PUT /email-ai-style Save AI email style #
DELETE /email-ai-style Clear saved AI email style #

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/sequenzy:sequenzy-email-ai-style-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

sequenzy-email-ai-style-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Sequenzy Email AI Style API
  description: Sequenzy API for managing subscribers, tags, events, sequences, and transactional emails
  version: 1.0.0
servers:
- url: https://api.sequenzy.com/api/v1
  description: Production server
- url: https://api.sequenzy.com/v1
  description: Legacy production server alias
security:
- bearerAuth: []
tags:
- name: Email AI Style
paths:
  /email-ai-style:
    get:
      operationId: getEmailAiStyle
      summary: Get saved AI email style
      description: Requires emails:read. Returns the saved appearance and its revision. Read and review this state before replacing or clearing it.
      tags:
      - Email AI Style
      responses:
        '200':
          description: Current saved-style state
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmailAiStyleState'
        '401':
          description: Missing or invalid API key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Missing required scope or workspace role cannot perform this operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Company or accessible source email not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '503':
          $ref: '#/components/responses/TransientDatabaseUnavailable'
    put:
      operationId: saveEmailAiStyle
      summary: Save AI email style
      description: Requires emails:write and access to the source email. Snapshots the stored email appearance, using email then company theme and font defaults, or the optional unsaved canvas, plus detected layout habits such as dotted dividers around every button. Existing emails and company theme remain unchanged. Marketers cannot capture transactional sources. Replaces only the expected revision; explicit generation style requests and plain-text choices still take precedence.
      tags:
      - Email AI Style
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - emailId
              - expectedStyleId
              properties:
                emailId:
                  type: string
                  minLength: 1
                  description: Source email ID in this company, including campaign, sequence and transactional email rows. Use the underlying email ID, not a campaign ID or transactional slug.
                expectedStyleId:
                  type:
                  - string
                  - 'null'
                  minLength: 1
                  description: revisionId returned by GET. Use null only when no style is stored.
                canvas:
                  $ref: '#/components/schemas/EmailAiStyleCanvas'
                layoutRuleIds:
                  type: array
                  maxItems: 20
                  description: IDs of detected layout habits to keep. Omit to keep every habit detected in the source; pass an empty array to keep none. Unknown IDs are ignored. Review style.layout.rules in the response.
                  items:
                    type: string
                    minLength: 1
                    maxLength: 200
                notes:
                  type: string
                  maxLength: 500
                  description: Optional design notes for future generations, for example "always open with a short video". Treated as design guidance, never as email content.
      responses:
        '200':
          description: Current saved-style state
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmailAiStyleState'
        '400':
          description: Invalid or oversized canvas, or no substantive email content
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Missing or invalid API key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Missing required scope or workspace role cannot perform this operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Company or accessible source email not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '409':
          description: AI_STYLE_CONFLICT. Get the current style, review it and retry with its revisionId. Do not automatically retry a conflicting write.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '422':
          description: Missing or malformed required fields
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '503':
          $ref: '#/components/responses/TransientDatabaseUnavailable'
    delete:
      operationId: clearEmailAiStyle
      summary: Clear saved AI email style
      description: Requires emails:write. Clears only the reviewed revision. Future generations use normal brand defaults; existing emails stay unchanged. Replayed or stale clears return 409.
      tags:
      - Email AI Style
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - expectedStyleId
              properties:
                expectedStyleId:
                  type: string
                  minLength: 1
                  description: Nonempty revisionId returned by GET, including unsupported-version revisions.
      responses:
        '200':
          description: Current saved-style state
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmailAiStyleState'
        '400':
          description: Invalid or oversized canvas, or no substantive email content
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Missing or invalid API key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Missing required scope or workspace role cannot perform this operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Company or accessible source email not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '409':
          description: AI_STYLE_CONFLICT. Get the current style, review it and retry with its revisionId. Do not automatically retry a conflicting write.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '422':
          description: Missing or malformed required fields
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '503':
          $ref: '#/components/responses/TransientDatabaseUnavailable'
components:
  headers:
    RetryAfter:
      description: Number of seconds to wait before retrying the request.
      schema:
        type: integer
        minimum: 1
        example: 1
  schemas:
    EmailAiStyleCanvas:
      type: object
      required:
      - blocks
      - theme
      - fontFamily
      - emailPreset
      properties:
        blocks:
          type: array
          maxItems: 500
          description: Native blocks JSON, limited to 500,000 serialized characters. Must contain substantive email content.
          items:
            type: object
            additionalProperties: true
        theme:
          type: object
          description: Complete editor theme. Required color keys are primary, background, surface, text, mutedText, heading, border and link. Required typography keys are baseFontSize, leadFontSize, baseLineHeight, heading1Size, heading2Size, heading3Size and buttonFontSize. Required layout keys are contentWidth, containerPaddingX, containerPaddingY, blockSpacing, baseRadius, sectionPadding, buttonPaddingX, buttonPaddingY and borderedBlockPadding. Optional theme fields match the editor, including content color, heading font, button radius and weight, and layout.contentAlign (center or left).
          required:
          - presetId
          - colors
          - typography
          - layout
          properties:
            presetId:
              type: string
              enum:
              - default
              - soft
              - editorial
              - bold
            colors:
              type: object
              additionalProperties:
                type: string
            typography:
              type: object
              additionalProperties: true
            layout:
              type: object
              properties:
                contentAlign:
                  type: string
                  enum:
                  - center
                  - left
              additionalProperties:
                type: number
          additionalProperties: true
        fontFamily:
          type: string
          minLength: 1
          maxLength: 500
        emailPreset:
          type: string
          enum:
          - branded
          - minimal
    EmailAiStyleLayoutRule:
      type: object
      required:
      - id
      - kind
      - block
      - description
      properties:
        id:
          type: string
          description: Stable rule identifier, for example around|button|divider:dots. Pass it in layoutRuleIds to keep the habit.
        kind:
          type: string
          enum:
          - opener
          - around
          - before
          - after
        block:
          type: string
          description: Target block type, for example button or video.
        companion:
          type: string
          description: Content-free companion descriptor for around/before/after rules, for example divider:dots.
        description:
          type: string
          example: Dotted divider above and below every button
    Error:
      type: object
      properties:
        success:
          type: boolean
          example: false
        error:
          type: string
          example: Error message
        code:
          type: string
          description: Optional stable machine-readable error discriminator when available.
          example: COMPANY_CREATE_REQUIRES_PERSONAL_KEY
        retryable:
          type: boolean
          description: Whether retrying the request can recover from the error.
        issues:
          type: array
          description: Field-level problems with the request, when the endpoint reports them. Up to ten entries; `error` summarizes the first three.
          items:
            $ref: '#/components/schemas/InputIssue'
      required:
      - error
    EmailAiStyleState:
      type: object
      required:
      - success
      - style
      - revisionId
      - canManage
      properties:
        success:
          type: boolean
        style:
          type:
          - object
          - 'null'
          description: Independent version 1 appearance snapshot. No source copy, links or bindings are stored in block styles. Unsupported versions are returned as null.
          properties:
            version:
              type: integer
              enum:
              - 1
            id:
              type: string
            sourceEmailId:
              type: string
            sourceName:
              type: string
            savedAt:
              type: string
              format: date-time
            theme:
              type: object
              additionalProperties: true
            fontFamily:
              type: string
            emailPreset:
              type: string
              enum:
              - branded
              - minimal
            blocks:
              type: array
              description: Appearance records keyed by block type and discriminator, not source email blocks.
              items:
                type: object
                additionalProperties: true
            layout:
              type: object
              description: Structure guidance captured with the appearance. Absent on snapshots saved before layout habits existed.
              properties:
                outline:
                  type: array
                  description: Top-level block descriptors in source order (for example heading:1, divider:dots, button:pill), excluding logo and footer scaffolding.
                  items:
                    type: string
                rules:
                  type: array
                  description: Confirmed layout habits. Generation follows them in prompts and inserts content-free companions (dividers, spacers) deterministically.
                  items:
                    $ref: '#/components/schemas/EmailAiStyleLayoutRule'
            notes:
              type: string
              description: Free-text design notes supplied when saving, up to 500 characters.
        revisionId:
          type:
          - string
          - 'null'
          description: Pass this as expectedStyleId on the next write. An unsupported style version still returns its revision for replacement or clearing.
        canManage:
          type: boolean
          description: Whether your key scopes and workspace role permit saving or clearing.
    InputIssue:
      type: object
      properties:
        path:
          type: string
          description: Dotted field path, such as `audience.subscriberIds[0]`. Empty when the problem is with the request body itself.
          example: kind
        message:
          type: string
          description: What is wrong with the field.
          example: must be "add_tags"
        allowedValues:
          type: array
          description: Accepted values when the field only takes a fixed set of values.
          items: {}
          example:
          - add_tags
      required:
      - path
      - message
  responses:
    TransientDatabaseUnavailable:
      description: The database was temporarily unavailable. The request may be retried after the delay in Retry-After.
      headers:
        Retry-After:
          $ref: '#/components/headers/RetryAfter'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            success: false
            error: The service could not reach its database for a moment. Retry the request.
            code: SERVICE_UNAVAILABLE
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: API key passed as Bearer token