Antimetal Issues API

The Issues API from Antimetal — 4 operation(s) for issues.

Operations 7

POST /issues Create a new issue #
GET /issues Fetch issues for an organization #
GET /issues/by_number/{number} Fetch issue by number #
GET /issues/{id} Fetch an issue by ID (UUID) #
PATCH /issues/{id} Update issue status by ID (UUID) #
DELETE /issues/{id} Delete an issue #
GET /issues/{id}/results Fetch investigation results by ID (UUID) #

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/antimetal-issues-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 email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

antimetal-issues-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Antimetal External Issues API
  description: Public-facing API for external integrations with Antimetal. Provides programmatic access to issue investigation, results, artifacts, and chat functionality.
  version: '2026-03-17'
  contact: {}
servers:
- url: https://bff.antimetal.com/api/v2
  description: Production API
- url: https://bff.dev.antimetal.com/api/v2
  description: Dev API
security:
- bearer: []
tags:
- name: Issues
paths:
  /issues:
    post:
      description: Creates a new issue and optionally starts an automated investigation. The issue is created from the provided details, with a seed generated internally. Investigation runs asynchronously - poll GET /issues/{id} to check status.
      operationId: createIssue
      parameters:
      - $ref: '#/components/parameters/AntimetalVersion'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateIssueDto'
      responses:
        '201':
          description: Issue created successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateIssueResponseDto'
        '400':
          description: Validation error or bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseDto'
        '401':
          description: Authentication required
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseDto'
        '403':
          description: Insufficient permissions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseDto'
        '429':
          description: Rate limit exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseDto'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseDto'
      summary: Create a new issue
      tags:
      - Issues
      x-codeSamples:
      - lang: JavaScript
        source: "import Antimetal from '@antimetal/sdk';\n\nconst client = new Antimetal({\n  apiKey: process.env['ANTIMETAL_API_KEY'], // This is the default and can be omitted\n});\n\nconst issue = await client.issues.create({\n  description: 'x',\n  environment: 'x',\n  title: 'x',\n});\n\nconsole.log(issue.uuid);"
    get:
      description: Returns a paginated list of issues for the authenticated organization
      operationId: listIssues
      parameters:
      - $ref: '#/components/parameters/AntimetalVersion'
      - name: limit
        required: false
        in: query
        description: Number of items to return (1-100)
        schema:
          minimum: 1
          maximum: 100
          default: 10
          type: integer
      - name: startingAfter
        required: false
        in: query
        description: Cursor for forward pagination (ID/UUID to start after)
        schema:
          type: string
      - name: endingBefore
        required: false
        in: query
        description: Cursor for backward pagination (ID/UUID to end before)
        schema:
          type: string
      - name: status
        required: false
        in: query
        description: Filter by issue status
        schema:
          type: string
          enum:
          - investigating
          - ready_to_fix
          - resolved
          - muted
      - name: environment
        required: false
        in: query
        description: Filter by environment (exact match)
        schema:
          minLength: 1
          type: string
      - name: search
        required: false
        in: query
        description: Search issues by title or description (case-insensitive substring match)
        schema:
          minLength: 1
          type: string
      responses:
        '200':
          description: Paginated list of issues
          content:
            application/json:
              schema:
                type: object
                properties:
                  object:
                    type: string
                    enum:
                    - list
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/IssueSummaryDto'
                  has_more:
                    type: boolean
                  after:
                    type: string
                  before:
                    type: string
                required:
                - object
                - data
                - has_more
        '400':
          description: Validation error or bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseDto'
        '401':
          description: Authentication required
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseDto'
        '403':
          description: Insufficient permissions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseDto'
        '429':
          description: Rate limit exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseDto'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseDto'
      summary: Fetch issues for an organization
      tags:
      - Issues
      x-codeSamples:
      - lang: JavaScript
        source: "import Antimetal from '@antimetal/sdk';\n\nconst client = new Antimetal({\n  apiKey: process.env['ANTIMETAL_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const issueListResponse of client.issues.list()) {\n  console.log(issueListResponse.uuid);\n}"
  /issues/by_number/{number}:
    get:
      description: Lightweight endpoint to retrieve basic issue information by issue number
      operationId: getIssueByNumber
      parameters:
      - $ref: '#/components/parameters/AntimetalVersion'
      - name: number
        required: true
        in: path
        description: Issue number (organization-scoped)
        schema:
          type: integer
          format: int32
          minimum: 1
          example: 123
      responses:
        '200':
          description: Issue details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IssueDto'
        '404':
          description: Issue not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseDto'
        '500':
          description: Internal Server Error
      summary: Fetch issue by number
      tags:
      - Issues
      x-codeSamples:
      - lang: JavaScript
        source: "import Antimetal from '@antimetal/sdk';\n\nconst client = new Antimetal({\n  apiKey: process.env['ANTIMETAL_API_KEY'], // This is the default and can be omitted\n});\n\nconst issue = await client.issues.retrieveByNumber(123);\n\nconsole.log(issue.uuid);"
  /issues/{id}:
    get:
      description: Retrieves detailed information about a specific issue by its ID (UUID)
      operationId: getIssue
      parameters:
      - $ref: '#/components/parameters/AntimetalVersion'
      - name: version
        required: false
        in: query
        description: Issue version (defaults to latest)
        schema:
          type: integer
          format: int32
          minimum: 1
      - name: id
        required: true
        in: path
        description: Issue unique identifier (UUID)
        schema:
          type: string
          format: uuid
          pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
      responses:
        '200':
          description: Issue details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IssueDto'
        '400':
          description: Validation error or bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseDto'
        '401':
          description: Authentication required
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseDto'
        '403':
          description: Insufficient permissions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseDto'
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseDto'
        '429':
          description: Rate limit exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseDto'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseDto'
      summary: Fetch an issue by ID (UUID)
      tags:
      - Issues
      x-codeSamples:
      - lang: JavaScript
        source: "import Antimetal from '@antimetal/sdk';\n\nconst client = new Antimetal({\n  apiKey: process.env['ANTIMETAL_API_KEY'], // This is the default and can be omitted\n});\n\nconst issue = await client.issues.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(issue.uuid);"
    patch:
      description: Updates the status of an existing issue by its ID (UUID)
      operationId: updateIssueStatus
      parameters:
      - $ref: '#/components/parameters/AntimetalVersion'
      - name: id
        required: true
        in: path
        description: Issue unique identifier (UUID)
        schema:
          type: string
          format: uuid
          pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateIssueStatusDto'
      responses:
        '200':
          description: Updated issue
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IssueDto'
        '400':
          description: Validation error or bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseDto'
        '401':
          description: Authentication required
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseDto'
        '403':
          description: Insufficient permissions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseDto'
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseDto'
        '429':
          description: Rate limit exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseDto'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseDto'
      summary: Update issue status by ID (UUID)
      tags:
      - Issues
      x-codeSamples:
      - lang: JavaScript
        source: "import Antimetal from '@antimetal/sdk';\n\nconst client = new Antimetal({\n  apiKey: process.env['ANTIMETAL_API_KEY'], // This is the default and can be omitted\n});\n\nconst issue = await client.issues.update('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', {\n  status: 'investigating',\n});\n\nconsole.log(issue.uuid);"
    delete:
      description: Permanently deletes an issue and all associated data
      operationId: deleteIssue
      parameters:
      - $ref: '#/components/parameters/AntimetalVersion'
      - name: id
        required: true
        in: path
        description: Issue unique identifier (UUID)
        schema:
          type: string
          format: uuid
          pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
      responses:
        '204':
          description: Issue deleted successfully
        '400':
          description: Validation error or bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseDto'
        '401':
          description: Authentication required
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseDto'
        '403':
          description: Insufficient permissions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseDto'
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseDto'
        '429':
          description: Rate limit exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseDto'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseDto'
      summary: Delete an issue
      tags:
      - Issues
      x-codeSamples:
      - lang: JavaScript
        source: "import Antimetal from '@antimetal/sdk';\n\nconst client = new Antimetal({\n  apiKey: process.env['ANTIMETAL_API_KEY'], // This is the default and can be omitted\n});\n\nawait client.issues.delete('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');"
  /issues/{id}/results:
    get:
      description: Retrieves detailed investigation results including root cause analysis and remediation steps
      operationId: getIssueResults
      parameters:
      - $ref: '#/components/parameters/AntimetalVersion'
      - name: version
        required: false
        in: query
        description: Issue version for workflow results (defaults to latest)
        schema:
          type: integer
          format: int32
          minimum: 1
      - name: id
        required: true
        in: path
        description: Issue unique identifier (UUID)
        schema:
          type: string
          format: uuid
          pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
      responses:
        '200':
          description: Investigation results
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IssueResultsDto'
        '400':
          description: Validation error or bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseDto'
        '401':
          description: Authentication required
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseDto'
        '403':
          description: Insufficient permissions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseDto'
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseDto'
        '429':
          description: Rate limit exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseDto'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseDto'
      summary: Fetch investigation results by ID (UUID)
      tags:
      - Issues
      x-codeSamples:
      - lang: JavaScript
        source: "import Antimetal from '@antimetal/sdk';\n\nconst client = new Antimetal({\n  apiKey: process.env['ANTIMETAL_API_KEY'], // This is the default and can be omitted\n});\n\nconst result = await client.issues.results.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(result.sessionUuid);"
