Records
Tools for reading and maintaining DAM records — metadata and field values, classifications, permissions, audit history, duplicates, and bulk edits.
This page covers 27 tools, 23 of them in the default tool list.
- Status — In the default tool list means the tool is one of the ~200 Aprimo advertises to every agent out of the box, so the agent discovers and calls it on its own. Available on request means the tool is registered and fully callable, but sits outside that default list — call it by name, or ask Aprimo to extend the list your tenant is served.
- Both statuses work identically when called. Status affects discovery, not capability or authorization.
- Visibility is not authorization. Every tool call executes as the authenticated user, and any tool can return an authorization error if that user lacks rights to the record, task, or file. See the MCP Tool Permission Map.
- Destructive tools are labelled as such. They delete or irreversibly overwrite data, and will not act unless the call sets both
confirmedandconfirmedDestructivetotrue. - Activity and Project labels vary by tenant. Where this page says Activity or Project, your tenant's own configured terminology is substituted at runtime.
Aprimo's MCP Server exposes far more tools than most MCP clients handle well — many degrade or truncate their tool list well below the full catalogue. Rather than let a client truncate arbitrarily, Aprimo advertises a curated set of roughly 200 tools covering the tasks customers most commonly automate. Everything outside that set remains fully supported and callable by name; it simply isn't offered up front. If your integration leans on a tool that is available on request, talk to your Aprimo Customer Success Manager about extending the advertised list for your tenant.
Tools at a Glance
| Tool | Status | What it does |
|---|---|---|
apply_record_bulk_edit | On request | Applies a bulk edit across multiple Aprimo records that was already previewed via preview_record_bulk_edit. |
cancel_record_bulk_edit | On request | Cancels one or more open Aprimo bulk-edit sessions, releasing the record locks those sessions hold, without persisting any changes made during them. |
check_download_order_status | Default | Checks the status of a download order created by get_record_download_url — including one that handed off after a poll timeout — and returns the download URL once ready. |
get_record_audit_trail_entry | Default | Gets the full detail for one audit trail entry of an Aprimo record — who made the change, when, and the individual field/file changes it contains — by the record's id and the entry's id (from list_record_audit_trail). |
get_record_bulk_edit_field_list_values | Default | Lists the selectable values for a list-type custom field across one or more open Aprimo bulk-edit sessions (option-list entries, classifications, users, or user groups, depending on the field's dataType) -- the bulk-edit companion to get_record_field_list_values. |
get_record_by_field_or_file | On request | Looks up a single Aprimo record either by a file id (the id of one of its files) or by an arbitrary field name/value pair (e.g. a unique external identifier field). |
get_record_classification | Default | Gets one classification assigned to an Aprimo record (sort order among the record's other classifications, and whether it was assigned manually or automatically via classification mappings), by the record's id and the classification's id (from list_record_classifications or browse_classifications). |
get_record_download_url | Default | Places a download order for the original file of an Aprimo record and returns the download URL. |
get_record_duplicate_info | Default | Gets duplicate-detection info for an Aprimo record's master file: duplicate status, detection mode, and the list of duplicate file versions the caller has read access to. |
get_record_field | Default | Gets one custom field value on an Aprimo record, by the record's id and the field's id (from list_record_fields or get_custom_field_definition). |
get_record_field_list_values | Default | Lists the selectable values for a list-type custom field on an Aprimo record (option-list entries, classifications, users, or user groups, depending on the field's dataType) — not the field's current value(s); use get_record_field for that. |
get_record_master_file | Default | Gets the master file of an Aprimo record (checkout status, checkout date, watermark, creation date) — the file id itself, distinct from get_record_master_file_version's file version id. |
get_record_metadata | Default | Retrieves the full metadata for a single Aprimo record by its ID. |
get_record_permissions | Default | Gets the calling user's own effective permissions on an Aprimo record: read, read-all-versions, modify, delete, download, and full control. |
get_record_preview_url | Default | Returns the preview image URL for an Aprimo record. |
get_record_thumbnail_url | Default | Returns the thumbnail image URL for an Aprimo record. |
list_record_associated_collections | Default | Lists the Aprimo collections a record belongs to (static collections it was manually added to, or dynamic collections whose search criteria it currently matches). |
list_record_audit_trail | Default | Lists the audit trail (change history) for an Aprimo record: who changed what and when, one summary entry per change event. |
list_record_classifications | Default | Lists every classification assigned to an Aprimo record, in sort order, with whether each was assigned manually or automatically via classification mappings. |
list_record_fields | Default | Lists the custom field values on an Aprimo record, by the record's id. |
list_record_files | Default | Lists every file attached to an Aprimo record (typically just the master file, but a record can have more): checkout status, checkout date, watermark, and creation date per file. |
list_records | Default | Lists Aprimo records as a plain paged listing (not relevance-ranked — use search_aprimo for keyword/relevance search). |
preview_record_bulk_edit | On request | Previews a bulk edit (status, content type, and/or field changes) across multiple Aprimo records in one call. |
sanitize_record_field_html | Default | Sanitizes HTML content for an Aprimo record field, stripping disallowed tags/attributes/styles per the field's configured allow-list. |
update_record_metadata_field | Default | Updates a single metadata field on an Aprimo record. |
update_record_metadata_fields | Default | Updates multiple metadata fields on an Aprimo record in a single call. |
validate_record_field_html | Default | Validates HTML content for an Aprimo record field against the field's allow-list, without modifying anything. |
apply_record_bulk_edit
Available on request
Applies a bulk edit across multiple Aprimo records that was already previewed via preview_record_bulk_edit. Must be called with the exact same arguments used in that preview call (including the exact same record_ids), plus its confirm_token -- any difference invalidates the token and this is refused. This modifies data. Edits over 1000 records are refused unless acknowledge_large=true is also set. Internally starts a DAM edit session for every targeted record, then commits it -- if this fails partway, call cancel_record_bulk_edit with the returned session token to release any locks left behind. Do not call without having shown the user the preview's diff (especially any high-risk disable_validations warning) and gotten explicit confirmation, then call again with confirmed=true.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
recordIds | array of string | Yes | Must match the record ids passed to preview_record_bulk_edit. |
status | string | Yes | Must match the value passed to preview_record_bulk_edit. |
contentType | string | Yes | Must match the value passed to preview_record_bulk_edit. |
fieldsAddOrUpdate | object (map of string) | Yes | Must match the value passed to preview_record_bulk_edit. |
fieldsRemove | array of string | Yes | Must match the value passed to preview_record_bulk_edit. |
disableValidations | boolean | Yes | Must match the value passed to preview_record_bulk_edit. |
immediateSearchIndexUpdate | boolean | Yes | Optional: when true, updates the search index immediately instead of waiting for the next scheduled update. |
acknowledgeLarge | boolean | Yes | Must be true when record_ids.Length exceeds 1000 -- an explicit acknowledgement that this many records will be edited at once. |
confirmToken | string | Yes | The confirm_token returned by preview_record_bulk_edit for this exact change. |
confirmed | boolean | Yes | Must be true to apply. Call preview_record_bulk_edit first, review the diff (especially any high-risk disable_validations warning) with the user, then call again with confirmed=true. |
server | McpServer | Yes |
Returns:
| Field | Type | Description |
|---|---|---|
applied | boolean | |
affectedCount | integer | |
idSample | array of string |
cancel_record_bulk_edit
Available on request
Cancels one or more open Aprimo bulk-edit sessions, releasing the record locks those sessions hold, without persisting any changes made during them. Use this to clean up after a preview you decided not to continue, or after apply_record_bulk_edit's commit step failed and left a session open. Confirm-gated: call again with confirmed=true after telling the user which session(s) will be discarded.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
tokens | array of string | Yes | The edit-session tokens to discard (the token returned when a bulk-edit session was started). |
confirmed | boolean | No | Must be true to proceed. Confirm with the user which session(s) to discard, then call again with confirmed=true. |
Returns:
| Field | Type | Description |
|---|---|---|
cancelled | boolean | |
tokenCount | integer |
check_download_order_status
In the default tool list
Checks the status of a download order created by get_record_download_url — including one that handed off after a poll timeout — and returns the download URL once ready. If the order is still processing, this is a normal outcome, not an error: tell the user it's still processing and offer to check again shortly, then call this tool again later with the same order id. If the order failed, this call returns a tool error explaining why. Do not resubmit get_record_download_url while waiting — that creates a new, separate order.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
orderId | string | Yes | The order id returned by get_record_download_url (including from its poll-timeout hand-off). |
Returns:
| Field | Type | Description |
|---|---|---|
downloadUrl | string (optional) | |
orderId | string (optional) | |
totalFileSize | integer (optional) | |
status | string (optional) | /// Order status hand-off field (Phase 10a, #44b): "completed" once is populated, "processing" when the order hasn't reached a terminal state yet (returned on get_record_download_url's poll-timeout hand-off, and by check_download_order_status while still running) — a normal, actionable, non-error outcome. Null on the original immediate-completion shape so existing callers that only read / are unaffected. |
get_record_audit_trail_entry
In the default tool list
Gets the full detail for one audit trail entry of an Aprimo record — who made the change, when, and the individual field/file changes it contains — by the record's id and the entry's id (from list_record_audit_trail).
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
objectId | string | Yes | The record id (32-char hex / GUID) — the audit trail's object id. |
entryId | integer | Yes | The audit entry's id (an integer, from list_record_audit_trail), e.g. 4. |
Returns:
| Field | Type | Description |
|---|---|---|
id | integer | |
objectId | string | |
userId | string (optional) | |
externalUserName | string (optional) | |
createdOn | string (optional) | |
changeCount | integer | |
changes | array of string |
get_record_bulk_edit_field_list_values
In the default tool list
Lists the selectable values for a list-type custom field across one or more open Aprimo bulk-edit sessions (option-list entries, classifications, users, or user groups, depending on the field's dataType) -- the bulk-edit companion to get_record_field_list_values. Pass the edit-session token(s) returned when the bulk-edit session(s) were started (see apply_record_bulk_edit). Read-only -- reads the sessions, does not modify them.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
fieldId | string | Yes | The field definition id (GUID) whose selectable values to list. |
tokens | array of string | Yes | The bulk-edit session token(s) (from apply_record_bulk_edit) to read list values across. |
filter | string | No | Optional filter expression (DAM query syntax). Omit to list every selectable value. |
sort | string | No | Optional sort expression. Omit for the endpoint's default order. |
skip | integer | No | Number of items to skip, for paging. Defaults to 0. |
take | integer | No | Maximum number of items to return. Omit for the endpoint's default page size. |
Returns:
| Field | Type | Description |
|---|---|---|
fieldId | string | |
count | integer | |
items | array of RecordFieldListValuePayload | |
items[].id | string | |
items[].name | string (optional) | |
items[].label | string (optional) | |
items[].kind | string | Best-effort variant classification: "Option", "Classification", "User", "UserGroup", or "Unknown". |
get_record_by_field_or_file
Available on request
Looks up a single Aprimo record either by a file id (the id of one of its files) or by an arbitrary field name/value pair (e.g. a unique external identifier field). This is a lookup, not a keyword search — use search_aprimo for relevance-ranked keyword/filter search instead. Provide either fileId, or both fieldName and fieldValue (not all three).
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
fileId | string | No | A file id (32-char hex / GUID) belonging to the record's files. Provide this or fieldName+fieldValue, not both. |
fieldName | string | No | The internal field name to match on (e.g. an external-id field name). Requires fieldValue. Provide this pair or fileId, not both. |
fieldValue | string | No | The value to match fieldName against. Requires fieldName. |
Returns:
| Field | Type | Description |
|---|---|---|
id | string | |
title | string | |
status | string | |
contentType | string | |
createdOn | string | |
modifiedOn | string | |
deepLink | string | |
fields | map of string |
get_record_classification
In the default tool list
Gets one classification assigned to an Aprimo record (sort order among the record's other classifications, and whether it was assigned manually or automatically via classification mappings), by the record's id and the classification's id (from list_record_classifications or browse_classifications).
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
recordId | string | Yes | The record id (32-char hex / GUID). |
classificationId | string | Yes | The classification id (32-char hex / GUID). |
Returns:
| Field | Type | Description |
|---|---|---|
recordId | string | |
classificationId | string | |
name | string (optional) | |
sortIndex | integer (optional) | |
isManual | boolean (optional) |
get_record_download_url
In the default tool list
Places a download order for the original file of an Aprimo record and returns the download URL. Downloads the latest version of the master file without transformations. The download URL contains a time-limited SAS token. Each call creates a new download order — results are not cached. Use get_record_metadata first to verify the record exists and has a master file.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
recordId | string | Yes | The record ID (GUID format). Obtain from search_aprimo or get_record_metadata results. |
Returns:
| Field | Type | Description |
|---|---|---|
downloadUrl | string (optional) | |
orderId | string (optional) | |
totalFileSize | integer (optional) | |
status | string (optional) | /// Order status hand-off field (Phase 10a, #44b): "completed" once is populated, "processing" when the order hasn't reached a terminal state yet (returned on get_record_download_url's poll-timeout hand-off, and by check_download_order_status while still running) — a normal, actionable, non-error outcome. Null on the original immediate-completion shape so existing callers that only read / are unaffected. |
get_record_duplicate_info
In the default tool list
Gets duplicate-detection info for an Aprimo record's master file: duplicate status, detection mode, and the list of duplicate file versions the caller has read access to. Pass newFileName to check as if the master file were being renamed to that name (useful before an upload that would add a new version).
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
recordId | string | Yes | The record id (32-char hex / GUID). |
newFileName | string | No | Optional — check duplicates as if the master file were renamed to this file name instead of its current name. |
Returns:
| Field | Type | Description |
|---|---|---|
recordId | string | |
duplicateInfo | FileVersionDuplicateInfoPayload | |
duplicateInfo.detectionMode | string | |
duplicateInfo.status | string | |
duplicateInfo.totalCount | integer | |
duplicateInfo.duplicates | array of DuplicatePayload | |
duplicateInfo.duplicates[].recordId | string | |
duplicateInfo.duplicates[].fileVersionId | string | |
duplicateInfo.duplicates[].reason | string |
get_record_field
In the default tool list
Gets one custom field value on an Aprimo record, by the record's id and the field's id (from list_record_fields or get_custom_field_definition). Not the field's list of allowed values (use get_record_field_list_values for that). get_record_metadata is usually more convenient for reading several fields at once. Display the result as "label: value" — never show the id/fieldName/dataType to the user.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
recordId | string | Yes | The record id (32-char hex / GUID). |
fieldId | string | Yes | The field definition id (GUID) whose value to read. |
Returns:
| Field | Type | Description |
|---|---|---|
recordId | string | |
id | string | |
fieldName | string (optional) | |
label | string (optional) | |
dataType | string (optional) | |
value | string (optional) |
get_record_field_list_values
In the default tool list
Lists the selectable values for a list-type custom field on an Aprimo record (option-list entries, classifications, users, or user groups, depending on the field's dataType) — not the field's current value(s); use get_record_field for that. Use filter/sort to narrow a long option set.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
recordId | string | Yes | The record id (32-char hex / GUID). |
fieldId | string | Yes | The field definition id (GUID) whose selectable values to list. |
filter | string | No | Optional filter expression (DAM query syntax). Omit to list every selectable value. |
sort | string | No | Optional sort expression. Omit for the endpoint's default order. |
skip | integer | No | Number of items to skip, for paging. Defaults to 0. |
take | integer | No | Maximum number of items to return. Omit for the endpoint's default page size. |
Returns:
| Field | Type | Description |
|---|---|---|
recordId | string | |
fieldId | string | |
count | integer | |
items | array of RecordFieldListValuePayload | |
items[].id | string | |
items[].name | string (optional) | |
items[].label | string (optional) | |
items[].kind | string | Best-effort variant classification: "Option", "Classification", "User", "UserGroup", or "Unknown". |
get_record_master_file
In the default tool list
Gets the master file of an Aprimo record (checkout status, checkout date, watermark, creation date) — the file id itself, distinct from get_record_master_file_version's file version id. Use get_file (by this file id) for the same shape scoped generically to any file.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
recordId | string | Yes | The record id (32-char hex / GUID). |
Returns:
| Field | Type | Description |
|---|---|---|
id | string | |
checkedOut | boolean | |
checkedOutOn | string | |
watermarkId | string | |
watermarkType | string | |
createdOn | string |
get_record_metadata
In the default tool list
Retrieves the full metadata for a single Aprimo record by its ID. Returns system properties (title, status, content type, dates), master file info (filename, extension, size, version), and all custom field values. Use this tool when you need detailed information about a specific asset. The record ID is a GUID — you can get it from search_aprimo results. If the user asks for specific custom fields (e.g. "show me the keywords", "what's the status"), pass their terms via includeFields — matching is case-insensitive and partial, so "keyword" matches a field labeled "Keywords". Display format: Show the title in bold, then list all properties and custom fields as bullet points. For custom fields, display only "label: value" — never show id, fieldName, or dataType to the user.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
recordId | string | Yes | The record ID (GUID format, e.g. "a1b2c3d4-e5f6-7890-abcd-ef1234567890"). Obtain from search_aprimo results. |
includeFields | string | No | Optional comma-separated list of custom field terms to include. Matching is case-insensitive: an exact match on field id, or a substring match on fieldName or label. Examples: "keywords", "Status", "brand,campaign". Omit to return all fields. |
Returns:
| Field | Type | Description |
|---|---|---|
id | string | |
title | string (optional) | |
status | string (optional) | |
contentType | string (optional) | |
createdOn | string (optional) | |
modifiedOn | string (optional) | |
deepLink | string (optional) | |
masterFile | RecordFileInfo (optional) | |
masterFile.fileName | string (optional) | |
masterFile.extension | string (optional) | |
masterFile.fileSize | integer (optional) | |
masterFile.versionNumber | integer (optional) | |
fields | array of RecordFieldValue | |
fields[].id | string | |
fields[].fieldName | string (optional) | |
fields[].label | string (optional) | |
fields[].dataType | string (optional) | |
fields[].localizedValues | array of RecordLocalizedValue | |
fields[].localizedValues[].languageId | string (optional) | |
fields[].localizedValues[].value | string (optional) | |
fields[].localizedValues[].values | array of string (optional) |
get_record_permissions
In the default tool list
Gets the calling user's own effective permissions on an Aprimo record: read, read-all-versions, modify, delete, download, and full control. Use when the user asks what they're allowed to do with a specific asset.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
recordId | string | Yes | The record id (32-char hex / GUID). |
Returns:
| Field | Type | Description |
|---|---|---|
recordId | string | |
canRead | boolean (optional) | |
canReadAllVersions | boolean (optional) | |
canModify | boolean (optional) | |
canDelete | boolean (optional) | |
hasFullControl | boolean (optional) | |
canDownload | boolean (optional) |
get_record_preview_url
In the default tool list
Returns the preview image URL for an Aprimo record. Previews are larger images (typically 800x600) suitable for detail views. The URL contains a time-limited SAS token (typically 24 hours). Returns a user-friendly message if no preview exists. Important: Display the URL as plain text, never as an HTML img tag.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
recordId | string | Yes | The record ID (GUID format). Obtain from search_aprimo results. |
Returns:
| Field | Type | Description |
|---|---|---|
id | string | |
title | string (optional) | |
uri | string (optional) | |
width | integer (optional) | |
height | integer (optional) | |
extension | string (optional) |
get_record_thumbnail_url
In the default tool list
Returns the thumbnail image URL for an Aprimo record. Thumbnails are small images (typically 150x150) suitable for list/grid displays. The URL contains a time-limited SAS token (typically 24 hours). Returns a user-friendly message if no thumbnail exists. Important: Display the URL as plain text, never as an HTML img tag.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
recordId | string | Yes | The record ID (GUID format). Obtain from search_aprimo results. |
Returns:
| Field | Type | Description |
|---|---|---|
id | string | |
title | string (optional) | |
uri | string (optional) | |
width | integer (optional) | |
height | integer (optional) | |
extension | string (optional) |
list_record_associated_collections
In the default tool list
Lists the Aprimo collections a record belongs to (static collections it was manually added to, or dynamic collections whose search criteria it currently matches). Use get_collection_records for the reverse direction (a collection's records).
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
recordId | string | Yes | The record id (32-char hex / GUID). |
skip | integer | No | Number of items to skip, for paging. Defaults to 0. |
take | integer | No | Maximum number of items to return. Defaults to 10. |
Returns:
| Field | Type | Description |
|---|---|---|
recordId | string | |
count | integer | |
items | array of CollectionPayload | |
items[].id | string | |
items[].name | string | |
items[].description | string | |
items[].type | string | |
items[].createdOn | string | |
items[].modifiedOn | string |
list_record_audit_trail
In the default tool list
Lists the audit trail (change history) for an Aprimo record: who changed what and when, one summary entry per change event. Pass filter="Change" or filter="Download" to narrow to just modifications or just download events. Use get_record_audit_trail_entry (by an entry's id from this list) for the individual field changes within one entry.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
objectId | string | Yes | The record id (32-char hex / GUID) — the audit trail's object id. |
filter | string | No | Optional — restrict to "Change" or "Download" events. Omit for every event type. |
skip | integer | No | Number of items to skip, for paging. Defaults to 0. |
take | integer | No | Maximum number of items to return. Omit for the endpoint's default page size. |
Returns:
| Field | Type | Description |
|---|---|---|
objectId | string | |
entryCount | integer | |
count | integer | |
items | array of RecordAuditTrailEntrySummaryPayload | |
items[].id | integer | |
items[].type | string (optional) | |
items[].userId | string (optional) | |
items[].createdOn | string (optional) | |
items[].changeCount | integer (optional) |
list_record_classifications
In the default tool list
Lists every classification assigned to an Aprimo record, in sort order, with whether each was assigned manually or automatically via classification mappings.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
recordId | string | Yes | The record id (32-char hex / GUID). |
sort | string | No | Optional sort expression, e.g. "sortIndex asc". Omit for the endpoint's default order. |
skip | integer | No | Number of items to skip, for paging. Defaults to 0. |
take | integer | No | Maximum number of items to return. Omit for the endpoint's default page size. |
Returns:
| Field | Type | Description |
|---|---|---|
recordId | string | |
count | integer | |
items | array of RecordClassificationPayload | |
items[].recordId | string | |
items[].classificationId | string | |
items[].name | string (optional) | |
items[].sortIndex | integer (optional) | |
items[].isManual | boolean (optional) |
list_record_fields
In the default tool list
Lists the custom field values on an Aprimo record, by the record's id. Use includeFields to filter to specific fields (matches by id exactly, or by fieldName/label substring). get_record_metadata also returns fields alongside the record's system properties — use that when you need both. Display each as "label: value" — never show id/fieldName/dataType to the user.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
recordId | string | Yes | The record id (32-char hex / GUID). |
includeFields | string | No | Optional comma-separated list of custom field terms to include. Matching is case-insensitive: an exact match on field id, or a substring match on fieldName or label. Examples: "keywords", "Status", "brand,campaign". Omit to return all fields. |
skip | integer | No | Number of items to skip, for paging. Defaults to 0. |
take | integer | No | Maximum number of items to return. Omit for the endpoint's default page size. |
Returns:
| Field | Type | Description |
|---|---|---|
recordId | string | |
count | integer | |
items | array of RecordFieldPayload | |
items[].recordId | string | |
items[].id | string | |
items[].fieldName | string (optional) | |
items[].label | string (optional) | |
items[].dataType | string (optional) | |
items[].value | string (optional) |
list_record_files
In the default tool list
Lists every file attached to an Aprimo record (typically just the master file, but a record can have more): checkout status, checkout date, watermark, and creation date per file. Use get_record_master_file for just the master file, or get_file_versions (by file id) for a file's version history.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
recordId | string | Yes | The record id (32-char hex / GUID). |
Returns:
| Field | Type | Description |
|---|---|---|
recordId | string | |
count | integer | |
items | array of FilePayload | |
items[].id | string | |
items[].checkedOut | boolean | |
items[].checkedOutOn | string | |
items[].watermarkId | string | |
items[].watermarkType | string | |
items[].createdOn | string |
list_records
In the default tool list
Lists Aprimo records as a plain paged listing (not relevance-ranked — use search_aprimo for keyword/relevance search). Use filter/sort with DAM query syntax to narrow the list, e.g. filter="Status = 'Released'", sort="ModifiedOn desc".
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
filter | string | No | Optional filter expression (DAM query syntax), e.g. "Status = 'Released'". Omit to list every record. |
sort | string | No | Optional sort expression, e.g. "ModifiedOn desc". Omit for the endpoint's default order. |
skip | integer | No | Number of items to skip, for paging. Defaults to 0. |
take | integer | No | Maximum number of items to return. Omit for the endpoint's default page size. |
Returns:
| Field | Type | Description |
|---|---|---|
count | integer | |
items | array of RecordPayload | |
items[].id | string | |
items[].title | string | |
items[].status | string | |
items[].contentType | string | |
items[].createdOn | string | |
items[].modifiedOn | string | |
items[].deepLink | string | |
items[].fields | map of string |
preview_record_bulk_edit
Available on request
Previews a bulk edit (status, content type, and/or field changes) across multiple Aprimo records in one call. Read-only dry run -- changes nothing and does not lock any record (it never opens a DAM edit session). Returns the affected record count, a sample of the record ids, the resolved field add/remove diff, and a confirm_token. To actually apply the change, call apply_record_bulk_edit next with the exact same arguments plus that confirm_token and confirmed=true. disable_validations=true is flagged high-risk -- confirm it explicitly with the user before applying. Edits over 1000 records are flagged over_hard_threshold and require acknowledge_large=true on apply.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
recordIds | array of string | Yes | The record ids (32-char hex) to bulk-edit. |
status | string | No | Optional: lifecycle status to set on every targeted record. |
contentType | string | No | Optional: content type to set on every targeted record. |
fieldsAddOrUpdate | object (map of string) | No | Field values to add or update on every targeted record. JSON object mapping field name to its new string value. |
fieldsRemove | array of string | No | Field names whose value should be cleared on every targeted record. |
disableValidations | boolean | No | High-risk: when true, skips DAM's field and business rule validations for this edit. |
Returns:
| Field | Type | Description |
|---|---|---|
affectedCount | integer | |
idSample | array of string | |
proposed | RecordStartBulkEditSessionCommand | |
proposed.ids | array of string | |
proposed.status | string (optional) | |
proposed.contentType | string (optional) | |
proposed.fields | FieldCollectionModel | |
proposed.fields.addOrUpdate | array of FieldModel | |
proposed.fields.remove | array of FieldModel | |
proposed.disableValidations | boolean | |
disableValidationsWarning | string (optional) | Non-null only when disableValidations=true — see BulkEditTools.BuildDisableValidationsWarning. |
overHardThreshold | boolean | True when the record count exceeds BulkEditTools.HardThreshold — apply then requires acknowledge_large=true. |
confirmToken | string |
sanitize_record_field_html
In the default tool list
Sanitizes HTML content for an Aprimo record field, stripping disallowed tags/attributes/styles per the field's configured allow-list. Stateless utility — does not write the result back to the record; pass the returned cleanValue to update_record_metadata_field yourself if you want to save it. Safe to call without user confirmation — it never modifies data.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
recordId | string | Yes | The record id (32-char hex / GUID). |
fieldId | string | Yes | The field definition id (GUID) whose HTML allow-list to sanitize against. |
value | string | Yes | The HTML content to sanitize. |
Returns:
| Field | Type | Description |
|---|---|---|
recordId | string | |
fieldId | string | |
dirty | boolean | |
cleanValue | string (optional) | |
removedTags | array of string | |
removedAttributes | array of string | |
removedStyles | array of string | |
removedAtRules | array of string | |
removedComments | array of string | |
removedCssClasses | array of string | |
filteredUrls | array of string |
update_record_metadata_field
In the default tool list
Updates a single metadata field on an Aprimo record. Supports text, number, date, text-list, and option list fields. Use get_record_metadata first to discover field names and IDs. Use get_custom_field_definition to check field constraints and valid option values. Provide either fieldName or fieldId to identify the field (not both). Provide either value (for single-value fields), values (for multi-value fields like text-list or option list), or set clear=true to clear the field. The languageId is required — get it from get_record_metadata results (each field's localizedValues[].languageId).
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
recordId | string | Yes | The record ID (GUID format). |
languageId | string | Yes | The language ID (GUID format). Get from get_record_metadata results: each field's localizedValues[].languageId. |
fieldName | string | No | The field name to update. Provide either fieldName or fieldId, not both. |
fieldId | string | No | The field definition ID (GUID) to update. Provide either fieldName or fieldId, not both. |
value | string | No | The new value for single-value fields (text, number, date). For dates use ISO 8601 (e.g. "2026-12-31"). For numbers pass as string (e.g. "49.99"). |
values | string | No | The new values for multi-value fields (text-list, option list). For option lists, use option names from get_custom_field_definition. |
clear | boolean | No | Set to true to clear the field value. |
Returns:
| Field | Type | Description |
|---|---|---|
recordId | string | |
fieldName | string (optional) | |
success | boolean | |
message | string (optional) |
update_record_metadata_fields
In the default tool list
Updates multiple metadata fields on an Aprimo record in a single call. Each field edit supports the same options as update_record_metadata_field: provide either fieldName or fieldId to identify the field (not both), then exactly one of value (single-value fields), values (multi-value fields like text-list or option list), or clear=true — plus the required languageId for that field. Use get_record_metadata first to discover field names and IDs. Use get_custom_field_definition to check field constraints and valid option values. All field edits are validated before any change is applied — if one edit is invalid, the whole call fails and nothing is updated (no partial application). Prefer this over calling update_record_metadata_field repeatedly when updating more than one field on the same record.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
recordId | string | Yes | The record ID (GUID format). |
fields | array of FieldEditInput | Yes | The field edits to apply, one per field. Each entry supports fieldName/fieldId (provide one), value/values/clear (provide exactly one), and languageId (required) — the same per-field rules as update_record_metadata_field. |
Returns:
| Field | Type | Description |
|---|---|---|
recordId | string | |
updatedFields | array of string | |
success | boolean | |
message | string (optional) |
validate_record_field_html
In the default tool list
Validates HTML content for an Aprimo record field against the field's allow-list, without modifying anything. Stateless utility, safe to call without user confirmation. Use sanitize_record_field_html if you want the content cleaned rather than just checked.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
recordId | string | Yes | The record id (32-char hex / GUID). |
fieldId | string | Yes | The field definition id (GUID) whose HTML allow-list to validate against. |
value | string | Yes | The HTML content to validate. |
Returns:
| Field | Type | Description |
|---|---|---|
recordId | string | |
fieldId | string | |
valid | boolean | |
parseError | string (optional) |
Related
- Aprimo MCP Server — configuration, connection details, and authentication
- MCP Tool Permission Map — the Aprimo permissions that make each tool visible to your agent
- REST API vs. MCP — choosing the right integration approach for your agent