---
search:
  tags:
    - projects
    - POST
seo:
  description: >-
    What this endpoint does: Creates a new manual position… Reference for the
    POST /projects/{projectId}/manual-positions endpoint in the Leadtime Public
    API API.
sidebar:
  badge: POST
  label: Create a new manual position
title: Create a new manual position
type: openapi-operation
---
**What this endpoint does:**
Creates a new manual position (billable item) for a project. Manual positions represent extra costs that are not automatically tracked by the system, such as external services, third-party expenses, or one-time fees.

**How it works:**
- The position is added to the project's current planning
- Sort order is automatically assigned (new positions are added at the end)
- Description can be provided as HTML or Markdown (automatically converted to internal format)
- The position can optionally be assigned to a category for better organization
- Once created, the position will appear in project quotes and invoices

**Description format:**
- Accepts HTML or Markdown format
- The system automatically detects the format and converts it to internal IDoc format
- Empty descriptions are allowed (will be stored as empty IDoc)
- In responses, descriptions are always returned as HTML

**Validation rules:**
- Name is required and must not be empty
- Price must be a number greater than or equal to 0
- Category ID must be a valid UUID if provided
- Project must exist and user must have access

**Permission requirements:**
- Requires Projects.manageManualPositions permission
- Requires api:write scope
- Requires read access to the project

**Use cases:**
- Add external costs like printing or translation services
- Record one-time fees that are not in the product catalog
- Include retroactive charges or corrections to existing offers
- Add services that happened outside the operational project structure

<Operation source="api-reference" id="projectmanualpositionscontroller-createmanualposition" />
