Skip to main content

The Problem Management plugin's API

Under /api/v1/x/problems, 404 while the plugin is off; problems:read and problems:write. Guide: problems.

EndpointWhat
GET ?status=&priority=&serviceId=&owner=&workaround=&review=&accepted=&q=&orgId=Problems (status open, all, or statuses; accepted=yes: the risk acceptance register; serviceId: naming the service or one of its offerings, as main or other service).
GET count{ open, mine, unassigned }: open problems, those you own, those without an owner.
GET known-errors?q=&serviceId= (the service or its offerings), GET cases/<ref>Known errors; a case's linked problems and suggestions.
GET options?orgId=, GET pick?q=&ids=Templates, causes and categories; problems for pickers.
GET export?format=&columns= (the list's filters)The list as a file: csv, xlsx or pdf, all columns or those named; up to 20,000, logged with its filters, rows and checksums (exports).
POST{ title, description, serviceId, categoryId, impact, urgency, unitIds, confidential, incidentId, incidentIds or caseRef, fromReview }. With incidentIds every incident is linked, with all their units and the first one's service and category; fromReview: true brings the incident's cause and timeline too.
GET <id or key>, PATCH <id>The problem; edit (a workaround moves it to Known error).
POST <id>/links, DELETE <id>/links/<kind>/<refId>{ kind: incident, case or change, ref }, or refs for several.
POST <id>/close, POST <id>/merge{ code, note, reason, reviewOn }; { into }.
POST <id>/root-cause/submit, POST <id>/root-cause/decisionSign-off: { decision: sign or return, comment }.
POST <id>/request-change, POST <id>/useA change for the fix; use the workaround on { caseRef } (answers { customerText }).
GET <id>/timelineThe linked incidents' timelines as one Markdown list, oldest first, times in UTC: { incidents, markdown }.
POST <id>/reviewed{ note }: a review was held (on time or late); the next review date follows from the priority.
GET <id>/requesters, POST <id>/tell-requestersWho an update would reach (the open cases linked to it or its incidents that you may reply to) and the text it starts from; then { body }: one public reply on each, once resolved. Needs problem.manage or being the owner; tokens also need cases:reply.
PUT <id>/legal-hold{ reason } sets a legal hold, { reason: null } lifts it (case.legal_hold).
GET <id>/report, GET <id>/export.mdThe problem report: { markdown, html, sha256 } for the page to print, or the Markdown file. Both are in the audit log and on the timeline.
POST <id>/notes, PUT <id>/watch, POST <id>/tasks, PATCH <id>/tasks/<taskId>Notes, watching, tasks.
GET report?days=&tz=Needs report.read: opened, open now, open by age and priority, by service, cause and supplier, time to known error, workarounds used.
GET evidence?from=&to=, GET evidence.csvThe process evidence for a period (the last year by default): closed as fixed and the share signed off, reviews held, on time and missed, time to known error, risk acceptances due.
GET export.zip?from=&to=One Markdown report for each problem opened or closed in the period, index.csv with the SHA-256 of each, and a README; X-Checksum-SHA256 is the ZIP's.
GET settings?orgId=, PATCH settings?orgId=Settings (problem.settings), with askOnMajor: ask for a problem on every major incident.