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

# Get Job Result Rows

> Paginate, filter, and sort the rows of an inference-job result file server-side. Sibling of ``GET /jobs/{job_id}/results`` (which returns the signed download URL + summary aggregates); this endpoint lets the console render an interactive row table without downloading the full parquet.



## OpenAPI

````yaml /openapi.json get /jobs/{job_id}/results/rows
openapi: 3.1.0
info:
  title: Woodwide API
  description: API service for the Woodwide platform
  version: 0.1.0
servers:
  - url: https://api.woodwide.ai
    description: Production
security: []
paths:
  /jobs/{job_id}/results/rows:
    get:
      tags:
        - Jobs
      summary: Get Job Result Rows
      description: >-
        Paginate, filter, and sort the rows of an inference-job result file
        server-side. Sibling of ``GET /jobs/{job_id}/results`` (which returns
        the signed download URL + summary aggregates); this endpoint lets the
        console render an interactive row table without downloading the full
        parquet.
      operationId: get_job_result_rows_jobs__job_id__results_rows_get
      parameters:
        - name: job_id
          in: path
          required: true
          schema:
            type: string
            title: Job Id
        - name: offset
          in: query
          required: false
          schema:
            type: integer
            minimum: 0
            description: Zero-based offset of the first row.
            default: 0
            title: Offset
          description: Zero-based offset of the first row.
        - name: limit
          in: query
          required: false
          schema:
            type: integer
            maximum: 500
            minimum: 1
            description: Page size (capped at 500 by the server).
            default: 50
            title: Limit
          description: Page size (capped at 500 by the server).
        - name: search
          in: query
          required: false
          schema:
            anyOf:
              - type: string
                maxLength: 200
              - type: 'null'
            description: >-
              Case-insensitive substring match across every column (mirrors the
              console's old client-side global filter).
            title: Search
          description: >-
            Case-insensitive substring match across every column (mirrors the
            console's old client-side global filter).
        - name: sort_by
          in: query
          required: false
          schema:
            anyOf:
              - type: string
                maxLength: 200
              - type: 'null'
            description: Column name to sort by. Unknown columns are silently ignored.
            title: Sort By
          description: Column name to sort by. Unknown columns are silently ignored.
        - name: sort_dir
          in: query
          required: false
          schema:
            type: string
            pattern: ^(asc|desc)$
            description: Sort direction. Ignored when ``sort_by`` is not set.
            default: asc
            title: Sort Dir
          description: Sort direction. Ignored when ``sort_by`` is not set.
        - name: filter_column
          in: query
          required: false
          schema:
            anyOf:
              - type: string
                maxLength: 200
              - type: 'null'
            description: >-
              Exact-value filter on a single column (combined with ``search``).
              Required together with ``filter_value``. Unknown columns are
              silently ignored. Used by the segment drill-down to fetch one
              cluster's rows without abusing the substring ``search`` param.
            title: Filter Column
          description: >-
            Exact-value filter on a single column (combined with ``search``).
            Required together with ``filter_value``. Unknown columns are
            silently ignored. Used by the segment drill-down to fetch one
            cluster's rows without abusing the substring ``search`` param.
        - name: filter_value
          in: query
          required: false
          schema:
            anyOf:
              - type: string
                maxLength: 200
              - type: 'null'
            description: >-
              Value to match against ``filter_column`` (string-coerced on both
              sides). Ignored when ``filter_column`` is not set.
            title: Filter Value
          description: >-
            Value to match against ``filter_column`` (string-coerced on both
            sides). Ignored when ``filter_column`` is not set.
        - name: columns
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: string
              - type: 'null'
            description: >-
              Subset of columns to return (repeatable:
              ``?columns=a&columns=b``). Omit to return every column. Unknown
              names are silently ignored. Lets the console fetch only the
              columns it renders so a wide combined result file doesn't ship
              every input column on every page. ``search`` still matches across
              all columns; the projection only narrows the columns returned.
            title: Columns
          description: >-
            Subset of columns to return (repeatable: ``?columns=a&columns=b``).
            Omit to return every column. Unknown names are silently ignored.
            Lets the console fetch only the columns it renders so a wide
            combined result file doesn't ship every input column on every page.
            ``search`` still matches across all columns; the projection only
            narrows the columns returned.
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JobResultRowsResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
        - HTTPBearer: []
components:
  schemas:
    JobResultRowsResponse:
      properties:
        rows:
          items:
            additionalProperties: true
            type: object
          type: array
          title: Rows
          description: One page of inference-result rows as plain JSON objects.
        offset:
          type: integer
          title: Offset
          description: Zero-based offset of the first row in this page.
        limit:
          type: integer
          title: Limit
          description: Number of rows requested (may be capped server-side).
        total:
          type: integer
          title: Total
          description: >-
            Total unfiltered rows in the underlying result file. Independent of
            any ``search`` parameter, so the UI can show ``of N`` against the
            real dataset size.
        total_filtered:
          type: integer
          title: Total Filtered
          description: >-
            Rows matching the requested ``search`` filter (or equal to ``total``
            when no search applied).
        notice:
          anyOf:
            - type: string
            - type: 'null'
          title: Notice
          description: >-
            Optional human-readable note about degraded results — e.g. set when
            the original input is no longer available and only model predictions
            (without input columns) could be returned.
      type: object
      required:
        - rows
        - offset
        - limit
        - total
        - total_filtered
      title: JobResultRowsResponse
      description: |-
        One page of inference-result rows for the console output viewer.

        Paginated server-side from the underlying parquet via polars; lets the
        console drop its in-browser DuckDB-WASM windowed reader for this path.
        Sibling endpoint of ``GET /jobs/{id}/results`` (which returns the
        signed download URL + summary aggregates).
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
        input:
          title: Input
        ctx:
          type: object
          title: Context
      type: object
      required:
        - loc
        - msg
        - type
      title: ValidationError
  securitySchemes:
    HTTPBearer:
      type: http
      scheme: bearer

````