> ## Documentation Index
> Fetch the complete documentation index at: https://docs.ruddr.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Create an allocation

A resource allocation for a member or placeholder.


## OpenAPI

````yaml openapi.json POST /allocations
openapi: 3.1.0
info:
  title: Ruddr API
  version: '1.0'
  license:
    name: Proprietary
    url: https://www.ruddr.com/master-subscription-agreement
servers:
  - url: https://www.ruddr.io/api/workspace
security:
  - bearerAuth: []
tags:
  - name: Allocations
    description: Manage resource allocations for scheduling team members to projects.
  - name: Availability Periods
    description: Manage member availability periods for capacity planning.
  - name: Business Units
    description: >-
      Manage business units for organizing invoice settings and grouping clients
      and projects.
  - name: Client Roles
    description: Manage client roles and their billing terms.
  - name: Client Tags
    description: Manage tags for categorizing clients.
  - name: Clients
    description: Manage clients and their billing settings.
  - name: Companies
    description: Manage companies in the CRM pipeline.
  - name: Company Spend Tiers
    description: Manage spend tier classifications for companies.
  - name: Company Types
    description: Manage type classifications for companies.
  - name: Contact Tags
    description: Manage tags for categorizing contacts.
  - name: Contacts
    description: Manage contacts associated with clients, companies, and opportunities.
  - name: Cost Periods
    description: Manage member cost rate periods for profitability tracking.
  - name: Credit Notes
    description: View credit notes issued against invoices.
  - name: Disciplines
    description: Manage disciplines for classifying member skill areas.
  - name: Exchange Rate
    description: Get exchange rates for multi-currency workspaces.
  - name: Exchange Rate Periods
    description: Manage custom exchange rate periods for currency conversion.
  - name: Expense Categories
    description: Manage expense categories for tracking and reporting.
  - name: Expense Items
    description: Manage individual expense line items.
  - name: Expense Reports
    description: Manage expense reports submitted by members.
  - name: Holiday Schedules
    description: Manage holiday schedules for capacity and availability planning.
  - name: Holidays
    description: Manage individual holidays within holiday schedules.
  - name: Industries
    description: Manage industry classifications for clients and companies.
  - name: Invoice Items
    description: Manage invoice line item types for billing.
  - name: Invoices
    description: View invoices and their line items.
  - name: Job Titles
    description: Manage job title classifications for members.
  - name: Locations
    description: Manage office locations for members and projects.
  - name: Member Certifications
    description: Manage certification types that can be assigned to members.
  - name: Member Levels
    description: Manage member level classifications for career tracking.
  - name: Member Tags
    description: Manage tags for categorizing members.
  - name: Members
    description: Manage workspace members and their profiles.
  - name: Opportunities
    description: Manage sales opportunities in the CRM pipeline.
  - name: Opportunity Pipelines
    description: Manage pipelines for tracking opportunity stages.
  - name: Opportunity Lead Sources
    description: Manage lead source classifications for opportunities.
  - name: Opportunity Stages
    description: Manage pipeline stage definitions for opportunities.
  - name: Opportunity Tags
    description: Manage tags for categorizing opportunities.
  - name: Opportunity Types
    description: Manage type classifications for opportunities.
  - name: Payment Methods
    description: Manage payment method options for invoices.
  - name: Payments
    description: View payments received against invoices.
  - name: Pipeline Activities
    description: >-
      Manage pipeline activities associated with companies, contacts, members,
      and opportunities.
  - name: Pipeline Activity Types
    description: Manage activity type classifications for pipeline activities.
  - name: Practices
    description: Manage practice area classifications for organizing projects and members.
  - name: Project Budget Expenses
    description: Manage expense budget line items on projects.
  - name: Project Budget Other Items
    description: Manage other budget line items on projects.
  - name: Project Budget Product Items
    description: Manage product budget line items on projects.
  - name: Project Budget Service Items
    description: Manage additional service budget line items on projects.
  - name: Project Expenses
    description: Manage project-level expense line items.
  - name: Project Groups
    description: View project groups for organizing related projects.
  - name: Project Health Reports
    description: Manage project health status reports.
  - name: Project Invoice Milestones
    description: Manage invoice milestones for fixed-fee project billing.
  - name: Project Members
    description: Manage team member assignments on projects.
  - name: Project Monthly Budget Expenses
    description: Manage monthly expense budget line items on projects.
  - name: Project Monthly Budget Other Items
    description: Manage monthly other budget line items on projects.
  - name: Project Monthly Budget Product Items
    description: Manage monthly product budget line items on projects.
  - name: Project Monthly Budget Service Items
    description: Manage monthly additional service budget line items on projects.
  - name: Project Other Items
    description: Manage project-level other item line items.
  - name: Project Product Items
    description: Manage project-level product line items.
  - name: Project Revenue Adjustments
    description: Manage earned revenue adjustments for projects.
  - name: Project Revenue Recognition Entries
    description: Manage revenue recognition entries for projects.
  - name: Project Roles
    description: Manage roles defined on projects for billing and staffing.
  - name: Project Service Items
    description: Manage project-level additional service line items.
  - name: Project Tags
    description: Manage tags for categorizing projects.
  - name: Project Tasks
    description: Manage tasks on projects for time tracking and planning.
  - name: Project Types
    description: Manage type classifications for projects.
  - name: Projects
    description: Manage projects and their settings.
  - name: Resource Placeholders
    description: Manage placeholder resources for allocation planning.
  - name: Security Roles
    description: View security roles for assigning member permissions.
  - name: Skills
    description: Manage skill classifications for members and resource planning.
  - name: Task Categories
    description: Manage task category classifications for project tasks.
  - name: Task Tags
    description: Manage tags for categorizing project tasks.
  - name: Task Templates
    description: Manage reusable task templates for projects.
  - name: Tax Rates
    description: Manage tax rates for invoicing.
  - name: Time Entries
    description: Manage time entries for tracking hours on projects.
  - name: Time Off Types
    description: Manage time off type classifications.
  - name: Timesheet Attestations
    description: Manage attestation statements members sign when submitting timesheets.
  - name: Timesheets
    description: Manage timesheet submissions for tracking hours across a period.
  - name: Utilization Target Periods
    description: Manage member utilization target periods for capacity planning.
  - name: Workspace Roles
    description: Manage workspace-level roles for billing rate configuration.
