For Uploadcare uploads from URLs, use the sync variant or poll until the file is ready, async uploads are not instant. Build delivery URLs from the file UUID on your project's CDN subdomain, and do not hand-roll your own multipart logic for big files, the client already switches upload methods by size.

Context: Official pyuploadcare docs (core_api.rst): documents the two upload gotchas agents hit. First, the File.upload method picks direct or multipart upload automatically based on file size, so large-file pipelines do not need special handling, but uploads from a URL are asynchronous and need upload_from_url_sync or polling before the file is usable. Second, files live behind a CDN base that defaults to https://ucarecdn.com/ but should be your project subdomain for consistency, and the canonical delivery URL is the file UUID on that CDN host.