---
title: "List by entity"
---

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

Path: Sureshake API › entities

`GET /v2/entities/{entityId}/portfolios`

## Path parameters

- `entityId` (`portfolios-list-by-entity.path.entityId`; string, required)
  - format `uuid`

## Code samples

### cURL

```bash
curl --request GET \
  --url 'https://api.sureshake.com/v2/entities/<entityId>/portfolios'
```

### TypeScript

```typescript
const url = 'https://api.sureshake.com/v2/entities/<entityId>/portfolios';
const options = {method: 'GET'};

fetch(url, options)
  .then(res => res.json())
  .then(json => console.log(json))
  .catch(err => console.error(err));
```

### Python

```python
import requests

url = "https://api.sureshake.com/v2/entities/<entityId>/portfolios"

response = requests.get(url)

print(response.text)
```

## Responses

### 200

Default Response

#### Example

```json
{
  "data": [
    {
      "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
      "userId": "string",
      "entityId": "156e622c-6cdf-4c27-9bc9-2f2db69919f5",
      "createdByUserId": "string",
      "title": "string",
      "slug": "string",
      "summary": "string",
      "description": "string",
      "startDate": "2019-08-24T14:15:22Z",
      "endDate": "2019-08-24T14:15:22Z",
      "ongoing": true,
      "portfolioType": "case_study",
      "category": "string",
      "visibility": "public",
      "featured": true,
      "outcomes": {
        "metrics": [
          {
            "label": "string",
            "value": "string",
            "unit": "string",
            "description": "string"
          }
        ],
        "achievements": [
          "string"
        ],
        "impact": "string"
      },
      "externalUrl": "string",
      "repositoryUrl": "string",
      "coverImageKey": "string",
      "displayOrder": 0,
      "createdAt": "2019-08-24T14:15:22Z",
      "updatedAt": "2019-08-24T14:15:22Z"
    }
  ],
  "meta": {
    "total": 0,
    "limit": 0,
    "offset": 0,
    "hasMore": true,
    "page": 0,
    "totalPages": 0
  }
}
```

- `data` (`portfolios-list-by-entity.response.200.data`; array<object>, required)
  - `id` (`portfolios-list-by-entity.response.200.data.id`; string, required)
    - format `uuid`
  - `userId` (`portfolios-list-by-entity.response.200.data.userId`; string, required, nullable)
  - `entityId` (`portfolios-list-by-entity.response.200.data.entityId`; string, required, nullable)
    - format `uuid`
  - `createdByUserId` (`portfolios-list-by-entity.response.200.data.createdByUserId`; string, required)
  - `title` (`portfolios-list-by-entity.response.200.data.title`; string, required)
  - `slug` (`portfolios-list-by-entity.response.200.data.slug`; string, required)
  - `summary` (`portfolios-list-by-entity.response.200.data.summary`; string, required, nullable)
  - `description` (`portfolios-list-by-entity.response.200.data.description`; string, required, nullable)
  - `startDate` (`portfolios-list-by-entity.response.200.data.startDate`; string, required)
    - format `date-time`
  - `endDate` (`portfolios-list-by-entity.response.200.data.endDate`; string, required, nullable)
    - format `date-time`
  - `ongoing` (`portfolios-list-by-entity.response.200.data.ongoing`; boolean, required)
  - `portfolioType` (`portfolios-list-by-entity.response.200.data.portfolioType`; string, required)
    - one of `"case_study"`, `"client_work"`, `"internal_project"`, `"product_launch"`, `"open_source"`, `"research"`, `"campaign"`, `"other"`
  - `category` (`portfolios-list-by-entity.response.200.data.category`; string, required, nullable)
  - `visibility` (`portfolios-list-by-entity.response.200.data.visibility`; string, required)
    - one of `"public"`, `"private"`, `"team_only"`, `"unlisted"`
  - `featured` (`portfolios-list-by-entity.response.200.data.featured`; boolean, required)
  - `outcomes` (`portfolios-list-by-entity.response.200.data.outcomes`; object, required, nullable)
    - `metrics` (`portfolios-list-by-entity.response.200.data.outcomes.metrics`; array<object>, optional)
      - `label` (`portfolios-list-by-entity.response.200.data.outcomes.metrics.label`; string, required)
      - `value` (`portfolios-list-by-entity.response.200.data.outcomes.metrics.value`; any of, required)
        - any of: `string`, `number`
      - `unit` (`portfolios-list-by-entity.response.200.data.outcomes.metrics.unit`; string, optional)
      - `description` (`portfolios-list-by-entity.response.200.data.outcomes.metrics.description`; string, optional)
    - `achievements` (`portfolios-list-by-entity.response.200.data.outcomes.achievements`; array<string>, optional)
    - `impact` (`portfolios-list-by-entity.response.200.data.outcomes.impact`; string, optional)
  - `externalUrl` (`portfolios-list-by-entity.response.200.data.externalUrl`; string, required, nullable)
  - `repositoryUrl` (`portfolios-list-by-entity.response.200.data.repositoryUrl`; string, required, nullable)
  - `coverImageKey` (`portfolios-list-by-entity.response.200.data.coverImageKey`; string, required, nullable)
  - `displayOrder` (`portfolios-list-by-entity.response.200.data.displayOrder`; number, required)
  - `createdAt` (`portfolios-list-by-entity.response.200.data.createdAt`; string, required)
    - format `date-time`
  - `updatedAt` (`portfolios-list-by-entity.response.200.data.updatedAt`; string, required)
    - format `date-time`
