page title decoration image

Upload and update a DMS document (POST with Method-Override)

POST /api/v2/clients/{client_id}/dms/projects/{project_id}/documents/{document_id}

Upload and update a DMS document (POST with Method-Override)

Code samples

# You can also use wget
curl -X POST /api/v2/clients/{client_id}/dms/projects/{project_id}/documents/{document_id} \
  -H 'Content-Type: multipart/form-data' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'
POST /api/v2/clients/{client_id}/dms/projects/{project_id}/documents/{document_id} HTTP/1.1

Content-Type: multipart/form-data
Accept: application/json
const inputBody = '{
  "file": "string",
  "folderId": 17,
  "parentUuid": "22222222-2222-2222-2222-222222222222",
  "name": "New Document",
  "description": ""
}';
const headers = {
  'Content-Type':'multipart/form-data',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('/api/v2/clients/{client_id}/dms/projects/{project_id}/documents/{document_id}',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});
require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'multipart/form-data',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post '/api/v2/clients/{client_id}/dms/projects/{project_id}/documents/{document_id}',
  params: {
  }, headers: headers

p JSON.parse(result)
import requests
headers = {
  'Content-Type': 'multipart/form-data',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('/api/v2/clients/{client_id}/dms/projects/{project_id}/documents/{document_id}', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'multipart/form-data',
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/api/v2/clients/{client_id}/dms/projects/{project_id}/documents/{document_id}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...
URL obj = new URL("/api/v2/clients/{client_id}/dms/projects/{project_id}/documents/{document_id}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"multipart/form-data"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/api/v2/clients/{client_id}/dms/projects/{project_id}/documents/{document_id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /api/v2/clients/{client_id}/dms/projects/{project_id}/documents/{document_id}

Update an existing DMS document by uploading a new version and optionally changing metadata.

Body parameter

file: string
folderId: 17
parentUuid: 22222222-2222-2222-2222-222222222222
name: New Document
description: ""

Parameters

NameInTypeRequiredDescription
client_idpathintegertrueClient ID
project_idpathintegertrueProject ID
document_idpathintegertrueDocument ID
bodybodyobjectfalseDocument data (file is optional — omit to keep the existing file, only metadata will be updated).
» filebodystring(binary)falseFile. Allowed mime types: image/, application/, text/, video/ (optional)
» folderIdbodyintegerfalseDMS folderID
» parentUuidbodystring(uuid)falsetask/subproject UUID
» namebodystringfalseDocument name
» descriptionbodystringfalsenone

Example responses

401 Response

{
  "status": "error",
  "code": 401,
  "message": "Authentication failed",
  "details": "JWT token not found"
}

403 Response

{
  "status": "error",
  "code": 403,
  "message": "Access denied",
  "details": "Insufficient permissions"
}

404 Response

{
  "status": "error",
  "code": 404,
  "message": "Not found",
  "details": "The requested resource was not found"
}

500 Response

{
  "status": "error",
  "code": 500,
  "message": "Internal server error",
  "details": "An internal server error occurred"
}

Responses

StatusMeaningDescriptionSchema
201CreatedDocument updated (new version created).None
401UnauthorizedAuthentication error (JWT token missing/invalid)ErrorResponse
403ForbiddenAccess denied (insufficient permissions)ErrorResponse
404Not FoundResource not foundErrorResponse
500Internal Server ErrorInternal server errorErrorResponse