timeline_posts_apply
# timeline_posts_apply
Changes stories in the Timeline app (pApp A00001, or an instance code of the same family). Another app code is refused before any request. Called without confirmToken it previews and returns a confirmToken; repeating the same input with it executes once.
## Inputs
| Field | Required here | Contract |
| --- | --- | --- |
| `action` | Yes | When alternative 1: one of: `create`, `update`, `visibility`, `delete` (by `kind`) |
| `action.fields` | Yes | When alternative 1 and `action.kind` is `create`: object or object or object or object or object or object or object |
| `action.fields.title` | Yes | When alternative 1 and `action.kind` is `create` and `action.fields` is alternative 1: string; min length 2; max length 200 |
| `action.fields.content` | Yes | When alternative 1 and `action.kind` is `create` and `action.fields` is alternative 1: string; min length 2; max length 60000; Original editor HTML, conservatively limited to 60,000 serialized UTF-16 units. The source limits visible characters; rich documents over this bound require the console. Uploads use existing approved resource URLs. |
| `action.fields.uploadFileSrc` | No | When alternative 1 and `action.kind` is `create` and `action.fields` is alternative 1: string; max length 4096; format `uri` or null |
| `action.fields.publishedAt` | No | When alternative 1 and `action.kind` is `create` and `action.fields` is alternative 1: string; pattern `^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}$` |
| `action.fields.title` | Yes | When alternative 1 and `action.kind` is `create` and `action.fields` is alternative 2: string; min length 1; max length 100 |
| `action.fields.content` | Yes | When alternative 1 and `action.kind` is `create` and `action.fields` is alternative 2: string; min length 2; max length 50000 |
| `action.fields.publishedAt` | No | When alternative 1 and `action.kind` is `create` and `action.fields` is alternative 2: string; pattern `^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}$` |
| `action.fields.thumbnailSrc` | No | When alternative 1 and `action.kind` is `create` and `action.fields` is alternative 2: string; max length 4096; format `uri` or `` |
| `action.fields.coverImageSrc` | No | When alternative 1 and `action.kind` is `create` and `action.fields` is alternative 2: string; max length 4096; format `uri` or `` |
| `action.fields.content` | Yes | When alternative 1 and `action.kind` is `create` and `action.fields` is alternative 3: string; min length 2; max length 20000 |
| `action.fields.publishedAt` | No | When alternative 1 and `action.kind` is `create` and `action.fields` is alternative 3: string; pattern `^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}$` |
| `action.fields.storyResource` | No | When alternative 1 and `action.kind` is `create` and `action.fields` is alternative 3: one of: `PLAIN`, `IMAGE`, `YOUTUBE` (by `type`) |
| `action.fields.storyResource.imageSrcs` | Yes | When alternative 1 and `action.kind` is `create` and `action.fields` is alternative 3 and `action.fields.storyResource.type` is `IMAGE`: array; items: string; max length 4096; format `uri`; min items 1; max items 10 |
| `action.fields.storyResource.youtubeSrc` | Yes | When alternative 1 and `action.kind` is `create` and `action.fields` is alternative 3 and `action.fields.storyResource.type` is `YOUTUBE`: string; max length 4096; format `uri` |
| `action.fields.title` | Yes | When alternative 1 and `action.kind` is `create` and `action.fields` is alternative 4: string; min length 1; max length 200 |
| `action.fields.content` | No | When alternative 1 and `action.kind` is `create` and `action.fields` is alternative 4: string; min length 0; max length 5000 |
| `action.fields.introduction` | No | When alternative 1 and `action.kind` is `create` and `action.fields` is alternative 4: string; min length 0; max length 200 |
| `action.fields.uploadFileSrc` | No | When alternative 1 and `action.kind` is `create` and `action.fields` is alternative 4: string; max length 4096; format `uri` |
| `action.fields.uploadFileSrcs` | No | When alternative 1 and `action.kind` is `create` and `action.fields` is alternative 4: array; items: string; max length 4096; format `uri`; min items 1; max items 10; Complete retained file list when editing a resource. Preserve existing URLs when adding a file; the final file cannot be removed. |
| `action.fields.thumbnailSrc` | No | When alternative 1 and `action.kind` is `create` and `action.fields` is alternative 4: string; max length 4096; format `uri` or `` |
| `action.fields.coverImageSrc` | No | When alternative 1 and `action.kind` is `create` and `action.fields` is alternative 4: string; max length 4096; format `uri` or `` |
| `action.fields.publishedAt` | No | When alternative 1 and `action.kind` is `create` and `action.fields` is alternative 4: string; pattern `^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}$` |
| `action.fields.contentRatingsAge` | No | When alternative 1 and `action.kind` is `create` and `action.fields` is alternative 4: integer; minimum 0 |
| `action.fields.title` | Yes | When alternative 1 and `action.kind` is `create` and `action.fields` is alternative 5: string; min length 1; max length 50 |
| `action.fields.content` | No | When alternative 1 and `action.kind` is `create` and `action.fields` is alternative 5: string; min length 2; max length 50000 or ``; Optional photobook text: empty or 2–50,000 UTF-16 units. Creation omits empty text; update sends an explicit empty string to clear it. |
| `action.fields.introduction` | No | When alternative 1 and `action.kind` is `create` and `action.fields` is alternative 5: string; min length 0; max length 120 |
| `action.fields.publishedAt` | No | When alternative 1 and `action.kind` is `create` and `action.fields` is alternative 5: string; pattern `^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}$` |
| `action.fields.contentRatingsAge` | No | When alternative 1 and `action.kind` is `create` and `action.fields` is alternative 5: integer; minimum 0 |
| `action.fields.storyResource` | No | When alternative 1 and `action.kind` is `create` and `action.fields` is alternative 5: object |
| `action.fields.storyResource.type` | Yes | When alternative 1 and `action.kind` is `create` and `action.fields` is alternative 5: `IMAGE` |
| `action.fields.storyResource.imageSrcs` | Yes | When alternative 1 and `action.kind` is `create` and `action.fields` is alternative 5: array; items: string; max length 4096; format `uri`; min items 1; max items 50 |
| `action.fields.storyResource.audioSrcs` | Yes | When alternative 1 and `action.kind` is `create` and `action.fields` is alternative 5: array; max items 50 |
| `action.fields.storyResource.audioUse` | Yes | When alternative 1 and `action.kind` is `create` and `action.fields` is alternative 5: boolean |
| `action.fields.title` | Yes | When alternative 1 and `action.kind` is `create` and `action.fields` is alternative 6: string; min length 2; max length 200 |
| `action.fields.content` | Yes | When alternative 1 and `action.kind` is `create` and `action.fields` is alternative 6: string; min length 2; max length 20000 |
| `action.fields.boardCategoryId` | Yes | When alternative 1 and `action.kind` is `create` and `action.fields` is alternative 6: integer; greater than 0 |
| `action.fields.boardCategoryLabelIds` | No | When alternative 1 and `action.kind` is `create` and `action.fields` is alternative 6: array; items: integer; greater than 0; max items 1 |
| `action.fields.uploadFileSrcs` | No | When alternative 1 and `action.kind` is `create` and `action.fields` is alternative 6: array; items: string; max length 4096; format `uri`; max items 100 |
| `action.fields.publishedAt` | No | When alternative 1 and `action.kind` is `create` and `action.fields` is alternative 6: string; pattern `^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}$` |
| `action.articleImageUploads` | No | When alternative 1 and `action.kind` is `create`: object |
| `action.articleImageUploads.thumbnailTaskId` | No | When alternative 1 and `action.kind` is `create`: string; pattern `^[A-Za-z0-9_-]{8,80}$` |
| `action.articleImageUploads.coverTaskId` | No | When alternative 1 and `action.kind` is `create`: string; pattern `^[A-Za-z0-9_-]{8,80}$` |
| `action.resourceUploadTaskId` | No | When alternative 1 and `action.kind` is `create`: string; pattern `^[A-Za-z0-9_-]{8,80}$`; Resource store only: the verified content_upload task with purpose resource. As in the original upload, the title is the file name before its extension, the thumbnail is the built-in icon for the extension, the body is empty and the post starts unpublished; pass fields {}. |
| `action.isPublished` | Yes | When alternative 1 and `action.kind` is `create`: boolean; Choose immediate public visibility explicitly. |
| `action.timelineSelection` | No | When alternative 1 and `action.kind` is `create`: object |
| `action.timelineSelection.labelIds` | Yes | When alternative 1 and `action.kind` is `create`: array; items: integer; greater than 0; max items 50 |
| `action.articleSelection` | No | When alternative 1 and `action.kind` is `create`: object |
| `action.articleSelection.category` | No | When alternative 1 and `action.kind` is `create`: object |
| `action.articleSelection.category.categoryId` | Yes | When alternative 1 and `action.kind` is `create`: integer; greater than 0 |
| `action.articleSelection.category.labelIds` | Yes | When alternative 1 and `action.kind` is `create`: array; items: integer; greater than 0; max items 5 |
| `action.articleSelection.generalLabels` | No | When alternative 1 and `action.kind` is `create`: object |
| `action.articleSelection.generalLabels.labelIds` | Yes | When alternative 1 and `action.kind` is `create`: array; items: integer; greater than 0; max items 5 |
| `action.articleImageDescription` | No | When alternative 1 and `action.kind` is `create`: string; min length 1; max length 100; Article creation only. Save the same nonempty description for thumbnail and cover. When articleSlug is omitted on a new creation, automatic metadata is submitted and the returned saved address is verified against the durable receipt. Stored descriptions do not verify visitor accessibility. |
| `action.articleSlug` | No | When alternative 1 and `action.kind` is `create`: one of: `custom`, `automatic` (by `kind`) |
| `action.articleSlug.value` | Yes | When alternative 1 and `action.kind` is `create` and `action.articleSlug.kind` is `custom`: string; min length 1 |
| `action.postId` | Yes | When alternative 1 and `action.kind` is `update`: integer; greater than 0 |
| `action.fields` | No | When alternative 1 and `action.kind` is `update`: object or object or object or object or object or object or object or object |
| `action.fields.title` | No | When alternative 1 and `action.kind` is `update` and `action.fields` is alternative 1: string; min length 2; max length 200 |
| `action.fields.content` | No | When alternative 1 and `action.kind` is `update` and `action.fields` is alternative 1: string; min length 2; max length 60000; Original editor HTML, conservatively limited to 60,000 serialized UTF-16 units. The source limits visible characters; rich documents over this bound require the console. Uploads use existing approved resource URLs. |
| `action.fields.uploadFileSrc` | No | When alternative 1 and `action.kind` is `update` and `action.fields` is alternative 1: string; max length 4096; format `uri` or null |
| `action.fields.publishedAt` | No | When alternative 1 and `action.kind` is `update` and `action.fields` is alternative 1: string; pattern `^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}$` |
| `action.fields.title` | No | When alternative 1 and `action.kind` is `update` and `action.fields` is alternative 2: string; min length 1; max length 100 |
| `action.fields.content` | No | When alternative 1 and `action.kind` is `update` and `action.fields` is alternative 2: string; min length 2; max length 50000 |
| `action.fields.publishedAt` | No | When alternative 1 and `action.kind` is `update` and `action.fields` is alternative 2: string; pattern `^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}$` |
| `action.fields.thumbnailSrc` | No | When alternative 1 and `action.kind` is `update` and `action.fields` is alternative 2: string; max length 4096; format `uri` or `` |
| `action.fields.coverImageSrc` | No | When alternative 1 and `action.kind` is `update` and `action.fields` is alternative 2: string; max length 4096; format `uri` or `` |
| `action.fields.content` | No | When alternative 1 and `action.kind` is `update` and `action.fields` is alternative 3: string; min length 2; max length 20000 |
| `action.fields.publishedAt` | No | When alternative 1 and `action.kind` is `update` and `action.fields` is alternative 3: string; pattern `^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}$` |
| `action.fields.title` | No | When alternative 1 and `action.kind` is `update` and `action.fields` is alternative 4: string; min length 1; max length 200 |
| `action.fields.content` | No | When alternative 1 and `action.kind` is `update` and `action.fields` is alternative 4: string; min length 0; max length 5000 |
| `action.fields.introduction` | No | When alternative 1 and `action.kind` is `update` and `action.fields` is alternative 4: string; min length 0; max length 200 |
| `action.fields.uploadFileSrc` | No | When alternative 1 and `action.kind` is `update` and `action.fields` is alternative 4: string; max length 4096; format `uri` |
| `action.fields.uploadFileSrcs` | No | When alternative 1 and `action.kind` is `update` and `action.fields` is alternative 4: array; items: string; max length 4096; format `uri`; min items 1; max items 10; Complete retained file list when editing a resource. Preserve existing URLs when adding a file; the final file cannot be removed. |
| `action.fields.thumbnailSrc` | No | When alternative 1 and `action.kind` is `update` and `action.fields` is alternative 4: string; max length 4096; format `uri` or `` |
| `action.fields.coverImageSrc` | No | When alternative 1 and `action.kind` is `update` and `action.fields` is alternative 4: string; max length 4096; format `uri` or `` |
| `action.fields.publishedAt` | No | When alternative 1 and `action.kind` is `update` and `action.fields` is alternative 4: string; pattern `^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}$` |
| `action.fields.contentRatingsAge` | No | When alternative 1 and `action.kind` is `update` and `action.fields` is alternative 4: integer; minimum 0 |
| `action.fields.title` | No | When alternative 1 and `action.kind` is `update` and `action.fields` is alternative 5: string; min length 1; max length 50 |
| `action.fields.content` | No | When alternative 1 and `action.kind` is `update` and `action.fields` is alternative 5: string; min length 2; max length 50000 or ``; Optional photobook text: empty or 2–50,000 UTF-16 units. Creation omits empty text; update sends an explicit empty string to clear it. |
| `action.fields.introduction` | No | When alternative 1 and `action.kind` is `update` and `action.fields` is alternative 5: string; min length 0; max length 120 |
| `action.fields.publishedAt` | No | When alternative 1 and `action.kind` is `update` and `action.fields` is alternative 5: string; pattern `^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}$` |
| `action.fields.contentRatingsAge` | No | When alternative 1 and `action.kind` is `update` and `action.fields` is alternative 5: integer; minimum 0 |
| `action.fields.storyResource` | No | When alternative 1 and `action.kind` is `update` and `action.fields` is alternative 5: object |
| `action.fields.storyResource.type` | Yes | When alternative 1 and `action.kind` is `update` and `action.fields` is alternative 5: `IMAGE` |
| `action.fields.storyResource.imageSrcs` | Yes | When alternative 1 and `action.kind` is `update` and `action.fields` is alternative 5: array; items: string; max length 4096; format `uri`; min items 1; max items 50 |
| `action.fields.storyResource.audioSrcs` | Yes | When alternative 1 and `action.kind` is `update` and `action.fields` is alternative 5: array; max items 50 |
| `action.fields.storyResource.audioUse` | Yes | When alternative 1 and `action.kind` is `update` and `action.fields` is alternative 5: boolean |
| `action.fields.title` | No | When alternative 1 and `action.kind` is `update` and `action.fields` is alternative 6: string; min length 2; max length 200 |
| `action.fields.content` | No | When alternative 1 and `action.kind` is `update` and `action.fields` is alternative 6: string; min length 2; max length 20000 |
| `action.fields.boardCategoryId` | No | When alternative 1 and `action.kind` is `update` and `action.fields` is alternative 6: integer; greater than 0 |
| `action.fields.boardCategoryLabelIds` | No | When alternative 1 and `action.kind` is `update` and `action.fields` is alternative 6: array; items: integer; greater than 0; max items 1 |
| `action.fields.uploadFileSrcs` | No | When alternative 1 and `action.kind` is `update` and `action.fields` is alternative 6: array; items: string; max length 4096; format `uri`; max items 100 |
| `action.fields.publishedAt` | No | When alternative 1 and `action.kind` is `update` and `action.fields` is alternative 6: string; pattern `^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}$` |
| `action.fields.content` | No | When alternative 1 and `action.kind` is `update` and `action.fields` is alternative 7: string; min length 2; max length 5000 |
| `action.articleImageUploads` | No | When alternative 1 and `action.kind` is `update`: object |
| `action.articleImageUploads.thumbnailTaskId` | No | When alternative 1 and `action.kind` is `update`: string; pattern `^[A-Za-z0-9_-]{8,80}$` |
| `action.articleImageUploads.coverTaskId` | No | When alternative 1 and `action.kind` is `update`: string; pattern `^[A-Za-z0-9_-]{8,80}$` |
| `action.timelineSelection` | No | When alternative 1 and `action.kind` is `update`: object |
| `action.timelineSelection.labelIds` | Yes | When alternative 1 and `action.kind` is `update`: array; items: integer; greater than 0; max items 50 |
| `action.postId` | Yes | When alternative 1 and `action.kind` is `visibility`: integer; greater than 0 |
| `action.isPublished` | Yes | When alternative 1 and `action.kind` is `visibility`: boolean |
| `action.postId` | Yes | When alternative 1 and `action.kind` is `delete`: integer; greater than 0 |
| `action.confirmation` | Yes | When alternative 1 and `action.kind` is `delete`: `DELETE_POST`; Permanent removal has no source undo. Confirm the exact selected post. |
| `instanceCode` | No | When alternative 1: string; pattern `^A(?:000\|9[0-9]{2})01$`; Optional: which installed Timeline app to use (its code, such as A00001 or A90101). Omit it when only one is installed; when several are, pick one from the installed list. |
| `confirmToken` | No | When alternative 1: string; pattern `^ct[a-f\d]{32}$`; The confirmToken from this tool's preview result. Omit it to preview; repeat the same input with it to execute. |
| `action` | Yes | When alternative 2: one of: `article_selection`, `article_selection`, `article_selection`, `article_selection`, `article_selection` (by `kind`) |
| `action.operation` | Yes | When alternative 2 and `action.kind` is `article_selection`: `publish` |
| `action.postIds` | Yes | When alternative 2 and `action.kind` is `article_selection`: array; items: integer; greater than 0; min items 1; max items 100 |
| `action.confirmation` | Yes | When alternative 2 and `action.kind` is `article_selection`: `PUBLISH_SELECTED_ARTICLES` |
| `action.operation` | Yes | When alternative 2 and `action.kind` is `article_selection`: `unpublish` |
| `action.postIds` | Yes | When alternative 2 and `action.kind` is `article_selection`: array; items: integer; greater than 0; min items 1; max items 100 |
| `action.confirmation` | Yes | When alternative 2 and `action.kind` is `article_selection`: `UNPUBLISH_SELECTED_ARTICLES` |
| `action.operation` | Yes | When alternative 2 and `action.kind` is `article_selection`: `delete` |
| `action.postIds` | Yes | When alternative 2 and `action.kind` is `article_selection`: array; items: integer; greater than 0; min items 1; max items 100 |
| `action.confirmation` | Yes | When alternative 2 and `action.kind` is `article_selection`: `DELETE_SELECTED_ARTICLES` |
| `action.operation` | Yes | When alternative 2 and `action.kind` is `article_selection`: `pin` |
| `action.postIds` | Yes | When alternative 2 and `action.kind` is `article_selection`: array; items: integer; greater than 0; min items 1; max items 100 |
| `action.confirmation` | Yes | When alternative 2 and `action.kind` is `article_selection`: `PIN_SELECTED_POSTS` |
| `action.operation` | Yes | When alternative 2 and `action.kind` is `article_selection`: `unpin` |
| `action.postIds` | Yes | When alternative 2 and `action.kind` is `article_selection`: array; items: integer; greater than 0; min items 1; max items 100 |
| `action.confirmation` | Yes | When alternative 2 and `action.kind` is `article_selection`: `UNPIN_SELECTED_POSTS` |
| `instanceCode` | No | When alternative 2: string; pattern `^A(?:000\|9[0-9]{2})01$`; Optional: which installed Timeline app to use (its code, such as A00001 or A90101). Omit it when only one is installed; when several are, pick one from the installed list. |
| `confirmToken` | No | When alternative 2: string; pattern `^ct[a-f\d]{32}$`; The confirmToken from this tool's preview result. Omit it to preview; repeat the same input with it to execute. |