> ## 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.

# Get a download request

> Poll the status of a download request by id. While processing, `status` is `accepted`.
When `status` is `completed`, the response includes a presigned `url` to the CSV result.
On failure, `status` is `failed` and `error` is populated.




## OpenAPI

````yaml /developer-docs/api-reference/downloads-openapi-schema-1.0.0.yaml get /v1/downloads/{id}
openapi: 3.0.3
info:
  title: Oleria Downloads API
  description: API for exporting data from Oleria in csv format
  version: 1.0.0
servers:
  - url: https://devx.{tenant}.oleria.io
    description: Oleria DevX Server
    variables:
      tenant:
        default: example
        description: the name of your Oleria workspace
security:
  - clientCredentials: []
tags:
  - name: Downloads
    description: >
      Bulk asynchronous export of Oleria data as CSV — access inventory
      snapshots, identities,

      risks, access requests, lifecycle events, and more. Create a download
      request for the

      dataset you want (set by the `context` field), then poll the request by id
      until it

      completes and returns a presigned download URL.
paths:
  /v1/downloads/{id}:
    get:
      tags:
        - Downloads
      summary: Get a download request
      description: >
        Poll the status of a download request by id. While processing, `status`
        is `accepted`.

        When `status` is `completed`, the response includes a presigned `url` to
        the CSV result.

        On failure, `status` is `failed` and `error` is populated.
      operationId: GetDownloadRequest
      parameters:
        - in: path
          name: id
          schema:
            type: string
            format: uuid
          required: true
          description: ID in UUID format for a download request
      responses:
        '200':
          description: Download request found successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DownloadRequest'
        '400':
          description: Bad Request - Invalid input parameters
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
        - clientCredentials:
            - ClientCredentialsResourceServer/client_credentials_base_scope
components:
  schemas:
    DownloadRequest:
      type: object
      description: Tracks the status of a download request
      required:
        - id
        - context
        - fileFormat
        - status
        - urlTtlMinutes
      properties:
        id:
          type: string
          format: uuid
        context:
          $ref: '#/components/schemas/DownloadContext'
        fileFormat:
          $ref: '#/components/schemas/FileFormat'
        status:
          $ref: '#/components/schemas/DownloadRequestStatus'
        error:
          $ref: '#/components/schemas/Error'
        url:
          type: string
          description: A presigned URL to the S3 object containing the result data.
        urlTtlMinutes:
          type: integer
          minimum: 1
          maximum: 4320
          description: Duration that the presigned download URL is valid in minutes.
    Error:
      type: object
      required:
        - code
        - message
      properties:
        code:
          type: string
        message:
          type: string
    DownloadContext:
      type: string
      description: >
        Selects which dataset the download request exports. The request and
        polling flow are

        identical for every value — only the returned data differs. The contexts
        below use the

        same catalog as the [Working with
        Downloads](/developer-docs/api-reference/working-with-downloads)

        guide, which also documents the filter and sort grammar.


        | Group | `context` values | What it returns |

        |---|---|---|

        | Access Inventory | `accessInventoryIdentitiesV2`,
        `accessInventoryEmployeesV2`, `accessInventoryNhiV2`,
        `accessInventoryAccounts`, `accessInventoryApplicationAccountsV2`,
        `accessInventoryApplicationInstancesV2`, `accessInventoryGroupsV2`,
        `accessInventoryRolesV2`, `accessInventoryResourceInstancesV2` |
        Snapshots of who has access to what, by identity / account / group /
        role. |

        | Identity & Employees | `identities`, `employees`,
        `employeeAccessInsights`, `oleriaUsers` | Canonical identity and HR
        records, plus per-employee access posture. |

        | Utilization | `accountUtilization`, `groupUtilizationAccounts` |
        Activity-weighted views of how access is actually used. |

        | Risk & Activity | `risks`, `risksV2`, `riskMonitoringDetail`,
        `activityAnalysis` | Detected risks, monitoring detail, and the raw
        activity log. |

        | Identity Assessments | `identityAssessmentRiskDownload`,
        `identityAssessmentEntitlementUtilization`,
        `identityAssessmentResourceInstanceUtilization`,
        `identityAssessmentSimilarGroups` | Periodic assessment outputs across
        entitlements and resources. |

        | Identity Lifecycle (ILM) | `ilmEmployeeEvents`,
        `ilmWorkflowEmployeeEvents`, `ilmEventAccountActions`,
        `ilmEventApplicationActions`, `ilmEventGroupActions` | Joiner / mover /
        leaver events, the workflows they triggered, and the per-event account /
        application / group provisioning actions performed for each one. |

        | External Access | `externalAccessUsers`, `externalAnonymousAccess`,
        `externalSharedAssets` | Third-party users, anonymous shares, and
        externally shared assets. |

        | Access Requests | `accessRequests` | Submitted access requests and
        their status. |

        | Reference | `resourceInstances`, `unmanagedApplications`,
        `applicationAccounts`, `userGroup` | Resource and application catalog
        data. |


        `oleriaUsers` is an administrative context, not customer-facing identity
        data.
      enum:
        - accessInventoryAccounts
        - accessInventoryApplicationAccountsV2
        - accessInventoryApplicationInstancesV2
        - accessInventoryEmployeesV2
        - accessInventoryGroupsV2
        - accessInventoryIdentitiesV2
        - accessInventoryNhiV2
        - accessInventoryResourceInstancesV2
        - accessInventoryRolesV2
        - accessRequests
        - accountUtilization
        - activityAnalysis
        - applicationAccounts
        - employeeAccessInsights
        - employees
        - externalAccessUsers
        - externalAnonymousAccess
        - externalSharedAssets
        - groupUtilizationAccounts
        - identities
        - identityAssessmentEntitlementUtilization
        - identityAssessmentResourceInstanceUtilization
        - identityAssessmentRiskDownload
        - identityAssessmentSimilarGroups
        - ilmEmployeeEvents
        - ilmEventAccountActions
        - ilmEventApplicationActions
        - ilmEventGroupActions
        - ilmWorkflowEmployeeEvents
        - oleriaUsers
        - resourceInstances
        - riskMonitoringDetail
        - risks
        - risksV2
        - unmanagedApplications
        - userGroup
    FileFormat:
      type: string
      description: >
        Selects the file format the download request exports. Defaults to `csv`
        when omitted.
      enum:
        - csv
        - jsonl
      default: csv
    DownloadRequestStatus:
      type: string
      enum:
        - accepted
        - completed
        - failed
  securitySchemes:
    clientCredentials:
      type: oauth2
      flows:
        clientCredentials:
          tokenUrl: https://auth.example.oleria.io/oauth2/token
          scopes:
            ClientCredentialsResourceServer/client_credentials_base_scope: >-
              Default scope used for all client credentials (RBAC is controlled
              via permissions in the bearer token)

````