Norn APIThe API
PreviewFeedback
Tell Norn what happened to an idea: approved, edited or turned down, and how the post performed. It is how Norn learns a brand’s taste.
Norn learns a brand’s taste the way a good marketer does: by watching which ideas the people who know the brand keep, change or throw away, and what happens once posts go out. Feedback is how you show it.
Every business on Native feeds this loop today. The API is built to feed it the same way, so the brands you create learn from your users’ decisions too.
Decisions
#Send a decision when a person acts on an idea:
| Decision | When | Send with it |
|---|---|---|
approved | The idea was used as it was. | Nothing else. |
edited | The idea was used, but changed. | final_text: what was actually posted. |
rejected | The idea was turned down. | reasons, and a comment if the person wrote one. |
A reason in a person’s own words teaches Norn the most. From decisions, Norn writes lessons about what a brand’s posts should be about, such as "Posts about prices get turned down", and the ideas after that follow them. In Native, lessons start once a brand has eight explained decisions in 90 days (approvals, and turn-downs that came with a reason), and each lesson rests on at least three of them. In Native, a comment in the person’s own words about the idea or its wording also becomes a do or a don’t in the brand’s writing style, and one only about the picture becomes a picture rule. A reason picked from the list, with no comment, adds neither.
Reasons
#| Reason | Means |
|---|---|
off_brand | It does not sound like the brand. |
not_relevant | The subject does not matter to this brand or its audience. |
wrong_language | It came back in the wrong language. |
needs_work | The idea is fine, but the hook or the angle is weak. |
other | Anything else. Say what in comment. |
Do not invent a reason when the person gave none. A rejection without a reason is still useful; a made-up reason teaches Norn the wrong lesson.
Outcomes
#Once a post has been out for a few days, send its numbers as an outcome. Norn compares each post with the brand’s own usual results, never with other brands, so a corner bakery and a national chain are each judged on their own scale.
Engagement is counted the way Native counts it: likes, comments, shares and clicks, divided by views. Send the numbers your channel reports and Norn does the rest.
Send feedback
#/v1/feedbackPreviewBody
ideastringRequiredThe id of the idea.
decisionstringOptionalWhat a person did with the idea. Each request needs a
decision, anoutcomeor both.One of:
approved,edited,rejectedfinal_textstringOptionalWith
edited: the text that was published. Up to 10,000 characters.reasonsstring[]OptionalWith
rejected: why.One of:
off_brand,not_relevant,wrong_language,needs_work,othercommentstringOptionalWith
rejected: the reason in the person’s own words. Up to 1,000 characters.outcomeobjectOptionalHow the post performed. Send it again whenever the numbers change; the latest one counts.
channelstringRequiredWhere the post went out.
One of:
instagram,facebook,linkedin,tiktok,x,threads,bluesky,pinterest,youtube,otherpublished_atstringRequiredWhen it went out, in ISO 8601.
viewsintegerRequiredViews or impressions.
likesintegerOptionalLikes and reactions.
commentsintegerOptionalComments.
sharesintegerOptionalShares, reposts and sends.
clicksintegerOptionalLink clicks.
curl -X POST https://api.native.no/v1/feedback \
-H "Authorization: Bearer $NATIVE_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"idea": "idea_4Fd9xW",
"decision": "edited",
"final_text": "Frozen pipes do not care that it is Sunday. Neither do we: same-day fix, no drama."
}'A rejection with a reason:
Body
{
"idea": "idea_9Qm3vT",
"decision": "rejected",
"reasons": [
"not_relevant"
],
"comment": "We stopped doing leak checks in the winter months."
}An outcome, a few days after the post went out:
Body
{
"idea": "idea_4Fd9xW",
"outcome": {
"channel": "instagram",
"published_at": "2026-11-02T18:00:00-05:00",
"views": 4210,
"likes": 186,
"comments": 23,
"shares": 17,
"clicks": 9
}
}Norn answers 202 Accepted with a receipt:
Response
{
"object": "feedback",
"id": "fb_2Lr8sN",
"idea": "idea_4Fd9xW",
"created_at": "2026-11-03T08:00:00Z"
}What feedback changes
#- The ideas Norn suggests next for that brand: the subjects, formats and angles it leans toward, and the lessons it follows.
- Not the brand’s rules. Only you set
rules, and Norn never overrides them with what it learns. - Not the order of ideas already sent. Feedback shapes the next request, not the last one.
The Norn API is not open yet
Access opens from the waitlist. Join it and we will email you when your access is ready.