Are you using the FileData property instead of the InlineData? Also, do you specify the MIME type?
Kindly note that files uploaded to File API have a limited lifetime of 48 hours only, and are deleted automatically.
Here’s the payload I generate with my SDK for .NET (built from scratch using the REST calls). Maybe it gives you an idea.
The file header parameter ‘Content Type’ should be set to a file format like ‘video/mp4’ instead of the example ‘Content Type: application/json’ provided by Gemini