Partner API.
Skapa förhandsvisningar åt era kunder, lista dem och se vilka som blivit betalande. REST, stabil JSON, Bearer-auth. Två endpoints, och det är hela API:et idag.
Tre saker att veta först.
Nycklar delas ut för hand. Det är ett medvetet val: vi vill veta vem som bygger mot API:et medan det fortfarande är litet.
Hör av er
Vi skapar er partner och en nyckel för hand. Det finns ingen publik registrering och ingen självbetjäning.
Skicka nyckeln i varje anrop
Authorization: Bearer ER_NYCKEL. Nyckeln jämförs med konstant tidsåtgång, och den identifierar samtidigt vilken partner anropet tillhör.
Anropa bas-URL:en
https://wwwebb.se/api/partner. Svaren är JSON. Bakåtinkompatibla ändringar versioneras, vi ändrar inte formen på ett svar under fötterna på er.
POST /api/partner/previews
Skapar en kund och en draft-sajt, och ger tillbaka en preview-URL. Sajten publiceras inte, den ligger som utkast tills kunden aktiverar.
| Fält | Typ | Krav | Vad det gör |
|---|---|---|---|
brandName | Text, 1 till 120 tecken | Obligatoriskt | Företagsnamnet. Blir sajtens namn och ligger till grund för slug. |
email | Giltig e-postadress | Obligatoriskt | Kundens adress. Finns kunden redan återanvänds den i stället för att dubbleras. |
phone | Text, max 50 tecken | Valfritt | Hamnar i sajtens kontaktuppgifter. |
address | Text, max 200 tecken | Valfritt | Används för ort och kontaktuppgifter. |
industry | Ett av värdena nedan | Obligatoriskt | Styr mall och innehåll. Ett okänt värde ger 400. |
partner_ref | Text, max 120 tecken | Valfritt | Er egen referens. Ekas tillbaka i svaret och i listningen. |
curl -X POST https://wwwebb.se/api/partner/previews \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"brandName": "Larssons Bygg",
"email": "kalle@larssonsbygg.se",
"phone": "+46701234567",
"address": "Storgatan 1, Uppsala",
"industry": "handyman",
"partner_ref": "vart-interna-id-123"
}'{
"ok": true,
"partner": "er-handle",
"partner_ref": "vart-interna-id-123",
"customer": {
"id": "0b91...",
"email": "kalle@larssonsbygg.se"
},
"site": {
"id": "7a42...",
"slug": "larssons-bygg",
"preview_url": "https://wwwebb.se/preview/larssons-bygg"
}
}Tillåtna värden för industry
- handyman
- cleaning
- restaurant
- salon
- healthcare
- fitness
- realestate
- lawfirm
- photography
- tech
- agency
- generic
GET /api/partner/previews/list
Listar allt ni skapat. Varje rad säger om kunden har börjat betala via customer.paid, vilket är det ni bygger er egen konverteringsrapport på.
curl "https://wwwebb.se/api/partner/previews/list?limit=50&offset=0" \ -H "Authorization: Bearer $TOKEN"
{
"partner": "er-handle",
"previews": [
{
"site_id": "7a42...",
"slug": "larssons-bygg",
"status": "draft",
"template_id": "handyman-v2",
"custom_domain": null,
"preview_url": "https://wwwebb.se/preview/larssons-bygg",
"created_at": "2026-07-14T09:12:44.000Z",
"customer": {
"email": "kalle@larssonsbygg.se",
"name": "Larssons Bygg",
"paid": false
},
"partner_ref": "vart-interna-id-123"
}
],
"paging": { "limit": 50, "offset": 0, "returned": 1 }
}Frågeparametrar: limit (standard 50, tak 200) och offset (standard 0). paging.returned säger hur många rader svaret faktiskt innehåller, så ni vet när ni nått slutet utan att gissa.
Statuskoder ni behöver hantera.
Felsvaren är JSON med ett fält error, och vid schemafel dessutom issues med sökväg och beskrivning per fält.
| Kod | Betyder | Vad ni gör |
|---|---|---|
| 401 | Saknad, för kort eller ogiltig Bearer-token | Kontrollera nyckeln. Svaret bär WWW-Authenticate: Bearer. |
| 400 | Trasig JSON, eller ett fält som inte klarar schemat | Läs issues i svaret, rätta fältet och skicka om. En retry utan ändring ger samma fel. |
| 500 | Fel hos oss. Loggas automatiskt till Sentry | Försök igen med en paus emellan. Återkommer det, hör av er så tittar vi. |
| 429 | Hastighetsbegränsning | Bygg för den även om ni inte ser den: backa av och försök igen efter en stund. Vi vill kunna strypa vid behov utan att fälla er integration. |
Så räknas er andel.
Sammanfattning. Villkoren i sin helhet står på partnersidan.
Ni får en andel av det era kunder betalar, varje månad kunden är kvar. Utgångspunkten är 20 procent och andelen sätts per partner. Underlaget är aktiva abonnemang just nu, inte historik, och det finns ingen tidsgräns som klipper ersättningen efter ett år. Utbetalning sker mot faktura från er och bokförs i partnervyn, där ni också ser era kunder, er andel och vad som redan betalats ut.
Det API:et inte gör.
Två endpoints är två endpoints. Behöver ni något av det nedan, säg till, då vet vi vad vi ska bygga härnäst.
- Aktivering
Att ta kunden hela vägen till betalning görs i vårt flöde, inte via API.
- Webhooks
Vi skickar inga händelser till er. Polla listningen tills vidare.
- Bulk-import
En kund per anrop. Vill ni lägga in många, hör av er först.
- Domäner
Egen domän kopplas av oss, det går inte att beställa via API.
Vill ni bygga mot API:et?
Berätta vad ni jobbar med och ungefär hur många sajter ni gör om året, så skapar vi en nyckel åt er.
Vi lägger upp partners för hand · svar inom 1 till 2 arbetsdagar