This service tracks software projects and their step-by-step history.
There are exactly two write endpoints, both POST only.
Send application/json (preferred) or form-encoded data.
Every response is JSON shaped as
{"success": bool, "message": string, "data": object|null}.
api_key in the body, or as HTTP header
X-Api-Key. The key lives in config.php on the server.
POST https://projectmanager.claudeaiplugin.com/create-project.php
| Field | Type | Required | Rules |
|---|---|---|---|
| api_key | string | YES | Must match the server key (or use header X-Api-Key). |
| name | string | YES | Unique project name, max 190 chars. |
| framework | string | no | Tech stack label, max 120 chars. Example: "WinUI 3 / .NET 8". |
| date_started | string | no | Format Y-m-d. Defaults to today. |
| notes | string | no | First timeline entry. Defaults to "Project created." |
| next_action | string | no | What should happen next on this project. |
{
"api_key": "YOUR_API_KEY_HERE",
"name": "QuickShot Screen Shot",
"framework": "WinUI 3 / .NET 8",
"date_started": "2026-06-13",
"notes": "Scaffolded solution, 4-layer architecture in place.",
"next_action": "Implement capture engine and hotkey service."
}
curl -X POST "https://projectmanager.claudeaiplugin.com/create-project.php" \
-H "Content-Type: application/json" \
-H "X-Api-Key: YOUR_API_KEY_HERE" \
-d '{"name":"My New App","framework":"PHP / MySQLi","next_action":"Design schema"}'
Error codes: 400 validation · 401 bad api key · 405 not POST · 409 duplicate name (use update endpoint instead) · 500 database
POST https://projectmanager.claudeaiplugin.com/update-project.php
| Field | Type | Required | Rules |
|---|---|---|---|
| api_key | string | YES | Must match the server key (or use header X-Api-Key). |
| id | integer | one of id / name | Project id. Alias "project_id" also accepted. |
| name | string | one of id / name | Exact project name - used only when "id" is absent. |
| notes | string | YES | Description of the action that was taken. Becomes a timeline entry. |
| next_action | string | no | The next step to take. Overwrites the project next-action summary. |
| framework | string | no | If provided, updates the project framework label. |
| action_date | string | no | Format Y-m-d H:i:s. Defaults to now. Back-dated entries are added to the timeline but never overwrite a newer summary. |
{
"api_key": "YOUR_API_KEY_HERE",
"id": 1,
"notes": "Capture engine complete. Build succeeded with zero errors.",
"next_action": "Package as MSIX and submit to Partner Center."
}
$body = @{
api_key = 'YOUR_API_KEY_HERE'
id = 1
notes = 'Fixed all build errors. dotnet build = SUCCESS.'
next_action = 'Run end-to-end test, then submit to Microsoft Store.'
} | ConvertTo-Json
Invoke-RestMethod -Method Post -Uri 'https://projectmanager.claudeaiplugin.com/update-project.php' `
-ContentType 'application/json' -Body $body
Error codes: 400 validation · 401 bad api key · 404 project not found · 405 not POST · 500 database
{
"success": true,
"message": "Project updated.",
"data": {
"project_id": 1,
"project_name": "My New App",
"action_id": 14,
"action_date": "2026-06-13 04:59:20",
"summary_updated": true,
"project_url": "https://projectmanager.claudeaiplugin.com/project.php?id=1"
}
}
{
"success": false,
"message": "Field \"notes\" is required - describe the action that was taken.",
"data": null
}
An AI should treat any response where success is
false — or any non-200 HTTP status — as a failure and read
message for the exact reason.