Get single express quotation
Returns complete details of a specific express quotation, including all items, options, and pricing calculations.
What is returned:
- Quotation metadata (ID, shortNumber, status, timestamps)
- Contact user and language information
- HTML-formatted comment
- All items with:
- Title and HTML-formatted description
- Unit type (Hour or Piece)
- Quantity, unit price, and total price
- All options (variants) with their pricing
- Financial summary:
- Subtotal (before tax)
- Tax rate and tax amount
- Total (after tax)
- User tracking (created by, status changed by)
- Email tracking (sentAt timestamp if sent)
Use cases:
- View quotation details before sending
- Review pricing breakdown
- Check quotation status and history
GET
/tasks/{identifier}/express-quotations/{quotationId}Authorization
AuthorizationOAuth2 access token · headerrequiredScopes:
api:reador
AuthorizationBearer token (JWT) · headerrequiredPath parameters
identifierstringrequiredTask UUID or numeric shortNumber
quotationIdstringrequiredQuotation UUID
Responses
200Express quotation retrieved successfully
commentstringrequiredComment or notes for the quotation, formatted as HTML. This content is converted from the internal IDoc format and appears on the quotation document when sent to the contact.
contactUserIdstringrequiredUUID of the contact user who is the recipient of this quotation. This user receives the quotation when it is sent via email.
createdAtstring<date-time>requiredISO 8601 timestamp when the quotation was created
createdBystringrequiredUUID of the user who created this quotation
idstringrequiredUnique identifier for the quotation (UUID)
itemsExpressQuotationItemResponseDto[]requiredArray of all items included in the quotation. Items are ordered by their `order` field. Each item can have multiple options (variants). Items are typically generated from task products and optionally include estimated work time.
Show propertiesHide properties
Array of
ExpressQuotationItemResponseDtodescriptionstringrequiredDetailed description of the item in HTML format. For time-based items, this may include the task summary. For product items, this is the product description. The content is converted from the internal IDoc format to HTML.
idstringrequiredUnique identifier for the quotation item (UUID)
optionsExpressQuotationItemOptionResponseDto[]requiredArray of option variants available for this item. Options represent different configurations or variants (e.g., color, size, material) that can be selected, each with its own pricing. An empty array means no options are available.
Show propertiesHide properties
Array of
ExpressQuotationItemOptionResponseDtoidstringrequiredUnique identifier for the option (UUID)
titlestringrequiredDisplay name or title of the option variant (e.g., "Color: Red", "Size: Large", "Material: Premium"). Options represent different variants or configurations of a quotation item.
totalPricenumberrequiredTotal price for this option variant, calculated as `unitPrice * itemQuantity`. This represents the total additional cost when this option is selected for the item.
unitPricenumberrequiredPrice per unit for this option variant. This is the additional cost per unit when this option is selected.
quantitynumberrequiredQuantity of units for this item. For time-based items, this is the number of hours. For product items, this is the product quantity.
titlestringrequiredDisplay title of the item. For time-based items, this typically includes the hours and rate (e.g., "Work time: 1440 hours at 100 EUR each"). For product items, this is the product name.
totalPricenumberrequiredTotal price for this item, calculated as `quantity * unitPrice`. This does not include option prices, which are added separately.
unitstringrequiredUnit of measurement for this item. Can be "Hour" for time-based billing or "Piece" for product-based items.
Allowed:
PieceHourunitPricenumberrequiredPrice per unit for this item. For time-based items, this is the hourly rate. For product items, this is the product unit price.
languageobject | nullrequiredLanguage code used for this quotation (e.g., "en", "de"). Used for formatting and localization. Can be null if not specified, in which case the workspace default is used.
sentAtobject | nullrequiredISO 8601 timestamp when the quotation was sent via email to the contact user. Null if the quotation has not been sent yet.
shortNumbernumberrequiredSequential quotation number within the task. The first quotation for a task is 1, the second is 2, etc. This provides a human-readable reference number for the quotation.
statusstringrequiredCurrent status of the quotation. "Pending" means it has been created but not yet accepted or rejected. "Accepted" means it will be used for billing. "Rejected" means it will not be used for billing. Only one quotation per task can be Accepted at a time.
Allowed:
PendingAcceptedRejectedstatusChangedBystringrequiredUUID of the user who last changed the quotation status (accepted or rejected). This tracks who made the decision on the quotation.
subTotalnumberrequiredTotal amount for all items before tax is applied. This is the sum of all item total prices plus any option prices.
taskIdstringrequiredUUID of the task this quotation is linked to. The quotation affects billing for this task when accepted.
taxnumberrequiredTax rate percentage applied to the quotation (e.g., 17 for 17% VAT). This is typically taken from the workspace or organization tax settings.
taxAmountnumberrequiredTax amount calculated from the subtotal and tax rate. Calculated as `(subTotal * tax) / 100`.
totalnumberrequiredFinal total amount including tax. Calculated as `subTotal + taxAmount`. This is the amount that will be billed if the quotation is accepted.
updatedAtstring<date-time>requiredISO 8601 timestamp when the quotation was last modified
400Invalid task identifier or quotation ID
401Unauthorized - Invalid or missing authentication token
403No access to task project
404Task or quotation not found
Request
curl -X GET "https://leadtime.app/api/public/tasks/550e8400-e29b-41d4-a716-446655440000%20or%20123/express-quotations/550e8400-e29b-41d4-a716-446655440000" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN"const response = await fetch("https://leadtime.app/api/public/tasks/550e8400-e29b-41d4-a716-446655440000%20or%20123/express-quotations/550e8400-e29b-41d4-a716-446655440000", {
method: "GET",
headers: {
"Authorization": "Bearer YOUR_ACCESS_TOKEN"
}
});import requests
response = requests.get(
"https://leadtime.app/api/public/tasks/550e8400-e29b-41d4-a716-446655440000%20or%20123/express-quotations/550e8400-e29b-41d4-a716-446655440000",
headers={
"Authorization": "Bearer YOUR_ACCESS_TOKEN"
},
)Response
{
"comment": "<p>Please review this quotation and let us know if you have any questions.</p>",
"contactUserId": "550e8400-e29b-41d4-a716-446655440000",
"createdAt": "2024-01-01T00:00:00Z",
"createdBy": "550e8400-e29b-41d4-a716-446655440000",
"id": "550e8400-e29b-41d4-a716-446655440000",
"items": [
{
"description": "<p>Development and implementation of the new feature as described in the task requirements.</p>",
"id": "550e8400-e29b-41d4-a716-446655440000",
"options": [
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"title": "Color: Red",
"totalPrice": 59.9,
"unitPrice": 5.99
}
],
"quantity": 1440,
"title": "Work time: 1440 hours at 100 EUR each",
"totalPrice": 144000,
"unit": "Hour",
"unitPrice": 100
}
],
"language": "en",
"sentAt": "2024-01-01T00:00:00Z",
"shortNumber": 1,
"status": "Pending",
"statusChangedBy": "550e8400-e29b-41d4-a716-446655440000",
"subTotal": 144000,
"taskId": "550e8400-e29b-41d4-a716-446655440000",
"tax": 17,
"taxAmount": 24480,
"total": 168480,
"updatedAt": "2024-01-01T00:00:00Z"
}Invalid task identifier or quotation ID
Unauthorized - Invalid or missing authentication token
No access to task project
Task or quotation not found