---
title: "Update composition"
---

> 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 › directory

`PUT /v2/directory/{subjectType}/{slug}/composition`

## Path parameters

- `subjectType` (`directory-update-composition.path.subjectType`; string, required)
  - one of `"person"`, `"entity"`
- `slug` (`directory-update-composition.path.slug`; string, required)
  - minLength 1; maxLength 255

## Request body

- `blocks` (`directory-update-composition.blocks`; array<object>, optional)
  - `blockType` (`directory-update-composition.blocks.blockType`; string, required)
    - one of `"header"`, `"trust"`, `"about"`, `"team"`, `"metrics"`, `"capital_graph"`, `"investment_criteria"`, `"portfolio"`, `"capital_marketplace"`, `"links"`, `"custom"`, `"overview"`, `"dividends"`, `"earnings_filings"`, `"models"`, `"financials"`, `"compare"`, `"health"`, `"charts"`, `"people"`, `"news"`, `"investors"`
  - `order` (`directory-update-composition.blocks.order`; integer, required)
  - `visibility` (`directory-update-composition.blocks.visibility`; string, optional)
    - one of `"public"`, `"follower"`, `"capital"`, `"diligence"`, `"custom"`; default `"public"`
  - `config` (`directory-update-composition.blocks.config`; map<unknown>, optional)
- `layout` (`directory-update-composition.layout`; string, optional)
  - one of `"standard"`, `"raising"`, `"minimal"`, `"public_company"`, `"private_company"`
- `publish` (`directory-update-composition.publish`; boolean, optional)
  - default `false`

## Example request

```json
{
  "blocks": [
    {
      "blockType": "header",
      "visibility": "public",
      "order": 0,
      "config": {
        "property1": null,
        "property2": null
      }
    }
  ],
  "layout": "standard",
  "publish": false
}
```

## Code samples

### cURL

```bash
curl --request PUT \
  --url 'https://api.sureshake.com/v2/directory/person/<slug>/composition' \
  --header 'Content-Type: application/json' \
  --data '
{
  "blocks": [
    {
      "blockType": "header",
      "visibility": "public",
      "order": 0,
      "config": {
        "property1": null,
        "property2": null
      }
    }
  ],
  "layout": "standard",
  "publish": false
}
'
```

### TypeScript

```typescript
const url = 'https://api.sureshake.com/v2/directory/person/<slug>/composition';
const options = {
  method: 'PUT',
  headers: {'Content-Type': 'application/json'},
  body: JSON.stringify({
    blocks: [
      {
        blockType: 'header',
        visibility: 'public',
        order: 0,
        config: {property1: null, property2: null}
      }
    ],
    layout: 'standard',
    publish: false
  })
};

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/directory/person/<slug>/composition"

payload = {
    "blocks": [
        {
            "blockType": "header",
            "visibility": "public",
            "order": 0,
            "config": {
                "property1": None,
                "property2": None
            }
        }
    ],
    "layout": "standard",
    "publish": False
}
headers = {"Content-Type": "application/json"}

response = requests.put(url, json=payload, headers=headers)

print(response.text)
```

## Responses

### 200

Default Response

#### Example

```json
{
  "data": {
    "listingId": "8c73d933-f7ed-437e-9da1-caac95adc1ae",
    "composition": [
      {
        "blockType": "header",
        "visibility": "public",
        "order": 0,
        "config": {
          "property1": null,
          "property2": null
        }
      }
    ],
    "published": true,
    "publishedVersion": 0
  },
  "meta": {
    "timestamp": "2019-08-24T14:15:22Z"
  }
}
```

- `data` (`directory-update-composition.response.200.data`; object, required)
  - `listingId` (`directory-update-composition.response.200.data.listingId`; string, required)
    - format `uuid`
  - `composition` (`directory-update-composition.response.200.data.composition`; array<object>, required)
    - `blockType` (`directory-update-composition.response.200.data.composition.blockType`; string, required)
      - one of `"header"`, `"trust"`, `"about"`, `"team"`, `"metrics"`, `"capital_graph"`, `"investment_criteria"`, `"portfolio"`, `"capital_marketplace"`, `"links"`, `"custom"`, `"overview"`, `"dividends"`, `"earnings_filings"`, `"models"`, `"financials"`, `"compare"`, `"health"`, `"charts"`, `"people"`, `"news"`, `"investors"`
    - `order` (`directory-update-composition.response.200.data.composition.order`; integer, required)
    - `visibility` (`directory-update-composition.response.200.data.composition.visibility`; string, optional)
      - one of `"public"`, `"follower"`, `"capital"`, `"diligence"`, `"custom"`; default `"public"`
    - `config` (`directory-update-composition.response.200.data.composition.config`; map<unknown>, optional)
  - `published` (`directory-update-composition.response.200.data.published`; boolean, required)
  - `publishedVersion` (`directory-update-composition.response.200.data.publishedVersion`; integer, required, nullable)
