Aignostics · OpenAPI Overlay 1.0.0

API Evangelist enhancements for the Aignostics Platform API

9 actions 9 updates servers
Generated by API Evangelist Written by API Evangelist tooling for Aignostics's API. It is a proposal applied on top of the contract, not a document Aignostics publishes.
View Overlay File View on GitHub Overlay Specification

What the actions change

serverscontactx-providerx-status-pagex-documentationx-additional-flowsx-billablex-idempotent

Targets 7

$
$.info
$.components.securitySchemes.OAuth2AuthorizationCodeBearer
$.paths['/v1/runs'].post
$.paths['/v1/runs/{run_id}/artifacts'].delete
$.paths['/v1/applications'].get
$.paths['/v1/me'].get

OpenAPI Overlay

Raw ↑
overlay: 1.0.0
info:
  title: API Evangelist enhancements for the Aignostics Platform API
  version: 1.0.0
x-generated: '2026-09-14'
x-method: generated
x-source: openapi/aignostics-platform-api-openapi.json
x-extends: openapi/aignostics-platform-api-openapi.json
x-note: >-
  Enhancements only. The original document is stored verbatim and is never mutated. The largest
  correction here is servers[] - the published contract declares a single relative server, "/api",
  which is correct inside the Console that renders it but leaves any standalone generated client
  with no host at all.
actions:
- target: $
  description: Replace the relative server with the absolute production base the documentation names.
  update:
    servers:
    - url: https://platform.aignostics.com/api
      description: >-
        Aignostics Platform production. The documented API base is
        https://platform.aignostics.com/api/v1; the v1 segment is carried in every path in this
        document.
- target: $.info
  description: Add contact, licence and terms metadata the published document omits.
  update:
    contact:
      name: Aignostics Support
      email: support@aignostics.com
      url: https://www.aignostics.com/contact
    x-provider:
      legal_name: Aignostics GmbH
      address: Alt-Moabit 73/73A, 10555 Berlin, Germany
      register: Amtsgericht Charlottenburg HRB 215748 B
      vat_id: DE329308485
      source: https://www.aignostics.com/impressum
    x-status-page: https://status.aignostics.com/
    x-documentation: https://aignostics.readthedocs.io/en/latest/get_started_api.html
- target: $.components.securitySchemes.OAuth2AuthorizationCodeBearer
  description: >-
    Record the device-authorization flow the documentation teaches and the SDK uses, which the
    published securityScheme omits.
  update:
    x-additional-flows:
      deviceCode:
        standard: RFC 8628
        deviceAuthorizationUrl: https://aignostics-platform.eu.auth0.com/oauth/device/code
        tokenUrl: https://aignostics-platform.eu.auth0.com/oauth/token
        grantType: urn:ietf:params:oauth:grant-type:device_code
        audience: https://aignostics-platform-samia
        scope: offline_access
        source: https://aignostics.readthedocs.io/en/latest/get_started_api.html
- target: $.paths['/v1/runs'].post
  description: >-
    Mark the cost, idempotency and reversal characteristics of the one operation that spends money.
  update:
    x-billable: true
    x-idempotent: false
    x-idempotency-note: >-
      No idempotency key is accepted. The documentation states "POST /v1/runs is not idempotent -
      calling it twice analyzes your slides twice." Record the returned run_id before any retry.
    x-reversal:
      operation: cancel_run_v1_runs__run_id__cancel_post
      window: any time while the run is not in the TERMINATED state
      cost_effect: pending items are not processed and do not add to the cost
    x-quota:
      dimensions: [slides per run, monthly slides]
      exhaustion_status: 402
      values_published: false
- target: $.paths['/v1/runs/{run_id}/artifacts'].delete
  description: Mark the irreversible operation and the retention window that applies regardless.
  update:
    x-reversible: false
    x-retention:
      auto_delete_days: 30
      after: run completion
      note: >-
        Artifacts are deleted automatically 30 days after the run finishes whether or not this
        operation is ever called. Retrieve results inside that window.
- target: $.paths['/v1/applications'].get
  description: >-
    Flag the pagination parameter-name inconsistency; this endpoint spells it `page-size` while every
    other collection spells it `page_size`.
  update:
    x-convention-deviation:
      field: page-size
      expected: page_size
      affects: generated clients and hand-written callers
      other_endpoints_using_page_size:
      - /v1/runs
      - /v1/runs/{run_id}/items
      - /v1/access/grants
      - /v1/access/share-tokens
- target: $.paths['/v1/me'].get
  description: Flag that the identity endpoint returns live storage credentials.
  update:
    x-returns-credentials: true
    x-handling-note: >-
      OrganizationReadResponse carries aignostics_bucket_hmac_access_key_id,
      aignostics_bucket_hmac_secret_access_key, aignostics_logfire_token and aignostics_sentry_dsn.
      Do not log, cache or forward this response.
- target: $
  description: >-
    Record the domain standards the contract signals, so a reader does not have to infer them from
    a MIME type table.
  update:
    x-domain-standards:
    - id: dicom
      signal: application/dicom accepted as an input artifact media type
    - id: regulatory-classes
      signal: ApplicationReadResponse.regulatory_classes enumerates RUO, IVDR, FDA per application
      note: read at runtime before using any result clinically
- target: $
  description: Record the event surface the contract references but does not describe.
  update:
    x-event-surface:
      documented: false
      dangling_reference: >-
        RunCreationRequest.callback_context is "echoed in state-change events", but no webhook,
        callback or AsyncAPI channel is published. Consumption today is polling.