Sage X3 API Documentation: REST (Syracuse), SOAP Web Services and Where to Find Docs
sage x3 api documentation
Also searched as
- sage x3 rest api
- sage x3 soap web services
- sage x3 sdata endpoint
Short answer
Sage X3 exposes data and business logic in two main ways: REST-style SData services through Syracuse, which read and write business objects as JSON or XML, and SOAP web services that publish X3 subprograms and objects. Official documentation is in Sage's online help and developer resources for your version.
Applies to: Sage X3 V7, V11, V12 and later; endpoint paths and available features depend on version, patch and configuration
Getting started with the X3 APIs
- 1Decide the need: reading or writing business objects (REST) or calling a specific X3 function or subprogram (SOAP web service).
- 2Create a dedicated integration user in Syracuse with the minimum role needed, and avoid a personal admin login.
- 3For REST, discover the available representations for your folder in Syracuse, and request them with an authenticated call.
- 4For SOAP, publish the object or subprogram as a web service in administration, assign it to a pool, and test with the generated WSDL.
- 5Handle authentication per your setup (basic or token-based, TLS required) and restrict network access to the integration host.
- 6Test pagination, filtering and error responses; log request ids so failures can be traced.
- 7Version your integration against the X3 release and re-test after patches.
REST through Syracuse (SData)
Syracuse serves REST resources for X3 in a path pattern under the sdata prefix, naming the endpoint, the folder and the representation, for example sales orders, items or business partners. You can read collections with filters and paging, read single records, and, where the representation allows it, create or update with POST and PUT. Responses are JSON or XML.
The Syracuse web client itself uses these services, so anything you can see on screen has a representation behind it. That is a good way to learn: inspect the calls the browser makes while you use a page. For a worked read example, see our page on reading sales orders through the REST API.
SOAP web services
Classic X3 web services publish a subprogram or object to a SOAP endpoint with a WSDL. You publish it in the web services administration, assign a pool of processes to serve calls, and consume it from your integration tool. It suits legacy integrations and cases where you need to run specific X3 business logic.
SOAP calls are tied to pools, so size and monitor them. A saturated pool is a common cause of timeouts that look like network problems.
Where documentation lives
Start with Sage's official online help for your exact version, then Sage's developer resources and knowledge base. Your reseller or implementation partner can provide version-specific guides. Treat blog posts as hints only, because endpoint details change between versions.
Whatever you build, keep the integration read-only until the data model is understood. Write calls should go through the same validations as the screens, so use representations and web services rather than database writes.
Try it here, free
Sage X3 Private AI Layer Blueprint Generator
Generate an architecture plan for adding a private AI assistant to on-prem Sage X3: SQL replica views, Syracuse SData and web services, retrieval, local GPU model, permissions and audit.
Common pitfalls
- !Using an admin user for the integration.
- !Writing straight to the database instead of through representations or web services.
- !Ignoring pool sizing, so SOAP calls time out under load.
- !Hardcoding endpoint details that change between versions.
- !No paging on collection reads, causing slow calls on large tables.
How an ERP-grounded AI assistant handles this
An AI assistant needs governed access, not database credentials. A private AI layer such as ERPray can use a read-only integration user against REST representations or SQL views, apply X3 roles, show what it queried, and run on-prem. Write-back, where used, goes through representations with human approval.
Frequently asked questions
Does Sage X3 have a REST API?
Yes. Syracuse exposes REST-style SData services for X3 objects, returning JSON or XML. The set of representations depends on your version and configuration, so check them for your folder.
What is the difference between REST and SOAP in X3?
REST exposes business objects through Syracuse and suits modern integrations. SOAP web services publish X3 subprograms and objects with a WSDL, using pools of processes, and suit older integrations or specific business logic calls.
Where is the official Sage X3 API documentation?
In Sage's online help and developer resources for your version, plus the knowledge base and your reseller's documentation. Always match the documentation to your exact version and patch.
Can I write data through the API?
Yes, where the representation or web service allows it, and it runs through X3 validations. Test thoroughly in a non-production folder first, and use a least-privilege integration user.
Related
Sage X3 REST API: Reading Sales Orders Through Syracuse
Sage X3 (version 7 and later) exposes data through Syracuse at a URL of the form /api1/x3/erp/ENDPOINT/REPRESENTATION, where the endpoint is the folder and the representation is a published object such as SORDER. A GET with credentials returns JSON, and you filter with a where clause and page with count and a link to the next page. Your integration user needs the right Syracuse and X3 rights for that representation.
Error fixSage X3 Syracuse Service Won't Start: Troubleshooting Guide
When Sage X3 users reach no login page, check the Syracuse Windows service and its dependencies in order: the MongoDB service that holds Syracuse configuration, the port and certificate Syracuse binds to, then the connection from Syracuse to the X3 runtime. Syracuse log files normally state which step failed, so read the log before restarting things repeatedly.
How-toSage X3 Table Dictionary: How to Browse Tables and What PAYMENTD Holds
Sage X3 keeps its table definitions in a data dictionary you browse from the development area of the application. Tables are named in short uppercase codes, live in the folder's schema (often a schema named like the folder, such as SEED), and columns carry a numeric suffix like _0. PAYMENTD holds the line-level detail of payment entries, paired with a header table.
How-toSage X3 Production Planning, Scheduling and Tracking
Sage X3 plans production from master data (items, BOMs, routings, work centers) through MRP or manual work orders, schedules operations against work center capacity, then records progress with production tracking. Setup quality in the BOM, routing and work center calendar decides whether the plan is believable.
Error fixDivision by 0 Error in Sage X3: Find the Cause and Fix It
A division by 0 error in Sage X3 means a calculation divided by a field that was zero or empty at runtime. Typical sources are a zero unit-of-measure coefficient, a zero quantity or base quantity on a BOM or routing, a zero price or rate, or custom 4GL or report code that never guards the denominator. Find the script and line from the error, then fix the data or guard the calculation.
How-toSage X3 Developer Studio: What It Does and How to Track Versions and Release Notes
Sage X3 Developer Studio is the development environment for building and changing X3 solution code and web pages, working with the Adonix 4GL scripts and the Syracuse web layer. To track versions, read the release notes and compatibility guides that Sage publishes for each version and patch rather than relying on remembered dates.
AI for ERPAI for Sage X3, Grounded in Your Own Ledgers and Stock Data
Add AI to Sage X3 finance and stock data without exporting it to a public model. On-prem and private-cloud LLMs for Sage X3 in the UK and France.
Stuck on Sage X3?
Talk to engineers who work inside Sage X3 every week, and who build private AI that answers these questions from your own ERP data.
Keep exploring
Free tools
- Sage X3 Private AI Layer Blueprint GeneratorGenerate an architecture plan for adding a private AI assistant to on-prem Sage X3: SQL replica views, Syracuse SData and web services, retrieval, local GPU model, permissions and audit.
- Sage X3 Maintenance Checklist and ScheduleA tick-box routine maintenance plan for Sage X3: database, batch server, Syracuse, backups, patches, security and testing.
- Sage X3 Import Template WorksheetAn editable import tracker for Sage X3: which object, which import template, source file, records loaded, errors and owner, with error rates calculated.
ERP fixes and how-tos
- Sage X3 AI Integration On-Prem: A Private ArchitectureHow to add a private AI assistant to on-prem Sage X3: SQL read replica, Syracuse SData and web services, retrieval index, local GPU model and audit trail.
- Sage X3 REST API: Reading Sales Orders Through SyracuseHow to call the Sage X3 REST API through Syracuse: URL pattern, endpoint and representation, authentication, filtering with where, paging, and common 401 and 404 causes.
- Sage X3 maintenance guide: services, patches and databaseA routine maintenance checklist for on-prem Sage X3: services, Syracuse, database, logs, backups, patches and what to test before and after changes.
AI on your ERP
- AI for Sage X3 in Food and Beverage: Lot Genealogy and Shelf-Life Answers From Your Own DataPrivate AI on Sage X3 for food and beverage: lot genealogy, shelf-life, allergen and batch yield questions answered from live data, on-prem or private cloud.
- AI for Sage X3 Purchasing and Stock: Orders, Receipts and LotsAI for Sage X3 purchasing and stock: PO review, supplier delivery analysis, stock status and lot questions over X3 data using GraphQL, SOAP and private models.
Integrations
- How to add AI agents to Sage X3How to add AI agents to Sage X3: a tool layer over SData and web services, read-first design, human approval on writes, and on-prem models for MRP and POs.
- How to build an MCP server for Sage X3How to build a Model Context Protocol server for Sage X3: read-only tools over SData, auth to Syracuse, stdio versus HTTP, permission scoping and audit logging.