Business 360 REST API Reference > Business 360 REST API > Search API
  

Search API

Use the search API to search for records that match your search criteria across all the business entities or within a specific business entity in English and Japanese. You can filter the search results based on severity levels and validation statuses. The API uses the search resource.
Note: Effective in the May 2023 release, the ability to filter search results based on error severity levels and validation statuses is available for preview.
Preview functionality is supported for evaluation purposes but is unwarranted and is not supported in production environments or any environment that you plan to push to production. Informatica intends to include the preview functionality in an upcoming release for production use, but might choose not to in accordance with changing market or technical circumstances. For more information, contact Informatica Global Customer Support.
To search for records, submit a POST request with the following URI:
<baseApiUrl>/search/public/api/v1/search
The response is in the JSON format.

Request body

You can use the following parameters in the search request body:
Note: Use either the search or fields parameters, but not both.
Parameter
Type
Description
search
String
Search string.
To retrieve all the records, use an asterisk (*).
To perform a fuzzy search, enter a search word or phrase. When you search for records, you can use additional wildcard characters, such as *, ~, &&, and ||.
You can use search strings similar to the ones in the following examples:
  • - John Smith. Searches for records that contain John Smith as a field value.
  • - Jo*n. Searches for records that start with Jo and end with n, such as Johansson or Jordan.
  • - Hans && Williams. Searches for records that contain Hans and Williams in the same record. For example, the first name is Hans, and the last name is Williams.
Note: When you use only white spaces as a search string without any other characters, the search doesn't return any results.
For more information about these wildcard characters, see Using the search box to find records in the Customer 360 help.
fields
String
Searches records for specific fields. For example , searching "J*" for the first name field returns all names starting with "J".
entityType
String
Internal ID of the business entity you want to search. To search across all the business entities, enter "*".
filters
Array
Specifies a list of fields that you want to use to filter the search results.
filter > operator
String
The Boolean operator that joins multiple filters that you specify. Use AND or OR as the Boolean operator.
filters > filter > comparison operator
String
Condition that specifies how to filter search results.
Use one of the following comparison operators:
  • - EQUALS. Returns records that match the specified field value.
  • For example, you can filter the employees whose department is equal to product management.
  • - NOT_EQUALS. Returns records that don't match the specified value.
  • For example, you can filter employees whose country is not equal to India.
  • - IN. Returns records with field values that match any of the specified values.
  • For example, you can filter employees who belong to cities such as Chennai, Bangalore, and Hyderabad.
  • - BETWEEN. Returns records that contain field values within the specified range.
  • For example, you can filter people aged between 20 and 30.
  • - GREATER_THAN. Returns records with field values greater than the specified value.
  • For example, you can filter employees with more than 5 years experience.
  • - LESS_THAN. Returns records with field values less than the specified value.
  • For example, you can filter employees with less than 3 years experience.
  • - GREATER_THAN_EQUAL_TO. Returns records with field values greater than or equal to the specified value.
  • For example, you can filter students with a score greater than or equal to 80.
  • - LESS_THAN_EQUAL_TO. Returns records with field values less than or equal to the specified value.
  • For example, you can filter students with a score less than or equal to 35.
  • - STARTS_WITH. Returns records with field values that start with a specified value.
  • For example, you can filter records where the first name starts with John.
  • - CONTAINS. Returns records with field values that contain the exact words in the same sequence as specified in the filter condition.
  • For example, if you filter results by first names that contain the word James, the filter can return names such as James Earl, James Henry, and William James. However, the filter doesn't return Jameson. Similarly, if you filter results by first names that contain Anne Marie, the filter can return names, such as Anne Marie and Anne-Marie. However, the filter doesn't return Marie Anne because the order of words doesn't match.
filters > filter > fieldName
String
Name of the field that you want to use as a filter.
To filter search results based on error types, use one of the following system fields:
  • - validationType
  • - validationState
