Skip to main content

API Overview

Introduction​

ForgeX is a microservices-based API platform designed for construction estimation and project management. The system consists of three independent services, each handling a specific domain.

Services​

Base URLs​

Development​

Bids:     http://localhost:5001/api
Projects: http://localhost:5002/api
Field: http://localhost:5003/api

Production​

Bids:     https://bids.precisionsiteservices.com/api
Projects: https://projects.precisionsiteservices.com/api
Field: https://field.precisionsiteservices.com/api

Authentication​

All endpoints require session authentication via SuperTokens. See the Authentication section for details.

Sessions are managed using HTTP-only cookies (sAccessToken, sRefreshToken) shared across the .precisionsiteservices.com domain.

Cookie: sAccessToken=...; sRefreshToken=...

Response Formats​

Success Response (200/201)​

{
"id": "uuid",
"message": "Operation successful",
...resource data
}

Error Response (400 Bad Request)​

{
"error": "Validation error message"
}

Error Response (401 Unauthorized)​

{
"error": "Unauthorized"
}

Error Response (403 Forbidden)​

{
"error": "Insufficient permissions"
}

Error Response (404 Not Found)​

{
"error": "Resource not found"
}

Multi-Status Response (207)​

Used for batch operations where some succeed and others fail:

{
"attachments": [
{ "id": "uuid1", "filename": "file1.pdf", ... }
],
"failed": [
{ "filename": "file2.pdf", "error": "File too large" }
]
}

Common Conventions​

Date/Time Format​

All timestamps use ISO 8601 format (UTC):

2025-01-29T10:00:00.000Z

UUID Format​

All IDs use UUID v4:

550e8400-e29b-41d4-a716-446655440000

Pagination​

List endpoints support pagination via query parameters:

?limit=50&offset=0

Filtering​

Most list endpoints support filtering:

?status=ACTIVE&role=ESTIMATOR&search=john

Role-Based Access Control​

ServiceADMINESTIMATORPMOPSACCOUNTINGFOREMAN
BidsFullFull (no delete)Read-only---
ProjectsFull-Approve POsCreate/Manage POsReconcile-
FieldFull-Approve timesheets--Clock in/out

API Versioning​

Currently using v1 (implicit). Future versions will be prefixed:

/api/v2/bids

Rate Limiting​

warning

Rate limits are not currently enforced but may be added in future versions.

Support​

For API support, contact: