Issues API
Query and manage issues programmatically.
Endpoints
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/issues | List issues |
| GET | /api/issues/active | List active issues |
| GET | /api/issues/:id | Get a specific issue |
| POST | /api/issues/:id/acknowledge | Acknowledge an issue |
| POST | /api/issues/:id/resolve | Resolve an issue |
| POST | /api/issues/:id/notes | Add a note to an issue |
List Issues
bash
GET /api/issues?status=OpenQuery Parameters
| Parameter | Type | Description |
|---|---|---|
status | string | Filter by status (Open, Acknowledged, Resolved) |
Response:
json
[
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"testId": "...",
"testName": "Production API",
"errorCategory": "Timeout",
"severity": "Critical",
"status": "Open",
"firstSeenAt": "2024-01-24T15:00:00Z",
"lastSeenAt": "2024-01-24T15:30:00Z",
"occurrenceCount": 7
}
]Get Active Issues
Convenience endpoint for open and acknowledged issues:
bash
GET /api/issues/activeGet Issue
bash
GET /api/issues/:idResponse includes full issue details and activity log.
Acknowledge Issue
Mark an issue as acknowledged:
bash
POST /api/issues/:id/acknowledge
Content-Type: application/json
{
"acknowledgedBy": "oncall@example.com",
"note": "Investigating the root cause"
}Request Fields
| Field | Type | Required | Description |
|---|---|---|---|
acknowledgedBy | string | No | Who acknowledged |
note | string | No | Acknowledgment note |
Resolve Issue
Mark an issue as resolved:
bash
POST /api/issues/:id/resolve
Content-Type: application/json
{
"user": "oncall@example.com",
"message": "Deployed fix in v2.3.1"
}Request Fields
| Field | Type | Required | Description |
|---|---|---|---|
user | string | No | Who resolved |
message | string | No | Resolution note |
Add Note
Add a note to an issue's activity log:
bash
POST /api/issues/:id/notes
Content-Type: application/json
{
"user": "oncall@example.com",
"message": "Restarted the service, monitoring for recurrence"
}Request Fields
| Field | Type | Required | Description |
|---|---|---|---|
user | string | Yes | Note author |
message | string | Yes | Note content |
Issue Object
json
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"testId": "...",
"testName": "Production API",
"errorCategory": "Timeout",
"errorSignature": "timeout:30000",
"severity": "Critical",
"status": "Open",
"firstSeenAt": "2024-01-24T15:00:00Z",
"lastSeenAt": "2024-01-24T15:30:00Z",
"resolvedAt": null,
"acknowledgedAt": null,
"acknowledgedBy": null,
"occurrenceCount": 7,
"activityLog": [
{
"timestamp": "2024-01-24T15:00:00Z",
"type": "Created",
"message": "Issue created"
},
{
"timestamp": "2024-01-24T15:05:00Z",
"type": "Occurrence",
"message": "Test failed again"
}
]
}Use Cases
Dashboard Integration
Fetch active issues for a custom dashboard:
bash
curl -H "X-API-Key: $API_KEY" \
"https://api.pingward.com/api/issues/active"Automated Acknowledgment
Auto-acknowledge issues when creating a PagerDuty incident:
bash
curl -X POST \
-H "X-API-Key: $API_KEY" \
-H "Content-Type: application/json" \
-d '{"acknowledgedBy": "PagerDuty", "note": "PD-12345"}' \
"https://api.pingward.com/api/issues/$ISSUE_ID/acknowledge"Resolution Tracking
Mark issues resolved after deployments:
bash
curl -X POST \
-H "X-API-Key: $API_KEY" \
-H "Content-Type: application/json" \
-d '{"user": "CI/CD", "message": "Fixed in deploy #1234"}' \
"https://api.pingward.com/api/issues/$ISSUE_ID/resolve"