---
title: "List provider capabilities."
description: "API reference for GET /v1/providers: List provider capabilities. Review its parameters, input, response, and generated SDK method names."
canonical: "https://wildflower.computer/docs/reference/list-providers/"
openapi_version: "0.8.0"
source_revision: "788b7325a454b8b753a7d614247d5694bad5c967"
---

# List provider capabilities.

**GET** `/v1/providers`

Returns stable provider identifiers, display names, official pricing evidence, and the runtime and lifecycle behavior Wildflower Computer can currently honor for each configured provider.

- **Operation ID:** `listProviders`
- **Success:** **200**
- **Authentication:** **Bearer key**

## Request and response

- **Request body:** **None**
- **Response:** [ProviderCatalog](https://wildflower.computer/docs/reference/models/provider-catalog/)

## HTTP example

This credential-safe request and its representative success response are generated with the operation contract. Replace placeholder IDs and read secrets from your environment.

Request

```bash
curl --fail-with-body --request GET \
  "$WILDFLOWER_URL/v1/providers" \
  -H "Authorization: Bearer $WILDFLOWER_API_KEY"
```

Response / 200

```json
{
  "providers": [
    {
      "provider": "e2b",
      "imageMode": "template",
      "timeoutMode": "seconds",
      "timeoutDefaultSeconds": 300,
      "timeoutGranularitySeconds": 1,
      "supportsCwd": true,
      "supportsEnv": true,
      "outputStreams": "separate",
      "supportsPersistentResume": false,
      "supportsExplicitStop": false,
      "supportsSnapshots": false,
      "supportsRestore": false,
      "supportsDelete": true
    }
  ]
}
```

## SDK examples

Use the same operation through any generated client. Each snippet comes from the SDK generator rather than a hand-copied website example.

### TypeScript

```typescript
import { Wildflower } from "@wildflowercomputer/sdk";

const client = new Wildflower({
  wildflowerApiKey: process.env.WILDFLOWER_API_KEY,
});

const catalog = await client.providers.list();
console.log(catalog.providers);
```

### Python

```python
import os

from wildflower import (
    E2bCreateSandboxInput,
    ReadFileInput,
    RunCommandInput,
    WriteFileInput,
    Wildflower,
)

client = Wildflower(
    wildflower_api_key=os.environ.get("WILDFLOWER_API_KEY"),
)

catalog = client.providers.list()
print(catalog.providers)
```

### Rust

```rust
use wildflower::{
    CreateSandboxInput, FileEncoding, ListSandboxesOptions, ReadFileInput,
    RunCommandInput, WriteFileInput,
    Wildflower,
};

let client = Wildflower::new(std::env::var("WILDFLOWER_API_KEY")?)?;

let catalog = client.providers().list().await?;
println!("{:?}", catalog.providers);
```

### Go

```go
client, err := wildflower.NewClient(os.Getenv("WILDFLOWER_API_KEY"))
if err != nil {
    return err
}

catalog, err := client.Providers.List(ctx)
if err != nil {
    return err
}
fmt.Println(catalog.Providers)
```

### Zig

```zig
var client = try Wildflower.init(
    allocator,
    wildflower_api_key,
    transport,
);
defer client.deinit();

var catalog = try client.listProviders();
defer catalog.deinit();
std.debug.print("{any}\n", .{catalog.value.providers});
```

## Generated SDK methods

Every name below comes from the generator mapping for this operation, so a language-specific rename creates website drift.

- [TypeScript](https://wildflower.computer/sdk/typescript/): `list`
- [Python](https://wildflower.computer/sdk/python/): `list`
- [Rust](https://wildflower.computer/sdk/rust/): `list`
- [Go](https://wildflower.computer/sdk/go/): `List`
- [Zig](https://wildflower.computer/sdk/zig/): `list`
