Anomalo · OpenAPI Overlay 1.0.0

API Evangelist enhancements for the Anomalo Public API

7 actions 7 updates update extends openapi/anomalo-public-api-openapi.yml
Derived by API Evangelist Built from the contracts Anomalo publishes. Anomalo did not publish this file.
View Overlay File View on GitHub Overlay Specification

What the actions change

x-apievangelist-enrichedx-apievangelist-provenancex-apievangelist-artifactsx-tenancy-modelx-idempotencyx-rate-limitingx-paginationx-error-envelope

Targets 6

$.info
$.servers
$.components.securitySchemes.AnomaloToken
$.paths['/run_checks'].post
$.paths['/tables/{table_id}/checks/static_id/{static_id}'].patch
$.paths['/organization'].put

OpenAPI Overlay

Raw ↑
overlay: 1.0.0
info:
  title: API Evangelist enhancements for the Anomalo Public API
  version: 1.0.0
extends: openapi/anomalo-public-api-openapi.yml
x-generated: '2026-07-31'
x-method: generated
x-source: >-
  API Evangelist enrichment pipeline. Captures the analysis layered on top of the derived Anomalo
  OpenAPI without mutating it.
actions:
  - target: $.info
    description: Record the API Evangelist rating context and the derivation provenance.
    update:
      x-apievangelist-enriched: '2026-07-31'
      x-apievangelist-provenance: >-
        Derived from Anomalo's first-party Apache-2.0 `anomalo` PyPI client 0.46.0. Anomalo publishes no
        OpenAPI description; documentation is gated to customers.
      x-apievangelist-artifacts:
        authentication: authentication/anomalo-authentication.yml
        conventions: conventions/anomalo-conventions.yml
        errors: errors/anomalo-problem-types.yml
        lifecycle: lifecycle/anomalo-lifecycle.yml
        conformance: conformance/anomalo-conformance.yml
        data_model: data-model/anomalo-data-model.yml
        mcp: mcp/anomalo-mcp.yml
        tool_crosswalk: mcp/anomalo-tool-crosswalk.yml
        packages: packages/anomalo-packages.yml
        cli: cli/anomalo-cli.yml

  - target: $.info
    description: Record the cross-cutting semantics an agent needs before making any call.
    update:
      x-tenancy-model: >-
        Operations resolve against the caller's ACTIVE organization, which is sticky server-side state
        set by PUT /organization — not a request parameter. Read GET /organization before trusting the
        scope of any result.
      x-idempotency: >-
        Not supported. No idempotency key, no request deduplication, no conditional requests. Retrying a
        write is not safe by contract.
      x-rate-limiting: >-
        Not signalled by the API. No RateLimit-*, X-RateLimit-* or Retry-After headers.
      x-pagination: >-
        Limit/offset on administrative list operations only; the primary data-plane listings are
        unpaginated.
      x-error-envelope: >-
        Undocumented. Failure bodies must be treated as opaque text; there is no problem+json structure
        and no error code registry.

  - target: $.servers
    description: Note the per-tenant deployment model and the unauthenticated version-discovery endpoint.
    update:
      x-deployment-model: per-tenant
      x-version-discovery: >-
        GET https://{instance}/version.txt (unauthenticated) returns the deployment's semantic version,
        e.g. v0.190.3. This is the only public signal of which features a given deployment supports.

  - target: $.components.securitySchemes.AnomaloToken
    description: Flag the legacy/successor relationship between the two auth headers.
    update:
      x-auth-lineage: >-
        The first-party client calls this path `legacy_auth` and defaults to it. The bearer scheme
        appears to be the successor, but Anomalo publishes no migration timeline and this remains the
        default.

  - target: $.paths['/run_checks'].post
    description: >-
      Record the agent-safety guardrail Anomalo's own MCP server applies to this operation, which the
      REST contract does not carry.
    update:
      x-agent-guardrail:
        client_side_throttle: 15 minutes per table
        scope: full-table runs (no check_id)
        enforced_by: >-
          Anomalo's official MCP server (DQ_CHECK_RUN_RATE_LIMIT), not the API.
        note: >-
          The only write operation Anomalo exposes to agents, and the only one it wraps in a throttle.
      x-natural-convergence: >-
        Will not start a new check run for a table when one is already pending, which makes repeated
        triggers convergent in practice despite the absence of idempotency keys.

  - target: $.paths['/tables/{table_id}/checks/static_id/{static_id}'].patch
    description: Highlight the durable identifier as the correct integration key.
    update:
      x-durable-identifier: >-
        `check_static_id` is user-set and survives delete-and-recreate cycles, unlike the numeric
        `check_id`. External systems should key on this identifier.

  - target: $.paths['/organization'].put
    description: Warn about the shared-credential hazard in sticky organization state.
    update:
      x-concurrency-hazard: >-
        Changing the active organization mutates state associated with the API key, not the request.
        Concurrent clients sharing one key will interfere with each other's scoping.

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/anomalo-public-api-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.