Faceted Search Data API
- Last UpdatedSep 15, 2025
- 8 minute read
The AIM Dashboard/API allows advanced search using additional criteria and projections specified by you to query data from the AIM database. However, with data now available in faceted search, similar features, subject to certain limitations, can now be directly accessed through faceted search data API. This approach eliminates dependencies on the AIM API and offer faster search performance compared to AIM.
Queries
The following data can be queries using faceted search with criteria:
-
Facility Objects (Tags)
-
Attributes
-
Relationships (only associations using FULLID are supported; associations by classID and nested/multi-level associations are not supported)
-
-
Documents
-
Attributes
-
-
Equipment Objects
-
Attributes
-
Relationships (only associations using FULLID are supported; associations by classId and nested/multi-level associations are not supported)
-
The access to above information is made available using APIs, the detailed information on usage is furnished in the subsequent sections in this topic.
Criteria
Defines the primary filters to narrow down the search.
|
Field |
Type |
Description |
|---|---|---|
|
id |
string |
The FULLID of the tag. Supports wildcards (e.g., "*"). |
|
classId |
string |
Class ID of the entity to search. Supports wildcards. |
|
attributes |
array of objects |
List of attribute-based filters. |
|
association |
array of objects |
List of association-based filters. |
Attribute Filter Object
|
Field |
Type |
Description |
|---|---|---|
|
id |
string |
Attribute identifier (only ClassID supported, e.g., "@AT01016"). |
|
operator |
string |
Supported: "like", "equals", "not equals", "gt", "lt", "gte", "lte", "in between", "not between". |
|
uom |
String |
Unit of measure (Eg: km,mm,barg, etc) Applicable in case of properties. |
|
value |
string |
Value to filter. Supports wildcards. |
|
minValue |
string |
Applicable only for In Between/Not Between operators |
|
maxValue |
string |
Applicable only for In Between/Not Between operators |
Association Filter Object
|
Field |
Type |
Description |
|---|---|---|
|
type |
string |
Association type (e.g., "has project"). |
|
id |
string |
Associated entity FULLID (e.g., "EIS_PSP00"). |
|
operator |
string |
Supported: "equals", "not equals". |
Projections
Specifies the output fields to include in the search response.
|
Field |
Type |
Description |
|---|---|---|
|
fields |
array of objects |
List of fields to project. |
|
attributeId |
string |
Attribute ID to include (e.g., "@AT01016"). |
|
label |
string |
Human-readable label for the field (e.g., "Finish Date"). |
psize (Page Size)
|
Field |
Type |
Description |
|---|---|---|
|
psize |
string or int |
Number of results per page. Max limit: 500. Example: "100" |
resultsContinuationKey (Fetch Next Results After This fullId)
|
Field |
Type |
Description |
|---|---|---|
|
resultsContinuationKey |
string |
A token/fullid that tells the API where to resume fetching results. Contains the fullId of the last record from the previous response. Example: "resultsContinuationKey": "S901|BUK|WORKORDER|MWO-0032C8002", |
API Request Body Restrictions
-
Projection fields: If no projection fields are specified, all available attributes for the object will be returned.
-
ID field meaning: The id field always refers to the FullId of the object.
-
Attribute criteria IDs: When specifying attributes in the criteria, use class IDs, not attribute display names.
-
Range operators: When using in between or not between operators, both minValue and maxValue must be provided.
-
Datetime handling:
-
The like operator is not supported for datetime attributes.
-
Datetime values must be in ISO 8601 format (e.g., 2022-07-22T00:00:00Z).
-
-
Operator rules:
-
For properties with a UOM (Unit of Measure), operators such as gt, lt, gte, lte, in between, and not between are supported.
-
If no UOM is defined, only equals and not equals are supported.
-
-
Association queries: For associations, the id field must always be a FullId; wildcard or partial matches are not supported.
Wildcard Search
Wildcard search allows users to include the `*` character in their search term, matching zero or more characters. For example, `test*` will match `test` as well as any word starting with `test`.
It is not recommended to start a search term with a wildcard (e.g., `*test`) as this can negatively impact search performance.
The Faceted Search wildcard search behavior differs from AIM, which can lead to different result counts.
Wildcard Search Behavior in Faceted Search
Faceted Search uses text analysis and tokenization when indexing attribute values.
This affects how wildcard patterns (* and ?) work compared to simple string matching.
Tokenization
-
Attribute values are split into individual tokens (usually words) based on spaces, punctuation, and configured analyzers.
-
Each token is indexed separately.
-
Example:
Attribute Value: "Pressure Transmitter"
Tokens: ["Pressure", "Transmitter"]
Wildcard Matching
-
Wildcards are applied per token, not on the entire attribute string.
Transmitter: Matches any token that ends with Transmitter.
Transmitter
PressureTransmitter (because it’s a different token unless indexed as one word)
-
Pressure Transmitter as a search term: Matches documents containing both tokens, in any order:
-
Pressure Transmitter
-
Transmitter for Pressure
-
High Pressure Transmitter
Important: Wildcards do not span across token boundaries.
Searching for *Pressure*Transmitter* might not match High Pressure Transmitter unless PressureTransmitter exists as a single token in the index.
-
Search API Request Inputs - Initial Load
Below table lists down the request body to be used for retrieving objects using faceted search data API.
|
Data Category |
Request body for Search API |
API Response |
|---|---|---|
|
Tags |
{ "criteria": { "Id": "*", "ClassId": "FACILITY", "attributes": [ { "id": "MANUFACTURER", "operator": "like", "value": "Sch*" }], "association": [ { "type": "has project", "id": "EIS_PSP00", "operator": "Equals" }] }, "projections": { "fields": [ { "attributeId": "@AT01016", "label": "Manufacturer" }, { "attributeId": "@AT01015", "label": "Start Date" } ] }, "psize": "100" } |
{ "result": { "data": [ { "fullId": "P-1098-2390", "name": "Centrifugal Pump", "type": "Pump", "category": "TAGS", "projections": [ { "Label": "Manufacturer", "Value": "Schlumberger" }, { "Label": "Start Date", "Value": "2022-07-22T00:00:00Z" }, ] }, { "fullId": "P-1098-2391", "name": "Centrifugal Pump", "type": "Pump", "category": "TAGS", "projections": [ { "Label": "Start Date", "Value": "2022-07-22T00:00:00Z" } ] } ], "error": null, "totalHits": 2, "resultsContinuationKey":"J-9002A" } } |
|
Documents |
{ "criteria": { "Id": "*", "ClassId": " DOCUMENT CONTENT ", "projections": { "fields": [ { "attributeId": "@aim_ATT_LastModified", "label": "AIM Last Modified" } ] }, "psize": "100" } |
Search API Request Inputs - Delta Loads
Below table lists down the request body to be used for retrieving objects from EDW as deltas. Update the highlighted date to fetch delta from that date.
|
Data Category |
Request body for Search API |
|---|---|
|
Tags |
{ "criteria": { "Id": "*", "ClassId": "FACILITY", "attributes": [ { "id": "@aim_ATT_LastModified", "operator": "gte", "value": "2022-07-22T00:00:00Z" }], "association": [ { "type": "has project", "id": "EIS_PSP00", "operator": "Equals" }] }, "projections": { "fields": [ { "attributeId": "@eis_H40_parent_tag_name", "label": "Parent Tag Name" }, { "attributeId": "@eis_H40_tag_status", "label": "Tag Status" } ] }, "psize": "100" } |
|
Tags(Range Filter(In Between/Not Between) |
{ "criteria": { "Id": "*", "ClassId": "FACILITY", "attributes": [ { "id": "@aim_ATT_LastModified", "operator": "in between", "minValue": "2022-07-22T00:00:00Z", "maxValue": "2023-07-22T00:00:00Z", }], "association": [ { "type": "has project", "id": "EIS_PSP00", "operator": "Equals" }] }, "projections": { "fields": [ { "attributeId": "@eis_H40_parent_tag_name", "label": "Parent Tag Name" }, { "attributeId": "@eis_H40_tag_status", "label": "Tag Status" } ] }, "psize": "100" } |
Search API Request Inputs – Tag-Document relationships
|
Data Category |
Request body for Search API |
|---|---|
|
Documents linked to a Tag |
{ "criteria": { "Id": "*", "ClassId": "DOCUMENT CONTENT", "attributes": [], "association": [ { "type": "refers to", "id": "{TAG_FULL_ID}", "operator": "Equals" }] }, "projections": { "fields": [ { "attributeId": "@AT01016", "label": "Finish Date" }, { "attributeId": "@AT01015", "label": "Start Date" } ] }, "psize": "100" } |
|
Tags linked to a Document |
{ "criteria": { "Id": "*", "ClassId": "FACILITY", "attributes": [], "association": [ { "type": "is referenced in", "id": "{DOCUMENT_FULL_ID}", "operator": "Equals" }] }, "projections": { "fields": [ { "attributeId": "@AT01016", "label": "Finish Date" }, { "attributeId": "@AT01015", "label": "Start Date" } ] }, "psize": "100" } |
API Usage
Based on the region where AIM-Advanced environment is deployed, the Faceted Search Data endpoint can be identified from the below table. Ensure that you are using the right endpoint to avoid any authorization issues.
|
Region |
Faceted Search API Endpoint |
|---|---|
|
Japan |
https://api.jp.fs.aim.connect.aveva.com |
|
Singapore |
https://api.sg.fs.aim.connect.aveva.com |
|
Ireland |
https://api.ie.fs.aim.connect.aveva.com |
|
USA |
https://api.us.fs.aim.connect.aveva.com |
|
Canada |
https://api.ca.fs.aim.connect.aveva.com |
|
Australia |
https://api.au.fs.aim.connect.aveva.com |
|
India |
https://api.in.fs.aim.connect.aveva.com |
Call POST API (/query) and pass bearer token for authorization to invoke the faceted search data API.
https://{facetedsearchapiendpoint} /query
To invoke the API, you will need to pass the Tenant header for AIM-Advanced. Set the Tenant header as displayed in the screenshot.:
How to identify the Tenant header:
The Tenant value is derived from the AIM-A dashboard URL.
-
If the AIM-A dashboard URL has a portalId parameter, the Tenant value is {stage}_{portalId}. Example: If the AIM-A URL is https://abc.dashboard.imav.connect.aveva.com/?portalId=e8c57158-7955-499b-a3ce-f1cd0af7ab32#/, the Tenant header is abc_e8c57158-7955-499b-a3ce-f1cd0af7ab32
-
If the AIM-A dashboard URL doesn't have a portalId parameter, the Tenant value is {stage}. Example: If the AIM-A URL is https://abc.dashboard.dev-av.capdev-connect.aveva.com, the Tenant header is abc.
If you still run into authorization issues after providing the correct values, you can raise a support ticket with AVEVA providing the following details:
-
AIM-A URL
-
CONNECT Account name
-
CONNECT Folder name
Specify the criteria in the POST API request body to use the new faceted search endpoint (/query) as illustrated in the following screenshots:
Pagination Using resultsContinuationKey
-
Use the totalHits field to see how many results are available in total.
-
To retrieve results in sequence, start by omitting the resultsContinuationKey in your first request. The API returns the first set of matching records along with a continuationKey in the response.
-
For the next request, include this token to fetch the subsequent set of results. The token acts as a position marker (for example, the last fullID returned), allowing the API to continue from where the previous request ended. Pass this token in your next request to retrieve the next page.

User guidance and limitations
Review the following limitations and important notes before using the Faceted Search Data API. These constraints are designed to ensure reliable performance and accurate results. Adhering to the specified formats and supported features will help avoid errors and maximize the effectiveness of your queries.
-
Maximum API rate limit: 1,000 requests per minute per asset
-
Maximum result size: 500 results per page per request to ensure optimal API performance.
-
Wildcard performance: Using wildcard queries can slow down search performance and should be used judiciously.
-
No nested associations: Filtering on nested associations is not supported.
-
Datagroup handling: Datagroups are not directly supported, but equivalent filtering can be achieved through appropriate query criteria.
-
Attribute Criteria limit: You can define up to 10 attributes as part of criteria per request.
-
Association Criteria limit: You can define up to 5 associations as part of criteria per request.
-
You may refer to the class library (data model) for the asset to obtain the appropriate ClassIDs, AttributeIDs, and AssociationTypes.