Learn how the Search API returns parsed values in paired-value fields
Paired-value fields are used to pair different types of metadata as a single value in a field. For example, suppose all videos require a team of contributors, including an editor, product marketing manager, and voice talent. Each video’s metadata must include each team member and their role. You can create a paired-value field called “Video Team.” The first value would designate the contributor, and the second value would be the production role.
You can create paired-value fields with these sets of metadata:
- Two authority lists (Example: A marketing campaign and a brand spotlight)
- An authority list and a free-text field or vice versa (Example: A production partner and a note describing their involvement in the project)
- An authority list and a linked field or vice versa (Example: A video production role and a contributor’s name linked to their account)
Each paired value is returned as an object with a ValueLeft and a ValueRight property, nested under the field's name in APIResponse.Items:
"Marketing.ProductionStatus": [
{
"ValueLeft": "Active",
"ValueRight": "New York"
}
]
ValueLeft and ValueRight preserve the left and right sides of the pair exactly as configured on the field. The following table describes the left and right values based on the paired-value field’s configuration.
| Pairing mode | ValueLeft | ValueRight |
|---|---|---|
| Authority list + authority list | First authority value | Second authority value |
| Authority list + free text | Authority value | Free-text value |
| Free text + authority list | Free-text value | Authority value |
| Authority list + linked field | Authority value | Linked record display value |
| Linked field + authority list | Linked record display value | Authority value |
| Authority list + role | Authority value | Role label |
Additional properties by pairing mode
Depending on the pairing mode, a paired value can include additional properties.
| Pairing mode | Additional properties | What they contain |
|---|---|---|
| Authority list + authority list | LinkedKeywordText, LinkedKeywordRID | Display text and record ID of the paired authority value |
| Authority list + free text, or free text + authority list | LinkedText | The free-text side of the pair |
| Authority list + linked field, or linked field + authority list | PairedLinkedRID | Record ID of the linked asset or contact |
| Authority list + role | Role | The role label |
Handle empty values and unresolved linked records
Two edge cases apply to any pairing mode:
- A side can be empty. If the field configuration permits it, either
ValueLeftorValueRightcan be an empty string. - A linked record can fail to resolve. Orange Logic can't always resolve a linked record's display text, for example when the record was deleted or the requesting user lacks permission to access it. When that happens, the corresponding
ValueLeftorValueRightfalls back to the record-ID representation instead of the display value.
Caution:
A paired-value field can also return a
Valueproperty, a single formatted string combining both sides for display (for example,Active (New York)).Valueis a display convenience, not a stable data contract. Its format can change with the field's display template. Build integrations againstValueLeft,ValueRight, and the field's configured pairing mode, not againstValue.
Example
The following call returns the Marketing.ProductionStatus paired field (an authority-list + free-text pairing) for images with "London" in the title:
curl -X 'GET' \
'https://mangovations.orangelogic.com/API/Search/v4.0/Search?query=title%3ALondon&fields=Marketing.ProductionStatus&fields=SystemIdentifier&pagenumber=1&format=JSON' \
-H 'accept: application/json'
This returns:
{
"APIResponse": {
"GlobalInfo": {
"TotalCount": 1
},
"Items": [
{
"SystemIdentifier": "ZZ13UJ5",
"Marketing.ProductionStatus": [
{
"ValueLeft": "Active",
"ValueRight": "New York",
"LinkedText": "New York",
"Value": "Active (New York)"
}
]
}
]
}
}

