Skip to content

Make a listing yours

POST
/api/v1/hub/offers/{org}/{brand}
curl --request POST \
--url http://localhost:3000/api/v1/hub/offers/example/example \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "slug": "example" }'

Take an offer: a brand in your project from the listing’s release (as Start from this brand), with its domain, released and public on BrandHub. The listing goes private, its address leads to yours for good, and its organization’s admins find a resolved claim and an audit entry. No brand moves between organizations. Organization admin, signed in.

Scope: admin.

org
required
string

The listing’s organization

brand
required
string

The listing’s brand

Media typeapplication/json
object
slug

The new brand’s slug in your project; the listing’s when left out

string
<= 60 characters /^[a-z0-9]+(-[a-z0-9]+)*$/
Examplegenerated
{
"slug": "example"
}

Your brand, and where it is on BrandHub

Media typeapplication/json
object
data
required
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)$/
slug
required
string
name
required
string
default
required
boolean
private
required

Only grants on it, and admins, reach it in the app

boolean
visibility
required

Who sees it on BrandHub

string
Allowed values: private public
from

The BrandHub brand it started from, as {org}/{brand}@{n}

string | null
domain

Its own domain (acme.com): whoever proves it may claim its BrandHub listing

string | null
movedTo

Claimed on BrandHub by whoever proved its domain: the listing that took its place, as {org}/{brand}

string | null
rules
required
integer
>= -9007199254740991 <= 9007199254740991
createdAt
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)))$/
hub
required
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
Example
{
"data": {
"visibility": "private",
"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"
}
}