curl --request POST \
--url https://{defaultHost}/v1/downloads \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"download": {
"media": "963dbb27-f2be-44c4-b412-8b63433bc75c",
"product": "ee89ffc7-bf6a-457d-9b41-ee8a7efcc7b4"
}
}
'import requests
url = "https://{defaultHost}/v1/downloads"
payload = { "download": {
"media": "963dbb27-f2be-44c4-b412-8b63433bc75c",
"product": "ee89ffc7-bf6a-457d-9b41-ee8a7efcc7b4"
} }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
download: {
media: '963dbb27-f2be-44c4-b412-8b63433bc75c',
product: 'ee89ffc7-bf6a-457d-9b41-ee8a7efcc7b4'
}
})
};
fetch('https://{defaultHost}/v1/downloads', 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://{defaultHost}/v1/downloads",
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([
'download' => [
'media' => '963dbb27-f2be-44c4-b412-8b63433bc75c',
'product' => 'ee89ffc7-bf6a-457d-9b41-ee8a7efcc7b4'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$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://{defaultHost}/v1/downloads"
payload := strings.NewReader("{\n \"download\": {\n \"media\": \"963dbb27-f2be-44c4-b412-8b63433bc75c\",\n \"product\": \"ee89ffc7-bf6a-457d-9b41-ee8a7efcc7b4\"\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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://{defaultHost}/v1/downloads")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"download\": {\n \"media\": \"963dbb27-f2be-44c4-b412-8b63433bc75c\",\n \"product\": \"ee89ffc7-bf6a-457d-9b41-ee8a7efcc7b4\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{defaultHost}/v1/downloads")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"download\": {\n \"media\": \"963dbb27-f2be-44c4-b412-8b63433bc75c\",\n \"product\": \"ee89ffc7-bf6a-457d-9b41-ee8a7efcc7b4\"\n }\n}"
response = http.request(request)
puts response.read_body{
"id": "18057c7d-336d-4710-af12-3b166ad52973",
"object": "download",
"alt": null,
"archived": false,
"archived_at": null,
"name": null,
"title": null,
"url": null,
"media": "963dbb27-f2be-44c4-b412-8b63433bc75c",
"product": "ee89ffc7-bf6a-457d-9b41-ee8a7efcc7b4",
"variant": null,
"created_at": 1787228377,
"updated_at": 1787228377
}Create
Creates a new download.
curl --request POST \
--url https://{defaultHost}/v1/downloads \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"download": {
"media": "963dbb27-f2be-44c4-b412-8b63433bc75c",
"product": "ee89ffc7-bf6a-457d-9b41-ee8a7efcc7b4"
}
}
'import requests
url = "https://{defaultHost}/v1/downloads"
payload = { "download": {
"media": "963dbb27-f2be-44c4-b412-8b63433bc75c",
"product": "ee89ffc7-bf6a-457d-9b41-ee8a7efcc7b4"
} }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
download: {
media: '963dbb27-f2be-44c4-b412-8b63433bc75c',
product: 'ee89ffc7-bf6a-457d-9b41-ee8a7efcc7b4'
}
})
};
fetch('https://{defaultHost}/v1/downloads', 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://{defaultHost}/v1/downloads",
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([
'download' => [
'media' => '963dbb27-f2be-44c4-b412-8b63433bc75c',
'product' => 'ee89ffc7-bf6a-457d-9b41-ee8a7efcc7b4'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$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://{defaultHost}/v1/downloads"
payload := strings.NewReader("{\n \"download\": {\n \"media\": \"963dbb27-f2be-44c4-b412-8b63433bc75c\",\n \"product\": \"ee89ffc7-bf6a-457d-9b41-ee8a7efcc7b4\"\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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://{defaultHost}/v1/downloads")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"download\": {\n \"media\": \"963dbb27-f2be-44c4-b412-8b63433bc75c\",\n \"product\": \"ee89ffc7-bf6a-457d-9b41-ee8a7efcc7b4\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{defaultHost}/v1/downloads")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"download\": {\n \"media\": \"963dbb27-f2be-44c4-b412-8b63433bc75c\",\n \"product\": \"ee89ffc7-bf6a-457d-9b41-ee8a7efcc7b4\"\n }\n}"
response = http.request(request)
puts response.read_body{
"id": "18057c7d-336d-4710-af12-3b166ad52973",
"object": "download",
"alt": null,
"archived": false,
"archived_at": null,
"name": null,
"title": null,
"url": null,
"media": "963dbb27-f2be-44c4-b412-8b63433bc75c",
"product": "ee89ffc7-bf6a-457d-9b41-ee8a7efcc7b4",
"variant": null,
"created_at": 1787228377,
"updated_at": 1787228377
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Body
Show child attributes
Show child attributes
Response
Success
The UUID of the specific object.
A string describing the object type returned.
The HTML alt attribute for the download.
Whether or not this download is archived.
The name of this download which will be visible to customers. This is required if a url is used instead of attaching a Media record.
The HTML title attribute for the download.
Instead of attaching a Media record a public URL can be set. If set, customers will be directed to this URL.
Time at which the object was archived. Measured in seconds since the Unix epoch.
Expandable – The associated media ID.
Expandable – The associated product ID.
Expandable – The associated variant ID.
Time at which the object was created. Measured in seconds since the Unix epoch.
Time at which the object was last updated. Measured in seconds since the Unix epoch.
Was this page helpful?