# Check if your Google Sheet is public

Anything that reads a Google Sheet without credentials — a script, an app, an AI agent, this site — can only see it if the sheet is shared with anyone who has the link. Paste your URL and find out whether yours is.

*Last updated: 2026-07-14 · Source: <https://pastesheet.com/tools/google-sheet-public-checker>*

## Using this without the browser

This page hosts an interactive tool: at <https://pastesheet.com/tools/google-sheet-public-checker> you paste a Google Sheet URL and it returns the result in the page. There is nothing to install and no account required.

If you are an agent or a script and need this programmatically instead, connect the sheet once as a PasteSheet endpoint and read it over HTTP — the endpoint returns the same rows as JSON, stays in sync with the sheet, and needs no Google credentials:

```bash
curl 'https://pastesheet.com/api/your-endpoint-id?limit=10'
```

The same endpoint is also a read-only MCP server at `https://pastesheet.com/mcp/sheets/your-endpoint-id`, exposing `list_tabs`, `get_schema` and `query_rows`. See <https://pastesheet.com/guides/google-sheets-mcp.md>.

## Key facts

- Google's API requires a **Google Cloud project plus OAuth credentials or a service account** before it will return a single row. ([source](https://developers.google.com/workspace/sheets/api/guides/authorizing))
- Sharing a sheet as **Anyone with the link** makes it readable to whoever holds the URL but does **not** list or index it — that is the separate, more public **Publish to web** setting, which PasteSheet does not require. ([source](https://support.google.com/docs/answer/183965))
- It needs **no Google Cloud project, no OAuth consent screen and no service-account JSON**. You paste a share URL, and MCP is included on the Free plan.

## What this actually checks

It requests your sheet the way an unauthenticated reader would — no account, no credentials — and reports what comes back. If the sheet is shared with anyone who has the link, it reads it and lists the tabs it found. If it is not, Google returns a sign-in page instead of data, which is exactly the failure your script or app is hitting.

This is the most common reason a Google Sheets integration does not work. The sheet looks fine to *you* because you are signed in and you own it. The thing trying to read it is not you.

## How to make a Google Sheet publicly readable

If the check failed, this is the fix. It takes about ten seconds and it does not put your sheet in a search index.

1. Open the sheet and click **Share** in the top right.
2. Under **General access**, change **Restricted** to **Anyone with the link**.
3. Leave the role as **Viewer**. Nothing that reads the sheet needs more, and Viewer means a stranger holding the link cannot change your data.
4. Click **Done**, then run the check again.

## "Anyone with the link" is not "Publish to web"

These are two different Google settings and they get mixed up constantly:

- **Share → Anyone with the link** grants read access to whoever holds the URL. The sheet is not listed or indexed anywhere; it is simply readable if you know the address. This is what tools, scripts and APIs need, and it is what this checker tests.
- **File → Share → Publish to web** is a separate, more public step that creates a standalone published copy of the sheet. PasteSheet does **not** need it, and you should not use it unless you specifically want a public web page.
- **Restricted** — the default — means only people you invited can read it. Nothing unauthenticated can, which is why integrations fail against it.

## Once it is readable

A publicly readable sheet can be read by anything that speaks HTTP — no Google Cloud project, no OAuth consent screen, no service-account JSON. You can [convert it to JSON right now](https://pastesheet.com/tools/google-sheets-to-json), or give it a permanent endpoint so an app or an AI agent can query it live.

What you get above is a **snapshot**: it reflects the sheet as it is right now. Edit a cell and the file you downloaded is out of date, and you run the conversion again. A [PasteSheet endpoint](https://pastesheet.com) is the same data at a **URL that stays current** — it re-reads the sheet on your schedule and serves whatever is in it now, so your app or AI agent never reads a stale export.

## Frequently asked questions

### Does making my sheet public mean anyone can find it?

No. "Anyone with the link" means readable by whoever holds the URL — it is not listed anywhere, not indexed by Google Search, and not discoverable without the address. It is the same access model as an unlisted video, and it is not the same as "Publish to web".

### Can someone edit my sheet if I share it this way?

Not if you leave the role as Viewer, which is the default and all any reader needs. A Viewer can read the sheet and nothing else. Only change it to Editor if you genuinely intend to let strangers holding the link modify your data.

### Why does my sheet work in the browser but not in my script?

Because you are signed in and your script is not. Your browser sends your Google session with the request, so the sheet loads for you regardless of its sharing setting. An unauthenticated script gets what a stranger would get — on a Restricted sheet, a sign-in page rather than data.

### Do I need to publish the sheet to the web?

No, and you probably should not. Setting Share to "Anyone with the link" is enough and is the less public of the two options. "Publish to web" creates a separate published copy of the sheet and is not required by PasteSheet or by this checker.

## Sources

- [Publish a file from Google Docs, Sheets, Slides or Forms](https://support.google.com/docs/answer/183965) — Google Docs Editors Help
- [Authorize requests — Google Sheets API](https://developers.google.com/workspace/sheets/api/guides/authorizing) — Google

## Related tools

- [Free Google Sheets to JSON Converter](https://pastesheet.com/tools/google-sheets-to-json) — Paste a public Google Sheet URL and get clean, formatted JSON instantly. No signup, no API key, and no Google Cloud project. Copy it, download it, or go live.
- [Google Sheets MCP Config Generator](https://pastesheet.com/tools/google-sheets-mcp-config-generator) — Generate the MCP server config for a Google Sheet — Claude, Cursor, VS Code, and ChatGPT. Get the exact JSON block and the file it goes in. Free, no signup.

---

[PasteSheet](https://pastesheet.com) turns any Google Sheet into a live REST API and MCP server for AI agents — no backend, no code. Canonical HTML version of this page: <https://pastesheet.com/tools/google-sheet-public-checker>
