BanQu · OpenAPI Overlay 1.0.0

API Evangelist enhancements for the BanQu API

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

What the actions change

x-apievangelist-notecontactx-apievangelist-profilex-apievangelist-reviewedx-apievangelist-artifactsx-apievangelist-findings

Targets 5

$.info
$.servers
$.tags
$.components.parameters.Limit
$.components.responses['429']

OpenAPI Overlay

Raw ↑
overlay: 1.0.0
info:
  title: API Evangelist enhancements for the BanQu API
  version: 1.0.0
extends: openapi/banqu-openapi-original.json
x-generated: '2026-08-06'
x-method: generated
x-source: >-
  Derived from the live OpenAPI 3.0.3 document at https://banqu.app/api/v1/schema plus the artifacts
  in this repository. The original spec is never mutated; every enhancement below is expressed as an
  overlay action.
actions:
- target: $.info
  update:
    contact:
      name: BanQu Support
      email: info@banqu.co
      url: https://www.banqu.co/support-policy
    x-apievangelist-profile: https://apievangelist.com/providers/banqu
    x-apievangelist-reviewed: '2026-08-06'
    x-apievangelist-artifacts:
      authentication: authentication/banqu-authentication.yml
      conventions: conventions/banqu-conventions.yml
      errors: errors/banqu-problem-types.yml
      data_model: data-model/banqu-data-model.yml
      lifecycle: lifecycle/banqu-lifecycle.yml
      conformance: conformance/banqu-conformance.yml
      webhooks: asyncapi/banqu-webhooks.yml
      skills: skills/_index.yml
- target: $.info
  update:
    x-apievangelist-findings:
      operation_ids: >-
        None of the 191 operations declares an operationId. Every generator, SDK, MCP bridge and
        agent tool built against this spec must synthesize identifiers from method+path, and any two
        tools will synthesize them differently. Adding stable operationIds is the single
        highest-leverage change to this document.
      operation_summaries: >-
        No operation declares a `summary`; several declare only a terse `description`. Tag-level
        descriptions exist for 8 of the 25 tags.
      error_schemas: >-
        The shared 4xx response components carry a description but no content or schema, so no error
        body is machine-readable from the contract.
      rate_limits: >-
        A 429 response component is defined but referenced by zero operations, and no rate-limit
        headers are declared.
      idempotency: >-
        No idempotency-key mechanism, including on the two batch write endpoints
        (POST /transactions/batch and POST /assets/{assetId}/transfers/batch).
      auth_header: >-
        components.securitySchemes declares HTTP Bearer while components.schemas.AuthTokens
        documents an X-BQ-Token header. The two statements conflict.
      server_url: >-
        servers[0].url is "https://banqu.app:443/api/v1" - the explicit :443 is redundant for https
        and breaks some strict URL parsers and code generators.
- target: $.servers
  update:
  - url: https://banqu.app/api/v1
    description: >-
      Production (API Evangelist normalization of the published
      "https://banqu.app:443/api/v1" - same host, redundant default port removed)
- target: $.tags
  update:
  - name: Authentication
    description: >-
      Account discovery, short-lived session tokens, and persistent API tokens. Start here: list
      accounts, mint a token for the account you intend to act as, then call everything else.
  - name: Assets
    description: >-
      Tracked commodity or product units - the nouns that move through the chain of custody.
  - name: Asset Transfers
    description: >-
      Movements of asset quantity between accounts. /sources on a transfer or an asset is what makes
      farm-to-shelf traceability queryable.
  - name: Forms
    description: >-
      Structured questionnaire definitions used to capture supplier, plot, and compliance evidence.
  - name: Form Data Entries
    description: >-
      Submitted form instances with an approve / deny / review / reject / withdraw lifecycle.
      Entries may be addressed by a double-pipe-separated natural key instead of a BanQu id.
  - name: Public Profiles
    description: Read-only supplier profile data shared to the acting account by another party.
  - name: Attachments
    description: Pre-signed upload URL minting for files referenced by assets, forms, and processors.
  - name: Notifications
    description: >-
      Polled notification feed. Writes accept a `preventNotify` query parameter to suppress
      notification side effects during bulk import.
- target: $.components.parameters.Limit
  update:
    x-apievangelist-note: >-
      No maximum is declared. Clients should not assume an unbounded page size.
- target: $.components.responses['429']
  update:
    x-apievangelist-note: >-
      Defined but referenced by zero operations, and no RateLimit-* or Retry-After headers are
      declared. Treat rate limits as undocumented and back off on 429 regardless.