publ betaReference (MCP guide)
Open publ console

resource_files_upload

# resource_files_upload

Uploads files for file upload in the Resource Store app (pApp B00012, 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 |
| --- | --- | --- |
| `purpose` | Yes | `resource`, `post_thumbnail`, `series_thumbnail`, `series_cover` |
| `upload` | Yes | one of: `local-file`, `more-parts`, `complete`, `cancel` (by `kind`) |
| `upload.filename` | Yes | When `upload.kind` is `local-file`: string; min length 1; max length 240; pattern `^[^/\\:\x00-\x1f\x7f]+$`; The name of the file on this computer, with its extension. |
| `upload.byteLength` | Yes | When `upload.kind` is `local-file`: integer; greater than 0; The exact file size in bytes (for example from `wc -c < FILE` or `stat`). |
| `upload.sha256` | No | When `upload.kind` is `local-file`: string; pattern `^[0-9a-f]{64}$`; The SHA-256 of the file in lowercase hex (shasum -a 256 FILE). Required when the upload answers UPLOAD_CHECKSUM_REQUIRED. |
| `upload.uploadId` | Yes | When `upload.kind` is `more-parts`: string; pattern `^upl_[A-Za-z0-9_-]{22}$` |
| `upload.fromPart` | Yes | When `upload.kind` is `more-parts`: integer; minimum 1; maximum 10000 |
| `upload.uploadId` | Yes | When `upload.kind` is `complete`: string; pattern `^upl_[A-Za-z0-9_-]{22}$` |
| `upload.parts` | Yes | When `upload.kind` is `complete`: array; min items 1; max items 10000 |
| `upload.parts[].partNumber` | Yes | When `upload.kind` is `complete`: integer; minimum 1; maximum 10000 |
| `upload.parts[].etag` | Yes | When `upload.kind` is `complete`: string; min length 1; max length 200 |
| `upload.measured` | No | When `upload.kind` is `complete`: object |
| `upload.measured.durationSeconds` | Yes | When `upload.kind` is `complete`: number; maximum 1000000; greater than 0; Video duration in seconds (ffprobe format.duration). |
| `upload.measured.frameRate` | Yes | When `upload.kind` is `complete`: number; maximum 1000; greater than 0; Frames per second (ffprobe avg_frame_rate, for example 30000/1001 = 29.97). |
| `upload.measured.width` | Yes | When `upload.kind` is `complete`: integer; maximum 100000; greater than 0 |
| `upload.measured.height` | Yes | When `upload.kind` is `complete`: integer; maximum 100000; greater than 0 |
| `upload.measured.frameRateMode` | No | When `upload.kind` is `complete`: `CFR`, `VFR`; Constant or variable frame rate, when the tool reports it. |
| `upload.measured.minFrameRate` | No | When `upload.kind` is `complete`: number; maximum 1000; greater than 0 |
| `upload.measured.maxFrameRate` | No | When `upload.kind` is `complete`: number; maximum 1000; greater than 0 |
| `upload.uploadId` | Yes | When `upload.kind` is `cancel`: string; pattern `^upl_[A-Za-z0-9_-]{22}$` |
| `instanceCode` | No | string; pattern `^B(?:000\|9[0-9]{2})12$`; Optional: which installed Resource Store app to use (its code, such as B00012 or B90112). Omit it when only one is installed; when several are, pick one from the installed list. |
| `confirmToken` | No | 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. |