Authentication
Create and manage API keys for DeepSyte.
API Keys
REST API requests use API keys. MCP and CLI access use a short-lived OAuth session issued after you sign in to the DeepSyte website.
Use https://api.deepsyte.com as the canonical API and OAuth host. The Railway service domain is https://screenshotsmcp-api-production.up.railway.app, but MCP clients should be configured against the custom API domain. Do not use the obsolete https://deepsyte-api-production.up.railway.app host.
Creating a Key
- Sign in at deepsyte.com/dashboard
- Go to API Keys
- Click Create API Key if you do not already have one
- If the key is hidden, click the eye icon to reveal the full key before copying it
- Copy the key. It starts with
sk_live_
Keep your API key private. Logged-in users can reveal and copy the stored REST key from the dashboard, but you should roll it immediately if it is shared or leaked.
Using Your Key
MCP Server
Use the base MCP URL. Your MCP client should open the DeepSyte website to authorize:
https://api.deepsyte.com/mcpIf the browser opens a Railway 404 during OAuth, clear the stale API URL in the client or CLI config and reconnect with https://api.deepsyte.com/mcp.
If an agent tries to use DeepSyte before it is connected, the MCP endpoint returns a 401 with both a WWW-Authenticate challenge and JSON error details. The response includes:
mcp_url:https://api.deepsyte.com/mcplogin_url: the DeepSyte website sign-in pagesetup_url: installation instructionscodex_login_command:codex mcp login deepsyte
Agents should show those fields to the user when a natural request such as "run an SEO test on example.com" cannot start because the MCP tools are not mounted yet.
REST API
Pass your key in the Authorization header:
curl -X POST https://api.deepsyte.com/v1/screenshot \
-H "Authorization: Bearer sk_live_..." \
-H "Content-Type: application/json" \
-d '{"url": "https://example.com"}'Check your current monthly balance without creating a job:
curl https://api.deepsyte.com/v1/account/balance \
-H "Authorization: Bearer sk_live_..."The response includes usage.used, usage.limit, usage.remaining, usage.unlimited, usage.policy, and the monthly reset timestamp. Admin accounts return usage.unlimited: true, usage.limit: null, and usage.remaining: null.
Key Management
- Revoke a key instantly from the dashboard
- Usage tracking shows screenshots consumed per key
- Create multiple keys for different environments (dev, staging, prod)
Recommended Auth Testing Workflow
If you use DeepSyte for website login, sign-up, or verification testing, start with the reusable auth helper:
npx deepsyte auth:test https://example.comThis workflow:
- Reuses your saved primary test inbox and password
- Checks remembered auth history for the site's normalized origin
- Recommends whether the agent should try sign-in first, switch to sign-up, or expect verification
- Returns reusable cross-site auth strategy first and site-specific evidence second
- Returns account-exists confidence, likely auth method, expected follow-up, and known-site history for the reusable inbox
- Lets the agent record what happened after the attempt so future runs improve automatically
Your saved inbox credentials are visible in Dashboard → Settings → Test Inboxes.
Rate Limits
| Plan | Screenshots / month |
|---|---|
| Free | 100 |
| Starter | 2,000 |
| Pro | 10,000 |
Rate limits reset on the 1st of each month.
Use GET /v1/account/balance, MCP account_balance, or CLI deepsyte balance to check the live balance for the authenticated user.
Admin users configured in ADMIN_EMAILS bypass monthly caps. Their balance response reports usage.unlimited: true and policy admin-unlimited.