- Previous: Comments API
- Up: Overview
- Next: Embedded UI API
Metadata API
The Metadata API allows you to define custom metadata fields and then use those fields to set values on files, file versions, and folders. Metadata fields (keys) are grouped together in namespaces.
Namespaces can be either private, protected, or public. Private namespaces are only visible to the application that created them (i.e. only when accessing with the same Public API key). Protected namespaces are visible to any applicaiton and the Web UI, but can only be modified/deleted by the application that created them. Public namespaces are visible to any application and are also visible within the Web UI. They can also be modified/deleted by any applicaiton or via the Web UI
Common HTTP Headers
Header | Description | Value |
---|---|---|
Content-Type | Specifies the format of the request body | application/json |
Authorization | Requires the OAuth token you obtained through the OAuth flow | Bearer {OAuth token} |
Error | Description |
---|---|
200 | Successful operation |
403 | User is not authorized |
404 | Item not found |
Get All Namespaces
This endpoint is used to list all custom metadata namespaces in the domain.
Create Namespace
This endpoint is used to create a namespace of custom metadata fields for a domain.
Request Parameters
Parameter | Description | Required | Possible Values |
---|---|---|---|
name | What you call the namespace | Yes | string |
displayName | The name to identify the namespace in the UI | No | string |
scope | Who can see and modify the namespace | Yes | public, protected, private |
keys | The custom metadata key(s) you are creating | Yes | JSON object (see create metadata key endpoint for fields) |
type | Specifies the data type for a key. | Yes | integer, string, decimal, date (Unix epoch time), enum |
priority | Specifies the priority (order) for the keys. The keys will be displayed in accordance with their priorities in descending order (keys with higher priority will be displayed first). Note: if priorities of two (or more) keys are the same, the keys will be displayed one after another in an arbitrary order. |
No | integer value 0, 1, 2, 3, ... |
data | For a key of enum type, specifies the enumerated values. | Only required for enum | E.g. ["red", "green", "blue"] |
helpText | Instructional text that is displayed when a user is adding/editing a property to give context as to the property's purpose | No | string |
Sample Request Body
{ "name": "namespace1", "scope": "public", "displayName": "my first namespace", "keys": { "int-key": { "type": "integer", "priority": 5, "displayName": "my key" }, "decimal-key": { "type": "decimal", "priority": 3 }, "string-key": { "type": "string", "priority": 2 }, "enum-key": { "type": "enum", "data": ["val1", "val2"] }, "date-key": { "type": "date" } } }
Update Namespace Attributes
This endpoint is used to update the name of a custom metadata for a domain.
Request Parameters
Parameter | Description | Required | Possible Values |
---|---|---|---|
displayName | The name to identify the namespace in the UI | No | string |
priorities | Specifies priorities (the order) for the keys. The keys will be displayed in accordance with their priorities in descending order (keys with higher priority will be displayed first). Note: if priorities of two (or more) keys are the same, the keys will be displayed one after another in an arbitrary order. |
No | Keys and their priorities - integer numbers 0,1,2, ... |
Sample Request Body
{ "displayName": "a namespace with a new name", "priorities": { "first_name": 5, "last_name": 3, "role": 1} }
Update Namespace Keys
This endpoint is used to update the key definitions of a namespace of custom metadata fields for a domain.
Request Parameters
Parameter | Description | Required | Possible Values |
---|---|---|---|
displayName | Specifies the name displayed for the key | No | string |
type | Specifies the data type for a key. Can only allow a change to a broader type:
|
No | integer, string, decimal, date, enum |
priority | Specifies the priority (order) for the key. In general, keys will be displayed in accordance with their priorities in descending order (keys with higher priority will be displayed first). Note: if priorities of two (or more) keys are the same, the keys will be displayed one after another in an arbitrary order. |
No | integer value 0, 1, 2, 3, ... |
data | For a key of enum type, specifies the enumerated values. Only new values are allowed | Only required for enum | E.g. ["red", "green", "blue"] |
helpText | Instructional text that is displayed when a user is adding/editing a property to give context as to the property's purpose | No | string |
Sample Request Body
{ "displayName": "My new display name", "helpText": "Use this key", "data": ["red", "green", "blue", "new color"], "priority": 21, "type": "enum" }
Get Namespace
This endpoint is used to list all custom metadata keys that have been created in a given namespace.
Delete Namespace
This endpoint is used to delete a specified namespace.
When the namespace is in use, 403 HTTP error ("Cannot delete a namespace because it is used") will be returned. To delete the namespace anyway, it is necessary to set "X-Egnyte-Force-Delete" HTTP header value to Yes.
Create Metadata Key
This endpoint is used to add a metadata key to an existing namespace.
Request Parameters
Parameter | Description | Required | Possible Values |
---|---|---|---|
key | The name of the key you are creating | Yes | string |
type | Specifies the data type for a key. | Yes | integer, string, decimal, date, enum |
displayName | The name to identify the field in the UI. | No | string |
priority | Specifies priority for the key (keys with the higher priority will be displayed first. | No | 0,1,2,... |
helpText | A tooltip description for the metadata field. | No | string |
data | For a key of enum type, specifies the enumerated values. | Only required for enum | E.g. ["red", "green", "blue"] |
Sample Request Body
{ "key": "new-enum-key", "type": "enum", "data": ["red", "green", "blue"], "displayName": "My new key for values", "priority": 7, "helpText": "Use this key to tag files with these values" }
Delete Metadata Key
This endpoint is used to delete a metadata key from an existing namespace.
When the key is in use, 403 HTTP error ("Cannot delete a key because it is used") will be returned. To delete the key anyway, it is necessary to set "X-Egnyte-Force-Delete" HTTP header value to Yes.
Set Values for a Namespace
This endpoint is used to set a metadata values for a given namespace for a file, file version, or folder. This endpoint allows multiple key/value pairs to be set at once. If the key already has a value, the old value will be overwritten by the new value. If the value for a key is set to null, the existing value will be removed. For more information on interacting with files, specific file versions, or folders, please refer to the File System API documentation.
To set a metadata value for a file, use the group ID of the file. To set a metadata value for a specific file version, use the entry ID of the file version. To set a metadata value for a folder, use the folder ID.
Sample Request Body
{ "string-key": "abc", "int-key": "10", "date-key": "1465413843995" }
Get Values for a Namespace
This endpoint is used to get the metadata values for a given namespace for a file, file version, or folder. For more information on interacting with files, specific file versions, or folders, please refer to the File System API documentation.
Sample Respose Body
{ "results": [ { "workspace": { "string-key": "abc", "int-key": 10 } } ] }
Search Metadata
This endpoint is used to find items that have a specific metadata field or to find items that have a field that contains a specific value.
Request Parameters
Parameter | Description | Required | Possible Values |
---|---|---|---|
type | Which item types should be searched | No | ALL, FOLDER, FILE |
has_key | Allows for finding items that have a specific key. If multiple objects are included in the array, any item matching one or more of the conditions will be returned. | No | An array of objects with keys "namespace" and "key", e.g. [{"namespace": "namespace1", key: "string-key"}] |
key_with_value | Allows for finding items that contain a specific string within a metadata value for a specified field. Note that this is not an exact match, but rather looks for any string that contains the search term. If multiple objects are included in the array, any item matching one or more of the conditions will be returned. | No | An array of objects with keys "namespace", "key", and "value", e.g. [{"namespace": "namespace1", key: "string-key", "value": "abc"}] |
Sample Request Body
{ "type": "ALL", "key_with_value": [ { "namespace": "namespace1", "key": "string-key", "value": "abc" } ] }
- Previous: Comments API
- Up: Overview
- Next: Embedded UI API
Docs Navigation
- Overview
- Getting Started
- Authentication
- File System API
- Permissions API
- Events API
- Search API
- Links API
- Workflow API
- User Management API
- Group Management API
- Audit Reporting API v2
- Trash API
- Comments API
- Metadata API
- Embedded UI API
- Bookmarks API
- User Insights API
- Folder Options API
- Project Folder API
- UI Integration Framework
- Controlled Document Management API
- Best Practices
- Mobile Development
- Other Applications
- Webhooks
- Secure and Govern API
- Audit Reporting API V1
- MSP API