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:
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:
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:
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:
Sample Response JSON:
[
},
{
},
},
{
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:
Name | Description |
allMatchedRevisions | Boolean flag. Set to “true” to send all matching revisions of an asset. |
limit | Integer representing the limit on number of returned results (total revisions of files + dirs) |
fileName | Asset name e.g. “*.jpg”. The name need not be the current name and would be matched throughout the history. |
rrnCriteria | Changeset criteria such as author, comment, time, and rrn (Repository Revision Number) |
metadata | Asset metadata in the form of metadata name and its value to be searched for. |
searchPaths | Narrow 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))"
}
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:
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:
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:
To trigger the default preview generation for video files, following parameters has to be passed to above URL
zm_server = http://<YOUR-ZOOM-SERVER>:8880
zm_username = <USER NAME>
zm_password = <USER PASSWORD>
bid = 1
Default is 1.
fuid = 227 (Asset id of which preview generation needs to be triggered)
rrn = 197 (Repository Revision Number aka RRN. Revision number on which asset has changed)
aspectRatio = true
resolution = 480 (Default preview generation resolution.)
- This value must be same as the value specified in “Preview/Review Server Settings” in Zoom web management console.
fqName = <Full path to Asset on Zoom server>
- /defproj/acme/video/cartoon.mp4
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:
cmdname | Description |
autoco | Silently checkout the file and open it in the registered application such as Adobe Illustrator |
checkout | Launch normal checkout dialog |
showlog | Launch Visual version history log |
status | Launch the Status popuop to show local & remote status |
update | Launch Update from server dialog |
cset | Launch popup to view the change sets |
commit | Launch the check-in dialog to commit the files in a local working copy |
import | Launch the import dialog |
open_location | Launch OS file browser with the folder containing the asset opened |
workflow | Launch the Workflow Task manager |
asset_browser | Launch the Asset Browser |
revert | Launch the Revert command to revert the changes to last checked out state |
setting | Launch the Settings dialog |
repobrowser | Launch the Zoom file browser |
lock | Launch the lock/unlock dialog |
reveal | Launch the OS file browser with the asset revealed on the local working copy folder |
open | Launch 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:
Authentication Parameters:
- zm_username=<zoom-username>
- zm_cookie=<zoom-auth-cookie>, or,
- zm_password=<zoom-password>
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:
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:
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
]
}
}