filters > filter > fieldValue
String
Value that you want to use to filter the results.
Note: You can use a partial word or value with the STARTS_WITH or CONTAINS comparison operators.
filters > filter > fieldValueGroups
String
Filters search results based on certain criteria that define a group.
For example, you can filter search results based on their error type groups, such as error, warning, and info.
pageSize
Number
Number of search results to display on each page.
pageOffset
Number
Optional. Number of pages to skip. For example, pageOffset=2 means that the search must skip the first two pages of the search results. Default is 0.
recordsToReturn
Number
Number of search results to return.
recordOffset
Number
Number of records to skip. For example, recordOffset=200 indicates that the search must skip the first 200 search results. Default is 0.
maxRecords
Number
Maximum number of records to return.
Note: The search cannot return more than 10,000 records per page.
sort
Array
Specifies a list of fields based on which you want to sort the search results.
sort > fieldName
String
Name of the field by which you want to sort the search results.
sort > order
String
Order in which you want to sort the search results.
Use one of the following sort orders:
  • - ASCENDING
  • - DESCENDING
searchLocale
String
Optional. Code of the language that you want to use to search for records.
Use one of the following codes:
  • - en
  • - ja
Default is en.
Before you specify any value other than en, ensure that the language is configured as a searchable language in Business 360 Console.

Request response

The request response returns the search results.
The following table lists the response parameters:
Parameter
Type
Description
searchResult
Object
Contains the search results.
hits
Number
Number of search results.
records
Array
Contains all the search results that are filtered and sorted based on the criteria you specify.
Contains the vader parameter that lists the internal IDs of the failed rule associations for search results with validation errors.
pageSize
Number
Number of search results on a page.
pageOffset
Number
Number of pages to skip. For example, pageOffset=2 means that the search must skip the first two pages of the search results. Default is 0.
recordsToReturn
Number
Number of search results to return.
recordOffset
Number
Number of records to skip. For example, recordOffset=200 indicates that the search must skip the first 200 search results. Default is 0.
maxRecords
Number
Maximum number of records to return.
Note: The search cannot return more than 10,000 records per page.
The POST response includes the following meta parameters:
Parameter
Type
Description
score
Number
The current trust score of the record.
businessId
String
Unique identifier of the business entity record.
id
String
Internal ID of the record. Do not use.
businessEntity
String
Name of the business entity to which the record belongs.
createdBy
String
Name of the person who created the record.
creationDate
String
Date when the record was created.
updatedBy
String
Name of the user who last updated the record.
lastUpdateDate
String
Date when the master record was last updated.
type
String
Internal ID of the business entity to which the record belongs.
status
String
Indicates whether the record is active, inactive, or in pending status.
Note: This parameter is the same as the state parameter in the business entity record APIs. For more information about the state parameter, see Read Master Record by Business ID .

Sample requests

Request with the search parameter

You might use the following request to find all the records of the Person business entity associated with the name Arny and the state of California:
POST https://use4-mdm.dm-us.informaticacloud.com/search/public/api/v1/search
Content-Type: application/json
Accept: application/json
IDS-SESSION-ID: XXXXXXXXXXXXXXXXXXXXXX
MODEL_VERSION: 1583398245259

{
"entityType":"c360.person",
"search":"Arny*",
"filters":{
"filter":[
{
"comparator":"EQUALS",
"fieldName":"c360person.PostalAddress.state.Name",
"fieldValue":"California"
}
]
}
}
To use the latest search configuration, ensure that you include the model version in the search request. If you don't include the model version, the search request might use the search configuration from the metadata cache of the previous REST API requests.
For more information about model version, see Request header.

Request with the fields parameter

You might use the following request to find all the records that start with "Jona" for the full name field:

{
"entityType": "c360.person",
"fields": {
"c360person.fullName": "Jona*"
},
"filters": {
"filter": [
{
"comparator": "EQUALS",
"fieldName": "c360person.gender.Name",
"fieldValue": "Male"
}
]
}
}

