Vad API:et kan göra
KENJTEC API ger dina egna program åtkomst till ditt konto: läsa formulär och deras svar, butiker och beställningar — och skriva: bygga och publicera webbplatser, hantera DNS-poster, skriva fakturor, ladda upp media. Dessutom finns webhooks — vi hör av oss till din server så snart något händer. Och din egen AI kan arbeta via MCP med samma nyckel.
Adressen är https://api.kenjtec.com/v1. API:et ingår i varje betalt paket, utan extra kostnad.

Skapa en nyckel
Varje program loggar in med en egen API-nyckel. En nyckel har rättigheter: forms:read läser formulär och svar, orders:read läser butiker och beställningar, webhooks:manage skapar och raderar webhooks. För de skrivande ändpunkterna finns egna rättigheter per område. Ge varje program en egen nyckel — då kan du återkalla en utan att störa de andra.
- Öppna instrumentpanelen och välj området Utvecklare under ”Inställningar”.
- Ge nyckeln ett namn under ”API-nycklar”, till exempel ”Lagersynk”.
- Välj under ”Vad får den här nyckeln göra?” endast de rättigheter som programmet behöver.
- Klicka på ”Skapa nyckel” och kopiera nyckeln direkt.
Nyckeln visas exakt en gång. Vi sparar bara en kontrollsumma — om den går förlorad återkallar du den med ”Återkalla” och skapar en ny.
Det första anropet
Skicka med nyckeln i headern Authorization i varje förfrågan. /v1/me talar om vilket konto nyckeln tillhör och vilka rättigheter den har.
curl https://api.kenjtec.com/v1/me \
-H "Authorization: Bearer kt_api_…"{
"id": 1042,
"object": "account",
"email": "ana@deine-firma.com",
"handle": "cafe-lumen",
"address": "https://cafe-lumen.kenjtec.ai",
"key": { "name": "Lager-Abgleich", "scopes": ["orders:read"] }
}Ändpunkterna
Följande ändpunkter finns. Den fullständiga, maskinläsbara beskrivningen finns på https://api.kenjtec.com/openapi.json — utifrån den kan programbibliotek för vilket programmeringsspråk som helst genereras.
GET /v1/me
GET /v1/forms
GET /v1/forms/{id}
GET /v1/forms/{id}/responses
GET /v1/forms/{id}/responses/{id}
GET /v1/shops
GET /v1/orders ?shop_id= &status= &payment_status=
GET /v1/orders/{id}
GET /v1/webhooks
POST /v1/webhooks
DELETE /v1/webhooks/{id}
GET /v1/sites
GET /v1/sites/{id}
POST /v1/sites
POST /v1/sites/{id}/edit
POST /v1/sites/{id}/publish
POST /v1/sites/{id}/unpublish
GET /v1/domains
GET /v1/domains/{id}/dns_records
POST /v1/domains/{id}/dns_records
PATCH /v1/domains/{id}/dns_records/{id}
DELETE /v1/domains/{id}/dns_records/{id}
GET /v1/customers
POST /v1/customers
GET /v1/invoices ?kind=invoice|quote
GET /v1/invoices/{id}
POST /v1/invoices
POST /v1/invoices/{id}/issue
POST /v1/invoices/{id}/cancel
GET /v1/media
POST /v1/media/uploads
POST /v1/media/{id}/confirm
GET /v1/brands
GET /v1/brands/{id}Filer från formulärsvar visas med sitt namn, inte med en adress. Du kan ladda ner dem i FormBuilder.
Listor, belopp, tider
Listor kommer med de senaste först, högst 100 poster per anrop (limit, standard 25). För nästa sida skickar du med id:t för den sista posten som starting_after; has_more anger om det kommer mer.
Belopp är heltal i valutans minsta enhet — cent för euro, hela yen för yen. Tider anges i UTC enligt ISO 8601.
curl "https://api.kenjtec.com/v1/orders?payment_status=paid&limit=50" \
-H "Authorization: Bearer kt_api_…"Fel och gränser
Varje fel har samma form: ett objekt error med type och message. 401 betyder: nyckeln saknas, är felaktig eller har återkallats. 403 betyder: nyckeln saknar en rättighet — eller så har kontot inte längre något betalt paket (type plan_required). 404 betyder: det finns inte, eller så tillhör det inte ditt konto.
Varje nyckel får göra 120 förfrågningar per minut. Därutöver svarar API:et med 429 och anger i Retry-After antalet sekunder till nästa försök.
{
"error": {
"type": "permission_error",
"message": "This API key lacks the scope 'orders:read'."
}
}API:et accepterar enbart nycklar, aldrig din inloggning i webbläsaren. En nyckel hör hemma på din server — aldrig på en webbplats eller i en app som andra laddar ner.