---
title: "List bulk employment rows"
method: GET
path: "/v1/bulk-employment-jobs/{job_id}/rows"
tags: ["Employment Management"]
---

# List bulk employment rows

`GET /v1/bulk-employment-jobs/{job_id}/rows`

Returns grouped bulk employment rows, including field-level validation errors in `errors`, row-level failures in `row_errors`, and submission-phase failures in `submission_errors`. If a row passes validation but later fails during Global Payroll activation, that failure is surfaced here after submission rather than in the initial create response.

## Scopes

| Category | Read only Scope | Write only Scope (read access implicit) |
|---|---|---|
| Manage employments (`employments`) | View employments (`employment:read`) | Manage employments (`employment:write`) |

## Path parameters

- `job_id` string, required

## Query parameters

- `page` integer
- `page_size` integer

## Response `200`

Success

- ImportJobRowsResponse
  - `data` object, required
    - `counts_by_column` object — Per-column error and valid row counts across all rows, keyed by the column's field path
    - `counts_by_status` object, required
      - `deleted` integer, required
      - `error` integer, required
      - `imported` integer, required
      - `pending` integer, required
      - `retryable` integer, required
      - `skipped` integer, required
      - `successful` integer, required
      - `unprocessable` integer, required
    - `current_page` integer, required
    - `ordered_rows` integer[]
    - `rows` object, required
      - `failures` ImportJobRow[], required
        - `data` ImportDataRow, required
        - `errors` object, required — Fields with their error messages
        - `metadata` object — Row metadata. For login-email-selection-enabled imports (e.g. EOR bulk invite), each reviewed row carries a `login_email_signals` object with the per-row login-email review signals.
          - `login_email_signals` object — Per-row review-step signals for login email selection, present only when the feature is enabled. `sso_enforced` reflects whether SSO login is enforced for the row's category. `personal` and `work` report, for each provided email, whether it is already registered on another account.
            - `personal` object
              - …
            - `sso_enforced` boolean
            - `work` object
              - …
        - `row_error_details` object
          - `ambiguous` object[]
            - `amount` integer, nullable, required
            - `created_by` object, nullable, required
              - …
            - `effective_date` string, nullable, required
            - `employee_identifier` string, nullable, required
            - `end_date` string, nullable, required
            - `inserted_at` string, nullable, required
            - `occurrence` string, nullable, required
            - `pay_item` string, nullable, required
            - `slug` string, required
        - `row_errors` object
        - `row_number` integer, required
        - `status` 'successful' | 'imported' | 'error' | 'unprocessable' | 'pending' | 'deleted' | 'skipped' | 'retryable'
        - `submission_errors` ImportJobRowError[]
          - `error` string, nullable
          - `field_name` string, nullable
          - `messages` string[], required
      - `imported` ImportJobRow[], required
        - `data` ImportDataRow, required
        - `errors` object, required — Fields with their error messages
        - `metadata` object — Row metadata. For login-email-selection-enabled imports (e.g. EOR bulk invite), each reviewed row carries a `login_email_signals` object with the per-row login-email review signals.
          - `login_email_signals` object — Per-row review-step signals for login email selection, present only when the feature is enabled. `sso_enforced` reflects whether SSO login is enforced for the row's category. `personal` and `work` report, for each provided email, whether it is already registered on another account.
            - `personal` object
              - …
            - `sso_enforced` boolean
            - `work` object
              - …
        - `row_error_details` object
          - `ambiguous` object[]
            - `amount` integer, nullable, required
            - `created_by` object, nullable, required
              - …
            - `effective_date` string, nullable, required
            - `employee_identifier` string, nullable, required
            - `end_date` string, nullable, required
            - `inserted_at` string, nullable, required
            - `occurrence` string, nullable, required
            - `pay_item` string, nullable, required
            - `slug` string, required
        - `row_errors` object
        - `row_number` integer, required
        - `status` 'successful' | 'imported' | 'error' | 'unprocessable' | 'pending' | 'deleted' | 'skipped' | 'retryable'
        - `submission_errors` ImportJobRowError[]
          - `error` string, nullable
          - `field_name` string, nullable
          - `messages` string[], required
      - `pending` ImportJobRow[], required
        - `data` ImportDataRow, required
        - `errors` object, required — Fields with their error messages
        - `metadata` object — Row metadata. For login-email-selection-enabled imports (e.g. EOR bulk invite), each reviewed row carries a `login_email_signals` object with the per-row login-email review signals.
          - `login_email_signals` object — Per-row review-step signals for login email selection, present only when the feature is enabled. `sso_enforced` reflects whether SSO login is enforced for the row's category. `personal` and `work` report, for each provided email, whether it is already registered on another account.
            - `personal` object
              - …
            - `sso_enforced` boolean
            - `work` object
              - …
        - `row_error_details` object
          - `ambiguous` object[]
            - `amount` integer, nullable, required
            - `created_by` object, nullable, required
              - …
            - `effective_date` string, nullable, required
            - `employee_identifier` string, nullable, required
            - `end_date` string, nullable, required
            - `inserted_at` string, nullable, required
            - `occurrence` string, nullable, required
            - `pay_item` string, nullable, required
            - `slug` string, required
        - `row_errors` object
        - `row_number` integer, required
        - `status` 'successful' | 'imported' | 'error' | 'unprocessable' | 'pending' | 'deleted' | 'skipped' | 'retryable'
        - `submission_errors` ImportJobRowError[]
          - `error` string, nullable
          - `field_name` string, nullable
          - `messages` string[], required
      - `retryable` ImportJobRow[], required
        - `data` ImportDataRow, required
        - `errors` object, required — Fields with their error messages
        - `metadata` object — Row metadata. For login-email-selection-enabled imports (e.g. EOR bulk invite), each reviewed row carries a `login_email_signals` object with the per-row login-email review signals.
          - `login_email_signals` object — Per-row review-step signals for login email selection, present only when the feature is enabled. `sso_enforced` reflects whether SSO login is enforced for the row's category. `personal` and `work` report, for each provided email, whether it is already registered on another account.
            - `personal` object
              - …
            - `sso_enforced` boolean
            - `work` object
              - …
        - `row_error_details` object
          - `ambiguous` object[]
            - `amount` integer, nullable, required
            - `created_by` object, nullable, required
              - …
            - `effective_date` string, nullable, required
            - `employee_identifier` string, nullable, required
            - `end_date` string, nullable, required
            - `inserted_at` string, nullable, required
            - `occurrence` string, nullable, required
            - `pay_item` string, nullable, required
            - `slug` string, required
        - `row_errors` object
        - `row_number` integer, required
        - `status` 'successful' | 'imported' | 'error' | 'unprocessable' | 'pending' | 'deleted' | 'skipped' | 'retryable'
        - `submission_errors` ImportJobRowError[]
          - `error` string, nullable
          - `field_name` string, nullable
          - `messages` string[], required
      - `skipped` ImportJobRow[], required
        - `data` ImportDataRow, required
        - `errors` object, required — Fields with their error messages
        - `metadata` object — Row metadata. For login-email-selection-enabled imports (e.g. EOR bulk invite), each reviewed row carries a `login_email_signals` object with the per-row login-email review signals.
          - `login_email_signals` object — Per-row review-step signals for login email selection, present only when the feature is enabled. `sso_enforced` reflects whether SSO login is enforced for the row's category. `personal` and `work` report, for each provided email, whether it is already registered on another account.
            - `personal` object
              - …
            - `sso_enforced` boolean
            - `work` object
              - …
        - `row_error_details` object
          - `ambiguous` object[]
            - `amount` integer, nullable, required
            - `created_by` object, nullable, required
              - …
            - `effective_date` string, nullable, required
            - `employee_identifier` string, nullable, required
            - `end_date` string, nullable, required
            - `inserted_at` string, nullable, required
            - `occurrence` string, nullable, required
            - `pay_item` string, nullable, required
            - `slug` string, required
        - `row_errors` object
        - `row_number` integer, required
        - `status` 'successful' | 'imported' | 'error' | 'unprocessable' | 'pending' | 'deleted' | 'skipped' | 'retryable'
        - `submission_errors` ImportJobRowError[]
          - `error` string, nullable
          - `field_name` string, nullable
          - `messages` string[], required
      - `successes` ImportJobRow[], required
        - `data` ImportDataRow, required
        - `errors` object, required — Fields with their error messages
        - `metadata` object — Row metadata. For login-email-selection-enabled imports (e.g. EOR bulk invite), each reviewed row carries a `login_email_signals` object with the per-row login-email review signals.
          - `login_email_signals` object — Per-row review-step signals for login email selection, present only when the feature is enabled. `sso_enforced` reflects whether SSO login is enforced for the row's category. `personal` and `work` report, for each provided email, whether it is already registered on another account.
            - `personal` object
              - …
            - `sso_enforced` boolean
            - `work` object
              - …
        - `row_error_details` object
          - `ambiguous` object[]
            - `amount` integer, nullable, required
            - `created_by` object, nullable, required
              - …
            - `effective_date` string, nullable, required
            - `employee_identifier` string, nullable, required
            - `end_date` string, nullable, required
            - `inserted_at` string, nullable, required
            - `occurrence` string, nullable, required
            - `pay_item` string, nullable, required
            - `slug` string, required
        - `row_errors` object
        - `row_number` integer, required
        - `status` 'successful' | 'imported' | 'error' | 'unprocessable' | 'pending' | 'deleted' | 'skipped' | 'retryable'
        - `submission_errors` ImportJobRowError[]
          - `error` string, nullable
          - `field_name` string, nullable
          - `messages` string[], required
      - `unprocessable` ImportJobRow[], required
        - `data` ImportDataRow, required
        - `errors` object, required — Fields with their error messages
        - `metadata` object — Row metadata. For login-email-selection-enabled imports (e.g. EOR bulk invite), each reviewed row carries a `login_email_signals` object with the per-row login-email review signals.
          - `login_email_signals` object — Per-row review-step signals for login email selection, present only when the feature is enabled. `sso_enforced` reflects whether SSO login is enforced for the row's category. `personal` and `work` report, for each provided email, whether it is already registered on another account.
            - `personal` object
              - …
            - `sso_enforced` boolean
            - `work` object
              - …
        - `row_error_details` object
          - `ambiguous` object[]
            - `amount` integer, nullable, required
            - `created_by` object, nullable, required
              - …
            - `effective_date` string, nullable, required
            - `employee_identifier` string, nullable, required
            - `end_date` string, nullable, required
            - `inserted_at` string, nullable, required
            - `occurrence` string, nullable, required
            - `pay_item` string, nullable, required
            - `slug` string, required
        - `row_errors` object
        - `row_number` integer, required
        - `status` 'successful' | 'imported' | 'error' | 'unprocessable' | 'pending' | 'deleted' | 'skipped' | 'retryable'
        - `submission_errors` ImportJobRowError[]
          - `error` string, nullable
          - `field_name` string, nullable
          - `messages` string[], required
    - `total_count` integer, required
    - `total_pages` integer, required

## Other responses

- `400` — Bad Request
- `403` — Forbidden
- `404` — Not Found
- `429` — Unprocessable Entity

---

[API](https://skmtc.net/remote-com/apis/remote.md) · [All operations](https://skmtc.net/remote-com/apis/remote/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/remote-com/remote/revisions/7e6a0c61ac82/schema)