components:
  schemas:
    CreateIssueDto:
      type: object
      properties:
        title:
          type: string
          minLength: 1
          maxLength: 500
          description: Issue title (human-readable summary)
        description:
          type: string
          minLength: 1
          description: Detailed description of the issue
        environment:
          type: string
          minLength: 1
          description: Environment where the issue occurred (e.g., production, staging)
        severity:
          description: Issue severity level (defaults to MEDIUM if not specified)
          type: string
          enum:
          - low
          - medium
          - high
        triggeredAt:
          description: ISO 8601 timestamp when the issue was triggered (defaults to current time)
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
        context:
          description: Additional context metadata for enriching the investigation
          type: object
          properties:
            alertUrl:
              description: URL to the alert or incident in the source system (e.g., Datadog, Sentry)
              type: string
              format: uri
            service:
              description: Service or application name where the issue occurred
              type: string
            traceId:
              description: Distributed trace ID for correlation
              type: string
            spanId:
              description: Span ID within the trace
              type: string
            errorType:
              description: Error classification or exception type (e.g., 'TimeoutError', 'DatabaseConnectionError')
              type: string
            errorMessage:
              description: Error message or stack trace excerpt
              type: string
            host:
              description: Hostname or instance ID where the issue occurred
              type: string
            region:
              description: Cloud region or availability zone
              type: string
            version:
              description: Application version or deployment identifier
              type: string
            tags:
              description: Arbitrary tags for categorization (e.g., ['payment', 'critical'])
              type: array
              items:
                type: string
            metadata:
              description: Additional provider-specific or custom metadata
              type: object
              additionalProperties: {}
      required:
      - title
      - description
      - environment
    IssueDto:
      type: object
      properties:
        uuid:
          type: string
          description: Issue unique identifier
        number:
          type: integer
          maximum: 9007199254740991
          description: Issue number (scoped per-organization)
          exclusiveMinimum: 0
        title:
          type: string
          description: Issue title
        description:
          type: string
          description: Issue description
        severity:
          type: string
          enum:
          - low
          - medium
          - high
          description: Issue severity level
        status:
          type: string
          enum:
          - investigating
          - ready_to_fix
          - resolved
          - muted
          description: Current issue status
        environment:
          type: string
          description: Environment where issue occurred
        triggeredAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
          description: Earliest trigger time from seeds
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
          description: Date and time the issue was created
        updatedAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
          description: Date and time the issue was last updated
        seedCount:
          type: integer
          minimum: 0
          maximum: 9007199254740991
          description: Number of seeds for this issue
        seeds:
          type: array
          items:
            type: object
            properties:
              publicUuid:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$
                description: UUID of the seed
              seedType:
                type: string
                enum:
                - alert
                - user_query
                description: Type of seed (alert, user_query, etc.)
              provider:
                type: string
                enum:
                - datadog
                - github
                - slack
                - antimetal
                - sentry
                - kubernetes
                - incident-io
                - prometheus
                - grafana-tempo
                - loki
                - gcp
                - cloudwatch
                - user
                description: Provider that generated this seed
              providerReferenceId:
                type: string
                description: Reference ID from the provider
              title:
                type: string
                description: Title of the seed
              description:
                type: string
                description: Description of the seed
              tags:
                type: array
                items:
                  type: string
                description: Tags associated with the seed
              link:
                description: Optional link related to the seed
                type:
                - string
                - 'null'
              query:
                description: Optional query related to the seed
                type:
                - string
                - 'null'
              rawPayload:
                description: Raw payload data from the provider
                type:
                - object
                - 'null'
                additionalProperties: {}
              triggeredAt:
                type: string
                format: date-time
                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                description: Date and time the seed was triggered
            required:
            - publicUuid
            - seedType
            - provider
            - providerReferenceId
            - title
            - description
            - tags
            - triggeredAt
          description: Seeds associated with the issue
        latestVersion:
          type: integer
          minimum: 1
          maximum: 9007199254740991
          description: Most recent version of this issue
        versions:
          type: array
          items:
            type: object
            properties:
              uuid:
                type: string
                description: Version unique identifier
              version:
                type: integer
                minimum: 1
                maximum: 9007199254740991
              status:
                type: string
                enum:
                - SUCCESS
                - NOOP
                - ERROR
                - PENDING
                description: Conclusion status of this version
              description:
                description: Description of the changes in the version
                type: string
            required:
            - uuid
            - version
            - status
          description: Available versions of the issue
      required:
      - uuid
      - number
      - title
      - description
      - severity
      - status
      - environment
      - triggeredAt
      - createdAt
      - updatedAt
      - seedCount
      - seeds
      - latestVersion
      - versions
    IssueResultsDto:
      type: object
      properties:
        sessionUuid:
          description: Session UUID for live investigation
          type:
          - string
          - 'null'
        rootCause:
          description: Root cause information
          type:
          - object
          - 'null'
          properties:
            id:
              type: string
              description: Root cause identifier
            incidentOverview:
              type: string
              description: Root cause problem overview
            rootCauseSummary:
              type: string
              description: Root cause analysis summary
            relevantEvidence:
              type: array
              items:
                type: object
                properties:
                  title:
                    type: string
                    description: Evidence title
                  status:
                    type: string
                    enum:
                    - relevant
                    - irrelevant
                    - inconclusive
                    description: Evidence status
                  description:
                    type: string
                    description: Evidence description
                  confidence:
                    type: string
                    enum:
                    - unknown
                    - unclear
                    - probable
                    - likely
                    - confirmed
                    description: Evidence confidence level
                  artifacts:
                    type: array
                    items:
                      type: object
                      properties:
                        documentId:
                          type: string
                          description: Document identifier for artifact fetching
                        title:
                          type: string
                          description: Artifact title
                        description:
                          type: string
                          description: Artifact description
                        dataType:
                          type: string
                          description: Type of data in this artifact
                      required:
                      - documentId
                      - title
                      - description
                      - dataType
                    description: Evidence artifacts with document references
                required:
                - title
                - status
                - description
                - confidence
                - artifacts
              description: Relevant evidence supporting the root cause
            irrelevantEvidence:
              type: array
              items:
                type: object
                properties:
                  title:
                    type: string
                    description: Evidence title
                  status:
                    type: string
                    enum:
                    - relevant
                    - irrelevant
                    - inconclusive
                    description: Evidence status
                  description:
                    type: string
                    description: Evidence description
                  confidence:
                    type: string
                    enum:
                    - unknown
                    - unclear
                    - probable
                    - likely
                    - confirmed
                    description: Evidence confidence level
                  artifacts:
                    type: array
                    items:
                      type: object
                      properties:
                        documentId:
                          type: string
                          description: Document identifier for artifact fetching
                        title:
                          type: string
                          description: Artifact title
                        description:
                          type: string
                          description: Artifact description
                        dataType:
                          type: string
                          description: Type of data in this artifact
                      required:
                      - documentId
                      - title
                      - description
                      - dataType
                    description: Evidence artifacts with document references
                required:
                - title
                - status
                - description
                - confidence
                - artifacts
              description: Irrelevant evidence ruled out during investigation
          required:
          - id
          - incidentOverview
          - rootCauseSummary
          - relevantEvidence
          - irrelevantEvidence
        causalTree:
          type: object
          properties:
            nodes:
              type: array
              items:
                type: object
                properties:
                  id:
                    type: string
                    description: Unique identifier for this node.
                  type:
                    type: string
                    enum:
                    - validated
                    - needs-context
                    - ruled-out
                    description: Node type indicating its state in the causal analysis
                  title:
                    type: string
                    description: Short title of the node
                  description:
                    type: string
                    description: Detailed description of the node
                  expandedContent:
                    description: Optional rich text content in Markdown format providing detailed explanation
                    type: string
                required:
                - id
                - type
                - title
                - description
            edges:
              type: array
              items:
                type: object
                properties:
                  id:
                    type: string
                    description: Unique identifier for this edge
                  source:
                    type: string
                    description: ID of the source node
                  target:
                    type: string
                    description: ID of the target 

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