---
canonical_url: "https://docs.composio.dev/reference/api-reference/tool-router/getSessionConfigsBySessionConfigId"
markdown_url: "https://docs.composio.dev/reference/api-reference/tool-router/getSessionConfigsBySessionConfigId.md"
product: "platform"
version: "3.1"
last_updated: null
---

# Retrieve a Session config

**Documentation:** /reference/api-reference/tool-router/getSessionConfigsBySessionConfigId

> **API version:** This page documents Composio REST API v3.1, the current version, at `https://backend.composio.dev/api/v3.1`. `https://backend.composio.dev/api/v3` is the previous version and remains supported.

Retrieve a saved access policy in your project. config.toolkits.enable selects toolkit slugs; config.toolkits.disable excludes them; an omitted config.toolkits allows all toolkits. Tool and tag rules further restrict access. This returns the saved policy, not an expanded catalog or an existing Session snapshot. Archived configs remain readable but cannot create new Sessions. Experimental: available only to projects enabled for Session configs. Create and manage configs in Dashboard.

---

## GET `/api/v3.1/session_configs/{session_config_id}`

**Endpoint:** `https://backend.composio.dev/api/v3.1/session_configs/{session_config_id}`

**Summary:** Retrieve a Session config

Retrieve a saved access policy in your project. config.toolkits.enable selects toolkit slugs; config.toolkits.disable excludes them; an omitted config.toolkits allows all toolkits. Tool and tag rules further restrict access. This returns the saved policy, not an expanded catalog or an existing Session snapshot. Archived configs remain readable but cannot create new Sessions. Experimental: available only to projects enabled for Session configs. Create and manage configs in Dashboard.

### Authentication

**ApiKeyAuth** - API Key in `header` header `x-api-key`

### Path Parameters

- `session_config_id` (string (sessionConfigId)) *(required)*: 

### Responses

#### 200 - Session config retrieved.

**Response Schema:**

- `id` (string (sessionConfigId)) *(required)*: Stable public identifier of the Session config.
- `name` (string) *(required)*: Project-unique display name.
- `description` (string,null) *(required)*: Optional description of when the config should be used.
- `archived` (boolean) *(required)*: Whether the config is archived.
- `config` (object) *(required)*: Stored Session access policy using the same enable/disable wire shape accepted on create and update, with any require_approval lists.
  - `toolkits` (any)
  - `tools` (object)
    - `[key: string]` (any)
  - `tags` (object)
    - `enable` (array<enum: "readOnlyHint" | "createHint" | "updateHint" | ...>)
    - `disable` (array<enum: "readOnlyHint" | "createHint" | "updateHint" | ...>)
    - `require_approval` (array<enum: "readOnlyHint" | "createHint" | "updateHint" | ...>): Tags whose tools need the user's approval before they run.
- `created_at` (string (date-time)) *(required)*: Creation time in ISO 8601.
- `updated_at` (string (date-time)) *(required)*: Last update time in ISO 8601.

**Example Response:**

```json
{
  "id": "string",
  "name": "string",
  "description": null,
  "archived": true,
  "config": {
    "toolkits": null,
    "tools": {
      "key": null
    },
    "tags": {
      "enable": [
        "..."
      ],
      "disable": [
        "..."
      ],
      "require_approval": [
        "..."
      ]
    }
  },
  "created_at": "2024-01-15T10:30:00Z",
  "updated_at": "2024-01-15T10:30:00Z"
}
```

#### 400 - Invalid Session config ID.

**Response Schema:**

- `error` (object) *(required)*
  - `message` (string) *(required)*
  - `code` (number) *(required)*
  - `slug` (string) *(required)*
  - `status` (number) *(required)*
  - `request_id` (string)
  - `suggested_fix` (string)
  - `errors` (array<string>)

#### 401 - Unauthorized.

**Response Schema:**

- `error` (object) *(required)*
  - `message` (string) *(required)*
  - `code` (number) *(required)*
  - `slug` (string) *(required)*
  - `status` (number) *(required)*
  - `request_id` (string)
  - `suggested_fix` (string)
  - `errors` (array<string>)

#### 403 - Session configs or read access not enabled for this project.

**Response Schema:**

- `error` (object) *(required)*
  - `message` (string) *(required)*
  - `code` (number) *(required)*
  - `slug` (string) *(required)*
  - `status` (number) *(required)*
  - `request_id` (string)
  - `suggested_fix` (string)
  - `errors` (array<string>)

#### 404 - Session config not found in this project.

**Response Schema:**

- `error` (object) *(required)*
  - `message` (string) *(required)*
  - `code` (number) *(required)*
  - `slug` (string) *(required)*
  - `status` (number) *(required)*
  - `request_id` (string)
  - `suggested_fix` (string)
  - `errors` (array<string>)

#### 500 - Internal server error.

**Response Schema:**

- `error` (object) *(required)*
  - `message` (string) *(required)*
  - `code` (number) *(required)*
  - `slug` (string) *(required)*
  - `status` (number) *(required)*
  - `request_id` (string)
  - `suggested_fix` (string)
  - `errors` (array<string>)

### Example cURL Request

```bash
curl -X GET "https://backend.composio.dev/api/v3.1/session_configs/string" \
  -H "x-api-key: YOUR_API_KEY"
```

---

## REST API version

The current REST API version is **v3.1**, served at `https://backend.composio.dev/api/v3.1`. Prefer it for new code and new examples.

`https://backend.composio.dev/api/v3` is the previous version. It is frozen with pinned tool-version defaults and remains supported — existing v3 integrations keep working and do not need to migrate.