# Assets # Upload ## Create Assets Upload Session `client.workers.scripts.assets.upload.create(stringscriptName, UploadCreateParamsparams, RequestOptionsoptions?): UploadCreateResponse` **post** `/accounts/{account_id}/workers/scripts/{script_name}/assets-upload-session` Start uploading a collection of assets for use in a Worker version. To learn more about the direct uploads of assets, see https://developers.cloudflare.com/workers/static-assets/direct-upload/. ### Parameters - `scriptName: string` Name of the script, used in URLs and route configuration. - `params: UploadCreateParams` - `account_id: string` Path param: Identifier. - `manifest: Record` Body param: A manifest ([path]: {hash, size}) map of files to upload. As an example, `/blog/hello-world.html` would be a valid path key. - `hash: string` The hash of the file. - `size: number` The size of the file in bytes. ### Returns - `UploadCreateResponse` - `buckets?: Array>` The requests to make to upload assets. - `jwt?: string` A JWT to use as authentication for uploading assets. ### Example ```typescript import Cloudflare from 'cloudflare'; const client = new Cloudflare({ apiToken: process.env['CLOUDFLARE_API_TOKEN'], // This is the default and can be omitted }); const upload = await client.workers.scripts.assets.upload.create('this-is_my_script-01', { account_id: '023e105f4ecef8ad9ca31a8372d0c353', manifest: { foo: { hash: 'hash', size: 0 } }, }); console.log(upload.buckets); ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true, "result": { "buckets": [ [ "string" ] ], "jwt": "jwt" } } ``` ## Domain Types ### Upload Create Response - `UploadCreateResponse` - `buckets?: Array>` The requests to make to upload assets. - `jwt?: string` A JWT to use as authentication for uploading assets.