Partner API Request / Response schema

Authenticate

method: POST
url: ‘/partner/authenticate’
Request Body:
  • email: str

  • password: str

Response Body:
  • adminAccessToken: str

Create / Update User

method: POST
url: ‘/partner/users/<user_id>’
Path:
  • user_id: str

Request Body:
  • userIdAtPartner: str | None; <= 256

  • userId: str

  • firstname: str | None; <= 150

  • lastname: str | None; <= 150

  • company: str | None; <= 150

  • email: str | None; <= 150

  • language: str | None

  • groups: sequence[#Group] | None

Response Body:
  • accesstoken: str

Refresh one time token

method: POST
url: ‘/partner/accesstoken’
Request Body:
  • token: str

Response Body:
  • userAccessToken: str

  • userId: str

  • apiKey: str | None

  • organizationId: str | None

Get Documents list

method: GET
url: ‘/partner/documents/list’
Request Query:
  • userIdSD: str | None

  • userId: str | None

  • groupId: str | None

  • withDeletionProcess: str | None; one of (‘true’, ‘false’)

Response Body:

list[#PartnerDocumentListItem]

Get Document Info

method: GET
url: ‘/partner/documents/<id:uuid>’
Path:
  • id: uuid representing str

Request Query:
  • userIdSD: str | None

  • userId: str | None

Response Body:
  • #PartnerDocumentListItem

Get background import state

method: GET
url: ‘/partner/documents/background-upload/<job_id:uuid>’
Path:
  • job_id: uuid representing str

Response Body:
  • state: str; one of (‘PENDING’, ‘FAILURE’, ‘SUCCESS’)

Get unseen changes statistics

method: GET
url: ‘/partner/documents/unseen/count’
Request Query:
  • userIdSD: str | None

  • userId: str | None

Response Body:
  • list[#PartnerNewsListGroup]

  • numWithAnyChange: float

  • numWithSectionChange: float

  • numWithConversationChange: float

Get unseen documents list

method: GET
url: ‘/partner/documents/unseen/list’
Request Query:
  • userIdSD: str | None

  • userId: str | None

  • group_id: str | None

Response Body:
  • list[#PartnerDocumentListItem]

Get Word templates

method: GET
url: ‘/partner/templates/word’
Response Body:
  • list[#WordTemplate]

Get SDOX templates

method: GET
url: ‘/partner/templates/word’
Response Body:
  • id: str | None

  • name: #TranslatedField | None

  • filename: str | None

  • description: str | None

  • metadata: map[str, Any] | None

  • pdSettings: map[str, Any] | None

Create Document

method: POST
url: ‘/partner/documents/create’
Request Body:
  • user: #UserInformation

  • filename: str | None

  • title: str; <= 200

  • subtitle: str | None; <= 300

  • description: str; <= 400

  • footer: str | None

  • supplemental: str | None; <= 400

  • group_id: str

  • sampleId: str | None

  • status: #DocumentStatus | None

  • userRole: #UserRole

  • sectionHistory: bool | None

  • admin: bool | None

  • documentExportDuplicate: bool | None

Response Body:
  • documentId: str

  • documentAccessLink: str

  • userIdSD: str

Get Magic Import mappings

method: GET
url: ‘/partner/imports/word/mapping’
Response Body:
  • : list[#MagicImportMappingItem]

Import Word

method: POST
url: ‘/partner/imports/word/upload’
Request File
Request Body:
  • user: #UserInformation

  • title: str; <=200

  • subtitle: st | None; <= 300

  • filename: str | None

  • footer: str | None

  • description: str; <=2000

  • supplemental: str | None; <=400

  • groupId: str

  • status: #DocumentStatus | None

  • userRole: #UserRole

  • sectionHistory: bool | None

  • admin: bool | None

  • documentExportDuplicate: bool | None

  • mapping: map[str, #PartnerImportStyleMappingEntry]

  • style_mapping: #StyleMapping | None

  • sampleId: str | None

  • routines: list[str] | None

  • isMagicImport: bool | None

  • styleSetKey: #SrtyleSetKey | None

  • options: #WordImportOptions | None

Response Body:
  • documentId: str

  • documentAccessLink: str

  • userIdSD: str

Import SDXML

method: POST
url: ‘/partner/imports/sdxml/upload’
Request File
Request Body:
  • user: #UserInformation

  • filename: str | None

  • title: str; <= 200

  • subtitle: str | None; <= 300

  • description: str; <= 400

  • footer: str | None; <= 400

  • groupId: str

  • sampleId: str | None

  • status: #DocumentStatus | None

  • userRole: #UserRole

  • sectionHistory: bool | None

  • admin: bool | None

  • documentExportDuplicate: bool | None

Response Body:
  • document_id: str

  • document_access_link: str

  • userIdSD: str

Open Document

method: POST
url: ‘/partner/documents/<id:uuid>’
Path:
  • id: uuid representing str

Request Body:
  • user: #UserInformation

  • user_role: #UserRole

  • sectionHistory: bool | None

  • admin: bool | None

  • documentExportDuplicate: bool | None

Response Body:
  • documentId: str

  • documentAccessLink: str

  • userIdSD: str

Set Document Metadata

method: POST
url = ‘/partner/documents/<id:uuid>/metadata’
Path:
  • id: uuid representing str

Request Body:
  • filename: str | None; <= 200

  • title: str | None; <= 200

  • description: str | None; <= 2000

  • subtitle: str | None; <= 300

  • footer: str | None; <= 250

  • tags: list[str] | None; <=30 each item of the list

  • supplemental: str | None; <= 400

Archive Document

method: POST
url: ‘/partner/documents/<id:uuid>/archive’
Path:
  • id: uuid representing str

Unmark Document as archived

method: POST
url: ‘/partner/documents/<id:uuid>/unarchive’
Path:
  • id: uuid representing str

Start Document review

method: POST
url: ‘/partner/documents/<id:uuid>/review’
Path:
  • id: uuid representing str

Delete Draft Document

method: DELETE
url: ‘/partner/documents/<id:uuid>’
Path:
  • id: uuid representing str

Duplicate Document

method: POST
url: ‘/partner/documents/<id:uuid>/duplicate’
Path:
  • id: uuid representing str

Request Body:
  • title: str

  • description: str

  • creatorUserId: str | None

  • creatorUserIdSD: str | None

Response Body:
  • documentId: str

Export word

method: POST
url: ‘/partner/documents/<document_id>/export/word’
Path:
  • document_id: str

Request Body:
  • user_id: str

  • templateId: str

  • settings: #PartnerWordExportSettings

Export SDXML

method: POST
url: ‘/partner/documents/<document_id>/export/sdxml’
Path:
  • document_id: str

Request Body:
  • userId: str

Export ParsX

method: POST
url: ‘/partner/documents/<document_id>/export/parsx’
Path:
  • document_id: str

Request Body:
  • user_id: str

Export ParsX

method: POST
url: ‘/partner/documents/<document_id>/export/html’
Path:
  • document_id: str

Request Body:
  • user_id: str

  • download: bool

  • type: #HTMLType

Start Review Document deletion

method: POST
url: ‘/partner/documents/<document_id:uuid>/deletion-process’
Path:
  • document_id: str

Request Body:
  • user_id: str

  • message: str | None

  • immediate: bool | None

Abort Review Document deletion

method: POST
url: ‘/partner/documents/<document_id:uuid>/deletion-process’
Path:
  • document_id: str

Request Body:
  • message: str | None

Get User

method: GET
url: ‘/partner/users/<user_id_partner>’
Path:
  • user_id_partner: str

Response Body:

_id: str company: str email: str; <= 150 isInternal: bool firstname: str lastname: str pictureSmall: str picture: str pictureMobile: str settings: #UserSettings licenseInfo: map[str, Any] lastSeenSdVersion: str avatarColor: list[str] systemRole: str

Get Routines config

method: GET
url: ‘/partner/routines’
Response Body:

-: list[#CleanupRoutine]

#REFS

#TranslatedField:
  • deDe: str

  • enEn: str

  • esEs: str

  • frBe: str

  • frCa: str

  • frFr: str

  • nlBe: str

  • ruRu: str

#WordTemplate:
  • id: str

  • name: str

  • completed: bool | None

  • description: str

#PartnerNewsListGroup:
  • group_id: str

  • numWithAnyChange: float

  • numWithSectionChange: float

  • numWithConversationChange: float

#DocumentStatus:
  • str; one of (‘draft’, ‘review’)

#PartnerDocumentListItem:
  • filename: str

  • title: str

  • subtitle: str

  • description: str

  • footer: str

  • tags: list[str]

  • supplemental: str

  • id: str

  • sample_id: str

  • status: #DocumentStatus

  • creatorIdSD: str

  • creatorIdd: str

  • hasOpenedDocument: bool

  • hasUnreadConversationChanges: bool

  • hasUnreadSectionChanges: bool

  • groupId: str

  • archived: bool

  • createdDate: float

  • modificationDate: float

  • unreadChangesSince: float | None

  • unreadConversationsSince: float | None

#Group:
  • id: str; > 1

  • role: #UserRole | None

#UserRole:
  • str; one of (‘reader’, ‘commentator’, ‘editor’, ‘approver’)

#UserInformation:
  • userIdAtPartner: str | None; <= 256

  • userId: str | None

  • firstname: str | None; <= 150

  • lastname: str | None; <= 150

  • position: str | None; <= 150

  • company: str | None; <= 150

  • email: str | None; <= 150

  • language: str | None

  • groups: list[#Group] | None

#MagicImportMappingItem:
  • key: str

  • name: map[str, Any]

  • previewImage: str | None

#PartnerImportStyleMappingEntry:
  • textType: #TextType

  • level: int | None; 0 <= val <= 5

  • paragraphDecoratorKey: str | None; <= 200

#TextType:
  • : str; one of (‘paragraph’, ‘paragraph-ol’, ‘heading’, ‘heading-ol’, ‘caption’, ‘list-ol’, ‘list-ul’,

    ‘paragraphDecorator’)

#StyleMapping:
  • paragraph: map[str, #PartnerImportStyleMappingEntry]

  • inline: map[str, str]

  • bulletList: list[str] | None

  • numeratedList: list[str] | None

#StyleSetKey:
  • : str; one of (

    ‘testing’, ‘numbered-headers’, ‘numbered-headers-2’, ‘contract_1-1-1’, ‘contract_1-1-a’, ‘contract_1-a-i’, ‘contract_1-a-a’

)

#WordImportOptions:
  • imagesNumbered: bool

  • tablesNumbered: bool

  • formulasNumbered: bool

#PartnerWordExportSettings:
  • formulaCaption: bool | None

  • textToc: bool | None

  • imageCaption: bool | None

  • tableCaption: bool | None

  • imageToc: bool | None

  • tableToc: bool | None

  • exportTrackChanges: bool | None

  • compressedImages: bool | None

  • language: #LanguageMinLength

#LanguageMinLength:
  • deDe: str | None; >= 0

  • enEn: str | None; >= 0

  • esEs: str | None; >= 0

  • frBe: str | None; >= 0

  • frCa: str | None; >= 0

  • frFr: str | None; >= 0

  • nlBe: str | None; >= 0

  • ruRu: str | None; >= 0

#HTMLType:
  • : str; one of (‘html, ‘html_all_in_one’)

#UserSettings:
  • lang: str

  • liveRedline: bool

  • tooltips: bool

  • selectionAutocomplete: bool

  • individualDecide: bool

  • debugModeTransFormations: bool

  • autoCollapsePdGroup: bool

#CleanupRoutine:
  • key: str

  • name: #TranslatedField

  • type: str; one of (‘routine’, ‘group’)

  • actions: list[#CleanupRoutineAction] | None

  • routines: list[#Routine] | None

#CleanupRoutineAction:
  • filters: list[map[str, Any]] | None

  • processor: map[str, Any]

#Routine:
  • type: str

  • key: str

  • name: #TranslatedField

  • actions: list[#CleanupRoutineAction]