Skip to Content

Brands

A brand is the logo, name, and handle that PostNitro stamps onto generated carousels. These endpoints let you manage the brand kits in your workspace.

All endpoints require the embed-api-key header — see Authentication.

The brand object

{ "id": "brand_123", "name": "PostNitro", // display name "image": "https://...", // logo URL "handle": "@postnitroai", // social handle "isCompanyDetail": false, // treat as a company (vs personal) brand "showName": true, // render the name on slides "showHandle": true, // render the handle on slides "showImage": true // render the logo on slides }

List brands

GET /brand

Returns brands in your workspace, most recently updated first.

Query parameters

ParameterDefaultDescription
page1Page number (positive integer).
limit10Items per page (1100).

Response 200

{ "success": true, "data": { "brands": [ { "id": "brand_123", "name": "PostNitro", "image": "https://...", "handle": "@postnitroai", "isCompanyDetail": false, "showHandle": true, "showImage": true, "showName": true } ] } }

Errors

StatusBodyWhen
404{ "success": false, "message": "No brands found" }The workspace has no brands.

Create a brand

POST /brand

Request body

{ "name": "PostNitro", // required, string "handle": "@postnitroai", // required, string "image": "https://...", // required, string (logo URL) "isCompanyDetail": false, // required, boolean "showName": true, // required, boolean "showHandle": true, // required, boolean "showImage": true // required, boolean }

All seven keys are required and no other top-level key is accepted — sending an unknown key is rejected with 422 Extra parameters passed in the body.

Example request

curl -X POST "https://embed-api.postnitro.ai/brand" \ -H "embed-api-key: $EMBED_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "name": "PostNitro", "handle": "@postnitroai", "image": "https://cdn.example.com/logo.png", "isCompanyDetail": false, "showName": true, "showHandle": true, "showImage": true }'

Response 200

{ "success": true, "data": { "brand": { "id": "brand_123", "name": "PostNitro", "image": "https://cdn.example.com/logo.png", "handle": "@postnitroai", "isCompanyDetail": false, "showName": true, "showHandle": true, "showImage": true } } }

Errors

StatusBodyWhen
400{ "error": "Brand name is required" }name missing or not a string.
400{ "success": false, "message": "Brand handle is required" }handle missing or not a string.
400{ "success": false, "message": "Brand image is required" }image missing or not a string.
401{ "error": "You've reached the maximum number of brands that can be added to the organization." }Plan brand limit reached.
500{ "success": false, "message": "Error creating Brand", ... }Brand could not be created.

Read a brand

GET /brand/:id

Path parameters

ParameterDescription
idThe brand id. Must belong to your workspace.

Response 200

{ "success": true, "data": { "brand": { "id": "brand_123", "name": "PostNitro", "image": "https://...", "handle": "@postnitroai", "isCompanyDetail": false, "showHandle": true, "showImage": true, "showName": true } } }

A 404 is returned when no brand with that id exists in your workspace.


Update a brand

PUT /brand/:id

Path parameters

ParameterDescription
idThe brand id. Must belong to your workspace.

Request body

Same shape as create — all seven keys are required by validation. name, handle, and image are only overwritten when a non-empty value is sent; the boolean display flags (isCompanyDetail, showName, showHandle, showImage) are always applied.

Response 200

{ "success": true, "data": { "brand": { "id": "brand_123", "name": "PostNitro", "...": "..." } } }

Errors

StatusBodyWhen
404{ "success": false, "message": "Brand not found" }No brand with that id in your workspace.
500{ "success": false, "message": "Error updating brand", ... }Update did not complete.

Validation & common errors

Request-shape errors return 422 { "status": false, "message": "..." }:

messageWhen
Brand id is required:id missing on read/update.
Name is required / Image is required / Handle is requiredRequired body field missing (create/update).
Is company detail is required / Show name is required / Show handle is required / Show image is requiredRequired boolean flag missing (create/update).
Page must be a positive integer / Limit must be between 1 and 100Invalid list pagination.
Extra parameters passed in the body.Unknown top-level body key.

See Authentication for 401 / 402 responses.

Last updated on