API documentation
Technical documentation for integrating with Endre.
Endre API provides project-related data for authenticated users. This API is RESTful and supports standard HTTP methods like GET, POST, and PATCH.
Authentication
/token
Obtain a Bearer token using username and password.
-
Input: OAuth2 credentials (
username,password) -
Output: JWT access token
Endpoints
All endpoints can be tested here: https://public-api.endre.app/docs
Fetch User Projects
GET/v1/projects
Description Retrieve the list of projects the authenticated user has access to.
Response
-
List of projects with:
-
Id(UUID): Unique project identifier -
Name(string):[ProjectNumber] - [ProjectName] -
ProjectName(string): Project name -
ProjectNumber(string): Project number -
IsFinished(boolean): Indicates if the project is finished
-
Empty Case Returns a 404 error if no projects are available.
Create Project
POST/v1/projects
Description Create a project.
Parameters
-
project_name(string): Project name -
organization_id(UUID): Organization identifier (from/v1/organizations) -
email(string, optional): Project administrator email -
project_number(string, optional): Project number
Update Project
PATCH/v1/projects
Description Update a project.
Request Body
-
project_name(string, optional) -
project_number(string, optional) -
is_finished(boolean, optional):-
true= finished -
false= not finished
-
Fetch Project Details
GET/v1/projects/{project_id}
Description Retrieve details for a specific project.
Input
project_id(UUID)
Response
-
Id(UUID) -
Name(string):[ProjectNumber] - [ProjectName] -
ProjectName(string) -
ProjectNumber(string) -
IsFinished(boolean)
Access Validation
- Returns 403 if user lacks access
Fetch Project Organizations
GET/v1/projects/{project_id}/organizations
Description Retrieve all organizations on a project.
Response
-
Id(UUID): Project organization ID -
Name(string) -
OrganizationNumber(string) -
Role(string):-
Contractor -
Subcontractor -
Builder
-
-
OrganizationId(UUID)
Fetch Specific Project Organization
GET/v1/projects/{project_id}/organizations/{project_organization_id}
Description Retrieve a specific organization on a project.
Input
-
project_id(UUID) -
project_organization_id(UUID)
Response
-
Id(UUID) -
Name(string) -
OrganizationNumber(string) -
Role(string) -
OrganizationId(UUID)
Fetch Cases for a Project
GET/v1/projects/{project_id}/cases
Description Retrieve cases (change logs) for a project.
Response Each case includes:
-
Id(UUID) -
CaseNumber(string) -
Title(string) -
Sender(string) -
SenderId(UUID) -
Receiver(string) -
ReceiverId(UUID) -
Type(string):- Notice, Claim, Change Order, Price Request, Technical Clarification, Builder Message
-
Status(string):- New, In Progress, Accepted, Rejected, Draft, etc.
-
DueDate(datetime) -
Version(int) -
Description(HTML string) -
CreatedDate(datetime) -
ModifiedDate(datetime) -
TotalAmount(decimal) -
AcceptedAmount(decimal) -
DeclinedAmount(decimal) -
NotHandledAmount(decimal) -
EstimatedAmount(decimal) -
InvoicedAmount(decimal) -
IsArchived(boolean) -
RelatedCases(UUID[])
Access Validation
- Returns 403 if unauthorized
Fetch Amounts for a Project
GET/v1/projects/{project_id}/amounts
Description Retrieve aggregated amounts by month.
Input
-
start_date(optional, yyyy-mm-dd) -
end_date(optional) -
case_types(optional):-
1 = Notice
-
2 = Claim
-
3 = Change Order
-
4 = Price Request
-
5 = Technical Clarification
-
6 = Builder Message
-
7 = Contract
-
Response
-
ProjectId(UUID) -
Year(int) -
Month(int) -
TotalAmount(decimal) -
TotalAcceptedAmount(decimal) -
TotalDeclinedAmount(decimal) -
TotalNotHandledAmount(decimal)
Fetch Cost Items
GET/v1/projects/{project_id}/cases/{case_id}/cost-items
Response
-
PostNr(string) -
Description(string) -
Company(string) -
Unit(string) -
Volume(decimal) -
UnitPrice(decimal) -
Surcharge(decimal) -
Sum(decimal) -
Status(string) -
IsEstimate(boolean)
Fetch Tags for a Case
GET/v1/projects/{project_id}/cases/{case_id}/tags
Response
Text(string)
Fetch Production Codes
GET/v1/projects/{project_id}/cases/{case_id}/prod-codes
Response
Code(string)
Fetch Invoices
GET/v1/projects/{project_id}/cases/{case_id}/invoices
Response
-
InvoiceNumber(string) -
CaseNumber(string) -
Amount(string) -
InvoiceDate(string) -
DueDate(string) -
PayDate(string)
Fetch External References
GET/v1/projects/{project_id}/cases/{case_id}/external-references
Response
-
Name(string) -
Url(string) -
Description(string) -
Version(integer)
Fetch Relations
GET/v1/projects/{project_id}/cases/{case_id}/relations
Response
-
CaseNumber(string) -
Type(string)
Fetch Organizations
GET/v1/organizations
Response
-
Id(UUID) -
Name(string)
Fetch Specific Organization
GET/v1/organizations/{organization_id}
Response
-
Id(UUID) -
Name(string)
Authorization
All endpoints require a valid JWT Bearer token obtained via the /token endpoint.
Last updated Apr 15, 2026
Built with Documentation.AI