---
title: "Configure the Piano subscriber auth integration"
method: PUT
path: "/projects/{project_id}/integrations/subscriber_authentication/piano"
tags: ["SubscriberAuthentication"]
---

# Configure the Piano subscriber auth integration

`PUT /projects/{project_id}/integrations/subscriber_authentication/piano`

## Request

- Base URL: `https://api.beyondwords.io/v1`
- URL: `https://api.beyondwords.io/v1/projects/{project_id}/integrations/subscriber_authentication/piano`
- Auth: API key in header `X-Api-Key`

Creates or updates the Piano subscriber auth integration for a project.

## Request body

- RequestBodySubscriberAuthenticationPianoUpdate
  - `aid` string
  - `region` 'us' | 'eu' | 'au' | 'ap' | 'sandbox': Region of the publisher's Piano dashboard. Defaults to us.
  - `api_token` string: Piano application API token, from the Piano dashboard home page. Write-only - never returned by this API.
  - `private_key` string: Piano application private key, used to verify the __tac access cookie. Write-only - never returned by this API.

## Response `200`

keeps the stored credentials when omitted

- SubscriberAuthenticationModel: Fields are adapter-specific: only non-secret fields are ever returned (e.g. a Piano API token or Custom shared secret would stay write-only and never appear here).
  - `type` 'ghost' | 'piano': The subscriber auth adapter type.
  - `site_url` string, nullable: Ghost site URL (only present for the ghost type).
  - `aid` string, nullable: Piano application ID (only present for the piano type).
  - `region` 'us' | 'eu' | 'au' | 'ap' | 'sandbox' | 'null', nullable: Piano dashboard region (only present for the piano type). Blank means us.
  - `created` string, date-time: Time at which the object was created (ISO 8601)
  - `updated` string, date-time: Time at which the object was updated (ISO 8601)

## Other responses

- `422`: rejects an unknown region

## Changes

- **2026-11-03** `994b9853e685`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/beyondwords/apis/beyondwords-rest-api/changes/projects/:project_id/integrations/subscriber_authentication/piano/put.md)

---

[API](https://skmtc.dev/beyondwords/apis/beyondwords-rest-api.md) - [All operations](https://skmtc.dev/beyondwords/apis/beyondwords-rest-api/llms.txt) - [OpenAPI document](https://skmtc.dev/beyondwords/apis/beyondwords-rest-api/revisions/994b9853e685?raw)
