> ## Documentation Index
> This page is part of the Image and Video APIs product. Fetch the complete documentation index for Image and Video APIs at: https://cloudinary.com/documentation/llms-image-and-video-apis.txt?referrer=docpage and then use it to discover all relevant pages before exploring further.
> If your task extends beyond this product, fetch the top-level index covering all Cloudinary products and topics at: https://cloudinary.com/documentation/llms.txt?referrer=docpage

# Programmatic upload tutorials

This page offers a library of short video tutorials showing how to use Cloudinary to upload assets programmatically.

[Upload Programmatically](upload_programmatically_tutorial)

Use a Cloudinary SDK to upload media assets

[Upload with Fetch API](upload_images_with_fetch_api_tutorial)

Upload images using JavaScript's Fetch API

[Create Upload Presets (Node.js)](create_upload_preset_tutorial)

Streamline media uploads using signed upload presets

[Create Upload Presets in the Console](create_upload_presets_in_console_tutorial)

Create and configure upload presets using the Console UI

[Auto Upload](auto_upload_tutorial)

Automatically upload remote images and videos to Cloudinary

[Moderate Images with AI](moderate_images_tutorial)

Moderate images automatically during upload in Node.js

[Generate Image Captions](use_ai_to_generate_image_captions_tutorial)

Automate alt text generation in a Next.js app

[Upload Images in Flutter](upload_images_in_flutter_tutorial)

Upload images to Cloudinary using the Upload API

[Upload Images in Node.js](upload_assets_in_node_tutorial)

Upload images to Cloudinary using the Node.js SDK

[Auto-Tag Images in Node.js](auto_tagging_tutorial)

Tag assets automatically during upload with AI in Node.js

[Upload Multiple Files in Node.js](upload_multiple_assets_in_node_tutorial)

Upload multiple files to Cloudinary using the Node.js SDK

[Upload Videos in Node.js](upload_videos_in_node_tutorial)

Upload videos to Cloudinary using the Node.js SDK

[Upload Images in Python](upload_images_in_python_tutorial)

Upload images to Cloudinary using the Python SDK

[Auto-Tag Images in Python](autotag_images_in_python_tutorial)

Use AI to auto-tag uploaded images with the Python SDK

[Upload Videos in Python](upload_videos_in_python_tutorial)

Upload videos to Cloudinary using the Python SDK

[Upload Images in PHP](upload_images_in_php_tutorial)

Upload images to Cloudinary using the PHP SDK

[Upload Images in Go](upload_images_in_go_tutorial)

Upload images to Cloudinary using the Go SDK

[Upload Assets in React](upload_assets_in_react_tutorial)

Upload assets using the Upload widget in a React app

[Upload Assets in Vue.js](upload_assets_in_vue_tutorial)

Upload assets using the Upload widget in a Vue.js app

[Drag-and-Drop Uploads in React](draganddrop_uploads_in_react_tutorial)

Drag-and-drop to upload in a React app

[Upload Assets in Next.js](upload_assets_in_nextjs_tutorial)

Upload assets to Cloudinary using the Next.js SDK

[Upload Assets with Server Actions](upload_assets_with_server_actions_nextjs_tutorial)

Upload assets to Cloudinary using Next.js Server Actions

[Upload Assets in Svelte](upload_assets_in_svelte_tutorial)

Upload assets to Cloudinary using the Svelte community library

[Upload Assets in SvelteKit](upload_assets_in_sveltekit_tutorial)

Upload assets using the Upload widget in a SvelteKit app

[Upload Assets in Remix](upload_assets_in_remix_tutorial)

Upload assets using the Upload widget in a Remix app

[Upload Images in Astro](upload_images_in_astro_tutorial)

Upload images from an HTML form in Astro.js

[Upload Images in Hono](hono_upload_tutorial)

Upload images to Cloudinary in a Hono environment

[Use a Webhook to Remove Backgrounds on Upload](use_webhook_to_remove_background_tutorial)

Use a webhook notification to remove image backgrounds on upload

[Upload Images in Laravel](laravel_upload_tutorial)

Upload images in Laravel with Cloudinary

