Contact Us

If you still have questions or prefer to get help directly from an agent, please submit a request.
We’ll get back to you as soon as possible.

Please fill out the contact form below and we will reply as soon as possible.

  1. Fotoware Alto
    • Release Notes
    • End-User Manual
    • Solutions
    • Terminology
    • User Guides
    • API Changelog
  2. Fotoware Veloz
    • Fotoware Veloz releases
    • Managing users and groups
    • Configuring archives
    • Configuring workflows
    • Configuring site behavior
    • Navigating and searching to find your assets
    • Working with your assets
    • Editing asset metadata
    • Uploading files
    • Version Control in Fotoware
    • Albums - Creating and sharing collections
    • Placing assets in a Content Management System (CMS)
    • Working with the Fotoware Pro interface
    • Using the Fotoware plugins
    • Consent management
    • User guide to FotoWeb for iPad (Legacy)
    • Picture conferencing with FotoWeb Screens (Legacy)
    • What's what in Fotoware
    • GDPR
    • Activity Exports
    • Example workflows
  3. Fotostation
    • Getting started with Fotostation
    • Viewing, selecting and sorting files
    • Managing your assets with archives
    • Adding metadata to assets in Fotostation
    • Searching for assets
    • Working with your assets
    • Version Control in Fotostation
    • Automating tasks with Actions
    • Configuring metadata fields and editors
    • Configuring Fotostation
    • Configuring Fotostation for multi-user environments
    • Troubleshooting Fotostation
  4. Fotoware Flow
    • About Flow
    • Getting started
    • Flow dictionary
  5. Fotoware On-premises
    • Fotoware On-premises releases
    • Getting started
    • Index Manager
    • FotoWeb
    • Color Factory
    • Connect
    • Operations Center Guide
  6. Integrations and APIs
    • Fotoware Alto API
    • Fotoware Veloz and On-premises API
  7. Fotoware Mobile
    • User guide for Fotoware Mobile for iPhone and Android
    • User guide to FotoWeb for iPad (Legacy)
    • User guide to FotoWeb for iPhone and Android (Legacy)

Contact Us

If you still have questions or prefer to get help directly from an agent, please submit a request.
We’ll get back to you as soon as possible.

Please fill out the contact form below and we will reply as soon as possible.

Support

Table of Contents

Create filters in tagbox with filter editor Create filters in tagboxes from default values Create filters in tagboxes from code examples in Manual Create filters in tagboxes from Monaco Editor Intellisense Types of query filters And filter OR filter Not filter Nested filter for multi tagboxes Single term filter Multiple terms filter Exists filter Date range filter Number filter Prefix filter Geo Bounding box filter Geo Distance filter
  • Home
  • Fotoware Alto
  • End-User Manual
  • Find content
  • Filter
  • Query Filters

Query Filters

09. June 2026

Elaine Foley

Table of Contents

Create filters in tagbox with filter editor Create filters in tagboxes from default values Create filters in tagboxes from code examples in Manual Create filters in tagboxes from Monaco Editor Intellisense Types of query filters And filter OR filter Not filter Nested filter for multi tagboxes Single term filter Multiple terms filter Exists filter Date range filter Number filter Prefix filter Geo Bounding box filter Geo Distance filter

Query filters (Channel Filter or Filters in Fields) help restrict the values available for tagging in a tagbox, e.g., showing only products for EMEA, or the Content Items displayed in a specific Channel, e.g., only approved product marketing content. Those filters do not require user input; they have a fixed return set based on specific criteria, e.g., showing only Arrangements, only current employees, or only players from Real Madrid. Query filters are available for channels, fields (Tagbox, Relationship), and via the API (searching content, creating channels, tagbox fields, relationship fields, or lists). The advanced filter editor lets you build complex filters via drag-and-drop.

Create filters in tagbox with filter editor

Prerequisites:

  • Field “Focus Topic”
    • ID: focusTopic
    • Connected List: Controlled Vocabulary

Goal:

  • In a Tagbox "Focus Topic" we only want to show active values and concepts.

How to

  1. Create a Tagbox (multi)
  2. Name it “Focus Topic”
  3. Connect to “Controlled Vocabulary”
  4. Open Advanced Filter Editor
    • Select State Field from Controlled Vocabulary List
    • Set “State equals Active”
    • Add
  5. Save
