Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
75 changes: 75 additions & 0 deletions deployment/pipecat-cloud/guides/managed-api-keys.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
---
title: Managed API Keys
description: "Using managed API keys for your Pipecat Cloud agents"
---

## Overview

Pipecat Cloud provides API keys for some Pipecat services that you can use directly in your applications. These managed keys give you access to competitive pricing, higher rate limits, pre-signed BAAs and DPAs for compliance, and integrated billing with your Pipecat Cloud account.

<Note>
Managed keys are currently in beta. We are planning to add more services based
on demand. If you're interested in us supporting a specific service, let us
know by emailing [pipecat-ai@daily.co](mailto:pipecat-ai@daily.co).
</Note>

## Supported Services

- **Cartesia Text-to-Speech**

## Pricing

Usage of managed keys is billed through your Pipecat Cloud account. For detailed pricing information, visit our [pricing page](https://www.daily.co/pricing/pipecat-cloud/).

## How to Use Managed Keys

### Enable in Deployment Configuration

When deploying your agent, you need to enable managed keys in your configuration.

**Using pcc-deploy.toml:**

```toml
enable_managed_keys = true
```

**Using the CLI:**

```bash
pcc deploy --enable-managed-keys true
```

<Info>
This setting is configured per agent deployment. Any changes require
redeploying your agent to take effect.
</Info>

### Update Your Code

When initializing a supported service in your Pipecat application, use the special string `"PIPECATCLOUD"` as the API key. This tells Pipecat Cloud to use the managed key when your agent is deployed.

To ensure your code works both locally (with your own API key) and when deployed (with managed keys), use this pattern:

```python
import os
from pipecat.services.cartesia.tts import CartesiaTTSService

tts = CartesiaTTSService(
api_key=os.getenv("CARTESIA_API_KEY", "PIPECATCLOUD"),

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should make clear that this only works if you don't have CARTESIA_API_KEY defined in your attached secret set.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I added a note about this. You can see it in the latest commit.

voice_id="71a7ad14-091c-4e8e-a314-022ece01c121",
)
```

This approach:

- Uses your local `CARTESIA_API_KEY` environment variable during development
- Automatically switches to the managed key when deployed to Pipecat Cloud

<Note>
The `PIPECATCLOUD` key is only available for Cartesia TTS when there is no
value for `CARTESIA_API_KEY` in your corresponding secrets set.
</Note>

## Getting Help

If you have any questions about using managed keys, reach out to us on [Discord](https://discord.gg/pipecat). Our community and team are happy to help!
1 change: 1 addition & 0 deletions docs.json
Original file line number Diff line number Diff line change
Expand Up @@ -502,6 +502,7 @@
},
"deployment/pipecat-cloud/guides/daily-webrtc",
"deployment/pipecat-cloud/guides/krisp-noise-cancellation",
"deployment/pipecat-cloud/guides/managed-api-keys",
{
"group": "Logging & Observability",
"pages": ["deployment/pipecat-cloud/guides/using-datadog"]
Expand Down