---
title: "RotateAgentCredential"
description: "Rotate an agent credential's secrets"
canonical: "https://pgbeam.com/docs/go-sdk/agents/rotateAgentCredential"
last-updated: "2026-10-29T19:01:20.000Z"
---

# RotateAgentCredential

> Rotate an agent credential's secrets

URL: https://pgbeam.com/docs/go-sdk/agents/rotateAgentCredential

{/* Auto-generated from OpenAPI. Do not edit. Run `pnpm generate:sdk-docs` to regenerate. */}

Generates a new Postgres password and MCP token for the credential in place, keeping the same id, username, name, and policy. Live connections using the old password are dropped within seconds. The new secrets are returned once and cannot be retrieved again.

## Usage

```go
result, err := client.Agents.RotateAgentCredential(ctx, "prj_xxx", "agt_xxx")
```

## Parameters

| Parameter | Type              | Required | Description                                                  |
| --------- | ----------------- | -------- | ------------------------------------------------------------ |
| ctx       | `context.Context` | Yes      | Request context                                              |
| projectID | `string`          | Yes      | Unique project identifier (prefixed, e.g. prj_xxx).          |
| agentID   | `string`          | Yes      | Unique agent credential identifier (prefixed, e.g. agt_xxx). |

## Response

`(*pgbeam.AgentCredentialSecrets, error)`: secrets rotated. new secrets shown once.

## Example

```go
import pgbeam "go.pgbeam.com/sdk"

client := pgbeam.NewClient(&pgbeam.ClientOptions{
  APIKey: "pbu_...",
})

result, err := client.Agents.RotateAgentCredential(ctx, "prj_xxx", "agt_xxx")
if err != nil {
  log.Fatal(err)
}
fmt.Println(result)
```

## Errors

| Status | Description                                                                                                                                                                                                                                                                                           |
| ------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 400    | The request was rejected. `code` is `INVALID_INPUT`, and `errors` names the offending fields when the failure was a validation one.                                                                                                                                                                   |
| 401    | Missing or invalid authentication. `code` is `UNAUTHORIZED`.                                                                                                                                                                                                                                          |
| 403    | The caller is authenticated but not allowed to perform this operation. `code` is `FORBIDDEN` when the caller's role is insufficient, and `PLAN_LIMIT_REACHED` when the organization's plan is what stands in the way. The two are answered differently, so branch on the code rather than the status. |
| 404    | The resource does not exist, or the caller is not entitled to know that it does. `code` is `NOT_FOUND`.                                                                                                                                                                                               |
| 409    | The credential is revoked and cannot be rotated.                                                                                                                                                                                                                                                      |
| 500    | The request failed for a reason on our side. `code` is `INTERNAL_ERROR`. Quote `request_id` when reporting it.                                                                                                                                                                                        |