AhaSend · OpenAPI Overlay 1.0.0

API Evangelist enhancements for AhaSend API v2 Accounts Messages API

5 actions 5 updates update extends ahasend-messages-api-openapi.yml
Derived by API Evangelist Built from the contracts AhaSend publishes. AhaSend did not publish this file.
View Overlay File View on GitHub Overlay Specification

What the actions change

termsOfServicecontactexternalDocsx-rate-limitsx-error-envelopex-paginationx-idempotencyx-reversibility

Targets 3

$.info
$
$.paths['/v2/accounts/{account_id}/messages'].post

OpenAPI Overlay

Raw ↑
overlay: 1.0.0
info:
  title: API Evangelist enhancements for AhaSend API v2 Accounts Messages API
  version: 1.0.0
extends: ahasend-messages-api-openapi.yml
x-provenance:
  generated: '2026-08-30'
  method: generated
  source: Facts published by AhaSend at ahasend.com/docs; see conventions/, errors/, rate-limits/ and conventions/
    reversibility.
  note: This overlay is authored by API Evangelist, not by AhaSend. It never mutates the original contract.
actions:
- target: $.info
  description: Add the published legal, support and documentation URLs the source contract omits.
  update:
    termsOfService: https://ahasend.com/terms
    contact:
      name: AhaSend Support
      email: support@ahasend.com
      url: https://ahasend.com/contact
- target: $
  description: Point the contract at its own reference documentation.
  update:
    externalDocs:
      description: AhaSend API reference
      url: https://ahasend.com/docs/api-reference/messages/create-message
- target: $
  description: Record the published account-level rate limits and the error envelope contract, neither of which
    the source spec declares.
  update:
    x-rate-limits:
      scope: account
      algorithm: sliding window, 1 second
      requests_per_second: 100
      burst: 200
      status_on_exhaustion: 429
      response_headers: []
      documentation: https://ahasend.com/docs/api-reference/rate-limits
    x-error-envelope:
      format: bare-json
      shape: '{"message": "string"}'
      rfc9457: false
      stable_machine_code: false
      note: Branch on HTTP status only. The contract states clients must not parse message to distinguish errors
        sharing a status.
      catalog: errors/ahasend-problem-types.yml
    x-pagination:
      style: cursor
      params:
      - limit
      - after
      - before
      response: pagination.has_more / next_cursor / previous_cursor
- target: $
  description: Declare idempotency support, which the source contract implies through a response header but never
    states.
  update:
    x-idempotency:
      header: Idempotency-Key
      methods:
      - POST
      scope: account
      retention: 24 hours (5 minutes for secret-bearing API key creation)
      replay_signal_header: Idempotent-Replayed
      operations:
      - createMessage
      - createConversationMessage
      documentation: https://ahasend.com/docs/api-reference/idempotency
- target: $.paths['/v2/accounts/{account_id}/messages'].post
  description: Record the published reversal path for createMessage.
  update:
    x-reversibility:
      reversible: true
      reversal_operation: cancelMessage
      window: while the message is still scheduled and unsent; schedule.first_attempt must be within 7 days of the
        request
      source: conventions/ahasend-conventions.yml

Work with this as data

Every overlay 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 openapi overlays

4 MCP tools reach this
  • find_overlaysBrowse and filter every overlay in the catalog.
  • 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 overlay
curl "https://apis.io/api/v1/overlays/ahasend-messages-overlay"
All openapi overlays
curl "https://apis.io/api/v1/overlays?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

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.