Zoom Web API

The Zoom Web APIs allow web services or web clients to access the DAM and Workflow functions easily. Except for the UI Launcher and metadata API, all the other APIs are remote APIs and do not require a local working copy.

Managing Users and Privileges

These APIs are invoked on the Zoom Web Management Server. Default TCP port: 8443. The role needed to execute these APIS: Project Admin or Super Admin unless otherwise stated.

Form request data refers to the Http Form data that must be sent either as a URL-encoded query parameter or in a POST.

Below is a list of a few our web administration APIs. Please refer to the Zoom Web Administration Reference guide for an exhaustive list of the APIs on our support site.

GET USER PROFILE

Description:

Get the current logged in user’s profile.

Role required:

Any authenticated user can access their profile

Request URL:

http://zoom-server-address:8443/jsp/login/getuser.jsp?fullprofile=true|false

Sample Response JSON:

{

“success”: true,

“username”: “rahul”,

“firstname”: “Rahul”,

“lastname”: “Bhargava”,

“email”: “rahul@evolphin.com”,

“fullname”: “Rahul Bhargava”,

“rate”: 0,

“projectlist”: “Project With Jobs, Shared-Project, Perich, Job 7.2, FAAC, Job 7.1 Retail Chain Ad, Job 8.1, defproj”,

“password”: “rahul”,

“note”: “”,

“allowProfileEdit”: true

}

GET USER ACCOUNT LIST

Description:

List all user profiles. Some filtering can be done through the control of request parameters, such as getting users starting from a specific list index, limiting the number of users in the response, and, getting only those users whose usernames start with the specified letters.

Request URL:

http://zoom-server-address:8443/jsp/users/usr-json.jsp

Form Request Data

start: <index in user table>

limit: <number of users to return>

query: <prefix string – to get only those users whose usernames start with the given prefix string, if any>

onlyName: <true – if only user name fields requested: displayname, username, lastname, firstname>

Sample Response JSON:

