{"openapi":"3.1.0","info":{"title":"Agrello Public API","description":"Agrello Public API","termsOfService":"https://www.agrello.id/legal/terms-of-use","contact":{"name":"Agrello","url":"https://www.agrello.io","email":"support@agrello.io"},"license":{},"version":"1.0.0"},"servers":[{"url":"https://api.agrello.io/public","description":"Generated server url"}],"security":[{"client_api":[]}],"paths":{"/v3/webhooks":{"get":{"tags":["Webhook endpoints"],"summary":"Get all user Webhooks.","description":"`REMINDER_CREATED` event content `{ userId: string, containerId: string, reminderId: string, spaceId: string }`<br><br>`DOCUMENT_SIGNED` event content `{ containerId: string, userId: string, signerCount: integer }`<br><br>`DOCUMENT_SIGNATURE_ADDED` event content `{ containerId: string, ownerId: string, userId: string (optional), username: string }`","operationId":"getWebhooks","responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetWebhooksResponse"}}}},"400":{"description":"Bad Request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized."},"403":{"description":"Insufficient permissions.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"404":{"description":"Resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"405":{"description":"Method not allowed. The Allow response header lists the supported methods.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"408":{"description":"Timed out waiting for an upstream service.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"415":{"description":"Unsupported media type. The Accept response header lists the supported types.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"500":{"description":"Unexpected server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"429":{"description":"Rate limit exceeded. Inspect the Retry-After response header for the recommended wait before retrying.","headers":{"Retry-After":{"description":"Seconds the client should wait before retrying.","style":"simple","schema":{"type":"integer","format":"int64"}}},"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/RateLimitProblem"}}}}}},"post":{"tags":["Webhook endpoints"],"summary":"Register new webhook.","operationId":"registerWebhook","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateWebHookRequest"}}},"required":true},"responses":{"201":{"description":"Successfully created.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebHook"}}}},"400":{"description":"Bad Request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized."},"403":{"description":"Insufficient permissions.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"404":{"description":"Resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"405":{"description":"Method not allowed. The Allow response header lists the supported methods.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"408":{"description":"Timed out waiting for an upstream service.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"415":{"description":"Unsupported media type. The Accept response header lists the supported types.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"500":{"description":"Unexpected server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"429":{"description":"Rate limit exceeded. Inspect the Retry-After response header for the recommended wait before retrying.","headers":{"Retry-After":{"description":"Seconds the client should wait before retrying.","style":"simple","schema":{"type":"integer","format":"int64"}}},"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/RateLimitProblem"}}}}}}},"/v3/folders/{folderId}/templates":{"get":{"tags":["Folder endpoints"],"summary":"Get Folder Templates.","operationId":"getFolderTemplates","parameters":[{"name":"folderId","in":"path","required":true,"schema":{"type":"string"}},{"name":"templateType","in":"query","description":"Used for filtering only for certain types of templates based on `type` field","required":false,"schema":{"type":"string","enum":["BINARY","XML","HTML","PLAIN","PDF","ASICE","ADOC","EDOC","ZIP","DOC","DOCX","XLS","XLSX","ODS","PPT","PPTX","PPSX","ODP","ODT","RTF","PNG","JPEG","JPG","TIFF"]}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetSpaceTemplatesResponse"}}}},"400":{"description":"Bad Request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized."},"403":{"description":"Insufficient permissions.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"404":{"description":"Resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"405":{"description":"Method not allowed. The Allow response header lists the supported methods.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"408":{"description":"Timed out waiting for an upstream service.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"415":{"description":"Unsupported media type. The Accept response header lists the supported types.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"500":{"description":"Unexpected server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"429":{"description":"Rate limit exceeded. Inspect the Retry-After response header for the recommended wait before retrying.","headers":{"Retry-After":{"description":"Seconds the client should wait before retrying.","style":"simple","schema":{"type":"integer","format":"int64"}}},"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/RateLimitProblem"}}}}}},"post":{"tags":["Folder endpoints"],"summary":"Create Template.","description":"Refer to `CreateTemplateRequest` schema at the bottom of the page for request details.<br><br><b>NB!</b> Multipart requests currently do not work in Swagger UI.","operationId":"createTemplate","parameters":[{"name":"folderId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","format":"binary"}},"required":["file"]}}}},"responses":{"201":{"description":"Successfully created.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Template"}}}},"400":{"description":"Bad Request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized."},"403":{"description":"Insufficient permissions.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"404":{"description":"Resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"405":{"description":"Method not allowed. The Allow response header lists the supported methods.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"408":{"description":"Timed out waiting for an upstream service.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"415":{"description":"Unsupported media type. The Accept response header lists the supported types.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"500":{"description":"Unexpected server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"429":{"description":"Rate limit exceeded. Inspect the Retry-After response header for the recommended wait before retrying.","headers":{"Retry-After":{"description":"Seconds the client should wait before retrying.","style":"simple","schema":{"type":"integer","format":"int64"}}},"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/RateLimitProblem"}}}}}}},"/v3/folders/{folderId}/folders":{"get":{"tags":["Folder endpoints"],"summary":"Get Sub-Folders.","operationId":"getSubFolders","parameters":[{"name":"folderId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetSpaceSubspacesResponse"}}}},"400":{"description":"Bad Request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized."},"403":{"description":"Insufficient permissions.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"404":{"description":"Resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"405":{"description":"Method not allowed. The Allow response header lists the supported methods.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"408":{"description":"Timed out waiting for an upstream service.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"415":{"description":"Unsupported media type. The Accept response header lists the supported types.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"500":{"description":"Unexpected server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"429":{"description":"Rate limit exceeded. Inspect the Retry-After response header for the recommended wait before retrying.","headers":{"Retry-After":{"description":"Seconds the client should wait before retrying.","style":"simple","schema":{"type":"integer","format":"int64"}}},"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/RateLimitProblem"}}}}}},"post":{"tags":["Folder endpoints"],"summary":"Create Sub-Folder.","operationId":"createSubFolder","parameters":[{"name":"folderId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSpaceRequest"}}},"required":true},"responses":{"201":{"description":"Successfully created.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Space"}}}},"400":{"description":"Bad Request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized."},"403":{"description":"Insufficient permissions.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"404":{"description":"Resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"405":{"description":"Method not allowed. The Allow response header lists the supported methods.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"408":{"description":"Timed out waiting for an upstream service.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"415":{"description":"Unsupported media type. The Accept response header lists the supported types.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"500":{"description":"Unexpected server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"429":{"description":"Rate limit exceeded. Inspect the Retry-After response header for the recommended wait before retrying.","headers":{"Retry-After":{"description":"Seconds the client should wait before retrying.","style":"simple","schema":{"type":"integer","format":"int64"}}},"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/RateLimitProblem"}}}}}}},"/v3/folders/{folderId}/containers":{"get":{"tags":["Folder endpoints"],"summary":"Get Folder Containers.","operationId":"getContainers","parameters":[{"name":"folderId","in":"path","required":true,"schema":{"type":"string"}},{"name":"page","in":"query","description":"Zero-based page index (0..N)","required":false,"schema":{"type":"integer","default":0,"minimum":0}},{"name":"size","in":"query","description":"The size of the page to be returned","required":false,"schema":{"type":"integer","default":500,"minimum":1}},{"name":"sort","in":"query","description":"Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.","required":false,"schema":{"type":"array","items":{"type":"string"}}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageContainer"}}}},"400":{"description":"Bad Request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized."},"403":{"description":"Insufficient permissions.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"404":{"description":"Resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"405":{"description":"Method not allowed. The Allow response header lists the supported methods.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"408":{"description":"Timed out waiting for an upstream service.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"415":{"description":"Unsupported media type. The Accept response header lists the supported types.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"500":{"description":"Unexpected server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"429":{"description":"Rate limit exceeded. Inspect the Retry-After response header for the recommended wait before retrying.","headers":{"Retry-After":{"description":"Seconds the client should wait before retrying.","style":"simple","schema":{"type":"integer","format":"int64"}}},"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/RateLimitProblem"}}}}}},"post":{"tags":["Folder endpoints"],"summary":"Create Container.","description":"Create Container based on Template (optional) with file variables filled and participants assigned.<br>Refer to `CreateContainerRequest` schema at the bottom of the page for request details.<br><br><b>NB!</b> Multipart requests currently do not work in Swagger UI.","operationId":"createContainer","parameters":[{"name":"folderId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"request":{"$ref":"#/components/schemas/CreateContainerRequest"},"file":{"type":"array","items":{"type":"string","format":"binary"}}},"required":["request"]}}}},"responses":{"201":{"description":"Successfully created.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Container"}}}},"400":{"description":"Bad Request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized."},"403":{"description":"Insufficient permissions.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"404":{"description":"Resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"405":{"description":"Method not allowed. The Allow response header lists the supported methods.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"408":{"description":"Timed out waiting for an upstream service.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"415":{"description":"Unsupported media type. The Accept response header lists the supported types.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"500":{"description":"Unexpected server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"429":{"description":"Rate limit exceeded. Inspect the Retry-After response header for the recommended wait before retrying.","headers":{"Retry-After":{"description":"Seconds the client should wait before retrying.","style":"simple","schema":{"type":"integer","format":"int64"}}},"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/RateLimitProblem"}}}}}}},"/v3/folders":{"get":{"tags":["Folder endpoints"],"summary":"Get Folders.","operationId":"getFolders","parameters":[{"name":"page","in":"query","description":"Zero-based page index (0..N)","required":false,"schema":{"type":"integer","default":0,"minimum":0}},{"name":"size","in":"query","description":"The size of the page to be returned","required":false,"schema":{"type":"integer","default":100,"minimum":1}},{"name":"sort","in":"query","description":"Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.","required":false,"schema":{"type":"array","items":{"type":"string"}}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageSpace"}}}},"400":{"description":"Bad Request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized."},"403":{"description":"Insufficient permissions.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"404":{"description":"Resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"405":{"description":"Method not allowed. The Allow response header lists the supported methods.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"408":{"description":"Timed out waiting for an upstream service.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"415":{"description":"Unsupported media type. The Accept response header lists the supported types.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"500":{"description":"Unexpected server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"429":{"description":"Rate limit exceeded. Inspect the Retry-After response header for the recommended wait before retrying.","headers":{"Retry-After":{"description":"Seconds the client should wait before retrying.","style":"simple","schema":{"type":"integer","format":"int64"}}},"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/RateLimitProblem"}}}}}},"post":{"tags":["Folder endpoints"],"summary":"Create Folder.","operationId":"createFolder","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSpaceRequest"}}},"required":true},"responses":{"201":{"description":"Successfully created.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Space"}}}},"400":{"description":"Bad Request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized."},"403":{"description":"Insufficient permissions.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"404":{"description":"Resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"405":{"description":"Method not allowed. The Allow response header lists the supported methods.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"408":{"description":"Timed out waiting for an upstream service.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"415":{"description":"Unsupported media type. The Accept response header lists the supported types.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"500":{"description":"Unexpected server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"429":{"description":"Rate limit exceeded. Inspect the Retry-After response header for the recommended wait before retrying.","headers":{"Retry-After":{"description":"Seconds the client should wait before retrying.","style":"simple","schema":{"type":"integer","format":"int64"}}},"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/RateLimitProblem"}}}}}}},"/v3/containers/{containerId}/invitations":{"post":{"tags":["Container endpoints"],"summary":"Invite additional signers and/or viewers to a Container or resend invitations to some existing signers and/or viewers.","description":"Sends invitations to the listed people.\n\nIncluding a previously added viewer or signer will resend an invitation to them.\nAn invitation is not always emailed straight away - the Container must have been sent for signing and signers are only emailed when it is their turn in the signing order.\n\nFetch the Container or its invitation URLs afterwards if you need the updated state.","operationId":"addContainerInvitations","parameters":[{"name":"containerId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddContainerInvitationsRequest"}}},"required":true},"responses":{"204":{"description":"Success. No response body.","content":{}},"400":{"description":"Bad Request.","content":{"*/*":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized."},"403":{"description":"Insufficient permissions.","content":{"*/*":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"404":{"description":"Resource not found.","content":{"*/*":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"405":{"description":"Method not allowed. The Allow response header lists the supported methods.","content":{"*/*":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"408":{"description":"Timed out waiting for an upstream service.","content":{"*/*":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"415":{"description":"Unsupported media type. The Accept response header lists the supported types.","content":{"*/*":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"500":{"description":"Unexpected server error.","content":{"*/*":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"429":{"description":"Rate limit exceeded. Inspect the Retry-After response header for the recommended wait before retrying.","headers":{"Retry-After":{"description":"Seconds the client should wait before retrying.","style":"simple","schema":{"type":"integer","format":"int64"}}},"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/RateLimitProblem"}}}}}}},"/v3/workspace":{"get":{"tags":["Workspace endpoints"],"summary":"Get credential-based Workspace.","operationId":"getWorkspace","responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Workspace"}}}},"400":{"description":"Bad Request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized."},"403":{"description":"Insufficient permissions.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"404":{"description":"Resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"405":{"description":"Method not allowed. The Allow response header lists the supported methods.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"408":{"description":"Timed out waiting for an upstream service.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"415":{"description":"Unsupported media type. The Accept response header lists the supported types.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"500":{"description":"Unexpected server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"429":{"description":"Rate limit exceeded. Inspect the Retry-After response header for the recommended wait before retrying.","headers":{"Retry-After":{"description":"Seconds the client should wait before retrying.","style":"simple","schema":{"type":"integer","format":"int64"}}},"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/RateLimitProblem"}}}}}}},"/v3/webhooks/{webhookId}":{"get":{"tags":["Webhook endpoints"],"summary":"Get Webhook by ID.","operationId":"getWebhook","parameters":[{"name":"webhookId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebHook"}}}},"400":{"description":"Bad Request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized."},"403":{"description":"Insufficient permissions.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"404":{"description":"Resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"405":{"description":"Method not allowed. The Allow response header lists the supported methods.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"408":{"description":"Timed out waiting for an upstream service.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"415":{"description":"Unsupported media type. The Accept response header lists the supported types.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"500":{"description":"Unexpected server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"429":{"description":"Rate limit exceeded. Inspect the Retry-After response header for the recommended wait before retrying.","headers":{"Retry-After":{"description":"Seconds the client should wait before retrying.","style":"simple","schema":{"type":"integer","format":"int64"}}},"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/RateLimitProblem"}}}}}},"delete":{"tags":["Webhook endpoints"],"summary":"Delete Webhook.","operationId":"deleteWebhook","parameters":[{"name":"webhookId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"Successfully deleted.","content":{}},"400":{"description":"Bad Request.","content":{"*/*":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized."},"403":{"description":"Insufficient permissions.","content":{"*/*":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"404":{"description":"Resource not found.","content":{"*/*":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"405":{"description":"Method not allowed. The Allow response header lists the supported methods.","content":{"*/*":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"408":{"description":"Timed out waiting for an upstream service.","content":{"*/*":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"415":{"description":"Unsupported media type. The Accept response header lists the supported types.","content":{"*/*":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"500":{"description":"Unexpected server error.","content":{"*/*":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"429":{"description":"Rate limit exceeded. Inspect the Retry-After response header for the recommended wait before retrying.","headers":{"Retry-After":{"description":"Seconds the client should wait before retrying.","style":"simple","schema":{"type":"integer","format":"int64"}}},"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/RateLimitProblem"}}}}}}},"/v3/templates/{templateId}":{"get":{"tags":["Template endpoints"],"summary":"Get Template by ID.","operationId":"getTemplate","parameters":[{"name":"templateId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Template"}}}},"400":{"description":"Bad Request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized."},"403":{"description":"Insufficient permissions.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"404":{"description":"Resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"405":{"description":"Method not allowed. The Allow response header lists the supported methods.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"408":{"description":"Timed out waiting for an upstream service.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"415":{"description":"Unsupported media type. The Accept response header lists the supported types.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"500":{"description":"Unexpected server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"429":{"description":"Rate limit exceeded. Inspect the Retry-After response header for the recommended wait before retrying.","headers":{"Retry-After":{"description":"Seconds the client should wait before retrying.","style":"simple","schema":{"type":"integer","format":"int64"}}},"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/RateLimitProblem"}}}}}},"delete":{"tags":["Template endpoints"],"summary":"Delete Template.","operationId":"deleteTemplate","parameters":[{"name":"templateId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"Successfully deleted.","content":{}},"400":{"description":"Bad Request.","content":{"*/*":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized."},"403":{"description":"Insufficient permissions.","content":{"*/*":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"404":{"description":"Resource not found.","content":{"*/*":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"405":{"description":"Method not allowed. The Allow response header lists the supported methods.","content":{"*/*":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"408":{"description":"Timed out waiting for an upstream service.","content":{"*/*":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"415":{"description":"Unsupported media type. The Accept response header lists the supported types.","content":{"*/*":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"500":{"description":"Unexpected server error.","content":{"*/*":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"429":{"description":"Rate limit exceeded. Inspect the Retry-After response header for the recommended wait before retrying.","headers":{"Retry-After":{"description":"Seconds the client should wait before retrying.","style":"simple","schema":{"type":"integer","format":"int64"}}},"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/RateLimitProblem"}}}}}}},"/v3/containers/{containerId}/output":{"get":{"tags":["Container endpoints"],"summary":"Download Container output file.","description":"Download the output file depending on the `outputType` for a Container that has signatures.","operationId":"downloadContainerOutput","parameters":[{"name":"containerId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"400":{"description":"Bad Request.","content":{"application/octet-stream":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized."},"403":{"description":"Insufficient permissions.","content":{"application/octet-stream":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"404":{"description":"Resource not found.","content":{"application/octet-stream":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"405":{"description":"Method not allowed. The Allow response header lists the supported methods.","content":{"application/octet-stream":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"408":{"description":"Timed out waiting for an upstream service.","content":{"application/octet-stream":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"415":{"description":"Unsupported media type. The Accept response header lists the supported types.","content":{"application/octet-stream":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"500":{"description":"Unexpected server error.","content":{"application/octet-stream":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"429":{"description":"Rate limit exceeded. Inspect the Retry-After response header for the recommended wait before retrying.","headers":{"Retry-After":{"description":"Seconds the client should wait before retrying.","style":"simple","schema":{"type":"integer","format":"int64"}}},"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/RateLimitProblem"}}}}}}},"/v3/containers/{containerId}/invitations/urls":{"get":{"tags":["Container endpoints"],"summary":"Get container invitation share links by container invitation ID.","description":"\n            Returns each sent-out invitation's latest share link in `links` — its `url` plus\n            `expiresAt` — regardless of whether that link is still live. An `expiresAt` in the\n            past means the link expired then; resend the invitation via\n            `POST /v3/containers/{containerId}/invitations` to obtain a new one.\n\n            The deprecated `data` map carries only the links that are still live, as bare URLs.\n            ","operationId":"getContainerInvitationsUrls","parameters":[{"name":"containerId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContainerInvitationUrlsResponse"}}}},"400":{"description":"Bad Request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized."},"403":{"description":"Insufficient permissions.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"404":{"description":"Resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"405":{"description":"Method not allowed. The Allow response header lists the supported methods.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"408":{"description":"Timed out waiting for an upstream service.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"415":{"description":"Unsupported media type. The Accept response header lists the supported types.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"500":{"description":"Unexpected server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"429":{"description":"Rate limit exceeded. Inspect the Retry-After response header for the recommended wait before retrying.","headers":{"Retry-After":{"description":"Seconds the client should wait before retrying.","style":"simple","schema":{"type":"integer","format":"int64"}}},"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/RateLimitProblem"}}}}}}},"/v3/containers/{containerId}":{"get":{"tags":["Container endpoints"],"summary":"Get Container by ID.","operationId":"getContainer","parameters":[{"name":"containerId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Container"}}}},"400":{"description":"Bad Request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized."},"403":{"description":"Insufficient permissions.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"404":{"description":"Resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"405":{"description":"Method not allowed. The Allow response header lists the supported methods.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"408":{"description":"Timed out waiting for an upstream service.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"415":{"description":"Unsupported media type. The Accept response header lists the supported types.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"500":{"description":"Unexpected server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"429":{"description":"Rate limit exceeded. Inspect the Retry-After response header for the recommended wait before retrying.","headers":{"Retry-After":{"description":"Seconds the client should wait before retrying.","style":"simple","schema":{"type":"integer","format":"int64"}}},"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/RateLimitProblem"}}}}}},"delete":{"tags":["Container endpoints"],"summary":"Delete Container.","operationId":"deleteContainer","parameters":[{"name":"containerId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"Successfully deleted.","content":{}},"400":{"description":"Bad Request.","content":{"*/*":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized."},"403":{"description":"Insufficient permissions.","content":{"*/*":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"404":{"description":"Resource not found.","content":{"*/*":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"405":{"description":"Method not allowed. The Allow response header lists the supported methods.","content":{"*/*":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"408":{"description":"Timed out waiting for an upstream service.","content":{"*/*":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"415":{"description":"Unsupported media type. The Accept response header lists the supported types.","content":{"*/*":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"500":{"description":"Unexpected server error.","content":{"*/*":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"429":{"description":"Rate limit exceeded. Inspect the Retry-After response header for the recommended wait before retrying.","headers":{"Retry-After":{"description":"Seconds the client should wait before retrying.","style":"simple","schema":{"type":"integer","format":"int64"}}},"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/RateLimitProblem"}}}}}}},"/v3/folders/{spaceId}":{"delete":{"tags":["Folder endpoints"],"summary":"Delete Folder.","operationId":"deleteFolder","parameters":[{"name":"spaceId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"Successfully deleted.","content":{}},"400":{"description":"Bad Request.","content":{"*/*":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized."},"403":{"description":"Insufficient permissions.","content":{"*/*":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"404":{"description":"Resource not found.","content":{"*/*":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"405":{"description":"Method not allowed. The Allow response header lists the supported methods.","content":{"*/*":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"408":{"description":"Timed out waiting for an upstream service.","content":{"*/*":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"415":{"description":"Unsupported media type. The Accept response header lists the supported types.","content":{"*/*":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"500":{"description":"Unexpected server error.","content":{"*/*":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"429":{"description":"Rate limit exceeded. Inspect the Retry-After response header for the recommended wait before retrying.","headers":{"Retry-After":{"description":"Seconds the client should wait before retrying.","style":"simple","schema":{"type":"integer","format":"int64"}}},"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/RateLimitProblem"}}}}}}}},"components":{"schemas":{"CreateWebHookRequest":{"type":"object","properties":{"event":{"type":"string","description":"Type of event this webhook is listens for","enum":["DOCUMENT_SIGNATURE_ADDED","DOCUMENT_SIGNED","REMINDER_CREATED"]},"url":{"type":"string","description":"Callback URL"}},"required":["event","url"]},"BadRequestResponse":{"type":"object","properties":{"error":{"type":"string","description":"Error type; the HTTP reason phrase"},"errorCode":{"type":"string","description":"Error code"},"message":{"type":"string","description":"Human friendly error message"},"params":{"type":"null","description":"Any object specific for certain response (for example limits that was reached)","example":{"limit":10}},"path":{"type":"string","description":"An URL that was requested by client"},"status":{"type":"integer","format":"int32","description":"Http response status"},"timestamp":{"type":"string","format":"date-time","description":"Timestamp when request was handled by server"}},"required":["error","errorCode","message","path","status","timestamp"]},"RateLimitProblem":{"type":"object","properties":{"type":{"type":"string","description":"Problem type URI","enum":["about:blank"]},"title":{"type":"string","description":"Short human-readable summary","enum":["Too Many Requests"]},"status":{"type":"integer","format":"int32","description":"HTTP response status","enum":["429"]},"detail":{"type":"string","description":"Human-readable explanation"},"scope":{"type":"string","description":"Which bucket was exhausted","enum":["per_key","global"]},"retryAfterSeconds":{"type":"integer","format":"int64","description":"Seconds the client should wait before retrying; mirrors the Retry-After header"}},"required":["detail","retryAfterSeconds","scope","status","title","type"]},"WebHook":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier"},"identityId":{"type":"string","description":"ID of the user"},"event":{"type":"string","description":"Type of event this webhook is listens for","enum":["DOCUMENT_SIGNATURE_ADDED","DOCUMENT_SIGNED","REMINDER_CREATED"]},"url":{"type":"string","description":"Callback URL"},"createdAt":{"type":"string","format":"date-time","description":"Creation timestamp"},"updatedAt":{"type":"string","format":"date-time","description":"Last modification timestamp"}},"required":["createdAt","event","id","identityId","updatedAt","url"]},"Template":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier"},"identityId":{"type":"string","description":"ID of the user"},"name":{"type":"string","description":"Name"},"fileResourceId":{"type":"string","description":"ID of the file related to this template"},"type":{"type":"string","description":"Type of template","enum":["BINARY","XML","HTML","PLAIN","PDF","ASICE","ADOC","EDOC","ZIP","DOC","DOCX","XLS","XLSX","ODS","PPT","PPTX","PPSX","ODP","ODT","RTF","PNG","JPEG","JPG","TIFF"]},"createdAt":{"type":"string","format":"date-time","description":"Creation timestamp"},"updatedAt":{"type":"string","format":"date-time","description":"Last modification timestamp"},"size":{"type":"integer","format":"int64","description":"Disk size of the template files in bytes"},"hash":{"type":"string","description":"Content hash of the template file"},"variables":{"type":"array","description":"List of variables attached to this template","items":{"$ref":"#/components/schemas/TemplateVariable"}},"folderId":{"type":"string","description":"ID of the folder container belongs to"},"workspaceId":{"type":"string","description":"ID of the workspace container belongs to"}},"required":["createdAt","fileResourceId","folderId","hash","id","identityId","name","size","type","updatedAt","variables","workspaceId"]},"TemplateVariable":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier"},"name":{"type":"string","description":"Name"},"type":{"type":"string","description":"Variable type","enum":["TEXT","SIGNATURE","PDF_TEXT","PDF_CHECKBOX","PDF_SIGNATURE"]},"value":{"type":["string","null"],"description":"Current value of the variable, if set"}},"required":["id","name","type"]},"CreateSpaceRequest":{"type":"object","properties":{"name":{"type":"string","description":"Name for the Space"}},"required":["name"]},"Space":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier"},"name":{"type":"string","description":"Name"},"createdAt":{"type":"string","format":"date-time","description":"Creation timestamp"},"updatedAt":{"type":"string","format":"date-time","description":"Last modification timestamp"}},"required":["createdAt","id","name","updatedAt"]},"ContainerSigningOrderItem":{"type":"object","properties":{"signerEmail":{"type":"string","description":"Signer's email which must also be included either in one of the signature variables' `value` field or in the `signers` list.","minLength":1},"signerIndex":{"type":"integer","format":"int32","description":"Signing index of the signer. The first signer has index 0, second signer has index 1, and so on.","minimum":0}},"required":["signerEmail","signerIndex"]},"CreateContainerRequest":{"type":"object","properties":{"name":{"type":"string","description":"Name for the container"},"outputType":{"type":"string","description":"Output file type for a signed container","enum":["PDF","ASICE","EDOC","ADOC_B","ZIP"]},"signatureTrustLevel":{"type":["string","null"],"description":"Determines what kind of signing methods can be used to sign the container. <br>QES = Can only be signed with QES (Smart-ID, Mobile-ID, ID-card, eParaksts).<br>AES = Can be signed with all QES + AES (Diia, Swedish BankID).<br>SES = Can be signed with all QES + AES + SES (Agrello).<br><b>NB!</b> Can only use on containers which will be approved (see `templateId` & `immediatePublish`).","enum":["SES","AES","QES"]},"variables":{"type":"array","description":"List of variable names and values to fill them with","items":{"$ref":"#/components/schemas/VariableTextEntry"}},"viewers":{"type":["array","null"],"description":"List of viewer emails","items":{"type":"string"}},"signers":{"type":"array","description":"List of signer emails. Do not include signers that have already been included with the variables list.","items":{"type":"string"}},"signingOrder":{"type":["array","null"],"description":"List of signer emails with their corresponding signing indexes. Must contain all the signers if used.<br><b>NB!</b> Can only use on containers which will be approved (see `templateId` & `immediatePublish`).","items":{"$ref":"#/components/schemas/ContainerSigningOrderItem"}},"immediatePublish":{"type":"boolean","default":true,"description":"Whether to immediately send the container out for signing upon creation (invitations are emailed and the container reports SIGNING_IN_PROGRESS)"},"metadata":{"type":["object","null"],"additionalProperties":{"type":"string"},"description":"Meta data"},"templateId":{"type":["string","null"],"description":"ID of the template to create the container from. Containers created from templates will be automatically approved."},"invitationMessage":{"type":["string","null"],"description":"Invitation message"},"localization":{"type":["string","null"],"description":"Localization settings used for sending container-related emails, does not affect the invitation message","enum":["EN","ET","LT","LV","UA"]},"replyTo":{"type":["string","null"],"description":"Reply-to email address used for container-related email communications"}},"required":["name","outputType","signers","variables"]},"VariableTextEntry":{"type":"object","properties":{"name":{"type":"string","description":"Name of the variable used to match the variable on the Template"},"value":{"type":"string","description":"If this is a signature variable then the value, which should be the user's email, will be used to add a signer to the container and the signer will be automatically assigned to the signature field.<br>If this is not a signature variable then this value will be used to fill the corresponding variable."}},"required":["name","value"]},"Container":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier"},"name":{"type":"string","description":"Name"},"status":{"type":"string","description":"Current status: DRAFT, SIGNING_IN_PROGRESS, SIGNED, EXPIRED or TERMINATED, plus four values surfaced only on containers managed via the in-app approval flow: PREPARING_FOR_APPROVAL, APPROVAL_IN_PROGRESS, APPROVED and REJECTED. APPROVED means an approval round finished with an approving outcome."},"outputType":{"type":["string","null"],"description":"Output file type for a signed container","enum":["PDF","ASICE","EDOC","ADOC_B","ZIP"]},"signatureTrustLevel":{"type":["string","null"],"description":"Determines what kind of signing methods can be used to sign the container. <br>QES = Can only be signed with QES (Smart-ID, Mobile-ID, ID-card, eParaksts).<br>AES = Can be signed with all QES + AES (Diia, Swedish BankID).<br>SES = Can be signed with all QES + AES + SES (Agrello)","enum":["SES","AES","QES"]},"size":{"type":"integer","format":"int64","description":"Disk size of the container files in bytes"},"createdAt":{"type":"string","format":"date-time","description":"Creation timestamp"},"updatedAt":{"type":"string","format":"date-time","description":"Last modification timestamp"},"parties":{"type":"array","description":"List of parties who have been added to the Container and have accepted the invitation","items":{"$ref":"#/components/schemas/ContainerParty"}},"invitations":{"type":"array","description":"List of invited parties who have not yet accepted the invitation or who have not signed","items":{"$ref":"#/components/schemas/ContainerInvitation"}},"files":{"type":"array","description":"List of files attached to the container","items":{"$ref":"#/components/schemas/ContainerFile"}},"signatures":{"type":"array","description":"List of the signatures that have already been given","items":{"$ref":"#/components/schemas/ContainerSignature"}},"spaceId":{"type":"string","deprecated":true,"description":"ID of the space container belongs to"},"folderId":{"type":"string","description":"ID of the folder container belongs to"},"workspaceId":{"type":"string","description":"ID of the workspace container belongs to"},"metadata":{"type":"object","additionalProperties":{"type":"string"},"description":"Metadata of the container, key-value pairs"},"invitationMessage":{"type":["string","null"],"description":"Invitation message"},"localization":{"type":["string","null"],"description":"Localization settings used for sending container-related emails, does not affect the invitation message","enum":["EN","ET","LT","LV","UA"]},"replyTo":{"type":["string","null"],"description":"Reply-to email address used for container-related email communications"}},"required":["createdAt","files","folderId","id","invitations","metadata","name","parties","signatures","size","spaceId","status","updatedAt","workspaceId"]},"ContainerFile":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier"},"name":{"type":"string","description":"File name"},"mimeType":{"type":"string","description":"File mime type"},"size":{"type":"integer","format":"int64","description":"File size in bytes"},"createdAt":{"type":"string","format":"date-time","description":"Creation timestamp"},"updatedAt":{"type":"string","format":"date-time","description":"Last modification timestamp"},"variableCount":{"type":"integer","format":"int32","deprecated":true,"description":"Number of variables in file"},"variables":{"type":"array","description":"File variables","items":{"$ref":"#/components/schemas/ContainerFileVariable"}}},"required":["createdAt","id","mimeType","name","size","updatedAt","variableCount","variables"]},"ContainerFileVariable":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier"},"name":{"type":"string","description":"Name"},"type":{"type":"string","description":"Variable type","enum":["TEXT","SIGNATURE","PDF_TEXT","PDF_CHECKBOX","PDF_SIGNATURE"]},"value":{"type":["string","null"],"description":"Current value of the variable, if set"}},"required":["id","name","type"]},"ContainerInvitation":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier"},"createdAt":{"type":"string","format":"date-time","description":"Creation timestamp"},"email":{"type":"string","description":"Email associated with this invitation"},"expiresAt":{"type":"string","format":"date-time","deprecated":true,"description":"Container invitations do not expire; this value is a fixed placeholder and must not be relied upon. The invitation link's real expiry is available from `GET /v3/containers/{containerId}/invitations/urls`."},"role":{"type":"string","description":"Role that determines the permissions related to this invitation: VIEWER, SIGNER, EDITOR or EDITOR_SIGNER, plus APPROVER and EDITOR_APPROVER surfaced only on containers using the in-app approval flow.","enum":["VIEWER","SIGNER","EDITOR","EDITOR_SIGNER","APPROVER","EDITOR_APPROVER"]}},"required":["createdAt","email","expiresAt","id","role"]},"ContainerParty":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier"},"createdAt":{"type":"string","format":"date-time","description":"Creation timestamp"},"updatedAt":{"type":"string","format":"date-time","description":"Last modification timestamp"},"role":{"type":"string","description":"Role that determines the permissions related to this party: VIEWER, SIGNER, EDITOR or EDITOR_SIGNER, plus APPROVER and EDITOR_APPROVER surfaced only on containers using the in-app approval flow.","enum":["VIEWER","SIGNER","EDITOR","EDITOR_SIGNER","APPROVER","EDITOR_APPROVER"]},"identityId":{"type":"string","description":"ID of the user"},"username":{"type":"string","description":"Party email"}},"required":["createdAt","id","identityId","role","updatedAt","username"]},"ContainerSignature":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier"},"identityId":{"type":["string","null"],"description":"ID of the user who gave the signature, missing in case of non-logged-in signer"},"username":{"type":"string","description":"Signer email"},"certificate":{"type":"string","description":"X.509 public key certificate in PEM format"},"certificateHash":{"type":"string","description":"SHA-512 hash of the certificate"},"signature":{"type":"string","description":"ASN1 encoded ECDSA signature as HEX string"},"visualSignatureUrl":{"type":["string","null"],"description":"URL to the image file of visual signature, if it exists"},"contentHash":{"type":"string","description":"SHA256 hash of the content as HEX string"},"signingTimestamp":{"type":"string","format":"date-time","description":"The timestamp at which the signer gave the signature"},"type":{"type":"string","description":"Type of signature","enum":["BASIC","VERIFIED"]},"signingMethod":{"type":"string","description":"Signing method","enum":["BARE","APP","SMS"]},"signatureProvider":{"type":"string","description":"Signature provider","enum":["AGRELLO_ID","MOBILE_ID","SMART_ID","SWEDISH_BANK_ID","EPARAKSTS_MOBILE","ID_CARD","DIIA","KEY_FILE","UNKNOWN"]},"displayName":{"type":"string","description":"Display name of the signer, email in case of non-logged-in user"}},"required":["certificate","certificateHash","contentHash","displayName","id","signature","signatureProvider","signingMethod","signingTimestamp","type","username"]},"AddContainerInvitationsRequest":{"type":"object","properties":{"signers":{"type":"array","description":"Signers to invite","example":["signer@example.com"],"items":{"type":"string"}},"viewers":{"type":"array","description":"Viewers to invite","example":["viewer@example.com"],"items":{"type":"string"}}},"required":["signers","viewers"]},"Workspace":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier"},"name":{"type":"string","description":"Name"},"createdAt":{"type":"string","format":"date-time","description":"Creation timestamp"},"updatedAt":{"type":"string","format":"date-time","description":"Last modification timestamp"}},"required":["createdAt","id","name","updatedAt"]},"GetWebhooksResponse":{"type":"object","properties":{"content":{"type":"array","items":{"$ref":"#/components/schemas/WebHook"}}},"required":["content"]},"GetSpaceTemplatesResponse":{"type":"object","properties":{"templates":{"type":"array","items":{"$ref":"#/components/schemas/TemplateListItem"}}},"required":["templates"]},"TemplateListItem":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier"},"identityId":{"type":"string","description":"ID of the user who created the template"},"name":{"type":"string","description":"Name of the template"},"fileResourceId":{"type":"string","description":"ID of the file used for the template"},"type":{"type":"string","description":"Type of template","enum":["BINARY","XML","HTML","PLAIN","PDF","ASICE","ADOC","EDOC","ZIP","DOC","DOCX","XLS","XLSX","ODS","PPT","PPTX","PPSX","ODP","ODT","RTF","PNG","JPEG","JPG","TIFF"]},"createdAt":{"type":"string","format":"date-time","description":"Creation timestamp"},"updatedAt":{"type":"string","format":"date-time","description":"Last modification timestamp"},"size":{"type":"integer","format":"int64","description":"Disk size of the template file in bytes"},"hash":{"type":"string","description":"Content hash of the template file"},"spaceId":{"type":"string","deprecated":true,"description":"ID of the space that the template belongs to"},"folderId":{"type":"string","description":"ID of the folder that the template belongs to"}},"required":["createdAt","fileResourceId","folderId","hash","id","identityId","name","size","spaceId","type","updatedAt"]},"GetSpaceSubspacesResponse":{"type":"object","properties":{"subspaces":{"type":"array","items":{"$ref":"#/components/schemas/Space"}}},"required":["subspaces"]},"PageContainer":{"type":"object","properties":{"content":{"type":"array","items":{"$ref":"#/components/schemas/Container"}},"totalElements":{"type":"integer","format":"int64"},"totalPages":{"type":"integer","format":"int32"},"numberOfElements":{"type":"integer","format":"int32"},"number":{"type":"integer","format":"int32"},"size":{"type":"integer","format":"int32"}},"required":["content","number","numberOfElements","size","totalElements","totalPages"]},"PageSpace":{"type":"object","properties":{"content":{"type":"array","items":{"$ref":"#/components/schemas/Space"}},"totalElements":{"type":"integer","format":"int64"},"totalPages":{"type":"integer","format":"int32"},"numberOfElements":{"type":"integer","format":"int32"},"number":{"type":"integer","format":"int32"},"size":{"type":"integer","format":"int32"}},"required":["content","number","numberOfElements","size","totalElements","totalPages"]},"ContainerInvitationLink":{"type":"object","properties":{"url":{"type":"string","description":"Share URL for the invitation"},"expiresAt":{"type":"string","format":"date-time","description":"Timestamp at which this link stops working"}},"required":["expiresAt","url"]},"ContainerInvitationUrlsResponse":{"type":"object","properties":{"data":{"type":"object","additionalProperties":{"type":"string"},"deprecated":true,"description":"Map of container invitation ID to share URL, limited to links that have not expired. Use `links` instead — it carries every sent-out invitation's latest link together with its expiry, live or not.","example":{"79d269cc-3cc0-4b6c-8fb0-44e25d048121":"https://docs.agrello.io/app/shared/containers/123e4567-e89b-12d3-a456-426614174000?token=dummy-token&username=user%40example.com"}},"links":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/ContainerInvitationLink"},"description":"Map of container invitation ID to that invitation's latest share link (`url` plus its `expiresAt`), regardless of whether the link is still live. An `expiresAt` in the past means the link expired then; resend the invitation via `POST /v3/containers/{containerId}/invitations` to obtain a new one.","example":{"79d269cc-3cc0-4b6c-8fb0-44e25d048121":{"url":"https://docs.agrello.io/app/shared/containers/123e4567-e89b-12d3-a456-426614174000?token=dummy-token&username=user%40example.com","expiresAt":"2026-08-14T12:00:00Z"}}}},"required":["data","links"]}},"securitySchemes":{"client_api":{"type":"oauth2","description":"API v3 credentials","flows":{"clientCredentials":{"authorizationUrl":"https://service.agrello.org/auth/oauth/authorize","tokenUrl":"https://service.agrello.org/auth/oauth/token"}}}}}}