Infor M3 API Swagger: Discover MI Programs, Authenticate and Test Calls
infor m3 api swagger
Also searched as
- infor m3 api documentation openapi
- infor m3 rest api swagger
- find m3 mi programs and transactions
Short answer
M3 exposes its business logic as MI programs (such as MMS200MI or OIS100MI) with transactions that you call over REST through ION API. The ION API portal presents the available APIs with Swagger/OpenAPI documentation, so you can browse programs and transactions, see input and output fields, and try calls after authenticating with an OAuth 2.0 token from an ionapi credentials file.
Applies to: Infor M3 with Infor OS / ION API (cloud and on-prem); portal layout and menu names vary by version
How to discover and test M3 APIs
- 1In Infor OS open ION API and look for the API suite entries for M3. The M3 API documentation is exposed there with an OpenAPI/Swagger view.
- 2Browse the MI programs. Each program (for example MMS200MI for items) contains transactions such as GetItmBasic or LstItmBasic. Open a transaction to see its input fields and returned fields.
- 3Create an authorized application in ION API as a backend or service type, and download its credentials as an .ionapi file. Treat that file as a secret.
- 4Read the file: it holds the tenant id, client id, client secret, the base and token endpoints, and service account keys if you use the service account flow.
- 5Request an access token from the token endpoint using the grant type documented for your application type, and note the expiry time.
- 6Call the M3 REST path with the Authorization: Bearer header. The pattern is the ION API gateway URL, the tenant, M3, then m3api-rest/v2/execute followed by program and transaction.
- 7Pass input fields as query parameters, for example ITNO for an item number, and read the JSON response, including the error element if the transaction failed.
- 8Make sure the service user has M3 authorizations for the program and transaction; an authorization error in M3 comes back as an error in the response, not as an HTTP failure.
What Swagger shows and does not show
The Swagger view documents the REST surface: path, method, parameters and response structure. For M3 it is the quickest way to find the exact transaction name and the field names without reading the older MI program documentation.
It does not show your business rules. A call can be valid in structure and still fail in M3 because of a missing authorization, a wrong company or division, or a rule specific to your configuration. The error text in the response is your guide.
Authentication through ION API
Production integrations should use a service account flow with the keys in the ionapi file, so no human password is stored in the integration. Keep the file out of source control, rotate the secret on a schedule, and give the service user only the M3 authorizations the integration needs.
Tokens expire. Cache the token for its lifetime and refresh on expiry rather than requesting one per call, which is slow and may be rate limited.
GET https://<ionapi-gateway>/<tenant>/M3/m3api-rest/v2/execute/MMS200MI/GetItmBasic?ITNO=A100 Authorization: Bearer <access_token> Accept: application/json
Testing and common errors
Test in Swagger or a tool such as Postman first, with one item you know exists. Then move the same call into code. If it works in the tool and fails in code, compare headers and the URL line by line.
Common errors: expired token (401), wrong tenant in the path, missing M3 authorization for the program, and list transactions returning only a capped number of records. Handle pagination for lists as described in the page on MI list pagination.
Try it here, free
Infor M3 MI API Transaction Call Generator
Fill in program, transaction and parameters to get a ready M3 REST call as URL, curl and a JavaScript fetch snippet.
Common pitfalls
- !Committing the .ionapi file to source control.
- !Requesting a token for every call instead of caching it.
- !Using a personal user instead of a service account for integrations.
- !Assuming a valid REST call implies M3 authorization.
- !Ignoring the maximum returned records on list transactions.
How an ERP-grounded AI assistant handles this
An assistant that knows your M3 API catalog can turn a request in plain language into the right MI program, transaction and field names, show the call it would make, and run read-only transactions on request. Write transactions stay behind human approval.
Frequently asked questions
Where is the Infor M3 API Swagger?
In Infor OS under ION API, where the M3 APIs are documented with an OpenAPI/Swagger view. Availability and exact navigation depend on your Infor OS version and tenant.
How do I authenticate to the M3 REST API?
Create an authorized app in ION API, download the .ionapi file, request an OAuth 2.0 token from the token endpoint it describes, and send it as a Bearer token. Service accounts are recommended for integrations.
What is an MI program?
An MI program is an M3 API program, for example MMS200MI for items. It contains transactions that read or change M3 data, each with defined input and output fields.
Why does my call return an authorization error?
The user the token represents lacks M3 authority for that program or transaction. Grant the right security permissions in M3 to the service user and retry.
Related
How to Call M3 API (MI Programs) Through ION API
Calling M3 from an external system today almost always means going through ION API rather than the older direct MvxAPI SOAP endpoint: you create an ION API authorized app or service account in the ION API portal, download its .ionapi credential file, obtain an OAuth 2.0 access token, and call the M3 MI program transaction through the m3api-rest execute endpoint with that token.
AdvancedPaging M3 API MI List Transactions Past the Default Record Limit
M3 List transactions (the read/browse transaction most MI programs expose, such as CRS610MI.LstByNumber or OIS100MI.LstOrderHead) cap the rows returned per call using the MaxReturnedRecords input field, and by default many clients leave it low or unset, which looks like the API silently truncating results. Set MaxReturnedRecords explicitly, then loop the call using the last key values from the previous page as the starting position until fewer rows than the limit come back.
Error fixM3 API Error: Not Authorized to Program
Not authorized to program (or the equivalent transaction-level authorization error) means the M3 user ID the integration authenticates as can log in fine but has not been granted access to that specific MI program, transaction, or company/division through its authority group. Fixing it means adding the program/transaction to the integration user's authority group in M3, not changing anything in the calling code.
Error fixM3 API Error: Record already exist
Record already exist means the MI Add transaction you called is trying to insert a key that is already present in the target M3 table, most often because a prior call succeeded and was retried, or because the key fields you built do not match what you think they match. Read the errorField and errorFieldGroup attributes on the response to see exactly which key field M3 flagged, then either switch to the matching Chg (change) transaction or fix the key construction in the caller.
How-toHow to Build a Grid Mapping in M3 Enterprise Collaborator (MEC)
M3 Enterprise Collaborator (MEC) moves data between an external format (EDI, flat file, XML) and M3's own API by chaining a collection step (getting the document in), a grid mapping step (field-level transformation from source structure to M3 API call structure), and a delivery step (executing the mapped MI transaction). Building a new mapping means defining the source document structure, building the grid that maps each source field to its M3 API field, and testing with representative sample documents before going live.
How-toHow to Add a Personalization Script to an M3 H5 Panel
M3 H5 lets an administrator attach a JavaScript personalization script to a specific panel of a specific program, using the MForms client API to read fields, react to panel and field events, and adjust the UI (hide fields, set defaults, validate input) without modifying the underlying M3 program. Scripts are written and attached through Personalization mode in H5, saved against the panel/program combination, and deployed to the users or roles who should see the behavior.
AI for ERPInfor M3 AI: A Practical Path from MI Programs to a Private Assistant
Infor M3 AI explained: grounded natural-language answers over MI programs and MEC, agents for distribution and manufacturing, on-prem or EU private cloud.
AI for ERPAI Agents Over Infor ION API, BODs, and the Infor Data Lake
Build AI agents on Infor ION API Gateway, BODs, and Data Lake, alongside or instead of Infor's own GenAI features, with your choice of model and hosting.
Stuck on Infor M3?
Talk to engineers who work inside Infor M3 every week, and who build private AI that answers these questions from your own ERP data.
Keep exploring
Free tools
- Infor M3 MI API Transaction Call GeneratorFill in program, transaction and parameters to get a ready M3 REST call as URL, curl and a JavaScript fetch snippet.
- M3 MI API Batch Load Time EstimatorEstimate how long a bulk load through M3 APIs will run and how added parallel threads change it, using your own measured response time.
- Infor M3 Field Name GlossarySearchable list of common M3 field codes and what they mean, useful for MI APIs, reports and mapping documents.
ERP fixes and how-tos
- How to Call M3 API (MI Programs) Through ION APIHow to build and authenticate an ION API call to an M3 MI program: service account setup, the .ionapi file, the execute endpoint URL, and request/response shape.
- Infor M3 SDK, MI APIs and REST API Documentation GuideDeveloper map of the Infor M3 SDK: MI programs, the REST API through ION API, authentication, example calls, and where to find the official documentation.
- Private AI Layer for Infor M3 On-Prem: Reference ArchitectureReference architecture to add a private AI assistant to Infor M3 on-prem: data access paths, retrieval, permissions, sizing and rollout, no cloud needed.
Guides
- Infor M3 API Integration with MI Programs and RESTInfor M3 API integration guide covering MI programs, the m3api-rest v2 endpoint, ION API gateway OAuth, Event Hub, and error handling for reliable interfaces.
- Infor M3 API Performance Optimization GuideOptimize Infor M3 API performance. MI program tuning, API call batching, caching strategies, and connection pool management for high-volume integrations.
- Infor M3 API Toolkit: A Developer's Guide to MI Programs and MvxAPIBuild robust integrations with the Infor M3 API toolkit. Learn MI programs, MvxAPI patterns, and transaction handling for M3 13.4+ environments.
Integrations
- How to build an MCP server for Infor M3How to build a Model Context Protocol server for Infor M3: which read-only tools to expose over MI programs, ION or on-prem auth, transports, scoping and audit.
- How to add AI agents to Infor M3How to add AI agents to Infor M3: a tool layer over MI programs and ION, read-first workflows for POs, MO and CO exceptions, and human approval on writes.