Email on Acid Spam Testing API

Standalone spam filter analysis and seed list management

Operations 7

GET /spam/clients Get available spam clients #
GET /spam/tests Get all spam tests #
POST /spam/tests Create spam test #
GET /spam/tests/{testId} Get spam test results #
DELETE /spam/tests/{testId} Delete spam test #
GET /spam/tests/{testId}/seedlist Get spam test seed list #
GET /spam/seedlist Reserve seed list #

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/email-on-acid-spam-testing-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

email-on-acid-spam-testing-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Email on Acid Authentication Spam Testing API
  description: 'REST API for automating email testing across 100+ email clients and devices, including email rendering previews, spam filter testing, seed list management, and accessibility checks. Now branded as Mailgun Inspect. Supports sandbox mode for development and test result storage for 90 days.

    '
  version: '5.0'
  contact:
    name: Email on Acid Support
    url: https://www.emailonacid.com/contact/
  license:
    name: Proprietary
    url: https://www.emailonacid.com/terms/
servers:
- url: https://api.emailonacid.com/v5
  description: Email on Acid API v5
security:
- basicAuth: []
tags:
- name: Spam Testing
  description: Standalone spam filter analysis and seed list management
paths:
  /spam/clients:
    get:
      summary: Get available spam clients
      operationId: getSpamClients
      tags:
      - Spam Testing
      description: Retrieve metadata about currently active spam filter clients available for testing.
      responses:
        '200':
          description: List of spam clients
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/SpamClient'
        '401':
          $ref: '#/components/responses/AccessDenied'
  /spam/tests:
    get:
      summary: Get all spam tests
      operationId: getSpamTests
      tags:
      - Spam Testing
      description: 'Retrieve a list of all standalone spam tests, with optional filtering and pagination. Tests are stored for 90 days.

        '
      parameters:
      - $ref: '#/components/parameters/fromDate'
      - $ref: '#/components/parameters/toDate'
      - $ref: '#/components/parameters/subjectFilter'
      - $ref: '#/components/parameters/resultsPerPage'
      - $ref: '#/components/parameters/page'
      responses:
        '200':
          description: List of spam tests
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/TestSummary'
        '401':
          $ref: '#/components/responses/AccessDenied'
    post:
      summary: Create spam test
      operationId: createSpamTest
      tags:
      - Spam Testing
      description: 'Create and submit a standalone spam filter test. Either `html` or `url` must be provided. Supports eoa, smtp, and seed test methods.

        '
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateSpamTestRequest'
            example:
              subject: My Email Subject
              html: <html><body><p>Hello World</p></body></html>
              transfer_encoding: 8bit
              charset: utf-8
              test_method: seed
              from_address: my.test@example.com
      responses:
        '200':
          description: Spam test created successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateSpamTestResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessDenied'
        '403':
          $ref: '#/components/responses/PermissionError'
  /spam/tests/{testId}:
    get:
      summary: Get spam test results
      operationId: getSpamTestResults
      tags:
      - Spam Testing
      description: Retrieve spam verdict results for a specific standalone spam test.
      parameters:
      - $ref: '#/components/parameters/testId'
      responses:
        '200':
          description: Spam filter results per client
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/SpamResult'
        '401':
          $ref: '#/components/responses/AccessDenied'
        '404':
          $ref: '#/components/responses/InvalidTestID'
    delete:
      summary: Delete spam test
      operationId: deleteSpamTest
      tags:
      - Spam Testing
      description: Permanently delete a specific standalone spam test.
      parameters:
      - $ref: '#/components/parameters/testId'
      responses:
        '200':
          description: Spam test deleted successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuccessResponse'
        '401':
          $ref: '#/components/responses/AccessDenied'
        '404':
          $ref: '#/components/responses/InvalidTestID'
  /spam/tests/{testId}/seedlist:
    get:
      summary: Get spam test seed list
      operationId: getSpamTestSeedList
      tags:
      - Spam Testing
      description: Retrieve the seed list email addresses for a seed-method spam test.
      parameters:
      - $ref: '#/components/parameters/testId'
      responses:
        '200':
          description: List of seed list email addresses
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
                  format: email
        '401':
          $ref: '#/components/responses/AccessDenied'
        '404':
          $ref: '#/components/responses/InvalidTestID'
  /spam/seedlist:
    get:
      summary: Reserve seed list
      operationId: reserveSeedList
      tags:
      - Spam Testing
      description: 'Pre-reserve a seed list before creating a spam test. Returns a key and list of seed addresses to send email to prior to test creation.

        '
      responses:
        '200':
          description: Reserved seed list key and addresses
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReserveSeedListResponse'
        '401':
          $ref: '#/components/responses/AccessDenied'
