Notifications API · brands
The brand a organization's customer pages wear
GET /brands/{tenantId}
The brand a organization's customer pages wear: its business name, colours, contact, footer, terms and a fifteen-minute signed URL for its logo, with the logo's version (its upload's reference), which the pages' logo address carries so a replaced logo is a new address.
404 BrandNotFound for a organization that has not saved one (the pages then wear Manifold's plain look); 503 BrandLogoUnavailable when the logo's URL cannot be signed. Appends nothing.
Access
Public: a brand is what every message and customer page already shows its customers, and names no record
No token: the link, the claim or the first message is the credential, as the description says.
How scopes come from roles: Scopes and roles. Getting a token: Authentication and app tokens.
AI agent tool
No agent tool. The brand as a tenant's customers see it is what the customer pages service reads to dress their pages; an agent reads the tenant's own brand with notifications_get_brand.
Connecting an agent: AI agents.
Example
curl -X GET 'https://notifications.getmanifold.io/brands/org_01a156d2-8680-7738-ab2e-ff985e454887'const response = await fetch("https://notifications.getmanifold.io/brands/org_01a156d2-8680-7738-ab2e-ff985e454887", {
method: "GET",
});
if (!response.ok) throw new Error(`${response.status}: ${await response.text()}`);
const answer = await response.json();{
"tenantId": "org_01a156d2-8680-7738-ab2e-ff985e454887",
"businessName": "Ridgeline Outdoor",
"brandColour": "#1f4d3a",
"accentColour": "#1f6f50",
"contact": {
"email": "accounts@ridgeline-outdoor.example",
"phone": "+61 2 9000 1234",
"website": "https://ridgeline-outdoor.example"
},
"footer": "Ridgeline Outdoor Pty Ltd · ABN 12 345 678 901",
"terms": "Quotes hold their prices until the date shown. Payment within 30 days of invoice.",
"onBrandColour": "#ffffff",
"logoUrl": "https://manifold-files.s3.ap-southeast-2.amazonaws.com/org_01a156d2-8680-7738-ab2e-ff985e454887/brand-logo-brand-logo-2026-10?X-Amz-Expires=900",
"logoVersion": "brand-logo-2026-10"
}The panel writes this call in other languages. It does not send it: Manifold's APIs do not take calls from a web
page on another site, so run the call from your own code or terminal. The whole API as OpenAPI: notifications-manager.openapi.json. Base URL https://notifications.getmanifold.io.
Errors
Every refusal is a status and a JSON body whose _tag names it. A refused call changes nothing.
404
| Refusal | What it means | What to do |
|---|---|---|
BrandNotFound | No such record in this organization. | Check the id in the path or the body. |
503
| Refusal | What it means | What to do |
|---|---|---|
BrandLogoUnavailable reason | The logo's URL cannot be signed. | Try again shortly. |
How refusals work everywhere: Errors.
Used in
- Share a quote your customer can accept, step 3: See it as your customers' pages do