> ## 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 object extensions. Pass `pageToken` from the previous response's `nextPageToken` to fetch the next page. A page can be empty while the results are still being prepared. Keep requesting pages until the response has no `nextPageToken`. Requires the `https://devx.{environment}.oleria.io/read` scope.



## OpenAPI

````yaml /developer-docs/api-reference/oleria-public-api-1.0.0.yaml get /v1/object-has-extension
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/object-has-extension:
    get:
      tags:
        - Object extensions
      summary: List
      description: >-
        Returns a page of object extensions. Pass `pageToken` from the previous
        response's `nextPageToken` to fetch the next page. A page can be empty
        while the results are still being prepared. Keep requesting pages until
        the response has no `nextPageToken`. Requires the
        `https://devx.{environment}.oleria.io/read` scope.
      operationId: ListObjectHasExtension
      parameters:
        - $ref: '#/components/parameters/pageSize'
        - $ref: '#/components/parameters/pageToken'
        - $ref: '#/components/parameters/applicationInstanceId'
      responses:
        '200':
          description: A page of object extensions.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ObjectHasExtensionList'
        '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
    applicationInstanceId:
      name: applicationInstanceId
      in: query
      description: >-
        Scope the list to a single application instance, identified by its id
        (UUID). An application instance is one connected integration in your
        tenant: a specific Okta, Workday, and so on. Omit it to list across all
        of your instances.
      schema:
        type: string
        format: uuid
  schemas:
    ObjectHasExtensionList:
      type: object
      required:
        - items
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/Oleria_ObjectHasExtension'
        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.
    Oleria_ObjectHasExtension:
      type: object
      description: >
        An Oleria ObjectHasExtension relationship indicates that one object is
        an extension or

        manifestation of another - for example, a system or token Oleria Account
        that represents an

        Oleria IntegratedApplication. Direction: object to extension.
        globalObjectId/Type identify the

        base object; globalExtensionObjectId/Type identify its extension.
      allOf:
        - $ref: '#/components/schemas/ObjectHasExtension'
        - $ref: '#/components/schemas/Oleria_ObjectHasExtensionGlobalIdentifiers'
        - required:
            - oleriaObjectMetadata
          type: object
          properties:
            oleriaObjectMetadata:
              $ref: '#/components/schemas/Oleria_ObjectMetadata'
    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.
    ObjectHasExtension:
      required:
        - extensionObjectId
        - extensionObjectType
        - id
        - objectId
        - objectMetadata
        - objectType
      type: object
      properties:
        extensionObjectId:
          $ref: '#/components/schemas/LocallyUniqueId'
        extensionObjectType:
          $ref: '#/components/schemas/ObjectType'
        id:
          $ref: '#/components/schemas/LocallyUniqueId'
        objectId:
          $ref: '#/components/schemas/LocallyUniqueId'
        objectMetadata:
          $ref: '#/components/schemas/ObjectMetadata'
        objectType:
          $ref: '#/components/schemas/ObjectType'
      description: >
        An ObjectHasExtension relationship indicates when an object is an
        extension or manifestation of another object. For example, this is
        useful when a source application wants to associate system or token
        accounts with the integrated application representing an instance of the
        source application
    Oleria_ObjectHasExtensionGlobalIdentifiers:
      required:
        - globalExtensionObjectId
        - globalExtensionObjectType
        - globalId
        - globalObjectId
        - globalObjectType
      type: object
      properties:
        globalExtensionObjectId:
          type: string
          description: >
            Global ID of the object that serves as the extension or
            manifestation.
        globalExtensionObjectType:
          allOf:
            - $ref: '#/components/schemas/Oleria_ObjectType'
          description: |
            Object type of the extension object.
        globalId:
          type: string
          description: Opaque platform-assigned identifier for this relationship instance.
        globalObjectId:
          type: string
          description: |
            Global ID of the base object that the extension represents.
        globalObjectType:
          allOf:
            - $ref: '#/components/schemas/Oleria_ObjectType'
          description: |
            Object type of the base object.
      description: |
        Global identifiers composed on Oleria ObjectHasExtension
    Oleria_ObjectMetadata:
      type: object
      properties:
        enrichmentVersion:
          type: string
        generatedTime:
          type: string
          format: date-time
      description: >
        object metadata supersets object metadata with platform enrichment
        provenance — the enrichment version and the time the record was
        generated
    LocallyUniqueId:
      minLength: 1
      type: string
      description: >
        An identifier (unique to the integrated or assigned application) of any
        object or entity represented in the Oleria system as well as any
        relationship or connection among entities when they are represented in
        Oleria. Oleria converts these identifiers to global ids so they can be
        unique in the context of the global system graph. The full list of
        Oleria objects or entities is defined by the object-type enumeration,
        and the full list of relationships or connections is defined by the
        relationship-type enumeration
    ObjectType:
      type: string
      description: >-
        The enumerated list of all Oleria objects used to describe and manage
        any customer application's identity security. The definition of each
        object describes its usage
      example: Account
      enum:
        - Account
        - AccountRole
        - Activity
        - AssignedApplication
        - Authenticator
        - AuthenticatorEnrollment
        - Department
        - DirectoryProvider
        - Employee
        - IntegratedApplication
        - None
        - ObjectDirectory
        - PermissionSet
        - Person
        - ResourceClass
        - ResourceInstance
        - RiskDefinition
        - RiskViolation
        - Role
        - UserGroup
    ObjectMetadata:
      required:
        - ApplicationInstanceId
        - GeneratedTime
      type: object
      properties:
        ApplicationInstanceId:
          type: string
        GeneratedTime:
          type: string
          format: date-time
        Profile:
          $ref: '#/components/schemas/SchemaProfile'
        ObjectOrRelationshipType:
          type: string
      description: >
        The _ObjectMetadata_ structure defines metadata that applies to every
        object and relationship, and is usually managed by the system that
        receives the data
    Oleria_ObjectType:
      type: string
      description: >
        The enumerated list of all Oleria objects used to describe and manage
        any customer's identity security. The definition of each object
        describes its usage  
      example: Oleria_IntegratedApplication
      enum:
        - Oleria_Account
        - Oleria_AccountRole
        - Oleria_Activity
        - Oleria_Application
        - Oleria_ApplicationDeployment
        - Oleria_AssignedApplication
        - Oleria_Authenticator
        - Oleria_AuthenticatorEnrollment
        - Oleria_Department
        - Oleria_DirectoryProvider
        - Oleria_DiscoveredApplication
        - Oleria_Employee
        - Oleria_IntegratedApplication
        - Oleria_ObjectDirectory
        - Oleria_Person
        - Oleria_ResourceClass
        - Oleria_ResourceInstance
        - Oleria_Role
        - Oleria_UserGroup
    SchemaProfile:
      type: string
      enum:
        - Account
        - Membership
        - Governance
        - Risk
        - Access
        - Detection
  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.

````