In Maximo Application Suite, documents and images are stored as attachments and linked through DOCLINKS. While this is straightforward in the UI, retrieving these attachments programmatically is less obvious.

This post walks through a simple pattern for using the REST API to:

  1. Locate a document via DOCLINKS
  1. Retrieve the actual binary content, including images

Understanding the Flow

Maximo does not store document binaries directly on the main business objects. Instead:

  • The DOCLINKS object stores metadata about attachments linking files and records
  • The DOCINFO represents the actual file content and is retrieved through a document endpoint

Because of this, the process always involves two steps:

  1. Query DOCLINKS to identify the attachment
  1. Use the returned identifier to fetch the content

My Scenario

In Maximo, I have added my headshot as an attachment to my person records. My person record is PHIL.RUNION for this example. As part of this example, I am going to use the MXPERSON object structure to pull my headshot from my person record using the REST API and Postman.

Prerequisites

  • Have object structure access in Manage
  • Have a Manage API key for your user

Step 1: Setup an Object Structure

I am starting with the MXPERSON object structure, duplicating it, and adding the DOCLINKS object as a source object. You can use out-of-the-box object structures if they already have the DOCLINKS source object.  

  • Duplicate the MXPERSON object structure in Manage
  • Add DOCLINKS as a source object with relationship to the main object
  • Configure security access for the object structure

Step 2: Use Postman to Pull Your Record

Next I am establishing a basic REST query in Postman to pull my person record. This both establishes a connection that we can build upon but also allows us to pull the document reference for the next step. Not in my query that I am using an oslc where clause to pull only my example record. In addition to this post you will need a header with the key “apikey” and a valid API key with access.  

Example GET query in Postman:

https://mas.manage.demo.naviam.app/maximo/api/os/NVMPERSON?oslc.select=personid, displayname, doclinks{*}&oslc.where=personid="PHIL.RUNION"&lean=1


What this does:

  • oslc.where=document="..." filters for a specific record
  • oslc.select= personid, displayname, doclinks{*} returns a couple fields from person and all available fields from doclinks
  • lean=1 removes metadata noise and simplifies the response

In the DOCLINKS object you can see the attachments information that we can use to pull the image. From the response payload, identify the record containing:

  • The internal resource identifier
  • The href value, which represents the document endpoint

This href is what you will use in the next step.

Step 3: Retrieve the Image

Once you have the document reference, you can call the document endpoint directly. The nice thing about Postman is that it can take the raw document data in Base64 format and visualize it. If you are using another tool you will need to process the output into a file that is usable.  

Example:

https://mas.manage.demo.naviam.app/maximo/api/os/m4m_doclinks/_MTYwNzc4L0F0dGFjaG1lbnRzLzM5NzE5L1BFUlNPTg--?oslc.select=documentdata&lean=1&inlinedoc=1


Key parameters:

  • oslc.select=documentdata
    Returns the binary content of the document
  • inlinedoc=1
    Ensures the document data is returned inline in the response
  • lean=1
    Keeps the response clean and focused

Common Considerations

Security and Authentication

Ensure your API call includes proper authentication, typically via API key or session token.

Performance

Avoid pulling large documents in bulk. Instead:

  • Retrieve only the documents you need

File Size Limits

Large attachments can increase response size significantly. Consider streaming or alternative handling if needed.

Object Structure

The exact object structure may vary depending on your object structure configuration, but the pattern remains consistent.

This approach is simple once you understand the separation between metadata and content in Maximo. It is especially useful for:

  • Integrations that need attachment access
  • Custom UI components displaying images
  • Automations that process uploaded files

If you are building against MAS APIs, this is a pattern you will reuse often.

Unlock the Ultimate Guide to IBM Maximo Application Suite (MAS)

Discover everything you need to know to modernize your asset management strategy.

Inside, you’ll learn:

  • What’s new in IBM Maximo Application Suite 9.0
  • Key differences between Maximo 7.6 and MAS
  • How AppPoints and OpenShift change the game
  • Industry use cases across energy, manufacturing, and transportation
  • Step-by-step guidance for upgrading and migration readiness
Cover of 'The Ultimate Guide to MAS Maximo Application Suite' by Naviam featuring a man in a yellow construction helmet and safety vest holding a tablet.
×

ActiveG, BPD Zenith, EAM Swiss, InterPro Solutions, Lexco, Peacock Engineering, Projetech, Sharptree, and ZNAPZ have united under one brand: Naviam.

You’ll be redirected to the most relevant page at Naviam.io in a few seconds — or you can go now.

Read Press Release