Get sales estimates grid
What are Sales Estimates? Sales Estimates provides a unified overview of all ongoing offers and sales opportunities in Leadtime. This endpoint combines two types of estimates into a single grid view:
- Project Documents: Detailed estimates linked to larger projects, created through the project planning process with products, modules, and custom items
- Express Quotations: Quick estimates created directly from tickets for smaller, ad-hoc customer requests
What data is returned: The response includes a paginated grid of estimate items with comprehensive pricing information:
- Each item represents either a project document estimate or an express quotation
- Only the latest estimate per project or task is returned (older versions are excluded)
- Pricing breakdown includes fixed prices, subscription prices, and per-unit prices
- Aggregated totals across all filtered results are provided at the response level
Pricing components: Each estimate can have three types of pricing:
- Fixed Price: One-time charges for services or products
- Subscriptions: Recurring prices (monthly, quarterly, semi-annually, or annually)
- Per Unit: Prices based on quantity (e.g., price per user or workspace)
The response includes both individual item pricing and aggregated totals (totalPriceFixed, totalPriceSubscriptions, totalPricePerUnit) across all filtered results.
Estimate types:
- PROJECT_DOCUMENT: Estimates created as part of project planning, typically more detailed and structured
- EXPRESS_QUOTATION: Quick estimates created from tickets, ideal for small add-on tasks or support services
Estimate statuses:
- Draft: Estimate is being prepared and has not been sent
- WaitingForApproval: Estimate is pending internal approval before sending
- Final: Estimate has been finalized and approved
- Pending: Express quotation has been sent to customer, awaiting response
- Accepted: Customer has accepted the estimate
- Rejected: Customer has rejected the estimate
- Parked: Estimate has been set aside temporarily
Access restrictions:
- This endpoint is restricted to employees only. Organization members (external contacts) cannot access it
- Results are automatically filtered by the user’s project access permissions
- Only estimates for projects the user has access to are returned
Supported operations:
- Filter by type, organization, project, task, status, pricing components, creator, and creation date
- Sort by any field including title, organization, project, status, pricing, and dates
- Quick search across estimate titles
- Pagination with configurable page size
- Field selection to return only specific fields in the response
Use cases:
- Generate sales pipeline reports showing all active estimates
- Track revenue potential across different estimate types
- Monitor estimate status distribution (draft, pending, accepted, etc.)
- Analyze pricing breakdowns by organization or project
- Export estimate data for external reporting tools
Retrieves a paginated grid of estimates with filtering and sorting capabilities. Quick search available on: title, displayTitle. Filterable fields: id, type, title, displayTitle, organizationId, projectId, taskId, createdAt, status, priceFixed, priceSubscriptions, pricePerUnit, createdById, offerNumber. Sortable fields: id, type, title, displayTitle, organizationId, organizationName, projectId, projectName, taskId, taskShortNumber, createdAt, status, total, priceFixed, priceSubscriptions, pricePerUnit, createdById, createdByName, offerNumber.
/sales/estimates/gridAuthorizationOAuth2 access token · headerrequiredapi:readAuthorizationBearer token (JWT) · headerrequiredpagenumberPage number (1-based)
pageSizenumberNumber of items per page
viewIdstringView identifier for saved grid configurations
quickSearchstringQuick search text. Searches across: title, displayTitle
filtersstringJSON string containing filter configuration.
Available Fields:
- id (string): Estimate ID
- type (string): Estimate type (PROJECT_DOCUMENT or EXPRESS_QUOTATION)
- title (string): Estimate title
- displayTitle (string): Display title (combined title/offerNumber based on documentStyle)
- organizationId (string): Organization ID
- projectId (string): Project ID
- taskId (string): Task ID (only for EXPRESS_QUOTATION)
- createdAt (date): Creation timestamp
- status (string): Estimate status (Draft, Final, WaitingForApproval, Pending, etc.)
- priceFixed (number): Fixed price
- priceSubscriptions (number): Subscription price
- pricePerUnit (number): Per-unit price
- createdById (string): Creator user ID
- offerNumber (number): Offer number (for PROJECT_DOCUMENT type)
Filter Structure:
[
{
"type": "string|number|date|set|boolean|array|task_status|task_type",
"fieldName": "field_name",
"value": {
"comparison": "comparison_type",
"value": "filter_value"
}
}
]
Group Filters (AND/OR Combinations):
[
{
"type": "group",
"fieldName": "group0.18807479823070028",
"value": {
"type": "or",
"filters": [
{
"type": "string",
"fieldName": "fileName",
"value": {
"comparison": "contain",
"value": "aa"
}
},
{
"type": "number",
"fieldName": "rowCount",
"value": {
"comparison": ">=",
"value": 33
}
}
]
}
}
]
Available Comparison Operators:
- id (string): Estimate ID (string filter). Available comparisons: contain, not_contain, equal, starts_with, ends_with, is_empty, is_not_empty
- type (string): Estimate type (PROJECT_DOCUMENT or EXPRESS_QUOTATION) (string filter). Available comparisons: contain, not_contain, equal, starts_with, ends_with, is_empty, is_not_empty
- title (string): Estimate title (string filter). Available comparisons: contain, not_contain, equal, starts_with, ends_with, is_empty, is_not_empty
- displayTitle (string): Display title (combined title/offerNumber based on documentStyle) (string filter). Available comparisons: contain, not_contain, equal, starts_with, ends_with, is_empty, is_not_empty
- organizationId (string): Organization ID (string filter). Available comparisons: contain, not_contain, equal, starts_with, ends_with, is_empty, is_not_empty
- projectId (string): Project ID (string filter). Available comparisons: contain, not_contain, equal, starts_with, ends_with, is_empty, is_not_empty
- taskId (string): Task ID (only for EXPRESS_QUOTATION) (string filter). Available comparisons: contain, not_contain, equal, starts_with, ends_with, is_empty, is_not_empty
- createdAt (date): Creation timestamp (date filter). Available comparisons: equal, not_equal, >, <, >=, <=, between, lastMonth, thisMonth, is_empty, is_not_empty
- status (string): Estimate status (Draft, Final, WaitingForApproval, Pending, etc.) (string filter). Available comparisons: contain, not_contain, equal, starts_with, ends_with, is_empty, is_not_empty
- priceFixed (number): Fixed price (number filter). Available comparisons: equal, not_equal, >, <, >=, <=, is_empty, is_not_empty
- priceSubscriptions (number): Subscription price (number filter). Available comparisons: equal, not_equal, >, <, >=, <=, is_empty, is_not_empty
- pricePerUnit (number): Per-unit price (number filter). Available comparisons: equal, not_equal, >, <, >=, <=, is_empty, is_not_empty
- createdById (string): Creator user ID (string filter). Available comparisons: contain, not_contain, equal, starts_with, ends_with, is_empty, is_not_empty
- offerNumber (number): Offer number (for PROJECT_DOCUMENT type) (number filter). Available comparisons: equal, not_equal, >, <, >=, <=, is_empty, is_not_empty
Note: Use quickSearch parameter for simple text search instead of adding it to filters.
sortstringJSON array of sort objects.
Sortable Fields:
- id: Estimate ID
- type: Estimate type (PROJECT_DOCUMENT or EXPRESS_QUOTATION)
- title: Estimate title
- displayTitle: Display title (combined title/offerNumber based on documentStyle)
- organizationId: Organization ID
- organizationName: Organization name
- projectId: Project ID
- projectName: Project name
- taskId: Task ID (only for EXPRESS_QUOTATION)
- taskShortNumber: Task short number (only for EXPRESS_QUOTATION)
- createdAt: Creation timestamp
- status: Estimate status (Draft, Final, WaitingForApproval, Pending, etc.)
- total: Total price (for express quotations)
- priceFixed: Fixed price
- priceSubscriptions: Subscription price
- pricePerUnit: Per-unit price
- createdById: Creator user ID
- createdByName: Creator name
- offerNumber: Offer number (for PROJECT_DOCUMENT type)
Sort Structure:
[
{
"field": "field_name",
"direction": "asc|desc"
}
]
Default Sort: createdAt (desc)
fieldsToReturnstring[]Comma-separated list of field names to include in response items. If not provided, all fields are returned.
Available Fields: id, type, title, displayTitle, organizationId, organizationName, projectId, projectName, taskId, taskShortNumber, createdAt, status, total, priceFixed, priceSubscriptions, pricePerUnit, priceSubscriptionsDetail, pricePerUnitDetail, createdById, createdByName, offerNumber, formattedOfferNumber
Estimates grid with pricing totals (totalPriceFixed, totalPriceSubscriptions, totalPricePerUnit)
itemsEstimateGridItemResponseDto[]requiredArray of estimate items matching the query parameters. Each item represents either a project document estimate or an express quotation.
Show propertiesHide properties
EstimateGridItemResponseDtocreatedAtstringrequiredISO 8601 timestamp indicating when the estimate was created. Format: YYYY-MM-DDTHH:mm:ss.sssZ
createdByIdstringUnique identifier of the user who created this estimate. UUID format.
createdByNamestringFull name of the user who created this estimate. Provided for convenience to avoid additional user lookups.
idstringrequiredUnique identifier for the estimate. UUID format.
organizationIdstringrequiredUnique identifier of the organization (customer) this estimate belongs to. UUID format.
organizationNamestringDisplay name of the organization. Provided for convenience to avoid additional lookups.
priceFixednumberFixed price component representing one-time charges for services or products. This is a single payment amount, not recurring.
pricePerUnitnumberPer-unit price component representing charges based on quantity (e.g., price per user license, price per workspace, price per API call). The total of all per-unit items in the estimate.
pricePerUnitDetailobjectDetailed breakdown of per-unit prices by product or service name. Key-value pairs where keys are product/service names and values are their per-unit prices. Useful for understanding which items contribute to the total per-unit price. Null if no per-unit items exist.
priceSubscriptionsnumberSubscription price component representing recurring charges (monthly, quarterly, semi-annually, or annually). The total of all subscription items in the estimate.
priceSubscriptionsDetailobjectDetailed breakdown of subscription prices by product or service name. Key-value pairs where keys are product/service names and values are their subscription prices. Useful for understanding which items contribute to the total subscription price. Null if no subscription items exist.
projectIdstringrequiredUnique identifier of the project this estimate is linked to. UUID format. Required for both estimate types.
projectNamestringDisplay name of the project. Provided for convenience to avoid additional lookups.
statusstringrequiredCurrent status of the estimate. Indicates where the estimate is in the sales process: Draft (being prepared), WaitingForApproval (pending internal approval), Final (approved), Pending (sent to customer), Accepted (customer accepted), Rejected (customer rejected), or Parked (temporarily set aside).
DraftFinalWaitingForApprovalPendingAcceptedRejectedParkedtaskIdstringUnique identifier of the task (ticket) this express quotation is linked to. Only present for EXPRESS_QUOTATION type estimates. UUID format.
taskShortNumbernumberShort numeric identifier of the task. Only present for EXPRESS_QUOTATION type estimates. Used for display purposes (e.g., "Task #42").
titlestringrequiredHuman-readable title of the estimate. Used for quick search and display purposes.
totalnumberTotal price for express quotations. This is the sum of all price components (fixed + subscriptions + per-unit). Only present for EXPRESS_QUOTATION type estimates.
typestringrequiredType of estimate. PROJECT_DOCUMENT for detailed project estimates, EXPRESS_QUOTATION for quick ticket-based estimates.
PROJECT_DOCUMENTEXPRESS_QUOTATIONpagenumberrequiredCurrent page number (1-based). Used for pagination navigation.
pageSizenumberrequiredNumber of items returned per page. Determines how many estimate items are included in the items array.
totalnumberrequiredTotal number of estimate items matching the query filters across all pages. Use this value to calculate total pages: Math.ceil(total / pageSize).
totalPriceFixednumberrequiredAggregated sum of all fixed price components across all filtered estimate items. This represents the total one-time revenue potential from fixed-price items. Calculated by summing priceFixed from all items in the filtered result set.
totalPricePerUnitnumberrequiredAggregated sum of all per-unit price components across all filtered estimate items. This represents the total revenue potential from per-unit items. Calculated by summing pricePerUnit from all items in the filtered result set.
totalPriceSubscriptionsnumberrequiredAggregated sum of all subscription price components across all filtered estimate items. This represents the total recurring revenue potential from subscription items. Calculated by summing priceSubscriptions from all items in the filtered result set.
Unauthorized - Invalid or missing authentication token
Forbidden - Insufficient API scopes or permissions