Your browser does not support HTML5 video.

Advanced filter editor to set filter in tagbox (multi).

 
 

 

Create filters in tagboxes from default values

Prerequisites:

  • Field “Focus Theme”
    • ID: focusTheme
    • Connected List: Controlled Vocabulary
      • Field: Classification (controlledVocabulary.classification.name)
        • ID: classification
        • Connected List: Classification
          • Field: Name
          • ID: name
      • Field: State (controlledVocabulary.state.name)
        • ID: state
        • Connected List: State
          • Field: Name
          • ID: name

Goal:

  • In a Tagbox "Focus Theme" we only want to show active values and concepts.
    • We need two criteria that must both be met: AndFilter.
    • We need to check for a term in the field state: TermFilter.
    • We need to check for a term in the field classification: TermFilter.

Using Tagbox default values

Fotoware Alto provides assistance when building a query filter for a tagbox. You can assign default values and let Fotoware Alto build the filter based on them. Advanced filter editor to set a filter in the tagbox (multi). 

  1. Edit the Tagbox 
  2. Open the "Default Values" tab
  3. Assign the required values
  4. Open the "General" tab
  5. Find the "Item Filter"
  6. Press "Select from default values"

VIDEO: How to Use Default Values for Tagboxes in Layers:

Your browser does not support HTML5 video.

 

 
 

 

Create filters in tagboxes from code examples in Manual

Prerequisites:

  • Field “Focus Theme”
    • ID: focusTheme
    • Connected List: Controlled Vocabulary
      • Field: Classification (controlledVocabulary.classification.name)
        • ID: classification
        • Connected List: Classification
          • Field: Name
          • ID: name
      • Field: State (controlledVocabulary.state.name)
        • ID: state
        • Connected List: State
          • Field: Name
          • ID: name

Goal:

  • In a Tagbox "Focus Theme" we only want to show active values and concepts.
    • We need to have two criteria, which both must be met: AndFilter.
    • We need to check for a term in the field state: TermFilter.
    • We need to check for a term in the field classification: TermFilter.

Using documented query filters

  1. Find the documented Query Filters
  2. Find the required Query Filters
    • AndFilter
    • TermFilter
  3. Copy and paste the code examples as needed. Fotoware Alto will format the code when you select Save. 
  4. Update the missing field path by following the suggestions shown when you click the underlined value. 
 
 

 

Create filters in tagboxes from Monaco Editor Intellisense

Prerequisites:

  • Field “Focus Theme”
    • ID: focusTheme
    • Connected List: Controlled Vocabulary
      • Field: Classification (controlledVocabulary.classification.name)
        • ID: classification
        • Connected List: Classification
          • Field: Name
          • ID: name
      • Field: State (controlledVocabulary.state.name)
        • ID: state
        • Connected List: State
          • Field: Name
          • ID: name

Goal:

  • In a Tagbox "Focus Theme" we only want to show active values and concepts.
    • We need two criteria that must both be met: AndFilter.
    • We need to check for a term in the field state: TermFilter.
    • We need to check for a term in the field classification: TermFilter.

Using Monaco Editor Intellisense

The Monaco Editor provides some IntelliSense, or code completion. Find some explanations for the Monaco Editor in the frameworks section. Ctrl + Space is especially helpful for getting suggestions. 

  1. Edit the Tagbox 
  2. Find the "Item Filter" in the opened "General" tab
  3. Click into the empty field
  4. Press Ctrl + Space
  5. Add the empty filter object: {}
  6. Press Ctrl + Space
  7. Choose a kind to select your filter
  8. "AndFilter" is added by default
  9. Add a comma
  10. Press Ctrl + Space
  11. See the properties required for the AndFilter
  12. Repeat steps 6 - 11 until you have your Query Filter.
 
 

 


Types of query filters

Check all solutions for query filters here.

And filter

Show Content with Layer Corporate and Event, but only images.

{
   "kind": "AndFilter",
   "filters": [
       {
           "kind": "TermFilter",
           "field": "layerSchemaIds",
           "term": "CorporateLayer"
       },
       {
           "kind": "TermFilter",
           "field": "layerSchemaIds",
           "term": "EventLayer"
       },
       {
           "kind": "TermFilter",
           "field": "contentSchemaIds",
           "term": "ImageMetadata"
       }
   ]
}

