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

# List ownership recommendations

> Lists the team ownership recommendations you can see, strongest first. By default it lists open ones: not rejected, and the team does not already own the entity. Archived entities and teams never appear.



## OpenAPI

````yaml /openapi/cortex_swagger.json get /api/v1/recommendations/ownership
openapi: 3.0.1
info:
  description: >-
    The Cortex REST API provides programmatic access to the data in the catalog,
    Scorecards, and more.
  title: Cortex API
  version: v1
servers:
  - url: https://api.getcortexapp.com
    description: US (Cortex cloud)
  - url: https://api.eu.cortex.io
    description: EU (Cortex cloud)
  - url: '{baseUrl}'
    description: Self-managed
    variables:
      baseUrl:
        description: >-
          Your Cortex backend URL (the app.hostnames.backend value from your
          Helm chart)
        default: https://cortex-api.yourdomain.example
security:
  - bearerAuth: []
tags:
  - name: API Keys
  - name: Audit Logs
  - name: Catalog Entities
  - name: Catalogs
  - name: Custom Data
  - name: Custom Data [Advanced]
  - name: Custom Events
  - name: Custom Metrics
  - name: Dependencies
  - name: Deploys
  - name: Discovery Audit
  - name: Docs
  - name: 'Eng Intel: 1-Registry'
  - name: 'Eng Intel: 2-Metrics'
  - name: 'Eng Intel: 3-Trace'
  - name: 'Eng Intel: User Labels'
  - name: Entity Archival
  - name: Entity Relationship Types
  - name: Entity Relationships
  - name: Entity Types
  - name: GitOps Logs
  - name: Groups
  - name: IP Allowlist
  - name: Initiatives
  - name: Integration Status
  - name: My Workspace
  - name: Notification Logs
  - name: On-call
  - name: Packages
  - name: Plugins
  - name: Queries
  - name: Recommendations
  - name: SCIM
  - name: Scaffolder
  - name: Scorecards
  - name: Secrets
  - name: Team Roles
  - name: Teams
  - name: Teams Hierarchies
  - name: Teams [Advanced]
  - name: Teams [Departments] (legacy)
  - name: Users
  - name: Verifications
  - name: Workflows
  - name: '[Integrations] AWS'
  - name: '[Integrations] Anthropic'
  - name: '[Integrations] Apiiro'
  - name: '[Integrations] ArgoCD'
  - name: '[Integrations] Azure Active Directory'
  - name: '[Integrations] Azure Devops'
  - name: '[Integrations] Azure Resources'
  - name: '[Integrations] BambooHR'
  - name: '[Integrations] Bitbucket'
  - name: '[Integrations] Bugsnag'
  - name: '[Integrations] Buildkite'
  - name: '[Integrations] Checkmarx SAST'
  - name: '[Integrations] CircleCI'
  - name: '[Integrations] ClickUp'
  - name: '[Integrations] Codecov'
  - name: '[Integrations] Coralogix'
  - name: '[Integrations] Datadog'
  - name: '[Integrations] Dynatrace'
  - name: '[Integrations] Firehydrant'
  - name: '[Integrations] GitHub'
  - name: '[Integrations] GitLab'
  - name: '[Integrations] Harness'
  - name: '[Integrations] Incident.io'
  - name: '[Integrations] Instana'
  - name: '[Integrations] Jenkins'
  - name: '[Integrations] Jira'
  - name: '[Integrations] Kubernetes'
  - name: '[Integrations] LaunchDarkly'
  - name: '[Integrations] Lightstep'
  - name: '[Integrations] Mend SAST'
  - name: '[Integrations] Mend SCA'
  - name: '[Integrations] New Relic'
  - name: '[Integrations] Okta'
  - name: '[Integrations] Opsgenie'
  - name: '[Integrations] PagerDuty'
  - name: '[Integrations] Prometheus'
  - name: '[Integrations] Rollbar'
  - name: '[Integrations] Rootly'
  - name: '[Integrations] Semgrep'
  - name: '[Integrations] Sentry'
  - name: '[Integrations] ServiceNow'
  - name: '[Integrations] SignalFx'
  - name: '[Integrations] Snyk'
  - name: '[Integrations] SonarQube'
  - name: '[Integrations] SumoLogic'
  - name: '[Integrations] Veracode'
  - name: '[Integrations] VictorOps'
  - name: '[Integrations] Wiz'
  - name: '[Integrations] Workday'
  - name: '[Integrations] xMatters'
  - name: dev-login-controller
  - name: public-scim-schema-controller
