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

# List all projects

**Documentation:** /reference/api-reference/projects/getOrgProjectList

> **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.

Retrieves projects belonging to the authenticated organization by default, or all organizations the authenticated user belongs to when list_all_org_projects is true. Projects are returned in descending order of creation date (newest first). This endpoint is useful for displaying project selection in dashboards or for integrations that need to list all available projects.

---

## GET `/api/v3.1/org/project/list`

**Endpoint:** `https://backend.composio.dev/api/v3.1/org/project/list`

**Summary:** List all projects

Retrieves projects belonging to the authenticated organization by default, or all organizations the authenticated user belongs to when list_all_org_projects is true. Projects are returned in descending order of creation date (newest first). This endpoint is useful for displaying project selection in dashboards or for integrations that need to list all available projects.

### Authentication

**UserApiKeyAuth** - API Key in `header` header `x-user-api-key`

### Query Parameters

- `list_all_org_projects` (boolean,null): List projects from all organizations the authenticated user belongs to
- `limit` (integer): Number of items per page, max allowed is 50
- `cursor` (string): Cursor for pagination. The cursor is a base64 encoded string of the page and limit. The page is the page number and the limit is the number of items per page. The cursor is used to paginate through the items. The cursor is not required for the first page.

### Responses

#### 200 - Projects retrieved successfully with pagination. Returns an array of project objects with their complete details and pagination info.

**Response Schema:**

- `data` (array<object>) *(required)*
  - Array items:
    - `id` (string (projectId)) *(required)*: Unique identifier for the project
    - `org_id` (string (orgId)) *(required)*: Identifier of the organization that owns this project
    - `name` (string) *(required)*: Name of the project
    - `email` (string) *(required)*: Email address associated with the project
    - `created_at` (string) *(required)*: ISO timestamp when the project was created
    - `updated_at` (string) *(required)*: ISO timestamp when the project was last updated
    - `webhook_url` (string,null (uri)) *(required)*: DEPRECATED: Use GET /api/v3/webhook_subscriptions instead. Legacy project-level webhook URL.
    - `event_webhook_url` (string,null (uri)) *(required)*: DEPRECATED: No longer used.
    - `webhook_secret` (string,null) *(required)*: DEPRECATED: Use GET /api/v3/webhook_subscriptions instead. Legacy project-level webhook secret.
    - `triggers_enabled` (boolean): Whether triggers are enabled for this project
    - `last_subscribed_at` (string,null (date-time)): ISO timestamp when the project last subscribed to updates
    - `is_new_webhook` (boolean): Deprecated: Please refer to webhook_version instead. True indicates if the webhook configuration is using the previous new format (V2). False indicates the oldest format (V1)
    - `webhook_version` (enum: "V1" | "V2" | "V3") *(required)*: Payload format version for Pusher real-time events only. For webhook configuration, use GET /api/v3/webhook_subscriptions.
    - `deleted` (boolean) *(required)*: Whether this project has been deleted
- `next_cursor` (string,null)
- `total_pages` (number) *(required)*
- `current_page` (number) *(required)*
- `total_items` (number) *(required)*

**Example Response:**

```json
{
  "data": [
    {
      "id": "string",
      "org_id": "string",
      "name": "string",
      "email": "string",
      "created_at": "string",
      "updated_at": "string",
      "webhook_url": null,
      "event_webhook_url": null,
      "webhook_secret": null,
      "triggers_enabled": true,
      "last_subscribed_at": null,
      "is_new_webhook": true,
      "webhook_version": "V1",
      "deleted": true
    }
  ],
  "next_cursor": null,
  "total_pages": 1,
  "current_page": 1,
  "total_items": 1
}
```

#### 400 - Bad request. This may occur if there are invalid query parameters or the request is malformed.

**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. Authentication is required or the provided credentials are invalid.

**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. An unexpected error occurred while processing the request.

**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/org/project/list" \
  -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.