Tvarka ATK API · OpenAPI Overlay 1.0.0

API Evangelist enhancements for the Tvarka Sign API

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

What the actions change

x-apievangelist-artifactsx-apievangelist-agent-surfacex-apievangelist-reversibilityx-apievangelist-observations

Targets 1

$.info

OpenAPI Overlay

Raw ↑
overlay: 1.0.0
info:
  title: API Evangelist enhancements for the Tvarka Sign API
  version: 1.0.0
extends: openapi/tvarka-sign-api-openapi.yml
x-provenance:
  generated: '2026-08-31'
  method: generated
  source: openapi/tvarka-sign-api-openapi.yml
  note: >-
    Non-destructive enhancements over the provider's published contract, fetched verbatim from
    https://sign-api.tvarka.pro/openapi.yaml on 2026-08-31. Every action below either links an
    artifact in this repo or records an observation made from the contract and the provider's own
    docs; none of it changes the provider's semantics.
actions:
  - target: $.info
    description: Link the harvested API Evangelist artifact set from the contract itself.
    update:
      x-apievangelist-artifacts:
        authentication: authentication/tvarka-sign-api-authentication.yml
        conventions: conventions/tvarka-sign-api-conventions.yml
        errors: errors/tvarka-sign-api-problem-types.yml
        webhooks: asyncapi/tvarka-sign-api-webhooks.yml
        sandbox: sandbox/tvarka-sign-api-sandbox.yml
        rate_limits: rate-limits/tvarka-sign-api-rate-limits.yml
        mcp: mcp/tvarka-sign-api-mcp.yml
        tool_crosswalk: mcp/tvarka-sign-api-tool-crosswalk.yml
        skills: skills/tvarka-sign-api-request-signatures.md
        sibling_api: openapi/_original/tvarka-atk-api-openapi-original.json
  - target: $.info
    description: >-
      Record the live agent surface. The contract does not mention the MCP server; the docs page and
      llms.txt do, and it was probed anonymously.
    update:
      x-apievangelist-agent-surface:
        mcp_endpoint: https://sign-api.tvarka.pro/mcp
        mcp_registry_name: pro.tvarka/sign
        mcp_transport: Streamable HTTP
        mcp_tools: 6
        mcp_discovery_auth: none
        mcp_probed: '2026-08-31'
        llms_txt: https://sign-api.tvarka.pro/llms.txt
  - target: $.info
    description: >-
      Record the reversibility contract - which writes can be taken back and exactly where reversal
      stops. Derived from the operation descriptions, not invented.
    update:
      x-apievangelist-reversibility:
        grade: verified
        reversal_pairs:
          createSigning: [cancelSigning, eraseSigning]
          addSigner: [removeSigner]
          uploadFile: [deleteFile]
        irreversible:
          - The qualified signature itself - it is a human act, and no operation revokes it.
          - archiveSigning - the upgrade adds a version rather than replacing one, but there is no downgrade.
        boundary: >-
          cancelSigning retracts only UNUSED invitations. Signatures already collected remain valid
          and the signed document remains downloadable.
        detail: conventions/tvarka-sign-api-conventions.yml
  - target: $.info
    description: >-
      Flag the one gap an integrator will meet first, so it is visible from the contract rather than
      only from prose.
    update:
      x-apievangelist-observations:
        - >-
          No request idempotency header exists on this API. A blind retry of createSigning raises a
          SECOND ceremony and bills a second time. Correlate with the caller-supplied externalId and
          check listSignings before retrying. (The sibling ATK API does require
          X-Atk-Idempotency-Key on its trust services, so the estate is inconsistent on this point.)
        - >-
          429 is declared on all 21 operations but the contract publishes no Retry-After and no
          RateLimit-* headers, so an agent cannot compute a backoff from the response. The only
          published numeric limit is one reminder per signer per hour.
        - >-
          Errors are genuinely RFC 9457, and body validation COLLECTS every fault into one response
          with an errors[] array of JSON Pointer + detail rather than failing fast.