Do these 3 things before closing this tab:
1Clear out junk files and repair common Windows errors2Fix the driver behind crashes, sound loss and screen glitches3Repair Windows errors before they cause bigger problemsA 403 response alone does not reveal why a ScreenshotMachine CLI request failed. Screenshot Machine’s published error table lists provider error codes but does not map any of them to HTTP 403. First capture the full response—including the X-Screenshotmachine-Response header—and identify whether the 403 came from the API, an intermediary, or the target page.
Capture the complete response before changing settings
Save the HTTP status, response headers, and response body or returned error image. Screenshot Machine says its error responses include X-Screenshotmachine-Response, which carries a more specific provider error code. Compare that value with the vendor’s published error list rather than guessing from the status alone. See the Screenshot Machine API documentation.
If the header is absent or the response does not look like a Screenshot Machine error, do not assume the API generated the 403. An intermediary or the page being captured may be responsible. The available documentation does not establish how every target-page 403 appears in every CLI flow, so retain the raw response and determine which endpoint returned it.
Verify the request matches the documented API format
Screenshot Machine documents an HTTP GET to https://api.screenshotmachine.com/, with the customer key and target url as query parameters. Check the CLI’s actual method, hostname, path, and parameters against the vendor’s current example. Ensure the target URL is percent-encoded; the documentation recommends encoding it.
#1 Best Overall
A minimal shell request, following the vendor’s documented GET pattern, looks like this:
curl -G 'https://api.screenshotmachine.com/'
--data-urlencode 'key=YOUR_API_KEY'
--data-urlencode 'url=https://example.com/'
-D response-headers.txt
-o response-body
This saves headers separately so you can inspect X-Screenshotmachine-Response as well as the response body. Treat the key as a secret: redact it before sharing command output, shell history, or logs.
Rank #2
- Intuitive interface of a conventional FTP client
- Easy and Reliable FTP Site Maintenance.
- FTP Automation and Synchronization
Check the key, URL, and optional hash
- Key: Confirm that the request includes the intended account’s key. The vendor’s documented codes include
missing_keyandinvalid_key. - Target URL: Confirm that the
urlparameter is present and encoded as one query-parameter value. The documented codes includemissing_urlandinvalid_url. - Secret phrase and hash: If a secret phrase is configured on the account, the vendor says the request must include the matching
hash. Its documented calculation uses the URL parameter value concatenated with the secret phrase and MD5. Use the exact URL value sent in the request, and follow the current vendor documentation. Do not expose the phrase in shared logs. The error list includesinvalid_hash.
Other documented codes include invalid_selector, invalid_crop, and system_error. These are provider-specific signals to investigate if returned; the documentation does not say that any one of them corresponds to HTTP 403.
Check account credits without treating them as a 403 diagnosis
The vendor lists no_credits for an account with no remaining credits. Check the account if the provider response points to credits or usage, but do not conclude that exhausted credits caused a 403: the published documentation does not associate no_credits with that HTTP status.
Rank #3
Troubleshoot by the response you actually received
| What you see | What to check next |
|---|---|
X-Screenshotmachine-Response contains a documented code |
Use the code’s meaning in the vendor documentation to check the corresponding parameter or account condition. Do not infer an HTTP-status mapping the documentation does not state. |
| The provider header is missing, or the body is not a provider error | Check the response’s host and headers to see whether a proxy, gateway, or other intermediary returned the 403. |
| The request reaches the API, but the target page appears to be forbidden | Preserve the API response and determine whether the 403 belongs to the captured page. The available documentation does not define how every CLI flow reports target-page errors. |
| The response indicates missing or invalid request data | Compare the actual GET method, endpoint, key, URL, encoding, and—if configured—the hash with the request format above. |
Or skip the browser setup
If your goal is simply to get a website screenshot, ScreenshotNeo offers a one-request screenshot API and an MCP server for AI agents. For example, this cURL request captures a WebP screenshot:
Quick Recap
Best Value
Rank #4
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp
See the ScreenshotNeo API documentation for request options. Cookie banners, popups, and chat widgets are removed before the shot; bot checks, blank pages, and failed loads are never billed. AI agents can take screenshots through its MCP server. The free plan includes 1,000 screenshots a month with no card, and paid plans start at $5 for 3,000. Sign up for ScreenshotNeo free.
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




