Fulcrumpro Reporting API

The Reporting API from Fulcrumpro — 8 operation(s) for reporting.

Operations 8

POST /api/reporting/inventory/list Lists report-ready on-hand inventory rows from the inventory reporting view, including per-unit and extended valuation (material/labor/machine/OP), lot and location context, and it #
POST /api/reporting/invoice/list Lists report-ready invoice-line rows from the invoice reporting view, including line type, pricing, tax, and aging detail joined to sales-order and shipment context so callers do n #
POST /api/reporting/job-activity-by-operator/list Lists report-ready per-operator operation rows from the job-activity-by-operator reporting view, including setup/labor/machine time and cost, run-by-run quantities, rates, and job/ #
POST /api/reporting/job-activity/list Lists report-ready job-operation rows from the job-activity reporting view, including schedule, timer, completion-progress, and routing context so callers do not need to hand-join #
POST /api/reporting/quote/list Lists report-ready quote rows from the quote reporting view, including totals, cost, status, and lifecycle dates, so callers do not need to hand-assemble quote-level summary data. #
POST /api/reporting/sales-order-lines/list Lists report-ready sales-order line rows from the sales-order line-items reporting view, including pre-computed cost, invoice, ship, and return columns so callers do not need to ha #
POST /api/reporting/shipping/list Lists report-ready shipment line rows from the shipping reporting view, including pre-computed dollar columns ($ shipped, $ unshipped, total $ ordered, unit price) so callers do no #
POST /api/reporting/time-clock/list Lists report-ready time-clock rows from the time-clock reporting view, including clock-in/clock-out times, computed shift hours, reason and clock codes, and override-audit context #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/fulcrumpro-reporting-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

fulcrumpro-reporting-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Fulcrum Public Accounting Code Reporting API
  version: v1
