Get a member's prospect interactions

GET /api/members/prospects/{memberId}/interactions

Success: 200 OK

Overview

Lists the sales-follow-up activity recorded against a member: the calls staff have made, the tasks they have set themselves, and the appointments they have booked in. This is the CRM trail behind a prospect, not the member's bookings or attendance.

Each interaction has a sub type — an operator-defined code such as a particular kind of callback — and every sub type belongs to one of three built-in types: call, task or appointment. The type is not held on the interaction itself; it is derived from the sub type and returned on each record for convenience.

Results are ordered newest first, by the date the interaction was raised. There is no paging: limit caps the number of records and that is all you get, so a member with a long history has to be read in full or truncated. There is no offset and no continuation token.

A member with no interactions returns 200 and an empty array. A member id that does not exist returns 404 — the member is checked first, so you can tell the two cases apart.

Note the URL says prospects, but the id is an ordinary member id.

Endpoint

GET {base_url}/api/members/prospects/{memberId}/interactions

{base_url} is the environment URL issued to your integration. See Authenticating with Gladstone APIs.

Path parameters

NameTypeRequiredDescription
memberIdinteger (int32)YesThe member whose interactions you want. Must be greater than 0, or the call is rejected with 400 before anything is read. The member must exist, or you get 404.

Query parameters

NameTypeRequiredDescription
interactionStatusinteger (int32)NoRestricts the results to one status: 1 active, 2 completed, 3 overdue, 4 unassigned. Omit it to get every status. There is no way to ask for two statuses in one call — send the parameter once per status, or filter client-side. A value outside 1–4 is rejected with 400.
interactionSubTypeIdstringNoRestricts the results to one operator-defined sub type code, matched exactly against [].interactionSubTypeId. Up to 15 characters. Omit it, or send an empty value, to get every sub type — an empty string is treated as "no filter" rather than "sub type is blank". An unrecognised code is not an error; you simply get an empty array.
limitinteger (int32)NoCaps the number of records returned. Defaults to 0, which means no cap — every interaction the member has. A negative value is rejected with 400. Because results are ordered newest first, limit=10 gives you the ten most recent interactions. There is no matching offset parameter, so this cannot be used to page through history.

Sample request

cURL
curl -X GET '{base_url}/api/members/prospects/{memberId}/interactions' \
  -H 'Authorization: Bearer {accessToken}' \
  -H 'X-Use-SSO: true'

Response fields

FieldTypeDescription
[].idinteger (int32)The interaction's own id. Use it to address the record when updating or deleting it; it is unique across the tenant, not per member.
[].memberIdinteger (int32)The member the interaction was recorded against. Always the member you asked for.
[].interactionSubTypeIdstringThe operator-defined sub type code for this interaction — the closest thing to "what kind of contact this was". Up to 15 characters. This is the value to send back as the interactionSubTypeId filter.
[].interactionTypeIdstringThe type code that the sub type belongs to, derived from the sub type rather than held on the interaction. null when the interaction points at a sub type that no longer exists. Numeric in practice, but returned as a string.
[].interactionTypeinteger (enum)The interaction's category, resolved from interactionTypeId: 0 call, 1 task, 2 appointment. null when the sub type has been deleted, or when its type code is not one of those three — so treat null as "unclassified" rather than assuming a default.
[].detailsstringThe free-text note staff wrote about the interaction. Up to 4000 characters. null when nothing was written.
[].nextActionDatestring (date-time)When the interaction is due to happen, or is due to be followed up — the date staff work to. null for an interaction logged after the fact with no follow-up.
[].scheduledWithstringThe staff member the interaction is with, as a short code of up to 15 characters rather than a full name. null when unassigned.
[].scheduledBystringThe staff member who arranged the interaction, again a code of up to 15 characters. It need not be the same person as scheduledWith. null when not recorded.
[].outcomeOfInteractionTypeIdinteger (int32)The recorded result of the interaction — for example "no answer" or "signed up" — as an id from the operator's outcome list. null while the interaction is still outstanding, which is the normal state for anything not yet completed. An outcome is only ever paired with a sub type of the same interaction type, so outcomes for calls never appear on appointments.
[].durationinteger (int32)How long the interaction is scheduled to take, in minutes. Between 5 and 30 — the values the till offers — and null when no duration was set.
[].priorityinteger (enum)How urgent staff marked the interaction: 1 low, 2 medium, 3 high. null when no priority was set; do not read that as low.
[].emailConfirmationTypeinteger (int32)
[].interactionStatusinteger (enum)Where the interaction has got to: 1 active, 2 completed, 3 overdue, 4 unassigned. null when no status was recorded, and such records are excluded whenever you filter by interactionStatus.
[].reminderinteger (int32)How many minutes before nextActionDate staff are reminded. 0 to 30, or -1 meaning no reminder. null when the field was never set — which is not the same as -1, though both mean no reminder is due.
[].raisedByUserIdstringThe staff user id that created the interaction, stamped by the platform at the time. null when it was created by a caller with no user in context, such as a server-to-server integration. Not a member id.
[].raisedDatestring (date-time)When the interaction was created, in UTC. This is the field the results are sorted on, newest first. Fixed at creation; edits do not move it.
[].lastActionUserIdstringThe staff user id that last changed the interaction. Equal to raisedByUserId until someone else edits it.
[].lastActionDatestring (date-time)When the interaction was last changed, in UTC. Equal to raisedDate on a record that has never been edited — use the difference to spot interactions that have been worked since they were logged.

Sample response

200 OK
[
  {
    "id": 12345,
    "memberId": 12345,
    "interactionSubTypeId": "string",
    "interactionTypeId": "string",
    "interactionType": 0,
    "details": "string",
    "nextActionDate": "2026-08-14T19:00:00Z",
    "scheduledWith": "string",
    "scheduledBy": "string",
    "outcomeOfInteractionTypeId": 12345,
    "duration": 1,
    "priority": 1,
    "emailConfirmationType": 1,
    "interactionStatus": 1,
    "reminder": 1,
    "raisedByUserId": "string",
    "raisedDate": "2026-08-14T19:00:00Z",
    "lastActionUserId": "string",
    "lastActionDate": "2026-08-14T19:00:00Z"
  }
]

Errors

StatusMeaningWhen
400Bad requestmemberId is 0 or negative. The body is A valid memberId is required.
400Bad requestlimit is negative. The body is limit cannot be negative. Use 0, not a negative number, to mean "no limit".
400Bad requestinteractionStatus is not one of 1, 2, 3 or 4. This one is rejected before the other checks run, so the body is a validation problem document rather than a plain-text message.
404Not foundmemberId does not exist. The body is Member {memberId} was not found. A member who exists but has no interactions returns 200 and [] instead.
500Internal server errorAn unexpected server-side failure while reading the interactions.

This page as markdown · All pages · llms.txt