Request to filter search results based on validation errors

The following table lists the parameters to use to filter search results based on error type, rule ID, and validation status:
Parameter
System Field
Search Parameter Value
Description
fieldName > fieldValueGroups
validationType
ERROR, WARNING, or INFO
Filters search results based on error types, such as ERROR, WARNING, or INFO.
fieldName > fieldValue
validationType
<Internal ID of rule associations>
Filters search results based on the internal IDs of failed rule associations. To view the internal rule ID, open the rule association.
fieldName > fieldValue
validationState
PASSED or FAILED
Filters search results based on the specified validation status.
You might use the following request to filter records based on the error type INFO, rule ID should_not_contain_number_1687874505794, and validation status FAILED:

{
"recordOffset": 0,
"debug": true,
"recordsToReturn": 25,
"sort": [],
"entityType": "custombe1",
"search": "*",
"pageSize": 25,
"pageOffset": 0,
"filters": {
"filter": [
{"comparator": "IN","fieldName": "validationType", "fieldValue": ["should_not_contain_number_1687874505794"],
"fieldValueGroups": ["INFO"]
},
{"comparator": "IN","fieldName": "validationState", "fieldValue": ["FAILED"]}
]},
"facets": [
{
"facetField": "validationType",
"type": "SIMPLE",
"orderField": "KEY",
"order": "ASCENDING"
}
],
"highlight": true,
"hierarchyFilters": []
}

Request to search for deleted master records

The following table lists the parameter to use to filter search results based on record state indicator:
Parameter
System Field
Search Parameter Value
Description
fieldName > fieldValue
recordStateIndicator
ACTIVE or DELETED
Filters search results that are active or deleted based on the parameter value.
You might use the following request to search for all the deleted master records of the Person business entity:

{
"entityType": "c360.person",
"search": "*",
"filters":{
"filter":[

{
"comparator":"IN",
"fieldName": "recordStateIndicator",
"fieldValue": [
"DELETED"
]
}

]
},
"pageSize":25,
"pageOffset":0,
"recordOffset":0,
"recordsToReturn":25
}

Sample Response

When you make a search request, the response retrieves records that match your search criteria.

Response with the search parameter

The following search response contains the Person business entity record associated with the name Arny:
{
"searchResult": {
"hits": 1,
"pageSize": 25,
"pageOffset": 0,
"recordsToReturn": -1,
"recordOffset": -1,
"maxRecords": 10000,
"records": [{
"c360person.Insurance": [{
"insuranceType": {
"Name": "Casualty"
}
}],
"_meta": {
"score": 13.0,
"lastUpdateDate": "1622227656589",
"businessId": "29924818400438832441125634728",
"id": "60b13ac80cabf75604b602a9",
"businessEntity": "c360.person",
"type": "c360.person",
"status": "ACTIVE"
},
"c360person.designation": "Assistant Professor",
"c360person.lastName": "Eidelburg",
"c360person.Phone": [{
"phoneNumber": "016-7658"
}],
"c360person.AlternateName": [{
"AlternateName": "Arny Eidelburg"
}],
"c360person.firstName": "Arny",
"c360person.gender": {
"Name": "Male"
},
"c360person.PostalAddress": [{
"country": {
"Name": "United States"
},
"city": "San Jose",
"postalCode": "95111",
"county": "Santa Clara",
"addressLine1": "17 W Jackson Blvd",
"state": {
"Name": "California"
}
}]
}]
}
}

Response with the fields parameter

The following search response contains all records for the full name field that start with "Jona":