- `meta` (`directory-update-composition.response.200.meta`; object, optional)
  - `timestamp` (`directory-update-composition.response.200.meta.timestamp`; string, required)
    - format `date-time`

### 400

Default Response

#### Example

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

- `error` (`directory-update-composition.response.400.error`; object, required)
  - `code` (`directory-update-composition.response.400.error.code`; string, required) — Machine-readable error code (e.g., NOT_FOUND)
  - `message` (`directory-update-composition.response.400.error.message`; string, required) — Human-readable error message
  - `details` (`directory-update-composition.response.400.error.details`; unknown, optional) — Optional structured error details
  - `traceId` (`directory-update-composition.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` (`directory-update-composition.response.401.error`; object, required)
  - `code` (`directory-update-composition.response.401.error.code`; string, required) — Machine-readable error code (e.g., NOT_FOUND)
  - `message` (`directory-update-composition.response.401.error.message`; string, required) — Human-readable error message
  - `details` (`directory-update-composition.response.401.error.details`; unknown, optional) — Optional structured error details
  - `traceId` (`directory-update-composition.response.401.error.traceId`; string, optional) — Unique ID for log correlation

### 403

Default Response

#### Example

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

- `error` (`directory-update-composition.response.403.error`; object, required)
  - `code` (`directory-update-composition.response.403.error.code`; string, required) — Machine-readable error code (e.g., NOT_FOUND)
  - `message` (`directory-update-composition.response.403.error.message`; string, required) — Human-readable error message
  - `details` (`directory-update-composition.response.403.error.details`; unknown, optional) — Optional structured error details
  - `traceId` (`directory-update-composition.response.403.error.traceId`; string, optional) — Unique ID for log correlation

### 404

Default Response

#### Example

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

- `error` (`directory-update-composition.response.404.error`; object, required)
  - `code` (`directory-update-composition.response.404.error.code`; string, required) — Machine-readable error code (e.g., NOT_FOUND)
  - `message` (`directory-update-composition.response.404.error.message`; string, required) — Human-readable error message
  - `details` (`directory-update-composition.response.404.error.details`; unknown, optional) — Optional structured error details
  - `traceId` (`directory-update-composition.response.404.error.traceId`; string, optional) — Unique ID for log correlation

### 409

Default Response

#### Example

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

- `error` (`directory-update-composition.response.409.error`; object, required)
  - `code` (`directory-update-composition.response.409.error.code`; string, required) — Machine-readable error code (e.g., NOT_FOUND)
  - `message` (`directory-update-composition.response.409.error.message`; string, required) — Human-readable error message
  - `details` (`directory-update-composition.response.409.error.details`; unknown, optional) — Optional structured error details
  - `traceId` (`directory-update-composition.response.409.error.traceId`; string, optional) — Unique ID for log correlation

### 429

Default Response

#### Example

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

- `error` (`directory-update-composition.response.429.error`; object, required)
  - `code` (`directory-update-composition.response.429.error.code`; string, required) — Machine-readable error code (e.g., NOT_FOUND)
  - `message` (`directory-update-composition.response.429.error.message`; string, required) — Human-readable error message
  - `details` (`directory-update-composition.response.429.error.details`; unknown, optional) — Optional structured error details
  - `traceId` (`directory-update-composition.response.429.error.traceId`; string, optional) — Unique ID for log correlation

### 500

Default Response

#### Example

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

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

### 503

Default Response

#### Example

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

- `error` (`directory-update-composition.response.503.error`; object, required)
  - `code` (`directory-update-composition.response.503.error.code`; string, required) — Machine-readable error code (e.g., NOT_FOUND)
  - `message` (`directory-update-composition.response.503.error.message`; string, required) — Human-readable error message
  - `details` (`directory-update-composition.response.503.error.details`; unknown, optional) — Optional structured error details
  - `traceId` (`directory-update-composition.response.503.error.traceId`; string, optional) — Unique ID for log correlation


Source: https://docs.sureshake.com/reference/directory-update-composition/index.md
