---
title: "GET /mr-api/portfolio/{id}"
method: GET
path: "/mr-api/portfolio/{id}"
tags: ["PortfolioService"]
---

# GET /mr-api/portfolio/{id}

`GET /mr-api/portfolio/{id}`

Get portfolio

## Response `200`

Resulting portfolio

- Portfolio
  - `createdBy` Person
    - `id` PersonId
      - `id` string, uuid, required
    - `name` string
    - `email` string, email
    - `personType` 'person' | 'serviceAccount' | 'sdkServiceAccount'
    - `other` string
    - `source` string
    - `version` integer
    - `passwordRequiresReset` boolean
    - `groups` Group[]
      - `createdBy` Person — recursive
      - `updatedBy` Person — recursive
      - `whenCreated` string, date-time
      - `whenUpdated` string, date-time
      - `id` string, uuid
      - `admin` boolean — is this an admin group?
      - `portfolioId` string, uuid
      - `organizationId` string, uuid — this will be the organisation this group belongs to at the top level, or if a portfolio group, the organisation of the portfolio
      - `version` integer
      - `name` string, required
      - `members` Person[]
      - `applicationRoles` ApplicationGroupRole[]
        - `applicationId` string, uuid, required
        - `groupId` string, uuid, required
        - `roles` ApplicationRoleType[], required
      - `environmentRoles` EnvironmentGroupRole[]
        - `environmentId` string, uuid, required
        - `groupId` string, uuid, required
        - `roles` RoleType[], required
      - `whenArchived` string, date-time
    - `whenArchived` string, date-time
    - `whenLastAuthenticated` string, date-time — This is the timestamp in UTC when they last logged into the system
    - `whenLastSeen` string, date-time — This is the timestamp in UTC when they last made a request to the system on their most recent login. If it is null it means they have no current token or have never logged in.
    - `additional` PersonInfo[]
      - `key` string, required — e.g. serviceAccountId
      - `value` string, required
  - `updatedBy` Person
    - `id` PersonId
      - `id` string, uuid, required
    - `name` string
    - `email` string, email
    - `personType` 'person' | 'serviceAccount' | 'sdkServiceAccount'
    - `other` string
    - `source` string
    - `version` integer
    - `passwordRequiresReset` boolean
    - `groups` Group[]
      - `createdBy` Person — recursive
      - `updatedBy` Person — recursive
      - `whenCreated` string, date-time
      - `whenUpdated` string, date-time
      - `id` string, uuid
      - `admin` boolean — is this an admin group?
      - `portfolioId` string, uuid
      - `organizationId` string, uuid — this will be the organisation this group belongs to at the top level, or if a portfolio group, the organisation of the portfolio
      - `version` integer
      - `name` string, required
      - `members` Person[]
      - `applicationRoles` ApplicationGroupRole[]
        - `applicationId` string, uuid, required
        - `groupId` string, uuid, required
        - `roles` ApplicationRoleType[], required
      - `environmentRoles` EnvironmentGroupRole[]
        - `environmentId` string, uuid, required
        - `groupId` string, uuid, required
        - `roles` RoleType[], required
      - `whenArchived` string, date-time
    - `whenArchived` string, date-time
    - `whenLastAuthenticated` string, date-time — This is the timestamp in UTC when they last logged into the system
    - `whenLastSeen` string, date-time — This is the timestamp in UTC when they last made a request to the system on their most recent login. If it is null it means they have no current token or have never logged in.
    - `additional` PersonInfo[]
      - `key` string, required — e.g. serviceAccountId
      - `value` string, required
  - `whenCreated` string, date-time
  - `whenUpdated` string, date-time
  - `id` string, uuid
  - `name` string, required
  - `description` string
  - `version` integer
  - `organizationId` string, uuid
  - `groups` Group[]
    - `createdBy` Person
      - `id` PersonId
        - `id` string, uuid, required
      - `name` string
      - `email` string, email
      - `personType` 'person' | 'serviceAccount' | 'sdkServiceAccount'
      - `other` string
      - `source` string
      - `version` integer
      - `passwordRequiresReset` boolean
      - `groups` Group[]
      - `whenArchived` string, date-time
      - `whenLastAuthenticated` string, date-time — This is the timestamp in UTC when they last logged into the system
      - `whenLastSeen` string, date-time — This is the timestamp in UTC when they last made a request to the system on their most recent login. If it is null it means they have no current token or have never logged in.
      - `additional` PersonInfo[]
        - `key` string, required — e.g. serviceAccountId
        - `value` string, required
    - `updatedBy` Person
      - `id` PersonId
        - `id` string, uuid, required
      - `name` string
      - `email` string, email
      - `personType` 'person' | 'serviceAccount' | 'sdkServiceAccount'
      - `other` string
      - `source` string
      - `version` integer
      - `passwordRequiresReset` boolean
      - `groups` Group[]
      - `whenArchived` string, date-time
      - `whenLastAuthenticated` string, date-time — This is the timestamp in UTC when they last logged into the system
      - `whenLastSeen` string, date-time — This is the timestamp in UTC when they last made a request to the system on their most recent login. If it is null it means they have no current token or have never logged in.
      - `additional` PersonInfo[]
        - `key` string, required — e.g. serviceAccountId
        - `value` string, required
    - `whenCreated` string, date-time
    - `whenUpdated` string, date-time
    - `id` string, uuid
    - `admin` boolean — is this an admin group?
    - `portfolioId` string, uuid
    - `organizationId` string, uuid — this will be the organisation this group belongs to at the top level, or if a portfolio group, the organisation of the portfolio
    - `version` integer
    - `name` string, required
    - `members` Person[]
      - `id` PersonId
        - `id` string, uuid, required
      - `name` string
      - `email` string, email
      - `personType` 'person' | 'serviceAccount' | 'sdkServiceAccount'
      - `other` string
      - `source` string
      - `version` integer
      - `passwordRequiresReset` boolean
      - `groups` Group[]
      - `whenArchived` string, date-time
      - `whenLastAuthenticated` string, date-time — This is the timestamp in UTC when they last logged into the system
      - `whenLastSeen` string, date-time — This is the timestamp in UTC when they last made a request to the system on their most recent login. If it is null it means they have no current token or have never logged in.
      - `additional` PersonInfo[]
        - `key` string, required — e.g. serviceAccountId
        - `value` string, required
    - `applicationRoles` ApplicationGroupRole[]
      - `applicationId` string, uuid, required
      - `groupId` string, uuid, required
      - `roles` ApplicationRoleType[], required
    - `environmentRoles` EnvironmentGroupRole[]
      - `environmentId` string, uuid, required
      - `groupId` string, uuid, required
      - `roles` RoleType[], required
    - `whenArchived` string, date-time
  - `applications` Application[]
    - `createdBy` Person
      - `id` PersonId
        - `id` string, uuid, required
      - `name` string
      - `email` string, email
      - `personType` 'person' | 'serviceAccount' | 'sdkServiceAccount'
      - `other` string
      - `source` string
      - `version` integer
      - `passwordRequiresReset` boolean
      - `groups` Group[]
        - `createdBy` Person — recursive
        - `updatedBy` Person — recursive
        - `whenCreated` string, date-time
        - `whenUpdated` string, date-time
        - `id` string, uuid
        - `admin` boolean — is this an admin group?
        - `portfolioId` string, uuid
        - `organizationId` string, uuid — this will be the organisation this group belongs to at the top level, or if a portfolio group, the organisation of the portfolio
        - `version` integer
        - `name` string, required
        - `members` Person[]
        - `applicationRoles` ApplicationGroupRole[]
          - `applicationId` string, uuid, required
          - `groupId` string, uuid, required
          - `roles` ApplicationRoleType[], required
        - `environmentRoles` EnvironmentGroupRole[]
          - `environmentId` string, uuid, required
          - `groupId` string, uuid, required
          - `roles` RoleType[], required
        - `whenArchived` string, date-time
      - `whenArchived` string, date-time
      - `whenLastAuthenticated` string, date-time — This is the timestamp in UTC when they last logged into the system
      - `whenLastSeen` string, date-time — This is the timestamp in UTC when they last made a request to the system on their most recent login. If it is null it means they have no current token or have never logged in.
      - `additional` PersonInfo[]
        - `key` string, required — e.g. serviceAccountId
        - `value` string, required
    - `updatedBy` Person
      - `id` PersonId
        - `id` string, uuid, required
      - `name` string
      - `email` string, email
      - `personType` 'person' | 'serviceAccount' | 'sdkServiceAccount'
      - `other` string
      - `source` string
      - `version` integer
      - `passwordRequiresReset` boolean
      - `groups` Group[]
        - `createdBy` Person — recursive
        - `updatedBy` Person — recursive
        - `whenCreated` string, date-time
        - `whenUpdated` string, date-time
        - `id` string, uuid
        - `admin` boolean — is this an admin group?
        - `portfolioId` string, uuid
        - `organizationId` string, uuid — this will be the organisation this group belongs to at the top level, or if a portfolio group, the organisation of the portfolio
        - `version` integer
        - `name` string, required
        - `members` Person[]
        - `applicationRoles` ApplicationGroupRole[]
          - `applicationId` string, uuid, required
          - `groupId` string, uuid, required
          - `roles` ApplicationRoleType[], required
        - `environmentRoles` EnvironmentGroupRole[]
          - `environmentId` string, uuid, required
          - `groupId` string, uuid, required
          - `roles` RoleType[], required
        - `whenArchived` string, date-time
      - `whenArchived` string, date-time
      - `whenLastAuthenticated` string, date-time — This is the timestamp in UTC when they last logged into the system
      - `whenLastSeen` string, date-time — This is the timestamp in UTC when they last made a request to the system on their most recent login. If it is null it means they have no current token or have never logged in.
      - `additional` PersonInfo[]
        - `key` string, required — e.g. serviceAccountId
        - `value` string, required
    - `whenCreated` string, date-time
    - `whenUpdated` string, date-time
    - `id` string, uuid
    - `name` string, required
    - `description` string
    - `portfolioId` string, uuid
    - `version` integer
    - `groups` Group[]
      - `createdBy` Person
        - `id` PersonId
          - `id` string, uuid, required
        - `name` string
        - `email` string, email
        - `personType` 'person' | 'serviceAccount' | 'sdkServiceAccount'
        - `other` string
        - `source` string
        - `version` integer
        - `passwordRequiresReset` boolean
        - `groups` Group[]
        - `whenArchived` string, date-time
        - `whenLastAuthenticated` string, date-time — This is the timestamp in UTC when they last logged into the system
        - `whenLastSeen` string, date-time — This is the timestamp in UTC when they last made a request to the system on their most recent login. If it is null it means they have no current token or have never logged in.
        - `additional` PersonInfo[]
          - `key` string, required — e.g. serviceAccountId
          - `value` string, required
      - `updatedBy` Person
        - `id` PersonId
          - `id` string, uuid, required
        - `name` string
        - `email` string, email
        - `personType` 'person' | 'serviceAccount' | 'sdkServiceAccount'
        - `other` string
        - `source` string
        - `version` integer
        - `passwordRequiresReset` boolean
        - `groups` Group[]
        - `whenArchived` string, date-time
        - `whenLastAuthenticated` string, date-time — This is the timestamp in UTC when they last logged into the system
        - `whenLastSeen` string, date-time — This is the timestamp in UTC when they last made a request to the system on their most recent login. If it is null it means they have no current token or have never logged in.
        - `additional` PersonInfo[]
          - `key` string, required — e.g. serviceAccountId
          - `value` string, required
      - `whenCreated` string, date-time
      - `whenUpdated` string, date-time
      - `id` string, uuid
      - `admin` boolean — is this an admin group?
      - `portfolioId` string, uuid
      - `organizationId` string, uuid — this will be the organisation this group belongs to at the top level, or if a portfolio group, the organisation of the portfolio
      - `version` integer
      - `name` string, required
      - `members` Person[]
        - `id` PersonId
          - `id` string, uuid, required
        - `name` string
        - `email` string, email
        - `personType` 'person' | 'serviceAccount' | 'sdkServiceAccount'
        - `other` string
        - `source` string
        - `version` integer
        - `passwordRequiresReset` boolean
        - `groups` Group[]
        - `whenArchived` string, date-time
        - `whenLastAuthenticated` string, date-time — This is the timestamp in UTC when they last logged into the system
        - `whenLastSeen` string, date-time — This is the timestamp in UTC when they last made a request to the system on their most recent login. If it is null it means they have no current token or have never logged in.
        - `additional` PersonInfo[]
          - `key` string, required — e.g. serviceAccountId
          - `value` string, required
      - `applicationRoles` ApplicationGroupRole[]
        - `applicationId` string, uuid, required
        - `groupId` string, uuid, required
        - `roles` ApplicationRoleType[], required
      - `environmentRoles` EnvironmentGroupRole[]
        - `environmentId` string, uuid, required
        - `groupId` string, uuid, required
        - `roles` RoleType[], required
      - `whenArchived` string, date-time
    - `features` Feature[]
      - `id` string, uuid
      - `key` string — Unique within this application
      - `alias` string — use this in code, as then people cannot guess your new features from their names
      - `link` string
      - `name` string, required — description if any
      - `valueType` 'BOOLEAN' | 'STRING' | 'NUMBER' | 'JSON'
      - `version` integer — used for optimistic locking when renaming a feature
      - `whenArchived` string, date-time
      - `secret` boolean — should the config remain invisible to users without secret permission
      - `description` string
      - `metaData` string — Metadata that may need to be stored. Intended for ADK use. No data limit (stored as CLOB)
    - `environments` Environment[]
      - `createdBy` Person
        - `id` PersonId
          - `id` string, uuid, required
        - `name` string
        - `email` string, email
        - `personType` 'person' | 'serviceAccount' | 'sdkServiceAccount'
        - `other` string
        - `source` string
        - `version` integer
        - `passwordRequiresReset` boolean
        - `groups` Group[]
          - `createdBy` Person — recursive
          - `updatedBy` Person — recursive
          - `whenCreated` string, date-time
          - `whenUpdated` string, date-time
          - `id` string, uuid
          - `admin` boolean — is this an admin group?
          - `portfolioId` string, uuid
          - `organizationId` string, uuid — this will be the organisation this group belongs to at the top level, or if a portfolio group, the organisation of the portfolio
          - `version` integer
          - `name` string, required
          - `members` Person[]
          - `applicationRoles` ApplicationGroupRole[]
            - `applicationId` string, uuid, required
            - `groupId` string, uuid, required
            - `roles` ApplicationRoleType[], required
          - `environmentRoles` EnvironmentGroupRole[]
            - `environmentId` string, uuid, required
            - `groupId` string, uuid, required
            - `roles` RoleType[], required
          - `whenArchived` string, date-time
        - `whenArchived` string, date-time
        - `whenLastAuthenticated` string, date-time — This is the timestamp in UTC when they last logged into the system
        - `whenLastSeen` string, date-time — This is the timestamp in UTC when they last made a request to the system on their most recent login. If it is null it means they have no current token or have never logged in.
        - `additional` PersonInfo[]
          - `key` string, required — e.g. serviceAccountId
          - `value` string, required
      - `updatedBy` Person
        - `id` PersonId
          - `id` string, uuid, required
        - `name` string
        - `email` string, email
        - `personType` 'person' | 'serviceAccount' | 'sdkServiceAccount'
        - `other` string
        - `source` string
        - `version` integer
        - `passwordRequiresReset` boolean
        - `groups` Group[]
          - `createdBy` Person — recursive
          - `updatedBy` Person — recursive
          - `whenCreated` string, date-time
          - `whenUpdated` string, date-time
          - `id` string, uuid
          - `admin` boolean — is this an admin group?
          - `portfolioId` string, uuid
          - `organizationId` string, uuid — this will be the organisation this group belongs to at the top level, or if a portfolio group, the organisation of the portfolio
          - `version` integer
          - `name` string, required
          - `members` Person[]
          - `applicationRoles` ApplicationGroupRole[]
            - `applicationId` string, uuid, required
            - `groupId` string, uuid, required
            - `roles` ApplicationRoleType[], required
          - `environmentRoles` EnvironmentGroupRole[]
            - `environmentId` string, uuid, required
            - `groupId` string, uuid, required
            - `roles` RoleType[], required
          - `whenArchived` string, date-time
        - `whenArchived` string, date-time
        - `whenLastAuthenticated` string, date-time — This is the timestamp in UTC when they last logged into the system
        - `whenLastSeen` string, date-time — This is the timestamp in UTC when they last made a request to the system on their most recent login. If it is null it means they have no current token or have never logged in.
        - `additional` PersonInfo[]
          - `key` string, required — e.g. serviceAccountId
          - `value` string, required
      - `whenCreated` string, date-time
      - `whenUpdated` string, date-time
      - `id` string, uuid
      - `applicationId` string, uuid
      - `name` string, required
      - `priorEnvironmentId` string, uuid
      - `version` integer
      - `description` string
      - `production` boolean — is this a production environment?
      - `groupRoles` EnvironmentGroupRole[]
        - `environmentId` string, uuid, required
        - `groupId` string, uuid, required
        - `roles` RoleType[], required
      - `features` Feature[]
        - `id` string, uuid
        - `key` string — Unique within this application
        - `alias` string — use this in code, as then people cannot guess your new features from their names
        - `link` string
        - `name` string, required — description if any
        - `valueType` 'BOOLEAN' | 'STRING' | 'NUMBER' | 'JSON'
        - `version` integer — used for optimistic locking when renaming a feature
        - `whenArchived` string, date-time
        - `secret` boolean — should the config remain invisible to users without secret permission
        - `description` string
        - `metaData` string — Metadata that may need to be stored. Intended for ADK use. No data limit (stored as CLOB)
      - `environmentInfo` object, nullable
      - `serviceAccountPermission` ServiceAccountPermission[]
        - `id` string, uuid
        - `permissions` RoleType[], required
        - `serviceAccount` ServiceAccount
          - `id` string, uuid
          - `name` string, required
          - `portfolioId` string, uuid
          - `description` string
          - `version` integer
          - `apiKeyClientSide` string — this is a read only field, it denotes an api key where the eval is done client side
          - `apiKeyServerSide` string — this is a read only field, it denotes an api key where the eval is done server side
          - `permissions` ServiceAccountPermission[]
          - `whenArchived` string, date-time
        - `environmentId` string, uuid, required
        - `sdkUrlClientEval` string — Optional if they have chosen includeSdkUrl
        - `sdkUrlServerEval` string — Optional if they have chosen includeSdkUrl
      - `whenArchived` string, date-time
    - `whenArchived` string, date-time
  - `whenArchived` string, date-time

## Other responses

- `400` — Bad Request
- `401` — no permission
- `404` — not found

---

[API](https://skmtc.net/featurehub-io/apis/managementresourceapi.md) · [All operations](https://skmtc.net/featurehub-io/apis/managementresourceapi/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/featurehub-io/managementresourceapi/versions/faed5fd616c3/schema)