paths:
  /allocations:
    post:
      tags:
        - Allocations
      summary: Create an allocation
      operationId: create-an-allocation
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - unit
                - start
                - end
                - resourceTypeId
                - assignmentTypeId
              properties:
                resourceTypeId:
                  type: string
                  description: >-
                    The type of resource being assigned. Must be either
                    `"member"` for a real team member or `"placeholder"` for a
                    generic resource placeholder.
                  enum:
                    - member
                    - placeholder
                assignmentTypeId:
                  type: string
                  description: >-
                    The type of assignment. Must be either `"project"` for a
                    project-related allocation or `"time_off"` for a time off
                    assignment.
                  enum:
                    - project
                    - time_off
                start:
                  type: string
                  description: >-
                    The start date (`YYYY-MM-DD`) of the allocation, must come
                    on or before `end` date.
                  format: date
                end:
                  type: string
                  description: >-
                    The end date (`YYYY-MM-DD`) of the allocation, must come on
                    or after the `start` date.
                  format: date
                unit:
                  type: string
                  description: >-
                    The time unit that determines how the allocation is defined.
                    Possible values are `"day"` (Per day), `"week"` (Per week),
                    `"month"` (Per month), `"allocation"` (Absolute number of
                    hours), or `"ratio_of_capacity"` (Percentage of available
                    capacity).
                  enum:
                    - day
                    - week
                    - month
                    - allocation
                    - ratio_of_capacity
                hoursPerDay:
                  type:
                    - number
                    - 'null'
                  description: >-
                    The number of hours allocated per day. Only allowed when
                    `unit` is `day`. Must be between `0` and `24` with up to 2
                    decimal places.
                hoursPerWeek:
                  type:
                    - number
                    - 'null'
                  description: >-
                    The number of hours allocated per week. Only allowed when
                    `unit` is `week`. Must be between `0` and `168` with up to 2
                    decimal places.
                hoursPerMonth:
                  type:
                    - number
                    - 'null'
                  description: >-
                    The number of hours allocated per month. Only allowed when
                    `unit` is `month`. Must be between `0` and `744` with up to
                    2 decimal places.
                hoursPerAllocation:
                  type:
                    - number
                    - 'null'
                  description: >-
                    The total number of hours allocated for the full duration.
                    Only allowed when `unit` is `allocation`. Must be between
                    `0` and `99999` with up to 2 decimal places.
                hoursRatioOfCapacity:
                  type:
                    - number
                    - 'null'
                  description: >-
                    The proportion of the member's available capacity to
                    allocate. Only allowed when `unit` is `ratio_of_capacity`.
                    Must be between `0` and `1` with up to 4 decimal places.
                allocateOnTimeOffDays:
                  type:
                    - boolean
                    - 'null'
                  description: >-
                    Whether time can be allocated on days when the member has
                    time off. Defaults to `false` if not provided.
                bookingTypeId:
                  type: string
                  enum:
                    - confirmed
                    - soft
                  description: >-
                    The booking type of the allocation. Defaults to `confirmed`
                    if not provided.
                notes:
                  type:
                    - string
                    - 'null'
                  description: Any notes with the associated allocation.
                memberId:
                  type:
                    - string
                    - 'null'
                  description: >-
                    The member ID (`uuid`) of the member for this allocation.
                    Must be provided if the `resourceTypeId` is `member`.
                resourcePlaceholderId:
                  type:
                    - string
                    - 'null'
                  description: >-
                    The resource placeholder ID (`uuid`) of the resource
                    placeholder for this allocation. Must be provided if the
                    `resourceTypeId` is `placeholder`.
                projectId:
                  type:
                    - string
                    - 'null'
                  description: >-
                    The project ID (`uuid`) of the project for the allocation.
                    Must be provided if the `assignmentTypeId` is `project`.
                projectRoleId:
                  type:
                    - string
                    - 'null'
                  description: >-
                    The project role ID (`uuid`) of the project role for the
                    allocation. May be required depending on the project
                    configuration.
                projectTaskId:
                  type:
                    - string
                    - 'null'
                  description: >-
                    The project task ID (`uuid`) of the project task for the
                    allocation.
                timeOffTypeId:
                  type:
                    - string
                    - 'null'
                  description: >-
                    The time off type ID (`uuid`) of the time off type for the
                    allocation. Must be provided if the `assignmentTypeId` is
                    `time_off`.
      responses:
        '200':
          description: '200'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Allocation'
              examples:
                Result:
                  value:
                    id: 3f8a1d2e-7c4b-4e9f-a6d5-1b2c3d4e5f6a
                    resourceTypeId: member
                    assignmentTypeId: project
                    start: '2025-03-01'
                    end: '2025-05-31'
                    unit: day
                    hoursPerDay: 6.5
                    hoursPerWeek: null
                    hoursPerMonth: null
                    hoursPerAllocation: null
                    hoursRatioOfCapacity: null
                    allocateOnTimeOffDays: false
                    totalHours: 422.5
                    isBillable: true
                    bookingTypeId: confirmed
                    notes: Q2 product roadmap delivery
                    readOnly: false
                    entity: allocation
                    createdAt: '2025-01-10T14:22:35.418Z'
                    member:
                      id: 9b7e6d5c-4a3f-4b2e-8c1d-0e9f8a7b6c5d
                      name: Jane Smith
                    placeholder: null
                    project:
                      id: c2d3e4f5-a6b7-4c8d-9e0f-1a2b3c4d5e6f
                      name: Website Redesign
                      client:
                        id: 7a8b9c0d-1e2f-4a3b-8c4d-5e6f7a8b9c0d
                        name: Acme Corp
                    role:
                      id: d4e5f6a7-b8c9-4d0e-af1b-2c3d4e5f6a7b
                      name: Senior Engineer
                    task:
                      id: e5f6a7b8-c9d0-4e1f-b2a3-4c5d6e7f8a9b
                      name: Backend Development
                    timeOffType: null
        '400':
          description: '400'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationErrorResponse'
              examples:
                Validation:
                  value:
                    status: 400
                    message: >-
                      There was a problem processing your request. See errors
                      for more details.
                    errors:
                      - '''unit'' is required'
                InvalidData:
                  value:
                    status: 400
                    message: >-
                      There was a problem processing your request. See errors
                      for more details.
                    errors:
                      - '''projectId'' is required for project assignment.'
        '403':
          description: '403'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                Feature:
                  value:
                    status: 403
                    message: Feature 'Resource Allocations' is not enabled.
      deprecated: false
