---
title: "Create a new issue"
method: POST
path: "/issues"
tags: ["Issues"]
---

# Create a new issue

`POST /issues`

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.

## Headers

- `Antimetal-Version` string

## Request body

- CreateIssueDto
  - `title` string, required — Issue title (human-readable summary)
  - `description` string, required — Detailed description of the issue
  - `environment` string, required — Environment where the issue occurred (e.g., production, staging)
  - `severity` 'low' | 'medium' | 'high' — Issue severity level (defaults to MEDIUM if not specified)
  - `triggeredAt` string, date-time — ISO 8601 timestamp when the issue was triggered (defaults to current time)
  - `context` object — Additional context metadata for enriching the investigation
    - `alertUrl` string, uri — URL to the alert or incident in the source system (e.g., Datadog, Sentry)
    - `service` string — Service or application name where the issue occurred
    - `traceId` string — Distributed trace ID for correlation
    - `spanId` string — Span ID within the trace
    - `errorType` string — Error classification or exception type (e.g., 'TimeoutError', 'DatabaseConnectionError')
    - `errorMessage` string — Error message or stack trace excerpt
    - `host` string — Hostname or instance ID where the issue occurred
    - `region` string — Cloud region or availability zone
    - `version` string — Application version or deployment identifier
    - `tags` string[] — Arbitrary tags for categorization (e.g., ['payment', 'critical'])
    - `metadata` object — Additional provider-specific or custom metadata

## Response `201`

Issue created successfully

- CreateIssueResponseDto
  - `uuid` string, required — Issue unique identifier
  - `number` integer, required — Issue number (scoped per-organization)
  - `status` 'investigating' | 'ready_to_fix' | 'resolved' | 'muted', required — Current issue status
  - `title` string, required — Issue title
  - `description` string, required — Issue description
  - `environment` string — Environment where issue occurred
  - `severity` 'low' | 'medium' | 'high', required — Issue severity level
  - `createdAt` string, date-time, required — Date and time the issue was created
  - `updatedAt` string, date-time, required — Date and time the issue was last updated
  - `triggeredAt` string, date-time, required — Timestamp when the issue was triggered
  - `latestVersion` integer, required — Most recent version of this issue

## Other responses

- `400` — Validation error or bad request
- `401` — Authentication required
- `403` — Insufficient permissions
- `429` — Rate limit exceeded
- `500` — Internal server error

---

[API](https://skmtc.net/antimetal/apis/antimetal-external-api.md) · [All operations](https://skmtc.net/antimetal/apis/antimetal-external-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/antimetal/antimetal-external-api/versions/0539acd362bf/schema)
