Upload a private Brand Kit logo
Send raw PNG, JPEG or WebP bytes. The server checks the parent profile, actual raster, maximum 2 MiB, maximum 4096 pixels per side and current Space allowance. Repeat the same upload with the same key to recover a committed receipt.
/api/v1/marketing/brand-kit/assetsWorkspace automation for approved Dashio products. Each token is scoped to one Space and independently granted operations. Requests spend shared minute credits, and selected operation groups also share hourly quotas.
Required token scope is marketing:brand-assets:write. Scopes are independent.
This operation uses 10 credits from a shared budget of 60 credits per token and 300 per Space each UTC minute. The file transfer group shares 24 requests per token and 60 per Space each UTC hour.
Run these examples on a trusted server with DASHIO_API_TOKEN configured. Use a private terminal when inspecting response data. Examples send one request with a bounded timeout and do not retry automatically.
Set DASHIO_IDEMPOTENCY_KEY to the persisted key for this logical write. Reuse it only for an identical retry.
Set DASHIO_UPLOAD_FILE to a local file of type image/png. The examples send its bytes directly. Use a matching Content-Type header when uploading another supported type.
Accepted request content types are image/png, image/jpeg, image/webp.
Authentication
Dashio developer token (HTTP Bearer) API authentication guide
Path parameters
None documented.
Query parameters
brandIdstring (uuid)RequiredThe parent profile in the token Space.
namestringRequiredThe logo’s display label. Minimum length: 1. Maximum length: 80.
variantstringRequiredAllowed values: "light", "dark", "mark", "other".
originalByteSizeintegerOptionalPre-optimization byte count, at least the size of the uploaded raster. Defaults to its actual size. Minimum: 1. Maximum: 8388608.
Header parameters
Idempotency-KeystringRequiredUse one unique key per request. Reuse it with the same input for seven days to recover a committed receipt. Minimum length: 16. Maximum length: 128. Pattern: ^[A-Za-z0-9_-]+$.
Request body
image/png · Required
valuestring (binary)OptionalNo field description supplied.
Responses
Headers on every response
X-Request-Idstring (uuid)OptionalServer-generated ID to include in a support request.
200
The committed logo receipt. Use the separate read permission to download it.
Response headers
RateLimit-LimitintegerOptionalPer-token capacity in the reported gateway window, expressed in requests of this operation. A shared Space budget also applies. Present when the request reaches the authenticated gateway. Minimum: 1.
RateLimit-RemainingintegerOptionalRequests of this operation remaining under the current token, Space and applicable operation-group quotas. Present when the request reaches the authenticated gateway. Minimum: 0.
RateLimit-ResetintegerOptionalUnix timestamp in seconds when the reported gateway quota resets. Present when the request reaches the authenticated gateway. Minimum: 0.
Idempotency-ReplayedstringOptionalSet to true when this response reuses a committed receipt. Required value: "true".
application/json
recordIdstring (uuid)RequiredNo field description supplied.
replayedbooleanRequiredNo field description supplied.
400
Unsupported parameters or invalid request data.
application/json
statusCodeintegerRequiredMinimum: 400. Maximum: 599.
statusMessagestringOptionalA safe explanation suitable for display.
dataobjectRequiredNo field description supplied.
401
A valid developer token is required.
Response headers
WWW-AuthenticatestringOptionalBearer authentication challenge. A rejected token can include the invalid_token error.
application/json
Uses the same response body schema as HTTP 400.
402
An active Marketing entitlement is required.
application/json
Uses the same response body schema as HTTP 400.
403
The token lacks the required Marketing grant or Space access.
application/json
Uses the same response body schema as HTTP 400.
404
The resource was not found or the Developer API is unavailable.
application/json
Uses the same response body schema as HTTP 400.
409
The idempotency key conflicts, or an earlier attempt is pending upload or cleanup.
application/json
Uses the same response body schema as HTTP 400.
413
The request body exceeds the supported size.
application/json
Uses the same response body schema as HTTP 400.
415
Expected PNG, JPEG or WebP raster bytes.
application/json
Uses the same response body schema as HTTP 400.
429
The token or Space request budget is exhausted. Edge traffic limits can also return 429.
Response headers
RateLimit-LimitintegerOptionalPer-token capacity in the reported gateway window, expressed in requests of this operation. A shared Space budget also applies. Present when the request reaches the authenticated gateway. Minimum: 1.
RateLimit-RemainingintegerOptionalRequests of this operation remaining under the current token, Space and applicable operation-group quotas. Present when the request reaches the authenticated gateway. Minimum: 0.
RateLimit-ResetintegerOptionalUnix timestamp in seconds when the reported gateway quota resets. Present when the request reaches the authenticated gateway. Minimum: 0.
Retry-AfterintegerOptionalSeconds to wait before retrying, when the limiting policy supplies a retry time. Minimum: 1.
application/json
Uses the same response body schema as HTTP 400.
503
The Marketing operation is temporarily unavailable.
application/json
Uses the same response body schema as HTTP 400.
Was this helpful?