Hopp til innhold
skribbskribb

Utviklere

Utsendinger

Nyhetsbrev

En utsending er en e-post du skriver selv og sender til abonnentene, uten at det ligger et innlegg bak. Å skrive og å sende er to tilganger: broadcasts:write lager, planlegger og avlyser, mens alt som faktisk havner i en innboks også krever newsletter:send. E-posten går ut i publikasjonens egen logo, skrift og signatur, med avmeldingslenken til den som får den.

Alle sidene

Kodeeksemplene kaller en skribb-funksjon du setter opp selv. Hent klienten for språket ditt og lim den inn én gang, så kan eksemplene under limes rett etter.

GET/v1/broadcasts

broadcasts:read

Hent utsendingene

Nyeste først. Kundepost fra et nettsted deler tabellen, men hører ikke til her og kommer ikke med: den går til en annen liste, med sin egen avmelding.

?status
utkast, planlagt, sender, sendt, avbrutt eller feilet.
?limit
1 til 100. Standard er 25.
?cursor
next_cursor fra forrige side.
?format
markdown legger til markdown på hver utsending.

Svaret · 200

broadcastsBroadcast[]
Denne sida av lista.
has_moreboolean
Om det finnes en side til.
next_cursorstring | null
Sendes som ?cursor= for neste side. null når du er ferdig.
# Kaller skribb-klienten: https://skribb.no/utviklere/autentisering#klient
skribb "/broadcasts?status=paid&limit=20"

POST/v1/broadcasts

broadcasts:write

Skriv en utsending

Uten send og uten scheduled_for blir utsendingen et utkast, og ingenting går ut. send: true sender med det samme og krever både Idempotency-Key og newsletter:send; scheduled_for legger den i kø til et tidspunkt og krever newsletter:send. De to kan ikke stå sammen. dry_run: true teller mottakerne og lagrer ingenting.

Idempotency-Key:
En verdi du finner på selv, unik for denne utsendingen. Påkrevd når kallet faktisk sender, unødvendig på en prøve og på en planlegging. Prøver du igjen med den samme, får du svaret fra første gang i stedet for en e-post til.

Bodyen du sender

subjectstring
Emnet. Påkrevd, høyst 200 tegn.
bodyobject[]
Teksten som Portable Text.
markdownstring
Teksten som Markdown i stedet. Send enten body eller markdown, ikke begge.
post_slugsstring[]
Innlegg som skal med, i den rekkefølgen. Legges under teksten som innleggskort. Publikasjonen slår dem opp selv når e-posten går ut, så et innlegg som er avpublisert i mellomtida faller ut i stedet for å bli en død lenke.
audiencestring
all, paid eller free. Standard er all.
scheduled_forstring
ISO 8601. Når den skal gå ut. Må være fram i tid.
sendboolean
true sender med det samme.
dry_runboolean
true teller mottakerne og lagrer ingenting.

Svaret · 200

broadcastBroadcast
Utsendingen som ble lagret.
sendBroadcastSend
Bare på dry_run. Hva en utsending ville gjort.
Svar
{
  "broadcast": {
"id": "6f1c2a90",
"subject": "Ukas brev",
"audience": "all",
"status": "utkast",
"scheduled_for": null,
"sent_at": null,
"recipient_count": 0,
"sent_count": 0,
"failed_count": 0,
"created_at": "2026-09-04T09:00:00.000Z"
  }
}
# Kaller skribb-klienten: https://skribb.no/utviklere/autentisering#klient
skribb "/broadcasts" \
  -X POST \
  -H "content-type: application/json" \
  -d '{
    "subject": "Ukas brev",
    "markdown": "## Juli\n\nDet ble en lang måned.",
    "audience": "all"
  }'

GET/v1/broadcasts/{id}

broadcasts:read

Hent én utsending

?format
markdown legger til markdown.

Svaret · 200

broadcastBroadcast
Utsendingen.
# Kaller skribb-klienten: https://skribb.no/utviklere/autentisering#klient
broadcast_id="abc123"

skribb "/broadcasts/$broadcast_id?format=markdown"

POST/v1/broadcasts/{id}/send

newsletter:send

Send utsendingen

