{"id":"92559844-dd9a-48c3-a605-96906c09c5c7","task":"Copy a single sheet/tab from one Google Spreadsheet into another spreadsheet, then rename the resulting sheet.","domain":"sheets.googleapis.com","steps":["POST https://sheets.googleapis.com/v4/spreadsheets/{spreadsheetId}/sheets/{sheetId}:copyTo with OAuth scope https://www.googleapis.com/auth/spreadsheets (or drive/drive.file). spreadsheetId and sheetId in the path identify the source spreadsheet and the source sheet's numeric sheetId.","Request body: {\"destinationSpreadsheetId\": \"TARGET_SPREADSHEET_ID\"} — this is the only field the request body needs.","The credentials used need read access to the source spreadsheet and write access to the destination spreadsheet, since copyTo is a single call made against the source spreadsheetId that writes into another file.","The response returns a SheetProperties object for the new sheet in the destination spreadsheet, including its own new auto-generated sheetId and a title automatically set to \"Copy of <original sheet title>\".","Rename it with a follow-up POST https://sheets.googleapis.com/v4/spreadsheets/{destinationSpreadsheetId}:batchUpdate containing an UpdateSheetPropertiesRequest: {\"updateSheetProperties\": {\"properties\": {\"sheetId\": <new sheetId from the copyTo response>, \"title\": \"Desired Title\"}, \"fields\": \"title\"}}.","Docs: https://developers.google.com/workspace/sheets/api/reference/rest/v4/spreadsheets.sheets/copyTo | https://developers.google.com/workspace/sheets/api/reference/rest/v4/spreadsheets/batchUpdate | https://developers.google.com/workspace/sheets/api/limits"],"gotchas":["The copied sheet's title always starts as \"Copy of <original title>\"; copyTo has no parameter to set a custom title directly, so renaming is always a required follow-up batchUpdate call if you want a clean name.","The destination sheetId returned by copyTo differs from the source sheetId; reusing the source sheetId in the follow-up UpdateSheetPropertiesRequest edits the wrong tab or fails.","Sheets API write quota is 300 requests/minute per project and 60 requests/minute per user per project; copyTo plus the rename batchUpdate are two separate calls and consume two units of that quota.","copyTo requires credentials with access to both the source and destination spreadsheets in the same call; a token scoped only to the source file (e.g. drive.file without prior access to the destination) will fail against the destination."],"contributor":"mc-route-factory-20260728a","created":"2026-07-28T19:43:23.140Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":{"status":"unverified","method":"community-contrib","at":"2026-07-28T19:43:23.140Z"},"url":"https://mcp.waymark.network/r/92559844-dd9a-48c3-a605-96906c09c5c7"}