> ## 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 a time entry

A record of time logged by a member against a project or time off type.


## OpenAPI

````yaml openapi.json POST /time-entries
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:
  /time-entries:
    post:
      tags:
        - Time Entries
      summary: Create a time entry
      operationId: create-a-time-entry
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - typeId
                - date
                - memberId
              properties:
                typeId:
                  type: string
                  description: The type of the time entry.
                  enum:
                    - project_time
                    - time_off
                statusId:
                  type: string
                  description: >-
                    The approval status of the time entry. Defaults to
                    `not_submitted` if not supplied.
                  enum:
                    - not_submitted
                    - pending_approval
                    - approved
                    - rejected
                date:
                  type: string
                  description: >-
                    The date of the time entry. Should be in the form
                    `YYYY-MM-DD`.
                  format: date
                minutes:
                  type:
                    - integer
                    - 'null'
                  description: >-
                    The number of minutes for the time entry. Must be a whole
                    number between 1 and 1440. Required unless both `startTime`
                    and `endTime` are provided.
                notes:
                  type:
                    - string
                    - 'null'
                  description: >-
                    Notes for the time entry. May be required depending on the
                    project configuration. Max 5000 characters.
                startTime:
                  type:
                    - string
                    - 'null'
                  description: >-
                    The local start time in `HH:mm` (24-hour) format. Used with
                    `endTime` to calculate `minutes` when not provided.
                endTime:
                  type:
                    - string
                    - 'null'
                  description: >-
                    The local end time in `HH:mm` (24-hour) format. Must be
                    after `startTime` when set.
                memberId:
                  type: string
                  description: The member ID (`uuid`) of the member for this time entry.
                projectId:
                  type:
                    - string
                    - 'null'
                  description: >-
                    The project ID (`uuid`) of the project for the time entry.
                    Required when `typeId` is `project_time`.
                roleId:
                  type:
                    - string
                    - 'null'
                  description: >-
                    The role ID (`uuid`) of the project role for the time entry.
                    May be required depending on the project configuration.
                taskId:
                  type:
                    - string
                    - 'null'
                  description: >-
                    The task ID (`uuid`) of the project task for the time entry.
                    May be required depending on the project configuration.
                timeOffTypeId:
                  type:
                    - string
                    - 'null'
                  description: >-
                    The time off type ID (`uuid`) for the time entry. Required
                    when `typeId` is `time_off`.
      responses:
        '200':
          description: '200'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TimeEntry'
              examples:
                Result:
                  value:
                    id: f8a2c4e1-7b3d-4f96-ae52-d1c8b9f03e74
                    typeId: project_time
                    statusId: approved
                    clientStatusId: not_created
                    date: '2025-01-15'
                    minutes: 60
                    timerStartedAt: '2025-01-15T14:30:00.000Z'
                    notes: Worked on homepage wireframes.
                    createdAt: '2025-01-15T20:47:03.284Z'
                    startTime: '09:00'
                    endTime: '10:00'
                    member:
                      id: a91e4c70-3f28-4d85-b6c9-7e2d8a150f43
                      name: Jane Smith
                    project:
                      id: c5d7e2a8-9f14-4b63-8e71-a0d3c6b582f9
                      name: Website Redesign
                      client:
                        id: 82f1a9d3-e4b7-40c6-9a58-d7f2c3e810b5
                        name: Acme Corp
                    role:
                      id: 14b8e3f6-d927-4a5c-b190-8cf7e2a063d4
                      name: Designer
                    task:
                      id: 6e9f1a4d-c82b-43e7-a5d0-f731b298c604
                      name: Design Phase
                    timeOffType: null
                    invoice:
                      id: d29a4b8e-f173-4c60-a5e2-8b9d0c316f74
                      number: INV-0042
                      line:
                        id: 71e2f8c3-a940-4b15-d6e9-3c7d5a2b01f8
                        number: 1
                    timesheet:
                      id: 8c3f7a92-e14b-4d60-b5a1-2f09d7c63e18
                      submittedOn: '2025-01-19T17:32:10.541Z'
                    isBillable: true
                    invoiced: true
                    rateCurrency: USD
                    rate: 150
                    costCurrency: USD
                    costPerHour: 75
        '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:
                      - '''typeId'' is required'
                      - '''date'' is required'
                      - '''memberId'' is required'
                InvalidData:
                  value:
                    status: 400
                    message: >-
                      'memberId' 'e4515b6b-1f9d-4e89-a5fe-e2801fa7e8e3' does not
                      match a valid member.
      deprecated: false
components:
  schemas:
    TimeEntry:
      type: object
      properties:
        id:
          type: string
          description: The unique identifier for the object.
        typeId:
          type: string
          description: The type of the time entry.
          enum:
            - project_time
            - time_off
        statusId:
          type: string
          description: The approval status of the time entry.
          enum:
            - not_submitted
            - pending_approval
            - approved
            - rejected
        clientStatusId:
          type:
            - string
            - 'null'
          description: >-
            The client approval status. `null` when the project does not have
            client approvals enabled.
          enum:
            - not_created
            - pending_approval
            - approved
            - rejected
        date:
          type: string
          format: date
          description: The date of the time entry. Will be in the form `YYYY-MM-DD`.
        minutes:
          type: integer
          description: The number of minutes logged for the time entry.
        timerStartedAt:
          type:
            - string
            - 'null'
          format: date-time
          description: >-
            The timestamp when the timer was started. `null` if no timer is
            active.
        notes:
          type:
            - string
            - 'null'
          description: Notes associated with the time entry.
        createdAt:
          type: string
          format: date-time
          description: The timestamp when the object was created.
        startTime:
          type:
            - string
            - 'null'
          description: The local start time of the time entry in `HH:mm` (24-hour) format.
        endTime:
          type:
            - string
            - 'null'
          description: The local end time of the time entry in `HH:mm` (24-hour) format.
        member:
          type: object
          properties:
            id:
              type: string
              description: The unique identifier for the object.
            name:
              type: string
              description: The name of the member.
          description: The member who logged the time entry.
        project:
          type:
            - object
            - 'null'
          description: The project for this time entry. `null` for time off entries.
          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 for this time entry.
          properties:
            id:
              type: string
              description: The unique identifier for the object.
            name:
              type: string
              description: The name of the role.
        task:
          type:
            - object
            - 'null'
          description: The project task for this time entry.
          properties:
            id:
              type: string
              description: The unique identifier for the object.
            name:
              type: string
              description: The name of the task.
        timeOffType:
          type:
            - object
            - 'null'
          description: The time off type. `null` for project time entries.
          properties:
            id:
              type: string
              description: The unique identifier for the object.
            name:
              type: string
              description: The name of the time off type.
        invoice:
          type:
            - object
            - 'null'
          description: >-
            The invoice this time entry has been billed on. `null` if not
            invoiced.
          properties:
            id:
              type: string
              description: The unique identifier for the object.
            number:
              type: string
              description: The invoice number.
            line:
              type:
                - object
                - 'null'
              description: The invoice line item this time entry is billed on.
              properties:
                id:
                  type: string
                  description: The unique identifier for the object.
                number:
                  type: integer
                  description: The invoice line number.
        timesheet:
          type:
            - object
            - 'null'
          description: >-
            The timesheet this time entry was submitted on. `null` when the time
            entry has not been submitted or the timesheets feature is disabled.
          properties:
            id:
              type: string
              description: The unique identifier for the object.
            submittedOn:
              type: string
              format: date-time
              description: The timestamp when the timesheet was submitted.
        isBillable:
          type: boolean
          description: >-
            Whether this time entry is billable. This is a calculated value
            based on the project, role, and other related objects.
        invoiced:
          type: boolean
          description: >-
            Whether this time entry has been invoiced. When `true`, the
            `invoice` property will be populated.
        rateCurrency:
          type:
            - string
            - 'null'
          description: The currency code for the billing rate.
        rate:
          type:
            - number
            - 'null'
          description: >-
            The billable rate applicable to this time entry. This is a
            calculated value based on the project, role, and other related
            objects.
        costCurrency:
          type:
            - string
            - 'null'
          description: The currency code for the cost rate.
        costPerHour:
          type:
            - number
            - 'null'
          description: The cost per hour for this time entry.
    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
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer

````