Getting Started
Welcome to the Evalumo API! This guide will help you integrate with Evalumo's construction cost estimation platform, which provides real-time pricing for over 45,000 construction items and streamlined project management workflows.
OverviewCopied!
The Evalumo API enables developers to integrate construction cost estimation capabilities into their applications. Whether you're building contractor management software, project management tools, or custom estimation workflows, the API provides access to Evalumo's core features including project creation, cost calculations, client management, and third-party integrations.
Key Capabilities:
-
Project Management: Create and organize construction projects with client information
-
Cost Estimation: Access exported project reports with detailed cost breakdowns
-
Workflow Integration: Connect with tools like Zapier for automated workflows
-
Real-time Data: Retrieve up-to-date project information and cost estimates
Authentication FlowCopied!
Evalumo uses a custom OAuth2-style authentication flow designed for Firebase integration. The process involves three main steps:
Step 1: Generate Custom Token
Start by calling the /apiAuth
endpoint to generate a custom authentication token:
curl -X POST https://api.evalumo.com/authorize \
-H "Content-Type: application/json" \
-d '{
"redirect_uri": "https://your-app.com/auth/callback",
"state": "random-state-string"
}'
This endpoint will redirect you to the specified redirect_uri
with an authorization code.
Step 2: Exchange Code for Tokens
Use the authorization code from step 1 to get your access and refresh tokens:
curl -X POST https://api.evalumo.com/token \
-H "Content-Type: application/json" \
-d '{
"code": "custom-token-from-step-1"
}'
Response:
{
"access_token": "eyJhbGciOiJSUzI1NiIs...",
"refresh_token": "AEu4IL3T7wW9zKNdHTzQ..."
}
Step 3: Make Authenticated Requests
Include the access token in the Authorization header for all API requests:
curl -X GET https://api.evalumo.com/project \
-H "Authorization: Bearer eyJhbGciOiJSUzI1NiIs..."
Token Refresh
Access tokens expire after 1 hour. Use the refresh token to get a new access token:
curl -X POST https://api.evalumo.com/refreshToken \
-H "Content-Type: application/json" \
-d '{
"refresh_token": "AEu4IL3T7wW9zKNdHTzQ..."
}'
Making Your First API CallCopied!
Once authenticated, test your setup with the /user
endpoint:
curl -X GET "https://api.evalumo.com/user" \
-H "Authorization: Bearer your-access-token"
Expected Response:
{
"userEmail": "contractor@example.com",
"userDisplayName": "John Smith",
}
This confirms your authentication is working and returns your user information.
Common Integration PatternsCopied!
Creating a New Project
Start by creating a construction project with client information:
curl -X POST https://api.evalumo.com/project \
-H "Authorization: Bearer your-access-token" \
-H "Content-Type: application/json" \
-d '{
"project_name": "Kitchen Renovation",
"client_name": "John Smith",
"client_email": "john@example.com",
"client_phone": "+1 (555) 123-4567",
"client_address": "123 Main St, Toronto, ON"
}'
Retrieving Project Data
List your exported projects with pagination:
curl -X GET "https://api.evalumo.com/exportedProject?page=0&limit=10&lineItemsToExpand=TasksByItem
-H "Authorization: Bearer your-access-token"
Managing Project Workflow
Update project status using predefined categories:
curl -X PATCH https://api.evalumo.com/project/550e8400-e29b-41d4-a716-446655440000 \
-H "Authorization: Bearer your-access-token" \
-H "Content-Type: application/json" \
-d '{
"project_category": "Pending"
}'
Error HandlingCopied!
The API uses standard HTTP status codes and returns error details in JSON format:
{
"error": "Category not found",
}
Common Status Codes:
-
200
: Success -
201
: Created successfully -
400
: Bad request (invalid parameters) -
401
: Unauthorized (invalid or expired token) -
404
: Resource not found -
500
: Internal server error
Rate Limits and Best PracticesCopied!
Authentication Best Practices:
-
Store refresh tokens securely (never in client-side code)
-
Implement automatic token refresh before expiration
-
Use HTTPS for all API communications
-
Validate SSL certificates
API Usage Guidelines:
-
Implement exponential backoff for failed requests
-
Cache project data when appropriate to reduce API calls
-
Use pagination for large data sets
-
Include error handling for network timeouts
Performance Optimization:
-
Use the
lineItemsToExpand
parameter to control response size -
Batch related operations when possible
-
Monitor API response times and adjust request frequency
Next StepsCopied!
Now that you have authentication working, explore these common integration scenarios:
-
Project Management Integration: Learn how to sync projects with your existing workflow tools
-
Webhook Integration: Set up real-time notifications using Zapier and other platforms
-
Advanced Querying: Master the flexible search and filtering capabilities
For detailed endpoint documentation, see the API Reference section. For integration examples and troubleshooting, check our comprehensive guides below.