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

# List

> Returns a page of the jobs this tenant has started, most recently started first. Each job is one submitted change and the outcome of applying it. Requires the `https://devx.{environment}.oleria.io/read` scope.



## OpenAPI

````yaml /developer-docs/api-reference/oleria-public-api-1.0.0.yaml get /v1/action-jobs
openapi: 3.0.3
info:
  title: Oleria Public API
  version: 1.0.0
  description: >-
    REST API for Oleria's identity and access data. Each resource is a
    collection exposing list and get operations; responses return the complete
    object. Where Oleria can change what it reports, the change is a method on
    the same resource: disabling an account is `POST /v1/accounts/{id}/disable`,
    and membership is a sub-resource asserted with `PUT` and removed with
    `DELETE`. Those changes are applied in the source application
    asynchronously: each returns a job under `/v1/action-jobs` that reports the
    outcome for every target it affected, and whether Oleria's own data reflects
    it yet. Authenticate with OAuth 2.0 client credentials and send the access
    token as `Authorization: Bearer <token>`.
servers:
  - url: https://devx.{environment}.oleria.io
    description: Oleria API server.
    variables:
      environment:
        default: prod
        description: >-
          Your Oleria deployment, for example `acme` for
          `https://devx.acme.oleria.io`. Substitute it in the OAuth scope names
          as well, since OpenAPI applies a server variable to the URL only and
          the scopes are published with the placeholder still in them.
security: []
paths:
  /v1/action-jobs:
    get:
      tags:
        - Action jobs
      summary: List
      description: >-
        Returns a page of the jobs this tenant has started, most recently
        started first. Each job is one submitted change and the outcome of
        applying it. Requires the `https://devx.{environment}.oleria.io/read`
        scope.
      operationId: ListActionJobs
      parameters:
        - $ref: '#/components/parameters/pageSize'
        - $ref: '#/components/parameters/pageToken'
      responses:
        '200':
          description: A page of action jobs.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ActionJobList'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalError'
      security:
        - oauth2:
            - https://devx.{environment}.oleria.io/read
