Skip to content

API Reference

Overview

Issue Log Workbench exposes a REST API under the /api/ prefix. The API is consumed by:

  • The web UI for import, list, detail, dashboard, and export actions
  • Direct curl or script-based usage

Base URL

http://127.0.0.1:8000

Authentication

None. The server binds to 127.0.0.1 by default and is not intended to be exposed to a network.

Content Types

Direction Content-Type
Request bodies application/json or multipart/form-data
Responses application/json, text/csv, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, or text/markdown

Error Format

Most error responses return JSON with a detail field:

{"detail": "Issue 42 not found."}

HTTP status codes follow standard conventions:

  • 200 OK — success
  • 201 Created — new resource created
  • 204 No Content — successful delete
  • 400 Bad Request — invalid input
  • 404 Not Found — resource does not exist
  • 422 Unprocessable Entity — request validation failure

Endpoints

Issues

Method Path Description
GET /api/issues/ List issues with optional filters and pagination
POST /api/issues/ Create a new issue
GET /api/issues/{id} Get a single issue
PUT /api/issues/{id} Update an issue
DELETE /api/issues/{id} Delete an issue and all its child records
POST /api/issues/{id}/transition Transition the issue to a new lifecycle status
POST /api/issues/{id}/links Add a link to an issue
DELETE /api/issues/{id}/links/{link_id} Remove a link
POST /api/issues/{id}/decisions Record a decision
DELETE /api/issues/{id}/decisions/{decision_id} Remove a decision
POST /api/issues/{id}/actions Add a next-action item
PUT /api/issues/{id}/actions/{action_id} Update an action item
DELETE /api/issues/{id}/actions/{action_id} Remove an action item

Imports

Method Path Description
POST /api/imports/ Upload and import a CSV or XLSX file

Request: multipart/form-data with fields:

  • file — upload file
  • sheet_name — worksheet name for XLSX
  • column_map — JSON-encoded dict mapping source headers to canonical fields

Response: ImportResult{ created_count, skipped_count, warnings, row_errors, preview }

Dashboard

Method Path Description
GET /api/dashboard/ Get aggregated summary statistics

Response: DashboardSummary{ total, by_status, by_category, by_type, recently_updated }

Exports

Method Path Description
GET /api/exports/ Export issues as a downloadable file

Query parameters:

  • formatcsv, xlsx, or markdown
  • status — filter by status
  • category — filter by category

Attachments

Method Path Description
GET /api/issues/{issue_id}/attachments/ List attachments for an issue
POST /api/issues/{issue_id}/attachments/ Upload a file attachment
DELETE /api/issues/{issue_id}/attachments/{attachment_id} Delete an attachment

Interactive Docs

FastAPI generates interactive API documentation at:

  • Swagger UI: http://127.0.0.1:8000/docs
  • ReDoc: http://127.0.0.1:8000/redoc

Use those pages as the most exact reference for request and response schemas.