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

# List Capabilities

> GET /v1/capabilities - List available capabilities

List all capabilities (plugins, builtins, connectors) available in your account.

## Request

<CodeGroup>
  <CodeBlock title="cURL">
    ```bash theme={null}
    curl -X GET "https://api.noorle.com/v1/capabilities" \
      -H "X-API-Key: ak-a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4s9t0u1v2w3x4y5z6" \
      -H "Content-Type: application/json"
    ```
  </CodeBlock>

  <CodeBlock title="Python">
    ```python theme={null}
    import requests

    response = requests.get(
        "https://api.noorle.com/v1/capabilities",
        headers={"X-API-Key": "ak-a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4s9t0u1v2w3x4y5z6"}
    )
    caps = response.json()
    ```
  </CodeBlock>

  <CodeBlock title="JavaScript">
    ```typescript theme={null}
    const response = await fetch(
      "https://api.noorle.com/v1/capabilities",
      {
        headers: {
          "X-API-Key": "ak-a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4s9t0u1v2w3x4y5z6"
        }
      }
    );
    const caps = await response.json();
    ```
  </CodeBlock>

  <CodeBlock title="Go">
    ```go theme={null}
    req, _ := http.NewRequest("GET",
      "https://api.noorle.com/v1/capabilities", nil)
    req.Header.Set("X-API-Key", "ak-a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4s9t0u1v2w3x4y5z6")

    client := &http.Client{}
    resp, _ := client.Do(req)
    ```
  </CodeBlock>
</CodeGroup>

## Query Parameters

| Parameter   | Type    | Required | Description                                      |
| ----------- | ------- | -------- | ------------------------------------------------ |
| `type`      | string  | No       | Filter by type: `plugin`, `builtin`, `connector` |
| `namespace` | string  | No       | Filter by namespace (plugin owner)               |
| `limit`     | integer | No       | Max results (default: 20, max: 100)              |
| `offset`    | integer | No       | Pagination offset (default: 0)                   |
| `search`    | string  | No       | Search by name or description                    |

## Response

```json theme={null}
{
  "capabilities": [
    {
      "id": "550e8400-e29b-41d4-a716-446655440000",
      "account_id": "550e8400-e29b-41d4-a716-446655440001",
      "name": "my-plugin",
      "description": "Does useful things",
      "namespace": "account:550e8400",
      "type": "plugin",
      "is_active": true,
      "active_version": 1,
      "logo_url": "https://example.com/logo.png",
      "specifications": {
        "type": "plugin",
        "active_version": 1,
        "versions": [
          {
            "version_number": 1,
            "created_at": "2024-03-22T10:30:45Z",
            "created_by": "550e8400-e29b-41d4-a716-446655440002",
            "tools": [
              {
                "name": "greet",
                "description": "Greet a person"
              },
              {
                "name": "add",
                "description": "Add two numbers"
              }
            ],
            "metadata": {
              "author": "Your Name",
              "license": "MIT",
              "tags": ["data-processing"],
              "homepage": "https://github.com/org/plugin"
            },
            "permissions": {
              "network": {
                "allow": [
                  {"host": "api.example.com"}
                ]
              },
              "filesystem": {
                "allow": [
                  {
                    "uri": "fs://cache/**",
                    "access": ["read", "write"]
                  }
                ]
              },
              "environment": {
                "allow": [
                  {"key": "API_KEY"}
                ]
              }
            },
            "resources": {
              "limits": {
                "memory": "512Mi",
                "timeout": "30s"
              }
            }
          }
        ]
      },
      "audit_info": {
        "created_at": "2024-03-22T10:30:45Z",
        "created_by": "550e8400-e29b-41d4-a716-446655440002",
        "updated_at": "2024-03-22T12:00:00Z",
        "updated_by": "550e8400-e29b-41d4-a716-446655440002"
      }
    },
    {
      "id": "builtin-files",
      "name": "Files",
      "description": "Read and write files",
      "type": "builtin",
      "specifications": {
        "type": "builtin",
        "kind": "Files",
        "sort_order": 1,
        "config": null
      }
    }
  ],
  "total": 42,
  "limit": 20,
  "offset": 0
}
```

## Status Code

| Code | Meaning               |
| ---- | --------------------- |
| 200  | Success               |
| 401  | Unauthorized          |
| 403  | Forbidden (no access) |

## Examples

### List All Plugins

```bash theme={null}
curl "https://api.noorle.com/v1/capabilities?type=plugin" \
  -H "X-API-Key: ak-a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4s9t0u1v2w3x4y5z6"
```

Response:

```json theme={null}
{
  "capabilities": [
    {
      "id": "550e8400-...",
      "name": "my-plugin",
      "type": "plugin"
    }
  ],
  "total": 5,
  "limit": 20,
  "offset": 0
}
```

### List Built-ins

```bash theme={null}
curl "https://api.noorle.com/v1/capabilities?type=builtin" \
  -H "X-API-Key: ak-a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4s9t0u1v2w3x4y5z6"
```

### Search Capabilities

```bash theme={null}
curl "https://api.noorle.com/v1/capabilities?search=weather" \
  -H "X-API-Key: ak-a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4s9t0u1v2w3x4y5z6"
```

### Pagination

```bash theme={null}
# Get next 20 results
curl "https://api.noorle.com/v1/capabilities?limit=20&offset=20" \
  -H "X-API-Key: ak-a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4s9t0u1v2w3x4y5z6"
```

## Related Endpoints

* [Upload Plugin](/docs/reference/rest/plugins-upload)
* [OAuth Authorize](/docs/reference/rest/oauth-device-authorize)
* [Get Token](/docs/reference/rest/oauth-token)
