---
title: amp destinations
description: "Reference for amp destinations list, create, get, update, test, and Snowflake RSA key generation."
product: general
token_estimate: 950
---
# amp destinations

> For AI agents: a documentation index is available at [/docs/llms.txt](/docs/llms.txt). Append `.md` to any page URL for markdown, or send `Accept: text/markdown`.

`amp destinations` manages destinations in a project. Read commands require `destinations:read`. Create, update, test, and Snowflake key generation require `destinations:write`.

List partner types first with [`amp destination-types`](https://amplitude.com/docs/developers/cli/commands/destination-types) so you pass a valid `--partner` and config.

## `amp destinations list`

```bash
amp destinations list --project <project_id> --limit 5
amp destinations list --project <project_id> --partner <partner> --enabled true
```

Use `--q` (or `--query`) to search, `--partner` to filter by partner, `--enabled` to filter by state, and `--kind` to filter by connector kind.

In an interactive terminal, `amp destinations list` prints a human-friendly table. Pipe the output to a file or another command, or pass `--json`, to get raw API JSON instead.

## `amp destinations create`

Pass `--partner` and `--display-name`. Amplitude assigns the destination `id`. Repeating create with the same display name creates another destination. Pass `--dry-run` to return a plan envelope without creating the destination.

The API treats secret and OAuth config values as write-only. Pass nested `config`, `kind`, `event_filter`, and `property_mappings` with `--body-json` when flags aren't enough:

```bash
amp destinations create --project <project_id> --partner <partner> --display-name "My destination"
amp destinations create --project <project_id> --partner <partner> --display-name "My destination" --dry-run
amp destinations create --project <project_id> --partner <partner> --display-name "My destination" \
  --body-json '{"config":{},"enabled":true}'
```

You can omit `kind` when the partner has one capability. For a multi-capability partner, pass `kind` so the request isn't ambiguous. The three families are mutually exclusive: a subset of `event` and `identify`, or `cohort`, or `warehouse_export`. Don't combine families.

## `amp destinations get`

```bash
amp destinations get --project <project_id> --id <destination_id>
```

## `amp destinations update`

Use `--project` and `--id` to identify an existing destination, then pass the fields to change. Run `amp destinations update --help` for the field list, or pass `--body-json` to merge additional fields. Pass `--if-match` with the destination's current version when you need a conditional update. `--dry-run` returns a plan envelope without mutating.

```bash
amp destinations update --project <project_id> --id <destination_id> --display-name "Updated name"
amp destinations update --project <project_id> --id <destination_id> --dry-run --body-json '{"enabled":false}'
```

## `amp destinations test-destination`

Tests an event streaming destination connection. This command requires `destinations:write`.

```bash
amp destinations test-destination --project <project_id> --id <destination_id>
```

## `amp destinations generate-snowflake-rsa-key`

Generates a Snowflake-compatible RSA key pair. Amplitude stores the private key in an ephemeral server-side cache. The response includes the public key and an ephemeral ID. Paste the public key into Snowflake with `ALTER USER <user> SET RSA_PUBLIC_KEY = '...'`. Then pass `snowflake_private_key_ephemeral_id` in the destination `config` on a later `amp destinations create` for a Snowflake direct-load destination.

Pass `--idempotency-key`:

```bash
amp destinations generate-snowflake-rsa-key --project <project_id> --idempotency-key <unique_key>
```

[Configuration](https://amplitude.com/docs/developers/cli/configuration) documents `--project`, `--json`, `--dry-run`, and `--body-json` in full.

