{
  "opencollection": "1.0.0",
  "info": {
    "name": "Buildxact Public API",
    "version": "v3"
  },
  "request": {
    "auth": {
      "type": "apikey",
      "key": "Ocp-Apim-Subscription-Key",
      "value": "{{Ocp-Apim-Subscription-Key}}",
      "placement": "header"
    }
  },
  "items": [
    {
      "info": {
        "name": "Authentication",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Login and Obtain Bearer Token",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://api.buildxact.com/accounts/auth/login",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "apikey",
              "key": "Ocp-Apim-Subscription-Key",
              "value": "{{Ocp-Apim-Subscription-Key}}",
              "placement": "header"
            }
          },
          "docs": "Exchange a Buildxact user email and plaintext API key for a short-lived bearer token plus refresh token. The subscription key header is still required to route the request through API Management."
        },
        {
          "info": {
            "name": "Refresh Bearer Token",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://api.buildxact.com/accounts/auth/refresh-token",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "apikey",
              "key": "Ocp-Apim-Subscription-Key",
              "value": "{{Ocp-Apim-Subscription-Key}}",
              "placement": "header"
            }
          },
          "docs": "Exchange a refresh token for a new short-lived access token without re-prompting the user for credentials."
        }
      ]
    },
    {
      "info": {
        "name": "Estimates",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "List Estimates",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.buildxact.com/estimates",
            "params": [
              {
                "name": "$filter",
                "value": "",
                "type": "query",
                "description": "OData filter expression (operators include eq, gt, lt, contains, in)."
              },
              {
                "name": "$orderBy",
                "value": "",
                "type": "query",
                "description": "OData orderBy expression (e.g. fieldName asc, fieldName desc)."
              },
              {
                "name": "$top",
                "value": "",
                "type": "query",
                "description": "Page size — maximum records to return."
              },
              {
                "name": "$skip",
                "value": "",
                "type": "query",
                "description": "Number of records to skip for pagination."
              },
              {
                "name": "$count",
                "value": "",
                "type": "query",
                "description": "When true, include the total record count in the x-odata-total-count response header."
              }
            ]
          },
          "docs": "Return a paginated list of estimates for the authenticated tenant. Supports OData $filter, $orderBy, $top, $skip, and $count."
        },
        {
          "info": {
            "name": "Create Estimate",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://api.buildxact.com/estimates",
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Create a new construction estimate for the authenticated tenant."
        },
        {
          "info": {
            "name": "Get Estimate",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.buildxact.com/estimates/:estimateId",
            "params": [
              {
                "name": "estimateId",
                "value": "",
                "type": "path",
                "description": "Unique identifier of the estimate."
              }
            ]
          },
          "docs": "Return a single estimate by its identifier, including totals and tax context."
        },
        {
          "info": {
            "name": "Update Estimate",
            "type": "http"
          },
          "http": {
            "method": "PATCH",
            "url": "https://api.buildxact.com/estimates/:estimateId",
            "params": [
              {
                "name": "estimateId",
                "value": "",
                "type": "path",
                "description": "Unique identifier of the estimate."
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Partially update fields on an existing estimate."
        },
        {
          "info": {
            "name": "Delete Estimate",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "https://api.buildxact.com/estimates/:estimateId",
            "params": [
              {
                "name": "estimateId",
                "value": "",
                "type": "path",
                "description": "Unique identifier of the estimate."
              }
            ]
          },
          "docs": "Delete an estimate by identifier."
        }
      ]
    },
    {
      "info": {
        "name": "Estimate Items",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "List Estimate Items",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.buildxact.com/estimates/:estimateId/items",
            "params": [
              {
                "name": "estimateId",
                "value": "",
                "type": "path",
                "description": "Unique identifier of the estimate."
              },
              {
                "name": "$filter",
                "value": "",
                "type": "query",
                "description": "OData filter expression (operators include eq, gt, lt, contains, in)."
              },
              {
                "name": "$orderBy",
                "value": "",
                "type": "query",
                "description": "OData orderBy expression (e.g. fieldName asc, fieldName desc)."
              },
              {
                "name": "$top",
                "value": "",
                "type": "query",
                "description": "Page size — maximum records to return."
              },
              {
                "name": "$skip",
                "value": "",
                "type": "query",
                "description": "Number of records to skip for pagination."
              },
              {
                "name": "$count",
                "value": "",
                "type": "query",
                "description": "When true, include the total record count in the x-odata-total-count response header."
              }
            ]
          },
          "docs": "Return the line items belonging to an estimate. Supports OData $filter, $orderBy, $top, $skip, and $count."
        },
        {
          "info": {
            "name": "Add Estimate Item",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://api.buildxact.com/estimates/:estimateId/items",
            "params": [
              {
                "name": "estimateId",
                "value": "",
                "type": "path",
                "description": "Unique identifier of the estimate."
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Add a new line item to an estimate."
        },
        {
          "info": {
            "name": "Get Estimate Item",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.buildxact.com/estimates/:estimateId/items/:itemId",
            "params": [
              {
                "name": "estimateId",
                "value": "",
                "type": "path",
                "description": "Unique identifier of the estimate."
              },
              {
                "name": "itemId",
                "value": "",
                "type": "path",
                "description": "Unique identifier of the estimate line item."
              }
            ]
          },
          "docs": "Return a single estimate line item."
        },
        {
          "info": {
            "name": "Update Estimate Item",
            "type": "http"
          },
          "http": {
            "method": "PATCH",
            "url": "https://api.buildxact.com/estimates/:estimateId/items/:itemId",
            "params": [
              {
                "name": "estimateId",
                "value": "",
                "type": "path",
                "description": "Unique identifier of the estimate."
              },
              {
                "name": "itemId",
                "value": "",
                "type": "path",
                "description": "Unique identifier of the estimate line item."
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Partially update an estimate line item."
        },
        {
          "info": {
            "name": "Delete Estimate Item",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "https://api.buildxact.com/estimates/:estimateId/items/:itemId",
            "params": [
              {
                "name": "estimateId",
                "value": "",
                "type": "path",
                "description": "Unique identifier of the estimate."
              },
              {
                "name": "itemId",
                "value": "",
                "type": "path",
                "description": "Unique identifier of the estimate line item."
              }
            ]
          },
          "docs": "Remove an estimate line item."
        }
      ]
    },
    {
      "info": {
        "name": "Tax Context",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "List Tax Rates",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.buildxact.com/tax-rates"
          },
          "docs": "Return the tax rates available to the authenticated tenant, used to interpret tax-inclusive and tax-exclusive totals on estimates and estimate items."
        }
      ]
    }
  ],
  "bundled": true
}