List all manual positions for a project
What are Manual Positions? Manual positions are extra costs that do not come from the product catalog. They are used to bill for external costs, third-party services, flat fees, and other expenses that fall outside the automatic system logic. Typical examples include printing costs, translation services, license fees, travel expenses, or one-time flat rates.
Manual positions are part of the project planning process and will appear in project quotes and invoices. They can be categorized, discounted, and reordered as needed.
What this endpoint returns:
- All active manual positions for the specified project
- Positions are sorted by their sort order (ascending)
- Only current positions are returned (snapshot positions are excluded)
- Descriptions are returned as HTML (converted from internal IDoc format)
Permission requirements:
- Requires read access to the project
- Requires api scope
Use cases:
- Display manual positions in project planning interface
- Show billable items that will appear in quotes and invoices
- Review project cost breakdown before creating offers
GET
/projects/{projectId}/manual-positionsAuthorization
AuthorizationOAuth2 access token · headerrequiredScopes:
api:reador
AuthorizationBearer token (JWT) · headerrequiredPath parameters
projectIdstringrequiredResponses
200
Array of
ManualPositionResponseDtocategoryIdobject | nullCategory ID if the position is assigned to a category, or null if no category is assigned. Categories help organize related positions together.
createdAtstringrequiredISO 8601 timestamp indicating when the position was created
descriptionstringrequiredDescription of the position in HTML format. The description is converted from internal IDoc format to HTML for API responses. May be empty if no description was provided.
discountAmountnumberrequiredDiscount amount applied to this position. 0 means no discount.
discountTypestringrequiredType of discount: "Fixed" (fixed amount) or "Percentage" (percentage of price)
Allowed:
FixedPercentageidstringrequiredUnique identifier of the manual position (UUID)
namestringrequiredName of the manual position as it appears in quotes and invoices
pricenumberrequiredPrice of the position in the workspace currency (net price before taxes)
sortnumberrequiredSort order of the position. Lower numbers appear first. Used to control the display order in project planning views, quotes, and invoices.
401Unauthorized - Invalid or missing authentication token
403Forbidden - Insufficient API scopes or permissions
Request
curl -X GET "https://leadtime.app/api/public/projects/string/manual-positions" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN"const response = await fetch("https://leadtime.app/api/public/projects/string/manual-positions", {
method: "GET",
headers: {
"Authorization": "Bearer YOUR_ACCESS_TOKEN"
}
});import requests
response = requests.get(
"https://leadtime.app/api/public/projects/string/manual-positions",
headers={
"Authorization": "Bearer YOUR_ACCESS_TOKEN"
},
)Response
[
{
"categoryId": "550e8400-e29b-41d4-a716-446655440000",
"createdAt": "2024-01-01T00:00:00Z",
"description": "<p>Professional consulting services</p>",
"discountAmount": 10,
"discountType": "Fixed",
"id": "550e8400-e29b-41d4-a716-446655440000",
"name": "Consulting Hours",
"price": 150,
"sort": 0
}
]Unauthorized - Invalid or missing authentication token
Forbidden - Insufficient API scopes or permissions