En utsending går ut én gang. Har den gått ut før, svarer vi 409 already-sent, og det finnes ingen force; står den som feilet, kan du sende den om igjen. Publikasjonen fører sin egen liste over hva som har gått ut, så en abonnent som likevel rakk å få den, får den ikke to ganger. dry_run: true svarer med hvor mange den ville gått til, uten å sende noe og uten å kreve en nøkkel, og avviser det samme en ekte utsending ville avvist. scheduled_for legger den i kø til tidspunktet i stedet, og ingenting går ut nå.

Idempotency-Key:
En verdi du finner på selv, unik for denne utsendingen. Påkrevd når kallet faktisk sender, unødvendig på en prøve og på en planlegging. Prøver du igjen med den samme, får du svaret fra første gang i stedet for en e-post til.

Bodyen du sender

dry_runboolean
true teller mottakerne og sender ingenting.
scheduled_forstring
ISO 8601. Legger utsendingen i kø i stedet for å sende nå.

Svaret · 200

broadcastBroadcast
Utsendingen etter kallet.
sendBroadcastSend
Hva som gikk ut, eller ville gått.
Svar
{
  "send": {
"dry_run": false,
"recipient_count": 412,
"sent_count": 411,
"failed_count": 1
  }
}
# Kaller skribb-klienten: https://skribb.no/utviklere/autentisering#klient
broadcast_id="abc123"

skribb "/broadcasts/$broadcast_id/send" \
  -X POST \
  -H "content-type: application/json" \
  -d '{
    "dry_run": true
  }'

DELETE/v1/broadcasts/{id}

broadcasts:write

Avlys utsendingen

Et utkast ingen har sett blir borte. En planlagt utsending blir stående som avbrutt, fordi «denne sendte vi ikke» er noe du kan trenge å vise til seinere. En som er på vei ut eller allerede sendt, svarer 409 already-sent: det er ingenting igjen å avlyse. En som står som feilet, svarer 409 broadcast-failed, av samme grunn: vi nådde ikke publikasjonen, og da vet vi ikke om noe rakk å gå ut.

Svaret · 200

broadcastBroadcast
Den avlyste utsendingen. Utelatt når et utkast ble slettet.
deletedboolean
true når et utkast ble slettet i stedet for avlyst.
# Kaller skribb-klienten: https://skribb.no/utviklere/autentisering#klient
broadcast_id="abc123"

skribb "/broadcasts/$broadcast_id" \
  -X DELETE

Objekter

Broadcast

En utsending: emnet, teksten, hvem den går til, og hva som skjedde med den.

Felter

idstring
Adressen utsendingen ligger på.
subjectstring
Emnefeltet, og overskriften i e-posten.
bodyobject[]
Teksten som Portable Text: en liste med blokker. En blokk med _type: skribb-post og en slug blir til et innleggskort, som publikasjonen slår opp selv når e-posten går ut.
markdownstringikke alltid med
Bare på ?format=markdown. En visning av body, aldri fasiten. Innleggskort finnes ikke i Markdown og står i markdown_dropped.
audiencestring
all, paid eller free. Hvem av abonnentene utsendingen går til.
statusstring
utkast (skrevet, ikke sendt), planlagt (venter på tidspunktet sitt), sender (på vei ut), sendt, avbrutt eller feilet (vi nådde ikke publikasjonen og sluttet å prøve).
scheduled_forstring | null
ISO 8601 i UTC. Når den skal gå ut, mens den er planlagt.
sent_atstring | null
ISO 8601 i UTC. Når utsendingen startet.
recipient_countinteger
Hvor mange abonnenter utsendingen gikk til, eller ville gått til.
sent_countinteger
Hvor mange som fikk den.
failed_countinteger
Hvor mange adresser vi ikke kom fram til. De teller som sendt: utsendingen er ute, og den går ikke ut igjen.
created_atstring
ISO 8601 i UTC.

BroadcastSend

Resultatet av en utsending, eller av en prøve på en.

Felter

dry_runboolean
true når ingenting ble sendt, fordi du ba om en prøve.
recipient_countinteger
Hvor mange den gikk til, eller ville gått til.
sent_countinteger
Hvor mange som fikk den. 0 på en prøve.
failed_countinteger
Adresser vi ikke kom fram til.
quota_remainingintegerikke alltid med
Bare på en prøve. Hvor mange e-poster publikasjonen har igjen denne måneden.

← Alle rutene