Sequenzy Media API

The Media API from Sequenzy — 3 operation(s) for media.

Operations 3

POST /media/upload-url Create email image upload URL #
PUT /media/upload-bytes Upload validated email image bytes #
POST /media/complete-upload Register uploaded email image #

Specifications

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-media-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-media-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Sequenzy Media 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: Media
paths:
  /media/upload-url:
    post:
      operationId: createEmailImageUploadUrl
      summary: Create email image upload URL
      description: Returns an authenticated API URL for a block-ready email image. PUT the exact bytes to uploadUrl using the same API credentials, then register the key with POST /media/complete-upload. The public object does not exist until its bytes pass server-side validation.
      tags:
      - Media
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - filename
              - contentType
              - fileSizeBytes
              properties:
                filename:
                  type: string
                contentType:
                  type: string
                  example: image/png
                fileSizeBytes:
                  type: integer
                  minimum: 1
                  maximum: 10485760
      responses:
        '200':
          description: Upload URL created
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  uploadUrl:
                    type: string
                  publicUrl:
                    type: string
                  key:
                    type: string
                  fileName:
                    type: string
        '400':
          description: Unsupported image type or size
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '503':
          description: Uploads not configured
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /media/upload-bytes:
    put:
      operationId: uploadEmailImageBytes
      summary: Upload validated email image bytes
      description: Uploads the exact bytes to the authenticated URL returned by POST /media/upload-url. The server enforces the requested size, verifies the file signature, and creates the public object only once.
      tags:
      - Media
      parameters:
      - in: query
        name: key
        required: true
        schema:
          type: string
      - in: query
        name: filename
        required: true
        schema:
          type: string
      - in: query
        name: contentType
        required: true
        schema:
          type: string
      - in: query
        name: fileSizeBytes
        required: true
        schema:
          type: integer
          minimum: 1
          maximum: 10485760
      requestBody:
        required: true
        content:
          application/octet-stream:
            schema:
              type: string
              format: binary
      responses:
        '200':
          description: Image bytes validated and stored
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  key:
                    type: string
                  publicUrl:
                    type: string
        '400':
          description: Invalid size, key, content type, or image bytes
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '409':
          description: Upload URL already used
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '503':
          description: Uploads are not configured, or the upload service or database is temporarily unavailable. Retry-After is present for a transient database failure.
          headers:
            Retry-After:
              $ref: '#/components/headers/RetryAfter'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /media/complete-upload:
    post:
      operationId: completeEmailImageUpload
      summary: Register uploaded email image
      description: Idempotently registers a completed company-scoped image upload in the shared media library and returns its hosted URL.
      tags:
      - Media
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - key
              - filename
              - contentType
              - fileSizeBytes
              - altText
              properties:
                key:
                  type: string
                filename:
                  type: string
                contentType:
                  type: string
                  example: image/png
                fileSizeBytes:
                  type: integer
                  minimum: 1
                  maximum: 10485760
                width:
                  type: integer
                  minimum: 1
                  maximum: 20000
                height:
                  type: integer
                  minimum: 1
                  maximum: 20000
                altText:
                  type: string
                  maxLength: 500
      responses:
        '200':
          description: Image registered
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  asset:
                    type: object
                    properties:
                      id:
                        type: string
                      filename:
                        type: string
                      url:
                        type: string
                      mimeType:
                        type: string
                      size:
                        type: string
                      width:
                        type:
                        - string
                        - 'null'
                      height:
                        type:
                        - string
                        - 'null'
                      altText:
                        type:
                        - string
                        - 'null'
                      companyId:
                        type: string
                      createdAt:
                        type: string
                        format: date-time
        '400':
          description: Invalid or cross-company upload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '409':
          description: Image changed while completion was verifying it
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '503':
          description: Uploads not configured
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  headers:
    RetryAfter:
      description: Number of seconds to wait before retrying the request.
      schema:
        type: integer
        minimum: 1
        example: 1
  schemas:
    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
    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
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: API key passed as Bearer token