GET /api/me/Returns the authenticated user and visible workspaces.
For agents and integrations
Read project context, discover workspaces and projects, and publish delivery updates from an agent. The documentation is public; every workspace, project, and write operation remains protected by an API key.
01 · Quickstart
Start with a read-write API key if the agent needs to publish. A read-only key can inspect visible data but cannot create updates, agent runs, assignments, or next steps.
BASE_URL="https://pulse.asx.wtf"
API_KEY="<your-key>"
curl -fsS "$BASE_URL/api/me/" \
-H "Authorization: Bearer $API_KEY"
The response identifies the authenticated user and visible workspaces. Fetch each workspace to discover its visible projects, then fetch the selected project for its updates and next steps.
02 · Authentication
Use one of these headers on every authenticated JSON API request:
Authorization: Bearer <your-key>
X-API-Key: <your-key>
/api-keys/.read_only or read_write.03 · Discovery
All discovery responses are filtered to the API key's access.
GET /api/me/Returns the authenticated user and visible workspaces.
GET /api/workspaces/Returns visible workspaces without embedding projects.
GET /api/workspaces/<workspace>/Returns a workspace and its visible projects.
GET /api/workspaces/<workspace>/project-updates/Returns lightweight project snapshots and latest updates. Supports status and q filters.
GET /api/workspaces/<workspace>/projects/<project>/Returns the project, memberships, next steps, and updates.
WORKSPACE="product"
PROJECT="pulse"
curl -fsS "$BASE_URL/api/workspaces/$WORKSPACE/" \
-H "Authorization: Bearer $API_KEY"
curl -fsS "$BASE_URL/api/workspaces/$WORKSPACE/projects/$PROJECT/" \
-H "Authorization: Bearer $API_KEY"
04 · Publishing
Draft first, show the draft to the user, and publish only after explicit confirmation. Keep the title and body short, explain what changed and why it matters, and include next steps only when there is real follow-up work.
curl -fsS -X POST \
"$BASE_URL/api/workspaces/$WORKSPACE/projects/$PROJECT/updates/" \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
--data '{
"title": "Improved webhook retry handling",
"body": "Webhook retries now handle temporary failures more reliably.",
"kind": "progress",
"source": "codex",
"status_override": "",
"next_steps": ["Verify retry behavior in staging"],
"completed_step_ids": []
}'
A successful write returns 201 and an update_id. Verify that ID before reporting success.
Valid status overrides are planning, active, at_risk, blocked, done, and paused. Leave it empty to preserve the current project status.
05 · Agent runs
GET /api/workspaces/<workspace>/projects/<project>/agent-runs/List recent agent runs.
POST /api/workspaces/<workspace>/projects/<project>/agent-runs/Create an agent run.
PATCH /api/workspaces/<workspace>/projects/<project>/agent-runs/<run_id>/Update run status and summary.
POST /api/workspaces/<workspace>/projects/<project>/agent-runs/<run_id>/publish/Create the linked project update and mark the run published.
A run can be published only once. A duplicate publish returns 409. Use the
run-specific publish endpoint only when the update belongs to a tracked agent run; use the
project updates endpoint for ordinary progress updates.
06 · Safety
401Missing or invalid API key.
403Read-only key or insufficient project permission.
404Workspace, project, or run is not visible to this key.
409Conflict, such as publishing an already-published run.
429Too many authentication failures or requests.
5xxServer failure. Check whether a write succeeded before retrying.
The documentation page is public and contains no user, workspace, project, or secret data. Operational API endpoints remain authenticated and access-controlled.
07 · Codex setup
A setup wizard can use this safe discovery sequence:
GET /api/me/ to validate the key and list workspaces.GET /api/workspaces/<workspace>/ for each workspace to list projects.AGENTS.md.PULSE_API_KEY in the environment or a secret manager.
The current discovery API intentionally does not expose the raw API key. A future
api_key or capabilities object could report access level, workspace
scope, and effective project write permission without exposing the secret itself.