Norn APIThe API
PreviewBrands
A brand is who Norn suggests ideas for. Create one from a website, check what Norn read, and correct anything it got wrong.
Every idea is for a brand. A brand holds what Norn knows about one business or person: what it does, who it is for, how it sounds and what it must never say. Feedback is kept per brand too, so each brand builds up its own taste.
If you serve many businesses, such as an agency with clients or a platform with customers, create one brand for each of them.
What Norn reads from a website
#Give Norn a website and it reads the pages it can reach: what the business offers, its products, what customers say about it and how it talks. From that it writes a short description, lists the offerings and suggests an archetype. Ideas later cite these pages as their sources.
Norn reads the site when you create the brand. Change website in an update to make it read again, for example after a relaunch.
The archetype
#Norn describes a brand’s personality as one of twelve archetypes, drawn from Carl Jung and set out for brands by Margaret Mark and Carol Pearson. The archetype sets the brand’s voice, and the voice decides which angles an idea can take. A jester can joke about a burst pipe. A sage explains why pipes burst.
| Archetype | Sounds |
|---|---|
innocent | Simple, honest and hopeful. |
everyman | Down to earth. One of us. |
hero | Brave and determined. Proves itself. |
outlaw | Breaks the rules. Says what others will not. |
explorer | Curious and free. Looks for what is new. |
creator | Inventive. Cares about craft. |
ruler | In control. Sets the standard. |
magician | Transforms things. Makes the hard look easy. |
lover | Warm and close. About beauty and feeling. |
caregiver | Kind and protective. Looks after people. |
jester | Playful and funny. Never takes itself too seriously. |
sage | Wise. Explains, and is trusted for it. |
If you know the archetype, set it. If you leave it out, Norn suggests one and explains its choice in archetype.rationale. Read the rationale once: a brand with the wrong voice gets the wrong ideas.
Create a brand
#/v1/brandsPreviewBody
websitestringOptionalThe brand’s website, starting with
https://. Leave it out only when you sendnameanddescriptioninstead.namestringOptionalThe brand’s name. Norn takes it from the website when you leave it out.
descriptionstringOptionalWhat the business does, in a sentence or two. Useful when there is no website. Up to 2,000 characters.
languagestringOptionalThe language ideas are written in, as an ISO 639-1 code such as
enornb. Norn takes it from the website when you leave it out.countrystringOptionalWhere the brand is, as an ISO 3166-1 code such as
USorNO. Norn uses it for the calendar. It knows the holidays of the US, the UK, Norway, Australia, Canada, New Zealand and Ireland, and goes by the season elsewhere.archetypestringOptionalThe brand’s archetype. Norn suggests one when you leave it out.
One of:
innocent,everyman,hero,outlaw,explorer,creator,ruler,magician,lover,caregiver,jester,sagerulesobjectOptionalInstructions every idea follows. Norn never overrides them with what it learns from feedback.
alwaysstring[]OptionalThings every idea should do, such as "Mention same-day callouts". Up to 20.
neverstring[]OptionalThings no idea may do, such as "Mention prices". Up to 20.
curl -X POST https://api.native.no/v1/brands \
-H "Authorization: Bearer $NATIVE_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"website": "https://pipedream.example",
"country": "US"
}'The brand comes back straight away, while Norn reads the website:
Response
{
"id": "brand_7Hk2pQ",
"object": "brand",
"status": "reading",
"name": null,
"website": "https://pipedream.example",
"language": null,
"country": "US",
"description": null,
"offerings": [],
"archetype": null,
"rules": {
"always": [],
"never": []
},
"created_at": "2026-10-11T09:12:40Z"
}Get a brand
#/v1/brands/{brand_id}PreviewReturns the brand. While status is reading, ask again every ten seconds or so. When Norn could not read the website, for example because it blocks visitors, the status is failed: create the brand again with name and description instead.
curl https://api.native.no/v1/brands/brand_7Hk2pQ \
-H "Authorization: Bearer $NATIVE_ACCESS_TOKEN"Response
{
"id": "brand_7Hk2pQ",
"object": "brand",
"status": "ready",
"name": "Pipe Dream Plumbing",
"website": "https://pipedream.example",
"language": "en",
"country": "US",
"description": "Family plumbers in Columbus, Ohio. Same-day callouts, seven days a week.",
"offerings": [
"Emergency repairs",
"Water heater installs",
"Drain cleaning"
],
"archetype": {
"value": "jester",
"rationale": "The website jokes about leaks and calls the team the drip squad. The humour always lands on a promise: they show up fast."
},
"rules": {
"always": [
"Mention same-day callouts"
],
"never": [
"Joke at the customer’s expense"
]
},
"created_at": "2026-10-11T09:12:40Z"
}Update a brand
#/v1/brands/{brand_id}PreviewSend only what you want to change. It takes the same fields as creating a brand. Lists, such as rules.never, are replaced rather than merged. A new website makes Norn read the site again.
curl -X PATCH https://api.native.no/v1/brands/brand_7Hk2pQ \
-H "Authorization: Bearer $NATIVE_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"archetype": "jester",
"rules": {
"always": [
"Mention same-day callouts"
],
"never": [
"Joke at the customer’s expense",
"Mention prices"
]
}
}'The brand object
#Fields
idstringRequiredStarts with
brand_.objectstringRequiredAlways
brand.statusstringRequiredYou can ask for ideas once it is
ready.One of:
reading,ready,failednamestring | nullRequirednulluntil Norn has read the website.websitestring | nullRequiredThe website Norn read.
languagestring | nullRequiredISO 639-1 code.
countrystring | nullRequiredISO 3166-1 code.
descriptionstring | nullRequiredWhat Norn understood the business to be.
offeringsstring[]RequiredWhat the business sells or does, as Norn read it.
archetypeobject | nullRequiredThe brand’s archetype.
valuestringRequiredThe archetype.
One of:
innocent,everyman,hero,outlaw,explorer,creator,ruler,magician,lover,caregiver,jester,sagerationalestring | nullRequiredWhy Norn chose it.
nullwhen you set the archetype yourself.
rulesobjectRequiredInstructions every idea follows. Norn never overrides them with what it learns from feedback.
alwaysstring[]OptionalThings every idea should do, such as "Mention same-day callouts". Up to 20.
neverstring[]OptionalThings no idea may do, such as "Mention prices". Up to 20.
created_atstringRequiredWhen the brand was created, in ISO 8601.
The Norn API is not open yet
Access opens from the waitlist. Join it and we will email you when your access is ready.