Create presigned upload URL
curl --request POST \
--url https://api.aurigin.ai/v1/file \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"keys": [
"uploads/audio/pred_abc123.wav",
"uploads/audio/pred_def456.wav"
],
"entity": "analysis"
}
'import requests
url = "https://api.aurigin.ai/v1/file"
payload = {
"keys": ["uploads/audio/pred_abc123.wav", "uploads/audio/pred_def456.wav"],
"entity": "analysis"
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
keys: ['uploads/audio/pred_abc123.wav', 'uploads/audio/pred_def456.wav'],
entity: 'analysis'
})
};
fetch('https://api.aurigin.ai/v1/file', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.aurigin.ai/v1/file",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'keys' => [
'uploads/audio/pred_abc123.wav',
'uploads/audio/pred_def456.wav'
],
'entity' => 'analysis'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.aurigin.ai/v1/file"
payload := strings.NewReader("{\n \"keys\": [\n \"uploads/audio/pred_abc123.wav\",\n \"uploads/audio/pred_def456.wav\"\n ],\n \"entity\": \"analysis\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.aurigin.ai/v1/file")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"keys\": [\n \"uploads/audio/pred_abc123.wav\",\n \"uploads/audio/pred_def456.wav\"\n ],\n \"entity\": \"analysis\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.aurigin.ai/v1/file")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"keys\": [\n \"uploads/audio/pred_abc123.wav\",\n \"uploads/audio/pred_def456.wav\"\n ],\n \"entity\": \"analysis\"\n}"
response = http.request(request)
puts response.read_body{
"url": [
{
"key": "uploads/audio/pred_abc123.wav",
"value": "https://aurigin-uploads.s3.amazonaws.com/uploads/audio/pred_abc123.wav?X-Amz-Algorithm=AWS4-HMAC-SHA256&..."
}
]
}{
"error": "validation_error",
"message": "Unsupported audio format",
"status": 400,
"correlation_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}{
"error": "validation_error",
"message": "Unsupported audio format",
"status": 400,
"correlation_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}{
"error": "validation_error",
"message": "Unsupported audio format",
"status": 400,
"correlation_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}{
"error": "validation_error",
"message": "Unsupported audio format",
"status": 400,
"correlation_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}Deepfake detection
Create presigned upload URL
Generate presigned upload URLs for one or more objects so files can be streamed directly to storage. Use this when preparing large uploads for the asynchronous workflow.
POST
/
file
Create presigned upload URL
curl --request POST \
--url https://api.aurigin.ai/v1/file \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"keys": [
"uploads/audio/pred_abc123.wav",
"uploads/audio/pred_def456.wav"
],
"entity": "analysis"
}
'import requests
url = "https://api.aurigin.ai/v1/file"
payload = {
"keys": ["uploads/audio/pred_abc123.wav", "uploads/audio/pred_def456.wav"],
"entity": "analysis"
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
keys: ['uploads/audio/pred_abc123.wav', 'uploads/audio/pred_def456.wav'],
entity: 'analysis'
})
};
fetch('https://api.aurigin.ai/v1/file', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.aurigin.ai/v1/file",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'keys' => [
'uploads/audio/pred_abc123.wav',
'uploads/audio/pred_def456.wav'
],
'entity' => 'analysis'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.aurigin.ai/v1/file"
payload := strings.NewReader("{\n \"keys\": [\n \"uploads/audio/pred_abc123.wav\",\n \"uploads/audio/pred_def456.wav\"\n ],\n \"entity\": \"analysis\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.aurigin.ai/v1/file")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"keys\": [\n \"uploads/audio/pred_abc123.wav\",\n \"uploads/audio/pred_def456.wav\"\n ],\n \"entity\": \"analysis\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.aurigin.ai/v1/file")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"keys\": [\n \"uploads/audio/pred_abc123.wav\",\n \"uploads/audio/pred_def456.wav\"\n ],\n \"entity\": \"analysis\"\n}"
response = http.request(request)
puts response.read_body{
"url": [
{
"key": "uploads/audio/pred_abc123.wav",
"value": "https://aurigin-uploads.s3.amazonaws.com/uploads/audio/pred_abc123.wav?X-Amz-Algorithm=AWS4-HMAC-SHA256&..."
}
]
}{
"error": "validation_error",
"message": "Unsupported audio format",
"status": 400,
"correlation_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}{
"error": "validation_error",
"message": "Unsupported audio format",
"status": 400,
"correlation_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}{
"error": "validation_error",
"message": "Unsupported audio format",
"status": 400,
"correlation_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}{
"error": "validation_error",
"message": "Unsupported audio format",
"status": 400,
"correlation_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}⌘I