Basic filter

All the provided criteria must be met.

{ 
   "kind": "AndFilter", 
        "filters": [ 
           { filter1 }, 
           { filter2 } 
        ] 
}

Properties

kind string, required
filters one or multiple, Array of objects, Nullable

Items with layer product details AND layer product marketing

// Complete example
{
   "kind": "AndFilter",
   "filter": [{
       "kind": "TermFilter",
       "field": "layerSchemaIds",
       "term": "ProductDetails" // ID of Layer, capitalized
       },
        {
        "kind": "TermFilter",
       "field": "layerSchemaIds",
       "term": "ProductMarketing" // ID of Layer, capitalized
        }
    ]
}
 
 

OR filter

Show Corporate or Event Content in a Channel.

{
   "kind": "OrFilter",
   "filters": [
       {
           "kind": "TermFilter",
           "field": "layerSchemaIds",
           "term": "CorporateLayer"
       },
       {
           "kind": "TermFilter",
           "field": "layerSchemaIds",
           "term": "EventLayer"
       }
   ]
}

Basic filter

One or more of the provided criteria must be met.

{ 
   "kind": "OrFilter", 
    "filters": [ 
        { filter1 }, 
        { filter2 } 
    ] 
}

Properties

kind string, required
Filters

One or multiple

Array of objects, Nullable

Items with layer product details OR layer product marketing

// Complete example
{
   "kind": "OrFilter",
   "filter": [{
       "kind": "TermFilter",
       "field": "layerSchemaIds",
       "term": "ProductDetails" // ID of Layer, capitalized
       },
        {
        "kind": "TermFilter",
       "field": "layerSchemaIds",
       "term": "ProductMarketing" // ID of Layer, capitalized
        }
    ]
}
 

Not filter

Hide Stock content; Not the content with Layer Stock Info applied.

// Complete example
{
   "kind": "NotFilter",
   "filter": {
       "kind": "TermFilter",
       "field": "layerSchemaIds",
       "term": "StockInfo"  //Layer_ID capitalized
   }
}

Basic filter

Not the provided criteria.

{
   "kind": "NotFilter",
   "filter": { filter1 }
}

Properties

kind string, required
Filter

only one

object, required (one filter)

Not the items with layer corporate information

// Complete example
{
   "kind": "NotFilter",
   "filter": {
        "kind": "TermFilter",
        "field": "layerSchemaIds",
        "term": "CorporateInformation"  //ID_OF_LAYER capitalized
    }
}
 

Nested filter for multi tagboxes

Also for multi-relationship fields and multi-fieldset fields.

Layer Corporate assigned, but no events tagged in the Corporate Layer.

{
    "kind": "AndFilter",
    "filters": [
        {
            "kind": "TermFilter",
            "field": "layerSchemaIds",
            "term": "CorporateLayer"
        },
        {
            "kind": "NestedFilter",
            "path": "corporateLayer.events",
            "filter": {
                "kind":"NotFilter",
                "filter": {
                    "kind": "ExistsFilter",
                    "field": "corporateLayer.events._refId"
                }
            }
        }
    ]
}

Basic filter

Filter on criteria from nested documents (multi tagboxes, multi relations, multi fieldsets, not translations), e.g., product numbers from a list that is assigned via a product information tagbox.

{ 
    "kind": "NestedFilter", 
    "path": "fieldpath", 
    "filter": 
        { filter1 } 
}

Properties

kind string, required, e.g., “NestedFilter”
path The path pointing to the nested document (i.e., personLayer.nestedAddress). The whole collection of tags (my array). 
filter (single) The filter to be applied for nested documents, basically, which value you want to get from the array of nested values. 


Layer assigned and events tagged in layer

// LAYER CORPORATE ASSIGNED AND EVENTS TAGGED IN LAYER
{
    "kind": "AndFilter",
    "filters": [
        {
            "kind": "TermFilter",
            "field": "layerSchemaIds",
            "term": "CorporateLayer"
        },
        {
            "kind": "NestedFilter",
            "path": "corporateLayer.events",
            "filter": {
                "kind": "ExistsFilter",
                "field": "corporateLayer.events._refId"
            }
        }
    ]
}
 

Single term filter

