Albums

https://itunes.apple.com/us/app/albums-private-photo-sharing/id906530752?mt=8

Base URI

https://fifth-glazing-578.appspot.com/api
Parameters
accessToken
string optional

access token provided in response to /authenticate method

API Methods
GET /authenticate
POST /album
GET /album/{id}
PUT /album/{albumId}/upload
DELETE /photo/{photoId}
GET /invite/friends/{provider}/oauthToken/{oauthToken}
DELETE /album/{albumId}
DELETE /album/{albumId}/photos
POST /album/{albumId}/hide/{photoId}
POST /logout
GET /album/nophotos
GET /album/{albumId}/sharedUrl
GET /album/shared/{sharedToken}
GET /news
GET /invite/message/{token}
POST /user/update
PUT /album/{albumId}/name
PUT /album/{albumId}/mute
POST /
GET /album/{albumId}/photos/{start}/number/{number}
GET /album/{albumId}/changes
GET /album/list
InviteS
POST /invite
GET /invite/phone
Invite Users
POST /invite

Request body

Responses

200 OK
Body
Array of InviteResponse
Example 1
POST https://fifth-glazing-578.appspot.com/api/invite HTTP/1.1 

Content-Type: application/json

{
    "users": [
        {
            "externalId": "1231231231123123",
            "authProvider": "Facebook"
        }
    ],
    "albumId": 123
}

HTTP/1.1 200 OK 

Content-Type: application/json

[
    {
        "inviteId": 123,
        "albumName": "Test Album",
        "albumId": 123,
        "userId": 1123,
        "invitationDate": 1,
        "invitator": {
            "id": 1123,
            "firstName": "",
            "lastName": ""
        },
        "status": "PENDING,ACCEPTED,DECLINED"
    }
]
Invite By Phone
GET /invite/phone

Request body

Responses

200 OK
Test
GET /test/invite/{inviteId}/type/{inviteType}/user/{userId}/album/{albumId}
Send invite
GET /test/invite/{inviteId}/type/{inviteType}/user/{userId}/album/{albumId}

Path variables

inviteId
string required
inviteType
string required

ACCEPT_INVITE, INVITE, PHOTO

userId
string required
albumId
string required

Responses

200 OK
Device
POST /device/ios/register
POST /device/android/register
Register iOS device
POST /device/ios/register

Request body

device token byte array

Responses

200 OK
Register Android device
POST /device/android/register

Request body

registerId string

Responses

200 OK
Comments
POST /comments/photo/{photoId}
GET /comments/photo/{photoId}
DELETE /comments/photo/{photoId}/comment/{commentId}
Post comment
POST /comments/photo/{photoId}

Path variables

photoId
string required

Request body

string
Examples
"nice photo"

Responses

200 OK
Body
Get comments
GET /comments/photo/{photoId}

Path variables

photoId
string required

Responses

200 OK
Body
Array of Comment
Delete comment
DELETE /comments/photo/{photoId}/comment/{commentId}

Path variables

photoId
string required
commentId
string required

Responses

200 OK
Phone regisration
POST /register/phone/verify
POST /register/phone
Verify phone (with SMS)
POST /register/phone/verify

The server will send SMS

Request body

Object
region
string
Example:
US
number
string
Example:
2026296756
secret
string
Example:
asdvasdvasdvasdvasdvasdvasdv

Responses

200 OK
Body
Object
verifyToken
string
Example:
123123123123112312
Register phone
POST /register/phone

Request body

Object
code
string
Example:
4455
verifyToken
string
Example:
asdfasdfasdfasdfasdf
firstName
string
lastName
string

Responses

200 OK
Body
Object
userId
number
Example:
123123
accessToken
string
Example:
asdcasdcasdcasdc
phone
string
Example:
+12026296755
firstName
string
lastName
string
404 Not found

combination of code and token not found

POST /phone/verify/deeplink

Request body

Object
region
string
Example:
US
number
number
Example:
2026296756
secret
string
Example:
asdvasdvasdvasdvasdvasdvasdv
locle
string
Example:
ru
appScheme
string
Example:
albums

Responses

