Get a member's needs-analysis comments
GET /api/members/prospects/{memberId}/needs-analysis
Success: 200 OK
- Products: not restricted by product
- Features: Prospecting (
PROSPECTS)
Overview
Retrieves the free-text needs-analysis note held against a member. A needs analysis is the conversation a member of staff has with a prospect about their goals and requirements; the note is what the staff member wrote down. It is a single block of text, not a questionnaire, and a member has at most one — saving again overwrites it rather than adding a second.
Note the URL says prospects, but the id is an ordinary member id — the same id you use everywhere else in the Members API, and the one the platform validates against the member records when the note is saved.
Read the status code before the body. A member who has never had a needs analysis recorded returns 204 No Content with an empty body, not 200 with nulls and not 404. A client that assumes a JSON body on any 2xx will fail on the most common case.
The note itself is written with PUT to the same URL; the user and date fields below are stamped by the platform at that point and cannot be set by you.
Endpoint
GET {base_url}/api/members/prospects/{memberId}/needs-analysis
{base_url} is the environment URL issued to your integration. See Authenticating with Gladstone APIs.
Path parameters
| Name | Type | Required | Description |
|---|---|---|---|
memberId | integer (int32) | Yes | The member whose needs-analysis note you want. Must be greater than 0 — 0 and negative values are rejected with 400 before any lookup. A member id that does not exist is not distinguished from one that exists but has no note: both give 204. |
Sample request
curl -X GET '{base_url}/api/members/prospects/{memberId}/needs-analysis' \
-H 'Authorization: Bearer {accessToken}' \
-H 'X-Use-SSO: true'Response fields
| Field | Type | Description |
|---|---|---|
id | integer (int32) | The id of the needs-analysis record itself. You do not need it for anything — the note is always addressed by member id, and there is no endpoint that takes this value. |
memberId | integer (int32) | The member the note belongs to. Always equal to the memberId you asked for. |
comments | string | The note itself, as typed by staff. Up to 4000 characters; longer text is refused when saving. It is never null on a saved note — clearing the note saves an empty string, so "" means "the note was deliberately emptied" while a 204 means "there has never been a note". |
raisedByUserId | string | The staff user id that first created the note, captured from the logged-in user at the time. null when the note was created by a caller with no user in context, such as a server-to-server integration token. Not a member id. |
raisedDate | string (date-time) | When the note was first created, in UTC. Fixed at creation and not touched by later edits, so use it to tell how long the member has been engaged with. |
lastActionUserId | string | The staff user id that last edited the note. Equal to raisedByUserId until someone else edits it, and null under the same conditions. |
lastActionDate | string (date-time) | When the note was last saved, in UTC. Equal to raisedDate on a note that has never been edited. Compare the two to tell a fresh note from a maintained one. |
Sample response
{
"id": 12345,
"memberId": 12345,
"comments": "string",
"raisedByUserId": "string",
"raisedDate": "2026-08-14T19:00:00Z",
"lastActionUserId": "string",
"lastActionDate": "2026-08-14T19:00:00Z"
}Errors
| Status | Meaning | When |
|---|---|---|
400 | Bad request | memberId is 0 or negative. The body is A valid memberId is required. |
500 | Internal server error | An unexpected server-side failure while reading the note. In particular, if more than one needs-analysis note somehow exists for the member, the read fails here rather than returning one of them. |