Read your Saguaro data from your own tools.
A simple JSON API over your projects, RFIs, pay applications, change orders, contracts, invoices, and subcontractors. Every request is scoped to your company by your API key.
Three steps.
API Access is a paid add-on, and it is included in Enterprise.
1. Create a key
In the app, open Settings, then Integrations Hub, and create an API key with the scope you need: read, write, or admin. The full key is shown once, so store it safely.
2. Send it as a Bearer token
Add the header Authorization: Bearer sk_live_... to each request. You only ever see your own company's data.
3. Call an endpoint
Every endpoint is a GET that returns JSON with a data array. Pass limit to size the page. The default is 100 and the maximum is 200.
What you can read.
Base URL https://www.saguarocontrol.net/api/v1
GET /projects
Your jobs: name, address, project number, status, contract amount, start date, substantial completion date, project type.
Query: limit, include_archived
GET /rfis
RFIs: number, subject, status, priority, assignee, response due date, cost impact, schedule impact.
Query: projectId, limit
GET /pay-apps
Pay applications: application number, status, current payment due, period, submitted and certified dates.
Query: projectId, limit
GET /change-orders
Change orders: number, title, status, amount, cost impact, schedule impact, approval date.
Query: projectId, limit
GET /contracts
Contracts: number, title, type, party, trade, amount, status, executed date.
Query: projectId, limit
GET /invoices
Invoices: direction, number, vendor, category, amount, tax, total, status, due and paid dates.
Query: projectId, direction (receivable or payable), limit
GET /subcontractors
Subcontractors: company, contact, email, phone, trade, status, prequalification, insurance expiry.
Query: limit
A request and its response.
curl https://www.saguarocontrol.net/api/v1/rfis?projectId=<project id>&limit=50 \ -H "Authorization: Bearer sk_live_..."Response
{
"data": [
{
"id": "...",
"project_id": "...",
"rfi_number": 12,
"subject": "Clarify slab thickness at grid C",
"status": "open",
"priority": "high",
"response_due_date": "2026-11-02",
"created_at": "2026-10-19T15:04:00Z"
}
],
"has_more": false
}When has_more is true, there are more rows than the limit you asked for.
Status codes.
No key, or an invalid or revoked key.
The key lacks the scope needed, or API Access is not turned on for your company.
Something went wrong on our side. The response carries a reference you can send to support.
Need something the API does not cover yet? Tell us at support@saguarocontrol.net, or look at partners and integrations.
Build on your own data.
Try Saguaro free for 30 days, then turn on API Access when you are ready.
