Global Search (Reserved)
RESERVED: The keyword RESERVED annotation means that the API is available for use but is not yet part of the officially supported specification. Its behavior, interface, or output may change in future releases without backward compatibility guarantees.
Overview
Search for objects in an application using a combination of keyword matching, tag filters, insight filters, object type filters, property filters, transaction filters, and sorting options.
URI
POST /rest/applications/{name}/search
Path parameters
The application name. Must be properly encoded; back-quote character is not allowed.
Query parameters
Optional. ISO-8601 datetime (e.g. 2024-01-15T00:00:00). When provided, restricts results to objects that were active at that point in time.
Request body
Content-Type: application/json
Minimal example
{
"keyword": "getUserById",
"pos": "any",
"searchBy": ["Name"],
"skip": 0,
"limit": 25,
"sortKey": "name",
"sortOrder": "asc"
}
Full example
{
"keyword": "UserService",
"pos": "any",
"searchBy": ["Name", "FullName"],
"ignoreCase": true,
"isRegex": false,
"skip": 0,
"limit": 25,
"all": false,
"sortKey": "name",
"sortOrder": "asc",
"objectSearchBy": "internal",
"labels": ["critical"],
"forceAllTags": 0,
"objectTypes": ["Java Method", "Java Class"],
"isTagsAndObjectTypes": false,
"insightFilters": [
{ "category": "iso-5055-high", "rules": ["Avoid using SELECT *"] }
],
"forceAllInsight": 1,
"transactions": [
{ "value": "10000001", "label": "Login Transaction" }
],
"forceAllTransactions": 0,
"module": ["AuthModule"],
"roles": ["persist"],
"forceAllProperties": 1,
"operations": [
{
"type": "integer",
"description": "Cyclomatic Complexity",
"id": "prop-cc-id",
"operationValue": 10,
"operation": "greaterThan"
}
]
}
Request body fields
Keyword search
| Field |
Type |
Required |
Description |
| keyword |
string |
No |
Text to search for. Empty string matches all objects. |
| searchBy |
[]string |
Yes |
Properties to search in. Valid values: "Name", "FullName". At least one must be provided. |
| pos |
string |
No |
Keyword match position. One of: "any" (contains, default), "start" (starts with), "end" (ends with). |
| ignoreCase |
boolean |
No |
If true, the keyword match is case-insensitive. Default: false. |
| isRegex |
boolean |
No |
If true, keyword is treated as a regular expression. pos is ignored when regex is active. Default: false. |
Pagination and sorting
| Field |
Type |
Required |
Description |
| skip |
integer |
No* |
Number of results to skip. Must be ≥ 0. Required unless all is true. |
| limit |
integer |
No* |
Maximum number of results to return. Must be > 0. Required unless all is true. |
| all |
boolean |
No |
If true, bypasses skip/limit and returns all matching objects. Default: false. |
| sortKey |
string |
No |
Field to sort by. One of: "name", "fullname", "type". Default: "name". |
| sortOrder |
string |
No |
Sort direction: "asc" or "desc". Default: "asc". |
Scope filters
| Field |
Type |
Required |
Description |
| objectSearchBy |
string |
No |
Restricts to internal or external objects. One of: "internal" (objects with External = false or null), "external" (objects with External = true). Omit to include all objects. |
Tag filters
| Field |
Type |
Required |
Description |
| labels |
[]string |
No |
List of tag names to filter by. |
| forceAllTags |
integer |
No |
Logical operator applied to labels. 0 = OR (any tag), 1 = AND (all tags), 2 = NOT (no matching tag). Default: 0. |
Object type filters
| Field |
Type |
Required |
Description |
| objectTypes |
[]string |
No |
Filter to objects of the listed types (e.g. "Java Method", "SQL Table"). |
| isTagsAndObjectTypes |
boolean |
No |
If true, both tag and object type conditions must hold (AND). If false, either condition is sufficient (OR). Default: false. |
Insight filters
| Field |
Type |
Required |
Description |
| insightFilters |
[]InsightsFilter or []string |
No |
Insight categories (and optionally specific rules) to filter by. Accepts the new object format or legacy string array. |
| forceAllInsight |
integer |
No |
Logical operator applied to insightFilters. 0 = OR, 1 = AND, 2 = NOT. Default: 0. |
InsightsFilter object:
| Field |
Type |
Description |
| category |
string |
Insight category identifier (e.g. "iso-5055-high", "structural-flaw-critical"). |
| rules |
[]string |
Optional. Specific rule names within the category. |
Transaction filters
| Field |
Type |
Required |
Description |
| transactions |
[]Transaction |
No |
List of transactions to scope the search to. |
| forceAllTransactions |
integer |
No |
Logical operator applied to transactions. 0 = OR (in any transaction), 1 = AND (in all transactions), 2 = NOT (in none of the transactions). Default: 0. |
Transaction object:
| Field |
Type |
Description |
| value |
string |
The transaction AipId. |
| label |
string |
The transaction display name. |
Module and role filters
| Field |
Type |
Required |
Description |
| module |
[]string |
No |
Filter to objects belonging to the listed modules. Only active when forceAllProperties is 1 (AND). |
| roles |
[]string |
No |
Filter to objects whose RoleName is one of the listed values. |
Property (operations) filters
| Field |
Type |
Required |
Description |
| operations |
[]Operations |
No |
Property-level filter conditions. |
| forceAllProperties |
integer |
No |
Logical operator applied to operations and module filters. 0 = OR, 1 = AND. Default: 0. |
Operations object:
| Field |
Type |
Description |
| type |
string |
Property value type. One of: "string", "integer", "boolean", "enum". |
| description |
string |
Display name of the property. |
| id |
string |
Property identifier. Used when matching a single property. |
| IDs |
[]string |
Alternative to id. Matches any property whose ID is in this list. |
| operationValue |
any |
The value to compare against. Type must match the type field. For "boolean", true maps to > 0 and false maps to = 0. |
| operation |
string |
Comparison operator. String: "contains", "beginsWith", "endsWith", "=". Integer: "lessThan", "greaterThan", "lessThanEqualTo", "greaterThanEqualTo", "=". Boolean/Enum: "=". |
| existence |
boolean |
If true, checks whether the property exists on the object regardless of its value. |
Responses
Returns the total count of matching objects and the paginated result list.
{
"count": 120,
"objects": [
{
"id": "12345678",
"data": {
"Name": "getUserById",
"FullName": "com.example.service.UserService.getUserById",
"Type": "Java Method",
"AipId": "12345678",
"External": false,
"RoleName": "select"
}
}
]
}
JSON representation
| Property |
Type |
Description |
| count |
integer |
Total number of objects matching all filters, before pagination. |
| objects[].id |
string |
The internal node identifier. |
| objects[].data.Name |
string |
The object short name. |
| objects[].data.FullName |
string |
The fully-qualified object name (usually includes file path or package). |
| objects[].data.Type |
string |
The object type display name (e.g. "Java Method"). |
| objects[].data.AipId |
string |
The AIP object identifier. |
| objects[].data.External |
boolean |
true if the object is external to the application; false or null if internal. |
| objects[].data.RoleName |
string |
The role assigned to the object, or null if none. |
Error responses
| Status |
Description |
| 400 |
searchBy is missing or null. |
| 400 |
pos is not one of "start", "end", "any", or "". |
| 400 |
skip is negative (when all is false). |
| 400 |
limit is zero or negative (when all is false). |
| 404 |
Application not found. |