Forgejo has no Projects REST API. The proxy provides a complete Projects API by scraping the Forgejo web UI using per-request credentials supplied by the caller.
Method Endpoint Description GET/api/v1/orgs/{org}/projectsList all projects in an organisation POST/api/v1/orgs/{org}/projectsCreate a new project in an organisation
Method Endpoint Description GET/api/v1/repos/{owner}/{repo}/projectsList all projects in a repository POST/api/v1/repos/{owner}/{repo}/projectsCreate a new project in a repository
Method Endpoint Description GET/api/v1/projects/{project_id}Get a project by ID DELETE/api/v1/projects/{project_id}Delete a project POST/api/v1/projects/{project_id}/closeClose (archive) a project POST/api/v1/projects/{project_id}/openReopen a closed project
Method Endpoint Description GET/api/v1/projects/{project_id}/columnsList all columns in a project POST/api/v1/projects/{project_id}/columnsCreate a new column PATCH/api/v1/projects/{project_id}/columns/{column_id}Update a column (rename, reorder) DELETE/api/v1/projects/{project_id}/columns/{column_id}Delete a column
Method Endpoint Description GET/api/v1/projects/{project_id}/columns/{column_id}/cardsList all cards in a column POST/api/v1/projects/{project_id}/columns/{column_id}/cardsAdd an issue/PR card to a column DELETE/api/v1/projects/{project_id}/columns/{column_id}/cards/{issue_id}Remove a card from a column
# List all projects in an org
curl -H ' Authorization: token YOUR_TOKEN ' \
-H ' X-Webui-Username: youruser ' \
-H ' X-Webui-Password: yourpassword ' \
' https://forgejo-proxy.hochguertel.work/api/v1/orgs/myorg/projects '
# Create a new repo project
curl -X POST -H ' Authorization: token YOUR_TOKEN ' \
-H ' X-Webui-Username: youruser ' \
-H ' X-Webui-Password: yourpassword ' \
-H ' Content-Type: application/json ' \
-d ' {"title": "Sprint 1", "description": "First sprint tasks"} ' \
' https://forgejo-proxy.hochguertel.work/api/v1/repos/myorg/myrepo/projects '
# List columns in project 5
curl -H ' Authorization: token YOUR_TOKEN ' \
-H ' X-Webui-Username: youruser ' \
-H ' X-Webui-Password: yourpassword ' \
' https://forgejo-proxy.hochguertel.work/api/v1/projects/5/columns '
# Add issue #12 to column 3 in project 5
curl -X POST -H ' Authorization: token YOUR_TOKEN ' \
-H ' X-Webui-Username: youruser ' \
-H ' X-Webui-Password: yourpassword ' \
-H ' Content-Type: application/json ' \
' https://forgejo-proxy.hochguertel.work/api/v1/projects/5/columns/3/cards '
curl -X POST -H ' Authorization: token YOUR_TOKEN ' \
-H ' X-Webui-Username: youruser ' \
-H ' X-Webui-Password: yourpassword ' \
' https://forgejo-proxy.hochguertel.work/api/v1/projects/5/close '
The proxy uses per-request WebUI credentials (X-Webui-Username / X-Webui-Password) to interact with the Forgejo web UI on behalf of the caller. All mutations (create, update, delete) submit the equivalent web forms, and all reads scrape the rendered HTML or internal API endpoints exposed by the Forgejo web UI. No admin credentials are stored server-side.