curl --request POST \
--url https://api.ionworks.com/organizations/{organization_id}/logo/confirm-upload \
--header 'Content-Type: application/json' \
--data '
{
"content_type": "<string>"
}
'import requests
url = "https://api.ionworks.com/organizations/{organization_id}/logo/confirm-upload"
payload = { "content_type": "<string>" }
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({content_type: '<string>'})
};
fetch('https://api.ionworks.com/organizations/{organization_id}/logo/confirm-upload', 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.ionworks.com/organizations/{organization_id}/logo/confirm-upload",
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([
'content_type' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"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.ionworks.com/organizations/{organization_id}/logo/confirm-upload"
payload := strings.NewReader("{\n \"content_type\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
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.ionworks.com/organizations/{organization_id}/logo/confirm-upload")
.header("Content-Type", "application/json")
.body("{\n \"content_type\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.ionworks.com/organizations/{organization_id}/logo/confirm-upload")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"content_type\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"name": "<string>",
"slug": "<string>",
"usage_limit": {},
"nav_config": {},
"plotting_preferences": "<string>",
"logo_path": "<string>",
"logo_path_dark": "<string>",
"user_organization_roles": [
{
"organization_id": "<string>",
"user_id": "<string>",
"users": {
"id": "<string>",
"email": "<string>"
},
"organization_role_id": "<string>",
"organization_roles": {
"name": "<string>",
"id": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"organization_role_permissions": [
{}
]
},
"deactivated_at": "2023-11-07T05:31:56Z"
}
],
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Confirm a signed-URL logo upload
Record an uploaded logo, replacing any existing one of that variant.
The storage path is recomputed server-side from organization_id, the
content type, and the variant; a client-supplied path is never trusted.
Returns the updated organization so the client can refresh its cache without
a follow-up read.
curl --request POST \
--url https://api.ionworks.com/organizations/{organization_id}/logo/confirm-upload \
--header 'Content-Type: application/json' \
--data '
{
"content_type": "<string>"
}
'import requests
url = "https://api.ionworks.com/organizations/{organization_id}/logo/confirm-upload"
payload = { "content_type": "<string>" }
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({content_type: '<string>'})
};
fetch('https://api.ionworks.com/organizations/{organization_id}/logo/confirm-upload', 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.ionworks.com/organizations/{organization_id}/logo/confirm-upload",
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([
'content_type' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"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.ionworks.com/organizations/{organization_id}/logo/confirm-upload"
payload := strings.NewReader("{\n \"content_type\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
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.ionworks.com/organizations/{organization_id}/logo/confirm-upload")
.header("Content-Type", "application/json")
.body("{\n \"content_type\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.ionworks.com/organizations/{organization_id}/logo/confirm-upload")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"content_type\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"name": "<string>",
"slug": "<string>",
"usage_limit": {},
"nav_config": {},
"plotting_preferences": "<string>",
"logo_path": "<string>",
"logo_path_dark": "<string>",
"user_organization_roles": [
{
"organization_id": "<string>",
"user_id": "<string>",
"users": {
"id": "<string>",
"email": "<string>"
},
"organization_role_id": "<string>",
"organization_roles": {
"name": "<string>",
"id": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"organization_role_permissions": [
{}
]
},
"deactivated_at": "2023-11-07T05:31:56Z"
}
],
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Path Parameters
Query Parameters
Which mark to address: 'light' (the default) or 'dark'. On the GET, an unset variant falls back to the other one.
light, dark Body
Record a logo that has been uploaded to its signed URL.
MIME type used for the upload. Must match the initiate request, since it determines the path the object was written to.
Response
Successful Response
Pydantic model for an organization.
Monthly usage limit
Show child attributes
Show child attributes
Per-organization nav config: { '': { 'show': bool, 'disabled': bool, 'badgeLabel': str | None, 'badgeTooltip': str | None } }
Free-text markdown describing how this organization wants the battery agent to format plots; injected into the agent's system prompt each turn. None means not set (nothing is injected).
Storage object path of the light-mode organization logo, or None when unset. Not a URL: the bucket is private, so clients fetch the image from GET /organizations/{id}/logo, which returns a signed URL. Set via POST /organizations/{id}/logo, not via PATCH.
Storage object path of the dark-mode organization logo, or None when unset. Optional: dark mode falls back to logo_path when this is None, and light mode falls back to this when logo_path is None. Set via POST /organizations/{id}/logo?variant=dark.
List of user organization roles
Show child attributes
Show child attributes
Timestamp of creation
Timestamp of last update
Was this page helpful?