JSON API -dokumentaatio
BrandBazooka tarjoaa neljä REST-rajapintaa, joista voit hakea brändi-JSONin AI-työkaluusi. Käytä joko julkista jakolinkkiä tai API-avainta.
Tunnistautuminen
Julkiset brändit ovat haettavissa ilman tunnistautumista. Yksityiset brändit vaativat Authorization: Bearer -otsikon, jossa on brändin API-avain.
API-avain luodaan brändin asetuksissa. Avain näytetään VAIN kerran luonnin yhteydessä — tallenna se talteen heti.
Päätepisteet
1. Koko brändi-JSON
GET /api/brand/{id}Palauttaa täydellisen kanonisen brändi-JSONin.
2. Visuaalinen identiteetti
GET /api/brand/{id}/visualPalauttaa vain visual_identity-lohkon (logot, värit, typografia).
3. Kirjoitustyyli
GET /api/brand/{id}/writing-style/{styleId?}Palauttaa yksittäisen AnalyzedStylen prompt_injection-merkkijonon kanssa. {styleId} on valinnainen — MVP:ssä brändillä on yksi tyyli.
4. AI-system-prompt
GET /api/brand/{id}/ai-prompt?context=&lang=Palauttaa valmiiksi rakennetun system-prompt-tekstin, jonka voit liittää suoraan AI-työkaluun. Tukee viittä kontekstia (default, linkedin, instagram, email, blog) ja kahta kieltä (fi, en).
Rajat (rate limits)
- Julkiset päätepisteet (per IP): 60 pyyntöä/min + 1 000 pyyntöä/h
- Yksityiset päätepisteet (per API-avain): 600 pyyntöä/min + 10 000 pyyntöä/h
Vastaukset sisältävät otsikot X-RateLimit-Limit, X-RateLimit-Remaining ja X-RateLimit-Reset (unix-aika sekunteina). 429-vastauksissa on lisäksi Retry-After.
Täydellisyysraja
Jos brändin completeness_score on alle 40, päätepisteet palauttavat 422-vastauksen kuvaten puuttuvat kentät. Täydennä brändi vähintään 40 %:iin ennen julkaisua.
Esimerkkejä
curl -komennolla
curl -H "Authorization: Bearer bb_sk_..." \
https://brandbazooka.io/api/brand/00000000-0000-0000-0000-000000000000JavaScript-fetchillä
const resp = await fetch(
'https://brandbazooka.io/api/brand/00000000-0000-0000-0000-000000000000/ai-prompt?context=linkedin&lang=en',
{ headers: { Authorization: 'Bearer bb_sk_...' } }
);
const promptText = await resp.text();
// promptText is paste-ready into Claude/ChatGPTStatuskoodit
- 200 — onnistunut nouto
- 401 — yksityinen brändi ilman Bearer-otsikkoa tai avain väärä/peruutettu
- 404 — brändi ei löydy
- 422 — brändi ei täytä täydellisyysrajaa TAI tuntematon context/lang
- 429 — rate limit ylittyi (katso Retry-After)