GridOS ships three third-party connectors in-tree. Each is a plugin — loaded at boot, callable as a formula from any cell, configurable per-user through the marketplace Configure modal (or via env vars in OSS). All three follow the same pattern: stdlibDocumentation Index
Fetch the complete documentation index at: https://gridos.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
urllib (no new Python deps), a 60-second in-process cache so spreadsheet-wide recalcs don’t hammer the upstream API, and #<PLUGIN>_*! sentinel strings on failure so errors surface in-cell rather than crashing the recalc.
Shopify
Formulas:STORE_DOMAIN— your Shopify admin domain, e.g.myshop.myshopify.com. No scheme, no trailing slash.ADMIN_TOKEN— a private-app Admin API access token (shpat_…). Needs at minimum theread_ordersandread_productsscopes.
SHOPIFY_STORE_DOMAIN / SHOPIFY_ADMIN_TOKEN env vars (OSS).
Stripe
Formulas:SECRET_KEY—sk_live_…orsk_test_…from Stripe Dashboard → Developers → API keys. For safety, use a restricted key with read-only access to Charges, Customers, and Subscriptions rather than your primary secret key.
GitHub
Formulas:"user/repo" or a pasted GitHub URL like "https://github.com/user/repo".
Credentials (optional):
TOKEN— optional personal access token. Without one you get GitHub’s anonymous 60 req/hr limit on public repos; with one you get 5000 req/hr and can read private repos you have access to.
Error sentinels
All three connectors return sentinel strings on failure so the error is visible in-cell:| Sentinel | Meaning |
|---|---|
#SHOPIFY_AUTH! / #STRIPE_AUTH! / #GITHUB_AUTH! | Missing credentials, or upstream returned 401/403 |
#SHOPIFY_OFFLINE! / #STRIPE_OFFLINE! / #GITHUB_OFFLINE! | Network unreachable |
#SHOPIFY_<code>! | Any non-auth HTTP error surfaced with the upstream status code |
#GITHUB_RATE_LIMIT! | 60 req/hr anon limit exceeded — set a GITHUB_TOKEN |
#GITHUB_NOT_FOUND! / #GITHUB_BAD_REPO! | Repo doesn’t exist or the repo string didn’t parse |
#NOT_INSTALLED: enable the 'slug' plugin in File > Marketplace | You’ve toggled something in the marketplace and this plugin isn’t enabled for your account |
Caveats
- Operator-scoped env vars in SaaS — if you set
SHOPIFY_ADMIN_TOKENon the Render service in SaaS mode, every user queries your Shopify store. That’s the OSS fallback behavior bleeding through. For a multi-tenant deploy, don’t set plugin credentials in the server env; let each user configure their own via the marketplace Configure modal. - Per-user quotas live upstream — the 60 req/hr GitHub anon limit, Stripe’s 100 req/sec cap, and Shopify’s leaky-bucket rate limit are all on the upstream. The 60s cache helps a ton but a workbook that uses the same formula in 100 cells will still issue one upstream request per formula per 60s window.
Related
- The GridOS plugin system — how to write your own connector.
- Plugin marketplace — how to install + configure them.