Create presigned upload URL
curl --request POST \
--url https://api.aurigin.ai/v0/file \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"keys": [
"uploads/audio/pred_abc123.wav",
"uploads/audio/pred_xyz789.wav"
],
"entity": "analysis"
}
'import requests
url = "https://api.aurigin.ai/v0/file"
payload = {
"keys": ["uploads/audio/pred_abc123.wav", "uploads/audio/pred_xyz789.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_xyz789.wav'],
entity: 'analysis'
})
};
fetch('https://api.aurigin.ai/v0/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/v0/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_xyz789.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/v0/file"
payload := strings.NewReader("{\n \"keys\": [\n \"uploads/audio/pred_abc123.wav\",\n \"uploads/audio/pred_xyz789.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/v0/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_xyz789.wav\"\n ],\n \"entity\": \"analysis\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.aurigin.ai/v0/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_xyz789.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": "Audio file too large (max 4MB)",
"status": 400,
"correlation_id": "be7a2d19-5ef9-4472-9a21-7b90c0c8573c"
}{
"error": "validation_error",
"message": "Audio file too large (max 4MB)",
"status": 400,
"correlation_id": "be7a2d19-5ef9-4472-9a21-7b90c0c8573c"
}{
"error": "validation_error",
"message": "Audio file too large (max 4MB)",
"status": 400,
"correlation_id": "be7a2d19-5ef9-4472-9a21-7b90c0c8573c"
}Deepfake detection
Create presigned upload URL
Generate presigned upload URLs for one or more objects. Provide the target keys and associated entity to receive presigned URLs that can be used to send files to Aurigin storage.
POST
/
file
Create presigned upload URL
curl --request POST \
--url https://api.aurigin.ai/v0/file \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"keys": [
"uploads/audio/pred_abc123.wav",
"uploads/audio/pred_xyz789.wav"
],
"entity": "analysis"
}
'import requests
url = "https://api.aurigin.ai/v0/file"
payload = {
"keys": ["uploads/audio/pred_abc123.wav", "uploads/audio/pred_xyz789.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_xyz789.wav'],
entity: 'analysis'
})
};
fetch('https://api.aurigin.ai/v0/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/v0/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_xyz789.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/v0/file"
payload := strings.NewReader("{\n \"keys\": [\n \"uploads/audio/pred_abc123.wav\",\n \"uploads/audio/pred_xyz789.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/v0/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_xyz789.wav\"\n ],\n \"entity\": \"analysis\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.aurigin.ai/v0/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_xyz789.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": "Audio file too large (max 4MB)",
"status": 400,
"correlation_id": "be7a2d19-5ef9-4472-9a21-7b90c0c8573c"
}{
"error": "validation_error",
"message": "Audio file too large (max 4MB)",
"status": 400,
"correlation_id": "be7a2d19-5ef9-4472-9a21-7b90c0c8573c"
}{
"error": "validation_error",
"message": "Audio file too large (max 4MB)",
"status": 400,
"correlation_id": "be7a2d19-5ef9-4472-9a21-7b90c0c8573c"
}⌘I