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.
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
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.