Synology PhotoStation REST API

Version 0.2.0

An Unofficial Reference

Perform API Request

Once a session is established, requests can be made to the APIs defined in the SYNO.API.Info query response.

Making An API Request

PhotoStation API requests are standard HTTP GET or POST requests made to a specified URL and containing a required set of parameters, either in URL query string or URL-encoded in the body of a POST request.

NOTE: While responses sent from the PhotoStation API are in JSON format, requests are not.

Determining API Path

The base URL for PhotoStation is at http://<synology_host>/photo/webapi. All APIs reference specific cgi or php files contained within this server path. In order to find the correct path for a given API, reference the response to a query request to SYNO.API.Info at /photo/webapi/query.cgi.

For example, based on the example response to SYNO.API.Info query in the previous section the path for SYNO.PhotoStation.Album requests would be album.php (ie. the full URL would be http://<synology_host>/photo/webapi/album.php).

Required Parameters

All API requests must contain the following parameters at a minimum (individual APIs may have additional requirements)

Parameter Description
api Name of the API being referenced (eg. SYNO.PhotoStation.Album)
version Version of the API to use (integer)
method Name of the method being accessed (eg. getinfo)

As mentioned previously, these can be sent either as query parameters as part of the request URL or as URL-encoded key-value pairs as part of the body of a POST request.

Example

Below is a sample request using the SYNO.PhotoStation.Album API's list method. This request returns a listing of all albums in the root of the PhotoStation service. Note that the list method requires the additional parameters limit, offset and type so these are provided in our curl call below.

Request

curl -b PHPSESSID=md4ach79mbgrdfa4g17mhgala2 'http://synology.local/photo/webapi/album.php?api=SYNO.PhotoStation.Album&method=list&version=1&limit=50&type=album&offset=0

NOTE: We use the -b KEY=VALUE option in curl to set the cookie which will be sent with our request. The key is always PHPSESSID and the value is the sid value returned from the SYNO.PhotoStation.Auth login response.

Response

{
  "success": true,
  "data": {
    "total": 3,
    "offset": 3,
    "items": [
      {
        "info": {
          "sharepath": "2019",
          "name": "2019",
          "title": "2019",
          "description": "",
          "hits": 0,
          "type": "public",
          "conversion": true,
          "allow_comment": false,
          "allow_embed": true
        },
        "id": "album_32303139",
        "type": "album",
        "additional": null,
        "thumbnail_status": "small,large"
      },
      {
        "info": {
          "sharepath": "iphone",
          "name": "iphone",
          "title": "iphone",
          "description": "",
          "hits": 0,
          "type": "private",
          "conversion": true,
          "allow_comment": false,
          "allow_embed": false
        },
        "id": "album_6970686f6e65",
        "type": "album",
        "additional": null,
        "thumbnail_status": "small,large"
      },
      {
        "info": {
          "sharepath": "other",
          "name": "other",
          "title": "other",
          "description": "",
          "hits": 0,
          "type": "private",
          "conversion": true,
          "allow_comment": false,
          "allow_embed": false
        },
        "id": "album_6f74686572",
        "type": "album",
        "additional": null,
        "thumbnail_status": "preview,small,large"
      }
    ]
  }
}