Skip to content

A brand's launch checklist and Brand Agent Score

GET
/api/v1/brands/{slug}/status
curl --request GET \
--url http://localhost:3000/api/v1/brands/example/status \
--header 'Authorization: Bearer <token>'

The steps every brand takes before it is worth sharing, in order: colors, typefaces, logo and voice in the rules, pages worth reading, a publish readers see, and a portal. next is the first step not done. score is the Brand Agent Score, 0 to 100, and each step’s points what it adds once done.

Scope: read.

slug
required
string

Brand slug

The checklist

Media typeapplication/json
object
data
required
object
brand
required
object
slug
required
string
name
required
string
default
required
boolean
brands
required

Every brand, the default first

Array<object>
object
slug
required
string
name
required
string
default
required
boolean
steps
required

In the order to take them

Array<object>
object
id
required
string
Allowed values: colors type logo voice pages publish portal
title
required
string
done
required

Null: the caller can’t tell

boolean | null
detail
required
string
agent
required

How an agent does it, with the tools by name

string
points
required

What it adds to the Brand Agent Score once done; 0 when the caller can’t tell

integer
>= -9007199254740991 <= 9007199254740991
done
required
integer
>= -9007199254740991 <= 9007199254740991
total
required
integer
>= -9007199254740991 <= 9007199254740991
score
required

The Brand Agent Score: the steps done, weighed by what each gives an agent

integer
<= 100
next
required

The first step not done; null when the brand is ready

string | null
publish
required

Never published, changes since the last publish, or up to date

string
Allowed values: never behind current
live
required
Any of:
integer
>= -9007199254740991 <= 9007199254740991
portals
required
Any of:
Array<object>
object
slug
required
string
name
required
string
access
required
string
Allowed values: public password members
url
required
string format: uri
hub
required
Any of:
object
visibility
required

Private: the project’s people see it on BrandHub, signed in; public: anyone and any agent

string
Allowed values: private public
url
required

Its page there: BrandHub’s own address when public, the app’s /hub when private

string format: uri
published
required
Any of:
object
number
required
integer
>= -9007199254740991 <= 9007199254740991
publishedAt
required
string format: date-time
/^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$/
portal
required
Any of:
object
slug
required
string
name
required
string
chosen
required

That portal was picked; false: it is the brand’s first public portal

boolean
pulls
required

Its BrandHub files (brand.json, llms.txt, tokens) read in the last 30 days, as its BrandHub card shows

integer
>= -9007199254740991 <= 9007199254740991
delisted
required

Taken off BrandHub by whoever runs the server, and why: it can’t be made public until they list it again

string | null
movedTo

Claimed by whoever proved its domain: the listing that took its place, as {org}/{brand}; it can’t be made public again

string | null
ref
required

How BrandHub names it: {org}/{brand}

string
verified
required

What its organization proved it holds, a domain or github.com/{login}; null: a community listing

string | null
terms
required

The terms of use its guidelines portal asks readers to accept, in markdown

string | null
files
required

Its rules’ files as its portals and BrandHub hand them out

object
downloadable
required

Its rules’ files anyone shown them may download

integer
>= -9007199254740991 <= 9007199254740991
shownOnly
required

Those people outside the project see but can’t download (an asset’s rights.downloadable, else its license)

Array<object>
object
id
required
string format: uuid
/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/
filename
required
string
font
required
boolean
url
required

Its guidelines in the app, to read

string format: uri
Example
{
"data": {
"steps": [
{
"id": "colors"
}
],
"publish": "never",
"portals": [
{
"access": "public"
}
],
"hub": {
"visibility": "private"
}
}
}

An error

Media typeapplication/json
object
error
required
object
code
required
string
message
required
string
detail
Examplegenerated
{
"error": {
"code": "example",
"message": "example",
"detail": "example"
}
}