servers:
- url: https://api.fulcrumpro.com
tags:
- name: Reporting
paths:
  /api/reporting/inventory/list:
    post:
      tags:
      - Reporting
      summary: 'Lists report-ready on-hand inventory rows from the inventory reporting view, including per-unit and

        extended valuation (material/labor/machine/OP), lot and location context, and item categorization

        so callers do not need to hand-join inventory to lots, items, and their details. Returns exactly

        one row per (item, lot, location), so summing on-hand quantity or value across the rows does not

        over-count a lot.'
      operationId: ListInventoryReport
      parameters:
      - name: Sort.Field
        in: query
        description: Sort field
        schema:
          minLength: 1
          type: string
      - name: Sort.Dir
        in: query
        description: Sort direction
        schema:
          $ref: '#/components/schemas/CommonEnumSortDirectionEnum'
      - name: Skip
        in: query
        description: Number of records to skip.
        schema:
          minimum: 0
          type: integer
          format: int32
      - name: Take
        in: query
        description: Number of records to return (maximum)
        schema:
          maximum: 5000
          minimum: 0
          type: integer
          format: int32
      requestBody:
        content:
          application/json-patch+json:
            schema:
              $ref: '#/components/schemas/DtoReportingInventoryReportFilter'
          application/json:
            schema:
              $ref: '#/components/schemas/DtoReportingInventoryReportFilter'
          text/json:
            schema:
              $ref: '#/components/schemas/DtoReportingInventoryReportFilter'
          application/*+json:
            schema:
              $ref: '#/components/schemas/DtoReportingInventoryReportFilter'
      responses:
        '200':
          description: A page of inventory report rows with the total matching count.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DtoPagedResultDtoDtoReportingInventoryReportRow'
            application/problem+json:
              schema:
                $ref: '#/components/schemas/DtoPagedResultDtoDtoReportingInventoryReportRow'
        '403':
          description: The viewer lacks the View Inventory permission.
      x-c4-required-permissions:
      - ItemsAndInventory-Items-View Inventory
  /api/reporting/invoice/list:
    post:
      tags:
      - Reporting
      summary: 'Lists report-ready invoice-line rows from the invoice reporting view, including line type,

        pricing, tax, and aging detail joined to sales-order and shipment context so callers do not need

        to hand-join invoices to invoice line items, sales orders, and shipments.'
      operationId: ListInvoiceReport
      parameters:
      - name: Sort.Field
        in: query
        description: Sort field
        schema:
          minLength: 1
          type: string
      - name: Sort.Dir
        in: query
        description: Sort direction
        schema:
          $ref: '#/components/schemas/CommonEnumSortDirectionEnum'
      - name: Skip
        in: query
        description: Number of records to skip.
        schema:
          minimum: 0
          type: integer
          format: int32
      - name: Take
        in: query
        description: Number of records to return (maximum)
        schema:
          maximum: 5000
          minimum: 0
          type: integer
          format: int32
      requestBody:
        content:
          application/json-patch+json:
            schema:
              $ref: '#/components/schemas/DtoReportingInvoiceReportFilter'
          application/json:
            schema:
              $ref: '#/components/schemas/DtoReportingInvoiceReportFilter'
          text/json:
            schema:
              $ref: '#/components/schemas/DtoReportingInvoiceReportFilter'
          application/*+json:
            schema:
              $ref: '#/components/schemas/DtoReportingInvoiceReportFilter'
      responses:
        '200':
          description: A page of invoice report rows with the total matching count.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DtoPagedResultDtoDtoReportingInvoiceReportRow'
            application/problem+json:
              schema:
                $ref: '#/components/schemas/DtoPagedResultDtoDtoReportingInvoiceReportRow'
        '403':
          description: The viewer lacks the View Invoices permission.
      x-c4-required-permissions:
      - Invoicing-Invoicing-View Invoices
  /api/reporting/job-activity-by-operator/list:
    post:
      tags:
      - Reporting
      summary: 'Lists report-ready per-operator operation rows from the job-activity-by-operator reporting view,

        including setup/labor/machine time and cost, run-by-run quantities, rates, and job/routing context

        so callers do not need to hand-join jobs to items-to-make, operations, timers, and job logs.'
      operationId: ListJobActivityByOperatorReport
      parameters:
      - name: Sort.Field
        in: query
        description: Sort field
        schema:
          minLength: 1
          type: string
      - name: Sort.Dir
        in: query
        description: Sort direction
        schema:
          $ref: '#/components/schemas/CommonEnumSortDirectionEnum'
      - name: Skip
        in: query
        description: Number of records to skip.
        schema:
          minimum: 0
          type: integer
          format: int32
      - name: Take
        in: query
        description: Number of records to return (maximum)
        schema:
          maximum: 5000
          minimum: 0
          type: integer
          format: int32
      requestBody:
        content:
          application/json-patch+json:
            schema:
              $ref: '#/components/schemas/DtoReportingJobActivityByOperatorReportFilter'
          application/json:
            schema:
              $ref: '#/components/schemas/DtoReportingJobActivityByOperatorReportFilter'
          text/json:
            schema:
              $ref: '#/components/schemas/DtoReportingJobActivityByOperatorReportFilter'
          application/*+json:
            schema:
              $ref: '#/components/schemas/DtoReportingJobActivityByOperatorReportFilter'
      responses:
        '200':
          description: A page of job-activity-by-operator report rows with the total matching count.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DtoPagedResultDtoDtoReportingJobActivityByOperatorReportRow'
            application/problem+json:
              schema:
                $ref: '#/components/schemas/DtoPagedResultDtoDtoReportingJobActivityByOperatorReportRow'
        '403':
          description: The viewer lacks one of the required permissions (View Job and View Time Management).
      x-c4-required-permissions:
      - Jobs-Jobs-View Job
  /api/reporting/job-activity/list:
    post:
      tags:
      - Reporting
      summary: 'Lists report-ready job-operation rows from the job-activity reporting view, including schedule,

        timer, completion-progress, and routing context so callers do not need to hand-join jobs to

        items-to-make, operations, timers, and scheduling data.'
      operationId: ListJobActivityReport
      parameters:
      - name: Sort.Field
        in: query
        description: Sort field
        schema:
          minLength: 1
          type: string
      - name: Sort.Dir
        in: query
        description: Sort direction
        schema:
          $ref: '#/components/schemas/CommonEnumSortDirectionEnum'
      - name: Skip
        in: query
        description: Number of records to skip.
        schema:
          minimum: 0
          type: integer
          format: int32
      - name: Take
        in: query
        description: Number of records to return (maximum)
        schema:
          maximum: 5000
          minimum: 0
          type: integer
          format: int32
      requestBody:
        content:
          application/json-patch+json:
            schema:
              $ref: '#/components/schemas/DtoReportingJobActivityReportFilter'
          application/json:
            schema:
              $ref: '#/components/schemas/DtoReportingJobActivityReportFilter'
          text/json:
            schema:
              $ref: '#/components/schemas/DtoReportingJobActivityReportFilter'
          application/*+json:
            schema:
              $ref: '#/components/schemas/DtoReportingJobActivityReportFilter'
      responses:
        '200':
          description: A page of job-activity report rows with the total matching count.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DtoPagedResultDtoDtoReportingJobActivityReportRow'
            application/problem+json:
              schema:
                $ref: '#/components/schemas/DtoPagedResultDtoDtoReportingJobActivityReportRow'
        '403':
          description: The viewer lacks the View Job permission.
      x-c4-required-permissions:
      - Jobs-Jobs-View Job
  /api/reporting/quote/list:
    post:
      tags:
      - Reporting
      summary: 'Lists report-ready quote rows from the quote reporting view, including totals, cost, status, and

        lifecycle dates, so callers do not need to hand-assemble quote-level summary data.'
      operationId: ListQuoteReport
      parameters:
      - name: Sort.Field
        in: query
        description: Sort field
        schema:
          minLength: 1
          type: string
      - name: Sort.Dir
        in: query
        description: Sort direction
        schema:
          $ref: '#/components/schemas/CommonEnumSortDirectionEnum'
      - name: Skip
        in: query
        description: Number of records to skip.
        schema:
          minimum: 0
          type: integer
          format: int32
      - name: Take
        in: query
        description: Number of records to return (maximum)
        schema:
          maximum: 5000
          minimum: 0
          type: integer
          format: int32
      requestBody:
        content:
          application/json-patch+json:
            schema:
              $ref: '#/components/schemas/DtoReportingQuoteReportFilter'
          application/json:
            schema:
              $ref: '#/components/schemas/DtoReportingQuoteReportFilter'
          text/json:
            schema:
              $ref: '#/components/schemas/DtoReportingQuoteReportFilter'
          application/*+json:
            schema:
              $ref: '#/components/schemas/DtoReportingQuoteReportFilter'
      responses:
        '200':
          description: A page of quote report rows with the total matching count.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DtoPagedResultDtoDtoReportingQuoteReportRow'
            application/problem+json:
              schema:
                $ref: '#/components/schemas/DtoPagedResultDtoDtoReportingQuoteReportRow'
        '403':
          description: The viewer lacks the View Quote permission.
      x-c4-required-permissions:
      - Orders-Quotes-View Quote
  /api/reporting/sales-order-lines/list:
    post:
      tags:
      - Reporting
      summary: 'Lists report-ready sales-order line rows from the sales-order line-items reporting view,

        including pre-computed cost, invoice, ship, and return columns so callers do not need to

        hand-join sales orders to line items, jobs, invoices, shipments, and returns.'
      operationId: ListSalesOrderLinesReport
      parameters:
      - name: Sort.Field
        in: query
        description: Sort field
        schema:
          minLength: 1
          type: string
      - name: Sort.Dir
        in: query
        description: Sort direction
        schema:
          $ref: '#/components/schemas/CommonEnumSortDirectionEnum'
      - name: Skip
        in: query
        description: Number of records to skip.
        schema:
          minimum: 0
          type: integer
          format: int32
      - name: Take
        in: query
        description: Number of records to return (maximum)
        schema:
          maximum: 5000
          minimum: 0
          type: integer
          format: int32
      requestBody:
        content:
          application/json-patch+json:
            schema:
              $ref: '#/components/schemas/DtoReportingSalesOrderLinesReportFilter'
          application/json:
            schema:
              $ref: '#/components/schemas/DtoReportingSalesOrderLinesReportFilter'
          text/json:
            schema:
              $ref: '#/components/schemas/DtoReportingSalesOrderLinesReportFilter'
          application/*+json:
            schema:
              $ref: '#/components/schemas/DtoReportingSalesOrderLinesReportFilter'
      responses:
        '200':
          description: A page of sales-order line report rows with the total matching count.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DtoPagedResultDtoDtoReportingSalesOrderLinesReportRow'
            application/problem+json:
              schema:
                $ref: '#/components/schemas/DtoPagedResultDtoDtoReportingSalesOrderLinesReportRow'
        '403':
          description: The viewer lacks one of the required permissions (View Sales Order, View Customer, View Job, View Invoices, and View Shipments).
      x-c4-required-permissions:
      - Orders-SalesOrders-View Sales Order
  /api/reporting/shipping/list:
    post:
      tags:
      - Reporting
      summary: 'Lists report-ready shipment line rows from the shipping reporting view, including pre-computed

        dollar columns ($ shipped, $ unshipped, total $ ordered, unit price) so callers do not need to

        hand-join shipments to sales-order line items.'
      operationId: ListShippingReport
      parameters:
      - name: Sort.Field
        in: query
        description: Sort field
        schema:
          minLength: 1
          type: string
      - name: Sort.Dir
        in: query
        description: Sort direction
        schema:
          $ref: '#/components/schemas/CommonEnumSortDirectionEnum'
      - name: Skip
        in: query
        description: Number of records to skip.
        schema:
          minimum: 0
          type: integer
          format: int32
      - name: Take
        in: query
        description: Number of records to return (maximum)
        schema:
          maximum: 5000
          minimum: 0
          type: integer
          format: int32
      requestBody:
        content:
          application/json-patch+json:
            schema:
              $ref: '#/components/schemas/DtoReportingShippingReportFilter'
          application/json:
            schema:
              $ref: '#/components/schemas/DtoReportingShippingReportFilter'
          text/json:
            schema:
              $ref: '#/components/schemas/DtoReportingShippingReportFilter'
          application/*+json:
            schema:
              $ref: '#/components/schemas/DtoReportingShippingReportFilter'
      responses:
        '200':
          description: A page of shipping report rows with the total matching count.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DtoPagedResultDtoDtoReportingShippingReportRow'
            application/problem+json:
              schema:
                $ref: '#/components/schemas/DtoPagedResultDtoDtoReportingShippingReportRow'
        '403':
          description: The viewer lacks the View Shipments permission.
      x-c4-required-permissions:
      - Shipping-Shipping-View Shipments
  /api/reporting/time-clock/list:
    post:
      tags:
      - Reporting
      summary: 'Lists report-ready time-clock rows from the time-clock reporting view, including clock-in/clock-out

        times, computed shift hours, reason and clock codes, and override-audit context so callers do not

        need to hand-join timer entries to their reason and clock-code tags.'
      operationId: ListTimeClockReport
      parameters:
      - name: Sort.Field
        in: query
        description: Sort field
        schema:
          minLength: 1
          type: string
      - name: Sort.Dir
        in: query
        description: Sort direction
        schema:
          $ref: '#/components/schemas/CommonEnumSortDirectionEnum'
      - name: Skip
        in: query
        description: Number of records to skip.
        schema:
          minimum: 0
          type: integer
          format: int32
      - name: Take
        in: query
        description: Number of records to return (maximum)
        schema:
          maximum: 5000
          minimum: 0
          type: integer
          format: int32
      requestBody:
        content:
          application/json-patch+json:
            schema:
              $ref: '#/components/schemas/DtoReportingTimeClockReportFilter'
          application/json:
            schema:
              $ref: '#/components/schemas/DtoReportingTimeClockReportFilter'
          text/json:
            schema:
              $ref: '#/components/schemas/DtoReportingTimeClockReportFilter'
          application/*+json:
            schema:
              $ref: '#/components/schemas/DtoReportingTimeClockReportFilter'
      responses:
        '200':
          description: A page of time-clock report rows with the total matching count.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DtoPagedResultDtoDtoReportingTimeClockReportRow'
            application/problem+json:
              schema:
                $ref: '#/components/schemas/DtoPagedResultDtoDtoReportingTimeClockReportRow'
        '403':
          description: The viewer lacks the View Time Management permission.
      x-c4-required-permissions:
      - Time-Time-View Time Management
components:
  schemas:
    DtoPagedResultDtoDtoReportingJobActivityByOperatorReportRow:
      required:
      - data
      - hasNextPage
      - hasPreviousPage
      - page
      - pageSize
      - totalCount
      - totalPages
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/DtoReportingJobActivityByOperatorReportRow'
          description: The data
        page:
          type: integer
          description: The 1-indexed page
          format: int32
          readOnly: true
        pageSize:
          type: integer
          description: The page size
          format: int32
          readOnly: true
        totalCount:
          type: integer
          description: The total count of records
          format: int32
        totalPages:
          type: integer
          description: The total pages
          format: int32
          readOnly: true
        hasPreviousPage:
          type: boolean
          description: True if there is a previous page
          readOnly: true
        hasNextPage:
          type: boolean
          description: True if there is a next page
          readOnly: true
      additionalProperties: false
      description: Paged result
    DtoReportingJobActivityByOperatorReportFilter:
      type: object
      properties:
        startedOrCreatedDateFrom:
          type:
          - string
          - 'null'
          description: Inclusive lower bound applied to the run's Started or Created Date. Null means no lower bound.
          format: date-time
        startedOrCreatedDateTo:
          type:
          - string
          - 'null'
          description: 'Inclusive upper bound applied to the run''s Started or Created Date (the whole `to` day is

            included). Null means no upper bound.'
          format: date-time
        employee:
          type:
          - string
          - 'null'
          description: Optional exact-match filter on the operator / employee name. Null means no operator filter.
        department:
          type:
          - string
          - 'null'
          description: 'Optional exact-match filter on the department containing the operation''s work center. Null means

            no department filter.'
      additionalProperties: false
      description: 'Constrained filter for the job-activity-by-operator reporting list endpoint. Every field maps to a

        fixed, server-controlled column; values are always bound as Dapper parameters and never concatenated

        into SQL.'
    DtoReportingInvoiceReportRow:
      type: object
      properties:
        company:
          type:
          - string
          - 'null'
          description: Issuing company / tenant company name.
        invoiceNumber:
          type:
          - integer
          - 'null'
          description: Numeric invoice identifier assigned by Fulcrum.
          format: int32
        invoiceStatus:
          type:
          - string
          - 'null'
          description: Lifecycle state — typically New, Approved, Issued, Paid.
        salesOrderNumber:
          type:
          - integer
          - 'null'
          description: Number identifying the sales order being invoiced.
          format: int32
        customerPurchaseOrder:
          type:
          - string
          - 'null'
          description: Customer's PO number recorded on the sales order.
        customerName:
          type:
          - string
          - 'null'
          description: Display name of the billed customer.
        salesPerson:
          type:
          - string
          - 'null'
          description: Name of the salesperson associated with the sales order.
        isDeposit:
          type:
          - string
          - 'null'
          description: Set to the string "Deposit" when the row represents a deposit; null otherwise.
        createdDate:
          type:
          - string
          - 'null'
          description: UTC timestamp when the invoice record was created.
          format: date-time
        lineType:
          type:
          - string
          - 'null'
          description: Discriminator — Part, Shipping, Fee, Deposit, Discount, Refund, Tax, or NA.
        lineItemName:
          type:
          - string
          - 'null'
          description: Item name (for part lines) or descriptive label for non-part lines.
        customerPartNumber:
          type:
          - string
          - 'null'
          description: Customer's part number for this line, when supplied.
        customerPartDescription:
          type:
          - string
          - 'null'
          description: Customer's description for this line, when supplied.
        itemDescription:
          type:
          - string
          - 'null'
          description: Internal item description for the line.
        accountingCode:
          type:
          - string
          - 'null'
          description: Accounting code mapped to the invoice line.
        itemTags:
          type:
          - string
          - 'null'
          description: Comma-separated list of descriptive tags from the item.
        issuedDate:
          type:
          - string
          - 'null'
          description: Date the invoice was issued. NULL for drafts.
          format: date-time
        dueDate:
          type:
          - string
          - 'null'
          description: Date payment is due per the invoice's payment terms.
          format: date-time
        salesOrderTotal:
          type:
          - number
          - 'null'
          description: Total of the source sales order (may differ from invoice total).
          format: double
        unitPrice:
          type:
          - number
          - 'null'
          description: Per-unit price for the line (varies by Line Type; negative for discounts).
          format: double
        quantityInvoiced:
          type:
          - number
          - 'null'
          description: Quantity billed on this line.
          format: double
        invoiceAmount:
          type:
          - number
          - 'null'
          description: Extended amount for this line before tax.
          format: double
        isTaxable:
          type:
          - integer
          - 'null'
          description: 1 when the line is subject to taxation, otherwise 0. (Computed 1/0 flag in the view.)
          format: int32
        taxCode:
          type:
          - string
          - 'null'
          description: Descriptive name of the tax code applied to the line, when applicable.
        taxTotal:
          type:
          - number
          - 'null'
          description: Equivalent to Invoice Amount for tax line items; 0 otherwise.
          format: double
        invoiceTotalWithoutTax:
          type:
          - number
          - 'null'
          description: Invoice-level total excluding tax (repeats on every line of the invoice).
          format: double
        invoiceTotalWithTax:
          type:
          - number
          - 'null'
          description: Invoice-level total including tax (repeats on every line of the invoice).
          format: double
        paidDate:
          type:
          - string
          - 'null'
          description: Date the invoice was marked paid; null while open.
          format: date-time
        late:
          type:
          - integer
          - 'null'
          description: 1 when the invoice is past Due Date and unpaid or was paid late, otherwise 0. (Computed 1/0 flag in the view.)
          format: int32
        daysLate:
          type:
          - integer
          - 'null'
          description: Days between Due Date and either Paid Date (if paid) or today (if open). 0 if not yet due.
          format: int32
        customerCurrencyCode:
          type:
          - string
          - 'null'
          description: ISO currency code of the customer's billing currency.
        shipmentName:
          type:
          - string
          - 'null'
          description: Concatenated names of shipments invoiced on this line (comma-separated).
        shipmentsLine1s:
          type:
          - string
          - 'null'
          description: Together with ShipmentsLine2s, concatenated shipment address values (comma-separated).
        shipmentsLine2s:
          type:
          - string
          - 'null'
          description: Together with ShipmentsLine1s, concatenated shipment address values (comma-separated).
        shipmentsCities:
          type:
          - string
          - 'null'
          description: Concatenated shipment cities (comma-separated).
        shipmentsStates:
          type:
          - string
          - 'null'
          description: Concatenated shipment state/provinces (comma-separated).
        shipmentsCountries:
          type:
          - string
          - 'null'
          description: Concatenated shipment countries (comma-separated).
        accountingClass:
          type:
          - string
          - 'null'
          description: Accounting classification for the item associated to the line, if applicable.
      additionalProperties: false
      description: 'One row of the pre-joined invoice reporting view (`rpt.View_ExposedReportingData_Invoice`): one

        invoice line item, joined to sales-order and shipment context with line type, pricing, tax, and aging

        detail. Property names are clean identifiers; the query aliases each source column (e.g.

        `[Issued Date]`) to the matching property so Dapper can bind it.'
    DtoReportingTimeClockReportFilter:
      type: object
      properties:
        startedFrom:
          type:
          - string
          - 'null'
          description: Inclusive lower bound applied to the entry's clock-in time (Started). Null means no lower bound.
          format: date-time
        startedTo:
          type:
          - string
          - 'null'
          description: 'Inclusive upper bound applied to the entry''s clock-in time (Started); the whole `to` day is

            included. Null means no upper bound.'
          format: date-time
        employee:
          type:
          - string
          - 'null'
          description: Optional exact-match filter on the operator / employee name. Null means no employee filter.
        type:
          type:
          - string
          - 'null'
          description: Optional exact-match filter on the timer-entry type (ClockIn or Break). Null means no type filter.
      additionalProperties: false
      description: 'Constrained filter for the time-clock reporting list endpoint. Every field maps to a fixed,

        server-controlled column; values are always bound as Dapper parameters and never concatenated

        into SQL.'
    DtoPagedResultDtoDtoReportingSalesOrderLinesReportRow:
      required:
      - data
      - hasNextPage
      - hasPreviousPage
      - page
      - pageSize
      - totalCount
      - totalPages
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/DtoReportingSalesOrderLinesReportRow'
          description: The data
        page:
          type: integer
          description: The 1-indexed page
          format: int32
          readOnly: true
        pageSize:
          type: integer
          description: The page size
          format: int32
          readOnly: true
        totalCount:
          type: integer
          description: The total count of records
          format: int32
        totalPages:
          type: integer
          description: The total pages
          format: int32
          readOnly: true
        hasPreviousPage:
          type: boolean
          description: True if there is a previous page
          readOnly: true
        hasNextPage:
          type: boolean
          description: True if there is a next page
          readOnly: true
      additionalProperties: false
      description: Paged result
    DtoReportingJobActivityReportRow:
      type: object
      properties:
        jobName:
          type:
          - string
          - 'null'
          description: Job name (typically the user-facing job identifier).
        item:
          type:
          - string
          - 'null'
          description: Item number being produced.
        itemDescription:
          type:
          - string
          - 'null'
          description: Item description.
        itemRevision:
          type:
          - string
          - 'null'
          description: Item revision when revision tracking is enabled.
        itemTags:
          type:
          - string
          - 'null'
          description: Comma-separated descriptive tags from the item.
        productionDueDate:
          type:
          - string
          - 'null'
          description: Job's production due date.
          format: date-time
        salesOrderNumber:
          type:
          - string
          - 'null'
          description: Source sales order number, when the job is SO-driven.
        customer:
          type:
          - string
          - 'null'
          description: Customer name from the sales order.
        customerPurchaseOrder:
          type:
          - string
          - 'null'
          description: Customer's PO number from the sales order.
        jobPriority:
          type:
          - string
          - 'null'
          description: Job priority value (High, Medium, or Low).
        jobStatus:
          type:
          - string
          - 'null'
          description: Job lifecycle status (Approved, Scheduled, In Progress, Complete, etc.).
        jobScheduledStart:
          type:
          - string
          - 'null'
          description: Scheduled start time of the job.
          format: date-time
        jobScheduledEnd:
          type:
          - string
          - 'null'
          description: Scheduled end time of the job.
          format: date-time
        jobLateStatus:
          type:
          - string
          - 'null'
          description: Late classification for the job (Late or On Time).
        jobPlannedQty:
          type:
          - number
          - 'null'
          description: Planned quantity for the job.
          format: double
        uoM:
          type:
          - string
          - 'null'
          description: Unit of measur

# --- truncated at 32 KB (92 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/fulcrumpro/refs/heads/main/openapi/fulcrumpro-reporting-api-openapi.yml