Upload File - AudioShake Developers

Documentation Index

Fetch the complete documentation index at: /llms.txt

Use this file to discover all available pages before exploring further.

Upload File

cURL

curl --request POST \
  --url https://api.audioshake.ai/assets \
  --header 'Content-Type: multipart/form-data' \
  --header 'x-api-key: <api-key>' \
  --form file='@example-file'

Python

import requests

url = "https://api.audioshake.ai/assets"

files = { "file": ("example-file", open("example-file", "rb")) }
headers = {"x-api-key": "<api-key>"}

response = requests.post(url, files=files, headers=headers)

print(response.text)

JavaScript (Fetch)

const form = new FormData();
form.append('file', '<string>');

const options = {method: 'POST', headers: {'x-api-key': '<api-key>'}};

options.body = form;

fetch('https://api.audioshake.ai/assets', options)
  .then(res => res.json())
  .then(res => console.log(res))
  .catch(err => console.error(err));

PHP

<?php

$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://api.audioshake.ai/assets",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS => "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"file\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n<string>\r\n-----011000010111000001101001--",
  CURLOPT_HTTPHEADER => [
    "Content-Type: multipart/form-data",
    "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;
}
?>

Go

package main

import (
    "fmt"
    "strings"
    "net/http"
    "io"
)

func main() {

url := "https://api.audioshake.ai/assets"

payload := strings.NewReader("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"file\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n<string>\r\n-----011000010111000001101001--")

req, _ := http.NewRequest("POST", url, payload)

req.Header.Add("x-api-key", "<api-key>")

res, _ := http.DefaultClient.Do(req)

defer res.Body.Close()
    body, _ := io.ReadAll(res.Body)

fmt.Println(string(body))
}

Java (Unirest)

HttpResponse<String> response = Unirest.post("https://api.audioshake.ai/assets")
  .header("x-api-key", "<api-key>")
  .body("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"file\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n<string>\r\n-----011000010111000001101001--")
  .asString();

Ruby

require 'uri'
require 'net/http'

url = URI("https://api.audioshake.ai/assets")

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.body = "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"file\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n<string>\r\n-----011000010111000001101001--"

response = http.request(request)
puts response.read_body

Response

200

{
  "id": "<string>",
  "format": "<string>",
  "name": "<string>"
}

Upload a media file to create a new Asset. The returned id can be used as assetId when creating a Task.

Maximum file size is 2GB. Uploaded Assets expire after 72 hours.

The "Try it" tool on this page has a 5MB upload limit. To upload larger files, use the API directly via curl, Python, or your preferred HTTP client.

Authorizations

Headers Type Required
x-api-key string yes

Body

Name Type Required Description
file file yes The uploaded file data. Supported audio formats only. (e.g. wav, aiff, flac, mp3)

Response

Status Code Content Type Description
200 application/json Default Response
Field Type Description
id string Unique identifier of the Asset. Use this id as assetId when creating a Task.
format string Format of the output file
name string Name of the Asset