Extract API

You can use the Extract API to retrieve data from Maximo Inventory Optimization for further analysis, storage, or integration into other systems such as data lakes or ERP systems. This API supports data extraction for different periods, pagination, and filtering, which offers flexibility in how you retrieve and manage a large dataset.

Overview

The Extract API provides access to the following types of data.

Exports
Data that is exported to the customer’s ERP system.
Snapshots
Data that represents the state of the system at specific points in time, for example, the end of the month or delta refreshes.
Main data
The current state of data, for example, item data, store item data, issues, receipts.

Endpoints

The Extract API offers several endpoints to retrieve metadata and data for the following categories of information.
Exports
Exports represent data that is exported from Maximo Inventory Optimization to the customer’s ERP system.
  • The GET /dataapi/extract/meta/exports endpoint returns metadata about all export profiles, including details such as profile keys, column names, and descriptions.
  • The GET /dataapi/extract/meta/exports/{profile} endpoint returns metadata for a specific export profile. The metadata includes the column names, data types, and descriptions.
  • The GET /dataapi/extract/data/exports/{profile} endpoint returns a CSV file with the exported data for a specific profile. By default, all exported data since the most recent end-of-month (EOM) refresh is returned.
Snapshots
Snapshots capture the state of the data at specific points in time, which is typically at the end of each month.
  • The GET /dataapi/extract/meta/snapshot/items returns metadata for item snapshots. This metadata includes the available fields in the item snapshot.
  • The GET|POST /dataapi/extract/data/snapshot/items returns item snapshot data for the specified date range. A POST request can be made to limit the number of columns that are returned.
  • The POST /dataapi/extract/data/snapshot/items/filter returns item snapshot data with applied advanced filters. Filters are applied to the SET_ITEM table.
  • The GET /dataapi/extract/meta/snapshot/storeitems returns metadata for store item snapshots.
  • The GET|POST /dataapi/extract/data/snapshot/storeitems returns store item snapshot data for the specified date range. A POST request can limit the number of columns that are returned.
  • The POST /dataapi/extract/data/snapshot/storeitems/filter endpoint returns store item snapshot data with filters applied, verified against the SET_ITEM table.
  • The GET /dataapi/extract/meta/snapshot/deltaitems endpoint returns metadata for delta item snapshots.
  • The GET|POST /dataapi/extract/data/snapshot/deltaitems endpoint returns delta item snapshot data for the specified date range. A POST request can limit the number of columns that are returned.
  • The POST /dataapi/extract/data/snapshot/deltaitems/filter endpoint returns delta item snapshot data with filters applied, verified against the SET_ITEM table.
Main data
Main data represents the current state of items, store items, issues, and receipts.
  • The GET /dataapi/extract/meta/items endpoint returns metadata for item data, including available columns and descriptions.
  • The GET|POST /dataapi/extract/data/items returns item data in the CSV format. A POST request can be made to limit the number of columns that are returned.
  • The POST /dataapi/extract/data/items/filter endpoint returns item data with advanced filters applied, verified against the SET_ITEM table.
  • The GET /dataapi/extract/meta/storeitems endpoint returns metadata for store item data.
  • The GET|POST /dataapi/extract/data/storeitems endpoint returns store item data in the CSV format. A POST request can be made to limit the number of columns that are returned.
  • The POST /dataapi/extract/data/storeitems/filter endpoint returns store item data with advanced filters applied, verified against the SET_ITEM table.
  • The GET /dataapi/extract/meta/issues endpoint returns metadata for issue data.
  • The GET|POST /dataapi/extract/data/issues endpoint returns issue data in the CSV format. A POST request can be made to limit the number of columns that are returned.
  • The POST /dataapi/extract/data/issues/filter endpoint returns issue data with advanced filters applied, verified against the BASE_ISSUE table.
  • The GET /dataapi/extract/meta/receipts endpoint returns metadata for receipt data.
  • The GET|POST /dataapi/extract/data/receipts endpoint returns receipt data in CSV format. A POST request can be made to limit the number of columns that are returned.
  • The POST /dataapi/extract/data/receipts/filter endpoint returns receipt data with advanced filters applied, verified against the BASE_RECEIPT table.

Key parameters

Date range parameters
  • from Specifies the start of the data extraction period (inclusive). It uses the ISO 8601 format, which is YYYY-MM-DDTHH:mm:ss.sss.
  • to Specifies the end of the data extraction period (exclusive). If not provided, the current date and time are used.
Refresh type and period
  • refreshType Defines the type of data refresh.
  • eom Returns an end of month refresh.
  • delta Returns delta, or incremental, refreshes.
Period
  • Number Indicates how many periods to include.
  • Predefined string
    • current Returns data since the most recent refresh.
    • last Returns data from the previous period.
    • all Returns all available data. Use with caution because it might return a large dataset.
Advanced filter
Applies complex conditions to the data. plain text or base64e encoded filters can be used. The filterEncoded flag indicates whether the filter is base64 encoded.

Data formats

Response format
By default, the API returns data in the .csv format. The .CSV file can be optionally compressed by setting the Accept-Encoding header to GZIP.
Metadata format
Metadata is returned in the .json format, which includes column names, types, and descriptions.

Request headers

When you make requests to the API, especially when you are downloading a large dataset, include the following header.

Accept-Encoding: gzip

This parameter compresses the content to reduce the amount of data that is transferred, which can speed up the download.

Example use cases

Monthly data snapshot
You can use the API to extract data for the last month, for example from 1 July 2021 to 1 August 2021. By using the refreshType=eom and period=1 parameters, the API returns a snapshot of data from the previous month's refresh.
Real-time changes
To extract only changes that occurred since the most recent refresh, use refreshType=delta and period=0. These parameters can be useful for applications that need to track incremental changes.
Filtered exports
Using the POST method, you can specify only the columns that you need, which reduces the amount of data that is transferred and can make the process more efficient.

Error handling

HTTP 429 - Too Many Requests

This error occurs if multiple extract requests are made simultaneously. Only one extract request can be in progress at a time.