Skip to content

Google Sheets

Pull rows from a Google Sheet straight into your page. Access via sdk.sheets.

const sdk = await ShareOut.create();
if (!await sdk.sheets.isConnected()) {
const ok = await sdk.sheets.authorize(); // opens OAuth popup
if (!ok) return;
}
const { data, headers, rowCount } = await sdk.sheets.fetch({
spreadsheetUrl: 'https://docs.google.com/spreadsheets/d/ABC123/edit',
range: 'Sheet1',
headers: true,
});
getAuthUrl(returnUrl?): Promise<{ authUrl, message }>
authorize(returnUrl?): Promise<boolean>
isConnected(): Promise<boolean>
fetch({ spreadsheetUrl?, spreadsheetId?, range?, headers? }): Promise<{ data, headers?, rowCount }>

Pass either spreadsheetUrl or spreadsheetId. With headers: true, each row becomes an object keyed by the first row’s column names.

Fetch once, store in sdk.json, and render from there so navigation doesn’t refetch:

const { data } = await sdk.sheets.fetch({ spreadsheetId: 'ID', range: 'Data!A1:Z100', headers: true });
await sdk.json.set('sheetsData', { data, fetchedAt: Date.now() });
CodeMeaning
SHEETS_NOT_CONNECTEDOAuth not completed — call authorize()
SHEETS_ACCESS_DENIEDThe sheet isn’t shared with the connected account
FETCH_ERRORGoogle Sheets API error