- `meta` (`portfolios-list-by-entity.response.200.meta`; object, required)
  - `total` (`portfolios-list-by-entity.response.200.meta.total`; number, required) — Total number of items available
  - `limit` (`portfolios-list-by-entity.response.200.meta.limit`; number, required) — Number of items per page
  - `offset` (`portfolios-list-by-entity.response.200.meta.offset`; number, required) — Number of items skipped
  - `hasMore` (`portfolios-list-by-entity.response.200.meta.hasMore`; boolean, required) — Whether more items are available
  - `page` (`portfolios-list-by-entity.response.200.meta.page`; number, optional) — Current page number
  - `totalPages` (`portfolios-list-by-entity.response.200.meta.totalPages`; number, optional) — Total number of pages

### 400

Default Response

#### Example

```json
{
  "error": {
    "code": "string",
    "message": "string",
    "details": null,
    "traceId": "string"
  }
}
```

- `error` (`portfolios-list-by-entity.response.400.error`; object, required)
  - `code` (`portfolios-list-by-entity.response.400.error.code`; string, required) — Machine-readable error code (e.g., NOT_FOUND)
  - `message` (`portfolios-list-by-entity.response.400.error.message`; string, required) — Human-readable error message
  - `details` (`portfolios-list-by-entity.response.400.error.details`; unknown, optional) — Optional structured error details
  - `traceId` (`portfolios-list-by-entity.response.400.error.traceId`; string, optional) — Unique ID for log correlation

### 401

Default Response

#### Example

```json
{
  "error": {
    "code": "string",
    "message": "string",
    "details": null,
    "traceId": "string"
  }
}
```

- `error` (`portfolios-list-by-entity.response.401.error`; object, required)
  - `code` (`portfolios-list-by-entity.response.401.error.code`; string, required) — Machine-readable error code (e.g., NOT_FOUND)
  - `message` (`portfolios-list-by-entity.response.401.error.message`; string, required) — Human-readable error message
  - `details` (`portfolios-list-by-entity.response.401.error.details`; unknown, optional) — Optional structured error details
  - `traceId` (`portfolios-list-by-entity.response.401.error.traceId`; string, optional) — Unique ID for log correlation

### 500

Default Response

#### Example

```json
{
  "error": {
    "code": "string",
    "message": "string",
    "details": null,
    "traceId": "string"
  }
}
```

- `error` (`portfolios-list-by-entity.response.500.error`; object, required)
  - `code` (`portfolios-list-by-entity.response.500.error.code`; string, required) — Machine-readable error code (e.g., NOT_FOUND)
  - `message` (`portfolios-list-by-entity.response.500.error.message`; string, required) — Human-readable error message
  - `details` (`portfolios-list-by-entity.response.500.error.details`; unknown, optional) — Optional structured error details
  - `traceId` (`portfolios-list-by-entity.response.500.error.traceId`; string, optional) — Unique ID for log correlation


Source: https://docs.sureshake.com/reference/portfolios-list-by-entity/index.md
