The Aprimo DAM REST API assigns a unique URL to each resource (`assets`, `records`, `classifications`, etc.). You can interact with these using standard HTTP methods: `GET`, `PUT`, `POST`, and `DELETE`. The REST API is the preferred method for integrations and UI development. :::important You can find POSTMAN Examples of the full Aprimo DAM REST API at in our [POSTMAN Examples](https://developers-api.aprimo.com/#0b64aa4b-2033-43c2-913d-338eb75676de) page. ::: ## Quickstart Tutorial To get started with the Aprimo DAM REST API right away, navigate to our [DAM - Getting Started](../../tutorials/dam-developer-tutorial.md) article. ## When to Use the REST API Use the REST API if your application needs to: - Read/write `records`, `files`, `classifications`, and `metadata` - Manage `settings ` - Perform `searches` - Trigger `maintenance jobs` - Utilize Enterprise Search features ## API Endpoint & Documentation - **API Endpoint**: `https://{aprimoDomain}.dam.aprimo.com/api/core/` - **Upload File Endpoint**: `https://{aprimoDomain}.aprimo.com/uploads` - **Documentation**: Documentation on the REST API can be found at this site. - **Examples**: Examples of the DAM REST API can be found at our [public POSTMAN documentation](https://developers-api.aprimo.com/#0b64aa4b-2033-43c2-913d-338eb75676de) - **OpenAPI Specification**: See the [DAM OpenAPI Specification](../../openapi-specifications/dam-openapi-spec.md) article for a downloadable spec covering the most common content consumption endpoints. ## How to Use the REST API The API supports two main consumption methods: ### 1. HAL/JSON Hypermedia - Provides discoverability with embedded links for easy navigation - Clients can cache and bookmark URIs - Optimizes API requests by embedding only necessary sub-resources - **Recommended For Learning** **Example `application/hal+json` Response**: ```json { "_links": { "fields": { "href": "https://{aprimoDomain}.dam.aprimo.com/api/core/record/{recordID}/fields", "select-key": "fields" }, "files": { "href": "https://{aprimoDomain}.dam.aprimo.com/api/core/record/{recordID}/files", "select-key": "files" }, "thumbnail": { "href": "https://{aprimoDomain}.dam.aprimo.com/api/core/record/{recordID}/image/thumbnail", "select-key": "thumbnail" }, "masterfile": { "href": "https://{aprimoDomain}.dam.aprimo.com/api/core/record/{recordID}/masterfile", "select-key": "masterfile" }, "masterfilelatestversion": { "href": "https://{aprimoDomain}.dam.aprimo.com/api/core/record/{recordID}/masterfilelatestversion", "select-key": "masterfilelatestversion" }, "classifications": { "href": "https://{aprimoDomain}.dam.aprimo.com/api/core/record/{recordID}/classifications", "select-key": "classifications" }, "accesslists": { "href": "https://{aprimoDomain}.dam.aprimo.com/api/core/record/{recordID}/accesslists", "select-key": "accesslists" }, "permissions": { "href": "https://{aprimoDomain}.dam.aprimo.com/api/core/record/{recordID}/permissions", "select-key": "permissions" }, "locks": { "href": "https://{aprimoDomain}.dam.aprimo.com/api/core/record/{recordID}/locks", "select-key": "locks" }, "analytics": { "href": "https://{aprimoDomain}.dam.aprimo.com/api/core/record/{recordID}/analytics", "select-key": "analyticsdata" }, "modifiedby": { "href": "https://{aprimoDomain}.dam.aprimo.com/api/core/user/{userID}", "select-key": "modifiedby" }, "createdby": { "href": "https://{aprimoDomain}.dam.aprimo.com/api/core/user/{userID}", "select-key": "createdby" }, "self": { "href": "https://{aprimoDomain}.dam.aprimo.com/api/core/record/{recordID}" } }, "id": "{recordID}", "status": "Released", "contentType": "Asset", "title": null, "tag": null, "textContent": null, "aiInfluenced": "No", "hasImageOverlay": false, "modifiedOn": "2025-01-14T21:30:13.073Z", "createdOn": "2023-07-25T17:10:27.05Z", "_embedded": { "preview": { "_links": { "self": { "href": "https://{aprimoDomain}.dam.aprimo.com/api/core/record/{recordID}/image/preview" } }, "size": 243358, "width": 1023, "height": 1536, "extension": "jpg", "uri": "https://s1.sb.previews.aprimo.com/{aprimoDomain}/.../..." } } } ``` ### 2. Plain JSON - Requires upfront knowledge of endpoint URIs - Simpler but less flexible - **Recommended When More Familiar With DAM REST API Endpoints** ### Pagination Most routes include pre-built pagination links such as `first`, `prev`, `next`, and `last`. You can also manually control pagination using the `page` and `pageSize` parameters, supplied either as query-string or header values. - `pageSize` defaults to 50 and has a maximum of 1000 for performance reasons. Newer or recently updated routes prefer `skip`/`take` pagination instead of `page`/`pageSize` and may not support the older parameters. - `skip` — Skips the specified number of results. - `take` — Returns the specified number of results. **Example `application/json` Response**: ```json { "id": "{recordID}", "fields": null, "files": null, "preview": { "size": 243358, "width": 1023, "height": 1536, "extension": "jpg", "uri": "https://s1.sb.previews.aprimo.com/{aprimoDomain}/.../..." }, "thumbnail": null, "masterFile": null, "masterFileLatestVersion": null, "classifications": null, "accessLists": null, "status": "Released", "contentType": "Asset", "title": null, "tag": null, "textContent": null, "permissions": null, "locks": null, "aiInfluenced": "No", "analyticsData": null, "hasImageOverlay": false, "modifiedOn": "2025-01-14T21:30:13.073Z", "modifiedBy": null, "createdOn": "2023-07-25T17:10:27.05Z", "createdBy": null } ``` :::important The above example responses for `application/hal+json` and `application/json` are from the same request. ```curl curl --location 'https://{aprimoDomain}.dam.aprimo.com/api/core/record/{recordID}' \ --header 'Authorization: Bearer {token}' \ --header 'API-VERSION: 1' \ --header 'Accept: {acceptValue}' \ --header 'select-record: preview' ``` ::: ## Error Responses - **504 Timeouts** and **429 Rate Limits** return responses in **HTML**