200 OK
Body
Object
code
number
Example:
123123
token
string
Example:
token
Batch uploading
POST /album/{albumId}/batch
GET /album/{albumId}/batch/{batchId}
POST /album/highResUploadUrls
POST /uploadBatchPartUrl
POST /uploadHighResUrl
Init batch upload
POST /album/{albumId}/batch

Path variables

albumId
string optional

Request body

Array of BatchPart

Responses

200 OK
Body
Object
batchId
number
Example:
123
parts
Get new batch part upload url
GET /album/{albumId}/batch/{batchId}

This method is called to get new upload url for batch part, in case of batch part uploading failure, for intance.

Path variables

albumId
string optional
batchId
string optional

Request body

Responses

200 OK
Body
Get new High Res photo upload URL
POST /album/highResUploadUrls

Request body

list of photo ids

Array of number

Responses

200 OK
Body
Upload batch part
POST /uploadBatchPartUrl

When you upload batch part you must fill headers with complete Batch object and index of batch part witnin this object

Request headers

partIndex
string optional

Request body

Multiart filled with

  1. "batch" - json with complete batch object
  2. low res images, Content-Type must be specified: image/jpeg, image/png

Responses

200 OK
Body
Object
photos
Upload high resolution photo
POST /uploadHighResUrl

Request headers

albumId
string required
photoId
string required
userId
string required

Responses

200 OK
Body
Authenticate
GET /authenticate

Request parameters

oauthToken
string required

Facebook token

Example:
testtoken
provider
string required
Example:
Facebook

Responses

200 OK
Body
Object
userId
number
Example:
2
accessToken
string
Example:
029b13c1-ef76-4b37-8dbe-a17e713d29a2
Create album
POST /album

Creates new album for the user

Request body

Object
name
string
Example:
Album Name

Responses

200 OK
Body
List all albums (deprecated)
GET /album

Responses

200 OK
Body
Array of Album
Get album
GET /album/{id}

Path variables

id
string required

Responses

200 OK
Body
Init upload
PUT /album/{albumId}/upload

Path variables

albumId
string required

Request body

Responses

200 OK
Body
Remove photo from Album
DELETE /photo/{photoId}

Path variables

photoId
string required

Responses

200 OK
Upload Photo (Deprecated)
POST /

ATTENTION! Base URL is different for this method!!! Use uploadUrl returned by init method

HEADERS
Content-Type: multipart/form-data
service-meta-album: albumId
service-meta-user: userId
servce-meta-asset: file url on deivce
service-meta-width: image width
service-meta-height: image height
service-meta-latitude: not required
service-meta-longitude: not required service-meta-client-upload-date: not required service-meta-date: photo creation time in millis since 1970

Responses

200 OK
Find friends with installed App
GET /invite/friends/{provider}/oauthToken/{oauthToken}

Path variables

provider
string required

Facebook

oauthToken
string required

Responses

200 OK
Body
Array of AppUser
Leave album keep photos
DELETE /album/{albumId}

Leave album and keep photos

Path variables

albumId
string required

Responses

200 OK
Leave album remove photos
DELETE /album/{albumId}/photos

Path variables

albumId
string required

Responses

200 OK
Hide photo
POST /album/{albumId}/hide/{photoId}

Path variables

albumId
string required
photoId
string required

Responses

200 OK
Logout
POST /logout

Responses

200 OK
List all albums (no photos)
GET /album/nophotos

Responses

200 OK
Body
Array of AlbumNoPhotos
Get shared album url
GET /album/{albumId}/sharedUrl

Path variables

albumId
string required

Responses

200 OK
Body
Object
url
string
Example:
http://demessify.net/#album/asdvas-asdvasdv-asdvasda-sadvads
Get shared album
GET /album/shared/{sharedToken}

Anonymous access, no need to provide accessToken to call this method

Path variables

sharedToken
string required

Responses

200 OK
Body
Get news
GET /news

Responses

200 OK
Body
Array of NewsRecord
Get invite message
GET /invite/message/{token}

Path variables

token
string required

Responses