paths:
  /api/v1/recommendations/ownership:
    get:
      tags:
        - Recommendations
      summary: List ownership recommendations
      description: >-
        Lists the team ownership recommendations you can see, strongest first.
        By default it lists open ones: not rejected, and the team does not
        already own the entity. Archived entities and teams never appear.
      operationId: listOwnershipRecommendations
      parameters:
        - description: >-
            Only recommendations for these entities. A comma-delimited list of
            entity tags or CIDs, at most 1000.
          in: query
          name: entities
          required: false
          schema:
            type: array
            items:
              type: string
              description: Entity identifier - can be a tag or CID
        - description: >-
            Only recommendations of these teams. A comma-delimited list of team
            tags or CIDs, at most 1000.
          in: query
          name: teams
          required: false
          schema:
            type: array
            items:
              type: string
              description: Entity identifier - can be a tag or CID
        - description: Only this confidence
          example: HIGH
          in: query
          name: confidence
          required: false
          schema:
            type: string
            enum:
              - HIGH
              - LOW
        - description: >-
            OPEN; PENDING for accepted ones waiting on a GitOps pull request; or
            REJECTED for rejected ones that can be restored
          in: query
          name: status
          required: false
          schema:
            type: string
            enum:
              - OPEN
              - PENDING
              - REJECTED
            default: OPEN
        - description: Only entities that have no team owner yet
          in: query
          name: unownedOnly
          required: false
          schema:
            type: boolean
            default: false
        - description: >-
            Number of results to return per page, between 1 and 1000. Default
            250.
          in: query
          name: pageSize
          required: true
          schema:
            type: integer
            format: int32
            default: 250
        - description: Page number to return, 0-indexed. Default 0.
          in: query
          name: page
          required: true
          schema:
            type: integer
            format: int32
            default: 0
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OwnershipRecommendations'
          description: A page of ownership recommendations
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: A parameter is not valid
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: An entity or team in the filters does not exist
        '429':
          $ref: '#/components/responses/TooManyRequests'
