openapi: 3.0.3 info: title: Agave Unified Construction Budgets Timesheets API description: The Agave Unified Construction API provides a single REST API to read and write data from 100+ construction and accounting software systems. It normalizes data across platforms including projects, budgets, contracts, commitments, purchase orders, invoices, cost codes, vendors, timesheets, and employees. version: '1.0' contact: name: Agave API Support url: https://docs.agaveapi.com x-generated-from: documentation servers: - url: https://api.agaveapi.com/v1 description: Production Server - url: https://sandbox.agaveapi.com/v1 description: Sandbox Server security: - apiKey: [] tags: - name: Timesheets description: Employee timesheet and labor tracking. paths: /timesheets: get: operationId: listTimesheets summary: Agave List Timesheets description: Retrieve employee timesheets from the linked source system. tags: - Timesheets parameters: - name: source_system_id in: header required: true description: The linked account source system identifier. schema: type: string example: linked-account-abc123 - name: project_id in: query description: Filter timesheets by project ID. schema: type: string example: proj-500123 - name: date_from in: query description: Start date for timesheet filter (YYYY-MM-DD). schema: type: string format: date example: '2025-01-01' - name: date_to in: query description: End date for timesheet filter (YYYY-MM-DD). schema: type: string format: date example: '2025-01-31' responses: '200': description: A list of timesheets. content: application/json: schema: $ref: '#/components/schemas/TimesheetList' examples: listTimesheets200Example: summary: Default listTimesheets 200 response x-microcks-default: true value: data: - {} next_cursor: example_value count: 1 '401': description: Unauthorized. content: application/json: schema: $ref: '#/components/schemas/Error' examples: listTimesheets401Example: summary: Default listTimesheets 401 response x-microcks-default: true value: error: example_value message: example_value request_id: '500123' x-microcks-operation: delay: 0 dispatcher: FALLBACK components: schemas: Timesheet: type: object description: An employee timesheet entry. properties: id: type: string description: Timesheet identifier. example: ts-990011 employee_id: type: string description: Employee identifier. example: emp-123456 project_id: type: string description: Associated project identifier. example: proj-500123 cost_code_id: type: string description: Associated cost code. example: cc-445566 date: type: string format: date description: Timesheet date. example: '2025-03-15' regular_hours: type: number description: Regular hours worked. example: 8.0 overtime_hours: type: number description: Overtime hours worked. example: 2.0 pay_rate: type: number description: Hourly pay rate in USD. example: 45.0 Error: type: object description: API error response. properties: error: type: string description: Error code. example: not_found message: type: string description: Human-readable error description. example: The requested resource was not found. request_id: type: string description: Unique request ID for support. example: req-a1b2c3d4e5 TimesheetList: type: object description: Paginated list of timesheets. properties: data: type: array items: $ref: '#/components/schemas/Timesheet' example: - example_value next_cursor: type: string example: eyJpZCI6MTIzfQ== count: type: integer example: 500 securitySchemes: apiKey: type: apiKey in: header name: API-Key description: Agave API key for authentication.