Upload a video to your YouTube channel
youtube.youtube.video.uploadUpload a video to your own YouTube channel
- Price
- freeAt provider cost
- Success rate
- —No success-rate data yetNo success-rate data yet
- Latency p50
- ——
- Last verified
- —Not verified yet
POSThttps://toolswitch.dev/v1/tools/youtube.youtube.video.uploadPreview- Uses platform quota
- Synchronous response
- Reads public data
Parameters
NOT on the usual host path: uploads go to /upload/youtube/v3/videos, and the metadata JSON above is only the FIRST leg. With uploadType=resumable this call returns HTTP 200 and a `Location` header — a session URL you then PUT the video bytes to (in one PUT, or in ranged chunks using Content-Range for resumability). Needs the `post` capability (youtube.upload); a `read` connection 403s. Upload the thumbnail afterwards via youtube.video.thumbnail.set — snippet.thumbnails on this call is ignored
| Parameter | Type | Required | Description | Example |
|---|---|---|---|---|
| Query parameters | ||||
part | string | Required | which parts of the metadata you are sending — snippet,status is the working minimum; add id to get it back | id,snippet,status |
uploadType | string | Required | resumable for anything real (survives a dropped connection); multipart only for small files | resumable |
notifySubscribers | boolean | Optional | default true — subscribers get a notification. Set false for a re-upload or a correction | true |
- Query parameters
partstringRequiredwhich parts of the metadata you are sending — snippet,status is the working minimum; add id to get it back
Example:
id,snippet,statusuploadTypestringRequiredresumable for anything real (survives a dropped connection); multipart only for small files
Example:
resumablenotifySubscribersbooleanOptionaldefault true — subscribers get a notification. Set false for a re-upload or a correction
Example:
true
Code samples
Replace $TOOLSWITCH_KEY with the key you created in the console.
curl -X POST 'https://toolswitch.dev/v1/tools/youtube.youtube.video.upload' \
-H "X-Toolswitch-Key: $TOOLSWITCH_KEY"import os
import requests
response = requests.request(
"POST",
"https://toolswitch.dev/v1/tools/youtube.youtube.video.upload",
headers={"X-Toolswitch-Key": os.environ["TOOLSWITCH_KEY"]},
)
response.raise_for_status()
print(response.text)const response = await fetch("https://toolswitch.dev/v1/tools/youtube.youtube.video.upload", {
method: "POST",
headers: {
"X-Toolswitch-Key": process.env.TOOLSWITCH_KEY ?? "",
},
});
if (!response.ok) throw new Error(`Request failed: ${response.status}`);
console.log(await response.text());This gateway API is in preview; its URL and authentication may change. The example parameters are sample data. Calls are billed at free, including the service fee.