# setSitePassword

Source: <https://telegafirst.com/docs/api-op-setsitepassword>
Locale: ru
releaseGitSha: fc570c76ffc9cb87e2462d45b14f5c1b52fbaf0d
sourceContentDigest: 19ddf0c673412b1e1ece575f417a4aa33331c6a1917b78dd46c4aea16704fbeb
Version: 4

# setSitePassword

`PUT /api/v1/tools/site/passwords`

Create or change a named password for closed sections of the site

## Авторизация и права

Scopes: ALL. Auth alternatives: OR; scopes внутри альтернативы: ALL.

| Поле | Значение |
| - | - |
| security.0.hubApiKey | \[] |
| security.1.hubBearer | \[] |
| securitySchemes.hubApiKey.in | "header" |
| securitySchemes.hubApiKey.name | "X-Api-Key" |
| securitySchemes.hubApiKey.type | "apiKey" |
| securitySchemes.hubBearer.scheme | "bearer" |
| securitySchemes.hubBearer.type | "http" |
| x-required-scopes | \["site:write"] |

## Параметры запроса

| Поле | Значение |
| - | - |
| 0.description | "Tenant, credential and handler-bound byte-shape replay key" |
| 0.in | "header" |
| 0.name | "Idempotency-Key" |
| 0.required | false |
| 0.schema | [0.schema](https://telegafirst.com/docs/schema-9ac136edb99a2063b3091602181c8d2022fdccb5b514991319d58544c2e57e95) |

## Тело запроса

| Поле | Значение |
| - | - |
| content.application/json.schema | [SitePasswordRequest](https://telegafirst.com/docs/schema-1eba3ab838b9bbccf4aee07fb1e93c1c249b985c3a1dbc8c8e5c2ca1961428e1) |
| required | true |

## Ответы

| Поле | Значение |
| - | - |
| 200.content.application/json.schema | [SitePasswordSetResult](https://telegafirst.com/docs/schema-c14aebfae213cb1ae17aa4f88b5b6116a5ad070802ceeecae330b882a52181b3) |
| 200.description | "Tenant site control-plane result" |
| 200.headers.X-Bot-Username.description | "Active bot username, when resolved" |
| 200.headers.X-Bot-Username.schema | [200.headers.X-Bot-Username.schema](https://telegafirst.com/docs/schema-00404e686415370f1711c4d7acfa2905444d3cf23cef2e10c47d445ebe690f96) |
| 200.headers.X-Client-Slug.description | "Active tenant slug, when resolved" |
| 200.headers.X-Client-Slug.schema | [200.headers.X-Client-Slug.schema](https://telegafirst.com/docs/schema-00404e686415370f1711c4d7acfa2905444d3cf23cef2e10c47d445ebe690f96) |
| 200.headers.X-RateLimit-Limit.description | "Effective request budget" |
| 200.headers.X-RateLimit-Limit.schema | [200.headers.X-RateLimit-Limit.schema](https://telegafirst.com/docs/schema-00404e686415370f1711c4d7acfa2905444d3cf23cef2e10c47d445ebe690f96) |
| 200.headers.X-RateLimit-Remaining.description | "Remaining request budget" |
| 200.headers.X-RateLimit-Remaining.schema | [200.headers.X-RateLimit-Remaining.schema](https://telegafirst.com/docs/schema-00404e686415370f1711c4d7acfa2905444d3cf23cef2e10c47d445ebe690f96) |
| 200.headers.X-RateLimit-Reset.description | "Unix window reset in seconds" |
| 200.headers.X-RateLimit-Reset.schema | [200.headers.X-RateLimit-Reset.schema](https://telegafirst.com/docs/schema-00404e686415370f1711c4d7acfa2905444d3cf23cef2e10c47d445ebe690f96) |

## Ошибки

| Поле | Значение |
| - | - |
| 400.content.application/problem+json.schema | [ProblemDetails](https://telegafirst.com/docs/schema-cb940dbba4894d830b2ff33a2fbf4d6382de295156cd5a9ab88564d4c14aa2ab) |
| 400.description | "Invalid strict body" |
| 400.x-error-codes | \["VALIDATION\_ERROR"] |
| 401.content.application/problem+json.schema | [ProblemDetails](https://telegafirst.com/docs/schema-cb940dbba4894d830b2ff33a2fbf4d6382de295156cd5a9ab88564d4c14aa2ab) |
| 401.description | "Missing, invalid, revoked or conflicting credential; surface JWT is refused" |
| 401.x-error-codes | \["INVALID\_API\_KEY"] |
| 403.content.application/problem+json.schema | [ProblemDetails](https://telegafirst.com/docs/schema-cb940dbba4894d830b2ff33a2fbf4d6382de295156cd5a9ab88564d4c14aa2ab) |
| 403.description | "Missing scope, prohibited publishable credential or absent active bot" |
| 403.x-error-codes | \["INSUFFICIENT\_SCOPE","PUBLISHABLE\_KEY\_NOT\_ALLOWED","NO\_ACTIVE\_BOT"] |
| 409.content.application/problem+json.schema | [ProblemDetails](https://telegafirst.com/docs/schema-cb940dbba4894d830b2ff33a2fbf4d6382de295156cd5a9ab88564d4c14aa2ab) |
| 409.description | "Typed domain conflict or request in flight" |
| 409.x-error-codes | \["CONFLICT"] |
| 413.content.application/problem+json.schema | [ProblemDetails](https://telegafirst.com/docs/schema-cb940dbba4894d830b2ff33a2fbf4d6382de295156cd5a9ab88564d4c14aa2ab) |
| 413.description | "Resource policy size or item-count limit exceeded" |
| 413.x-error-codes | \["PAYLOAD\_TOO\_LARGE","ITEM\_COUNT\_EXCEEDED"] |
| 422.content.application/problem+json.schema | [ProblemDetails](https://telegafirst.com/docs/schema-cb940dbba4894d830b2ff33a2fbf4d6382de295156cd5a9ab88564d4c14aa2ab) |
| 422.description | "Replay key reused for different input; the password is shorter than 8 characters; the business is at its limit of passwords" |
| 422.x-error-codes | \["IDEMPOTENCY\_KEY\_MISMATCH","SITE\_PASSWORD\_TOO\_SHORT","SITE\_PASSWORD\_LIMIT"] |
| 429.content.application/problem+json.schema | [ProblemDetails](https://telegafirst.com/docs/schema-cb940dbba4894d830b2ff33a2fbf4d6382de295156cd5a9ab88564d4c14aa2ab) |
| 429.description | "Resource rate budget exceeded or unavailable" |
| 429.headers.Retry-After.description | "Retry delay in seconds, when supplied by the limiter" |
| 429.headers.Retry-After.schema | [429.headers.Retry-After.schema](https://telegafirst.com/docs/schema-00404e686415370f1711c4d7acfa2905444d3cf23cef2e10c47d445ebe690f96) |
| 429.x-error-codes | \["RATE\_LIMIT\_EXCEEDED","RATE\_LIMIT\_UNAVAILABLE"] |
| 500.content.application/problem+json.schema | [ProblemDetails](https://telegafirst.com/docs/schema-cb940dbba4894d830b2ff33a2fbf4d6382de295156cd5a9ab88564d4c14aa2ab) |
| 500.description | "Unexpected internal failure" |
| 500.x-error-codes | \["INTERNAL\_ERROR"] |

## Дополнительные условия

| Поле | Значение |
| - | - |
| description | "Owner-only site:write. One name is one password: a new name creates it, the same name takes the new password and signs out everyone who entered with the old one. name is lowercase letters, digits and hyphens (acme, course-2026); password is 8 to 128 characters; remember\_days (1 to 365, default 30) is how long a visitor stays signed in on a device; note (up to 200 characters, one line) says who the password is for, absent keeps it and null clears it. A rule names the password in any\_of of PUT /api/v1/tools/site/access-rules, and one password can serve many rules. The platform keeps the password: no listing shows it, and POST /api/v1/tools/site/passwords/{id}/reveal reads it back. Pass it to the audience yourself and keep it out of HTML, JS and bundle files. At most 100 passwords per business, on every plan. unprojected\_hosts above 0 counts hosts whose edge catches up on the next reconciliation. The body carries the password, so the replay store never keeps it and no Idempotency-Key is read; a repeat is a change." |
| operationId | "setSitePassword" |
| summary | "Create or change a named password for closed sections of the site" |
| tags | \["site"] |
| x-idempotency.conflictStatus | 422 |
| x-idempotency.implementation | "global-cache" |
| x-idempotency.replayStatus | 200 |
| x-idempotency.required | false |
| x-idempotency.scope | \["client","credential","controller-handler","key"] |
| x-idempotency.ttlSeconds | 86400 |
| x-pagination.queryParameters | \[] |
| x-pagination.supported | false |
| x-scope-semantics | "ALL" |
