Files
Queue a bulk profile-file assignment
Queues a background job that sets or unsets recipient profile photos for the authenticated admin’s client. The controller validates that all selected uploads belong to the client, are image files, belong to recipients, and include at most one file per recipient. Requires admin file access through user.permissions.
POST
/
files
/
profile
/
bulk
Queue a bulk profile-file assignment
curl --request POST \
--url https://api.gratona.com/v1/files/profile/bulk \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"upload_ids": [
815
],
"operation": "set"
}
'import requests
url = "https://api.gratona.com/v1/files/profile/bulk"
payload = {
"upload_ids": [815],
"operation": "set"
}
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({upload_ids: [815], operation: 'set'})
};
fetch('https://api.gratona.com/v1/files/profile/bulk', 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.gratona.com/v1/files/profile/bulk",
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([
'upload_ids' => [
815
],
'operation' => 'set'
]),
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://api.gratona.com/v1/files/profile/bulk"
payload := strings.NewReader("{\n \"upload_ids\": [\n 815\n ],\n \"operation\": \"set\"\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://api.gratona.com/v1/files/profile/bulk")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"upload_ids\": [\n 815\n ],\n \"operation\": \"set\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.gratona.com/v1/files/profile/bulk")
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 \"upload_ids\": [\n 815\n ],\n \"operation\": \"set\"\n}"
response = http.request(request)
puts response.read_body{
"message": "Your profile file update is being processed in the background."
}{
"message": "Unauthorized",
"status": "error"
}{
"errors": {},
"status": "error",
"message": "The given data was invalid."
}Authorizations
bearerAuthapiKeyAuth
Passport bearer token authentication for legacy admin sessions.
Body
application/json
Required array of upload IDs. Every selected upload must belong to the current client and be an image attached to a recipient.
Minimum array length:
1Nullable string. Defaults to set; use unset to remove current profile assignments.
Available options:
set, unset Example:
"set"
Response
Profile assignment job queued.
Example:
"Your profile file update is being processed in the background."
⌘I
Queue a bulk profile-file assignment
curl --request POST \
--url https://api.gratona.com/v1/files/profile/bulk \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"upload_ids": [
815
],
"operation": "set"
}
'import requests
url = "https://api.gratona.com/v1/files/profile/bulk"
payload = {
"upload_ids": [815],
"operation": "set"
}
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({upload_ids: [815], operation: 'set'})
};
fetch('https://api.gratona.com/v1/files/profile/bulk', 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.gratona.com/v1/files/profile/bulk",
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([
'upload_ids' => [
815
],
'operation' => 'set'
]),
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://api.gratona.com/v1/files/profile/bulk"
payload := strings.NewReader("{\n \"upload_ids\": [\n 815\n ],\n \"operation\": \"set\"\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://api.gratona.com/v1/files/profile/bulk")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"upload_ids\": [\n 815\n ],\n \"operation\": \"set\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.gratona.com/v1/files/profile/bulk")
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 \"upload_ids\": [\n 815\n ],\n \"operation\": \"set\"\n}"
response = http.request(request)
puts response.read_body{
"message": "Your profile file update is being processed in the background."
}{
"message": "Unauthorized",
"status": "error"
}{
"errors": {},
"status": "error",
"message": "The given data was invalid."
}