Update the form's template
curl --request PATCH \
--url https://app.sajn.se/api/v1/forms/{id}/template \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "Intresseanmälan",
"templateMeta": {
"signingMode": "PARALLEL",
"forceReadFullDocument": false,
"showChatToSigners": false,
"value": "540000",
"signableAfterExpired": false,
"sendPlainTextEmailOnly": false,
"allowDelegation": false,
"responsibleUserId": "cm4k2x9p10002abcd1234efgh",
"accessVerification": "NONE",
"internalRecipients": [
"[email protected]"
],
"visibility": "EVERYONE",
"selectedUserIds": [
"cm4k2x9p10023abcd1234efgh"
],
"language": "sv",
"reminderIntervalDays": 3,
"nationalIdDisplayMode": "FULL",
"sameDeviceSigning": false,
"documentCategoryId": "cm4k2x9p10017abcd1234efgh"
}
}
'import requests
url = "https://app.sajn.se/api/v1/forms/{id}/template"
payload = {
"name": "Intresseanmälan",
"templateMeta": {
"signingMode": "PARALLEL",
"forceReadFullDocument": False,
"showChatToSigners": False,
"value": "540000",
"signableAfterExpired": False,
"sendPlainTextEmailOnly": False,
"allowDelegation": False,
"responsibleUserId": "cm4k2x9p10002abcd1234efgh",
"accessVerification": "NONE",
"internalRecipients": ["[email protected]"],
"visibility": "EVERYONE",
"selectedUserIds": ["cm4k2x9p10023abcd1234efgh"],
"language": "sv",
"reminderIntervalDays": 3,
"nationalIdDisplayMode": "FULL",
"sameDeviceSigning": False,
"documentCategoryId": "cm4k2x9p10017abcd1234efgh"
}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: 'Intresseanmälan',
templateMeta: {
signingMode: 'PARALLEL',
forceReadFullDocument: false,
showChatToSigners: false,
value: '540000',
signableAfterExpired: false,
sendPlainTextEmailOnly: false,
allowDelegation: false,
responsibleUserId: 'cm4k2x9p10002abcd1234efgh',
accessVerification: 'NONE',
internalRecipients: ['[email protected]'],
visibility: 'EVERYONE',
selectedUserIds: ['cm4k2x9p10023abcd1234efgh'],
language: 'sv',
reminderIntervalDays: 3,
nationalIdDisplayMode: 'FULL',
sameDeviceSigning: false,
documentCategoryId: 'cm4k2x9p10017abcd1234efgh'
}
})
};
fetch('https://app.sajn.se/api/v1/forms/{id}/template', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://app.sajn.se/api/v1/forms/{id}/template",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'name' => 'Intresseanmälan',
'templateMeta' => [
'signingMode' => 'PARALLEL',
'forceReadFullDocument' => false,
'showChatToSigners' => false,
'value' => '540000',
'signableAfterExpired' => false,
'sendPlainTextEmailOnly' => false,
'allowDelegation' => false,
'responsibleUserId' => 'cm4k2x9p10002abcd1234efgh',
'accessVerification' => 'NONE',
'internalRecipients' => [
'[email protected]'
],
'visibility' => 'EVERYONE',
'selectedUserIds' => [
'cm4k2x9p10023abcd1234efgh'
],
'language' => 'sv',
'reminderIntervalDays' => 3,
'nationalIdDisplayMode' => 'FULL',
'sameDeviceSigning' => false,
'documentCategoryId' => 'cm4k2x9p10017abcd1234efgh'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://app.sajn.se/api/v1/forms/{id}/template"
payload := strings.NewReader("{\n \"name\": \"Intresseanmälan\",\n \"templateMeta\": {\n \"signingMode\": \"PARALLEL\",\n \"forceReadFullDocument\": false,\n \"showChatToSigners\": false,\n \"value\": \"540000\",\n \"signableAfterExpired\": false,\n \"sendPlainTextEmailOnly\": false,\n \"allowDelegation\": false,\n \"responsibleUserId\": \"cm4k2x9p10002abcd1234efgh\",\n \"accessVerification\": \"NONE\",\n \"internalRecipients\": [\n \"[email protected]\"\n ],\n \"visibility\": \"EVERYONE\",\n \"selectedUserIds\": [\n \"cm4k2x9p10023abcd1234efgh\"\n ],\n \"language\": \"sv\",\n \"reminderIntervalDays\": 3,\n \"nationalIdDisplayMode\": \"FULL\",\n \"sameDeviceSigning\": false,\n \"documentCategoryId\": \"cm4k2x9p10017abcd1234efgh\"\n }\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.patch("https://app.sajn.se/api/v1/forms/{id}/template")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"Intresseanmälan\",\n \"templateMeta\": {\n \"signingMode\": \"PARALLEL\",\n \"forceReadFullDocument\": false,\n \"showChatToSigners\": false,\n \"value\": \"540000\",\n \"signableAfterExpired\": false,\n \"sendPlainTextEmailOnly\": false,\n \"allowDelegation\": false,\n \"responsibleUserId\": \"cm4k2x9p10002abcd1234efgh\",\n \"accessVerification\": \"NONE\",\n \"internalRecipients\": [\n \"[email protected]\"\n ],\n \"visibility\": \"EVERYONE\",\n \"selectedUserIds\": [\n \"cm4k2x9p10023abcd1234efgh\"\n ],\n \"language\": \"sv\",\n \"reminderIntervalDays\": 3,\n \"nationalIdDisplayMode\": \"FULL\",\n \"sameDeviceSigning\": false,\n \"documentCategoryId\": \"cm4k2x9p10017abcd1234efgh\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.sajn.se/api/v1/forms/{id}/template")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"Intresseanmälan\",\n \"templateMeta\": {\n \"signingMode\": \"PARALLEL\",\n \"forceReadFullDocument\": false,\n \"showChatToSigners\": false,\n \"value\": \"540000\",\n \"signableAfterExpired\": false,\n \"sendPlainTextEmailOnly\": false,\n \"allowDelegation\": false,\n \"responsibleUserId\": \"cm4k2x9p10002abcd1234efgh\",\n \"accessVerification\": \"NONE\",\n \"internalRecipients\": [\n \"[email protected]\"\n ],\n \"visibility\": \"EVERYONE\",\n \"selectedUserIds\": [\n \"cm4k2x9p10023abcd1234efgh\"\n ],\n \"language\": \"sv\",\n \"reminderIntervalDays\": 3,\n \"nationalIdDisplayMode\": \"FULL\",\n \"sameDeviceSigning\": false,\n \"documentCategoryId\": \"cm4k2x9p10017abcd1234efgh\"\n }\n}"
response = http.request(request)
puts response.read_body{
"id": "cm4k2x9p10023abcd1234efgh",
"name": "Intresseanmälan",
"templateMeta": {
"signingMode": "PARALLEL",
"forceReadFullDocument": false,
"showChatToSigners": false,
"language": "sv",
"value": "540000",
"signableAfterExpired": false,
"sendPlainTextEmailOnly": false,
"allowDelegation": false,
"reminderIntervalDays": 3,
"responsibleUserId": "cm4k2x9p10002abcd1234efgh",
"accessVerification": "NONE",
"internalRecipients": [
"[email protected]"
],
"visibility": "EVERYONE",
"selectedUserIds": [
"cm4k2x9p10023abcd1234efgh"
],
"nationalIdDisplayMode": "FULL",
"sameDeviceSigning": false,
"documentCategoryId": "cm4k2x9p10017abcd1234efgh"
},
"fields": [
{
"id": "cm4k2x9p10009abcd1234efgh",
"documentId": "cm4k2x9p10003abcd1234efgh",
"templateId": null,
"type": "TEXT",
"position": 0,
"fieldMeta": {
"type": "TEXT",
"content": "<p>Anställningen gäller tills vidare från och med den 1 november 2026, med sex månaders provanställning.</p>"
},
"createdAt": "2026-09-28T09:12:00.000Z",
"updatedAt": "2026-09-28T09:12:00.000Z"
}
],
"parties": [
{
"id": "cm4k2x9p10004abcd1234efgh",
"templateId": "cm4k2x9p10008abcd1234efgh",
"name": "Kai Lindqvist",
"email": "[email protected]",
"phone": "+46701740605",
"type": "INDIVIDUAL",
"role": "SIGNER",
"signingOrder": 1,
"contactId": "cm4k2x9p10006abcd1234efgh",
"company": null,
"externalId": "HR-2026-0142",
"nationalId": "191212121212",
"country": "SE",
"requiredSignature": "SE_BANKID",
"deliveryMethod": "EMAIL",
"twoStepVerification": "NONE",
"createdAt": "2026-09-28T09:12:00.000Z",
"updatedAt": "2026-09-28T09:15:00.000Z"
}
]
}{
"code": "VALIDATION_FAILED",
"message": "Invalid input: expected string, received number",
"userMessage": "Förfrågan innehåller ogiltiga värden.",
"requestId": "req_V1StGXR8Z5jdHi6BmyT2",
"issues": [
{
"path": "name",
"code": "INVALID_TYPE",
"message": "Invalid input: expected string, received number"
}
]
}{
"code": "UNAUTHORIZED",
"message": "Invalid API token",
"userMessage": "Ogiltig API-nyckel",
"requestId": "req_V1StGXR8Z5jdHi6BmyT2"
}{
"code": "INSUFFICIENT_SCOPE",
"message": "Insufficient OAuth scope: requires forms:write, documents:write",
"userMessage": "Applikationen saknar behörighet (scope) för denna åtgärd.",
"requestId": "req_V1StGXR8Z5jdHi6BmyT2",
"requiredScopes": [
"forms:write",
"documents:write"
],
"grantedScopes": [
"profile:read"
]
}{
"code": "NOT_FOUND",
"message": "Form not found",
"userMessage": "Resursen hittades inte.",
"requestId": "req_V1StGXR8Z5jdHi6BmyT2",
"resource": "form"
}{
"code": "INVALID_STATE",
"message": "The resource's current state doesn't allow the operation, such as editing a document that was already sent or downloading a file that isn't produced yet.",
"userMessage": "Åtgärden är inte möjlig i resursens nuvarande status.",
"requestId": "req_V1StGXR8Z5jdHi6BmyT2"
}{
"code": "RATE_LIMITED",
"message": "API rate limit exceeded",
"userMessage": "För många förfrågningar. Försök igen om en stund.",
"requestId": "req_V1StGXR8Z5jdHi6BmyT2"
}{
"code": "INTERNAL_ERROR",
"message": "Internal server error",
"userMessage": "Något gick fel.",
"requestId": "req_V1StGXR8Z5jdHi6BmyT2"
}{
"code": "UPSTREAM_UNAVAILABLE",
"message": "A service the operation depends on, such as an eID provider or a connected integration, failed or is unavailable. Retry with exponential backoff.",
"userMessage": "En extern tjänst svarar inte just nu. Försök igen om en stund.",
"requestId": "req_V1StGXR8Z5jdHi6BmyT2"
}Forms
Update the form's template
Change the template’s name, signing order and document defaults, and return the template. Settings you omit stay unchanged. Changes apply to future submissions only. Requires forms:write and documents:write, including for drafts.
PATCH
/
api
/
v1
/
forms
/
{id}
/
template
Update the form's template
curl --request PATCH \
--url https://app.sajn.se/api/v1/forms/{id}/template \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "Intresseanmälan",
"templateMeta": {
"signingMode": "PARALLEL",
"forceReadFullDocument": false,
"showChatToSigners": false,
"value": "540000",
"signableAfterExpired": false,
"sendPlainTextEmailOnly": false,
"allowDelegation": false,
"responsibleUserId": "cm4k2x9p10002abcd1234efgh",
"accessVerification": "NONE",
"internalRecipients": [
"[email protected]"
],
"visibility": "EVERYONE",
"selectedUserIds": [
"cm4k2x9p10023abcd1234efgh"
],
"language": "sv",
"reminderIntervalDays": 3,
"nationalIdDisplayMode": "FULL",
"sameDeviceSigning": false,
"documentCategoryId": "cm4k2x9p10017abcd1234efgh"
}
}
'import requests
url = "https://app.sajn.se/api/v1/forms/{id}/template"
payload = {
"name": "Intresseanmälan",
"templateMeta": {
"signingMode": "PARALLEL",
"forceReadFullDocument": False,
"showChatToSigners": False,
"value": "540000",
"signableAfterExpired": False,
"sendPlainTextEmailOnly": False,
"allowDelegation": False,
"responsibleUserId": "cm4k2x9p10002abcd1234efgh",
"accessVerification": "NONE",
"internalRecipients": ["[email protected]"],
"visibility": "EVERYONE",
"selectedUserIds": ["cm4k2x9p10023abcd1234efgh"],
"language": "sv",
"reminderIntervalDays": 3,
"nationalIdDisplayMode": "FULL",
"sameDeviceSigning": False,
"documentCategoryId": "cm4k2x9p10017abcd1234efgh"
}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: 'Intresseanmälan',
templateMeta: {
signingMode: 'PARALLEL',
forceReadFullDocument: false,
showChatToSigners: false,
value: '540000',
signableAfterExpired: false,
sendPlainTextEmailOnly: false,
allowDelegation: false,
responsibleUserId: 'cm4k2x9p10002abcd1234efgh',
accessVerification: 'NONE',
internalRecipients: ['[email protected]'],
visibility: 'EVERYONE',
selectedUserIds: ['cm4k2x9p10023abcd1234efgh'],
language: 'sv',
reminderIntervalDays: 3,
nationalIdDisplayMode: 'FULL',
sameDeviceSigning: false,
documentCategoryId: 'cm4k2x9p10017abcd1234efgh'
}
})
};
fetch('https://app.sajn.se/api/v1/forms/{id}/template', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://app.sajn.se/api/v1/forms/{id}/template",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'name' => 'Intresseanmälan',
'templateMeta' => [
'signingMode' => 'PARALLEL',
'forceReadFullDocument' => false,
'showChatToSigners' => false,
'value' => '540000',
'signableAfterExpired' => false,
'sendPlainTextEmailOnly' => false,
'allowDelegation' => false,
'responsibleUserId' => 'cm4k2x9p10002abcd1234efgh',
'accessVerification' => 'NONE',
'internalRecipients' => [
'[email protected]'
],
'visibility' => 'EVERYONE',
'selectedUserIds' => [
'cm4k2x9p10023abcd1234efgh'
],
'language' => 'sv',
'reminderIntervalDays' => 3,
'nationalIdDisplayMode' => 'FULL',
'sameDeviceSigning' => false,
'documentCategoryId' => 'cm4k2x9p10017abcd1234efgh'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://app.sajn.se/api/v1/forms/{id}/template"
payload := strings.NewReader("{\n \"name\": \"Intresseanmälan\",\n \"templateMeta\": {\n \"signingMode\": \"PARALLEL\",\n \"forceReadFullDocument\": false,\n \"showChatToSigners\": false,\n \"value\": \"540000\",\n \"signableAfterExpired\": false,\n \"sendPlainTextEmailOnly\": false,\n \"allowDelegation\": false,\n \"responsibleUserId\": \"cm4k2x9p10002abcd1234efgh\",\n \"accessVerification\": \"NONE\",\n \"internalRecipients\": [\n \"[email protected]\"\n ],\n \"visibility\": \"EVERYONE\",\n \"selectedUserIds\": [\n \"cm4k2x9p10023abcd1234efgh\"\n ],\n \"language\": \"sv\",\n \"reminderIntervalDays\": 3,\n \"nationalIdDisplayMode\": \"FULL\",\n \"sameDeviceSigning\": false,\n \"documentCategoryId\": \"cm4k2x9p10017abcd1234efgh\"\n }\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.patch("https://app.sajn.se/api/v1/forms/{id}/template")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"Intresseanmälan\",\n \"templateMeta\": {\n \"signingMode\": \"PARALLEL\",\n \"forceReadFullDocument\": false,\n \"showChatToSigners\": false,\n \"value\": \"540000\",\n \"signableAfterExpired\": false,\n \"sendPlainTextEmailOnly\": false,\n \"allowDelegation\": false,\n \"responsibleUserId\": \"cm4k2x9p10002abcd1234efgh\",\n \"accessVerification\": \"NONE\",\n \"internalRecipients\": [\n \"[email protected]\"\n ],\n \"visibility\": \"EVERYONE\",\n \"selectedUserIds\": [\n \"cm4k2x9p10023abcd1234efgh\"\n ],\n \"language\": \"sv\",\n \"reminderIntervalDays\": 3,\n \"nationalIdDisplayMode\": \"FULL\",\n \"sameDeviceSigning\": false,\n \"documentCategoryId\": \"cm4k2x9p10017abcd1234efgh\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.sajn.se/api/v1/forms/{id}/template")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"Intresseanmälan\",\n \"templateMeta\": {\n \"signingMode\": \"PARALLEL\",\n \"forceReadFullDocument\": false,\n \"showChatToSigners\": false,\n \"value\": \"540000\",\n \"signableAfterExpired\": false,\n \"sendPlainTextEmailOnly\": false,\n \"allowDelegation\": false,\n \"responsibleUserId\": \"cm4k2x9p10002abcd1234efgh\",\n \"accessVerification\": \"NONE\",\n \"internalRecipients\": [\n \"[email protected]\"\n ],\n \"visibility\": \"EVERYONE\",\n \"selectedUserIds\": [\n \"cm4k2x9p10023abcd1234efgh\"\n ],\n \"language\": \"sv\",\n \"reminderIntervalDays\": 3,\n \"nationalIdDisplayMode\": \"FULL\",\n \"sameDeviceSigning\": false,\n \"documentCategoryId\": \"cm4k2x9p10017abcd1234efgh\"\n }\n}"
response = http.request(request)
puts response.read_body{
"id": "cm4k2x9p10023abcd1234efgh",
"name": "Intresseanmälan",
"templateMeta": {
"signingMode": "PARALLEL",
"forceReadFullDocument": false,
"showChatToSigners": false,
"language": "sv",
"value": "540000",
"signableAfterExpired": false,
"sendPlainTextEmailOnly": false,
"allowDelegation": false,
"reminderIntervalDays": 3,
"responsibleUserId": "cm4k2x9p10002abcd1234efgh",
"accessVerification": "NONE",
"internalRecipients": [
"[email protected]"
],
"visibility": "EVERYONE",
"selectedUserIds": [
"cm4k2x9p10023abcd1234efgh"
],
"nationalIdDisplayMode": "FULL",
"sameDeviceSigning": false,
"documentCategoryId": "cm4k2x9p10017abcd1234efgh"
},
"fields": [
{
"id": "cm4k2x9p10009abcd1234efgh",
"documentId": "cm4k2x9p10003abcd1234efgh",
"templateId": null,
"type": "TEXT",
"position": 0,
"fieldMeta": {
"type": "TEXT",
"content": "<p>Anställningen gäller tills vidare från och med den 1 november 2026, med sex månaders provanställning.</p>"
},
"createdAt": "2026-09-28T09:12:00.000Z",
"updatedAt": "2026-09-28T09:12:00.000Z"
}
],
"parties": [
{
"id": "cm4k2x9p10004abcd1234efgh",
"templateId": "cm4k2x9p10008abcd1234efgh",
"name": "Kai Lindqvist",
"email": "[email protected]",
"phone": "+46701740605",
"type": "INDIVIDUAL",
"role": "SIGNER",
"signingOrder": 1,
"contactId": "cm4k2x9p10006abcd1234efgh",
"company": null,
"externalId": "HR-2026-0142",
"nationalId": "191212121212",
"country": "SE",
"requiredSignature": "SE_BANKID",
"deliveryMethod": "EMAIL",
"twoStepVerification": "NONE",
"createdAt": "2026-09-28T09:12:00.000Z",
"updatedAt": "2026-09-28T09:15:00.000Z"
}
]
}{
"code": "VALIDATION_FAILED",
"message": "Invalid input: expected string, received number",
"userMessage": "Förfrågan innehåller ogiltiga värden.",
"requestId": "req_V1StGXR8Z5jdHi6BmyT2",
"issues": [
{
"path": "name",
"code": "INVALID_TYPE",
"message": "Invalid input: expected string, received number"
}
]
}{
"code": "UNAUTHORIZED",
"message": "Invalid API token",
"userMessage": "Ogiltig API-nyckel",
"requestId": "req_V1StGXR8Z5jdHi6BmyT2"
}{
"code": "INSUFFICIENT_SCOPE",
"message": "Insufficient OAuth scope: requires forms:write, documents:write",
"userMessage": "Applikationen saknar behörighet (scope) för denna åtgärd.",
"requestId": "req_V1StGXR8Z5jdHi6BmyT2",
"requiredScopes": [
"forms:write",
"documents:write"
],
"grantedScopes": [
"profile:read"
]
}{
"code": "NOT_FOUND",
"message": "Form not found",
"userMessage": "Resursen hittades inte.",
"requestId": "req_V1StGXR8Z5jdHi6BmyT2",
"resource": "form"
}{
"code": "INVALID_STATE",
"message": "The resource's current state doesn't allow the operation, such as editing a document that was already sent or downloading a file that isn't produced yet.",
"userMessage": "Åtgärden är inte möjlig i resursens nuvarande status.",
"requestId": "req_V1StGXR8Z5jdHi6BmyT2"
}{
"code": "RATE_LIMITED",
"message": "API rate limit exceeded",
"userMessage": "För många förfrågningar. Försök igen om en stund.",
"requestId": "req_V1StGXR8Z5jdHi6BmyT2"
}{
"code": "INTERNAL_ERROR",
"message": "Internal server error",
"userMessage": "Något gick fel.",
"requestId": "req_V1StGXR8Z5jdHi6BmyT2"
}{
"code": "UPSTREAM_UNAVAILABLE",
"message": "A service the operation depends on, such as an eID provider or a connected integration, failed or is unavailable. Retry with exponential backoff.",
"userMessage": "En extern tjänst svarar inte just nu. Försök igen om en stund.",
"requestId": "req_V1StGXR8Z5jdHi6BmyT2"
}Authorizations
bearerAuthoauth2
Personal API key, e.g. Authorization: Bearer sajn_sk_.... Not scope-limited — acts as the issuing user.
Headers
API version for this request. Without it, the request uses the organization's default version; an organization without a default is pinned to the latest version by its first request.
Available options:
2026-09, 2026-10 Makes retries safe. A retry with the same key and the same request replays the stored response for 24 hours (header Idempotent-Replayed: true); the same key with a different request returns 400.
Maximum string length:
255Path Parameters
The form ID.
Body
application/json
Body
Was this page helpful?
⌘I

