## Initiate video uploads using TUS `client.Stream.New(ctx, params) error` **post** `/accounts/{account_id}/stream` Initiates a video upload using the TUS protocol. On success, the server responds with a status code 201 (created) and includes a `location` header to indicate where the content should be uploaded. Refer to https://tus.io for protocol details. ### Parameters - `params StreamNewParams` - `AccountID param.Field[string]` Path param: The account identifier tag. - `Body param.Field[unknown]` Body param - `TusResumable param.Field[StreamNewParamsTusResumable]` Header param: Specifies the TUS protocol version. This value must be included in every upload request. Notes: The only supported version of TUS protocol is 1.0.0. - `const StreamNewParamsTusResumable1_0_0 StreamNewParamsTusResumable = "1.0.0"` - `UploadLength param.Field[int64]` Header param: Indicates the size of the entire upload in bytes. The value must be a non-negative integer. - `DirectUser param.Field[bool]` Query param: Provisions a URL to let your end users upload videos directly to Cloudflare Stream without exposing your API token to clients. - `UploadCreator param.Field[string]` Header param: A user-defined identifier for the media creator. - `UploadMetadata param.Field[string]` Header param: Comma-separated key-value pairs following the TUS protocol specification. Values are Base-64 encoded. Supported keys: `name`, `requiresignedurls`, `allowedorigins`, `thumbnailtimestamppct`, `watermark`, `scheduleddeletion`, `maxdurationseconds`. ### Example ```go package main import ( "context" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/option" "github.com/cloudflare/cloudflare-go/stream" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) err := client.Stream.New(context.TODO(), stream.StreamNewParams{ AccountID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"), Body: map[string]interface{}{ }, TusResumable: cloudflare.F(stream.StreamNewParamsTusResumable1_0_0), UploadLength: cloudflare.F(int64(0)), }) if err != nil { panic(err.Error()) } } ``` #### Response ```json {} ```