Filter for Content with the Migration Layer added and the term “Product” as keyword assigned.

{
   "kind": "AndFilter",
   "filters": [
     {
       "kind": "TermFilter",
       "field": "layerSchemaIds",
       "term": "MigrationLayer" //Layer ID capitalized
     },
     { 
        "kind": "NestedFilter", 
        "path": "migrationLayer.keywords", 
        "filter": {
         "kind": "TermFilter",
         "field": "migrationLayer.keywords.name",
         "term": "Product"
         } 
     }
   ]
}

Basic filter

Filter for content that has the exact term in a field. It can be used for a single tag box directly. For a multi-tagbox, a nested filter must be used in combination with the term filter.

The term must be an exact match.

{ 
    "kind": "TermFilter", 
    "field": "fieldpath", 
    "term": "Europe" 
}

Properties

kind

Required

Which filter to use, as a string, e.g., field name to  "TermFilter"

field

Required

The field name to filter on. It is composed of the field IDs of the hierarchy joined with "." (i.e., personLayer.address.region).the

term

Required

The value in the field, to be used as term. It must be an exact match, so the term filter on "Europe" does not find "Western Europe", but only "Europe".

 

Multiple terms filter

Items with all Layers assigned.

{ 
    "kind": "TermsFilter", 
    "field": "layerSchemaIds", 
    "terms": [ 
        "CorporateLayer", 
        "MediaLayer", 
        "GeneralLayer"
    ]
}

Exclude Images, Videos, Virtual Press Kits.

{
 "kind": "NotFilter",
 "filter": { 
    "kind": "TermsFilter", 
    "field": "contentSchemaId", 
    "terms": [ 
        "PressKit", 
        "ImageMetadata", 
        "VideoMetadata"
    ]
 }
}

Basic filter

Filter for content that has the exact term in a field. It can be used for a single tagbox directly. For multi-tagbox, fieldset, and relation use the Terms filter inside the Nested Filter.

Each term must be an exact match.

{ 
    "kind": "TermsFilter", 
    "field": "layerId.fieldId", 
    "terms": [ 
        "Germany", 
        "Austria", 
        "Switzerland"
    ]
}

Properties

kind

Required

Which filter to use, as a string, e.g., Required array: Array of terms that must be as values in the field, to be used as terms.It is composed of the field IDs of the hierarchy joined with "." (i.e., personLayer.address.region). "TermsFilter"

field

Required

The field name to filter on. It is composed of the field IDs of the hierarchy joined with "." (i.e., personLayer.address.region).

terms Required array: Array of terms that must be as values in the field, to be used as terms. It must be an exact match. The term "Europe" does not include "Western Europe"; it refers only to "Europe".

All Items with inappropriate keywords (Content Moderation)

{ 
    "kind": "NestedFilter", 
    "path": "autoTagging.matches", 
    "filter": { 
        "kind": "TermsFilter", 
        "field": "autoTagging.matches.name.en", 
        "terms": [ 
            "Alcohol", 
            "Drugs", 
            "Tobacco"
        ]
   } 
}
 

Exists filter

Content Items where in the Layer Corporate Events are tagged (_refId exists).

{
 "kind": "NestedFilter",
 "path": "corporateLayer.events",
 "filter": {
   "kind": "ExistsFilter",
   "field": "corporateLayer.events._refId"
  }
}

Basic filter

Show all content where a specific field exists in the metadata profile or content profile.

{ 
 "kind": "ExistsFilter", 
 "field": "corporateInformation.copyright" 
}

Properties

kind Discriminator, string, required
field

The field name to execute the filter on. It is composed of the field IDs of the hierarchy joined with "." (i.e., personLayer.address.street).to

"layerId.fieldId"

Examples

Show content with the copyright field available, therefore the admin knows which images have copyright information and which content needs to be checked for correct copyright information.

 

Date range filter 

Show content modified in December 2020.

// USING EXACT DATES
{
    "kind": "DateRangeFilter",
    "field": "audit.modificationDate",
    "range": { 
        "names": { 
            "fieldId.en":"Dec 2020",
            "fieldId.de":"Dez 2020"
        },
        "from": "2020-12-01T00:00:00.000",
        "to": "2020-12-31T00:00:00.000",
    }
}

Show content with a publish date in the last 30 days.

