Upload: Mark as complete
/videos/upload/completeMark a video upload as complete after successful upload to storage using API key authentication
Authorization
ApiKeyAuth Internal API key for service-to-service communication.
In: header
Request Body
requiredapplication/json{
"video_id": "VI9VXQxWXQ"
}Response Body
200application/json
OK
type: object
400application/json
Invalid request body
type: object
HTTP status code
Optional details about the error
Error message describing what went wrong
401application/json
Unauthorized - Invalid API key
type: object
HTTP status code
Optional details about the error
Error message describing what went wrong
403application/json
Access denied
type: object
HTTP status code
Optional details about the error
Error message describing what went wrong
404application/json
File not found
type: object
HTTP status code
Optional details about the error
Error message describing what went wrong
500application/json
Failed to complete upload
type: object
HTTP status code
Optional details about the error
Error message describing what went wrong
curl -X POST "https://api.rixl.com/images/upload/complete" \
-H "Content-Type: application/json" \
-d '{}'const body = JSON.stringify({})
fetch("https://api.rixl.com/images/upload/complete", {
method: "POST",
headers: {
"Content-Type": "application/json"
},
body
})package main
import (
"fmt"
"net/http"
"io/ioutil"
"strings"
)
func main() {
url := "https://api.rixl.com/images/upload/complete"
body := strings.NewReader(`{}`)
req, _ := http.NewRequest("POST", url, body)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := ioutil.ReadAll(res.Body)
fmt.Println(res)
fmt.Println(string(body))
}import requests
url = "https://api.rixl.com/images/upload/complete"
body = """{}"""
response = requests.request("POST", url, data = body, headers = {
"Content-Type": "application/json"
})
print(response.text)import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.http.HttpResponse.BodyHandlers;
import java.time.Duration;
import java.net.http.HttpRequest.BodyPublishers;
var body = BodyPublishers.ofString("""{}""");
HttpClient client = HttpClient.newBuilder()
.connectTimeout(Duration.ofSeconds(10))
.build();
HttpRequest.Builder requestBuilder = HttpRequest.newBuilder()
.uri(URI.create("https://api.rixl.com/images/upload/complete"))
.header("Content-Type", "application/json")
.POST(body)
.build();
try {
HttpResponse<String> response = client.send(requestBuilder.build(), BodyHandlers.ofString());
System.out.println("Status code: " + response.statusCode());
System.out.println("Response body: " + response.body());
} catch (Exception e) {
e.printStackTrace();
}using System;
using System.Net.Http;
using System.Text;
var body = new StringContent("""
{}
""", Encoding.UTF8, "application/json");
var client = new HttpClient();
var response = await client.PostAsync("https://api.rixl.com/images/upload/complete", body);
var responseBody = await response.Content.ReadAsStringAsync();OK
application/json
{
"bitrate": 0,
"chapters": [
{
"duration_label": "02:25",
"end_time_sec": 145,
"start_time_sec": 0,
"title": "Introduction"
}
],
"codec": "string",
"duration": 0,
"file": {
"created_at": "2025-01-01T00:00:00Z",
"format": "avif",
"id": "FpvLwyDMqu",
"name": "original.jpeg",
"project_id": "Bq4y3QB38S",
"size": 1048576,
"status": "ready",
"updated_at": "2025-01-01T00:00:00Z",
"url": "https://images.rixl.com/Bq4y3QB38S/FpvLwyDMqu"
},
"framerate": "string",
"hdr": true,
"height": 0,
"id": "string",
"plan_type": "free",
"poster": {
"attached_to_video": false,
"file": {
"created_at": "2025-01-01T00:00:00Z",
"format": "avif",
"id": "FpvLwyDMqu",
"name": "original.jpeg",
"project_id": "Bq4y3QB38S",
"size": 1048576,
"status": "ready",
"updated_at": "2025-01-01T00:00:00Z",
"url": "https://images.rixl.com/Bq4y3QB38S/FpvLwyDMqu"
},
"height": 1080,
"id": "PS5IMKoFLm",
"thumbhash": "1QcSHQRnh493V4dIh4eXh1h4kJUI",
"width": 1920
},
"width": 0
}Invalid request body
application/json
{
"code": 400,
"details": "The provided ID is not valid",
"error": "Invalid request body"
}Unauthorized - Invalid API key
application/json
{
"code": 401,
"details": "The provided ID is not valid",
"error": "Unauthorized - Invalid API key"
}Access denied
application/json
{
"code": 403,
"details": "The provided ID is not valid",
"error": "Access denied"
}File not found
application/json
{
"code": 404,
"details": "The provided ID is not valid",
"error": "File not found"
}Failed to complete upload
application/json
{
"code": 500,
"details": "The provided ID is not valid",
"error": "Failed to complete upload"
}