Niural · OpenAPI Overlay 1.0.0

API Evangelist enhancements for the Niural Public API

14 actions 14 updates documentation extends openapi/niural-public-api-openapi.yml
Generated by API Evangelist Written by API Evangelist tooling for Niural's API. It is a proposal applied on top of the contract, not a document Niural publishes.
View Overlay File View on GitHub Overlay Specification

What the actions change

operationIdx-agentic-accessx-safe-to-retryx-apievangelist-profilex-apievangelist-enrichedcontacttagsx-rate-limit

Targets 14

$.info
$
$.paths['/authenticate'].post
$.paths['/contracts'].post
$.paths['/contracts'].get
$.paths['/contracts/{contract-id}'].get
$.paths['/contracts/{contract-id}/sign'].patch
$.paths['/contracts/{contract-id}/invite-contractor'].patch
$.paths['/payment-methods'].get
$.paths['/transaction-estimates'].post
$.paths['/transactions'].post
$.paths['/transactions'].get
$.paths['/transactions/{transaction-id}'].get
$.paths['/transactions/{transaction-id}'].patch

OpenAPI Overlay

Raw ↑
overlay: 1.0.0
info:
  title: API Evangelist enhancements for the Niural Public API
  version: 1.0.0
extends: openapi/niural-public-api-openapi.yml
x-generated: '2026-08-04'
x-method: generated
x-source: >-
  Derived from the Niural Public API OpenAPI 3.0.3 harvested verbatim from
  docs.niural.com plus the cross-cutting docs captured in
  conventions/niural-conventions.yml, errors/niural-problem-types.yml and
  rate-limits/niural-rate-limits.yml. Adds the twelve missing operationIds,
  declares the tag set, and records the runtime semantics OpenAPI cannot express.
  The harvested spec is never mutated.
actions:
- target: $.info
  update:
    x-apievangelist-profile: https://apis.io/provider/niural
    x-apievangelist-enriched: '2026-08-04'
    contact:
      name: Niural Developer Documentation
      url: https://docs.niural.com/
- target: $
  update:
    tags:
    - name: Authentication
      description: Exchange client credentials for a bearer access token.
    - name: Contracts
      description: Create, list, sign and share pay-on-demand contractor contracts.
    - name: Invoices
      description: Create and read invoices raised against a contract.
    - name: Transactions
      description: Estimate, initiate and track payments settling one or more invoices.
    x-rate-limit:
      requests_per_second: 25
      scope: token
      throttled_status: 429
      source: https://docs.niural.com/docs/rate-limits
    x-pagination:
      style: cursor
      params: [limit, next_cursor]
      default_page_size: 20
      source: https://docs.niural.com/docs/pagination
    x-idempotency:
      supported: false
      note: >-
        Niural documents no idempotency-key mechanism. POST /transactions and
        POST /invoices are NOT safe to blind-retry.
- target: $.paths['/authenticate'].post
  update:
    operationId: obtainAuthToken
    x-agentic-access: {action_class: acting, consequence: write}
- target: $.paths['/contracts'].post
  update:
    operationId: createContract
- target: $.paths['/contracts'].get
  update:
    operationId: listContracts
- target: $.paths['/contracts/{contract-id}'].get
  update:
    operationId: getContract
- target: $.paths['/contracts/{contract-id}/sign'].patch
  update:
    operationId: signContract
- target: $.paths['/contracts/{contract-id}/invite-contractor'].patch
  update:
    operationId: inviteContractorToContract
- target: $.paths['/payment-methods'].get
  update:
    operationId: listPaymentMethods
- target: $.paths['/transaction-estimates'].post
  update:
    operationId: estimateTransaction
    x-safe-to-retry: true
- target: $.paths['/transactions'].post
  update:
    operationId: initiateTransaction
    x-safe-to-retry: false
    x-agentic-access:
      action_class: acting
      consequence: physical
      note: Moves real money against one or more invoices; no idempotency key is available.
- target: $.paths['/transactions'].get
  update:
    operationId: listTransactions
- target: $.paths['/transactions/{transaction-id}'].get
  update:
    operationId: getTransaction
- target: $.paths['/transactions/{transaction-id}'].patch
  update:
    operationId: updatePayByHashTransaction