// USING DAY CALCULATIONS
{
    "kind": "DateRangeFilter",
    "field": "corporateInformation.publishDate",
    "range": { 
        "names": { 
            "fieldId.en":"Last 30 days"
            "fieldId.de":"Letzte 30 Tage"
        },
        "from": "now-30D",
        "to": "now"
    }
// USING COMBINATIONS
{
    "kind": "DateRangeFilter",
    "field": "corporateInformation.embargoDate",
    "range": { 
        "names": { 
            "fieldId.en":"Last 30 days"
            "fieldId.de":"Letzte 30 Tage"
        },
        "from": "now-30D",
        "to": "now"
    },
    { 
        "names": { 
            "fieldId.en":"Last fiscal year"
            "fieldId.de":"Last fiscal year"
        },
        "from": "2019-03-31T01:02:02.000",
        "to": "2020-03-31T01:02:02.000"
    }
}

Fotoware Alto supports

  • Y (years), M (months), D (days), H (hours), m (minutes)
  • Calculations starting with now, e.g., now+30D, now-30D
  • Anchor dates and rounding are not supported (e.g., Jun 5th + 30d; now/M for the current month)
 

Basic filter

Only content with a date/date-time value in the specified range.

Date Format: YYYY-MM-DDTHH:MM:SS:MMM

  • Year-Month-DayTHour-Minute-Second-Millisecond
{
    "kind": "DateRangeFilter",
    "field": "fieldpath",
    "range": { 
        "names": { 
            "fieldId.en":"english text shown to the user",
            "fieldId.de":"german text shown to the user"
        },
        "from": "YYYY-MM-DDTHH:MM:SS:MMM",
        "to": "YYYY-MM-DDTHH:MM:SS:MMM",
    }
}

Properties

kind Discriminator, string, required
field The field name to filter on. It is composed of the field IDs of the hierarchy joined with "." (i.e., personLayer.address.street), check DateTime field values
range If no range is provided, the filter will throw a “query execution failure” error and display it as empty. 
names The translations of the ranges are nullable, language-specific range names
from date-time string or a pattern: now(+-)(int)(YMDHm).
to date-time string or a pattern: now(+-)(int)(YMDHm).

 

Number filter

Only Items between 150 and 300 width

{
    "kind": "NumericRangeFilter",
    "field": "fileMetadata.width",
    "range": { 
        "names": { 
            "fieldId.en":"low res",
            "fieldId.de":"low res"
        },
    "from": "150",
    "to": "300"
    }
}

Basic filter

Filter content that has a numeric field value in the configured range.

{
    "kind": "NumericRangeFilter",
    "field": "layerId.fieldId",
    "range": { 
        "names": { 
            "fieldId.en":"low res",
            "fieldId.de":"low res"
        },
    "from": "0",
    "to": "150"
    }
}

Properties

kind Discriminator, string, required
field The field's name to execute the filter. It is composed of the field IDs of the hierarchy joined with "." (i.e., personLayer.address.street), check the DateTime field.
range

The range for the value of the numeric field.

If no range is provided, the filter in facets shows an error "query execution failure". At least one range is required.

names The translations of the ranges. The values are nullable (can be empty) if provided. If no range is provided, the filter in facets shows an error "query execution failure." contain language-specific range names
from A whole or decimal number.
to A whole or decimal number.
 
 

Prefix filter

Show only technical documentation for admins, which is based on an existing file naming convention that starts with “ADMIN”. We have to use the Nested Filter as the Media Type is a multi-tagbox.

{ 
    "kind": "NestedFilter", 
    "path": "productDocumentation.mediaType", 
    "filter": {
        "kind": "PrefixFilter",
        "field": "productDocumentation.mediaType.code", 
        "prefix": "ADMIN"
    }
}

Basic filter

Filter for content that has the defined prefix as the value in a defined field. This works best for fields that have a fixed prefix, e.g., if you work with codes INT for internal, or SOCIAL for social media content.

{ 
    "kind": "PrefixFilter", 
    "field": "fieldpath", 
    "prefix": "Anniversary" 
}

Show content with the prefix "anniversary" in the event name field to only show anniversary events.

Properties

kind

Required

Which filter to use, as a string, e.g., field name to  "PrefixFilter"

field

Required

The field name to filter on. It is composed of the field IDs of the hierarchy joined with "." (i.e., personLayer.address.street).

prefix Required: The value in the field is to be used as a prefix. a It is composed of the field IDs of the hierarchy joined with "." (i.e., personLayer.address.street).

Product codes starting with FRU

Best suited for products following a strict naming convention. As you can add a prefix to your Camera for file naming, you can also prepare the content with the correct "prefix" before uploading to Fotoware Alto. See a Nikon tutorial on file naming. 

{ 
    "kind": "PrefixFilter", 
    "field": "productLayer.products.code", 
    "prefix": "FRU" 
}
 

Geo Bounding box filter

Show only content created in Aarau.

{ 
    "kind": "GeoBoundingBoxFilter", 
    "field": "fieldpath", 
    "topLeft": { 
        "lat": 47.4117082, 
        "lon": 8.0569206, 
    }, 
    "bottomRight": { 
        "lat": 47.3854459, 
        "lon": 9.0569206, 
    } 
} 

Behavior

Creates a rectangle of geo points using TopLeft (1) and BottomRight (2) points and filters for the content whose Geo Point values are inside this rectangle.

Properties

kind

Required

Which filter to use, as a It is composed of the field IDs of the hierarchy joined with "." (i.e., personLayer.address.region). It is composed of the field IDs of the hierarchy joined with "." (i.e., personLayer.address.region). whoseRequired: The value in the field is to be used as a prefix.string e.g. "GeoBoundingBoxFilter"

field

Required

The field name to filter on. It is composed of the field IDs of the hierarchy joined with "." (i.e., personLayer.address.region).

topLeft The top left corner of the bounding box's geolocation (latitude and longitude).
lat Latitude value (decimal value)
lon Longitude (decimal value)
bottomRight The bottom right corner of the bounding box's geolocation (latitude and longitude).
lat Latitude value (decimal value)
lon Longitude (decimal value)
 

Geo Distance filter 

Show all Fotoware partners within a 50km radius of Berlin. This way, your salespeople can get an easy overview of partners to visit or to invite to a specific partner event.

{ 
    "kind": "GeoDistanceFilter", 
    "field": "layerId.fieldId", 
    "location": { 
        "lat": 52.5200, 
        "lon": 13.4050, 
    }, 
    "distance": 50000 // DISTANCE IN METERS
}

Basic filter

Geo values at position, e.g., all images from Aarau and 100m distance (radius).

{ 
    "kind": "GeoDistanceFilter", 
    "field": "layerId.fieldId", 
    "location": { 
        "lat": 47.4117082, 
        "lon": 8.0569206, 
    }, 
    "distance": 100 
}

Properties

kind

Required

Which filter to use, as a string,top-left corner of the bounding box's geographic, e.g., "GeoDistanceFilter"

field

Required

The field name to filter on. It is composed of the field IDs of the hierarchy joined with "." (i.e., personLayer.address.region).

location The top-left corner of the bounding box's geographic location (latitude and longitude).
Lat Latitude value (decimal value)
Lon Longitude (decimal value)
distance The distance in meters from the point of origin (location).

Show only customers in my region

Show all customers 200km from my location, so I know which ones to include in my marketing campaigns.

{ 
    "kind": "GeoDistanceFilter", 
    "field": "keyAccountCustomers.headquarter.location", 
    "location": { 
        "lat": 40.7128, 
        "lon": 74.0060, 
    }, 
    "distance": 200000
}
 
search filters database filters

Was this article helpful?

Yes
No
Give feedback about this article

Related Articles

  • Search: Check if Field Product Description Exists
  • Search: Find Items by Product Codes
  • Search: Find Items providing list of Product Codes
eco-lighthouse-miljøfyrtårn

Company

  • About us
  • Resellers
  • Careers
  • Contact us

Help & support

  • Support center
  • Consultancy
  • Tech partners
  • Fotostation
  • System status

Trust Center

  • Legal
  • Security
  • Sustainability & ESG

Locations

Fotoware AS (HQ)
Tollbugata 35
0157 OSLO
Norway
Fotoware Switzerland AG
Brown Boveri Str.7
5400 Baden
Switzerland

Copyright 2026 Fotoware All rights reserved.

  • Terms of service
  • Privacy policy
  • Cookie policy

Knowledge Base Software powered by Helpjuice

Expand