The following code sample shows how to create a blank document with a specified title:
Java
privatestaticvoidcreateDoc(Docsservice)throwsIOException{Documentdoc=newDocument().setTitle("My Document");doc=service.documents().create(doc).execute();System.out.println("Created document with title: "+doc.getTitle());}
PHP
$title = 'My Document';$document = new Google_Service_Docs_Document(array( 'title' => $title));$document = $service->documents->create($document);printf("Created document with title: %s\n", $document->title);
Python
title='My Document'body={'title':title}doc=service.documents() \ .create(body=body).execute()print('Created document with title: {0}'.format(doc.get('title')))
Work with Google Drive folders
There’s no option to create a document directly within a specified Drive folder using the Docs API. By default, the created document is saved to the user's root folder on Drive.
However, there are two alternatives to saving a file to a Drive folder:
After the document is created, move it to a specific folder using Drive API's files.update method. For more information on moving files, see Move files between folders.
Add a blank document to a folder using the Drive API's files.create method, specifying application/vnd.google-apps.document as the mimeType. For more information on creating files, see Create a file in a specific folder.
To copy a document, use Drive API's files.copy method.
The following code sample shows how to copy an existing document. You can find the ID to use for the Drive API call in the document URL. For more information, see Document ID.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-04 UTC."],[],[],null,["# Create and manage documents\n\nThis Google Docs API page describes how to perform certain high-level tasks\ninvolving Google Docs documents, such as:\n\n- Create a document\n- Copy an existing document\n\nThe following paragraphs describe these tasks in detail.\n\nCreate a blank document\n-----------------------\n\nTo create a document, use the\n[`documents.create`](/workspace/docs/api/reference/rest/v1/documents/create) method on the\n[`documents`](/workspace/docs/api/reference/rest/v1/documents) collection.\n\nThe following code sample shows how to create a blank document with a specified\ntitle: \n\n### Java\n\n\n```java\nprivate static void createDoc(Docs service) throws IOException {\n Document doc = new Document()\n .setTitle(\"My Document\");\n doc = service.documents().create(doc)\n .execute();\n System.out.println(\"Created document with title: \" + doc.getTitle());\n}\n```\n\n\u003cbr /\u003e\n\n### PHP\n\n\n```php\n$title = 'My Document';\n$document = new Google_Service_Docs_Document(array(\n 'title' =\u003e $title\n));\n\n$document = $service-\u003edocuments-\u003ecreate($document);\nprintf(\"Created document with title: %s\\n\", $document-\u003etitle);\n```\n\n\u003cbr /\u003e\n\n### Python\n\n\n```python\ntitle = 'My Document'\nbody = {\n 'title': title\n}\ndoc = service.documents() \\\n .create(body=body).execute()\nprint('Created document with title: {0}'.format(\n doc.get('title')))\n```\n\n\u003cbr /\u003e\n\n### Work with Google Drive folders\n\nThere's no option to create a document directly within a specified\nDrive folder using the Docs API. By default, the\ncreated document is saved to the user's root folder on Drive.\n\nHowever, there are two alternatives to saving a file to a Drive\nfolder:\n\n- After the document is created, move it to a specific folder using\n Drive API's\n [`files.update`](/workspace/drive/api/v3/reference/files/update) method. For\n more information on moving files, see [Move files between\n folders](/workspace/drive/api/guides/folder#move-files).\n\n- Add a blank document to a folder using the Drive API's\n [`files.create`](/workspace/drive/api/v3/reference/files/create) method,\n specifying `application/vnd.google-apps.document` as the `mimeType`. For\n more information on creating files, see [Create a file in a specific\n folder](/workspace/drive/api/guides/folder#create-file).\n\nFor either alternative, you'll need to add the appropriate [Drive API\nscopes](/workspace/drive/api/v3/reference/files/create#authorization-scopes) to\nauthorize the call. For more information on Drive scopes, see\n[Choose Google Drive API scopes](/workspace/drive/api/guides/api-specific-auth).\n\nTo move or create a file within a shared drive folder, see [Implement shared\ndrive support](/workspace/drive/api/guides/enable-shareddrives).\n\nCopy an existing document\n-------------------------\n\nTo copy a document, use Drive API's\n[`files.copy`](/workspace/drive/v3/reference/files/copy) method.\n\nThe following code sample shows how to copy an existing document. You can find\nthe ID to use for the Drive API call in the document URL. For more\ninformation, see\n[Document ID](/workspace/docs/api/concepts/document#document-id). \n\n https://docs.google.com/document/d/\u003cvar translate=\"no\"\u003eDOCUMENT_ID\u003c/var\u003e/edit\n\n### Java\n\n\n```java\nString copyTitle = \"Copy Title\";\nFile copyMetadata = new File().setName(copyTitle);\nFile documentCopyFile =\n driveService.files().copy(documentId, copyMetadata).execute();\nString documentCopyId = documentCopyFile.getId();\n```\n\n\u003cbr /\u003e\n\n### Node.js\n\n\n```javascript\nvar copyTitle = \"Copy Title\";\nlet request = {\n name: copyTitle,\n};\nthis.driveService.files.copy({\n fileId: documentId,\n resource: request,\n}, (err, driveResponse) =\u003e {\n let documentCopyId = driveResponse.id;\n});\n```\n\n\u003cbr /\u003e\n\n### PHP\n\n\n```php\n\u003c?php\n$copyTitle = 'Copy Title';\n$copy = new Google_Service_Drive_DriveFile(array(\n 'name' =\u003e $copyTitle\n));\n$driveResponse = $driveService-\u003efiles-\u003ecopy($documentId, $copy);\n$documentCopyId = $driveResponse-\u003eid;\n```\n\n\u003cbr /\u003e\n\n### Python\n\n\n```python\ncopy_title = 'Copy Title'\nbody = {\n 'name': copy_title\n}\ndrive_response = drive_service.files().copy(\n fileId=document_id, body=body).execute()\ndocument_copy_id = drive_response.get('id')\n```\n\n\u003cbr /\u003e\n\nNote that you need to use an appropriate [Drive API\nscope](/workspace/drive/v3/reference/files/copy#authorization-scopes)\nto authorize the call. For more information on Drive scopes, see\n[Choose Google Drive API scopes](/workspace/drive/api/guides/api-specific-auth).\n\nRelated topics\n--------------\n\n- [Insert, delete, and move text](/workspace/docs/api/how-tos/move-text)\n- [Merge text into a document](/workspace/docs/api/how-tos/merge)\n- [Document concepts](/workspace/docs/api/concepts/document)"]]