{

    “success”: true,

    “nentries”: “12”,

    “entries”: [

        {

            “username”: “gary”,

            “lastname”: “Harr”,

            “firstname”: “Gary”,

            “email”: “”,

            “password”: “gary.harr982”,

            “note”: “”,

            “rate”: “0”

        },

        {

            “username”: “min”,

            “lastname”: “Min”,

            “firstname”: “Min”,

            “email”: “”,

            “password”: “min”,

            “note”: “”,

            “rate”: “0”

        },

    ……………..

}

ADD OR MODIFY USER PROFILE

Description:

Add a new user or edit the user’s profile of the specified user

Request URL:

Add user:
http://zoom-server-address:8443/jsp/users/modifyuserform.jsp
Edit user:
http://zoom-server-address:8443/jsp/users/modifyuserform.jsp?edit=true&username=<user id>

Form Request Data:

lastname:Cathy

firstname:Batee

password:cathy

cpassword:cathy

email:batee.cathy@evolphin.com

rate:0

note:

Sample Response JSON:

{

“success”: “true”,

“info”: “User account updated!”

}

DELETE USER ACCOUNTS

Description:

Delete the user accounts for the specified list of usernames. The response contains the list of user accounts, after the deletion has been performed. The request parameters for getting the user account list can be specified additionally, to control the response user list, as described above.

Request URL:

http://zoom-server-address:8443/jsp/users/usr-json.jsp

Form Request Data

delData: <list of usernames to be deleted, if any>

LIST AVAILABLE ROLES

Description:

List roles already setup in the Zoom server for managing permissions

Request URL:

http://zoom-server-address:8443/jsp/security/rolelist-json.jsp

Sample Response JSON:

[

{
id: “developerdesigner”,
project: “*”,
note: “Developer / Designer”,
perm: “CONTRIBUTE”,
uiProvider: “col”,
iconCls: “icon-role-list”,
qtip: “Can read all project items and add new items”,
projEditable: true

},

 

{

id: “webapprover”,
project: “*”,
note: “Zoom Default Web Approver”,
perm: “REVIEW”,
uiProvider: “col”,
iconCls: “icon-role-wa”,
qtip: “Can read those project items that have been marked for review”,
projEditable: true

},

 
{
id: “reader”,
project: “*”,
note: “Reader”,
perm: “READ”,
uiProvider: “col”,
iconCls: “icon-role-list”,
qtip: “Can read all project items”,
projEditable: true

},

 

{

id: “projectadmin”,
project: “*”,
note: “Project Admin”,
perm: “EDIT_ALL”,
uiProvider: “col”,
iconCls: “icon-role-list”,
qtip: “Can read/write/delete all items”,
projEditable: true
},
]

Find API

The Zoom Find API allows you to search assets and read metadata from assets inside the Zoom repository. You can search the repository based on a variety of different search parameters. It is required to provide at least 1 search criteria – either filename, changeset, or metadata criteria.

Form request data refers to the Http Form data that must be send either as a URL encoded query parameter or in a POST.

The command request supports the following main search criteria:

NameDescription
allMatchedRevisionsBoolean flag. Set to “true” to send all matching revisions of an asset.
limitInteger representing the limit on number of returned results (total revisions of files + dirs)
fileNameAsset name e.g. “*.jpg”. The name need not be the current name and would be matched throughout the history.
rrnCriteriaChangeset criteria such as author, comment, time, and rrn (Repository Revision Number)
metadataAsset metadata in the form of metadata name and its value to be searched for.
searchPathsNarrow the range of search to assets within these paths. A search path may be in the form of either a project, or, a branch, or, an absolute path, or, any combination of these three. The absolute path must lie within the specified project. If no search paths are provided then it will search inside all user accessible projects. Only users in super-admin role will be able to search an entire branch or non-project paths.

Regular Expression pattern support in metadata values

Partial RegEx (regular expression) patterns can be supplied as part of the metadata values.

Integer Fields: While no regex is supported, you can use the | operator to specify a numeric range. For e.g. “value”: “3000|” would match all assets that have the metadata value >= 3000. The syntax “val1|val2” can be used to specify a range from val1-val2. 

String Fields: Please note $ is escaped by the search API back-end, but you can use non-empty regex. For e,g. 

{
"name": "EDIT_Source",
"value": "((^AP\\z)|(^Getty\\z))"
}
 
The above expression searches for AP or Getty regular expression patterns.
Please note the response JSON doesn’t directly return the fully qualified file paths. Check in the doc here to check how you can obtain the full paths from the Asset ID  (FUID) values.

Given below are some samples that will help you see how to construct the request queries, and interpret the responses.

Search for all InDesign assets in Zoom

Description:
Find all of the assets in Zoom that are InDesign files.

Request URL:
http://zm.server:8443/command?zm_username=joe&zm_password=joe&data={clientVersion:%22ZoomClient/5.2-b8852%22,cmd:%22find%22,fileName:%22*.indd%22}

Sample JSON Request:

data: {

clientVersion: “ZoomClient/5.2-b8852”,

cmd: “find”,

fileName: “*.indd”

}

Sample JSON response:

{

  “branchMap”: {

    “nentries”: 1,

    “entries”: [

      {

        “id”: 1,

        “name”: “head”

      }

    ]

  },

  “files”: {

    “nentries”: 7,

    “entries”: [

      {

        “pFuid”: 7,

        “rev”: {

          “nentries”: 1,

          “entries”: [

            {

              “action”: “Added”,

              “rrn”: 27,

              “len”: 2899968,

              “frn”: 1,

              “metadata”: {

                “nentries”: 5,

                “entries”: [

                  {

                    “val”: “1378958400000”,

                    “id”: 1

                  },

                  {

                    “val”: “application/x-indesign”,

                    “id”: 2

                  },

                  {

                    “val”: “Adobe InDesign CC (Macintosh)”,

                    “id”: 3

                  },

                  {

                    “val”: “1379995200000”,

                    “id”: 4

                  },

                  {

                    “val”: “1379995200000”,

                    “id”: 5

                  }

                ]

              }

            }

          ]

        },

        “fuid”: 24,

        “bid”: 1,

        “name”: “What is Electricity.indd”

      },

      {

        “pFuid”: 15,

        “rev”: {

          “nentries”: 1,

          “entries”: [

            {

              “action”: “Added”,

              “rrn”: 26,

              “len”: 2433024,

              “frn”: 1,

              “metadata”: {

                “nentries”: 5,

                “entries”: [

                  {

                    “val”: “1377748800000”,

                    “id”: 1

                  },

                  {

                    “val”: “application/x-indesign”,

                    “id”: 2

                  },

                  {

                    “val”: “Adobe InDesign CC (Macintosh)”,

                    “id”: 3

                  },

                  {

                    “val”: “1378094400000”,

                    “id”: 4

                  },

                  {

                    “val”: “1378094400000”,

                    “id”: 5

                  }

                ]

              }

            }

          ]

        },

        “fuid”: 17,

        “bid”: 1,

        “name”: “EditorsNote_v.indd”

      },

      {

        “pFuid”: 15,

        “rev”: {

          “nentries”: 1,

          “entries”: [

            {

              “action”: “Added”,

              “rrn”: 26,

              “len”: 2428928,

              “frn”: 1,

              “metadata”: {

                “nentries”: 5,

                “entries”: [

                  {

                    “val”: “1377748800000”,

                    “id”: 1

                  },

                  {

                    “val”: “application/x-indesign”,

                    “id”: 2

                  },

                  {

                    “val”: “Adobe InDesign CC (Macintosh)”,

                    “id”: 3

                  },

                  {

                    “val”: “1378094400000”,

                    “id”: 4

                  },

                  {

                    “val”: “1378094400000”,

                    “id”: 5

                  }

                ]

              }

            }

          ]

        },

        “fuid”: 16,

        “bid”: 1,

        “name”: “EditorsNote_h.indd”

      },

      {

        “pFuid”: 5,

        “rev”: {

          “nentries”: 1,

          “entries”: [

            {

              “action”: “Added”,

              “rrn”: 26,

              “len”: 2433024,

              “frn”: 1,

              “metadata”: {

                “nentries”: 5,

                “entries”: [

                  {

                    “val”: “1377748800000”,

                    “id”: 1

                  },

                  {

                    “val”: “application/x-indesign”,

                    “id”: 2

                  },

                  {

                    “val”: “Adobe InDesign CC (Macintosh)”,

                    “id”: 3

                  },

                  {

                    “val”: “1377835200000”,

                    “id”: 4

                  },

                  {

                    “val”: “1377835200000”,

                    “id”: 5

                  }

                ]

              }

            }

          ]

        },

        “fuid”: 9,

        “bid”: 1,

        “name”: “03_EditorsNote_v.indd”

      },

      {

        “pFuid”: 5,

        “rev”: {

          “nentries”: 1,

          “entries”: [

            {

              “action”: “Added”,

              “rrn”: 26,

              “len”: 3575808,

              “frn”: 1,

              “metadata”: {

                “nentries”: 5,

                “entries”: [

                  {

                    “val”: “1378958400000”,

                    “id”: 1

                  },

                  {

                    “val”: “application/x-indesign”,

                    “id”: 2

                  },

                  {

                    “val”: “Adobe InDesign CC (Macintosh)”,

                    “id”: 3

                  },

                  {

                    “val”: “1378958400000”,

                    “id”: 4

                  },

                  {

                    “val”: “1378958400000”,

                    “id”: 5

                  }

                ]

              }

            }

          ]

        },

        “fuid”: 10,

        “bid”: 1,

        “name”: “Chapter_Layout.indd”

      },

      {

        “pFuid”: 12,

        “rev”: {

          “nentries”: 1,

          “entries”: [

            {

              “action”: “Added”,

              “rrn”: 26,

              “len”: 1507328,

              “frn”: 1,

              “metadata”: {

                “nentries”: 5,

                “entries”: [

                  {

                    “val”: “1377748800000”,

                    “id”: 1

                  },

                  {

                    “val”: “application/x-indesign”,

                    “id”: 2

                  },

                  {

                    “val”: “Adobe InDesign CC (Macintosh)”,

                    “id”: 3

                  },

                  {

                    “val”: “1378094400000”,

                    “id”: 4

                  },

                  {

                    “val”: “1378094400000”,

                    “id”: 5

                  }

                ]

              }

            }

          ]

        },

        “fuid”: 13,

        “bid”: 1,

        “name”: “00_Cover_h.indd”

      },

      {

        “pFuid”: 12,

        “rev”: {

          “nentries”: 1,

          “entries”: [

            {

              “action”: “Added”,

              “rrn”: 26,

              “len”: 1507328,

              “frn”: 1,

              “metadata”: {

                “nentries”: 5,

                “entries”: [

                  {

                    “val”: “1377748800000”,

                    “id”: 1

                  },

                  {

                    “val”: “application/x-indesign”,

                    “id”: 2

                  },

                  {

                    “val”: “Adobe InDesign CC (Macintosh)”,

                    “id”: 3

                  },

                  {

                    “val”: “1378094400000”,

                    “id”: 4

                  },

                  {

                    “val”: “1378094400000”,

                    “id”: 5

                  }

                ]

              }

            }

          ]

        },

        “fuid”: 14,

        “bid”: 1,

        “name”: “00_Cover_v.indd”

      }

    ]

  },

  “changesetEntries”: {

    “nentries”: 2,

    “entries”: [

      {

        “comment”: ” “,

        “mtime”: 1380724505454,

        “author”: “ben”,

        “rrn”: 27

      },

      {

        “comment”: ” “,

        “mtime”: 1380724490286,

        “author”: “ben”,

        “rrn”: 26

      }

    ]

  },

  “metadataNameMap”: {

    “nentries”: 5,

    “entries”: [

      {

        “id”: 1,

        “name”: “FIPR_Date Created”

      },

      {

        “id”: 2,

        “name”: “FIPR_Document Format”

      },

      {

        “id”: 3,

        “name”: “FIPR_Application”

      },

      {

        “id”: 4,

        “name”: “FIPR_Metadata Date “

      },

      {

        “id”: 5,

        “name”: “FIPR_Date Modified”

      }

    ]

  },

  “numMatches”: 7,

  “dirs”: {

    “nentries”: 6,

    “entries”: [

      {

        “pFuid”: 2,

        “bid”: 1,

        “name”: “Adobe PDF”,

        “fuid”: 7

      },

      {

        “pFuid”: 0,

        “bid”: 1,

        “name”: “Demos”,

        “fuid”: 2

      },

      {

        “pFuid”: 11,

        “bid”: 1,

        “name”: “01-EditorialTemplate”,

        “fuid”: 15

      },

      {

        “pFuid”: 5,

        “bid”: 1,

        “name”: “DPS-iPad”,

        “fuid”: 11

      },

      {

        “pFuid”: 2,

        “bid”: 1,

        “name”: “InDesign Demo”,

        “fuid”: 5

      },

      {

        “pFuid”: 11,

        “bid”: 1,

        “name”: “00-Cover”,

        “fuid”: 12

      }

    ]

  },

  “success”: true

}

Search for all specific file-types in Specific Project

Description:
Finds all PDF and InDesign files in the project “Adobe PDF”.

Request URL:
http://zm.server:8443/command?zm_username=joe&zm_password=joe&data={clientVersion:”ZoomClient/4.1-b5835″,cmd:”find”,fileName:”*.((pdf)|(indd))”,searchPaths:{nentries:1,entries:[{project:”Adobe%20PDF”}]}}

Sample JSON Request:

data:

{

clientVersion: “ZoomClient/4.1-b5835”,

cmd: “find”,

fileName: “*.((pdf)|(indd))”,

searchPaths:

{

                              nentries: 1,

entries: [

{

project: “Adobe PDF”

}

]

                }

}

Sample JSON Response:

{

“branchMap”: {

“nentries”: 1,

“entries”: [

{

“id”: 1,

“name”: “head”

}

]

},

“files”: {

“nentries”: 2,

“entries”: [

{

“pFuid”: 7,

“rev”: {

“nentries”: 1,

“entries”: [

{

“action”: “Added”,

“rrn”: 27,

“len”: 50143,

“frn”: 1,

“metadata”: {

“nentries”: 7,

“entries”: [

{

“val”: “7.25”,

“id”: 8

},

{

“val”: “72.0”,

“id”: 9

},

{

“val”: “522”,

“id”: 10

},

{

“val”: “72.0”,

“id”: 11

},

{

“val”: “9.25”,

“id”: 12

},

{

“val”: “8-bit”,

“id”: 13

},

{

“val”: “666”,

“id”: 14

}

]

}

}

]

},

“fuid”: 25,

“bid”: 1,

“name”: “What is Electricity.pdf”

},

{

“pFuid”: 7,

“rev”: {

“nentries”: 1,

“entries”: [

{

“action”: “Added”,

“rrn”: 27,

“len”: 2899968,

“frn”: 1,

“metadata”: {

“nentries”: 5,

“entries”: [

{

“val”: “1378958400000”,

“id”: 1

},

{

“val”: “application/x-indesign”,

“id”: 2

},

{

“val”: “Adobe InDesign CC (Macintosh)”,

“id”: 3

},

{

“val”: “1379995200000”,

“id”: 4

},

{

“val”: “1379995200000”,

“id”: 5

}

]

}

}

]

},

“fuid”: 24,

“bid”: 1,

“name”: “What is Electricity.indd”

}

]

},

“changesetEntries”: {

“nentries”: 1,

“entries”: [

{

“comment”: ” “,

“mtime”: 1380724505454,

“author”: “ben”,

“rrn”: 27

}

]

},

“metadataNameMap”: {

“nentries”: 12,

“entries”: [

{

“id”: 8,

“name”: “FIPR_Print Size X”

},

{

“id”: 9,

“name”: “FIPR_Resolution Y”

},

{

“id”: 10,

“name”: “FIPR_Image Width”

},

{

“id”: 11,

“name”: “FIPR_Resolution X”

},

{

“id”: 12,

“name”: “FIPR_Print Size Y”

},

{

“id”: 13,

“name”: “FIPR_Color Depth”

},

{

“id”: 14,

“name”: “FIPR_Image Height”

},

{

“id”: 1,

“name”: “FIPR_Date Created”

},

{

“id”: 2,

“name”: “FIPR_Document Format”

},

{

“id”: 3,

“name”: “FIPR_Application”

},

{

“id”: 4,

“name”: “FIPR_Metadata Date “

},

{

“id”: 5,

“name”: “FIPR_Date Modified”

}

]

},

“numMatches”: 2,

“dirs”: {

“nentries”: 2,

“entries”: [

{

“pFuid”: 2,

“bid”: 1,

“name”: “Adobe PDF”,

“fuid”: 7

},

{

“pFuid”: 0,

“bid”: 1,

“name”: “Demos”,

“fuid”: 2

}

]

},

“success”: true

}

Search for all files within multiple projects

Description:
Search for PDF or InDesign files within specified paths in projects.

Request URL:
http://zm.server:8443/command?zm_username=joe&zm_password=joe&data={clientVersion:”ZoomClient/4.1-b5835″,cmd:”find”,fileName:”*.((pdf)|(indd))”,searchPaths:{nentries:2,entries:%20[{project:”InDesign%20Demo”,%20path:”/Demos/InDesign%20Demo/DPS-iPad/00-Cover”},{project:”InDesign%20Demo”,path:”/Demos/InDesign%20Demo/DPS-iPad/01-EditorialTemplate”}]}}

Sample JSON Request:

data:

{

clientVersion: “ZoomClient/4.1-b5835”,

cmd: “find”,

fileName: “*.((pdf)|(indd))”,

searchPaths:

{

nentries: 2,

entries:

[

{

project: “InDesign Demo”,

path:”/Demos/InDesign Demo/DPS-iPad/00-Cover”

},

{

project: “InDesign Demo”,

path:”/Demos/InDesign Demo/DPS-iPad/01-EditorialTemplate”

}

]

}

}

Sample JSON Response:

{

“branchMap”: {

“nentries”: 1,

“entries”: [

{

“id”: 1,

“name”: “head”

}

]

},

“files”: {

“nentries”: 4,

“entries”: [

{

“pFuid”: 15,

“rev”: {

“nentries”: 1,

“entries”: [

{

“action”: “Added”,

“rrn”: 26,

“len”: 2433024,

“frn”: 1,

“metadata”: {

“nentries”: 5,

“entries”: [

{

“val”: “1377748800000”,

“id”: 1

},

{

“val”: “application/x-indesign”,

“id”: 2

},

{

“val”: “Adobe InDesign CC (Macintosh)”,

“id”: 3

},

{

“val”: “1378094400000”,

“id”: 4

},

{

“val”: “1378094400000”,

“id”: 5

}

]

}

}

]

},

“fuid”: 17,

“bid”: 1,

“name”: “EditorsNote_v.indd”

},

{

“pFuid”: 15,

“rev”: {

“nentries”: 1,

“entries”: [

{

“action”: “Added”,

“rrn”: 26,

“len”: 2428928,

“frn”: 1,

“metadata”: {

“nentries”: 5,

“entries”: [

{

“val”: “1377748800000”,

“id”: 1

},

{

“val”: “application/x-indesign”,

“id”: 2

},

{

“val”: “Adobe InDesign CC (Macintosh)”,

“id”: 3

},

{

“val”: “1378094400000”,

“id”: 4

},

{

“val”: “1378094400000”,

“id”: 5

}

]

}

}

]

},

“fuid”: 16,

“bid”: 1,

“name”: “EditorsNote_h.indd”

},

{

“pFuid”: 12,

“rev”: {

“nentries”: 1,

“entries”: [

{

“action”: “Added”,

“rrn”: 26,

“len”: 1507328,

“frn”: 1,

“metadata”: {

“nentries”: 5,

“entries”: [

{

“val”: “1377748800000”,

“id”: 1

},

{

“val”: “application/x-indesign”,

“id”: 2

},

{

“val”: “Adobe InDesign CC (Macintosh)”,

“id”: 3

},

{

“val”: “1378094400000”,

“id”: 4

},

{

“val”: “1378094400000”,

“id”: 5

}

]

}

}

]

},

“fuid”: 13,

“bid”: 1,

“name”: “00_Cover_h.indd”

},

{

“pFuid”: 12,

“rev”: {

“nentries”: 1,

“entries”: [

{

“action”: “Added”,

“rrn”: 26,

“len”: 1507328,

“frn”: 1,

“metadata”: {

“nentries”: 5,

“entries”: [

{

“val”: “1377748800000”,

“id”: 1

},

{

“val”: “application/x-indesign”,

“id”: 2

},

{

“val”: “Adobe InDesign CC (Macintosh)”,

“id”: 3

},

{

“val”: “1378094400000”,

“id”: 4

},

{

“val”: “1378094400000”,

“id”: 5

}

]

}

}

]

},

“fuid”: 14,

“bid”: 1,

“name”: “00_Cover_v.indd”

}

]

},

“changesetEntries”: {

“nentries”: 1,

“entries”: [

{

“comment”: ” “,

“mtime”: 1380724490286,

“author”: “ben”,

“rrn”: 26

}

]

},

“metadataNameMap”: {

“nentries”: 5,

“entries”: [

{

“id”: 1,

“name”: “FIPR_Date Created”

},

{

“id”: 2,

“name”: “FIPR_Document Format”

},

{

“id”: 3,

“name”: “FIPR_Application”

},

{

“id”: 4,

“name”: “FIPR_Metadata Date “

},

{

“id”: 5,

“name”: “FIPR_Date Modified”

}

]

},

“numMatches”: 4,

“dirs”: {

“nentries”: 5,

“entries”: [

{

“pFuid”: 11,

“bid”: 1,

“name”: “01-EditorialTemplate”,

“fuid”: 15

},

{

“pFuid”: 5,

“bid”: 1,

“name”: “DPS-iPad”,

“fuid”: 11

},

{

“pFuid”: 2,

“bid”: 1,

“name”: “InDesign Demo”,

“fuid”: 5

},

{

“pFuid”: 0,

“bid”: 1,

“name”: “Demos”,

“fuid”: 2

},

{

“pFuid”: 11,

“bid”: 1,

“name”: “00-Cover”,

“fuid”: 12

}

]

},

“success”: true

}

Search Based on Metadata

Description:
Will return all files that have a width 1920.

Request URL:
http://zm.server:8443/command?zm_username=joe&zm_password=joe&data={clientVersion:%20″ZoomClient/4.1-b5835″,%20cmd:%20″find”,%20fileName:%20″*”,%20searchPaths:%20{%20nentries:%201,%20entries:%20[{project:%20″Media”}]%20},%20metadata:%20{%20nentries:%201,%20entries:%20[{%20name:%20″FIPR_Image%20Width”,%20value:%20″1920″%20}%20]%20}%20}

Sample JSON Request:

data:

{

clientVersion: “ZoomClient/4.1-b5835”,

cmd: “find”,

fileName: “*”,

searchPaths:

{

nentries: 1,

entries: [

{

project: “Media”

}

]

 },

metadata:

{

nentries: 1,

entries: [

{

name: “FIPR_Image Width”,

value: “1920”

}

]

}

}

Sample JSON Response:

{

“branchMap”: {

“nentries”: 1,

“entries”: [

{

“id”: 1,

“name”: “head”

}

]

},

“files”: {

“nentries”: 8,

“entries”: [

{

“pFuid”: 38,

“rev”: {

“nentries”: 1,

“entries”: [

{

“action”: “Moved”,

“rrn”: 36,

“len”: 17817235,

“frn”: 1,

“metadata”: {

“nentries”: 8,

“entries”: [

{

“val”: “26.67”,

“id”: 8

},

{

“val”: “72.0”,

“id”: 9

},

{

“val”: “1920”,

“id”: 10

},

{

“val”: “Chicago”,

“id”: 56

},

{

“val”: “72.0”,

“id”: 11

},

{

“val”: “15.0”,

“id”: 12

},

{

“val”: “8-bit”,

“id”: 13

},

{

“val”: “1080”,

“id”: 14

}

]

}

}

]

},

“fuid”: 39,

“bid”: 1,

“name”: “Boat and Water.mp4”

},

{

“pFuid”: 33,

“rev”: {

“nentries”: 1,

“entries”: [

{

“action”: “Added”,

“rrn”: 32,

“len”: 8662365,

“frn”: 1,

“metadata”: {

“nentries”: 32,

“entries”: [

{

“val”: “1345176000000”,

“id”: 1

},

{

“val”: “image/jpeg”,

“id”: 2

},

{

“val”: “1377662400000”,

“id”: 4

},

{

“val”: “1345176000000”,

“id”: 5

},

{

“val”: “72.0”,

“id”: 8

},

{

“val”: “72.0”,

“id”: 9

},

{

“val”: “5184”,

“id”: 10

},

{

“val”: “72.0”,

“id”: 11

},

{

“val”: “48.0”,

“id”: 12

},

{

“val”: “8-bit”,

“id”: 13

},

{

“val”: “3456”,

“id”: 14

},

{

“val”: “499712/65536”,

“id”: 15

},

{

“val”: “Normal Program;Auto exposure”,

“id”: 17

},

{

“val”: “Canon”,

“id”: 19

},

{

“val”: “Normal Process”,

“id”: 18

},

{

“val”: “100”,

“id”: 21

},

{

“val”: “sRGB”,

“id”: 20

},

{

“val”: “1345176000000”,

“id”: 23

},

{

“val”: “inches”,

“id”: 22

},

{

“val”: “47/1”,

“id”: 25

},

{

“val”: “Standard”,

“id”: 24

},

{

“val”: “0”,

“id”: 27

},

{

“val”: “0”,

“id”: 26

},

{

“val”: “Pattern”,

“id”: 29

},

{

“val”: “1345176000000”,

“id”: 28

},

{

“val”: “417792/65536”,

“id”: 31

},

{

“val”: “1/200”,

“id”: 30

},

{

“val”: “Canon EOS 60D”,

“id”: 32

},

{

“val”: “Outside;green;blue;sky;flowers;trees”,

“id”: 36

},

{

“val”: “A beautiful image of flowers with trees in the background. “,

“id”: 37

},

{

“val”: “Huntley Photography”,

“id”: 41

},

{

“val”: “Blue Flowers with Trees”,

“id”: 46

}

]

}

}

]

},

“fuid”: 35,

“bid”: 1,

“name”: “Blue Flowers.jpg”

},

{

“pFuid”: 33,

“rev”: {

“nentries”: 1,

“entries”: [

{

“action”: “Added”,

“rrn”: 32,

“len”: 350150,

“frn”: 1,

“metadata”: {

“nentries”: 14,

“entries”: [

{

“val”: “image/jpeg”,

“id”: 2

},

{

“val”: “1377662400000”,

“id”: 4

},

{

“val”: “flower;blue;orange;pink;technicolor;yellow”,

“id”: 36

},

{

“val”: “Technicolor flower makes you want to sing praises.”,

“id”: 37

},

{

“val”: “26.67”,

“id”: 8

},

{

“val”: “72.0”,

“id”: 9

},

{

“val”: “1920”,

“id”: 10

},

{

“val”: “Joseph Glanz”,

“id”: 41

},

{

“val”: “72.0”,

“id”: 11

},

{

“val”: “Technicolor Flower”,

“id”: 46

},

{

“val”: “15.0”,

“id”: 12

},

{

“val”: “8-bit”,

“id”: 13

},

{

“val”: “1080”,

“id”: 14

},

{

“val”: “uncalibrated”,

“id”: 20

}

]

}

}

]

},

“fuid”: 36,

“bid”: 1,

“name”: “Technicolor Flowers.jpg”

},

{

“pFuid”: 33,

“rev”: {

“nentries”: 1,

“entries”: [

{

“action”: “Added”,

“rrn”: 32,

“len”: 1682805,

“frn”: 1,

“metadata”: {

“nentries”: 40,

“entries”: [

{

“val”: “1310443200000”,

“id”: 1

},

{

“val”: “image/jpeg”,

“id”: 2

},

{

“val”: “Picasa”,

“id”: 3

},

{

“val”: “1377662400000”,

“id”: 4

},

{

“val”: “1354597200000”,

“id”: 5

},

{

“val”: “6.92”,

“id”: 8

},

{

“val”: “480.0”,

“id”: 9

},

{

“val”: “3323”,

“id”: 10

},

{

“val”: “480.0”,

“id”: 11

},

{

“val”: “5.67”,

“id”: 12

},

{

“val”: “8-bit”,

“id”: 13

},

{

“val”: “2724”,

“id”: 14

},

{

“val”: “833/100”,

“id”: 15

},

{

“val”: “Normal Program;Auto exposure”,

“id”: 17

},

{

“val”: “EASTMAN KODAK COMPANY”,

“id”: 19

},

{

“val”: “Custom Process”,

“id”: 18

},

{

“val”: “64”,

“id”: 21

},

{

“val”: “sRGB”,

“id”: 20

},

{

“val”: “1310443200000”,

“id”: 23

},

{

“val”: “inches”,

“id”: 22

},

{

“val”: “65/10”,

“id”: 25

},

{

“val”: “Standard”,

“id”: 24

},

{

“val”: “0”,

“id”: 26

},

{

“val”: “Pattern”,

“id”: 29

},

{

“val”: “1310443200000”,

“id”: 28

},

{

“val”: “326/100”,

“id”: 31

},

{

“val”: “3125/1000000”,

“id”: 30

},

{

“val”: “KODAK EASYSHARE M531 Digital Camera”,

“id”: 32

},

{

“val”: “White;red;flowers;green”,

“id”: 36

},

{

“val”: “Red and white flowers on the side of the road in summer”,

“id”: 37

},

{

“val”: “Karen Swanson”,

“id”: 41

},

{

“val”: “Red and blue flowers in summer”,

“id”: 46

},

{

“val”: “1”,

“id”: 51

},

{

“val”: “64/1”,

“id”: 50

},

{

“val”: “70/10”,

“id”: 49

},

{

“val”: “One-chip color area sensor”,

“id”: 48

},

{

“val”: “36”,

“id”: 55

},

{

“val”: “3”,

“id”: 54

},

{

“val”: “None”,

“id”: 53

},

{

“val”: “0/10”,

“id”: 52

}

]

}

}

]

},

“fuid”: 37,

“bid”: 1,

“name”: “White and Red.JPG”

},

{

“pFuid”: 38,

“rev”: {

“nentries”: 1,

“entries”: [

{

“action”: “Added”,

“rrn”: 32,

“len”: 53872640,

“frn”: 1,

“metadata”: {

“nentries”: 7,

“entries”: [

{

“val”: “26.67”,

“id”: 8

},

{

“val”: “72.0”,

“id”: 9

},

{

“val”: “1920”,

“id”: 10

},

{

“val”: “72.0”,

“id”: 11

},

{

“val”: “15.0”,

“id”: 12

},

{

“val”: “8-bit”,

“id”: 13

},

{

“val”: “1080”,

“id”: 14

}

]

}

}

]

},

“fuid”: 43,

“bid”: 1,

“name”: “Flowers.mpeg”

},

{

“pFuid”: 38,

“rev”: {

“nentries”: 1,

“entries”: [

{

“action”: “Added”,

“rrn”: 32,

“len”: 329084653,

“frn”: 1,

“metadata”: {

“nentries”: 7,

“entries”: [

{

“val”: “27.0”,

“id”: 8

},

{

“val”: “72.0”,

“id”: 9

},

{

“val”: “1944”,

“id”: 10

},

{

“val”: “72.0”,

“id”: 11

},

{

“val”: “18.0”,

“id”: 12

},

{

“val”: “8-bit”,

“id”: 13

},

{

“val”: “1296”,

“id”: 14

}

]

}

}

]

},

“fuid”: 40,

“bid”: 1,

“name”: “Clouds on Pond.mov”

},

{

“pFuid”: 38,

“rev”: {

“nentries”: 1,

“entries”: [

{

“action”: “Added”,

“rrn”: 32,

“len”: 31161418,

“frn”: 1,

“metadata”: {

“nentries”: 7,

“entries”: [

{

“val”: “26.67”,

“id”: 8

},

{

“val”: “72.0”,

“id”: 9

},

{

“val”: “1920”,

“id”: 10

},

{

“val”: “72.0”,

“id”: 11

},

{

“val”: “15.0”,

“id”: 12

},

{

“val”: “8-bit”,

“id”: 13

},

{

“val”: “1080”,

“id”: 14

}

]

}

}

]

},

“fuid”: 41,

“bid”: 1,

“name”: “Clouds.mov”

},

{

“pFuid”: 38,

“rev”: {

“nentries”: 1,

“entries”: [

{

“action”: “Added”,

“rrn”: 32,

“len”: 28612608,

“frn”: 1,

“metadata”: {

“nentries”: 7,

“entries”: [

{

“val”: “26.67”,

“id”: 8

},

{

“val”: “72.0”,

“id”: 9

},

{

“val”: “1920”,

“id”: 10

},

{

“val”: “72.0”,

“id”: 11

},

{

“val”: “15.0”,

“id”: 12

},

{

“val”: “8-bit”,

“id”: 13

},

{

“val”: “1080”,

“id”: 14

}

]

}

}

]

},

“fuid”: 45,

“bid”: 1,

“name”: “Young Egret.mpeg”

}

]

},

“changesetEntries”: {

“nentries”: 3,

“entries”: [

{

“comment”: ” “,

“mtime”: 1380724910756,

“author”: “admin”,

“rrn”: 32

},

{

“comment”: “Moved file(s)”,

“mtime”: 1380920444436,

“author”: “admin”,

“rrn”: 35

},

{

“comment”: “Moved file(s)”,

“mtime”: 1380922527522,

“author”: “admin”,

“rrn”: 36

}

]

},

“metadataNameMap”: {

“nentries”: 42,

“entries”: [

{

“id”: 8,

“name”: “FIPR_Print Size X”

},

{

“id”: 9,

“name”: “FIPR_Resolution Y”

},

{

“id”: 10,

“name”: “FIPR_Image Width”

},

{

“id”: 11,

“name”: “FIPR_Resolution X”

},

{

“id”: 12,

“name”: “FIPR_Print Size Y”

},

{

“id”: 13,

“name”: “FIPR_Color Depth”

},

{

“id”: 14,

“name”: “FIPR_Image Height”

},

{

“id”: 56,

“name”: “IPTC_City”

},

{

“id”: 1,

“name”: “FIPR_Date Created”

},

{

“id”: 2,

“name”: “FIPR_Document Format”

},

{

“id”: 4,

“name”: “FIPR_Metadata Date “

},

{

“id”: 5,

“name”: “FIPR_Date Modified”

},

{

“id”: 15,

“name”: “CAME_Shutter Speed Value”

},

{

“id”: 17,

“name”: “CAME_Exposure Mode”

},

{

“id”: 19,

“name”: “CAME_Make”

},

{

“id”: 18,

“name”: “CAME_Custom Rendered”

},

{

“id”: 21,

“name”: “CAME_ISO Speed Ratings”

},

{

“id”: 20,

“name”: “FIPR_Color Space”

},

{

“id”: 23,

“name”: “CAME_Date Time Orinigal”

},

{

“id”: 22,

“name”: “FIPR_Resolution Unit”

},

{

“id”: 25,

“name”: “CAME_Focal Length”

},

{

“id”: 24,

“name”: “CAME_Scene Capture Type”

},

{

“id”: 27,

“name”: “IPTC_Rating”

},

{

“id”: 26,

“name”: “CAME_White Balance”

},

{

“id”: 29,

“name”: “CAME_Metering Mode”

},

{

“id”: 28,

“name”: “IPTC_Date Created”

},

{

“id”: 31,

“name”: “CAME_Aperture Value”

},

{

“id”: 30,

“name”: “CAME_Exposure Time”

},

{

“id”: 32,

“name”: “CAME_Model”

},

{

“id”: 36,

“name”: “IPTC_Keywords”

},

{

“id”: 37,

“name”: “IPTC_Description”

},

{

“id”: 41,

“name”: “IPTC_Creator”

},

{

“id”: 46,

“name”: “IPTC_Title”

},

{

“id”: 3,

“name”: “FIPR_Application”

},

{

“id”: 51,

“name”: “CAME_Scene Type”

},

{

“id”: 50,

“name”: “CAME_Exposure Index”

},

{

“id”: 49,

“name”: “CAME_Brightness Value”

},

{

“id”: 48,

“name”: “CAME_Sensing Method”

},

{

“id”: 55,

“name”: “CAME_Focal Length in 35mm Film”

},

{

“id”: 54,

“name”: “CAME_File Source”

},

{

“id”: 53,

“name”: “CAME_Gain Control”

},

{

“id”: 52,

“name”: “CAME_Digital Zoom Ratio”

}

]

},

“numMatches”: 8,

“dirs”: {

“nentries”: 3,

“entries”: [

{

“pFuid”: 32,

“bid”: 1,

“name”: “Videos”,

“fuid”: 38

},

{

“pFuid”: 0,

“bid”: 1,

“name”: “Media”,

“fuid”: 32

},

{

“pFuid”: 32,

“bid”: 1,

“name”: “Images”,

“fuid”: 33

}

]

},

“success”: true

}

This section covers the API invocations related to previews and thumbnails in Zoom.

All JSON responses contain these standard fields:

“success” : “true|false”
“errorInfo” : “<Error msg if success is false, else this element will not be present>”
“errorCode”: A key that exists in the Zoom message catalog

Get Preview or Thumbnail

Description:
Get thumbnail or preview associated with an asset version.

Request URL:
http://192.168.1.6:8873/review/preview/assetPreview

If param “resolution” is absent or is set to 0, then the request just fetches a small thumbnail; otherwise, it fetches the preview at the specified resolution.If you specify the resolution as -1, it will return a copy of the original asset.

Sample URL with url encoded query string parameters:

http://192.168.1.6:8873/review/preview/assetPreview?bid=1&fuid=104&rrn=530&frn=2&aspectRatio=true&fqName=%2FShared-Project%2FCocaCola%2FBarbasol.jpg

Request parameters to get thumbnail:

“bid” : int

“fuid” : int

“rrn” : long

“frn” : int

fqPath:String

Using Ls command or other Zoom commands, or using the Find Web API, the above parameters can be fetched for an asset.

Response:

<Streamed thumbnail>

Request parameters to get preview:

“bid” : int

“fuid” : int

“rrn” : long

“resolution” : int // requested resolution minimum (height, width), aspect ratio automatically maintained

“aspectRatio”:”true”|”false”

“fqPath” : String

“filename”:String // base file name

Response:

<Streamed preview>

or

HTTP error code 404 if failed to create preview

or

HTTP error code 449 to retry if resources are unavailable.

Generate Default Preview

It is possible to trigger default preview generation for some assets on Preview server. For video assets only FLV file format is supported and for images only JPEG file format is supported.

The follow URL can be used to trigger the preview generation:

http://<YOUR-PREVIEW-SERVER>:8873/review/preview/assetPreview

To trigger the default preview generation for video files, following parameters has to be passed to above URL

  1. zm_server = http://<YOUR-ZOOM-SERVER>:8880
  2. zm_username = <USER NAME>
  3. zm_password = <USER PASSWORD>
  4. bid = 1
    1. Default is 1.
  5. fuid = 227 (Asset id of which preview generation needs to be triggered)
  6. rrn = 197 (Repository Revision Number aka RRN. Revision number on which asset has changed)
  7. aspectRatio = true
  8. resolution 480 (Default preview generation resolution.)
    1. This value must be same as the value specified in “Preview/Review Server Settings” in Zoom web management console.
  9. fqName = <Full path to Asset on Zoom server>
    1. /defproj/acme/video/cartoon.mp4
  10. fileType = FLV

For e.g: To trigger the preview generation for asset: “/defproj/acme/video/cartoon.mp4” with id 304 at RRN: 10, following url has to be created:

http://192.168.0.144:8873/review/preview/assetPreview?
zm_server=http://192.168.0.144:8880&
zm_username=admin&
zm_password=admin&
bid=1&
fuid=304&
rrn=10&
aspectRatio=true&
resolution=480&
fqName=/defproj/acme/video/cartoon.mp4&
fileType=FLV

Response on the above URL is the actual FLV file, streamed using HTTP protocol. Above request will block till the preview is generated. If you just want to trigger the preview generation, then set some lower value timeout, so that connection is break after triggering the call.

Launch GUI

Zoom client installation includes a client proxy service that is automatically installed on the desktop. The proxy listens on HTTP port 7770 for commands. Application plugins can invoke JSP based services on this port to access the local working copy assets as well as invoke commands to launch Zoom UI via the HTTP  proxy.

Request URL:
http://127.0.0.1:7770/webmin/jsp/process/forker.jsp

Request Query Parameters:

server:  Zoom Server host:port or server alias

branch: null // Placeholder for future

remotepath: Fully qualified path in Zoom repository

rrn: Default -1 (latest) or a long corresponding to revision number

cmdname:  Command for which to launch the UI on the desktop

block: true or false. //Block the JSP call till the launched UI exists

extraargs: Command specific arguments to pass via the UI launcher

The cmdname parameter can be one of the following:

cmdnameDescription
autocoSilently checkout the file and open it in the registered application such as Adobe Illustrator
checkoutLaunch normal checkout dialog
showlogLaunch Visual version history log
statusLaunch the Status popuop to show local & remote status
updateLaunch Update from server dialog
csetLaunch popup to view the change sets
commitLaunch the check-in dialog to commit the files in a local working copy
importLaunch the import dialog
open_locationLaunch OS file browser with the folder containing the asset opened
workflowLaunch the Workflow Task manager
asset_browserLaunch the Asset Browser
revertLaunch the Revert command to revert the changes to last checked out state
settingLaunch the Settings dialog
repobrowserLaunch the Zoom file browser
lockLaunch the lock/unlock dialog
revealLaunch the OS file browser with the asset revealed on the local working copy folder
openLaunch the application and open the asset as a read-only copy if it’s not checked out

Response:

Returns a string, “true” | “false”, to indicate if the GUI was launched successfully or not.

Metadata API

Zoom metadata can be fetched by the Zoom Find command easily. Once you have the desired metadata for an asset, you can edit it using the SetMetadata API as described below.

Request URL:

http://zm.server:8443/command

Authentication Parameters:

  • zm_username=<zoom-username>
  • zm_cookie=<zoom-auth-cookie>, or,
  • zm_password=<zoom-password>
You should specify either one of the “zm_cookie” parameter or the “zm_password” parameter. If both are specified, the password parameter takes precedence.

Request JSON Syntax: 

data=

{

clientVersion:”ZoomClient/4.1-b5835″,

cmd:setmetadata,

message:

{

newData:

[

{

key:<name of the metadata property>,

value:<value to be assigned>

},

… so on

],

delData:

[

<name of the metadata property to be deleted>,

… so on

],

assetsInfo:

[

{

fuid:<Asset ID of the asset on which the metadata modifications must be applied>,

rrn:<Repository Revision Number at which the modifications must be applied>

},

… so on

],

append: true | false // append = false will replace the existing values with the request parameters

}

}

Request Sample:

zm_username=some-user&

zm_cookie=zoom-auth-cookie-for-user&

data=

{

clientVersion:”ZoomClient/4.1-b5835″,

cmd:setmetadata,

message:

{

newData:

[

{

key:”IPTC_Keywords”,value:”grey”

}

],

delData:

[

],

assetsInfo:

[

{

fuid:187,

rrn:429

}

],

append:false

}

}

Response JSON syntax:

{

“success”:<true/false>

}

Keyword Stock API

Keywords are critical metadata and Zoom offers some special Web APIs targeted towards keywords management.

View Keyword Stock

Request URL:

http://zm.server:8443/command

Request JSON Syntax:

The “data” parameter of the request is in JSON format. It must carry, apart from the command name i.e. cmd: getkwstock, a JSON object “message”, which will be interpreted by the Zoom API engine, to retrieve the stock. This message consists of an optional component, as given below:

data=

{

clientVersion:”ZoomClient/4.1-b5835″,

cmd:getkwstock,

message:

{

mtime: <Epoch time in milliseconds from when you want to fetch the changes in the Zoom keyword database; set to 0 if you want to fetch the entire stock>

}

}

Request Sample:

zm_username=some_user&

zm_cookie=zoom-auth-cookie-for-user&

data=

{

clientVersion:”ZoomClient/4.1-b5835″,

cmd:getkwstock,

message:

{

mtime: 0

}

}

Response JSON Syntax: 

If successful, all entries that were either modified or added to the keyword stock since the specified “mtime” will be returned in the form of JSON, along with the total count of keywords available. Each keyword entry contains the following:

parentKwid: <Keyword ID of the parent under which this keyword is defined; -1 if defined at the ROOT>

kwid: <Keyword ID of the current entry>

value: <String associated with the current entry>

Response JSON Sample: 

{
“entries”:

[

{

“parentKwid”: 74,
“kwid”: 76,
“value”: “fir”

},
{

“parentKwid”: -1,
“kwid”: 59,
“value”: “brent”

},

… so on

],
“nentries”: 94,
“success”: true

}

Edit Keyword Stock

Request URL:

http://zm.server:8443/command

Request JSON Syntax: 

The “data” parameter of the request is in JSON format. It must carry, apart from the command name i.e. cmd: editkwstock, a JSON object called “message”, which will be interpreted by the Zoom API engine. This message consists of the following two components required to execute the editing of the stock.

newData:

[

{

kwid: <A negative number < -1 if you want to create a new keyword, or the keyword ID of the entry that you want to edit>

parentKwid: <The keyword ID of the parent under which this keyword is to be created / moved to; specify -1 for ROOT>,

value: <The keyword string>

}

]

delData:

[

< specify the list of comma-separated keyword IDs, of the entries that must be deleted from the stock>

]

Request Sample:

zm_username=some_user&

zm_cookie=zoom-auth-cookie-for-user&

data=

{

clientVersion:”ZoomClient/4.1-b5835″,

cmd:editkwstock,

message:

{

newData:

[

{

kwid: -100,

parentKwid: -1,

value: “Newly created sample keyword”

},

{

kwid: -101,

parentKwid: -100,

value: “Newly created child keyword”

},

],

delData:

[

40, 38, 100

]

}

}

Leave a Comment