Get member picture

GET /api/members/{memberId}/base64-member-picture

Success: 200 OK

Overview

Retrieves a member's profile photograph — the one staff see at reception to confirm who is presenting a card — together with the member's photo upload history and the upload limits that apply to them. Use it to show the current photo, and to tell the member whether they can change it now and, if not, when they can.

A member with no photograph returns 200 with picture set to null, not 404; the upload history and limits are still returned. Most members typically have no picture, so treat a null picture as an ordinary outcome. A 404 now means the member itself does not exist.

Two limits govern a new photo, and both are reported in the response:

The attempt count is not cleared when its window ends; it is reset the next time the member makes an attempt. Work out whether it is still current yourself: if pictureValidationAttemptWindowStartUtc is null or more than 24 hours ago, treat the count as 0. If it is within the last 24 hours and pictureValidationAttemptCount has reached maxRetries, no further attempt is accepted until 24 hours after the window start. A maxRetries of 0 means attempts are unlimited.

The image comes back raw: no data URI prefix, no content type and no dimensions. You are told nothing about the format, so if you need to render it you will have to sniff the bytes or assume what your operator uploads.

This endpoint is single-member only — a linked member's picture cannot be read with a primary member's token.

Endpoint

GET {base_url}/api/members/{memberId}/base64-member-picture

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

Path parameters

NameTypeRequiredDescription
memberIdinteger (int32)YesThe member whose picture and upload status you want. Must be greater than 0; 0 and -999 are rejected with 400. With a member-scoped token this must be the token's own member — linked members are not accepted.

Sample request

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

Response fields

All date-times are UTC. Treat them as UTC whether or not the value carries a Z suffix.

FieldTypeDescription
picturestringThe image bytes, base64-encoded, or null when the member has no picture. Standard base64 with no data:image/...;base64, prefix — add one yourself if you are putting it in an img tag. The image format is whatever was uploaded and is not reported anywhere in the response.
lastSuccessfulPhotoUploadUtcstring (date-time)When the member's picture was last stored successfully, or null if no upload has been recorded for them. Add uploadFrequency days to find the earliest time the member can upload again.
pictureValidationAttemptCountinteger (int32)Photo-check attempts recorded in the window that started at pictureValidationAttemptWindowStartUtc. Counts accepted and rejected checks alike; checks that failed for a server-side reason are not counted. 0 when the member has no upload history, and reset to 0 by a successful upload. Not cleared when the window ends — see the Overview for how to tell whether it is current.
pictureValidationAttemptWindowStartUtcstring (date-time)Start of the 24-hour window that pictureValidationAttemptCount applies to, or null when the member has no upload history. A window more than 24 hours old has expired, and the count with it.
uploadFrequencyinteger (int32)Minimum number of days the member must wait between successful uploads, as configured for your organisation. Defaults to 180 when not configured. 0 means there is no waiting period.
maxRetriesinteger (int32)Maximum number of photo-check attempts the member may make in a 24-hour window. Defaults to 5 when not configured. 0 means attempts are unlimited.

Sample response

200 OK
{
  "picture": "iVBORw0KGgoAAAANSUhEUgAA...",
  "lastSuccessfulPhotoUploadUtc": "2026-04-14T09:31:07",
  "pictureValidationAttemptCount": 2,
  "pictureValidationAttemptWindowStartUtc": "2026-10-12T08:02:44",
  "uploadFrequency": 180,
  "maxRetries": 5
}
200 OK — member with no picture or upload history
{
  "picture": null,
  "lastSuccessfulPhotoUploadUtc": null,
  "pictureValidationAttemptCount": 0,
  "pictureValidationAttemptWindowStartUtc": null,
  "uploadFrequency": 180,
  "maxRetries": 5
}

Errors

StatusMeaningWhen
400Bad requestmemberId is 0 or negative. The body is {memberId} is an invalid member ID.
403ForbiddenThe token belongs to a different member. Linked members are not accepted here. The body is The given member ID of {memberId} does not belong to the logged in member.
404Not foundNo member exists with that id. The body is Member with id '{memberId}' does not exist. A member who exists but has no picture is not an error: see picture.
500Internal server errorAn unexpected server-side failure while reading the picture or upload history. No detail is returned in the body.

This page as markdown · All pages · llms.txt