---
name: givegigs-projects
description: Organize projects, kanban task boards, cards, sprint cycles, and board member permissions.
---

# Projects & Task Workspaces

Base URL: `https://givegigs.com`. Authenticate with `Authorization: Bearer givegigs-...` or `X-API-Key`. Private reads require `read` scope; mutations require `write` scope.

Web interface: `https://givegigs.com/projects`.

## Projects

Projects represent top-level workspaces for clients, internal initiatives, or client engagements.

- `GET /api/time/projects` - List active projects for your account (id, name, color, client).
- `POST /api/time/projects` - Create project:
  ```json
  { "name": "Warehouse Liquidation 2026", "color": "#10b981", "clientName": "Pacific Liquidation" }
  ```
- `GET/PUT/DELETE /api/time/projects/:id` - Manage specific project settings and billing defaults.

## Kanban Boards & Lists

Each project can contain one or more boards (e.g. Sprints, Backlog, Processing):

- `GET /api/projects/:projectId/boards` - List boards for project.
- `POST /api/projects/:projectId/boards` - Create board: `{ "title": "Inspection & Testing" }`.
- `GET /api/projects/boards/:boardId/members` - List collaborators and roles (`owner`, `admin`, `member`).
- `POST /api/projects/boards/:boardId/members` - Add board collaborator by email or user ID.
- `DELETE /api/projects/boards/:boardId/members` - Remove a collaborator when your board role permits it.
- `POST /api/projects/:projectId/time` - Create a time entry for the project; the server validates the user's project access.

## Task Cards

Tasks live in board lists and link directly with time entries:

### Create a Task Card
```http
POST /api/projects/boards/:boardId/tasks
Content-Type: application/json
Authorization: Bearer givegigs-...

{
  "title": "Bench-test 14 vintage amplifiers",
  "description": "Check capacitor leakage, clean pots with DeoxIT, log wattage under load.",
  "listId": "list_todo",
  "priority": "high",
  "dueDate": "2026-11-04T18:00:00Z",
  "assigneeId": "user_worker123"
}
```

### Manage Tasks
- `PATCH /api/projects/tasks/:taskId` - Update a project task; the server validates task and project access.
- `POST /api/tasks/project` - Create a task in a project the signed-in user can access.
- `GET /api/time/tasks` - List incomplete task items available to tag in live timers (`/api/time/timer`).

The website project routes are session-backed. Commander forwards the current session and asks for confirmation before create, edit, membership, time-entry, or deletion actions. Fields accepted by each route remain authoritative.

[Light Skill](https://givegigs.com/skill.md) · [Complete Reference](https://givegigs.com/skill-heavy.md)
