Antimetal Artifacts API

The Artifacts API from Antimetal — 1 operation(s) for artifacts.

OpenAPI Specification

antimetal-artifacts-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Antimetal External Artifacts 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: Artifacts
paths:
  /artifacts:
    get:
      description: Fetches multiple evidential artifacts by their IDs. Supports up to 100 IDs per request.
      operationId: batchGetArtifacts
      parameters:
      - $ref: '#/components/parameters/AntimetalVersion'
      - name: id
        required: true
        in: query
        description: 'Artifact IDs to retrieve (can be specified multiple times: ?id=foo&id=bar)'
        explode: true
        schema:
          maxItems: 100
          example: art_123
          type: array
          items:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: array
                items:
                  oneOf:
                  - $ref: '#/components/schemas/MetricArtifactDto'
                  - $ref: '#/components/schemas/TraceArtifactDto'
                  - $ref: '#/components/schemas/LogArtifactDto'
                  - $ref: '#/components/schemas/FileArtifactDto'
                  - $ref: '#/components/schemas/EventArtifactDto'
                  - $ref: '#/components/schemas/TopologyArtifactDto'
                  discriminator:
                    propertyName: type
                    mapping:
                      metric: '#/components/schemas/MetricArtifactDto'
                      trace: '#/components/schemas/TraceArtifactDto'
                      log: '#/components/schemas/LogArtifactDto'
                      file: '#/components/schemas/FileArtifactDto'
                      event: '#/components/schemas/EventArtifactDto'
                      topology: '#/components/schemas/TopologyArtifactDto'
        '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: Retrieve artifacts by IDs
      tags:
      - Artifacts
      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 artifacts = await client.artifacts.list({ id: ['string'] });\n\nconsole.log(artifacts);"
