Searching by Metadata

Many MediaSilo users enrich their media with metadata. You can use this metadata to quickly find the files you need.

Searching for a specific key and value

The most common use case is to search for files that contain a specific metadata key and value. For example, let's find any files with a location of "Catalina."

curl --request GET \
  --url https://api.shift.io/v3/assets?_query={"and": [{"metadata.key": {"eq": "location"}}, {"metadata.value": {"eq": "Catalina"}}]} \
  --header 'accept: application/json' \
  --header 'x-key: YOUR_API_KEY' \
  --header 'x-secret: YOUR_API_SECRET'

Searching for a combination of metadata

In some cases, you need to search for assets with a combination of metadata key values because one pair is not sufficient. Let's find all files with a location of Catalina that were also directed by "Michael Chapel."

curl --request GET \
  --url https://api.shift.io/v3/assets?_query={"and": [{"and": [{"metadata.key": {"eq": "location"}}, {"metadata.value": {"eq": "Catalina"}}]}, {"and": [{"metadata.key": {"eq": "director"}}, {"metadata.value": {"eq": "Michael Chapel"}}]}]} \
  --header 'accept: application/json' \
  --header 'x-key: YOUR_API_KEY' \
  --header 'x-secret: YOUR_API_SECRET'

This query is a bit larger. You can view it pretty-printed here:

{
	"and": [{
		"and": [{
			"metadata.key": {
				"eq": "location"
			}
		}, {
			"metadata.value": {
				"eq": "Catalina"
			}
		}]
	}, {
		"and": [{
			"metadata.key": {
				"eq": "director"
			}
		}, {
			"metadata.value": {
				"eq": "Michael Chapel"
			}
		}]
	}]
}