components:
  responses:
    BadRequest:
      description: Invalid request parameters or JSON
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            error:
              name: InvalidJSON
              message: Malformed JSON in request body
    InvalidTestID:
      description: Test not found or not accessible
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            error:
              name: InvalidTestID
              message: Test not found or access denied
    AccessDenied:
      description: Authentication failure
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            error:
              name: AccessDenied
              message: Invalid API credentials
    PermissionError:
      description: Account plan does not permit this operation
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            error:
              name: PermissionError
              message: Your plan does not include this feature
  parameters:
    toDate:
      name: to
      in: query
      required: false
      schema:
        type: string
      description: End of date range (ISO date string, Unix timestamp, or relative term like "yesterday")
    page:
      name: page
      in: query
      required: false
      schema:
        type: integer
        minimum: 1
        default: 1
      description: Page number for paginated results
    subjectFilter:
      name: subject
      in: query
      required: false
      schema:
        type: string
      description: Exact subject line match (case-insensitive)
    testId:
      name: testId
      in: path
      required: true
      schema:
        type: string
      description: Unique identifier for the test
    fromDate:
      name: from
      in: query
      required: false
      schema:
        type: string
      description: Start of date range (ISO date string, Unix timestamp, or relative term like "yesterday")
    resultsPerPage:
      name: results
      in: query
      required: false
      schema:
        type: integer
        minimum: 1
        maximum: 200
        default: 50
      description: Number of results to return per page
  schemas:
    CreateSpamTestResponse:
      type: object
      properties:
        id:
          type: string
          description: Unique spam test identifier
        reference_id:
          type: string
          description: Enterprise reference identifier
        customer_id:
          type: string
          description: Enterprise customer identifier
        address_list:
          type: array
          items:
            type: string
            format: email
          description: Seed list addresses to send email to
    CreateSpamTestRequest:
      type: object
      required:
      - subject
      properties:
        subject:
          type: string
          description: Email subject line (encoded per transfer_encoding)
        html:
          type: string
          description: HTML email content (required if url not provided)
        url:
          type: string
          format: uri
          description: URL to email content (required if html not provided)
        transfer_encoding:
          type: string
          enum:
          - base64
          - quoted-printable
          - 7bit
          - 8bit
          default: 8bit
          description: Content transfer encoding
        charset:
          type: string
          default: utf-8
          description: Character encoding
        sandbox:
          type: boolean
          default: false
          description: Test mode without content creation
        reference_id:
          type: string
          description: Enterprise tracking reference identifier
        customer_id:
          type: string
          description: Required for reseller packages
        test_method:
          type: string
          enum:
          - eoa
          - smtp
          - seed
          default: eoa
          description: Spam testing method
        from_address:
          type: string
          format: email
          description: Sender email address
        key:
          type: string
          description: Pre-generated seedlist key
        smtp_info:
          $ref: '#/components/schemas/SmtpInfo'
    ErrorResponse:
      type: object
      properties:
        error:
          type: object
          properties:
            name:
              type: string
              description: Error type identifier
              enum:
              - AccessDenied
              - RateLimited
              - InvalidJSON
              - InvalidParameter
              - InvalidTestID
              - InvalidClient
              - PermissionError
              - TestLimitReached
            message:
              type: string
              description: Human-readable error description
    SuccessResponse:
      type: object
      properties:
        success:
          type: boolean
          example: true
    SpamResult:
      type: object
      properties:
        client:
          type: string
          description: Spam filter client name
        type:
          type: string
          enum:
          - b2c
          - b2b
          description: Spam client type (business-to-consumer or business-to-business)
        spam:
          type:
          - integer
          - 'null'
          description: 'Spam verdict: 1 = marked as spam, 0 = neutral/no decision, -1 = not spam, null/empty = pending

            '
        details:
          type: string
          description: Additional spam filter analysis details
    ReserveSeedListResponse:
      type: object
      properties:
        key:
          type: string
          description: Pre-reserved seed list key for use in test creation
        address_list:
          type: array
          items:
            type: string
            format: email
          description: Seed email addresses to send email to before creating the test
    TestSummary:
      type: object
      properties:
        id:
          type: string
          description: Unique test identifier
        date:
          type: integer
          format: int64
          description: Unix timestamp of test creation
        type:
          type: string
          enum:
          - email-test
          - spam-test
          description: Test type classification
        headers:
          type: object
          additionalProperties:
            type: string
          description: Custom X-headers associated with the test
    SmtpInfo:
      type: object
      description: SMTP configuration for smtp test method
      required:
      - host
      properties:
        host:
          type: string
          description: SMTP server hostname
        port:
          type: integer
          default: 25
          description: SMTP port number
        secure:
          type: string
          enum:
          - ssl
          - tls
          - ''
          default: ''
          description: Connection security type
        username:
          type: string
          description: SMTP authentication username
        password:
          type: string
          description: SMTP authentication password
    SpamClient:
      type: object
      properties:
        client:
          type: string
          description: Spam filter client name
        type:
          type: string
          enum:
          - b2c
          - b2b
          description: Spam client type
        description:
          type: string
          description: Description of the spam filter client
  securitySchemes:
    basicAuth:
      type: http
      scheme: basic
      description: 'HTTP Basic Authentication using `<api_key>:<account_password>` base64-encoded. Use "sandbox:sandbox" credentials for sandbox testing.

        '