Minting a key
All CLI and MCP access uses a Bearer API key. Create one via the CLI login flow (it saves to ~/.config/instadash/config.json) or via the API.
# Interactive browser login — saves key automatically
instadash login
# Or mint one directly via API
curl -X POST https://instadash.io/api/keys \
-H "Cookie: <session-cookie>" \
-H "Content-Type: application/json" \
-d '{"name":"my-agent"}'
# → { "key": "sk_live_…", "name": "my-agent", "id": "…" }Using a key
Pass the key as a Bearer token on any /ingest, /api/, or /:handle/:slug/* endpoint.
# One-off
curl https://instadash.io/api/workspace \
-H "Authorization: Bearer sk_live_…"
# Persistent env var (CLI picks this up automatically)
export INSTADASH_KEY=sk_live_…
instadash push --file data.jsonl --name my-grid
# MCP config
{ "env": { "INSTADASH_KEY": "sk_live_…" } }Listing and revoking
# List active keys
curl https://instadash.io/api/keys \
-H "Authorization: Bearer sk_live_…"
# Revoke by ID
curl -X DELETE https://instadash.io/api/keys/<id> \
-H "Authorization: Bearer sk_live_…"Rate limits
Ingest rate limits apply per account across all three push paths (/ingest, /ingest/presign, /ingest/complete). The window resets every hour.
| Plan | Pushes / hr | Max rows / push | Max file | Storage |
|---|---|---|---|---|
| Free | 10 | 1,000 | 10 MB | 100 MB |
| Builder | 60 | 100,000 | 200 MB | 100 GB |
| Agent | 300 | 5,000,000 | 2 GB | 1 TB |
Note: Hitting a limit returns HTTP 429. The CLI surfaces this as a readable message and exits with code 1.