Application API Photos photo POST
October 15, 2026 at 9:35 AM/photo [POST]
Upload a new photo for the current member - protected.
Parameters
image(binary) [REQUIRED*] - a binary stream of the image data (the POST should be a standard multipart/form-data file encoded format); exactly one ofimageorimageurlmust be providedimageurl(string) [REQUIRED*] - the URL of an image (must begin withhttp://orhttps://); exactly one ofimageorimageurlmust be provided
We resize the uploaded photo and if it is not already square, we attempt to crop it intelligently to show the best part of the image where we need a square photo in the user interface.
Response Messages
403 Forbidden
The possible failcode entries are:
- 11201 -
imageandimageurlboth missing; exactly one must be present - 11202 - both
imageandimageurlpresent; only one may be present - 11203 - member already has their maximum number of uploaded photos
- 11204 - we were unable to process the image after it was uploaded (for an unspecified reason)
- 11205 - the image was too large (we cap at around 5MB)
- 11206 - the image was not an acceptable type (BMP, GIF, ICO, JPG, PNG)
{ "fail" : "Invalid Argument", "failcode" : [ ... ] }
Note: we expect to add more failcode entries in the future to provide more detail about why we are rejecting a photo.
200 OK - success
The following data is returned:
{ user status information + `photos` + new photo information }
This returns the User Status Information with an additional field,
"photos", which has the result of GET /photo, plus the following
additional fields describing the newly-uploaded photo:
photoname- the unique name assigned to the file on the server (a UUID)photoext- the file extension on the server (jpg,gif,png,ico,bmp)photourl- the full URL back to the uploaded image file on our serversphotoid- the unique numeric ID assigned to the newly uploaded photo (to be used in other photo-related API calls)photos- the same array you get back from theGET /photoAPI call
{
..., // user status information fields
"photoname" : "b094f611-274e-4e77-926f-0592596b19fa",
"photoext" : "jpg",
"photourl" : "http://...",
"photoid" : 34872,
"photos" : [
{ "id" : 765432,
"urlstem" : "https://...",
"extension" : ".png",
"max1600" : "_1600",
"max800" : "_800",
"square1000" : "_1000",
"square500" : "_500",
"square250" : "_250",
"primary" : 1,
"validforprimary" : 1,
"pending" : 0 },
...
],
... // user status information fields continued
}
/photos/shared [POST]
Privately share a photo with the specified member - protected.
Parameters
image(binary) [REQUIRED] - a binary stream of the image data (the POST should be a standard multipart/form-data file encoded format);profileid(numeric) [REQUIRED] - the ID of the member you are sharing this photo with.
The photo should already be cropped/resized to fit a max 1600px gallery size (either height or width).
You must be able to reply to the specified member (if they have previously messaged you) or send to them (if this is your first interaction).
Response Messages
All of the responses from POST /photo above are possible, regarding the image itself.
In addition, failures due to not being able to send/reply to the specified member are possible per Message 3.0 in Failure Codes.
403 Forbidden
{ "fail" : "Invalid Argument", "failcode" : [ ... ] }
200 OK - success
A subset of data is returned compared to a successful POST /photo above:
{
..., // user status information fields
"photoname" : "b094f611-274e-4e77-926f-0592596b19fa",
"photoext" : "jpg",
"photourl" : "http://...",
"photoid" : 34872,
... // user status information fields continued
}
Since privately shared photos do not contribute to a member’s profile photos, that photos data is not returned.
/photos/shared/consent [POST]
Update your shared photos consent - protected.
Used either to opt-in to send to a specific recipient (accepting the terms), or to consent to receive photos from a specific sender.
Parameters
One of either send_to or receive_from must be present:
send_to(numeric) [REQUIRED*] - the ID of the member you are opting-in to sharing photos with.receive_from(numeric) [REQUIRED*] - the ID of the member you are consenting to receive shared photo from.
Response Messages
If neither send_to or receive_from is present, or not valid members:
403 Forbidden
{ "fail" : "Invalid Argument" }
200 OK - success
User status information is returned for the specified profile, containing the updated shared photo consent data.