Remote URL upload
curl --request POST \
--url https://app-api.autorender.io/api/v1/uploads/remote \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"remote_url": "<string>",
"file_name": "<string>",
"folder": "<string>",
"tags": [
"<string>"
],
"random_prefix": "<string>",
"custom_id": "<string>",
"metadata": "<string>",
"webhook_url": "<string>"
}
'import requests
url = "https://app-api.autorender.io/api/v1/uploads/remote"
payload = {
"remote_url": "<string>",
"file_name": "<string>",
"folder": "<string>",
"tags": ["<string>"],
"random_prefix": "<string>",
"custom_id": "<string>",
"metadata": "<string>",
"webhook_url": "<string>"
}
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({
remote_url: '<string>',
file_name: '<string>',
folder: '<string>',
tags: ['<string>'],
random_prefix: '<string>',
custom_id: '<string>',
metadata: '<string>',
webhook_url: '<string>'
})
};
fetch('https://app-api.autorender.io/api/v1/uploads/remote', 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://app-api.autorender.io/api/v1/uploads/remote",
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([
'remote_url' => '<string>',
'file_name' => '<string>',
'folder' => '<string>',
'tags' => [
'<string>'
],
'random_prefix' => '<string>',
'custom_id' => '<string>',
'metadata' => '<string>',
'webhook_url' => '<string>'
]),
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://app-api.autorender.io/api/v1/uploads/remote"
payload := strings.NewReader("{\n \"remote_url\": \"<string>\",\n \"file_name\": \"<string>\",\n \"folder\": \"<string>\",\n \"tags\": [\n \"<string>\"\n ],\n \"random_prefix\": \"<string>\",\n \"custom_id\": \"<string>\",\n \"metadata\": \"<string>\",\n \"webhook_url\": \"<string>\"\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://app-api.autorender.io/api/v1/uploads/remote")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"remote_url\": \"<string>\",\n \"file_name\": \"<string>\",\n \"folder\": \"<string>\",\n \"tags\": [\n \"<string>\"\n ],\n \"random_prefix\": \"<string>\",\n \"custom_id\": \"<string>\",\n \"metadata\": \"<string>\",\n \"webhook_url\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app-api.autorender.io/api/v1/uploads/remote")
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 \"remote_url\": \"<string>\",\n \"file_name\": \"<string>\",\n \"folder\": \"<string>\",\n \"tags\": [\n \"<string>\"\n ],\n \"random_prefix\": \"<string>\",\n \"custom_id\": \"<string>\",\n \"metadata\": \"<string>\",\n \"webhook_url\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"file_no": "<string>",
"workspace_id": "<string>",
"name": "<string>",
"path": "<string>",
"url": "<string>",
"width": 0,
"height": 0,
"size": 0,
"mime_type": "<string>",
"tags": [
"<string>"
],
"metadata": {},
"custom_id": "<string>",
"folder_no": "<string>",
"is_duplicate": true,
"created_at": "2023-11-07T05:31:56Z",
"upload_source": "<string>",
"thumbnail": "<string>",
"extension": "<string>",
"format": "<string>",
"hash": "<string>",
"is_private": true
}{
"error": "<string>",
"success": true,
"errorCode": "<string>",
"message": "<string>"
}{
"error": "<string>",
"message": "<string>"
}{
"error": "<string>",
"success": true,
"errorCode": "<string>",
"message": "<string>"
}{
"error": "<string>",
"success": true,
"errorCode": "<string>",
"message": "<string>"
}Upload
Remote URL upload
Fetch a file from a remote URL and store it in your Autorender workspace.
POST
/
api
/
v1
/
uploads
/
remote
Remote URL upload
curl --request POST \
--url https://app-api.autorender.io/api/v1/uploads/remote \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"remote_url": "<string>",
"file_name": "<string>",
"folder": "<string>",
"tags": [
"<string>"
],
"random_prefix": "<string>",
"custom_id": "<string>",
"metadata": "<string>",
"webhook_url": "<string>"
}
'import requests
url = "https://app-api.autorender.io/api/v1/uploads/remote"
payload = {
"remote_url": "<string>",
"file_name": "<string>",
"folder": "<string>",
"tags": ["<string>"],
"random_prefix": "<string>",
"custom_id": "<string>",
"metadata": "<string>",
"webhook_url": "<string>"
}
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({
remote_url: '<string>',
file_name: '<string>',
folder: '<string>',
tags: ['<string>'],
random_prefix: '<string>',
custom_id: '<string>',
metadata: '<string>',
webhook_url: '<string>'
})
};
fetch('https://app-api.autorender.io/api/v1/uploads/remote', 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://app-api.autorender.io/api/v1/uploads/remote",
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([
'remote_url' => '<string>',
'file_name' => '<string>',
'folder' => '<string>',
'tags' => [
'<string>'
],
'random_prefix' => '<string>',
'custom_id' => '<string>',
'metadata' => '<string>',
'webhook_url' => '<string>'
]),
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://app-api.autorender.io/api/v1/uploads/remote"
payload := strings.NewReader("{\n \"remote_url\": \"<string>\",\n \"file_name\": \"<string>\",\n \"folder\": \"<string>\",\n \"tags\": [\n \"<string>\"\n ],\n \"random_prefix\": \"<string>\",\n \"custom_id\": \"<string>\",\n \"metadata\": \"<string>\",\n \"webhook_url\": \"<string>\"\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://app-api.autorender.io/api/v1/uploads/remote")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"remote_url\": \"<string>\",\n \"file_name\": \"<string>\",\n \"folder\": \"<string>\",\n \"tags\": [\n \"<string>\"\n ],\n \"random_prefix\": \"<string>\",\n \"custom_id\": \"<string>\",\n \"metadata\": \"<string>\",\n \"webhook_url\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app-api.autorender.io/api/v1/uploads/remote")
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 \"remote_url\": \"<string>\",\n \"file_name\": \"<string>\",\n \"folder\": \"<string>\",\n \"tags\": [\n \"<string>\"\n ],\n \"random_prefix\": \"<string>\",\n \"custom_id\": \"<string>\",\n \"metadata\": \"<string>\",\n \"webhook_url\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"file_no": "<string>",
"workspace_id": "<string>",
"name": "<string>",
"path": "<string>",
"url": "<string>",
"width": 0,
"height": 0,
"size": 0,
"mime_type": "<string>",
"tags": [
"<string>"
],
"metadata": {},
"custom_id": "<string>",
"folder_no": "<string>",
"is_duplicate": true,
"created_at": "2023-11-07T05:31:56Z",
"upload_source": "<string>",
"thumbnail": "<string>",
"extension": "<string>",
"format": "<string>",
"hash": "<string>",
"is_private": true
}{
"error": "<string>",
"success": true,
"errorCode": "<string>",
"message": "<string>"
}{
"error": "<string>",
"message": "<string>"
}{
"error": "<string>",
"success": true,
"errorCode": "<string>",
"message": "<string>"
}{
"error": "<string>",
"success": true,
"errorCode": "<string>",
"message": "<string>"
}Key type: accepts your public key or a private key. Uploading is the one thing a
public key may do, so this endpoint works from browser and mobile code — see
key types and scope.
Overview
Fetches a file from a public HTTP or HTTPS URL on our servers and stores it in your workspace. Use this when the file already lives on another server and you don’t want to download it locally first.Required request
Headers
| Header | Value |
|---|---|
Authorization | Bearer YOUR_API_KEY |
Content-Type | application/json |
Body fields
| Field | Required | Description |
|---|---|---|
remote_url | Yes | Public HTTP or HTTPS URL of the file to fetch |
folder | No | Destination path for the file (e.g. products/shoes) |
tags | No | Comma-separated labels you can filter by later (e.g. hero,banner) |
transform | No | Transformation string applied as the file is stored (e.g. w_800,h_600,c_crop) |
metadata | No | JSON string of custom fields (e.g. {"source":"shopify"}) |
custom_id | No | Your own reference ID for the file |
random_prefix | No | Set to "true" to append a random suffix to the stored name so filenames don’t collide |
Minimal example
curl -X POST \
https://upload.autorender.io/api/v1/uploads/remote \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"remote_url": "https://example.com/product.jpg"}'
Example with options
curl -X POST \
https://upload.autorender.io/api/v1/uploads/remote \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"remote_url": "https://example.com/product.jpg",
"folder": "products/shoes",
"tags": "imported,shopify",
"transform": "w_1200,f_auto,q_auto"
}'
Next steps
Direct upload
Upload a file’s bytes directly from your backend.
List files
Page through the files in your workspace.
Authorizations
API key for public endpoints. Can also be provided via Authorization: Bearer
Body
application/json
HTTP/HTTPS URL to fetch
Override file name
Destination folder path
Tags array or comma-separated string
true/false to append random suffix
JSON string of metadata object
Response
Upload created
Upload created
Required range:
-9007199254740991 <= x <= 9007199254740991Required range:
-9007199254740991 <= x <= 9007199254740991Required range:
-9007199254740991 <= x <= 9007199254740991Show child attributes
Show child attributes
Pattern:
^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$Was this page helpful?