Python Google Sheets API: Duplicate Sheet

July 17, 2019
credentials = ...
service = build('sheets', 'v4', credentials=credentials)
sheet = service.spreadsheets()

SPREADSHEET_ID = ...
OLD_SHEET_ID = ...
NEW_SHEET_NAME = ...

# Insert New Empty Row at A2
body = {
    'requests': [
        {
            'duplicateSheet': {
                'sourceSheetId': OLD_SHEET_ID,
                'insertSheetIndex': 1,
                'newSheetName': NEW_SHEET_NAME
            }
        }
    ]
}

# Using sheet.values().batchUpdate will trigger: Invalid JSON payload received. Unknown name "requests": Cannot find field.
result = sheet.batchUpdate(spreadsheetId=SPREADSHEET_ID,
                           body=body).execute()

NOTE: Refer Setup and Access Google Sheets API With Python.

References:

This work is licensed under a
Creative Commons Attribution-NonCommercial 4.0 International License.