# publishContent

Source: <https://telegafirst.com/docs/api-op-publishcontent>
Locale: ru
releaseGitSha: ea133cd4ad87fe549ef000b139be145be9bd1717
sourceContentDigest: 0f044b360f21c0d9a7a3b0943e398e145dafc48c74928ac83e00354c2368c53e
Version: 2

# publishContent

`POST /api/v1/content/publish`

Write a pack of content cards into Settings topics

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

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 | \["content:write"] |

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

| Поле | Значение |
| - | - |
| 0.in | "header" |
| 0.name | "Idempotency-Key" |
| 0.required | true |
| 0.schema | [0.schema](https://telegafirst.com/docs/schema-00404e686415370f1711c4d7acfa2905444d3cf23cef2e10c47d445ebe690f96) |

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

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

## Ответы

| Поле | Значение |
| - | - |
| 201.content.application/json.schema | [ContentPublishResult](https://telegafirst.com/docs/schema-a8b8162cc926027a4e8b698ea4b09fdae7c4017b811c950678467a9db434850b) |
| 201.description | "Pack accepted; inspect every indexed result for partial failures or waiting timeout" |
| 201.headers.X-Bot-Username.description | "Active public bot username, when resolved" |
| 201.headers.X-Bot-Username.schema | [201.headers.X-Bot-Username.schema](https://telegafirst.com/docs/schema-00404e686415370f1711c4d7acfa2905444d3cf23cef2e10c47d445ebe690f96) |
| 201.headers.X-Client-Slug.description | "Active tenant slug, when resolved" |
| 201.headers.X-Client-Slug.schema | [201.headers.X-Client-Slug.schema](https://telegafirst.com/docs/schema-00404e686415370f1711c4d7acfa2905444d3cf23cef2e10c47d445ebe690f96) |
| 201.headers.X-RateLimit-Limit.description | "Effective request budget" |
| 201.headers.X-RateLimit-Limit.schema | [201.headers.X-RateLimit-Limit.schema](https://telegafirst.com/docs/schema-00404e686415370f1711c4d7acfa2905444d3cf23cef2e10c47d445ebe690f96) |
| 201.headers.X-RateLimit-Remaining.description | "Remaining budget or unknown" |
| 201.headers.X-RateLimit-Remaining.schema | [201.headers.X-RateLimit-Remaining.schema](https://telegafirst.com/docs/schema-00404e686415370f1711c4d7acfa2905444d3cf23cef2e10c47d445ebe690f96) |
| 201.headers.X-RateLimit-Reset.description | "Window reset, Unix seconds" |
| 201.headers.X-RateLimit-Reset.schema | [201.headers.X-RateLimit-Reset.schema](https://telegafirst.com/docs/schema-00404e686415370f1711c4d7acfa2905444d3cf23cef2e10c47d445ebe690f96) |

## Ошибки

| Поле | Значение |
| - | - |
| 400.content.application/problem+json.schema | [ProblemDetails](https://telegafirst.com/docs/schema-c4113f3de00d728702a8663612e2074cbe3e8b3bb70d2b0dee6f3503fe89bd41) |
| 400.description | "Invalid canonical write input or missing Idempotency-Key" |
| 400.headers.X-Bot-Username.description | "Active public bot username, when resolved" |
| 400.headers.X-Bot-Username.schema | [400.headers.X-Bot-Username.schema](https://telegafirst.com/docs/schema-00404e686415370f1711c4d7acfa2905444d3cf23cef2e10c47d445ebe690f96) |
| 400.headers.X-Client-Slug.description | "Active tenant slug, when resolved" |
| 400.headers.X-Client-Slug.schema | [400.headers.X-Client-Slug.schema](https://telegafirst.com/docs/schema-00404e686415370f1711c4d7acfa2905444d3cf23cef2e10c47d445ebe690f96) |
| 400.headers.X-RateLimit-Limit.description | "Effective request budget" |
| 400.headers.X-RateLimit-Limit.schema | [400.headers.X-RateLimit-Limit.schema](https://telegafirst.com/docs/schema-00404e686415370f1711c4d7acfa2905444d3cf23cef2e10c47d445ebe690f96) |
| 400.headers.X-RateLimit-Remaining.description | "Remaining budget or unknown" |
| 400.headers.X-RateLimit-Remaining.schema | [400.headers.X-RateLimit-Remaining.schema](https://telegafirst.com/docs/schema-00404e686415370f1711c4d7acfa2905444d3cf23cef2e10c47d445ebe690f96) |
| 400.headers.X-RateLimit-Reset.description | "Window reset, Unix seconds" |
| 400.headers.X-RateLimit-Reset.schema | [400.headers.X-RateLimit-Reset.schema](https://telegafirst.com/docs/schema-00404e686415370f1711c4d7acfa2905444d3cf23cef2e10c47d445ebe690f96) |
| 401.content.application/problem+json.schema | [ProblemDetails](https://telegafirst.com/docs/schema-c4113f3de00d728702a8663612e2074cbe3e8b3bb70d2b0dee6f3503fe89bd41) |
| 401.description | "Missing, invalid or conflicting credential headers; JWT is not accepted" |
| 401.headers.X-Bot-Username.description | "Active public bot username, when resolved" |
| 401.headers.X-Bot-Username.schema | [401.headers.X-Bot-Username.schema](https://telegafirst.com/docs/schema-00404e686415370f1711c4d7acfa2905444d3cf23cef2e10c47d445ebe690f96) |
| 401.headers.X-Client-Slug.description | "Active tenant slug, when resolved" |
| 401.headers.X-Client-Slug.schema | [401.headers.X-Client-Slug.schema](https://telegafirst.com/docs/schema-00404e686415370f1711c4d7acfa2905444d3cf23cef2e10c47d445ebe690f96) |
| 401.headers.X-RateLimit-Limit.description | "Effective request budget" |
| 401.headers.X-RateLimit-Limit.schema | [401.headers.X-RateLimit-Limit.schema](https://telegafirst.com/docs/schema-00404e686415370f1711c4d7acfa2905444d3cf23cef2e10c47d445ebe690f96) |
| 401.headers.X-RateLimit-Remaining.description | "Remaining budget or unknown" |
| 401.headers.X-RateLimit-Remaining.schema | [401.headers.X-RateLimit-Remaining.schema](https://telegafirst.com/docs/schema-00404e686415370f1711c4d7acfa2905444d3cf23cef2e10c47d445ebe690f96) |
| 401.headers.X-RateLimit-Reset.description | "Window reset, Unix seconds" |
| 401.headers.X-RateLimit-Reset.schema | [401.headers.X-RateLimit-Reset.schema](https://telegafirst.com/docs/schema-00404e686415370f1711c4d7acfa2905444d3cf23cef2e10c47d445ebe690f96) |
| 403.content.application/problem+json.schema | [ProblemDetails](https://telegafirst.com/docs/schema-c4113f3de00d728702a8663612e2074cbe3e8b3bb70d2b0dee6f3503fe89bd41) |
| 403.description | "Required content:write scope or resource policy refused" |
| 403.headers.X-Bot-Username.description | "Active public bot username, when resolved" |
| 403.headers.X-Bot-Username.schema | [403.headers.X-Bot-Username.schema](https://telegafirst.com/docs/schema-00404e686415370f1711c4d7acfa2905444d3cf23cef2e10c47d445ebe690f96) |
| 403.headers.X-Client-Slug.description | "Active tenant slug, when resolved" |
| 403.headers.X-Client-Slug.schema | [403.headers.X-Client-Slug.schema](https://telegafirst.com/docs/schema-00404e686415370f1711c4d7acfa2905444d3cf23cef2e10c47d445ebe690f96) |
| 403.headers.X-RateLimit-Limit.description | "Effective request budget" |
| 403.headers.X-RateLimit-Limit.schema | [403.headers.X-RateLimit-Limit.schema](https://telegafirst.com/docs/schema-00404e686415370f1711c4d7acfa2905444d3cf23cef2e10c47d445ebe690f96) |
| 403.headers.X-RateLimit-Remaining.description | "Remaining budget or unknown" |
| 403.headers.X-RateLimit-Remaining.schema | [403.headers.X-RateLimit-Remaining.schema](https://telegafirst.com/docs/schema-00404e686415370f1711c4d7acfa2905444d3cf23cef2e10c47d445ebe690f96) |
| 403.headers.X-RateLimit-Reset.description | "Window reset, Unix seconds" |
| 403.headers.X-RateLimit-Reset.schema | [403.headers.X-RateLimit-Reset.schema](https://telegafirst.com/docs/schema-00404e686415370f1711c4d7acfa2905444d3cf23cef2e10c47d445ebe690f96) |
| 409.content.application/problem+json.schema | [ProblemDetails](https://telegafirst.com/docs/schema-c4113f3de00d728702a8663612e2074cbe3e8b3bb70d2b0dee6f3503fe89bd41) |
| 409.description | "Tenant archived or same idempotency command is in flight" |
| 409.headers.X-Bot-Username.description | "Active public bot username, when resolved" |
| 409.headers.X-Bot-Username.schema | [409.headers.X-Bot-Username.schema](https://telegafirst.com/docs/schema-00404e686415370f1711c4d7acfa2905444d3cf23cef2e10c47d445ebe690f96) |
| 409.headers.X-Client-Slug.description | "Active tenant slug, when resolved" |
| 409.headers.X-Client-Slug.schema | [409.headers.X-Client-Slug.schema](https://telegafirst.com/docs/schema-00404e686415370f1711c4d7acfa2905444d3cf23cef2e10c47d445ebe690f96) |
| 409.headers.X-RateLimit-Limit.description | "Effective request budget" |
| 409.headers.X-RateLimit-Limit.schema | [409.headers.X-RateLimit-Limit.schema](https://telegafirst.com/docs/schema-00404e686415370f1711c4d7acfa2905444d3cf23cef2e10c47d445ebe690f96) |
| 409.headers.X-RateLimit-Remaining.description | "Remaining budget or unknown" |
| 409.headers.X-RateLimit-Remaining.schema | [409.headers.X-RateLimit-Remaining.schema](https://telegafirst.com/docs/schema-00404e686415370f1711c4d7acfa2905444d3cf23cef2e10c47d445ebe690f96) |
| 409.headers.X-RateLimit-Reset.description | "Window reset, Unix seconds" |
| 409.headers.X-RateLimit-Reset.schema | [409.headers.X-RateLimit-Reset.schema](https://telegafirst.com/docs/schema-00404e686415370f1711c4d7acfa2905444d3cf23cef2e10c47d445ebe690f96) |
| 413.content.application/problem+json.schema | [ProblemDetails](https://telegafirst.com/docs/schema-c4113f3de00d728702a8663612e2074cbe3e8b3bb70d2b0dee6f3503fe89bd41) |
| 413.description | "The pack exceeds the current plan item cap" |
| 413.headers.X-Bot-Username.description | "Active public bot username, when resolved" |
| 413.headers.X-Bot-Username.schema | [413.headers.X-Bot-Username.schema](https://telegafirst.com/docs/schema-00404e686415370f1711c4d7acfa2905444d3cf23cef2e10c47d445ebe690f96) |
| 413.headers.X-Client-Slug.description | "Active tenant slug, when resolved" |
| 413.headers.X-Client-Slug.schema | [413.headers.X-Client-Slug.schema](https://telegafirst.com/docs/schema-00404e686415370f1711c4d7acfa2905444d3cf23cef2e10c47d445ebe690f96) |
| 413.headers.X-RateLimit-Limit.description | "Effective request budget" |
| 413.headers.X-RateLimit-Limit.schema | [413.headers.X-RateLimit-Limit.schema](https://telegafirst.com/docs/schema-00404e686415370f1711c4d7acfa2905444d3cf23cef2e10c47d445ebe690f96) |
| 413.headers.X-RateLimit-Remaining.description | "Remaining budget or unknown" |
| 413.headers.X-RateLimit-Remaining.schema | [413.headers.X-RateLimit-Remaining.schema](https://telegafirst.com/docs/schema-00404e686415370f1711c4d7acfa2905444d3cf23cef2e10c47d445ebe690f96) |
| 413.headers.X-RateLimit-Reset.description | "Window reset, Unix seconds" |
| 413.headers.X-RateLimit-Reset.schema | [413.headers.X-RateLimit-Reset.schema](https://telegafirst.com/docs/schema-00404e686415370f1711c4d7acfa2905444d3cf23cef2e10c47d445ebe690f96) |
| 422.content.application/problem+json.schema | [ProblemDetails](https://telegafirst.com/docs/schema-c4113f3de00d728702a8663612e2074cbe3e8b3bb70d2b0dee6f3503fe89bd41) |
| 422.description | "Idempotency-Key was reused with different request input" |
| 422.headers.X-Bot-Username.description | "Active public bot username, when resolved" |
| 422.headers.X-Bot-Username.schema | [422.headers.X-Bot-Username.schema](https://telegafirst.com/docs/schema-00404e686415370f1711c4d7acfa2905444d3cf23cef2e10c47d445ebe690f96) |
| 422.headers.X-Client-Slug.description | "Active tenant slug, when resolved" |
| 422.headers.X-Client-Slug.schema | [422.headers.X-Client-Slug.schema](https://telegafirst.com/docs/schema-00404e686415370f1711c4d7acfa2905444d3cf23cef2e10c47d445ebe690f96) |
| 422.headers.X-RateLimit-Limit.description | "Effective request budget" |
| 422.headers.X-RateLimit-Limit.schema | [422.headers.X-RateLimit-Limit.schema](https://telegafirst.com/docs/schema-00404e686415370f1711c4d7acfa2905444d3cf23cef2e10c47d445ebe690f96) |
| 422.headers.X-RateLimit-Remaining.description | "Remaining budget or unknown" |
| 422.headers.X-RateLimit-Remaining.schema | [422.headers.X-RateLimit-Remaining.schema](https://telegafirst.com/docs/schema-00404e686415370f1711c4d7acfa2905444d3cf23cef2e10c47d445ebe690f96) |
| 422.headers.X-RateLimit-Reset.description | "Window reset, Unix seconds" |
| 422.headers.X-RateLimit-Reset.schema | [422.headers.X-RateLimit-Reset.schema](https://telegafirst.com/docs/schema-00404e686415370f1711c4d7acfa2905444d3cf23cef2e10c47d445ebe690f96) |
| 429.content.application/problem+json.schema | [ProblemDetails](https://telegafirst.com/docs/schema-c4113f3de00d728702a8663612e2074cbe3e8b3bb70d2b0dee6f3503fe89bd41) |
| 429.description | "Request budget exhausted" |
| 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-f0765dbf409c74f001806c446f2cf171d8c46b5b15779d54423dde921a4b0670) |
| 429.headers.X-Bot-Username.description | "Active public bot username, when resolved" |
| 429.headers.X-Bot-Username.schema | [429.headers.X-Bot-Username.schema](https://telegafirst.com/docs/schema-00404e686415370f1711c4d7acfa2905444d3cf23cef2e10c47d445ebe690f96) |
| 429.headers.X-Client-Slug.description | "Active tenant slug, when resolved" |
| 429.headers.X-Client-Slug.schema | [429.headers.X-Client-Slug.schema](https://telegafirst.com/docs/schema-00404e686415370f1711c4d7acfa2905444d3cf23cef2e10c47d445ebe690f96) |
| 429.headers.X-RateLimit-Limit.description | "Effective request budget" |
| 429.headers.X-RateLimit-Limit.schema | [429.headers.X-RateLimit-Limit.schema](https://telegafirst.com/docs/schema-00404e686415370f1711c4d7acfa2905444d3cf23cef2e10c47d445ebe690f96) |
| 429.headers.X-RateLimit-Remaining.description | "Remaining budget or unknown" |
| 429.headers.X-RateLimit-Remaining.schema | [429.headers.X-RateLimit-Remaining.schema](https://telegafirst.com/docs/schema-00404e686415370f1711c4d7acfa2905444d3cf23cef2e10c47d445ebe690f96) |
| 429.headers.X-RateLimit-Reset.description | "Window reset, Unix seconds" |
| 429.headers.X-RateLimit-Reset.schema | [429.headers.X-RateLimit-Reset.schema](https://telegafirst.com/docs/schema-00404e686415370f1711c4d7acfa2905444d3cf23cef2e10c47d445ebe690f96) |

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

| Поле | Значение |
| - | - |
| description | "Each item uses the canonical unified write validator. The targetTopic selects its config; CREATE forbids replaceTarget, REPLACE/RESTORE require its tenant seqId, and delivery replacement is limited to catalog/marketing. Catalog config delivery.message\_content\_seq\_num is a strict numeric positive-int4 address resolved within the tenant; the raw message\_content\_id key is refused. RESTORE excludes message\_chains. Content requires text, finalized media descriptors or a source page URL. The plan sets the batch cap; per-item failures remain in results, without failing successful siblings. waitResult changes waiting, not durable item identity. Poll unresolved cards by their opaque draftHandle. Authentication accepts X-Api-Key OR Bearer tgf\_\* credential secrets; surface-session JWTs are refused." |
| operationId | "publishContent" |
| summary | "Write a pack of content cards into Settings topics" |
| tags | \["content"] |
| x-scope-semantics | "ALL" |