components:
  schemas:
    Allocation:
      type: object
      properties:
        id:
          type: string
          description: The unique identifier for the object.
        resourceTypeId:
          type: string
          description: The type of resource assigned to this allocation.
          enum:
            - member
            - placeholder
        assignmentTypeId:
          type: string
          description: The type of assignment for this allocation.
          enum:
            - project
            - time_off
        start:
          type: string
          format: date
          description: The start date of the allocation. Will be in the form YYYY-MM-DD.
        end:
          type: string
          format: date
          description: The end date of the allocation. Will be in the form YYYY-MM-DD.
        unit:
          type: string
          description: The time unit that determines how the allocation is measured.
          enum:
            - day
            - week
            - month
            - allocation
            - ratio_of_capacity
        hoursPerDay:
          type:
            - number
            - 'null'
          description: >-
            The number of hours allocated per day. Only present when `unit` is
            `"day"`, otherwise `null`.
        hoursPerWeek:
          type:
            - number
            - 'null'
          description: >-
            The number of hours allocated per week. Only present when `unit` is
            `"week"`, otherwise `null`.
        hoursPerMonth:
          type:
            - number
            - 'null'
          description: >-
            The number of hours allocated per month. Only present when `unit` is
            `"month"`, otherwise `null`.
        hoursPerAllocation:
          type:
            - number
            - 'null'
          description: >-
            The total number of hours for the entire allocation duration. Only
            present when `unit` is `"allocation"`, otherwise `null`.
        hoursRatioOfCapacity:
          type:
            - number
            - 'null'
          description: >-
            The proportion of the member's available capacity allocated. Only
            present when `unit` is `"ratio_of_capacity"`, otherwise `null`.
        allocateOnTimeOffDays:
          type:
            - boolean
            - 'null'
          description: >-
            Whether time is allocated on days when the member has time off. Only
            present when `assignmentTypeId` is `"project"` and `resourceTypeId`
            is `"member"`, otherwise `null`.
        totalHours:
          type: number
          description: >-
            The total number of computed hours across all dates in the
            allocation.
        isBillable:
          type: boolean
          description: Whether this allocation is billable.
        bookingTypeId:
          type: string
          enum:
            - confirmed
            - soft
          description: The booking type of the allocation.
        notes:
          type:
            - string
            - 'null'
          description: Notes associated with the allocation.
        readOnly:
          type: boolean
          description: >-
            Whether this allocation is read-only. Allocations sourced from time
            entries or holidays are read-only.
        entity:
          type: string
          description: The source entity type.
          enum:
            - allocation
            - time_entry
            - holiday
        createdAt:
          type: string
          format: date-time
          description: The timestamp when the object was created.
        member:
          type:
            - object
            - 'null'
          description: >-
            The member assigned to this allocation. Present when
            `resourceTypeId` is `"member"`, otherwise `null`.
          properties:
            id:
              type: string
              description: The unique identifier for the object.
            name:
              type: string
              description: The name of the member.
        placeholder:
          type:
            - object
            - 'null'
          description: >-
            The resource placeholder assigned to this allocation. Present when
            `resourceTypeId` is `"placeholder"`, otherwise `null`.
          properties:
            id:
              type: string
              description: The unique identifier for the object.
            name:
              type: string
              description: The name of the resource placeholder.
        project:
          type:
            - object
            - 'null'
          description: >-
            The project this allocation is assigned to. Present when
            `assignmentTypeId` is `"project"`, otherwise `null`.
          properties:
            id:
              type: string
              description: The unique identifier for the object.
            name:
              type: string
              description: The name of the project.
            client:
              type: object
              description: The client associated with the project.
              properties:
                id:
                  type: string
                  description: The unique identifier for the object.
                name:
                  type: string
                  description: The name of the client.
        role:
          type:
            - object
            - 'null'
          description: The project role associated with this allocation, if any.
          properties:
            id:
              type: string
              description: The unique identifier for the object.
            name:
              type: string
              description: The name of the project role.
        task:
          type:
            - object
            - 'null'
          description: The project task associated with this allocation, if any.
          properties:
            id:
              type: string
              description: The unique identifier for the object.
            name:
              type: string
              description: The name of the project task.
        timeOffType:
          type:
            - object
            - 'null'
          description: >-
            The time off type associated with this allocation. Present when
            `assignmentTypeId` is `"time_off"`, otherwise `null`.
          properties:
            id:
              type: string
              description: The unique identifier for the object.
            name:
              type: string
              description: The name of the time off type.
    ValidationErrorResponse:
      type: object
      properties:
        status:
          type: integer
          description: The HTTP status code.
        message:
          type: string
          description: A human-readable error message.
        errors:
          type: array
          description: A list of validation error messages.
          items:
            type: string
    ErrorResponse:
      type: object
      properties:
        status:
          type: integer
          description: The HTTP status code.
        message:
          type: string
          description: A human-readable error message.
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer

````