Blueshift Shared assets API

Manage reusable assets such as HTML, rich text, subject lines, and visual editor content.

Operations 3

GET /api/v1/shared_assets.json List shared assets #
POST /api/v1/shared_assets.json Create a shared asset #
PUT /api/v1/shared_assets/{uuid}.json Update a shared asset #

Documentation

Specifications

Other Resources

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/blueshift-shared-assets-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

blueshift-shared-assets-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  description: These APIs will help you manage different workflows in Blueshift. Our powerful REST APIs provide an easy way to integrate your data and third party applications with Blueshift.
  version: 1.0.0
  title: Blueshift Shared assets API
  contact:
    email: support@getblueshift.com
servers:
- url: https://api.getblueshift.com
- url: https://api.eu.getblueshift.com
tags:
- name: Shared assets
  description: Manage reusable assets such as HTML, rich text, subject lines, and visual editor content.
paths:
  /api/v1/shared_assets.json:
    get:
      summary: List shared assets
      description: 'Retrieve a list of shared assets: HTML, rich text, subject lines, and visual editor content.'
      tags:
      - Shared assets
      security:
      - user_api_auth: []
      parameters:
      - name: asset_type[]
        in: query
        description: 'Filter by one or more asset types. Repeat the parameter for multiple values. Allowed values: `html`, `rich_text`, `visual_editor`, `subject`.'
        schema:
          type: array
          items:
            type: string
            enum:
            - html
            - rich_text
            - visual_editor
            - subject
        style: form
        explode: true
        example:
        - html
        - visual_editor
      - name: display_name
        in: query
        description: Returns assets whose display name contains the specified substring. An empty string returns all.
        schema:
          type: string
        example: Banner
      - name: archived
        in: query
        description: Archived status filter. Use `0` for active/unarchived, `1` for archived, or omit to include both. In the response, this field is returned as a boolean (`true`/`false`).
        schema:
          type: integer
          enum:
          - 0
          - 1
        examples:
          active:
            summary: Active (unarchived)
            value: 0
          archived:
            summary: Archived
            value: 1
          all:
            summary: All (omit parameter)
            value: ''
      - name: page
        in: query
        description: 'Which page of results to fetch. **Zero-based index.** Example: `page=0&per_page=25` returns the first 25 results, `page=1&per_page=25` returns the next 25.'
        schema:
          type: integer
        example: '0'
      - name: per_page
        in: query
        description: The number of results to return per page.
        schema:
          type: integer
        example: 25
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    id:
                      type: integer
                      description: Unique numeric ID of the asset.
                      example: 24990
                    uuid:
                      type: string
                      description: Unique UUID of the asset.
                      example: 2c7967ff-5404-481d-83d9-90a11d2fa8e7
                    asset_type:
                      type: string
                      enum:
                      - html
                      - rich_text
                      - visual_editor
                      - subject
                      description: Type of shared asset.
                      example: subject
                    shareable_name:
                      type: string
                      description: System name used for sharing/reuse.
                      example: footer_template
                    display_name:
                      type: string
                      description: Human-readable display name.
                      example: New subject & preheader
                    archived:
                      type: boolean
                      description: Archived status of the asset.
                      example: false
                    author:
                      type: string
                      description: Author of the asset.
                      example: Content Team
                    email:
                      type: string
                      format: email
                      description: Email address of the author.
                      example: team@example.com
                    templates:
                      type: array
                      description: Templates linked to this asset.
                      items:
                        type: object
                        properties:
                          name:
                            type: string
                            example: Welcome Email
                          uuid:
                            type: string
                            example: 1111aaaa-2222-bbbb-3333-cccc4444dddd
                          resource_type:
                            type: string
                            example: EmailTemplate
                          archived:
                            type: boolean
                            example: false
                    template_count:
                      type: integer
                      example: 0
                    asset_count:
                      type: integer
                      example: 0
                    updated_at:
                      type: string
                      format: date-time
                      description: Last update (ISO 8601).
                      example: '2025-06-04T07:23:02.000Z'
                    content:
                      type: string
                      description: Asset content (HTML, rich text, or subject line).
                      example: change me!!!
                    locked_parents:
                      type: array
                      items:
                        type: string
                    lockable_children:
                      type: array
                      items:
                        type: string
              example:
              - uuid: a1111111-b222-4ccc-8ddd-eeeeeeee0001
                asset_type: html
                shareable_name: footer_template
                display_name: Footer Template
                archived: false
                author: Content Team
                email: team@example.com
                templates:
                - name: Welcome Email
                  uuid: 1111aaaa-2222-bbbb-3333-cccc4444dddd
                  resource_type: EmailTemplate
                  archived: false
                template_count: 1
                updated_at: '2025-08-22T18:12:47.000Z'
                content: "<table width=\"100%\" align=\"center\">\n  <tr>\n    {% for product in recommendations.block1.products %}\n    <td align=\"center\" style=\"padding:10px;\">\n      <a href=\"{{ product.url }}\">\n        <img src=\"{{ product.image }}\" width=\"120\" />\n      </a>\n      <p style=\"font-size:14px;font-weight:bold;\">{{ product.title }}</p>\n      <p style=\"font-size:12px;color:#666;\">{{ product.extended_attributes.description }}</p>\n      <a href=\"{{ product.url }}\" style=\"background:#303f9f;color:#fff;padding:6px 12px;text-decoration:none;border-radius:3px;\">Buy Now</a>\n    </td>\n    {% endfor %}\n  </tr>\n</table>"
                locked_parents: []
                lockable_children: []
              - uuid: b2222222-c333-4ddd-8eee-ffffffff0002
                asset_type: subject
                shareable_name: subject_line_offer
                display_name: Subject Line – Summer Offer
                archived: false
                author: Copywriter
                email: copywriter@example.com
                templates: []
                template_count: 0
                updated_at: '2025-08-23T11:20:00.000Z'
                content: Get 20% off your first order this week!
                locked_parents: []
                lockable_children: []
              - uuid: c3333333-d444-4eee-8fff-aaaaaaaa0003
                asset_type: visual_editor
                shareable_name: promo_banner_autumn
                display_name: Autumn Promo Banner
                archived: false
                author: Marketing Team
                email: marketing@example.com
                templates: []
                template_count: 0
                updated_at: '2025-08-25T09:15:00.000Z'
                content: "<div style=\"text-align:center;background:#f4f4f4;padding:10px;\">\n  <h2 style=\"color:#333;\">Autumn Sale</h2>\n  <p style=\"color:#555;\">Save up to 30% on selected items.</p>\n  <a href=\"{{ promo_url }}\" style=\"background:#e41d36;color:#fff;padding:8px 16px;text-decoration:none;border-radius:4px;\">Shop Now</a>\n</div>"
                locked_parents: []
                lockable_children: []
        '400':
          description: Bad request - The request was invalid or cannot be otherwise served.
        '401':
          description: Unauthorized - API authentication failed due to an invalid or missing API key.
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: Not authorized
        '403':
          description: Forbidden - The API key does not have sufficient permissions to perform this action.
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: Forbidden
        '404':
          description: Resource not found - Can happen due to resource conflicts. Re-try with exponential backoff.
        '409':
          description: Conflict error, please retry - The request could not be completed due to a conflict with the current state of the target resource, re-try with exponential backoff.
        '413':
          description: Payload too large - The server is refusing to process a request because the request payload is larger than the server is willing or able to process.
        '422':
          description: Unprocessable Entity - The request was well-formed but contains semantic errors.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    example: false
                  error:
                    type: string
                    example: Validation failed
        '429':
          description: Rate limit exceeded - Too many requests.
        '500':
          description: Internal Server Error - Please contact Blueshift for more information.
        '502':
          description: Service unavailable, please retry - Bad Gateway, re-try with exponential backoff.
        '503':
          description: Service unavailable, please retry - Service Unavailable, re-try with exponential backoff.
        '504':
          description: Service unavailable, please retry - Gateway Timeout, please re-try with exponential backoff.
      operationId: getApiV1SharedAssetsJson
      x-operation-id-source: derived
    post:
      summary: Create a shared asset
      description: Use this endpoint to create a shared asset.
      tags:
      - Shared assets
      security:
      - user_api_auth: []
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
              - display_name
              - content
              - asset_type
              properties:
                display_name:
                  type: string
                  description: Human-readable name for the asset. Used to generate the shareable_name if not provided.
                  example: Welcome Email Header
                content:
                  type: string
                  description: The actual content of the asset. For HTML assets, provide HTML markup. For Subject assets, provide plain text.
                  example: <h1>Welcome to our store!</h1>
                asset_type:
                  type: string
                  description: Type of asset to create. Must be either 'html' or 'subject'. Cannot be changed after creation.
                  enum:
                  - html
                  - subject
                  example: html
                plain_text:
                  type: string
                  description: Plain text version of the content. Only applicable for HTML assets. If not provided, Blueshift will auto-generate it.
                  example: Welcome to our store!
                is_plain_text_custom:
                  type: boolean
                  description: Set to true if providing a custom plain_text version, false to auto-generate. Only applicable for HTML assets.
                  example: true
                author:
                  type: string
                  description: Email address of the user to attribute as the asset's author. Must be a valid user in the account. If omitted or invalid, defaults to the account's primary user.
                  example: john.doe@example.com
            examples:
              html_asset:
                summary: Create HTML asset
                value:
                  display_name: Welcome Email Header
                  content: <h1>Welcome to our store!</h1>
                  asset_type: html
              html_asset_with_plain_text:
                summary: Create HTML asset with custom plain text
                value:
                  display_name: Product Announcement
                  content: <h2>New Product Launch</h2><p>Check out our latest collection.</p>
                  asset_type: html
                  plain_text: New Product Launch - Check out our latest collection.
                  is_plain_text_custom: true
              subject_asset:
                summary: Create Subject asset
                value:
                  display_name: Welcome Subject Line
                  content: Welcome to our community!
                  asset_type: subject
              html_asset_with_author:
                summary: Create HTML asset attributed to an author
                value:
                  display_name: Welcome Email Header
                  content: <h1>Welcome to our store!</h1>
                  asset_type: html
                  author: john.doe@example.com
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  uuid:
                    type: string
                    description: Unique identifier for the shared asset. Use this value for updates.
                    example: a1b2c3d4-e5f6-7890-abcd-ef1234567890
                  asset_type:
                    type: string
                    description: Type of the asset.
                    example: html
                  shareable_name:
                    type: string
                    description: 'Auto-generated unique identifier based on display_name. Format: bsft_<sanitized_display_name>. Spaces become underscores, special characters are removed.'
                    example: bsft_Welcome_Email_Header
                  display_name:
                    type: string
                    description: Human-readable name for the asset.
                    example: Welcome Email Header
                  author:
                    type: string
                    description: Name of the user who created the asset.
                    example: John Doe
                  email:
                    type: string
                    description: Email of the user who created the asset.
                    example: john.doe@example.com
                  content:
                    type: string
                    description: The actual content of the asset.
                    example: <h1>Welcome to our store!</h1>
                  plain_text:
                    type:
                    - string
                    - 'null'
                    description: Plain text version of the content. Null if not provided for HTML assets or not applicable for Subject assets.
                    example: null
                  is_plain_text_custom:
                    type:
                    - boolean
                    - 'null'
                    description: Indicates whether plain text is custom (true) or auto-generated (false). Null for Subject assets.
                    example: false
                  updated_at:
                    type: string
                    format: date-time
                    description: Timestamp of when the asset was last updated (ISO 8601 format).
                    example: '2026-01-28T08:00:00.000Z'
                  tag_data:
                    type: string
                    description: Tags associated with the asset.
                    example: Regions:NA,EU,APAC,LATAM,GreaterChina
              examples:
                html_asset_response:
                  summary: HTML asset created
                  value:
                    uuid: a1b2c3d4-e5f6-7890-abcd-ef1234567890
                    asset_type: html
                    shareable_name: bsft_Welcome_Email_Header
                    display_name: Welcome Email Header
                    author: John Doe
                    email: john.doe@example.com
                    content: <h1>Welcome to our store!</h1>
                    plain_text: null
                    is_plain_text_custom: false
                    updated_at: '2026-01-28T08:00:00.000Z'
                    tag_data: Regions:NA,EU,APAC,LATAM,GreaterChina
                subject_asset_response:
                  summary: Subject asset created
                  value:
                    uuid: b2c3d4e5-f6a7-8901-bcde-f12345678901
                    asset_type: subject
                    shareable_name: bsft_Welcome_Subject_Line
                    display_name: Welcome Subject Line
                    author: John Doe
                    email: john.doe@example.com
                    content: Welcome to our community!
                    plain_text: null
                    is_plain_text_custom: null
                    updated_at: '2026-01-28T08:00:00.000Z'
                    tag_data: Regions:NA,EU,APAC,LATAM,GreaterChina
        '401':
          description: Unauthorized - API authentication failed due to an invalid or missing API key.
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: 'HTTP Basic: Access denied.'
        '422':
          description: 'Unprocessable Entity - The request was well-formed but contains validation errors. Common causes: missing required fields (display_name, content, asset_type), duplicate shareable_name, or empty values.'
          content:
            application/json:
              schema:
                type: object
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      properties:
                        title:
                          type: string
                          example: shareable_name
                        detail:
                          type: string
                          example: 'Shareable_name: This template name is already in use, please use a different name'
                  meta:
                    type: object
                    properties:
                      combine_errors:
                        type: boolean
                        example: false
                      no_toast:
                        type: boolean
                        example: false
                      unformatted:
                        type: object
                        additionalProperties:
                          type: array
                          items:
                            type: string
              examples:
                duplicate_name:
                  summary: Duplicate shareable_name
                  value:
                    errors:
                    - title: shareable_name
                      detail: 'Shareable_name: This template name is already in use, please use a different name'
                    meta:
                      combine_errors: false
                      no_toast: false
                      unformatted:
                        shareable_name:
                        - This template name is already in use, please use a different name
                blank_field:
                  summary: Missing required field
                  value:
                    errors:
                    - title: shareable_name
                      detail: 'Shareable_name: can''t be blank'
                    meta:
                      combine_errors: false
                      no_toast: false
                      unformatted:
                        shareable_name:
                        - can't be blank
        '500':
          description: Internal Server Error - An unexpected server error occurred. Contact support if the issue persists.
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    example: '500'
                  error:
                    type: string
                    example: Internal Server Error
      operationId: postApiV1SharedAssetsJson
      x-operation-id-source: derived
  /api/v1/shared_assets/{uuid}.json:
    put:
      summary: Update a shared asset
      description: Use this endpoint to update a shared asset.
      tags:
      - Shared assets
      security:
      - user_api_auth: []
      parameters:
      - in: path
        required: true
        name: uuid
        description: The UUID of the shared asset to update. This value is returned when you create an asset.
        schema:
          type: string
        example: a1b2c3d4-e5f6-7890-abcd-ef1234567890
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                display_name:
                  type: string
                  description: Human-readable name for the asset. Can be updated at any time.
                  example: Updated Welcome Header
                content:
                  type: string
                  description: The actual content of the asset. For HTML assets, provide HTML markup. For Subject assets, provide plain text.
                  example: <h1>Welcome to our updated store!</h1>
                plain_text:
                  type: string
                  description: Plain text version of the content. Only applicable for HTML assets.
                  example: Welcome to our updated store!
                is_plain_text_custom:
                  type: boolean
                  description: Set to true if providing a custom plain_text version, false to auto-generate. Only applicable for HTML assets.
                  example: true
            examples:
              update_html_asset:
                summary: Update HTML asset
                value:
                  display_name: Updated Welcome Header
                  content: <h1>Welcome to our updated store!</h1>
              update_html_with_plain_text:
                summary: Update HTML asset with custom plain text
                value:
                  display_name: Updated Product Announcement
                  content: <h2>New Product Launch Updated</h2><p>Check out our latest collection.</p>
                  plain_text: New Product Launch Updated - Check out our latest collection.
                  is_plain_text_custom: true
              update_subject_asset:
                summary: Update Subject asset
                value:
                  display_name: Updated Welcome Subject
                  content: Welcome to our growing community!
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  uuid:
                    type: string
                    description: Unique identifier for the shared asset.
                    example: a1b2c3d4-e5f6-7890-abcd-ef1234567890
                  asset_type:
                    type: string
                    description: Type of the asset. Cannot be changed after creation.
                    example: html
                  shareable_name:
                    type: string
                    description: Auto-generated unique identifier. Cannot be changed after creation.
                    example: bsft_Welcome_Email_Header
                  display_name:
                    type: string
                    description: Human-readable name for the asset.
                    example: Updated Welcome Header
                  author:
                    type: string
                    description: Name of the user who last updated the asset.
                    example: John Doe
                  email:
                    type: string
                    description: Email of the user who last updated the asset.
                    example: john.doe@example.com
                  content:
                    type: string
                    description: The actual content of the asset.
                    example: <h1>Welcome to our updated store!</h1>
                  plain_text:
                    type:
                    - string
                    - 'null'
                    description: Plain text version of the content. Null if not provided for HTML assets or not applicable for Subject assets.
                    example: null
                  is_plain_text_custom:
                    type:
                    - boolean
                    - 'null'
                    description: Indicates whether plain text is custom (true) or auto-generated (false). Null for Subject assets.
                    example: false
                  updated_at:
                    type: string
                    format: date-time
                    description: Timestamp of when the asset was last updated (ISO 8601 format).
                    example: '2026-01-28T09:30:00.000Z'
                  tag_data:
                    type: string
                    description: Tags associated with the asset.
                    example: Regions:NA,EU,APAC,LATAM,GreaterChina
              examples:
                html_asset_updated:
                  summary: HTML asset updated
                  value:
                    uuid: a1b2c3d4-e5f6-7890-abcd-ef1234567890
                    asset_type: html
                    shareable_name: bsft_Welcome_Email_Header
                    display_name: Updated Welcome Header
                    author: John Doe
                    email: john.doe@example.com
                    content: <h1>Welcome to our updated store!</h1>
                    plain_text: null
                    is_plain_text_custom: false
                    updated_at: '2026-01-28T09:30:00.000Z'
                    tag_data: Regions:NA,EU,APAC,LATAM,GreaterChina
                subject_asset_updated:
                  summary: Subject asset updated
                  value:
                    uuid: b2c3d4e5-f6a7-8901-bcde-f12345678901
                    asset_type: subject
                    shareable_name: bsft_Welcome_Subject_Line
                    display_name: Updated Welcome Subject
                    author: John Doe
                    email: john.doe@example.com
                    content: Welcome to our growing community!
                    plain_text: null
                    is_plain_text_custom: null
                    updated_at: '2026-01-28T09:30:00.000Z'
                    tag_data: NA,EU,APAC,LATAM,GreaterChina
        '401':
          description: Unauthorized - API authentication failed due to an invalid or missing API key.
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: 'HTTP Basic: Access denied.'
        '404':
          description: Not Found - The specified shared asset UUID does not exist.
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: Not Found
        '422':
          description: 'Unprocessable Entity - The request was well-formed but contains validation errors. Common causes: duplicate shareable_name or empty values.'
          content:
            application/json:
              schema:
                type: object
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      properties:
                        title:
                          type: string
                          example: shareable_name
                        detail:
                          type: string
                          example: 'Shareable_name: This template name is already in use, please use a different name'
                  meta:
                    type: object
                    properties:
                      combine_errors:
                        type: boolean
                        example: false
                      no_toast:
                        type: boolean
                        example: false
                      unformatted:
                        type: object
                        additionalProperties:
                          type: array
                          items:
                            type: string
              examples:
                validation_error:
                  summary: Validation error
                  value:
                    errors:
                    - title: content
                      detail: 'Content: can''t be blank'
                    meta:
                      combine_errors: false
                      no_toast: false
                      unformatted:
                        content:
                        - can't be blank
        '500':
          description: Internal Server Error - An unexpected server error occurred. Contact support if the issue persists.
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    example: '500'
                  error:
                    type: string
                    example: Internal Server Error
      operationId: putApiV1SharedAssets{uuid}Json
      x-operation-id-source: derived
components:
  securitySchemes:
    user_api_auth:
      type: http
      scheme: basic
    event_api_auth:
      type: http
      scheme: basic