---
title: "Direct Upload"
method: POST
path: "/brand-assets/upload-url"
tags: ["Images"]
---

# Direct Upload

`POST /brand-assets/upload-url`

## Request

- Base URL: `https://api.orshot.com/v1`
- URL: `https://api.orshot.com/v1/brand-assets/upload-url`
- Auth: HTTP bearer

Upload a brand image, font, video or audio file in three steps, without sending the bytes through a JSON body

## Query parameters

- `embedId` string
- `embedUserId` string

## Request body

- object

## Response `200`

Successful response

- object

## Other responses

- `400`: The request was malformed or a parameter was invalid.
- `401`: Authentication is required and was not supplied.
- `402`: The workspace has no credits left. Either the render needs credits it does not have, or the key was paused after repeatedly calling with none (`code: api_key_paused`). That one resumes by itself on the first request we can accept.
- `403`: The API key is missing, invalid, or not permitted to perform this action.
- `404`: The requested route or resource does not exist.
- `429`: The workspace rate limit was exceeded. Retry after the interval given by the Retry-After header.
- `500`: An unexpected error occurred on our side.

## Changes

- **2026-10-28** `477bdeb3e606`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/orshot/apis/orshot-api/changes/brand-assets/upload-url/post.md)

---

[API](https://skmtc.dev/orshot/apis/orshot-api.md) - [All operations](https://skmtc.dev/orshot/apis/orshot-api/llms.txt) - [OpenAPI document](https://skmtc.dev/orshot/apis/orshot-api/revisions/1210d6bcbb90?raw)