components:
  schemas:
    ErrorResponseDto:
      type: object
      properties:
        type:
          type: string
          enum:
          - api_error
          - invalid_request_error
          - authentication_error
          description: Error type classification
        message:
          type: string
          description: Human-readable error message
        request_id:
          type: string
          description: Request correlation ID for tracing and support
        details:
          description: Detailed field-level validation errors (for 400/422 responses)
          type: object
          additionalProperties:
            type: string
      required:
      - type
      - message
      - request_id
    EventArtifactDto:
      type: object
      properties:
        id:
          type: string
        provider:
          type: string
          enum:
          - datadog
          - github
          - slack
          - antimetal
          - sentry
          - kubernetes
          - incident-io
          - prometheus
          - grafana-tempo
          - loki
          - gcp
          - cloudwatch
          - user
        providerUrl:
          type:
          - string
          - 'null'
        summary:
          type:
          - string
          - 'null'
        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))$
        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))$
        type:
          type: string
          enum:
          - event
        data:
          type: object
          properties:
            events:
              type: array
              items:
                type: object
                properties:
                  eventId:
                    type: string
                  timestampUnixNano:
                    type: number
                  title:
                    type: string
                  message:
                    type: string
                  service:
                    type: string
                required:
                - eventId
                - timestampUnixNano
                - title
          required:
          - events
      required:
      - id
      - provider
      - providerUrl
      - summary
      - createdAt
      - updatedAt
      - type
      - data
    TopologyArtifactDto:
      type: object
      properties:
        id:
          type: string
        provider:
          type: string
          enum:
          - datadog
          - github
          - slack
          - antimetal
          - sentry
          - kubernetes
          - incident-io
          - prometheus
          - grafana-tempo
          - loki
          - gcp
          - cloudwatch
          - user
        providerUrl:
          type:
          - string
          - 'null'
        summary:
          type:
          - string
          - 'null'
        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))$
        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))$
        type:
          type: string
          enum:
          - topology
        data:
          default: {}
          type: object
          additionalProperties:
            type: object
            properties:
              calls:
                default: []
                type: array
                items:
                  type: string
      required:
      - id
      - provider
      - providerUrl
      - summary
      - createdAt
      - updatedAt
      - type
    TraceArtifactDto:
      type: object
      properties:
        id:
          type: string
        provider:
          type: string
          enum:
          - datadog
          - github
          - slack
          - antimetal
          - sentry
          - kubernetes
          - incident-io
          - prometheus
          - grafana-tempo
          - loki
          - gcp
          - cloudwatch
          - user
        providerUrl:
          type:
          - string
          - 'null'
        summary:
          type:
          - string
          - 'null'
        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))$
        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))$
        type:
          type: string
          enum:
          - trace
        data:
          type: object
          properties:
            traces:
              type: array
              items:
                type: object
                properties:
                  traceId:
                    type: string
                  spans:
                    type: array
                    items:
                      type: object
                      properties:
                        traceId:
                          type: string
                        spanId:
                          type: string
                        parentSpanId:
                          type: string
                        name:
                          type: string
                        timestampStartUnixNano:
                          type: number
                        timestampEndUnixNano:
                          type: number
                      required:
                      - timestampStartUnixNano
                      - timestampEndUnixNano
                required:
                - traceId
                - spans
          required:
          - traces
      required:
      - id
      - provider
      - providerUrl
      - summary
      - createdAt
      - updatedAt
      - type
      - data
    LogArtifactDto:
      type: object
      properties:
        id:
          type: string
        provider:
          type: string
          enum:
          - datadog
          - github
          - slack
          - antimetal
          - sentry
          - kubernetes
          - incident-io
          - prometheus
          - grafana-tempo
          - loki
          - gcp
          - cloudwatch
          - user
        providerUrl:
          type:
          - string
          - 'null'
        summary:
          type:
          - string
          - 'null'
        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))$
        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))$
        type:
          type: string
          enum:
          - log
        data:
          type: object
          properties:
            logs:
              type: array
              items:
                type: object
                properties:
                  timestamp:
                    type: string
                  body:
                    type: string
                  severity:
                    type: string
                  attributes:
                    type: object
                    additionalProperties:
                      anyOf:
                      - type: string
                      - type: number
                      - type: boolean
                      - type: array
                        items:
                          type: string
                required:
                - timestamp
                - body
                - severity
          required:
          - logs
      required:
      - id
      - provider
      - providerUrl
      - summary
      - createdAt
      - updatedAt
      - type
      - data
    MetricArtifactDto__schema1:
      type: object
      properties:
        stringValue:
          type: string
        boolValue:
          type: boolean
        intValue:
          type: string
        doubleValue:
          anyOf:
          - type: number
          - type: string
            enum:
            - NaN
          - type: string
            enum:
            - Infinity
          - type: string
            enum:
            - -Infinity
        arrayValue:
          type: object
          properties:
            values:
              type: array
              items:
                $ref: '#/components/schemas/MetricArtifactDto__schema1'
        kvlistValue:
          type: object
          properties:
            values:
              type: array
              items:
                $ref: '#/components/schemas/MetricArtifactDto__schema0'
        bytesValue:
          type: string
    MetricArtifactDto:
      type: object
      properties:
        id:
          type: string
        provider:
          type: string
          enum:
          - datadog
          - github
          - slack
          - antimetal
          - sentry
          - kubernetes
          - incident-io
          - prometheus
          - grafana-tempo
          - loki
          - gcp
          - cloudwatch
          - user
        providerUrl:
          type:
          - string
          - 'null'
        summary:
          type:
          - string
          - 'null'
        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))$
        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))$
        type:
          type: string
          enum:
          - metric
        data:
          oneOf:
          - type: object
            properties:
              metricType:
                type: string
                enum:
                - gauge
              name:
                type: string
              description:
                type: string
              unit:
                type: string
              dataPoints:
                type: array
                items:
                  type: object
                  properties:
                    attributes:
                      type: array
                      items:
                        $ref: '#/components/schemas/MetricArtifactDto__schema0'
                    startTimeUnixNano:
                      type: string
                    timeUnixNano:
                      type: string
                    asDouble:
                      anyOf:
                      - type: number
                      - type: string
                        enum:
                        - NaN
                      - type: string
                        enum:
                        - Infinity
                      - type: string
                        enum:
                        - -Infinity
                    asInt:
                      type: string
                    exemplars:
                      type: array
                      items:
                        type: object
                        properties:
                          filteredAttributes:
                            type: array
                            items:
                              $ref: '#/components/schemas/MetricArtifactDto__schema0'
                          timeUnixNano:
                            type: string
                          asDouble:
                            anyOf:
                            - type: number
                            - type: string
                              enum:
                              - NaN
                            - type: string
                              enum:
                              - Infinity
                            - type: string
                              enum:
                              - -Infinity
                          asInt:
                            type: string
                          spanId:
                            type: string
                          traceId:
                            type: string
                    flags:
                      type: number
            required:
            - metricType
            - name
            - description
            - unit
            - dataPoints
          - type: object
            properties:
              metricType:
                type: string
                enum:
                - sum
              name:
                type: string
              description:
                type: string
              unit:
                type: string
              dataPoints:
                type: array
                items:
                  type: object
                  properties:
                    attributes:
                      type: array
                      items:
                        $ref: '#/components/schemas/MetricArtifactDto__schema0'
                    startTimeUnixNano:
                      type: string
                    timeUnixNano:
                      type: string
                    asDouble:
                      anyOf:
                      - type: number
                      - type: string
                        enum:
                        - NaN
                      - type: string
                        enum:
                        - Infinity
                      - type: string
                        enum:
                        - -Infinity
                    asInt:
                      type: string
                    exemplars:
                      type: array
                      items:
                        type: object
                        properties:
                          filteredAttributes:
                            type: array
                            items:
                              $ref: '#/components/schemas/MetricArtifactDto__schema0'
                          timeUnixNano:
                            type: string
                          asDouble:
                            anyOf:
                            - type: number
                            - type: string
                              enum:
                              - NaN
                            - type: string
                              enum:
                              - Infinity
                            - type: string
                              enum:
                              - -Infinity
                          asInt:
                            type: string
                          spanId:
                            type: string
                          traceId:
                            type: string
                    flags:
                      type: number
            required:
            - metricType
            - name
            - description
            - unit
            - dataPoints
          - type: object
            properties:
              metricType:
                type: string
                enum:
                - histogram
              name:
                type: string
              description:
                type: string
              unit:
                type: string
              dataPoints:
                type: array
                items:
                  type: object
                  properties:
                    attributes:
                      type: array
                      items:
                        $ref: '#/components/schemas/MetricArtifactDto__schema0'
                    startTimeUnixNano:
                      type: string
                    timeUnixNano:
                      type: string
                    count:
                      type: string
                    sum:
                      anyOf:
                      - type: number
                      - type: string
                        enum:
                        - NaN
                      - type: string
                        enum:
                        - Infinity
                      - type: string
                        enum:
                        - -Infinity
                    bucketCounts:
                      type: array
                      items:
                        type: string
                    explicitBounds:
                      type: array
                      items:
                        anyOf:
                        - type: number
                        - type: string
                          enum:
                          - NaN
                        - type: string
                          enum:
                          - Infinity
                        - type: string
                          enum:
                          - -Infinity
                    exemplars:
                      type: array
                      items:
                        type: object
                        properties:
                          filteredAttributes:
                            type: array
                            items:
                              $ref: '#/components/schemas/MetricArtifactDto__schema0'
                          timeUnixNano:
                            type: string
                          asDouble:
                            anyOf:
                            - type: number
                            - type: string
                              enum:
                              - NaN
                            - type: string
                              enum:
                              - Infinity
                            - type: string
                              enum:
                              - -Infinity
                          asInt:
                            type: string
                          spanId:
                            type: string
                          traceId:
                            type: string
                    flags:
                      type: number
                    min:
                      anyOf:
                      - type: number
                      - type: string
                        enum:
                        - NaN
                      - type: string
                        enum:
                        - Infinity
                      - type: string
                        enum:
                        - -Infinity
                    max:
                      anyOf:
                      - type: number
                      - type: string
                        enum:
                        - NaN
                      - type: string
                        enum:
                        - Infinity
                      - type: string
                        enum:
                        - -Infinity
            required:
            - metricType
            - name
            - description
            - unit
            - dataPoints
      required:
      - id
      - provider
      - providerUrl
      - summary
      - createdAt
      - updatedAt
      - type
      - data
    MetricArtifactDto__schema0:
      type: object
      properties:
        key:
          type: string
        value:
          $ref: '#/components/schemas/MetricArtifactDto__schema1'
    FileArtifactDto:
      type: object
      properties:
        id:
          type: string
        provider:
          type: string
          enum:
          - datadog
          - github
          - slack
          - antimetal
          - sentry
          - kubernetes
          - incident-io
          - prometheus
          - grafana-tempo
          - loki
          - gcp
          - cloudwatch
          - user
        providerUrl:
          type:
          - string
          - 'null'
        summary:
          type:
          - string
          - 'null'
        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))$
        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))$
        type:
          type: string
          enum:
          - file
        data:
          type: object
          properties:
            content:
              type: string
              description: The text content of the file
            metadata:
              type: object
              properties:
                fileName:
                  type: string
                  description: The name of the file
                filePath:
                  type: string
                  description: The path to the file
                language:
                  type: string
                  description: The programming language of the code
                lineStart:
                  description: The start line of the code snippet, inclusive
                  type: integer
                  maximum: 9007199254740991
                  exclusiveMinimum: 0
                lineEnd:
                  description: The end line of the code snippet, inclusive
                  type: integer
                  maximum: 9007199254740991
                  exclusiveMinimum: 0
              required:
              - fileName
              - filePath
              - language
          required:
          - content
          - metadata
      required:
      - id
      - provider
      - providerUrl
      - summary
      - createdAt
      - updatedAt
      - type
      - data
  parameters:
    AntimetalVersion:
      name: Antimetal-Version
      in: header
      required: false
      description: The API version to use. Defaults to the latest stable version if omitted. Pin to the version string in this document's `info.version` field to opt into exactly this version's schema.
      schema:
        type: string
        example: '2026-03-17'
        default: '2026-03-17'
  securitySchemes:
    bearer:
      type: http
      scheme: bearer
      description: API key authentication via Bearer token