POST/v1/drafts
Opret et udkast
create_draft
Opretter et udkast til et nyt kort (collection, kræver COLLECTION_CREATE_CARDS) eller til en redigering af et eksisterende kort (card_id, kræver CARD_EDIT; titel, tags og tekst hentes fra den seneste version, medmindre de angives). Forfatteren er den første medforfatter. En bruger kan have ét aktivt udkast pr. kort: en gentaget anmodning returnerer 409 drafts.exists med draft_id i details (fortsæt i det udkast med PATCH). scheduled_publish_at planlægger publiceringen. En API-nøgle angiver udkastets forfatter i author_id (fra 1.62.0).
Autentificering
Send en API-nøgle i headeren Authorization: Authorization: Bearer <nøgle>.
Headerparametre
Idempotency-KeystringNøgle til et sikkert nyt forsøg på en skrivning: 1 til 255 printbare ASCII-tegn; en UUID v4 pr. logisk operation anbefales. Et nyt forsøg med samme nøgle inden for 24 timer udfører ikke operationen igen: det returnerer det gemte svar (status, headere og brødtekst) med headeren
Idempotency-Replayed: true. Samme nøgle med en anden metode, sti,Content-Typeeller brødtekst returnerer409 api.idempotency_mismatch; mens den første anmodning stadig kører,409 api.idempotency_in_progressmedRetry-After: 1. Efter et 5xx- eller 429-svar frigives nøglen, og et nyt forsøg udfører operationen igen. Nøglen gælder for organisationen og den kaldende part (API-nøgle, bruger eller nøgle til en brugerdefineret kilde).length ≥ 1, length ≤ 255
Anmodningens brødtekst
application/json
card_idstring | nullcollectionstring | nullNavnet på samlingen til et nyt kort (påkrævet uden
card_id).titlestring | nulllength ≤ 200
body_markdownstring | nulllength ≤ 500000
tagsarray of string | nullitems ≤ 30
revision_notestring | nulllength ≤ 1000
verify_on_publishbooleanStandard: false
notify_followersbooleanStandard: false
scheduled_publish_atstring (date-time) | nullauthor_idintegerUdkastets forfatter, når en API-nøgle kalder (fra 1.62.0): en aktiv bruger i nøglens organisation; brugeren bliver
created_byog den første medforfatter. Påkrævet for en nøgle (ellers422 validation.failed); en bruger fra en anden organisation eller en inaktiv bruger returnerer404 users.not_found. Tilladelserne på samlingen og kortet kontrolleres for nøglen, ikke for forfatteren. I en session er forfatteren den indloggede bruger: en andenauthor_idreturnerer422 validation.failed.≥ 1
Svar
201Oprettet
Svarets headere
RateLimit-PolicyGældende grænser i formatet fra IETF-udkastet
draft-ietf-httpapi-ratelimit-headers: kommaseparerede elementer"<name>";q=<quota>;w=<window in seconds>.keyer API-nøglens anmodningshastighed (kvoten er burst, vinduet er tiden til fuld genopfyldning; for en session er detuser, uden legitimationsoplysningerip);minute,dayogmonther organisationens kvoter for kalenderminuttet, kalenderdagen og kalendermåneden i UTC.RateLimitHvad der er tilbage af hver grænse i
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitGrænsen for den strengeste post i
RateLimit-Policy(den med færrest resterende anmodninger).X-RateLimit-RemainingResterende anmodninger under den strengeste grænse.
X-RateLimit-ResetSekunder, til den strengeste grænse nulstilles.
Idempotency-Replayedtruebetyder, at svaret blev afspillet igen fra det gemte svar for denneIdempotency-Key: operationen blev ikke udført igen.
application/json
idintegerpåkrævetorg_idintegerpåkrævetcard_idstring | nullpåkrævetDet kort, udkastet redigerer;
null: et udkast til et nyt kort.collection_idintegerpåkrævetcollectionstringpåkrævettitlestringpåkrævetbody_markdownstringpåkrævettagsarray of stringpåkrævetbase_versioninteger | nullDen version af kortet, udkastet tog udgangspunkt i.
scheduled_publish_atstring (date-time) | nullrevision_notestring | nullverify_on_publishbooleanpåkrævetnotify_followersbooleanpåkrævetcreated_byintegerpåkrævetupdated_byinteger | nullcreated_atstring (date-time)påkrævetupdated_atstring (date-time)påkrævetpublish_requested_byinteger | nullpublish_requested_atstring (date-time) | nullapproved_byinteger | nullapproved_atstring (date-time) | nullconflictstring | nullcard_published: kortet blev publiceret eller ændret, efter at udkastet blev påbegyndt;card_deleted: kortet blev slettet; udvidelig.
400Anmodningen er ugyldig: en parameterværdi eller objektets tilstand tillader ikke handlingen (`detail` er en meddelelse).
Svarets headere
RateLimit-PolicyGældende grænser i formatet fra IETF-udkastet
draft-ietf-httpapi-ratelimit-headers: kommaseparerede elementer"<name>";q=<quota>;w=<window in seconds>.keyer API-nøglens anmodningshastighed (kvoten er burst, vinduet er tiden til fuld genopfyldning; for en session er detuser, uden legitimationsoplysningerip);minute,dayogmonther organisationens kvoter for kalenderminuttet, kalenderdagen og kalendermåneden i UTC.RateLimitHvad der er tilbage af hver grænse i
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitGrænsen for den strengeste post i
RateLimit-Policy(den med færrest resterende anmodninger).X-RateLimit-RemainingResterende anmodninger under den strengeste grænse.
X-RateLimit-ResetSekunder, til den strengeste grænse nulstilles.
application/json
401Der blev ikke sendt legitimationsoplysninger (hverken en sessionscookie eller en API-nøgle), eller nøglen blev ikke fundet.
Svarets headere
RateLimit-PolicyGældende grænser i formatet fra IETF-udkastet
draft-ietf-httpapi-ratelimit-headers: kommaseparerede elementer"<name>";q=<quota>;w=<window in seconds>.keyer API-nøglens anmodningshastighed (kvoten er burst, vinduet er tiden til fuld genopfyldning; for en session er detuser, uden legitimationsoplysningerip);minute,dayogmonther organisationens kvoter for kalenderminuttet, kalenderdagen og kalendermåneden i UTC.RateLimitHvad der er tilbage af hver grænse i
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitGrænsen for den strengeste post i
RateLimit-Policy(den med færrest resterende anmodninger).X-RateLimit-RemainingResterende anmodninger under den strengeste grænse.
X-RateLimit-ResetSekunder, til den strengeste grænse nulstilles.
application/json
403Handlingen er ikke tilladt: rollen er utilstrækkelig, der er ingen adgang til samlingen eller kortet, anmodningen kører i tilstanden »View as«, eller organisationen er suspenderet eller slettet (`detail` er et objekt med `code: org_suspended | org_deleted`).
Svarets headere
RateLimit-PolicyGældende grænser i formatet fra IETF-udkastet
draft-ietf-httpapi-ratelimit-headers: kommaseparerede elementer"<name>";q=<quota>;w=<window in seconds>.keyer API-nøglens anmodningshastighed (kvoten er burst, vinduet er tiden til fuld genopfyldning; for en session er detuser, uden legitimationsoplysningerip);minute,dayogmonther organisationens kvoter for kalenderminuttet, kalenderdagen og kalendermåneden i UTC.RateLimitHvad der er tilbage af hver grænse i
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitGrænsen for den strengeste post i
RateLimit-Policy(den med færrest resterende anmodninger).X-RateLimit-RemainingResterende anmodninger under den strengeste grænse.
X-RateLimit-ResetSekunder, til den strengeste grænse nulstilles.
application/json
404Objektet findes ikke eller er ikke tilgængeligt for dig. API’et bekræfter ikke, at et begrænset objekt findes.
Svarets headere
RateLimit-PolicyGældende grænser i formatet fra IETF-udkastet
draft-ietf-httpapi-ratelimit-headers: kommaseparerede elementer"<name>";q=<quota>;w=<window in seconds>.keyer API-nøglens anmodningshastighed (kvoten er burst, vinduet er tiden til fuld genopfyldning; for en session er detuser, uden legitimationsoplysningerip);minute,dayogmonther organisationens kvoter for kalenderminuttet, kalenderdagen og kalendermåneden i UTC.RateLimitHvad der er tilbage af hver grænse i
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitGrænsen for den strengeste post i
RateLimit-Policy(den med færrest resterende anmodninger).X-RateLimit-RemainingResterende anmodninger under den strengeste grænse.
X-RateLimit-ResetSekunder, til den strengeste grænse nulstilles.
application/json
409Objektets tilstand tillader ikke handlingen, fx en dublet, en igangværende indeksering eller et job, der allerede er behandlet.
Svarets headere
RateLimit-PolicyGældende grænser i formatet fra IETF-udkastet
draft-ietf-httpapi-ratelimit-headers: kommaseparerede elementer"<name>";q=<quota>;w=<window in seconds>.keyer API-nøglens anmodningshastighed (kvoten er burst, vinduet er tiden til fuld genopfyldning; for en session er detuser, uden legitimationsoplysningerip);minute,dayogmonther organisationens kvoter for kalenderminuttet, kalenderdagen og kalendermåneden i UTC.RateLimitHvad der er tilbage af hver grænse i
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitGrænsen for den strengeste post i
RateLimit-Policy(den med færrest resterende anmodninger).X-RateLimit-RemainingResterende anmodninger under den strengeste grænse.
X-RateLimit-ResetSekunder, til den strengeste grænse nulstilles.
application/json
422Valideringsfejl: brødteksten eller parametrene svarer ikke til skemaet (`detail` er en liste over valideringsfejl), eller en parameterværdi ligger uden for det tilladte interval (`detail` er en meddelelse).
Svarets headere
RateLimit-PolicyGældende grænser i formatet fra IETF-udkastet
draft-ietf-httpapi-ratelimit-headers: kommaseparerede elementer"<name>";q=<quota>;w=<window in seconds>.keyer API-nøglens anmodningshastighed (kvoten er burst, vinduet er tiden til fuld genopfyldning; for en session er detuser, uden legitimationsoplysningerip);minute,dayogmonther organisationens kvoter for kalenderminuttet, kalenderdagen og kalendermåneden i UTC.RateLimitHvad der er tilbage af hver grænse i
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitGrænsen for den strengeste post i
RateLimit-Policy(den med færrest resterende anmodninger).X-RateLimit-RemainingResterende anmodninger under den strengeste grænse.
X-RateLimit-ResetSekunder, til den strengeste grænse nulstilles.
application/json
429For mange anmodninger (`api.rate_limited`), organisationens kvote for minuttet, dagen eller måneden er brugt op (`api.quota_exceeded`; `error.details` indeholder `quota`, `limit` og `reset_at`), organisationens grænse er nået, eller svartjenesten er optaget (`answers.engine_busy`). Vent den tid, der står i headeren `Retry-After`.
Svarets headere
Retry-AfterAntal sekunder, du skal vente, før du prøver anmodningen igen.
RateLimit-PolicyGældende grænser i formatet fra IETF-udkastet
draft-ietf-httpapi-ratelimit-headers: kommaseparerede elementer"<name>";q=<quota>;w=<window in seconds>.keyer API-nøglens anmodningshastighed (kvoten er burst, vinduet er tiden til fuld genopfyldning; for en session er detuser, uden legitimationsoplysningerip);minute,dayogmonther organisationens kvoter for kalenderminuttet, kalenderdagen og kalendermåneden i UTC.RateLimitHvad der er tilbage af hver grænse i
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitGrænsen for den strengeste post i
RateLimit-Policy(den med færrest resterende anmodninger).X-RateLimit-RemainingResterende anmodninger under den strengeste grænse.
X-RateLimit-ResetSekunder, til den strengeste grænse nulstilles.
application/json
Fejlkoder
Koder, som denne operation kan returnere i error.code, ud over de generelle koder for alle anmodninger.
Sikre nye forsøg
Send en Idempotency-Key-header (fx et UUID) med hver POST og PATCH. Et nyt forsøg med den samme nøgle inden for 24 timer returnerer det gemte svar i stedet for at køre anmodningen igen.
Hastighedsgrænser
Svarene har headerne RateLimit og RateLimit-Policy samt de tidligere X-RateLimit-Limit, X-RateLimit-Remaining og X-RateLimit-Reset. Et 429-svar har Retry-After i sekunder: Vent, og forsøg igen.