Mailboxlayer · OpenAPI Overlay 1.0.0

API Evangelist enhancements for the mailboxlayer Verification API

6 actions 6 updates update extends openapi/mailboxlayer-verification-api-openapi.yml
Generated by API Evangelist Written by API Evangelist tooling for Mailboxlayer's API. It is a proposal applied on top of the contract, not a document Mailboxlayer publishes.
View Overlay File View on GitHub Overlay Specification

What the actions change

x-apievangelist-profilex-provider-published-specx-provider-docsx-parent-brandx-spec-divergencex-error-modelx-rate-limitsx-idempotency

Targets 5

$.info
$.servers
$.paths./check.get
$.components.schemas.CheckResult.properties.score
$.components.schemas.CheckResult.properties.catch_all

OpenAPI Overlay

Raw ↑
overlay: 1.0.0
info:
  title: API Evangelist enhancements for the mailboxlayer Verification API
  version: 1.0.0
x-provenance:
  generated: '2026-08-14'
  method: generated
  source: >-
    openapi/mailboxlayer-verification-api-openapi.yml, reconciled against the OpenAPI
    3.1.0 that APILayer publishes at
    https://api.swaggerhub.com/apis/apilayer-863/MailboxlayerAPI/1.0.0/swagger.json
    and the developer documentation at
    https://docs.apilayer.com/mailboxlayer/docs/getting-started
  note: >-
    This overlay records API Evangelist enhancements only. It never mutates the harvested
    specs in openapi/_original/. The most important thing it records is a DIVERGENCE: the
    refined spec in openapi/ carries one operation (checkEmail) while the provider's own
    published spec carries two (checkEmail and bulkCheckEmails) plus HTTP-level 4xx/5xx
    responses and a catch_all query parameter. The overlay documents that gap rather than
    silently patching it.
extends: openapi/mailboxlayer-verification-api-openapi.yml
actions:
  - target: $.info
    description: Record provenance, the canonical provider-published contract, and the divergence.
    update:
      x-apievangelist-profile: https://apis.io/provider/mailboxlayer
      x-provider-published-spec: https://api.swaggerhub.com/apis/apilayer-863/MailboxlayerAPI/1.0.0/swagger.json
      x-provider-docs: https://docs.apilayer.com/mailboxlayer/docs/api-documentation
      x-parent-brand: APILayer (Idera, Inc.)
      x-spec-divergence:
        missing_operations: [bulkCheckEmails]
        missing_parameters: [catch_all]
        missing_responses: ['401', '403', '404', '422', '429', '500', '503']
        note: >-
          Present in the provider's SwaggerHub 3.1.0 document, absent from this refined
          file. Use openapi/_original/mailboxlayer-swaggerhub-openapi.json as the contract
          of record until the refined split is regenerated from it.

  - target: $.info
    description: Record the runtime semantics an agent must know before calling this API.
    update:
      x-error-model:
        style: vendor-envelope
        http_status_on_service_error: 200
        discriminator: success
        catalog: errors/mailboxlayer-problem-types.yml
        warning: >-
          A 200 is not evidence the verification ran. Branch on `success` and `error.code`,
          never on the HTTP status alone.
      x-rate-limits:
        documented: true
        source: https://docs.apilayer.com/mailboxlayer/docs/getting-started
        per_minute_by_plan: {free: 50, basic: 100, professional: 300, enterprise: 300}
        recommended_max_rps: 5
        exhaustion_error: {code: 106, type: rate_limit_reached, http_status: 429}
        response_headers: []
        catalog: rate-limits/mailboxlayer-rate-limits.yml
      x-idempotency:
        supported: false
        reason: read-only GET surface; no mutation to de-duplicate
      x-cors: true
      x-jsonp: true

  - target: $.servers
    description: >-
      Both server entries in the refined spec carry the identical URL and differ only in
      their description. Record that HTTPS is now advertised on every plan, including Free,
      which contradicts the older HTTP-only-on-Free framing still implied by error 105.
    update:
      - url: https://apilayer.net/api
        description: >-
          Production endpoint. 256-bit HTTPS is listed as available on all plans, Free
          included, on both https://mailboxlayer.com/product and
          https://docs.apilayer.com/mailboxlayer/docs/getting-started (checked 2026-08-14).
          Error 105 (https_access_restricted) nevertheless remains in the published error
          catalog, so treat plan-level HTTPS restriction as still possible.

  - target: $.paths./check.get
    description: Ground the operation in the vocabulary and hazards captured elsewhere in this repo.
    update:
      x-agentic-access:
        action-class: connected
        consequence: read
        token: {max-ttl: 3600}
        audit: none
      x-vocabulary: vocabulary/mailboxlayer-vocabulary.yml
      x-skills: [skills/mailboxlayer-verify-single-address.md]
      x-missing-parameter:
        name: catch_all
        in: query
        note: >-
          Documented by the provider and present in its SwaggerHub spec; absent from this
          refined file. Catch-all detection is OFF by default and `catch_all` returns null
          unless `catch_all=1` is sent on a plan that permits it.

  - target: $.components.schemas.CheckResult.properties.score
    description: State the interpretation the docs give for the score, which the schema omits.
    update:
      x-interpretation: >-
        0.0-1.0 composite deliverability score. The provider's quickstart cites 0.8 as
        "generally considered high-quality and deliverable". No banding is published, so
        any threshold an integrator picks is their own policy, not the provider's.

  - target: $.components.schemas.CheckResult.properties.catch_all
    description: Make the tri-state explicit — null is not false.
    update:
      x-tri-state: >-
        true / false / null. null means catch-all detection did not run — either
        `catch_all=1` was not requested or the plan does not permit it (error 310,
        catch_all_access_restricted). Reading null as false is a silent misclassification.