Aignostics Public API

The Public API from Aignostics — 21 operation(s) for public.

Operations 26

GET /v1/applications List available applications #
GET /v1/applications/{application_id} Read Application By Id #
GET /v1/applications/{application_id}/versions/{version} Application Version Details #
GET /v1/runs List Runs #
POST /v1/runs Initiate Run #
GET /v1/runs/{run_id} Get run details #
POST /v1/runs/{run_id}/cancel Cancel Run #
GET /v1/runs/{run_id}/items List Run Items #
GET /v1/runs/{run_id}/items/{external_id} Get Item By Run #
GET /v1/runs/{run_id}/artifacts/{artifact_id}/file Get Artifact Url #
DELETE /v1/runs/{run_id}/artifacts Delete Run Items #
PUT /v1/runs/{run_id}/custom-metadata Put Run Custom Metadata #
PUT /v1/runs/{run_id}/items/{external_id}/custom-metadata Put Item Custom Metadata By Run #
GET /v1/me Get current user #
GET /v1/applications/{application_id}/versions/{version}/documents List version documents #
GET /v1/applications/{application_id}/versions/{version}/documents/{name} Get version document metadata #
GET /v1/applications/{application_id}/versions/{version}/documents/{name}/file Download version document (browser) #
GET /v1/applications/{application_id}/versions/{version}/documents/{name}/content Stream version document content (programmatic) #
POST /v1/access/grants Create Grant #
GET /v1/access/grants List Grants #
GET /v1/access/grants/{grant_id} Get Grant #
DELETE /v1/access/grants/{grant_id} Revoke Grant #
POST /v1/access/share-tokens Create Share Token #
GET /v1/access/share-tokens List Share Tokens #
GET /v1/access/share-tokens/{share_token_id} Get Share Token #
DELETE /v1/access/share-tokens/{share_token_id} Revoke Share Token #

Work with this as data

Every API 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 apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • 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 API
curl "https://apis.io/api/v1/apis/aignostics-public-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

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.

OpenAPI Specification

aignostics-public-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Aignostics Platform Public API
  description: The Aignostics Platform is a cloud-based service that enables organizations to access advanced computational pathology applications through a secure API.
  version: 1.8.0