{
"searchResult": {
"hits": 1,
"pageSize": 25,
"pageOffset": 0,
"recordsToReturn": -1,
"recordOffset": -1,
"maxRecords": 10000,
"records": [
{
"c360person.fullName": "Jonathon Javier Crasford",
"_meta": {
"score": 13.0,
"lastUpdateDate": "1617657132604",
"businessId": "29840506262486653401553471970",
"id": "29840506262486653401553471970",
"businessEntity": "c360.person",
"type": "c360.person",
"status": "ACTIVE"
},
"c360person.designation": "Analyst Programmer",
"c360person.lastName": "Crasford",
"c360person.Phone": [
{
"phoneNumber": "298-9816"
}
],
"c360person.AlternateName": [
{
"AlternateName": "Ferrel Vannah"
}
],
"c360person.firstName": "Jonathon",
"c360person.gender": {
"Name": "Male"
},
"c360person.PostalAddress": [
{
"country": {
"Name": "United States"
},
"city": "Los Angeles",
"postalCode": "90006",
"county": "Los Angeles",
"addressLine1": "5 Tomahawk Dr",
"state": {
"Name": "California"
}
}
]
}
]
}
}

Response with search results containing validation errors

The following request contains a search result with error type INFO, rule ID should_not_contain_number_1687874505794, and validation status FAILED:


{
"searchResult": {
"hits": 1,
"pageSize": 25,
"pageOffset": 0,
"recordsToReturn": 25,
"recordOffset": 0,
"maxRecords": 10000,
"records": [
{
"_cm": {
"vader": {
"fail": [
{
"provider": "mdm-business-entity",
"rule": [
{
"id": "should_not_contain_number_1687874505794"
}
]
}
]
}
},
"_meta": {
"score": 5.1987,
"updatedBy": "mdm-enrichment-service",
"createdBy": "delta_mrel1s1_jun27",
"lastUpdateDate": "1687874602219",
"businessId": "MDM0000000LFLS",
"id": "MDM0000000LFLS",
"businessEntity": "custombe1",
"type": "custombe1",
"creationDate": "1687874601610",
"states": {
"validation": "FAILED"
},
"status": "ACTIVE"
},
"custombe1.fname": "user12"
}
]
}
}

Filtering and sorting search results

When you submit a search request, you can specify how to filter and search the search results.
The following table lists the predefined fields you can use to filter and sort the search results:
Business Entity
Filter by
Sort by
Category
  • - _cm.vader.message
  • - _meta.states.validation
  • - p360category.keywords.keyword
  • - p360category.descriptions.name
  • - p360category.descriptions.description
  • - p360category.descriptions.descriptionsLanguage.Name
  • - p360category.identifier
  • - p360category.keywords.keyword
  • - p360category.keywords.keywordsLanguage.Name
Contact
  • - _cm.vader.message
  • - _meta.states.validation
  • - s360Contact.gender.Name
  • - s360Contact.PostalAddress.country.Name
  • - s360Contact.PostalAddress.state.Name
  • - s360Contact.PostalAddress.city
  • - s360Contact.firstName
  • - s360Contact.lastName
  • - s360Contact.gender.Name
  • - s360Contact.jobTitle.Name
  • - s360Contact.department.Name
  • - s360Contact.language.Name
  • - s360Contact.PostalAddress.country.Name
  • - s360Contact.PostalAddress.state.Name
  • - s360Contact.PostalAddress.city
  • - s360Contact.PostalAddress.postalCode
  • - s360Contact.PostalAddress.addressLine1
  • - s360Contact.PhoneCommunication.phoneNumber
  • - s360Contact.ElectronicAddressCommunication.electronicAddress
