GoScreenAPI
Webhooks API — GoScreenAPI

One Webhook, Seven Event Types

Subscribe once, receive every event the GoScreenAPI platform produces — screenshots, visual diffs, price changes, uptime alerts, crawl completions, and AI agent runs — all signed with HMAC-SHA256 and retried up to four times.

250 free screenshots/month No credit card required REST API · JSON
javascript
// Express.js webhook receiver — verify the signature and process the event
const crypto = require('crypto');
const express = require('express');

app.post('/webhooks/goscreen', express.raw({ type: 'application/json' }), (req, res) => {
  const sig = req.headers['x-goscreen-signature'] || '';
  const expected = 'sha256=' + crypto.createHmac('sha256', process.env.GOSCREEN_SECRET)
    .update(req.body)
    .digest('hex');

  if (!crypto.timingSafeEqual(Buffer.from(sig), Buffer.from(expected))) {
    return res.status(401).end();
  }

  const event = JSON.parse(req.body.toString());
  console.log(event.event, event.data);  // e.g. "screenshot.completed"
  res.status(200).end();
});
Features

Everything you need.
Nothing you don't.

Seven Event Types

screenshot.completed, visual.diff_detected, price.changed, uptime.down, uptime.up, crawl.completed, ai_agent.completed.

HMAC-SHA256 Signed

Every request carries an X-GoScreen-Signature header. Verify it in any language with the standard library.

Smart Retries

Four attempts at increasing backoff (immediate, +1m, +10m, +1h). One delivery row per attempt history.

Per-User Subscriptions

Each subscription is yours alone. Multi-tenant isolation enforced at the dispatcher boundary.

Test & Replay

Fire a synthetic test event from the dashboard. Failed deliveries can be force-retried with one click.

Rotatable Secrets

Rotate the signing secret without losing delivery history. Old secret stops working immediately.

Use Cases

Built for real workflows

From solo developers to enterprise teams — GoScreenAPI fits into any stack.

Slack & Discord Bots

Post screenshot results, uptime alerts, or price drops to a channel as soon as they happen.

AI Pipelines

Trigger downstream LLM workflows when a screenshot or crawl finishes — no polling required.

Custom Dashboards

Stream events to your own database for custom analytics, internal tooling, or audit logs.

Zapier / Make / n8n

Plug GoScreenAPI events into 6,000+ apps via standard webhook nodes.

API Reference

Key Parameters

Full reference at goscreenapi.com/docs

Parameter Type Description
url string Your HTTPS endpoint that receives POST requests
event_types array Subset of the seven canonical event types to listen for
description string Optional human label for the subscription
is_active boolean Toggle without deleting; defaults to true
X-GoScreen-Signature header sha256=<hex(hmac_sha256(secret, raw_body))> — verify on receiver
X-GoScreen-Event header Canonical event type, e.g. screenshot.completed
Why GoScreenAPI

Speed. Scale. Simplicity.

< 3s
Avg. response time

Sync mode results in under 3 seconds for most pages.

99.9%
Uptime SLA

Production-grade reliability with redundant infrastructure.

150 req/min
Rate limit (Pro)

Handle high-volume workloads without throttling.

FAQ

Common questions

Compute HMAC-SHA256 over the RAW request body with your subscription secret, prefix the hex digest with "sha256=", and compare against the X-GoScreen-Signature header using a constant-time comparison (e.g. crypto.timingSafeEqual in Node.js, hmac.compare_digest in Python, hash_equals in PHP). Critical: capture the raw bytes BEFORE any JSON parsing.
Four total attempts: immediately on the first try, then +1 minute, +10 minutes, and +1 hour. Each attempt mutates the same delivery row (attempt_no increments, status becomes retrying). After the fourth failure status becomes failed and you can force-retry from the dashboard.
Any 2xx HTTP response within 30 seconds. Anything else (3xx, 4xx, 5xx, timeout, DNS failure, connect refused) triggers the retry schedule.
Each delivery carries an X-GoScreen-Delivery header with a stable UUID across retries. Store seen UUIDs (e.g. in Redis with a 24h TTL) and skip duplicates. The same logical delivery never gets a new UUID, even after manual force-retry.
Up to 10 active subscriptions per account. You can have unlimited inactive ones; only active subscriptions receive events.
No. The legacy per-request webhook_url + webhook_secret on /api/v1/screenshot is fully supported and unchanged. The Webhooks API adds an additional, generic, multi-event subscription system on top. Both can run in parallel.
No. Each subscription is owned by one user; the dispatcher enforces strict user_id isolation. There is no team-shared subscription mode at this time.
Sign in and visit /dashboard/webhook-subscriptions, click "New Webhook", paste your endpoint URL, pick events, and copy the secret shown once. The dashboard also exposes test, retry, rotate-secret and delivery-history actions.

Start building with GoScreenAPI

250 free screenshots every month. No credit card required. Production-ready in minutes.

Fast Screenshot API Overview

The screenshot API offers a powerful means for developers to capture any URL as an image format like PNG, JPEG, or WebP via a REST interface. Remarkably, the response time is typically under three seconds. With this tool, you can specify custom viewport dimensions, full-page capture, retina 2x resolution, and even enable dark mode effortlessly.

Interested in trying it out? The API provides 250 free credits each month, perfect for testing and integration. With over 2000 developers relying on it, this free screenshot tool is rapidly becoming a developer favorite.

Features and Customization

Our screenshot API enables extensive customization options for your website screenshot needs. You can capture full pages or specific sections by setting your preferred viewport size. Additionally, our full page capture capability ensures you do not miss any vital content on the target page.

Besides capturing the standard view, you can opt for retina 2x resolution for higher clarity or transform the page display with dark mode. These features make the API versatile for capturing various display scenarios programmatically.

Efficient REST API Usage

Using the REST API screenshot capability, developers can convert any URL to an image with simple HTTP requests. The API is designed for ease of use, providing rapid responses in less than three seconds and supporting multiple image formats.

You can perform HTML to image conversion efficiently, thanks to our streamlined endpoint architecture. The HTML to image conversion page offers further insights into the API's functionality.

Getting Started with 250 Free Credits

New users can leverage 250 free credits each month to test and integrate the screenshot API into their workflows. This allocation empowers developers to explore different API features without initial costs, facilitating seamless incorporation into projects.

The simple setup process and comprehensive documentation make it easy to get started. Join the community of over 2000 developers who are already reaping the benefits of this programmatic screenshot solution.

FAQ

What image formats are supported?

The screenshot API supports PNG, JPEG, and WebP formats, allowing flexibility in choosing the best format for your use case.

How do I enable dark mode?

Dark mode can be activated by setting a specific parameter in your API request, allowing you to capture a website in an alternate color scheme.

What is the maximum capture resolution supported?

The API supports retina 2x resolution, ensuring high-quality images that are suitable for detailed analysis and presentations.

How quickly can I expect a response?

The API typically delivers responses in under three seconds, making it one of the fastest options available for capturing website screenshots via REST.

Ready to capture your first website screenshot? Start using the screenshot API today and transform the way you work with web images.