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

# List workload identities that called the API

> Lists service principals and managed identities from the Organization's directory that have presented an API token, with the application role on their latest token. Application roles are granted and removed in Microsoft Entra; an identity that has never called the API is not listed. Oldest first; pass `nextCursor` as `cursor` to get the next page.

Requires the GV.APIOwner application role, or a higher role (Owner > Contributor > Reader).



## OpenAPI

````yaml /api/openapi.json get /api/v1/organization-applications
openapi: 3.1.0
info:
  description: >-
    General Validation's API for Organization administration, Table Pair and
    Test authoring, Runs, and Result metadata. Microsoft Entra bearer tokens
    authorize every call.
  title: General Validation API
  version: 1.0.0
servers:
  - url: https://api.generalvalidation.com
security: []
tags:
  - description: >-
      Customer-owned Fabric references, immutable Runs, and safe Result
      summaries.
    name: Fabric
  - description: Organizations and verified membership.
    name: Organization
  - description: Subscriptions and entitlements.
    name: Billing
paths:
  /api/v1/organization-applications:
    get:
      tags:
        - Organization
      summary: List workload identities that called the API
      description: >-
        Lists service principals and managed identities from the Organization's
        directory that have presented an API token, with the application role on
        their latest token. Application roles are granted and removed in
        Microsoft Entra; an identity that has never called the API is not
        listed. Oldest first; pass `nextCursor` as `cursor` to get the next
        page.


        Requires the GV.APIOwner application role, or a higher role (Owner >
        Contributor > Reader).
      operationId: list_organization_applications
      parameters:
        - description: Number of items to return.
          in: query
          name: limit
          required: false
          schema:
            default: 50
            description: Number of items to return.
            maximum: 100
            minimum: 1
            title: Limit
            type: integer
        - description: >-
            Opaque continuation cursor. Pass the nextCursor from the previous
            page of the same collection.
          in: query
          name: cursor
          required: false
          schema:
            anyOf:
              - maxLength: 2048
                type: string
              - type: 'null'
            description: >-
              Opaque continuation cursor. Pass the nextCursor from the previous
              page of the same collection.
            title: Cursor
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1OrganizationApplicationPage'
          description: Successful Response
        '401':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/V1Problem'
          description: A valid Microsoft Entra bearer token is required.
        '403':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/V1Problem'
          description: The authenticated principal does not have the required role.
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/V1Problem'
          description: The request is syntactically valid but semantically invalid.
        '429':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/V1Problem'
          description: The bounded application request rate was exceeded.
          headers:
            Retry-After:
              description: Seconds to wait before retrying.
              schema:
                minimum: 1
                type: integer
        '503':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/V1Problem'
          description: A required dependency is temporarily unavailable.
          headers:
            Retry-After:
              description: Seconds to wait before retrying.
              schema:
                minimum: 1
                type: integer
      security:
        - entraApplication: []
components:
  schemas:
    V1OrganizationApplicationPage:
      additionalProperties: false
      properties:
        items:
          items:
            $ref: '#/components/schemas/V1OrganizationApplication'
          title: Items
          type: array
        limit:
          description: The page size this response used.
          maximum: 100
          minimum: 1
          title: Limit
          type: integer
        nextCursor:
          anyOf:
            - type: string
            - type: 'null'
          description: Pass as `cursor` to get the next page. Null on the last page.
          title: Nextcursor
      required:
        - items
        - limit
      title: V1OrganizationApplicationPage
      type: object
    V1Problem:
      additionalProperties: false
      properties:
        code:
          description: >-
            Stable machine-readable error code, such as `precondition.failed`.
            Branch on this value.
          title: Code
          type: string
        detail:
          description: What went wrong in this request, written for a person.
          title: Detail
          type: string
        diagnostics:
          anyOf:
            - additionalProperties: true
              type: object
            - type: 'null'
          default: null
          description: >-
            Extra details for some errors, such as `fieldErrors` for an invalid
            request or `requiredRole` for a denied one. Absent when there are
            none.
          title: Diagnostics
        instance:
          description: Path of the request that failed.
          title: Instance
          type: string
        requestId:
          description: >-
            This request's ID, also sent in the `X-Request-Id` response header.
            Quote it when you contact support. A request that sends an
            `X-Request-Id` of 1 to 64 letters, digits, or `_.:-` gets that value
            back.
          title: Requestid
          type: string
        status:
          description: The HTTP status code of this response.
          title: Status
          type: integer
        title:
          description: Short summary of the error code.
          title: Title
          type: string
        type:
          description: Link to the documentation page for this error code.
          title: Type
          type: string
      required:
        - type
        - title
        - status
        - code
        - detail
        - instance
        - requestId
      title: V1Problem
      type: object
    V1OrganizationApplication:
      additionalProperties: false
      properties:
        clientId:
          description: Application (client) ID of the calling app.
          format: uuid
          title: Clientid
          type: string
        firstSeenAt:
          title: Firstseenat
          type: string
        lastSeenAt:
          description: Refreshed at most every 15 minutes.
          title: Lastseenat
          type: string
        objectId:
          description: Service principal object ID in the Organization's directory.
          format: uuid
          title: Objectid
          type: string
        role:
          anyOf:
            - enum:
                - reader
                - contributor
                - owner
              type: string
            - type: 'null'
          description: >-
            Role from the application role on its latest token, or null when it
            had none.
          title: Role
      required:
        - objectId
        - clientId
        - role
        - firstSeenAt
        - lastSeenAt
      title: V1OrganizationApplication
      type: object
  securitySchemes:
    entraApplication:
      bearerFormat: JWT
      description: >-
        Microsoft Entra application token issued by the caller's Organization
        tenant for this multitenant API. Request the .default scope and assign
        the application the required GV.APIReader, GV.APIContributor, or
        GV.APIOwner role.
      scheme: bearer
      type: http
      x-gv-app-roles:
        - GV.APIReader
        - GV.APIContributor
        - GV.APIOwner
      x-gv-audience: 78d5d8af-9dd6-49dd-b06c-38c3a3c707af
      x-gv-scope: api://78d5d8af-9dd6-49dd-b06c-38c3a3c707af/.default
      x-gv-token-url-template: https://login.microsoftonline.com/{tenantId}/oauth2/v2.0/token

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.