My intentions are to put the data extracted from places API into google sheets. I have followed a lot of methods including using gspread library and making a service account and then authorizing it. I am currently trying with the service account where I have passed on the credentials, built a service request, and then executed it. However, it is throwing me the following error Invalid JSON payload received. Unknown name What am I doing wrong? I wanted to append data in google sheets but I am getting an error. Code from __future__ import print_function import requests import urllib.parse as urlparse from googleapiclient import discovery import os.path from google.auth.transport.requests import Request from google.oauth2.credentials import Credentials from google_auth_oauthlib.flow import InstalledAppFlow from googleapiclient.discovery import build from googleapiclient.errors import HttpError SCOPES = ['https://www.googleapis.com/auth/spreadsheets', 'https://www.googleapis.com/auth/drive', 'https://www.googleapis.com/auth/drive.file'] # The ID and range of a sample spreadsheet. SAMPLE_SPREADSHEET_ID = '1_oKFw7gYmUWDUZxZ6Dgo1uLM9Tf_Bc-4bnq4jiJbQUs' SAMPLE_RANGE_NAME = 'Sheet1' creds = None if not creds or not creds.valid: if creds and creds.expired and creds.refresh_token: creds.refresh(Request()) else: flow = InstalledAppFlow.from_client_secrets_file( 'credentials.json', SCOPES) creds = flow.run_local_server(port=0) # Save the credentials for the next run with open('token.json', 'w') as token: token.write(creds.to_json()) spreadsheet_id = '***************' range_ = 'Sheet1!' value_input_option = 'RAW' service = discovery.build('sheets', 'v4', credentials=creds) value_range_body = ['a'] request = service.spreadsheets().values().append(spreadsheetId=spreadsheet_id, range=range_, valueInputOption=value_input_option, body=value_range_body) response = request.execute() Error <HttpError 400 when requesting https://sheets.googleapis.com/v4/sp.../Sheet1!:append?valueInputOption=RAW&alt=json returned "Invalid JSON payload received. Unknown name "": Root element must be a message.". Details: "[{'@type': 'type.googleapis.com/google.rpc.BadRequest', 'fieldViolations': [{'description': 'Invalid JSON payload received. Unknown name "": Root element must be a message.'}]}]"> Continue reading...