For developers and software vendors
Does Sage 100 Contractor have a REST API?
Not a REST API. Sage 100 Contractor has a built-in API that Sage’s own add-ons and partner applications call on the customer’s install, but Sage does not publish a REST API or any cloud API for it. Each company is a Microsoft SQL Server database on the customer’s own server, and software that needs the data has to reach it there.
Twinn fills the gap. OPDC is a connector that runs next to Sage 100 Contractor and exposes it as an authenticated REST API with JSON in and out and an OpenAPI 3.1 contract: 213 operations, reads across 87 kinds of record, and 38 writes that post the way Sage itself would.
About Sage 100 Contractor (formerly Sage Master Builder). Not Sage 100 ERP, the distribution and manufacturing product, which is a separate product on a different database.
How integrations reach Sage 100 Contractor today
Without a REST API from Sage, an integration picks one of these. What decides it is usually whether you need to write as well as read, and whether your application runs in the cloud.
Use Sage’s built-in API
Sage 100 Contractor includes an API in the core program. Sage Estimating (SQL), Sage Paperless Construction, Sage Service Operations, Sage Time and partner applications use it to read and change company data.
The catch: it needs an API security group set up by a company administrator, each connection uses a Sage 100 Contractor license, and Sage documents it for integrated applications rather than as a REST or cloud API.
Query the SQL Server database
Connect to the company database on the customer’s server and read the tables directly.
The catch: a cloud application needs a VPN or an open port to reach it, you are coding against Sage’s internal schema, and writing rows yourself skips the journal, balance and job cost postings Sage makes when it posts a transaction.
Export and import files
Someone exports a report or list from Sage 100 Contractor, and your application picks the file up.
The catch: it is only as current as the last export, someone has to run it, and nothing flows back into Sage without another manual step.
Use a connector with a REST API
A service installed next to Sage 100 Contractor exposes the data over HTTPS, and your application calls it like any other API. This is what Twinn’s OPDC does.
The catch: it is one more thing installed on the Sage server, and a subscription.
What the Twinn API looks like
Each customer’s install answers on its own HTTPS host, and the API key on the request selects the Sage company. Reads are a POST to an entity’s /query endpoint with the fields, filters, sort and page you want. Field names are the ones the business uses (jobNumber, vendorName), not Sage’s internal columns.
- An OpenAPI 3.1 contract. Generate a client in your language from it. 213 operations in 17 areas, from the ledger to payroll and service management.
- Writes that post like Sage. An AP invoice posts its journal, updates account balances and writes job cost. A write that breaks a Sage rule is rejected with the field and the rule.
- Safe to retry. Every write takes an idempotency key, so a retry after a timeout returns the first result instead of posting twice. Every write but an attachment can be dry-run against live data and rolled back.
The full reference, with every entity, write and error code, is on the Developers page, and the contract itself is at /openapi.v3.json.
curl -X POST https://{your-opdc-host}/api/v3/parts/query \
-H "x-api-key: {your-api-key}" \
-H "Content-Type: application/json" \
-d '{
"select": ["partCode", "partName", "partCost"],
"filters": {
"match": { "field": "partCost", "operator": ">=", "value": 10 }
},
"orderBy": ["partCost DESC"],
"page": { "pageNumber": 1, "pageSize": 25 }
}'What the customer installs
One EV code-signed Windows executable, installed as a Windows service on the Sage server or one that can reach its database. It connects outbound only, so there is no firewall port to open, no VPN and no database exposed to the internet. One install serves every Sage company on the instance.
The detail an IT team asks for is on Security for IT, and the path a request takes is on Platform.
What it costs
Read-only API access comes with the Reports plan at $3,000 a year. Read and write is the Standard plan at $6,500 a year. There are no per-user fees and no per-call metering, and every plan starts with a free 30-day trial.
Building a product that connects to many contractors’ Sage? That is the Integrator plan: a license from $11,000 a year, then a key per customer priced per year (read, or read and write).
Questions about a Sage 100 Contractor API
Does Sage 100 Contractor have an API?
It has a built-in API that Sage’s own add-ons, such as Sage Estimating (SQL) and Sage Paperless Construction, and partner applications use. It needs an API security group and a Sage 100 Contractor license, and Sage does not publish it as a REST or cloud API. Twinn’s OPDC connector runs next to Sage 100 Contractor and provides a REST API with an OpenAPI 3.1 contract.
Can I write to Sage 100 Contractor through the API?
Yes, on the Standard plan and above. 38 endpoints write to Sage, including AP invoices, journal entries, payroll and purchase orders, and each one runs the postings Sage would run itself. A write that breaks a Sage rule, such as a closed period or an unknown ledger account, is rejected with the reason.
Can my cloud application call it without a VPN?
Yes. The connector makes an outbound connection from the customer’s server, and your application calls the customer’s own HTTPS host. Nothing on the customer’s network is opened to the internet.
Is this the same as the Sage 100 ERP API?
No. Sage 100 ERP (formerly MAS 90 and MAS 200) is a different product with a different database. Twinn works only with Sage 100 Contractor.
Which versions of Sage 100 Contractor does it support?
A wide range of them. Sage 100 Contractor has kept its companies in SQL Server since version 19, and the connector checks the Sage version when it connects. On a version it does not support it refuses reads and writes rather than half-working. Tell us your version and we will confirm it.
Can I try it before paying?
Yes. Every plan starts with a free 30-day trial, and we can set up a demo company with a real Sage 100 Contractor database so you can build before a customer installs anything. You can also connect Claude or ChatGPT to the demo company through Twinn’s read-only MCP server.
Build against Sage 100 Contractor over HTTPS
Tell us what your integration needs to read and write. We will point you at the endpoints and set you up with a trial to build against.
Talk to us about your integrationNot writing code? Connect Claude or ChatGPT to Twinn’s read-only public demo MCP server and ask a made-up Sage 100 Contractor company questions in plain English.