200 OK
Body
Object
byUser
Object
firstName
string
Example:
Some test
lastName
string
Example:
Test Last
albumName
string
Example:
Test
photos
string
Example:
https://lh5.ggpht.com/5L6wzRjPgL-5z3i9tFK-2hBLabq6nLf5FaX_ziXpYwN7snK2bai--Tf2JY70LKxWPgaGMRM0H2dNMRZ0L9ehAo5bJedo=s640
Update user info
POST /user/update

Request body

Object
firstName
string
Example:
John
lastName
string
Example:
Doe

Responses

200 OK
Body
Object
userId
number
Example:
123123
accessToken
string
Example:
asdcasdcasdcasdc
phone
string
Example:
+12026296755
firstName
unknown
lastName
unknown
Rename method
PUT /album/{albumId}/name

Path variables

albumId
string required

Request body

Object
name
string
Example:
New album name

Responses

200 OK
Mute Unmute album
PUT /album/{albumId}/mute

Path variables

albumId
string required

Request body

Object
muted
boolean
Example:
true

Responses

200 OK
Upload Photo
POST /

ATTENTION! Base URL is different for this method!!! Use uploadUrl returned by init method

HEADERS
Content-Type: multipart/form-data
service-meta-album: albumId
service-meta-user: userId
servce-meta-asset: file url on deivce
service-meta-width: image width
service-meta-height: image height
service-meta-latitude: not required
service-meta-longitude: not required service-meta-client-upload-date: not required service-meta-date: photo creation time in millis since 1970

Responses

200 OK
List Photos
GET /album/{albumId}/photos/{start}/number/{number}

Path variables

albumId
number optional
start
number optional

offset index

number
number optional

number of photos to return

Responses

200 OK
Body
Array of Photo
Example 1
GET https://fifth-glazing-578.appspot.com/api/album/1/photos/2/number/-17 HTTP/1.1 

HTTP/1.1 200 OK 

Content-Type: application/json

[
    {
        "id": 16,
        "assetURI": "putin.jpg",
        "uploadDate": 1402266704000,
        "creationDate": 1402266700000,
        "contentType": "image/jpeg",
        "size": 148161,
        "url": "http://lh5.ggpht.com/2FUgiX4yZoG_QTO1QDbKwSe-GDt2kyPIned0a62iHW7HgT2Gre7n7fM9XQIczmXVV-ef3H0dHcKB0KMhT9BXM7YuyYaJr34",
        "thumbnails": [
            {
                "type": "WIDTH_208, WIDTH_640, WIDTH_960",
                "url": "http://lh5.ggpht.com/2FUgiX4yZoG_QTO1QDbKwSe-GDt2kyPIned0a62iHW7HgT2Gre7n7fM9XQIczmXVV-ef3H0dHcKB0KMhT9BXM7YuyYaJr34=s208"
            }
        ],
        "width": 1,
        "height": 1,
        "owner": {
            "id": 123,
            "firstName": "Valdimir",
            "lastName": "Putin",
            "externalId": "",
            "authProvider": "",
            "creationDate": 1405358472000
        },
        "lowResUrl": ""
    }
]
Get Album changes
GET /album/{albumId}/changes

Path variables

albumId
string optional

Request headers

If-Modified-Since
number required

Miliseconds since 1970

Responses

200 OK
Body
Array
Object
removed
highResUpdate
added
List Albums
GET /album/list

Returns a list of user albums including album covers

Responses

200 OK
Body
Array of Album
Data Reference
Album object

Properties

id
number
Example:
74
name
string
Example:
тестовый альбом
photos
Array of Photo
albumUsers
Array of AlbumUser
owner

User

creationDate
number
Example:
1406160072000
newContentDate
number
Example:
1
modificationDate
number
Example:
1
muted
boolean

muted is not returned with some methods

Example:
false
InviteResponse object

Properties

inviteId
number
Example:
123
albumName
string
Example:
Test Album
albumId
number
Example:
123
userId
number
Example:
1123
invitationDate
number
Example:
1
invitator
Object
id
number
Example:
1123
firstName
string
lastName
string
status
string
Example:
PENDING,ACCEPTED,DECLINED
Invitator object

Properties

id
number
Example:
1
firstName
string
lastName
string
InviteRequest object

Properties