components:
  schemas:
    OwnershipRecommendations:
      required:
        - page
        - recommendations
        - total
        - totalPages
      type: object
      properties:
        page:
          type: integer
          description: Current page number, 0-indexed
          format: int32
        recommendations:
          type: array
          description: Ownership recommendations for the current page
          items:
            $ref: '#/components/schemas/OwnershipRecommendation'
        total:
          type: integer
          description: Total number of results
          format: int32
        totalPages:
          type: integer
          description: Total number of pages
          format: int32
      description: A page of ownership recommendations
    ErrorResponse:
      required:
        - message
        - type
      type: object
      properties:
        details:
          type: string
        errorCode:
          type: string
        gatewayHttpStatus:
          type: integer
          format: int32
        httpStatus:
          type: integer
          format: int32
        message:
          type: string
        requestId:
          type: string
        type:
          type: string
          enum:
            - INTEGRATION_MISSING
            - INTEGRATION_UNREGISTERED
            - INTEGRATION_UNSUPPORTED
            - INTEGRATION_GRAPHQL_ERROR
            - INTEGRATION_BAD_REQUEST
            - INTEGRATION_UNAUTHORIZED
            - INTEGRATION_FORBIDDEN
            - INTEGRATION_NOT_FOUND
            - INTEGRATION_UNPROCESSABLE_CONTENT
            - INTEGRATION_RATE_LIMITED
            - INTEGRATION_INTERNAL_ERROR
            - INTEGRATION_NOT_IMPLEMENTED
            - INTEGRATION_BAD_GATEWAY
            - INTEGRATION_UNAVAILABLE
            - INTEGRATION_GATEWAY_TIMEOUT
            - INTEGRATION_TIMED_OUT
            - INTEGRATION_CACHE_ERROR
            - INTEGRATION_UNHANDLED_HTTP_ERROR
            - INTEGRATION_UNHANDLED_EXCEPTION
            - INTEGRATION_UNEXPECTED_ERROR
            - ILLEGAL_ARGUMENT_ERROR
            - BAD_REQUEST
            - FORBIDDEN
            - NOT_FOUND
            - REQUEST_TIMEOUT
            - CONFLICT
            - UNHANDLED_EXCEPTION
            - UNCATEGORIZED
            - SERVICE_CREATOR
            - UNKNOWN_HOST
            - TOO_MANY_REQUESTS
    OwnershipRecommendation:
      required:
        - entity
        - status
        - team
      type: object
      properties:
        confidence:
          type: string
          description: How sure the model is
          example: HIGH
          enum:
            - HIGH
            - LOW
        entity:
          $ref: '#/components/schemas/RecommendationEntity'
        id:
          type: string
          description: >-
            The recommendation's id, stable for this entity and team. Null until
            the model's next run assigns it.
          example: ptos3f7a1c09d2b84e6f5a0c71d9e8b2f4a6
        rejectedAt:
          type: string
          description: 'For a rejected one: when it was rejected, in UTC'
          format: date-time
        rejectedBy:
          $ref: '#/components/schemas/RecommendationActor'
        status:
          type: string
          description: Whether it still needs a decision
          example: OPEN
          enum:
            - OPEN
            - PENDING
            - REJECTED
        team:
          $ref: '#/components/schemas/RecommendationTeam'
      description: A team that the model predicts owns an entity
    TooManyRequestsProblemDetail:
      required:
        - type
        - title
        - status
      type: object
      properties:
        detail:
          type: string
        instance:
          type: string
          format: uri-reference
        retryAfter:
          minimum: 0
          type: integer
          description: The number of seconds until the rate limiting resets.
          format: int32
        status:
          maximum: 599
          minimum: 100
          type: integer
          format: int32
          enum:
            - 429
        title:
          type: string
        type:
          type: string
          format: uri-reference
    RecommendationEntity:
      required:
        - id
        - name
        - tag
        - type
      type: object
      properties:
        id:
          type: string
          description: The entity's CID
          example: en2da8159dbeefb974
        name:
          type: string
          description: The entity's name
          example: Checkout API
        tag:
          type: string
          description: The entity's tag
          example: checkout-api
        type:
          type: string
          description: The entity's type
          example: service
      description: A catalog entity
    RecommendationActor:
      required:
        - user
      type: object
      properties:
        user:
          $ref: '#/components/schemas/CortexUserSummary'
      description: Who made a decision
    RecommendationTeam:
      required:
        - id
        - name
        - tag
      type: object
      properties:
        id:
          type: string
          description: The team's CID
          example: en9a01c4c0ffee0001
        name:
          type: string
          description: The team's name
          example: Payments
        tag:
          type: string
          description: The team's tag
          example: payments
      description: A team
    CortexUserSummary:
      required:
        - email
        - name
      type: object
      properties:
        email:
          type: string
        name:
          type: string
      description: >-
        The user who verified the entity. Null while the status is PENDING, and
        null when a global API key verified it.
  responses:
    TooManyRequests:
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/TooManyRequestsProblemDetail'
      description: >-
        The client has exceeded the rate limit by performing too many requests
        in a short period. Retry the request after a delay.
      headers:
        Retry-After:
          description: The number of seconds until the rate limiting resets.
          schema:
            minimum: 0
            type: integer
            format: int32
  securitySchemes:
    bearerAuth:
      bearerFormat: JWT
      description: >-
        All requests to the Cortex API need to provide an `Authorization: Bearer
        <token>` header, where `<token>` is an API key created in the Settings
        page of your workspace.
      scheme: bearer
      type: http

````

## Related topics

- [Recommendations](https://docs.cortex.io/api/rest/recommendations.md)
- [Using the Cortex MCP](https://docs.cortex.io/get-started/cortex-ai-assistant/mcp/using-cortex-mcp.md)
- [List entities with ownership recommendations](https://docs.cortex.io/api/rest/recommendations/list-entities-with-ownership-recommendations.md)
