---
title: "List Completed Jobs"
method: GET
path: "/jobs"
tags: ["Jobs"]
---

# List Completed Jobs

`GET /jobs`

List all completed jobs which were initiated by Link (i.e., excluding refresh jobs for monitoring). This is a paginated endpoint; see how Pinwheel implements pagination <a href='https://docs.pinwheelapi.com/docs/pagination-1' target='_blank'>here</a>.

## Query parameters

- `job_types` string[] — List of job types. May be expanded to include new enum values (see our Change Management policy).
- `link_token_id` string, uuid — UUID of the link token triggering the job.
- `account_id` string, uuid — UUID of the payroll account.
- `outcome` 'pending' | 'error' | 'success' — The outcome of the job.
- `limit` integer — The maximum number of results to return.
- `cursor` string — Cursor for the page you want to retrieve.
- `from_timestamp` string, date-time — Return results after this ISO 8601 timestamp.
- `to_timestamp` string, date-time — Return results to this ISO 8601 timestamp.

## Headers

- `Pinwheel-Version` '2025-07-08' | '2023-11-22' | '2023-07-18' | '2023-04-18' | '2022-09-09' | '2022-06-22' | '2022-03-02', required

## Response `200`

OK

- object
  - `meta` PaginationMeta, required
    - `count` integer — Number of objects returned.
    - `next_cursor` string — Pointer to the next page of results.
  - `data` JobObjResponseV20231122[], required
    - `id` string, uuid, required — Unique identifier for the object.
    - `name` 'bill_cancellation' | 'tax_forms' | 'paystubs' | 'direct_deposit_payment' | 'bill_switch' | 'identity' | 'employment' | 'shifts' | 'income' | 'direct_deposit_switch' | 'direct_deposit_allocations', required — Name of the completed job.
    - `timestamp` string, date-time, required — ISO 8601 timestamp of job completion.
    - `outcome` 'pending' | 'error' | 'success', required — The outcome of the job.
    - `error_code` string — On error, an explicit code describing the error.
    - `error_type` string — On error, a high level classification of the error.
    - `link_token_id` string, uuid, required — UUID of the link token triggering the job.
    - `params` ParamsPayloadV20231122
      - `document_type` 'paystub' | 'W-2' | '1099' | 'direct_deposit_form' | 'verification_report' | '1040' | 'bank_statement' | 'ssi_award_letter' | 'w2' | 'verification_photo' — The type of the document.
      - `pay_date` string — The date when the check amount is paid to the employee.
      - `year` integer — The tax year of the form.
      - `count` integer — The number of available data objects fetched in the job.
      - `from_pay_date` string — The earliest pay date for the set of available paystubs in the paystubs job.
      - `to_pay_date` string — The latest pay date for the set of available paystubs in the paystubs job.
      - `has_potential_paystubs_documents` boolean — Indicates whether a paystubs documents job will attempt to run.
      - `sync_status` 'in_progress' | 'complete' — The current synchronization status of the payroll platforms data with Pinwheel's data.
      - `bill_id` string, uuid — UUID of the user's recurring bill. This corresponds to the `id` field in the Bill Detection webhooks (e.g. `bill.added`).
      - `type` 'ach' | 'card' — The type of payment that was used in a bill switch job.
      - `payment` MerchantPayment
        - `card_name` string — The name of the new card added in a bill switch job.
        - `last_four_card_number` string — The last four digits of the card number added in a bill switch job.
        - `account_name` string — The account name (if any) for this payment.
        - `account_type` 'checking' | 'savings' — The account type for this payment.
        - `last_four_account_number` string — The last four digits of the account number for this payment.
      - `frequency` 'weekly' | 'bi-weekly' | 'monthly' | 'bi-monthly' | 'quarterly' | 'semi-yearly' | 'yearly' | 'other' — How often the recurring bill is paid.
      - `next_payment_date` string, date-time — Next payment date for the bill (if known).
      - `next_payment_amount_cents` integer — Next predicted payment amount in cents.
      - `is_integrated_switch` boolean — Whether this is an integrated switch flow (true) or guided flow (false).
      - `is_integrated_cancellation` boolean — Whether this is an integrated cancellation flow (true) or guided flow (false).
      - `detection_method` 'manual' | 'external_plaid' | 'first_party' — Whether this bill was detected from an external account (`external-plaid`), uploaded transaction data (`first-party`), or created manually by the user (`manual`).
      - `reported_platform_name` string — For platforms not tracked by Pinwheel, the reported name of the merchant/platform associated with the recurring bill or subscription.
      - `reserved_platform_id` string, uuid — For platforms not tracked by Pinwheel, the reserved platform ID if we track it in the future.
      - `card_name` string — The name of the new card added in a card switch job.
      - `action` 'full_switch' | 'partial_switch' — Indicates whether the `direct_deposit_switch` was a full or partial switch.
      - `allocation` DirectDepositAllocationDetail
        - `type` 'amount' | 'percentage' | 'remainder' — Indicates what type of allocation this is.
        - `value` integer — The value (if any) for this allocation. Will be set if the type is `percentage` or `amount`.
        - `target` TargetAccount
          - `account_name` string — The account name (if any) for this allocation.
          - `account_type` 'checking' | 'savings' — The account type for this allocation.
          - `last_four_account_number` string — The last four digits of the account number for this allocation.
    - `account_id` string, uuid — UUID of the payroll account.

---

[API](https://skmtc.net/getpinwheel/apis/pinwheel.md) · [All operations](https://skmtc.net/getpinwheel/apis/pinwheel/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/getpinwheel/pinwheel/versions/bf20c4d4c5d3/schema)
