Skip to main content
Developer Marketing1.0.0-beta.1

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.

POST/api/v1/marketing/brand-kit/assets

Workspace 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)Required

The parent profile in the token Space.

namestringRequired

The logo’s display label. Minimum length: 1. Maximum length: 80.

variantstringRequired

Allowed values: "light", "dark", "mark", "other".

originalByteSizeintegerOptional

Pre-optimization byte count, at least the size of the uploaded raster. Defaults to its actual size. Minimum: 1. Maximum: 8388608.

Header parameters

Idempotency-KeystringRequired

Use 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)Optional

No field description supplied.

Responses

Headers on every response

X-Request-Idstring (uuid)Optional

Server-generated ID to include in a support request.

200

The committed logo receipt. Use the separate read permission to download it.

Response headers

RateLimit-LimitintegerOptional

Per-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-RemainingintegerOptional

Requests 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-ResetintegerOptional

Unix timestamp in seconds when the reported gateway quota resets. Present when the request reaches the authenticated gateway. Minimum: 0.

Idempotency-ReplayedstringOptional

Set to true when this response reuses a committed receipt. Required value: "true".

application/json

recordIdstring (uuid)Required

No field description supplied.

replayedbooleanRequired

No field description supplied.

400

Unsupported parameters or invalid request data.

application/json

statusCodeintegerRequired

Minimum: 400. Maximum: 599.

statusMessagestringOptional

A safe explanation suitable for display.

dataobjectRequired

No field description supplied.

401

A valid developer token is required.

Response headers

WWW-AuthenticatestringOptional

Bearer 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.

408

The request body timed out.

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-LimitintegerOptional

Per-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-RemainingintegerOptional

Requests 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-ResetintegerOptional

Unix timestamp in seconds when the reported gateway quota resets. Present when the request reaches the authenticated gateway. Minimum: 0.

Retry-AfterintegerOptional

Seconds 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?