# createChainStep

Source: <https://telegafirst.com/docs/api-op-createchainstep>
Locale: ru
releaseGitSha: 0bb11ef116e17ec64c802d5476eaff442e53d252
sourceContentDigest: c3d8ce00023b7da8b2e34cec144b91dcea98f7785970595ef1426adeb075b9a7
Version: 3

# createChainStep

`POST /api/v1/tools/chains/steps`

Add a step with its message to a chain

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

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

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

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

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

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

## Ответы

| Поле | Значение |
| - | - |
| 201.content.application/json.schema | [MessageChainStepCreateResult](https://telegafirst.com/docs/schema-7dde5dea4ba60c8a158c831a38b041755d6d102bbf6fa93304bdb834feaf6e14) |
| 201.description | "The step and its message were written, or are still being written (waitTimedOut)" |
| 201.headers.X-Bot-Username.description | "Active public bot username when present" |
| 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 present in authenticated metadata" |
| 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 epoch 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 step, empty content or a chain\_seq\_num past int4, or missing POST idempotency key" |
| 400.x-error-codes | \["VALIDATION\_ERROR","IDEMPOTENCY\_KEY\_REQUIRED"] |
| 401.content.application/problem+json.schema | [ProblemDetails](https://telegafirst.com/docs/schema-c4113f3de00d728702a8663612e2074cbe3e8b3bb70d2b0dee6f3503fe89bd41) |
| 401.description | "Missing, invalid, revoked or conflicting credentials" |
| 401.x-error-codes | \["INVALID\_API\_KEY"] |
| 403.content.application/problem+json.schema | [ProblemDetails](https://telegafirst.com/docs/schema-c4113f3de00d728702a8663612e2074cbe3e8b3bb70d2b0dee6f3503fe89bd41) |
| 403.description | "Missing scope, publishable key or no active tenant" |
| 403.x-error-codes | \["INSUFFICIENT\_SCOPE","PUBLISHABLE\_KEY\_NOT\_ALLOWED","NO\_ACTIVE\_BOT"] |
| 404.content.application/problem+json.schema | [ProblemDetails](https://telegafirst.com/docs/schema-c4113f3de00d728702a8663612e2074cbe3e8b3bb70d2b0dee6f3503fe89bd41) |
| 404.description | "Chain sequence absent in this tenant" |
| 404.x-error-codes | \["NOT\_FOUND"] |
| 409.content.application/problem+json.schema | [ProblemDetails](https://telegafirst.com/docs/schema-c4113f3de00d728702a8663612e2074cbe3e8b3bb70d2b0dee6f3503fe89bd41) |
| 409.description | "Same-key command is already processing, or the tenant is archived" |
| 409.x-error-codes | \["CONFLICT","TENANT\_ARCHIVED"] |
| 413.content.application/problem+json.schema | [ProblemDetails](https://telegafirst.com/docs/schema-c4113f3de00d728702a8663612e2074cbe3e8b3bb70d2b0dee6f3503fe89bd41) |
| 413.description | "Per-tool resource cap" |
| 413.x-error-codes | \["PAYLOAD\_TOO\_LARGE","ITEM\_COUNT\_EXCEEDED"] |
| 422.content.application/problem+json.schema | [ProblemDetails](https://telegafirst.com/docs/schema-c4113f3de00d728702a8663612e2074cbe3e8b3bb70d2b0dee6f3503fe89bd41) |
| 422.description | "Same key reused with a different request" |
| 422.x-error-codes | \["IDEMPOTENCY\_KEY\_MISMATCH"] |
| 429.content.application/problem+json.schema | [ProblemDetails](https://telegafirst.com/docs/schema-c4113f3de00d728702a8663612e2074cbe3e8b3bb70d2b0dee6f3503fe89bd41) |
| 429.description | "Per-tool quota exceeded or unavailable (fail closed)" |
| 429.headers.Retry-After.description | "Retry delay when supplied by resource decision" |
| 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-c4113f3de00d728702a8663612e2074cbe3e8b3bb70d2b0dee6f3503fe89bd41) |
| 500.description | "Unexpected failure; private cause is withheld" |
| 500.x-error-codes | \["INTERNAL\_ERROR"] |

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

| Поле | Значение |
| - | - |
| description | "The step message is posted through the same content pipeline as POST /api/v1/content/publish; content is required (text and/or mediaRefs from media finalize), title and delay\_minutes are optional. The first step of a chain becomes its entry point. stepSeqNum is null when waitTimedOut is true: find the step with GET /api/v1/tools/chains/steps. Configure buttons, timeouts and entry state with PATCH /api/v1/tools/chains/steps." |
| operationId | "createChainStep" |
| summary | "Add a step with its message to a chain" |
| tags | \["chains"] |
| x-idempotency-boundary.conflictStatus | 422 |
| x-idempotency-boundary.implementation | "generic-v2" |
| x-idempotency-boundary.required | true |
| x-idempotency-boundary.scope | \["client","credential","controller","handler"] |
| x-idempotency-boundary.ttlSeconds | 86400 |
| x-pagination.supported | false |
