Skip to main content

Search Projects

GET /public/action/projects/search

Lists / searches active projects.

Authentication: X-API-KEY header (see Authentication).

Query parameters​

ParameterTypeRequiredDescription
idstringNoExact project id. When provided, returns just that project (ignores query).
querystringNoAn exact client name. Returns that client's projects. Omit to list all projects in the workspace.
note

query here is not free text — it is matched to a client by name. If no client with that exact name exists, the endpoint returns 404 Not Found.

Request​

curl -X GET https://api.withmoxie.com/public/action/projects/search?query=VALUE \
-H "X-API-KEY: your_api_key_here"

Response​

Returns an array of ProjectSearchResult objects: the existing search fields plus description, agreementSource, and proposalVersion. feeSchedule and projectTypeId are included using their existing field names. Query and active-project filtering remain unchanged.

FieldMeaning
descriptionProject description. Preserve it when sending a full PUT update.
feeScheduleBilling configuration, including fee type, amount, and retainer settings.
projectTypeIdProject type id.
proposalId, proposalName, proposalVersionExisting proposal/agreement reference. Version 2 refers to the current agreement contract.
agreementSourceStored agreement origin snapshot, when available: id, name, and dateSigned.

This response does not add private project comments, event history, invoice-id collections, import metadata, package-execution internals, or an expanded client/contact object. Existing fields remain compatible with earlier search responses. An API key still grants workspace-owner access to the public API; project descriptions and custom values may contain sensitive business information.

Projects do not persist a direct opportunityId or source-template id. The endpoint does not synthesize these fields or rename proposalId to agreementId. Source references can be absent on independently created projects.

To replace a project, fetch its search result, change the intended fields, and send the public fields to Update Project. Internal state omitted from search is retained by the server. Prefer PATCH for isolated changes.

[
{
"id": "66b0f4c3c3a9e40012ab6611",
"accountId": 10016,
"clientId": "66b0f2a1c3a9e40012ab34cd",
"name": "Website Redesign",
"description": "Design and implementation scope",
"projectTypeId": "project-type-id",
"feeSchedule": { "feeType": "Fixed Price", "amount": 12000 },
"proposalId": "agreement-id",
"proposalName": "Signed terms",
"proposalVersion": 2,
"agreementSource": { "id": "agreement-id", "name": "Signed terms", "dateSigned": "2026-07-01T08:00:00Z" },
"active": true,
"startDate": "2026-07-15",
"dueDate": "2026-10-01",
"dateCreated": "2026-07-01T09:00:00Z",
"client": { "id": "66b0f2a1c3a9e40012ab34cd", "name": "Acme Kft." },
"hexColor": "#5C00E2",
"portalAccess": "FULL",
"showTimeWorkedInPortal": true,
"customValues": []
}
]