Project Notes
Read and manage the existing private workspace notes attached to a project. These are the same notes shown in the project's Notes panel. Notes have no separate title; the body is named entry throughout the API.
Authentication: X-API-KEY header (see Authentication). The same operations are available under /zapier/action/projects/notes/. API keys act as the workspace owner, so these endpoints can read and edit private project notes. They do not provide client-portal access.
Search and read
projectId is required and must belong to the API key's workspace. Optional id returns only that note within the project. Results are newest first; no matches returns []. Both active and inactive projects are accepted.
curl --get "https://api.withmoxie.com/public/action/projects/notes/search" \
-H "X-API-KEY: your_api_key_here" \
--data-urlencode "projectId=project-id"
The response contains only these note fields:
| Field | Meaning |
|---|---|
id | Note id for subsequent updates or deletion. |
projectId | Owning project. |
entry | Body text in the specified format. |
format | Markdown or HTML. Plain text can be submitted as Markdown; line breaks are preserved. |
author | Original author's display name, assigned by the server. |
lastEditedBy | Last editor's display name, or null before the first edit. |
timestamp | Creation timestamp (ISO 8601). |
timestampUpdated | Last edit timestamp (ISO 8601), or null before the first edit. |
No account internals, client/contact expansion, or unrelated project data is returned. Treat entry as authored content; sanitize it before rendering as HTML in an external application.
Create
POST /public/action/projects/notes/create accepts projectId, a non-blank entry, and optional format (defaults to Markdown). The server derives client ownership and records the API key's workspace owner as the author.
curl -X POST "https://api.withmoxie.com/public/action/projects/notes/create" \
-H "X-API-KEY: your_api_key_here" \
-H "Content-Type: application/json" \
-d '{"projectId":"project-id","entry":"## Meeting summary\n\nApproved the revised scope.","format":"Markdown"}'
Returns the created note, including its generated id and creation timestamp. No author, timestamp, client, or account overrides are accepted.
Update
PATCH /public/action/projects/notes/update requires the note id and a non-blank replacement entry. Omitted format retains its current value. To change format, submit both the rewritten body and its new format.
curl -X PATCH "https://api.withmoxie.com/public/action/projects/notes/update" \
-H "X-API-KEY: your_api_key_here" \
-H "Content-Type: application/json" \
-d '{"id":"note-id","entry":"Updated meeting summary."}'
Returns the updated note. Original authorship, creation time, and project/client ownership are preserved; the server sets timestampUpdated and lastEditedBy. This is a body replacement, not an append operation. Concurrent edits are not version-checked.
Delete
DELETE /public/action/projects/notes/delete requires the note id as a query parameter:
curl -X DELETE "https://api.withmoxie.com/public/action/projects/notes/delete?id=note-id" \
-H "X-API-KEY: your_api_key_here"
Returns true. Deletion uses the existing workspace Trash lifecycle, allowing recovery through workspace Trash. Client-only notes cannot be read, updated, or deleted through these project-note endpoints.
Errors
| Status | Meaning |
|---|---|
400 Bad Request | Missing required query parameter/body or invalid format. |
412 Precondition Failed | Blank project/note id or blank/missing entry. |
404 Not Found | Project or note is outside this workspace, absent, or the id refers to a client-only note. An unmatched search id returns []. |
All operations use the existing public API quota. Read-only search does not modify notes; create/update preserve the shared note service's formatting, embedded-image handling, and metadata rules.