# List all projects

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

Retrieves all projects belonging to the authenticated organization. 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/org/owner/project/list`

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

**Summary:** List all projects

Retrieves all projects belonging to the authenticated organization. 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

**OrgApiKeyAuth** - API Key in `header` header `x-org-api-key`

### Query Parameters

- `limit` (number,null): Number of items per page, max allowed is 1000
- `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 projects with 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 soft-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/org/owner/project/list" \
  -H "x-api-key: YOUR_API_KEY"
```