EmailRep · OpenAPI Overlay 1.0.0

API Evangelist enhancements for the EmailRep Reputation API

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

What the actions change

x-apievangelist-enrichedx-provider-spec-titlex-provider-spec-retrievalx-required-headersx-rate-limit403x-overloaded-statusx-anonymous-access

Targets 6

$.info
$.paths['/{email}'].get
$.paths['/{email}'].get.responses
$.paths['/{email}'].get.responses['429']
$.components.securitySchemes.ApiKeyAuth
$.servers

OpenAPI Overlay

Raw ↑
overlay: 1.0.0
info:
  title: API Evangelist enhancements for the EmailRep Reputation API
  version: 1.0.0
x-generated: '2026-08-13'
x-method: generated
x-source: >-
  Enhancements derived from https://docs.sublime.security/reference/emailrep-introduction, the
  provider's own OpenAPI at openapi/_original/emailrep-alpha-api-openapi.json (retrieved through
  the Sublime docs MCP server), and a live probe of https://emailrep.io/bill@microsoft.com on
  2026-08-13. Never mutate the original spec — apply this overlay instead.
extends: openapi/emailrep-reputation-api-openapi.yml
actions:
  - target: $.info
    description: Record provenance and the provider's own title for this contract.
    update:
      x-apievangelist-enriched: '2026-08-13'
      x-provider-spec-title: EmailRep Alpha API
      x-provider-spec-retrieval: >-
        The provider publishes no downloadable OpenAPI. Their spec is registered in their ReadMe
        docs project and is only reachable through https://docs.sublime.security/mcp.
  - target: $.paths['/{email}'].get
    description: >-
      Add the User-Agent requirement, which is documented in prose only and appears in no
      OpenAPI the provider publishes. Omitting it returns 403 before the key is even checked.
    update:
      x-required-headers:
        - name: User-Agent
          required: true
          missing_status: 403
          description: >-
            Must accurately describe the consuming application. A missing user agent returns
            HTTP 403; a generic or misleading one may be blocked.
      x-rate-limit:
        window: rolling-24h
        headers:
          - X-Rate-Limit-Daily-Remaining
          - X-Rate-Limit-Monthly-Remaining
        exhaustion_status: 429
  - target: $.paths['/{email}'].get.responses
    description: >-
      Document the 403 the provider returns for a missing User-Agent. It is absent from both the
      provider's spec and the refined spec, so a spec-driven agent cannot anticipate it.
    update:
      '403':
        description: >-
          Forbidden — the request carried no User-Agent header, or one that could not be
          identified. Documented at
          https://docs.sublime.security/reference/emailrep-introduction.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Error'
  - target: $.paths['/{email}'].get.responses['429']
    description: >-
      429 is overloaded. Record the second, non-rate-limit meaning observed in production so an
      agent does not retry forever against a condition that will never clear.
    update:
      x-overloaded-status:
        - condition: quota exhausted
          reason_example: rate limit exceeded
          retryable: true
        - condition: anonymous access disabled
          reason_example: the unauthenticated API is currently disabled. please use an API key
          retryable: false
          observed: '2026-08-13'
  - target: $.components.securitySchemes.ApiKeyAuth
    description: Correct the documented-vs-deployed gap on anonymous access.
    update:
      x-anonymous-access:
        documented: true
        enforced: false
        note: >-
          The docs still say a key is optional. As of 2026-08-13 an anonymous request returns 429
          with reason "the unauthenticated API is currently disabled. please use an API key".
          Treat the key as required.
      x-signup: https://emailrep.io/free
  - target: $.servers
    description: Flag that the provider's own spec offers a plaintext server.
    update:
      x-transport-warning: >-
        The provider's own OpenAPI lists http://emailrep.io alongside https://emailrep.io. Never
        use the plaintext server — the query parameter is a real person's email address, and
        emailrep.io serves no HSTS.