Create Upload URL - Beeble API Documentation

Create Upload URL

cURL

curl --request POST \
  --url https://api.beeble.ai/v1/uploads \
  --header 'Content-Type: application/json' \
  --header 'x-api-key: <api-key>' \
  --data '\n{\n  "filename": "<string>"\n}\n'\n```

### Python

import requests

url = "https://api.beeble.ai/v1/uploads"

payload = { "filename": "" } headers = { "x-api-key": "", "Content-Type": "application/json" }

response = requests.post(url, json=payload, headers=headers)

print(response.text)


### JavaScript (Fetch)

const options = { method: 'POST', headers: {'x-api-key': '', 'Content-Type': 'application/json'}, body: JSON.stringify({filename: ''}) };

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


### PHP
"https://api.beeble.ai/v1/uploads",\ 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([\ 'filename' => ''\ ]),\ CURLOPT_HTTPHEADER => [\ "Content-Type: application/json",\ "x-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.beeble.ai/v1/uploads" payload := strings.NewReader("{\n \"filename\": \"\"\n}") req, _ := http.NewRequest("POST", url, payload) req.Header.Add("x-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)) } ``` ### Unirest (Java) ``` HttpResponse response = Unirest.post("https://api.beeble.ai/v1/uploads") .header("x-api-key", "") .header("Content-Type", "application/json") .body("{\n \"filename\": \"\"\n}") .asString(); ``` ### Ruby ``` require 'uri' require 'net/http' url = URI("https://api.beeble.ai/v1/uploads") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true request = Net::HTTP::Post.new(url) request["x-api-key"] = '' request["Content-Type"] = 'application/json' request.body = "{\n \"filename\": \"\"\n}" response = http.request(request) puts response.read_body ``` ### Response ``` { "id": "", "upload_url": "", "beeble_uri": "" } ``` ### Authorizations - **x-api-key**: required ### Body - `filename` (string, required): Filename with extension (3-255 chars). Accepted: .mp4, .mov, .png, .jpg, .jpeg, .webp ### Response - **200** - application/json: Successful Response will have presigned upload URL and beeble:// URI. - `id`: (string, required) Upload ID (upload_...) - `upload_url`: (string, required) Presigned PUT URL for uploading your file. Expires after 1 hour. - `beeble_uri`: (string, required) beeble:// URI to reference this file in SwitchX generation calls.