{"id":13433202,"url":"https://github.com/benborgers/opensheet","last_synced_at":"2026-04-06T09:14:16.358Z","repository":{"id":37811339,"uuid":"416541970","full_name":"benborgers/opensheet","owner":"benborgers","description":"💾 An API to get a Google Sheet as JSON, no authentication required. ","archived":false,"fork":false,"pushed_at":"2026-02-01T06:47:54.000Z","size":592,"stargazers_count":797,"open_issues_count":3,"forks_count":147,"subscribers_count":11,"default_branch":"main","last_synced_at":"2026-03-11T13:31:52.708Z","etag":null,"topics":["hacktoberfest"],"latest_commit_sha":null,"homepage":"https://opensheet.elk.sh","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/benborgers.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2021-10-13T00:47:06.000Z","updated_at":"2026-03-09T17:33:24.000Z","dependencies_parsed_at":"2024-03-26T13:47:16.898Z","dependency_job_id":"95e9432b-3a9a-4338-a1ae-8ac64d977f03","html_url":"https://github.com/benborgers/opensheet","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/benborgers/opensheet","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/benborgers%2Fopensheet","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/benborgers%2Fopensheet/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/benborgers%2Fopensheet/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/benborgers%2Fopensheet/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/benborgers","download_url":"https://codeload.github.com/benborgers/opensheet/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/benborgers%2Fopensheet/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31466228,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-06T08:36:52.050Z","status":"ssl_error","status_checked_at":"2026-04-06T08:36:51.267Z","response_time":112,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["hacktoberfest"],"created_at":"2024-07-31T02:01:22.392Z","updated_at":"2026-04-06T09:14:16.352Z","avatar_url":"https://github.com/benborgers.png","language":"TypeScript","funding_links":["https://github.com/sponsors/benborgers"],"categories":["TypeScript"],"sub_categories":[],"readme":"# opensheet\n\n#### opensheet's servers get 1.5 billion hits each month! \u003cbr /\u003e If the project is is useful to you, I'd love your help in covering hosting costs. \u003cbr /\u003e You can [sponsor me for $3/month on GitHub Sponsors](https://github.com/sponsors/benborgers). Thank you!\n\n---\n\nA free, super simple, hosted API for getting Google Sheets as JSON.\n\n**Tutorial blog post:** [benborgers.com/posts/google-sheets-json](https://benborgers.com/posts/google-sheets-json)\n\n**If you have questions:** benborgers@hey.com\n\n## Documentation\n\nThis API returns a given Google Sheet's rows as JSON data.\n\nIn order to use it:\n\n1. The first row of your Google Sheet should be a header row  ([here's an example](https://docs.google.com/spreadsheets/d/1o5t26He2DzTweYeleXOGiDjlU4Jkx896f95VUHVgS8U/edit)).\n1. Link sharing must be turned on so anyone with the link can _view_ the Google Sheet.\n\nThe format for this API is:\n\n```\nhttps://opensheet.elk.sh/spreadsheet_id/tab_name\n```\n\nFor example:\n\n```\nhttps://opensheet.elk.sh/1o5t26He2DzTweYeleXOGiDjlU4Jkx896f95VUHVgS8U/Test+Sheet\n```\n\nYou can also replace `tab_name` with the tab number (in the order that the tabs are arranged), if you don't know the name. For example, to get the first sheet:\n\n```\nhttps://opensheet.elk.sh/1o5t26He2DzTweYeleXOGiDjlU4Jkx896f95VUHVgS8U/1\n```\n\n_Take note that the first sheet in order is numbered `1`, not `0`._\n\nAdding the `?raw=true` URL parameter returns the raw, unformatted data from the sheet. Without this parameter, Google Sheets formats numbers, dates, and other data types, but with `?raw=true`, you'll get the underlying values.\n\n## Caching\n\nResponses are cached for 30 seconds in order to improve performance and to avoid hitting Google Sheets' rate limits, so it might take up to 30 seconds for fresh edits to show up in the API response.\n\n## Recent hosting changes\n\nThe base URL is now `opensheet.elk.sh`, not `opensheet.vercel.app`. `opensheet.vercel.app` will continue to redirect to the correct URL, but you should update your code to use `opensheet.elk.sh` to avoid the slight performance degradation that comes from needing to redirect.\n\n## Self-hosting\n\n_This section is only necessary if you want to fork opensheet and host your own instance of it. If you don't want to deal with that, you're welcome to use my hosted instance at `opensheet.elk.sh`._\n\nopensheet is written as a [Bun](https://bun.sh) server. It uses Redis for caching and PostgreSQL for analytics.\n\nIf you host opensheet yourself, you'll need:\n\n1. A Redis instance (Bun's built-in `redis` client is used)\n2. A PostgreSQL database (Bun's built-in `sql` client is used)\n3. A Google Sheets API key:\n   1. Go to the [Google Cloud Console](https://console.cloud.google.com) and create a new project from the top navigation bar.\n   2. Search for \"Google Sheets API\" and enable it.\n   3. Search for \"Credentials\" and create an API key. If you want, you can restrict it to only be able to access the Google Sheets API.\n   4. Set the `GOOGLE_API_KEY` environment variable.\n\n## Local development\n\n```sh\nbun run dev\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbenborgers%2Fopensheet","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbenborgers%2Fopensheet","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbenborgers%2Fopensheet/lists"}