servers:
- url: /api
tags:
- name: Public
paths:
  /v1/applications:
    get:
      tags:
      - Public
      summary: List available applications
      description: 'Returns the list of the applications, available to the caller.


        The application is available if any of the versions of the application is assigned to the caller''s organization.

        The response is paginated and sorted according to the provided parameters.'
      operationId: list_applications_v1_applications_get
      security:
      - OAuth2AuthorizationCodeBearer: []
      parameters:
      - name: page
        in: query
        required: false
        schema:
          type: integer
          minimum: 1
          default: 1
          title: Page
      - name: page-size
        in: query
        required: false
        schema:
          type: integer
          maximum: 100
          minimum: 5
          default: 50
          title: Page-Size
      - name: sort
        in: query
        required: false
        schema:
          anyOf:
          - type: array
            items:
              type: string
          - type: 'null'
          description: 'Sort the results by one or more fields. Use `+` for ascending and `-` for descending order.


            **Available fields:**

            - `application_id`

            - `name`

            - `description`

            - `regulatory_classes`


            **Examples:**

            - `?sort=application_id` - Sort by application_id ascending

            - `?sort=-name` - Sort by name descending

            - `?sort=+description&sort=name` - Sort by description ascending, then name descending'
          title: Sort
        description: 'Sort the results by one or more fields. Use `+` for ascending and `-` for descending order.


          **Available fields:**

          - `application_id`

          - `name`

          - `description`

          - `regulatory_classes`


          **Examples:**

          - `?sort=application_id` - Sort by application_id ascending

          - `?sort=-name` - Sort by name descending

          - `?sort=+description&sort=name` - Sort by description ascending, then name descending'
      responses:
        '200':
          description: A list of applications available to the caller
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ApplicationReadShortResponse'
                title: Response List Applications V1 Applications Get
              example:
              - application_id: he-tme
                name: Atlas H&E-TME
                regulatory_classes:
                - RUO
                description: The Atlas H&E TME is an AI application designed to examine FFPE (formalin-fixed, paraffin-embedded) tissues stained with H&E (hematoxylin and eosin), delivering comprehensive insights into the tumor microenvironment.
                latest_version:
                  number: 1.0.0
                  released_at: '2025-09-01T19:01:05.401Z'
              - application_id: test-app
                name: Test Application
                regulatory_classes:
                - RUO
                description: 'This is the test application with two algorithms: TissueQc and Tissue Segmentation'
                latest_version:
                  number: 2.0.0
                  released_at: '2025-09-02T19:01:05.401Z'
        '401':
          description: Unauthorized - Invalid or missing authentication
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /v1/applications/{application_id}:
    get:
      tags:
      - Public
      summary: Read Application By Id
      description: Retrieve details of a specific application by its ID.
      operationId: read_application_by_id_v1_applications__application_id__get
      security:
      - OAuth2AuthorizationCodeBearer: []
      parameters:
      - name: application_id
        in: path
        required: true
        schema:
          type: string
          title: Application Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApplicationReadResponse'
        '403':
          description: Forbidden - You don't have permission to see this application
        '404':
          description: Not Found - Application with the given ID does not exist
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /v1/applications/{application_id}/versions/{version}:
    get:
      tags:
      - Public
      summary: Application Version Details
      description: 'Get the application version details.


        Allows caller to retrieve information about application version based on provided application version ID.'
      operationId: application_version_details_v1_applications__application_id__versions__version__get
      security:
      - OAuth2AuthorizationCodeBearer: []
      parameters:
      - name: application_id
        in: path
        required: true
        schema:
          type: string
          title: Application Id
      - name: version
        in: path
        required: true
        schema:
          type: string
          pattern: ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$
          title: Version
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VersionReadResponse'
              example:
                version_number: 1.3.0
                changelog: New deployment
                input_artifacts:
                - name: whole_slide_image
                  mime_type: image/tiff
                  metadata_schema:
                    type: object
                    title: Slide Schema
                    description: Schema of a slide.
                    $defs:
                      LungCancerSpecimen:
                        type: object
                        title: LungCancerSpecimen
                        required:
                        - disease
                        properties:
                          disease:
                            const: LUNG_CANCER
                            type: string
                            title: Disease
                          tissue:
                            enum:
                            - LUNG
                            - LYMPH_NODE
                            - LIVER
                            - ADRENAL_GLAND
                            - BONE
                            - BRAIN
                            - OTHER
                            type: string
                            title: Tissue
                            default: OTHER
                        additionalProperties: false
                    required:
                    - checksum_base64_crc32c
                    - staining_method
                    - specimen
                    properties:
                      checksum_base64_crc32c:
                        type: string
                        title: Base64 encoded big-endian CRC32C checksum
                      staining_method:
                        const: H&E
                        type: string
                        title: Staining Method
                      specimen:
                        anyOf:
                        - $ref: '#/$defs/LungCancerSpecimen'
                        title: Specimen
                      media_type:
                        anyOf:
                        - enum:
                          - application/dicom
                          - image/tiff
                          - application/octet-stream
                          - application/zip
                          type: string
                        - type: 'null'
                        title: Media Type
                      resolution_mpp:
                        anyOf:
                        - type: number
                          maximum: 0.55
                          minimum: 0.08
                        - type: 'null'
                        title: Resolution (mpp)
                      width_px:
                        anyOf:
                        - type: integer
                          minimum: 1
                        - type: 'null'
                        title: Width (px)
                      height_px:
                        anyOf:
                        - type: integer
                          minimum: 1
                        - type: 'null'
                        title: Height (px)
                    additionalProperties: false
                output_artifacts:
                - name: tissue_qc:segmentation_map_image
                  mime_type: image/tiff
                  metadata_schema:
                    type: object
                    title: SegmentationMapImageMetadata
                    description: Metadata corresponding to a segmentation map image.
                    required:
                    - checksum_base64_crc32c
                    - width_px
                    - height_px
                    - class_colors
                    properties:
                      checksum_base64_crc32c:
                        type: string
                        title: Base64 encoded big-endian CRC32C checksum
                      width_px:
                        type: integer
                        title: Width Px
                      height_px:
                        type: integer
                        title: Height Px
                      media_type:
                        const: image/tiff
                        type: string
                        title: Media Type
                        default: image/tiff
                      resolution_mpp:
                        type: number
                        title: Resolution Mpp
                        maximum: 0.55
                        minimum: 0.08
                      class_colors:
                        type: object
                        title: Class Colors
                        additionalProperties:
                          type: array
                          maxItems: 3
                          minItems: 3
                          prefixItems:
                          - type: integer
                            maximum: 255
                            minimum: 0
                          - type: integer
                            maximum: 255
                            minimum: 0
                          - type: integer
                            maximum: 255
                            minimum: 0
                    additionalProperties: false
                  scope: ITEM
                  visibility: EXTERNAL
                released_at: '2025-04-16T08:45:20.655972Z'
        '403':
          description: Forbidden - You don't have permission to see this version
        '404':
          description: Not Found - Application version with given ID is not available to you or does not exist
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /v1/runs:
    get:
      tags:
      - Public
      summary: List Runs
      description: 'List runs with filtering, sorting, and pagination capabilities.


        Returns paginated runs that were submitted by the user.'
      operationId: list_runs_v1_runs_get
      security:
      - OAuth2AuthorizationCodeBearer: []
      parameters:
      - name: application_id
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: Optional application ID filter
          examples:
          - tissue-segmentation
          - heta
          title: Application Id
        description: Optional application ID filter
      - name: application_version
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: Optional Version Name
          examples:
          - 1.0.2
          - 1.0.1-beta2
          title: Application Version
        description: Optional Version Name
      - name: external_id
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: Optionally filter runs by items with this external ID
          examples:
          - slide_001
          - patient_12345_sample_A
          title: External Id
        description: Optionally filter runs by items with this external ID
      - name: custom_metadata
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            maxLength: 1000
          - type: 'null'
          description: "Use PostgreSQL JSONPath expressions to filter runs by their custom_metadata.\n#### URL Encoding Required\n**Important**: JSONPath expressions contain special characters that must be URL-encoded when used in query parameters. Most HTTP clients handle this automatically, but when constructing URLs manually, please ensure proper encoding.\n\n#### Examples (Clear Format):\n- **Field existence**: `$.study` - Runs that have a study field defined\n- **Exact value match**: `$.study ? (@ == \"high\")` - Runs with specific study value\n- **Numeric comparison**: `$.confidence_score ? (@ > 0.75)` - Runs with confidence score greater than 0.75\n- **Array operations**: `$.tags[*] ? (@ == \"draft\")` - Runs with tags array containing \"draft\"\n- **Complex conditions**: `$.resources ? (@.gpu_count > 2 && @.memory_gb >= 16)` - Runs with high resource requirements\n\n#### Examples (URL-Encoded Format):\n- **Field existence**: `%24.study`\n- **Exact value match**: `%24.study%20%3F%20(%40%20%3D%3D%20%22high%22)`\n- **Numeric comparison**: `%24.confidence_score%20%3F%20(%40%20%3E%200.75)`\n- **Array operations**: `%24.tags%5B*%5D%20%3F%20(%40%20%3D%3D%20%22draft%22)`\n- **Complex conditions**: `%24.resources%20%3F%20(%40.gpu_count%20%3E%202%20%26%26%20%40.memory_gb%20%3E%3D%2016)`\n\n#### Notes\n- JSONPath expressions are evaluated using PostgreSQL's `@?` operator\n- The `$.` prefix is automatically added to root-level field references if missing\n- String values in conditions must be enclosed in double quotes\n- Use `&&` for AND operations and `||` for OR operations\n- Regular expressions use `like_regex` with standard regex syntax\n- **Please remember to URL-encode the entire JSONPath expression when making HTTP requests**\n\n            "
          title: Custom Metadata
        description: "Use PostgreSQL JSONPath expressions to filter runs by their custom_metadata.\n#### URL Encoding Required\n**Important**: JSONPath expressions contain special characters that must be URL-encoded when used in query parameters. Most HTTP clients handle this automatically, but when constructing URLs manually, please ensure proper encoding.\n\n#### Examples (Clear Format):\n- **Field existence**: `$.study` - Runs that have a study field defined\n- **Exact value match**: `$.study ? (@ == \"high\")` - Runs with specific study value\n- **Numeric comparison**: `$.confidence_score ? (@ > 0.75)` - Runs with confidence score greater than 0.75\n- **Array operations**: `$.tags[*] ? (@ == \"draft\")` - Runs with tags array containing \"draft\"\n- **Complex conditions**: `$.resources ? (@.gpu_count > 2 && @.memory_gb >= 16)` - Runs with high resource requirements\n\n#### Examples (URL-Encoded Format):\n- **Field existence**: `%24.study`\n- **Exact value match**: `%24.study%20%3F%20(%40%20%3D%3D%20%22high%22)`\n- **Numeric comparison**: `%24.confidence_score%20%3F%20(%40%20%3E%200.75)`\n- **Array operations**: `%24.tags%5B*%5D%20%3F%20(%40%20%3D%3D%20%22draft%22)`\n- **Complex conditions**: `%24.resources%20%3F%20(%40.gpu_count%20%3E%202%20%26%26%20%40.memory_gb%20%3E%3D%2016)`\n\n#### Notes\n- JSONPath expressions are evaluated using PostgreSQL's `@?` operator\n- The `$.` prefix is automatically added to root-level field references if missing\n- String values in conditions must be enclosed in double quotes\n- Use `&&` for AND operations and `||` for OR operations\n- Regular expressions use `like_regex` with standard regex syntax\n- **Please remember to URL-encode the entire JSONPath expression when making HTTP requests**\n\n            "
        examples:
          no_filter:
            summary: No filter (returns all)
            description: Returns all items without filtering by custom metadata
            value: $
          field_exists:
            summary: Check if field exists
            description: Find applications that have a project field defined
            value: $.study
          field_has_value:
            summary: Check if field has a certain value
            description: Compare a field value against a certain value
            value: $.study ? (@ == "abc-1")
          numeric_comparisons:
            summary: Compare to a numeric value of a field
            description: Compare a field value against a numeric value of a field
            value: $.confidence_score ? (@ > 0.75)
          array_operations:
            summary: Check if an array contains a certain value
            description: Check if an array contains a certain value
            value: $.tags[*] ? (@ == "draft")
          complex_filters:
            summary: Combine multiple checks
            description: Combine multiple checks
            value: $.resources ? (@.gpu_count > 2 && @.memory_gb >= 16)
      - name: page
        in: query
        required: false
        schema:
          type: integer
          minimum: 1
          default: 1
          title: Page
      - name: page_size
        in: query
        required: false
        schema:
          type: integer
          maximum: 100
          minimum: 5
          default: 50
          title: Page Size
      - name: submitted_by
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: Filter runs by the user who submitted them. Use the special value `me` to return only runs submitted by the current user.
          examples:
          - me
          - auth0|123456789
          title: Submitted By
        description: Filter runs by the user who submitted them. Use the special value `me` to return only runs submitted by the current user.
      - name: organization_id
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: Filter runs by the organization of the submitter. Use the special value `my_org` to filter by the current user's organization.
          examples:
          - my_org
          - org_acme
          title: Organization Id
        description: Filter runs by the organization of the submitter. Use the special value `my_org` to filter by the current user's organization.
      - name: for_organization
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: Filter runs by organization ID. Available for superadmins (any org) and admins (own org only). When provided, returns all runs for the specified organization instead of only the caller's own runs.
          title: For Organization
        description: Filter runs by organization ID. Available for superadmins (any org) and admins (own org only). When provided, returns all runs for the specified organization instead of only the caller's own runs.
      - name: sort
        in: query
        required: false
        schema:
          anyOf:
          - type: array
            items:
              type: string
          - type: 'null'
          description: 'Sort the results by one or more fields. Use `+` for ascending and `-` for descending order.


            **Available fields:**

            - `run_id`

            - `application_id`

            - `version_number`

            - `custom_metadata`

            - `submitted_at`

            - `submitted_by`

            - `terminated_at`

            - `termination_reason`


            **Examples:**

            - `?sort=submitted_at` - Sort by creation time (ascending)

            - `?sort=-submitted_at` - Sort by creation time (descending)

            - `?sort=state&sort=-submitted_at` - Sort by state, then by time (descending)

            '
          title: Sort
        description: 'Sort the results by one or more fields. Use `+` for ascending and `-` for descending order.


          **Available fields:**

          - `run_id`

          - `application_id`

          - `version_number`

          - `custom_metadata`

          - `submitted_at`

          - `submitted_by`

          - `terminated_at`

          - `termination_reason`


          **Examples:**

          - `?sort=submitted_at` - Sort by creation time (ascending)

          - `?sort=-submitted_at` - Sort by creation time (descending)

          - `?sort=state&sort=-submitted_at` - Sort by state, then by time (descending)

          '
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/RunReadResponse'
                title: Response List Runs V1 Runs Get
        '404':
          description: Run not found
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    post:
      tags:
      - Public
      summary: Initiate Run
      description: 'This endpoint initiates a processing run for a selected application and version, and returns a

        `run_id` for tracking purposes.'
      operationId: create_run_v1_runs_post
      security:
      - OAuth2AuthorizationCodeBearer: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RunCreationRequest'
      responses:
        '201':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RunCreationResponse'
        '404':
          description: Application or application version not found
        '400':
          description: Bad Request - Input validation failed
        '402':
          description: Payment Required - A quota limit (slides per run, or monthly slides) would be exceeded by this run
        '403':
          description: Forbidden - You don't have permission to create this run
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /v1/runs/{run_id}:
    get:
      tags:
      - Public
      summary: Get run details
      description: 'This endpoint allows the caller to retrieve the current status of a run along with other relevant run details.

        A run becomes available immediately after it is created through the `POST /v1/runs/` endpoint.


        To download the output results, use `GET /v1/runs/{run_id}/` items to get outputs for all slides.

        Access to a run is restricted to the user who created it, or users with an active grant or valid share token.'
      operationId: get_run_v1_runs__run_id__get
      security:
      - OAuth2AuthorizationCodeBearer: []
      parameters:
      - name: run_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          description: Run id, returned by `POST /v1/runs/` endpoint
          title: Run Id
        description: Run id, returned by `POST /v1/runs/` endpoint
      - name: share_token
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: Share token for accessing shared runs
          title: Share Token
        description: Share token for accessing shared runs
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RunReadResponse'
        '404':
          description: Run not found because it was deleted.
        '403':
          description: Forbidden - You don't have permission to see this run
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /v1/runs/{run_id}/cancel:
    post:
      tags:
      - Public
      summary: Cancel Run
      description: 'The run can be canceled by the user who created the run.


        The execution can be canceled any time while the run is not in the terminated state. The

        pending items of a canceled run will not be processed and will not add to the cost.


        When the run is canceled, the already completed items remain available for download.'
      operationId: cancel_run_v1_runs__run_id__cancel_post
      security:
      - OAuth2AuthorizationCodeBearer: []
      parameters:
      - name: run_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          description: Run id, returned by `POST /runs/` endpoint
          title: Run Id
        description: Run id, returned by `POST /runs/` endpoint
      responses:
        '202':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '404':
          description: Run not found
        '403':
          description: Forbidden - You don't have permission to cancel this run
        '409':
          description: Conflict - The Run is already cancelled
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /v1/runs/{run_id}/items:
    get:
      tags:
      - Public
      summary: List Run Items
      description: 'List items in a run with filtering, sorting, and pagination capabilities.


        Returns paginated items within a specific run. Results can be filtered

        by `item_id`, `external_ids`, `custom_metadata`, `terminated_at`, and `termination_reason` using JSONPath expressions.


        ## JSONPath Metadata Filtering

        Use PostgreSQL JSONPath expressions to filter items using their custom_metadata.


        ### Examples:

        - **Field existence**: `$.case_id` - Results that have a case_id field defined

        - **Exact value match**: `$.priority ? (@ == "high")` - Results with high priority

        - **Numeric comparison**: `$.confidence_score ? (@ > 0.95)` - Results with high confidence

        - **Array operations**: `$.flags[*] ? (@ == "reviewed")` - Results flagged as reviewed

        - **Complex conditions**: `$.metrics ? (@.accuracy > 0.9 && @.recall > 0.8)` - Results meeting performance thresholds


        ## Notes

        - JSONPath expressions are evaluated using PostgreSQL''s `@?` operator

        - The `$.` prefix is automatically added to root-level field references if missing

        - String values in conditions must be enclosed in double quotes

        - Use `&&` for AND operations and `||` for OR operations'
      operationId: list_run_items_v1_runs__run_id__items_get
      security:
      - OAuth2AuthorizationCodeBearer: []
      parameters:
      - name: run_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          description: Run id, returned by `POST /v1/runs/` endpoint
          title: Run Id
        description: Run id, returned by `POST /v1/runs/` endpoint
      - name: share_token
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: Share token for accessing shared runs
          title: Share Token
        description: Share token for accessing shared runs
      - name: item_id__in
        in: query
        required: false
        schema:
          anyOf:
          - type: array
            items:
              type: string
              format: uuid
          - type: 'null'
          description: Filter for item ids
          title: Item Id  In
        description: Filter for item ids
      - name: external_id__in
        in: query
        required: false
        schema:
          anyOf:
          - type: array
            items:
              type: string
          - type: 'null'
          description: Filter for items by their external_id from the input payload
          title: External Id  In
        description: Filter for items by their external_id from the input payload
      - name: state
        in: query
        required: false
        schema:
          anyOf:
          - $ref: '#/components/schemas/ItemState'
          - type: 'null'
          description: Filter items by their state
          title: State
        description: Filter items by their state
      - name: termination_reason
        in: query
        required: false
        schema:
          anyOf:
          - $ref: '#/components/schemas/ItemTerminationReason'
          - type: 'null'
          description: Filter items by their termination reason. Only applies to TERMINATED items.
          title: Termination Reason
        description: Filter items by their termination reason. Only applies to TERMINATED items.
      - name: custom_metadata
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            maxLength: 1000
          - type: 'null'
          description: JSONPath expression to filter items by their custom_metadata
          title: Custom Metadata
        description: JSONPath expression to filter items by their custom_metadata
        examples:
          no_filter:
            summary: No filter (returns all)
            description: Returns all items without filtering by custom metadata
            value: $
          field_exists:
            summary: Check if field exists
            description: Find items that have a project field defined
            value: $.project
          field_has_value:
            summary: Check if field has a certain value
            description: Compare a field value against a certain value
            value: $.project ? (@ == "cancer-research")
          numeric_comparisons:
            summary: Compare to a numeric value of a field
            description: Compare a field value against a numeric value of a field
            value: $.duration_hours ? (@ < 2)
          array_operations:
            summary: Check if an array contains a certain value
            description: Check if an array contains a certain value
            value: $.tags[*] ? (@ == "production")
          complex_filters:
            summary: Combine multiple checks
            description: Combine multiple checks
            value: $.resources ? (@.gpu_count > 2 && @.memory_gb >= 16)
      - name: page
        in: query
        required: false
        schema:
          type: integer
          minimum: 1
          default: 1
          title: Page
      - name: page_size
        in: query
        required: false
        schema:
          type: integer
          maximum: 100
          minimum: 5
          default: 50
          title: Page Size
      - name: sort
        in: query
        required: false
        schema:
          anyOf:
          - type: array
            items:
              type: string
          - type: 'null'
          description: "Sort the i

# --- truncated at 32 KB (104 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/aignostics/refs/heads/main/openapi/aignostics-public-api-openapi.yml