Item
  • - _cm.vader.message
  • - _meta.states.validation
  • - p360item.availabilityDate
  • - p360item.availability.Name
  • - p360item.brand
  • - p360item.countryOfOrigin.Name
  • - p360item.expirationDate
  • - p360item.keywords.keyword
  • - p360item.manufacturer
  • - p360item.metaInformation.metaDescription
  • - p360item.status.Name
  • - p360item.sellingPrice.sellingValidTo
  • - p360item.sellingPrice.sellingValidFrom
  • - p360item.sellingPrice.sellingCurrency.Name
  • - p360item.sellingPrice.sellingTerritory.Name
  • - p360item.sellingPrice.sellingPriceType.Name
  • - p360item.sellingPrice.sellingPriceAmount
  • - p360item.subBrand
  • - p360item.tags.tag
  • - p360item.availabilityDate
  • - p360item.availability.Name
  • - p360item.brand
  • - p360item.countryOfOrigin.Name
  • - p360item.description.longDescription
  • - p360item.description.productTitle
  • - p360item.description.shortDescription
  • - p360item.expirationDate
  • - p360item.gtin
  • - p360item.identifier
  • - p360item.keywords.keyword
  • - p360item.manufacturer
  • - p360item.manufacturerProductNumber
  • - p360item.manufacturerGLN
  • - p360item.metaInformation.metaDescription
  • - p360item.metaInformation.metaTitle
  • - p360item.productHighlights.productHighlight
  • - p360item.status.Name
  • - p360item.sellingPrice.sellingValidTo
  • - p360item.sellingPrice.sellingValidFrom
  • - p360item.sellingPrice.sellingCurrency.Name
  • - p360item.sellingPrice.sellingTerritory.Name
  • - p360item.sellingPrice.sellingPriceType.Name
  • - p360item.sellingPrice.sellingPriceAmount
  • - p360item.subBrand
  • - p360item.tags.tag
Organization
  • - _cm.vader.message
  • - _meta.states.validation
  • - c360organization.companyType.Name
  • - c360organization.PostalAddress.city
  • - c360organization.PostalAddress.country.Name
  • - c360organization.PostalAddress.state.Name
  • - c360organization.name
  • - c360organization.companyType.Name
  • - c360organization.PostalAddress.addressLine1
  • - c360organization.PostalAddress.country.Name
  • - c360organization.PostalAddress.state.Name
  • - c360organization.PostalAddress.city
  • - c360organization.PostalAddress.county
  • - c360organization.PostalAddress.postalCode
  • - c360organization.PhoneCommunication.phoneNumber
  • - c360organization.AlternateName.name
  • - c360organization.Segment.segmentType.Name
Person
  • - _cm.vader.message
  • - _meta.states.validation
  • - c360person.gender.Name
  • - c360person.PostalAddress.city
  • - c360person.PostalAddress.country.Name
  • - c360person.PostalAddress.state.Name
  • - c360person.firstName
  • - c360person.lastName
  • - c360person.designation
  • - c360person.gender.Name
  • - c360person.AlternateName.AlternateName
  • - c360person.PostalAddress.addressLine1
  • - c360person.PostalAddress.city
  • - c360person.PostalAddress.county
  • - c360person.PostalAddress.country.Name
  • - c360person.PostalAddress.state.Name
  • - c360person.PostalAddress.postalCode
  • - c360person.Phone.phoneNumber
Supplier
  • - _cm.vader.message
  • - _meta.states.validation
  • - s360Supplier.supplierType
  • - s360SupplierPostalAddress.country.Name
  • - s360SupplierPostalAddress.state.Name
  • - s360SupplierPostalAddress.city
  • - s360Supplier.name
  • - s360Supplier.dunsNumber
  • - s360Supplier.supplierType
  • - s360SupplierPostalAddress.country.Name
  • - s360SupplierPostalAddress.state.Name
  • - s360SupplierPostalAddress.city
  • - s360SupplierPostalAddress.postalCode
  • - s360SupplierPostalAddress.addressLine1
  • - s360Supplier.PhoneCommunication.phoneNumber
  • - s360Supplier.Diversity.diversityStatus
  • - s360Supplier.Diversity.diversityType
  • - s360Supplier.SourcingManager.sourcingManagerName
  • - s360Supplier.SourcingManager.sourcingManagerEmployeeId
  • - s360Supplier.Segment.segmentType
  • - s360Supplier.Segment.segmentName
  • - s360Supplier.ElectronicAddressCommunication.electronicAddress