components:
  parameters:
    pageSize:
      name: pageSize
      in: query
      description: Maximum items per page.
      schema:
        type: integer
        format: int32
        default: 50
        minimum: 1
        maximum: 200
    pageToken:
      name: pageToken
      in: query
      description: >-
        Opaque page token from the previous response's `nextPageToken`. Omit it
        for the first page; pass it back exactly as received. Do not parse or
        construct it.
      schema:
        type: string
  schemas:
    ActionJobList:
      type: object
      required:
        - items
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/ActionJob'
        nextPageToken:
          type: string
          description: >-
            Opaque token for the next page; pass it back as `pageToken`. Present
            whenever more pages remain, including when this page is empty
            because the results are still being prepared, and absent only once
            the collection is fully returned. Do not parse or construct it.
    ActionJob:
      type: object
      description: One submitted change and the outcome of applying it.
      required:
        - id
        - type
        - status
        - targets
        - startedAt
      properties:
        completedAt:
          type: string
          format: date-time
          description: >-
            When the job reached a terminal status; null while it is still
            running.
          nullable: true
        dataSync:
          type: object
          description: >-
            Whether Oleria's own data reflects this change yet. A job can be
            complete, with the change applied in the application, while reads
            here still return the previous value.
          required:
            - status
          properties:
            status:
              type: string
              description: Progress of re-reading the affected objects into Oleria.
              enum:
                - InProgress
                - Completed
                - PartiallyCompleted
                - Failed
        id:
          type: string
          format: uuid
          description: Id of this job.
          example: 9f2b1c7e-5a84-4d6b-9c31-0e7f8a2d4b16
        operation:
          type: string
          description: >-
            The operation that started this job, named as it appears in this API
            (for example `DisableAccount`). Absent for changes made through the
            Oleria application rather than through this API, which have no
            operation to name.
          example: DisableAccount
        revert:
          type: object
          description: Whether this job's change can still be undone.
          required:
            - available
          properties:
            available:
              type: boolean
              description: >-
                Whether reverting this job would be accepted now. False when the
                change is not reversible on the application it was applied to,
                when the window has passed, when the job did not complete, when
                the job is itself a revert, or when it has already been
                reverted.
            availableUntil:
              type: string
              format: date-time
              description: >-
                When the job stops being revertible. Computed for each response
                rather than fixed, so treat it as the current answer and not a
                guaranteed interval. Null when the change is not reversible at
                all.
              nullable: true
        revertedBy:
          type: string
          format: uuid
          description: >-
            The revert job that undid this one. Null until this job has been
            reverted, which makes the pair navigable from either end.
          nullable: true
        reverts:
          type: string
          format: uuid
          description: >-
            The job this one undoes. Set when `type` is `Revert`, null
            otherwise.
          nullable: true
        startedAt:
          type: string
          format: date-time
          description: When the job was accepted.
        status:
          type: string
          description: >-
            Where the job has got to. `Queued` and `Running` are not terminal;
            every other value is.
          enum:
            - Queued
            - Running
            - Completed
            - PartiallyCompleted
            - Failed
            - Cancelled
            - Reverted
            - PartiallyReverted
        targets:
          type: object
          description: >-
            How many targets the change was applied to, and how they turned out.
            Targets still in flight are the remainder. Some changes expand
            server-side into the records that actually have to be altered, so
            these counts are not final while the status is `Queued`. A total of
            zero there means the target set is still being resolved, not that
            there is nothing to do.
          required:
            - total
            - succeeded
            - failed
          properties:
            failed:
              type: integer
              description: >-
                Targets the change could not be applied to. Each is listed with
                a reason in the job's results.
            succeeded:
              type: integer
              description: Targets the change was applied to successfully.
            total:
              type: integer
              description: Targets this job is applying the change to.
        type:
          type: string
          description: >-
            Whether this job applied a change or undid one. A revert cannot
            itself be reverted, so this is what tells a caller which jobs are
            candidates.
          enum:
            - Change
            - Revert
    ErrorResponse:
      type: object
      description: >-
        Error envelope. `code` is a stable machine-readable identifier;
        `message` is human-readable.
      required:
        - code
        - message
      properties:
        code:
          type: string
          description: Stable, machine-readable error code (SCREAMING_SNAKE_CASE).
          example: NOT_FOUND
        details:
          type: object
          description: Optional free-form context for debugging.
          additionalProperties: true
        message:
          type: string
          description: Human-readable description of the error.
          example: No resource with the given id.
  responses:
    BadRequest:
      description: The request was malformed, for example an invalid cursor or page size.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            code: BAD_REQUEST
            message: The request was malformed.
    Unauthorized:
      description: Missing or invalid authentication token.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            code: UNAUTHORIZED
            message: Missing or invalid authentication token.
    Forbidden:
      description: The token lacks the scope required for this resource.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            code: FORBIDDEN
            message: The token lacks the required scope.
    TooManyRequests:
      description: Rate limit exceeded. Retry after the interval in the Retry-After header.
      headers:
        Retry-After:
          description: Seconds to wait before retrying.
          schema:
            type: integer
            minimum: 0
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            code: TOO_MANY_REQUESTS
            message: Rate limit exceeded. Retry after the specified interval.
    InternalError:
      description: An unexpected error occurred.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            code: INTERNAL_ERROR
            message: An unexpected error occurred.
  securitySchemes:
    oauth2:
      type: oauth2
      description: >-
        OAuth 2.0 client-credentials flow. Request an access token from the
        token endpoint and send it as `Authorization: Bearer <token>`.
      flows:
        clientCredentials:
          tokenUrl: https://auth.prod.oleria.io/oauth/token
          scopes:
            https://devx.{environment}.oleria.io/delete: Irreversibly destroy an object in the source system.
            https://devx.{environment}.oleria.io/read: Read identity and access data, and the jobs that change it.
            https://devx.{environment}.oleria.io/write: >-
              Make reversible changes: grant, enable, assign, revoke and remove
              access.

````