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.
Sender du title og content i samme kall, får du et ferdig innlegg av én forespørsel. Send Idempotency-Key, så er det trygt å prøve igjen om svaret går tapt. Går kladden i orden, men innholdet ikke inn, svarer vi 502 og gir deg likevel id-en, så du kan prøve igjen mot den i stedet for å sitte igjen med et tomt innlegg. Sender du slug, blir opprettelsen idempotent på den adressen: neste gang samme slug kommer inn, svarer vi 409 slug-taken i stedet for å lage en tvilling. Det er en annen garanti enn Idempotency-Key, og de finnes begge fordi de svarer på hvert sitt spørsmål: nøkkelen dekker én forespørsel som kanskje ble sendt to ganger, i et døgn. Slugen dekker «har jeg skrevet dette før», på tvers av kjøringer, uker fra hverandre, uten at noe må huskes imellom.
Bodyen du sender
titlestring
Tittelen. Uten den får en ny kladd «Uten tittel».
excerptstring
Ingressen.
slugstring
Adressen. Settes av tittelen om du utelater den. Ved opprettelse er den samtidig dedupen: to kall med samme slug gir ett innlegg og en 409, ikke to innlegg.
contentobject[]
Brødteksten som Portable Text. Kan ikke sendes sammen med markdown.
markdownstring
Brødteksten som Markdown. Vi gjør den om til Portable Text med den samme omskrivingen redigeringsverktøyet bruker. Kan ikke sendes sammen med content.
Forsidebildet, satt med en media-id du får av å laste opp med purpose=post. null fjerner bildet.
publishboolean
true publiserer. Er innlegget aldri publisert før, går nyhetsbrevet ut til abonnentene i samme slengen.
send_newsletterboolean
false publiserer uten å sende nyhetsbrevet. Bare sammen med publish: true, ellers svarer vi 422. Får vi ikke stanset utsendingen, publiserer vi heller ikke: du får 502 og innlegget står som kladd.
Legg til ?format=markdown for å få feltene markdown og markdown_dropped ved siden av content. Markdown kan ikke bære skribbs egne blokker, altså betalingsmur, nivåsperre og abonnent-kort, så markdown_dropped navngir det som ikke ble med. Er lista tom, gikk alt inn. content er der uansett.
Ekte delvis endring: felt du ikke sender, blir stående. Retter du en tittel, står brødteksten der etterpå. Send minst ett felt, ellers svarer vi 422 empty-update.
Bodyen du sender
titlestring
Tittelen. Uten den får en ny kladd «Uten tittel».
excerptstring
Ingressen.
slugstring
Adressen. Settes av tittelen om du utelater den. Ved opprettelse er den samtidig dedupen: to kall med samme slug gir ett innlegg og en 409, ikke to innlegg.
contentobject[]
Brødteksten som Portable Text. Kan ikke sendes sammen med markdown.
markdownstring
Brødteksten som Markdown. Vi gjør den om til Portable Text med den samme omskrivingen redigeringsverktøyet bruker. Kan ikke sendes sammen med content.
Forsidebildet, satt med en media-id du får av å laste opp med purpose=post. null fjerner bildet.
publishboolean
true publiserer. Er innlegget aldri publisert før, går nyhetsbrevet ut til abonnentene i samme slengen.
send_newsletterboolean
false publiserer uten å sende nyhetsbrevet. Bare sammen med publish: true, ellers svarer vi 422. Får vi ikke stanset utsendingen, publiserer vi heller ikke: du får 502 og innlegget står som kladd.
Et publisert innlegg går ut til abonnentene som har bedt om å få det, med det samme, og en utsending kan ikke tas tilbake. Derfor har ruta sin egen tilgang, som aldri følger med posts:write, og derfor krever den Idempotency-Key: går svaret tapt underveis, er du den eneste som vet at de to forespørslene var den samme. Hvert innlegg går ut én gang. Har det gått ut før, svarer vi 409 already-sent, og det finnes ingen force. Publiserte du med send_newsletter: false, teller sperren som en utsending. dry_run: true svarer med hvor mange brevet ville gått til, uten å sende noe og uten å kreve en nøkkel, og avviser det samme en ekte utsending ville avvist, så en prøve er et ekte svar på «hva skjer om jeg gjør dette».
Idempotency-Key:
En verdi du finner på selv, unik for denne utsendingen. Påkrevd for en ekte utsending, unødvendig på en prøve. Prøver du igjen med den samme, får du svaret fra første gang i stedet for et brev til.
Kladden publiseres av seg selv på tidspunktet du oppgir, av den samme jobben som publiserer det du planlegger i oversikten. publish_at er ISO 8601, som alle andre tidspunkt her: oversikten leser Oslo-tid fra en datovelger fordi et menneske som skriver 14:30, mener 14:30 der det står, mens du som sender JSON, mener et øyeblikk. Å gjette en tidssone på dine vegne er slik et innlegg går ut to timer for tidlig to ganger i året. Ett innlegg kan bare stå i kø én gang: står det allerede i kø, svarer vi 409 og sier når. Planlegging krever en betalt pakke på publikasjonen.
Bodyen du sender
publish_atstringpåkrevd
ISO 8601 i UTC. Må ligge fram i tid.
send_newsletterboolean
false setter innlegget i kø uten at nyhetsbrevet går når det publiseres. Utsendingen stanses med det samme, ikke når cron-jobben kjører: da er det ingen å svare til, og en sperre som feilet i det øyeblikket, ville blitt en e-post ingen ba om og ingen kunne stoppe. Får vi den ikke stanset nå, blir innlegget ikke satt i kø.
404 betyr at innlegget ikke står i kø, ikke at innlegget ikke finnes. Et innlegg som allerede er publisert, eller som ble avlyst, står ikke i kø lenger.
Media-id-en du fikk da du lastet opp med purpose=post. En url går ikke an: innlegget viser til bildet sitt med en id, og en adresse er ikke noe det kan slå opp.
pending eller failed. Et innlegg som allerede er gått ut, eller som ble avlyst, står ikke i kø lenger og svarer 404 her.
last_errorstring | null
Hvorfor siste forsøk ikke gikk gjennom. Cron-jobben prøver igjen, så failed betyr ikke nødvendigvis tapt, men dette er det ene du ikke kan regne ut selv.