Skip to content

Issues API

Query and manage issues programmatically.

Endpoints

MethodEndpointDescription
GET/api/issuesList issues
GET/api/issues/activeList active issues
GET/api/issues/:idGet a specific issue
POST/api/issues/:id/acknowledgeAcknowledge an issue
POST/api/issues/:id/resolveResolve an issue
POST/api/issues/:id/notesAdd a note to an issue

List Issues

bash
GET /api/issues?status=Open

Query Parameters

ParameterTypeDescription
statusstringFilter 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/active

Get Issue

bash
GET /api/issues/:id

Response 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

FieldTypeRequiredDescription
acknowledgedBystringNoWho acknowledged
notestringNoAcknowledgment 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

FieldTypeRequiredDescription
userstringNoWho resolved
messagestringNoResolution 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

FieldTypeRequiredDescription
userstringYesNote author
messagestringYesNote 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"

Pingward - API Monitoring Made Simple