users
Array
Object
externalId
string
Example:
1231231231123123
authProvider
string
Example:
Facebook
albumId
number
Example:
123
Methods: Invite Users
Photo object

Properties

id
number
Example:
16
assetURI
string
Example:
putin.jpg
uploadDate
number
Example:
1402266704000
creationDate
number
Example:
1402266700000
contentType
string
Example:
image/jpeg
size
number
Example:
148161
url
string
Example:
http://lh5.ggpht.com/2FUgiX4yZoG_QTO1QDbKwSe-GDt2kyPIned0a62iHW7HgT2Gre7n7fM9XQIczmXVV-ef3H0dHcKB0KMhT9BXM7YuyYaJr34
thumbnails
Array of Thumbnail
width
number
Example:
1
height
number
Example:
1
owner

User

lowResUrl
string
AppUser object

Properties

id
number
Example:
123
firstName
string
Example:
Valdimir
lastName
string
Example:
Putin
externalId
string

302969733218156

UploadRequestInfo object

Properties

assetURI
string
Example:
device_image_file_uri
Methods: Init upload
UploadResponseInfo object

Properties

assetURI
string
Example:
device image url
uploadUrl
string
Example:
google cloud upload url
Methods: Init upload
Thumbnail object

Properties

type
string
Example:
WIDTH_208, WIDTH_640, WIDTH_960
url
string
Example:
http://lh5.ggpht.com/2FUgiX4yZoG_QTO1QDbKwSe-GDt2kyPIned0a62iHW7HgT2Gre7n7fM9XQIczmXVV-ef3H0dHcKB0KMhT9BXM7YuyYaJr34=s208
Types: Photo
User object

Properties

id
number
Example:
123
firstName
string
Example:
Valdimir
lastName
string
Example:
Putin
externalId
string

302969733218156

authProvider
string

Facebook

creationDate
number
Example:
1405358472000
AlbumUser object

Properties

user
Types: Album
AlbumNoPhotos object

Properties

id
number
Example:
74
name
string
Example:
тестовый альбом
albumUsers
Array
Object
user
Object
id
number
Example:
123
firstName
string
Example:
Valdimir
lastName
string
Example:
Putin
externalId
unknown
authProvider
unknown
creationDate
number
Example:
1405358472000
owner
Object
id
number
Example:
123
firstName
string
Example:
Valdimir
lastName
string
Example:
Putin
externalId
unknown
authProvider
unknown
creationDate
number
Example:
1405358472000
creationDate
number
Example:
1406160072000
photosNumber
number
Example:
1
cover

Photo

Comment object

Properties

id
number
Example:
1
text
string
user
photoId
number
Example:
1
date
number
Example:
1
NewsRecord object

Properties

id
number
Example:
123
type
string

PHOTO, COMMENT, JOIN, LEAVE,

Example:
albumName
string
Example:
Trip to Miami
date
number
Example:
12341234123412340000
user
payload
string
Example:
{ "photoId" : 123, "thumbnail" : "http://123.jpg", "thumbnail960" :"http://123.jpg", "firstName" : "asdvasd", "lastName" : "asdfasdf", "ownerId" : 123} { "commentId": 123, "body" : "comment text"}
albumId
string
Methods: Get news
InviteByPhoneRequest object

Properties

phones
Array of string
Example:
+12026293344
albumId
number
Example:
123
locale
string
Example:
US, RU
Methods: Invite By Phone
BatchItem object

Properties

assetURI
string
Example:
putin.jpg
creationDate
number
Example:
1402266700000
width
number

original photo width

Example:
640
height
number

original photo height

Example:
480
latitude
number
Example:
34.123123123
longitude
number
Example:
35.1234123
comment
string
Example:
bla bla bla
Types: BatchPart
BatchPart object

Properties

items
Array of BatchItem
PartUrl object

Properties

batchPartUrl
string
Example:
http://batchpart_upload_url
itemsHighResUrls
Array of string
Example:
{ "http://high_res_image1_upload_url", "http://high_res_image1_upload_url" }
Batch object

Properties

batchId
number
userId
number
albumId
number
parts
Array of BatchPart
HighResUrlUpdate object

Properties

photoId
number
uploadUrl
string nullable
received
boolean nullable