Create a file
Creates a new file from a file upload or a URL.
curl -X POST "https://api.fetchmedia.io/v1/files" \
-H "Content-Type: application/json" \
-H "X-API-KEY: YOUR_API_KEY"
import requests
import json
url = "https://api.fetchmedia.io/v1/files"
headers = {
"Content-Type": "application/json",
"X-API-KEY": "YOUR_API_KEY"
}
response = requests.post(url, headers=headers)
print(response.json())
const response = await fetch("https://api.fetchmedia.io/v1/files", {
method: "POST",
headers: {
"Content-Type": "application/json",
"X-API-KEY": "YOUR_API_KEY"
}
});
const data = await response.json();
console.log(data);
package main
import (
"fmt"
"net/http"
"bytes"
)
func main() {
req, err := http.NewRequest("POST", "https://api.fetchmedia.io/v1/files", nil)
if err != nil {
panic(err)
}
req.Header.Set("Content-Type", "application/json")
req.Header.Set("X-API-KEY", "YOUR_API_KEY")
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
fmt.Println("Response Status:", resp.Status)
}
require 'net/http'
require 'json'
uri = URI('https://api.fetchmedia.io/v1/files')
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
request = Net::HTTP::Post.new(uri)
request['Content-Type'] = 'application/json'
request['X-API-KEY'] = 'YOUR_API_KEY'
response = http.request(request)
puts response.body
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"name": "file.mp4",
"source": "upload",
"status": "pending | running | success | failed",
"created_at": "2024-12-25T10:00:00Z",
"download_url": "https://api.fetchmedia.io/v1/files/123e4567-e89b-12d3-a456-426614174000/file.mp4",
"error": "File processing failed: unsupported format",
"ffprobe": {
"width": 1920,
"height": 1080,
"duration": 120.5,
"format_name": "mov,mp4,m4a,3gp,3g2,mj2"
},
"ffprobe_error": "ffprobe failed: invalid data found when processing input"
}
{
"error": "Unprocessable Entity",
"message": "The request was well-formed but contains semantic errors",
"code": 422,
"details": [
{
"field": "password",
"message": "Password must be at least 8 characters long"
}
]
}
POST
/files
POST
API Key (header: X-API-KEY)
X-API-KEYstring
RequiredAPI key (sent in header)
API Key (query: key)
keystring
RequiredAPI key (sent in query)
Content-Typestring
RequiredThe media type of the request body
Options: multipart/form-data
filestring
The file to upload.
Format: binary
file_urlstring
The URL of the public file to upload.
Format: url
Request Preview
Response
Response will appear here after sending the request
Authentication
header
X-API-KEYstring
RequiredAPI Key for authentication. Provide your API key in the header.
query
keystring
RequiredAPI Key for authentication. Provide your API key in the query.
Body
multipart/form-data
filefile
The file to upload.
file_urlstring
The URL of the public file to upload.
Responses
idstring
The ID of the file.
namestring
The name of the file.
sourcestring
The source of the file.
statusstring
The status of the file processing.
created_atstring
The creation time of the file.
download_urlstring
The URL of the file.
errorstring
The error message if the file processing failed.
ffprobeobject
The ffprobe of the file.
ffprobe_errorstring
The ffprobe error message if ffprobe failed.
errorstring
Was this page helpful?
Last updated Feb 20, 2026
Built with Documentation.AI