---
title: DocumentService - Scoped, Global
description: The DocumentService API provides methods for creating, deleting, and updating a document.Instantiates a DocumentService object.Creates a document record in the Documents \[ds\_document\] table.Removes a document record from the Documents \[ds\_document\] table.Updates the field values of an existing document record.
locale: en-US
canonical_url: https://www.servicenow.com/docs/r/australia/api-reference/server-api-reference/DocumentServiceBothAPI.html
release: australia
product: Server API Reference
classification: server-api-reference
topic_type: concept
last_updated: "2026-03-12"
reading_time_minutes: 5
breadcrumb: [Server API reference, API reference, API implementation and reference]
---
# DocumentService - Scoped, Global
The DocumentService API provides methods for creating, deleting, and updating a document.
This API requires the Document Management plugin \(com.snc.platform\_document\_management\) and is provided within the `sn_doc_services` namespace. For information, see [Document Services](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/servicenow-platform/document-services-landing-page.md).
A document is a collection of information about a document record. The methods used to create or update a record modify fields using the [SystemDocument](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/server-api-reference/SystemDocumentBothAPI.md) object.
Document content is managed using versions. The following APIs enable you to define and manage document versions:
- [SystemDocumentVersion](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/server-api-reference/SystemDocumentVersionBothAPI.md) – Define a document version as the source of the document content. Each version is an element containing the document content and is provided using a single URL or attachment. An attachment can only be added in the Document Versions \[ds\_document\_version\] table UI and not with the API.
- [DocumentVersionService](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/server-api-reference/DocumentVersionServiceBothAPI.md) – Document content is managed using versions.
Use the [DocumentReferenceService](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/server-api-reference/DocumentReferenceServiceBothAPI.md) API to manage documents referenced in a target table, such as the Incidents \[incident\] or Knowledge \[kb\_knowledge\] table.
The Document Management plugin also supports creating lists of document templates to associate with your document. For example, a job application requiring multiple documents such as a diploma, ID, or passport.
- [SystemDocumentList](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/server-api-reference/SystemDocumentListBothAPI.md) – Define a list of document templates.
- [DocumentListService](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/server-api-reference/DocumentListServiceBothAPI.md) – Add or remove a document template list.
- [SystemDocumentListEntry](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/server-api-reference/SystemDocumentListEntryBothAPI.md) – Define a document template list entry.
- [DocumentListEntryService](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/server-api-reference/DocumentListEntryServiceBothAPI.md) – Add or remove a document template list entry.
**Parent Topic:**[Server API reference](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/server-api-reference/api-server.md)
## DocumentService - DocumentService\(\)
Instantiates a DocumentService object.
|Name|Type|Description|
|----|----|-----------|
|None| ||
The following example shows how to instantiate a DocumentService object.
```
var s = new sn_doc_services.DocumentService();
```
## DocumentService - createDocument\(SystemDocument doc\)
Creates a document record in the Documents \[ds\_document\] table.
|Name|Type|Description|
|----|----|-----------|
|doc|[SystemDocument](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/server-api-reference/SystemDocumentBothAPI.md)|One or more properties representing fields of a new record. The name property is required and can be set using the SystemDocument constructor or name\(\) method.|
|
Type
|
Description
|
|---|
|
Object
|
Sys\_id of the new record in the Documents \[ds\_document\] table with a success message. Error message otherwise.```
{
"message": "String",
"request_id": "String",
"status": "String"
}
```
|
|
<Object>.message
|
Message confirming success or error. Possible values:
- Create document sysId : <sys\_id> is successful.
- Document Name is mandatory and should be valid.
- Document Name is mandatory and it should not be null or empty.
- <[SystemDocument](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/server-api-reference/SystemDocumentBothAPI.md) property requiring sys\_id input> with SysId: "<sys\_id>" does not exist
Data type: String
|
|
<Object>.request\_id
|
Sys\_id of the record in the Documents \[ds\_document\] table.Data type: String
|
|
<Object>.status
|
Status indicating whether the operation is successful.Possible values:
- success - The operation was successful.
- failure – The operation was not successful. The **message** provides details.
Data type: String
|
The following example shows how to populate SystemDocument object properties and create a new document record.
```
var d = new sn_doc_services.SystemDocument('My document');
// Define the document fields
var reviewers = '62826bf03710200044e0bfc8bcbe5df1,a8f98bb0eb32010045e1a5115206fe3a';
d.description('description');
d.classification('restricted');
d.state('review');
d.department('93b25282c0a8000b0b55c8ab34e2f1e6');
d.template(false);
d.type('policy');
d.reviewers(reviewers);
d.audience('external');
var s = new sn_doc_services.DocumentService();
gs.info(JSON.stringify(s.createDocument(d), null, 2));
```
Output:
```
{
"message": "Create document sysId : 1040420224503410f877a6fed1c2b031 is successful.",
"request_id": "1040420224503410f877a6fed1c2b031",
"status": "success"
}
```
## DocumentService - deleteDocument\(String docSysId\)
Removes a document record from the Documents \[ds\_document\] table.
|Name|Type|Description|
|----|----|-----------|
|docSysId|String|Sys\_id of a document record in the Documents \[ds\_document\] table.|
|
Type
|
Description
|
|---|
|
Object
|
Success or error message. ```
{
"message": "String",
"request_id": "String",
"status": "String"
}
```
|
|
<Object>.message
|
Message confirming success or error. Data type: String
|
|
<Object>.request\_id
|
Sys\_id of the record in the Documents \[ds\_document\] table.Data type: String
|
|
<Object>.status
|
Status indicating whether the operation is successful.Possible values:
- success - The operation was successful.
- failure – The operation was not successful. The **message** provides details.
Data type: String
|
The following example shows how to delete an existing document record.
```
var docid = "";
var svc = new sn_doc_services.DocumentService();
gs.info(JSON.stringify(svc.deleteDocument(docid), null, 2));
```
Output:
```
{
"message": "Delete document sysId : is successful.",
"request_id": "",
"status": "success"
}
```
## DocumentService - updateDocument\(String docSysId, SystemDocument doc\)
Updates the field values of an existing document record.
|Name|Type|Description|
|----|----|-----------|
|docSysId|String|Sys\_id of a document record in the Documents \[ds\_document\] table.|
|doc|[SystemDocument](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/server-api-reference/SystemDocumentBothAPI.md)|One or more properties representing document fields to be updated.|
|
Type
|
Description
|
|---|
|
Object
|
Success or error message. ```
{
"message": "String",
"request_id": "String",
"status": "String"
}
```
|
|
<Object>.message
|
Message confirming success or error. Data type: String
|
|
<Object>.request\_id
|
Sys\_id of the record in the Documents \[ds\_document\] table.Data type: String
|
|
<Object>.status
|
Status indicating whether the operation is successful.Possible values:
- success - The operation was successful.
- failure – The operation was not successful. The **message** provides details.
Data type: String
|
The following example shows how to change a document name. See also [SystemDocument](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/server-api-reference/SystemDocumentBothAPI.md).
```
var dId = "19aab54e24103410f877a6fed1c2b03d";
var d = new sn_doc_services.SystemDocument();
d.name("c22.txt");
var s = new sn_doc_services.DocumentService();
gs.info(JSON.stringify(s.updateDocument(dId, d), null, 2));
```
Output:
```
{
"message": "Update document sysId : 19aab54e24103410f877a6fed1c2b03d is successful.",
"request_id": "19aab54e24103410f877a6fed1c2b03d",
"status": "success"
}
```