REST API Reference

OpenProject Laravel exposes an API for project management integrations, automation, and CI/CD triggers.


Authentication

All API endpoints use Laravel Sanctum bearer tokens or standard session authentication:

Authorization: Bearer <your-personal-access-token>
Accept: application/json

Endpoints

Projects

Method Endpoint Description
GET /api/v1/projects List active projects
POST /api/v1/projects Create a new project
GET /api/v1/projects/{identifier} Get project details
PUT/PATCH /api/v1/projects/{identifier} Update project
DELETE /api/v1/projects/{identifier} Delete / archive project

Work Packages (Tasks & Issues)

Method Endpoint Description
GET /api/v1/projects/{identifier}/work-packages List work packages for a project (supports status, type, assignee filters)
POST /api/v1/projects/{identifier}/work-packages Create a work package
GET /api/v1/work-packages/{id} Get work package details
PUT/PATCH /api/v1/work-packages/{id} Update work package attributes
POST /api/v1/work-packages/{id}/status Move work package to new status (Kanban drag-and-drop endpoint)
DELETE /api/v1/work-packages/{id} Delete work package

Time Entries

Method Endpoint Description
GET /api/v1/work-packages/{id}/time-entries List time entries for a work package
POST /api/v1/work-packages/{id}/time-entries Log spent hours

Example Payload: Move Work Package Status

POST /api/v1/work-packages/42/status
Content-Type: application/json

{
  "status_id": 3,
  "position": 1
}

Response:

{
  "success": true,
  "message": "Work package moved to In Review",
  "data": {
    "id": 42,
    "status": {
      "id": 3,
      "name": "In Review",
      "color": "#eab308"
    }
  }
}