Early access Rolling out in stages
A REST API for Sage 100, in early access.
Hundred is a planned REST API for Sage 100 (formerly MAS 90 and MAS 200). Your app will read and write customers, sales orders, invoices, items and inventory from any language: JSON over HTTPS, with Python and TypeScript SDKs planned. You will never touch ODBC or COM: the connector on the Sage 100 server will do that for you. No VPN.
- StageEarly access. We onboard teams in stages and email you when your modules are ready.
- PricePlanned: $99/month per connected Sage 100 company. Nothing is sold yet and no payment is taken. Planned pricing
- TodayA free read-only ODBC package and six integration guides. What exists today
- VendorsIntegrating Sage 100 for many clients? For software vendors and Sage partners
# planned API, not callable yet curl https://api.hundredapi.com/v1/companies/ABC\ /sales-orders?status=open \ -H "Authorization: Bearer $HUNDRED_KEY"
{
"data": [{
"salesOrderNo": "0001042",
"customerNo": "01-AVNET",
"status": "open",
"lines": [{ "itemCode": "1001-HON-H252",
"quantity": 4, "unitPrice": 129.5 }]
}],
"nextCursor": "c2Fnz..."
}
Sample data. The design we are building, not a live endpoint.
What exists today
| Thing | What it is | Status |
|---|---|---|
| Early access list | Tell us which Sage 100 modules you need. We onboard teams in stages. Join early access | Open |
| API docs | Endpoints, auth, errors and the connector design, published so you can check the fit. Nothing is callable yet. Planned API docs | Published |
| Integration guides | SQL over the SOTAMAS90 ODBC driver, Python with pandas, the Business Object Interface, the sData removal, the 64-bit-only 2026 release, Shopify. Each cites its sources. Guides | Free |
sage100-odbc | A Python package that reads customers, open sales orders and items over ODBC. Read-only; writes are what the API is for. On GitHub · Package today vs. planned API | Free, read-only |
| REST API, connector, SDKs | Reads, and writes through Sage 100's own business objects. Not built yet; the early access list decides what comes first. | Planned |
Planned endpoints
Planned| Resource | Read | Write | Sage 100 module |
|---|---|---|---|
/customers | list, get, search | create, update | Accounts Receivable |
/sales-orders | list, get | create, update lines | Sales Order |
/invoices | list, get | create | Accounts Receivable |
/items | list, get, stock by warehouse | update price | Inventory Management |
/vendors, /purchase-orders | list, get | create | Accounts Payable, Purchase Order |
/gl/accounts, /gl/entries | list | none | General Ledger |
Writes will go through Sage 100's own business logic, so validation, numbering and posting rules apply as they do in the desktop client. Missing a module you need? Tell us in the form below. Request and response examples are in the planned API docs.
How it will work
A small Windows service on the machine that runs Sage 100. Outbound HTTPS only: no open ports, no VPN.
Your app calls api.hundredapi.com. Hundred routes each request to the right company's connector, which turns it into Sage 100 calls.
Sage 100 version upgrades, retries, pagination, timeouts and error mapping are the service's job, not yours. You get stable JSON.
Planned pricing
Planned · not on sale| Today | Joining the early access list is free and commits you to nothing. |
| Model | One subscription per connected Sage 100 company, covering the planned endpoints, read and write. |
| Your input | Tell us in the form whether this price works for you and how you would want to buy it. |
| Your client's Sage 100 | The connector signs in as one Sage 100 user and uses one license seat while it is connected. |
Join early access
Rolling out in stagesTell us what you are building. We onboard teams in stages and email you when the modules you need are ready. Your answers decide what we build first.