Take automated website screenshots in your GitHub Actions workflow. No Puppeteer setup, no browser dependencies — just one API call.
- Deployment verification — screenshot your app after every deploy
- Visual regression testing — compare screenshots across PRs
- PR previews — auto-post screenshots of staging URLs on pull requests
- Documentation — generate up-to-date screenshots for docs
- Monitoring — periodic screenshots of production pages
- name: Take screenshot
uses: OzorOwn/frostbyte-screenshot-action@v1
with:
url: 'https://your-app.vercel.app'That's it. The screenshot is saved as an artifact you can download from the Actions tab.
name: Deploy & Screenshot
on:
push:
branches: [main]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Deploy to Vercel
id: deploy
run: echo "url=https://your-app.vercel.app" >> $GITHUB_OUTPUT
- name: Screenshot deployment
uses: OzorOwn/frostbyte-screenshot-action@v1
with:
url: ${{ steps.deploy.outputs.url }}
viewport: desktop- name: Desktop screenshot
uses: OzorOwn/frostbyte-screenshot-action@v1
with:
url: 'https://example.com'
viewport: desktop
output-path: screenshots/desktop.png
artifact-name: desktop-screenshot
- name: Mobile screenshot
uses: OzorOwn/frostbyte-screenshot-action@v1
with:
url: 'https://example.com'
viewport: mobile
output-path: screenshots/mobile.png
artifact-name: mobile-screenshotname: PR Screenshot
on:
pull_request:
jobs:
screenshot:
runs-on: ubuntu-latest
permissions:
pull-requests: write
steps:
- name: Screenshot staging
uses: OzorOwn/frostbyte-screenshot-action@v1
with:
url: 'https://staging.your-app.com'
comment-on-pr: 'true'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}- name: Full page dark mode screenshot
uses: OzorOwn/frostbyte-screenshot-action@v1
with:
url: 'https://example.com'
full-page: 'true'
dark-mode: 'true'
format: jpeg
quality: '90'
output-path: screenshots/full-dark.jpeg| Input | Description | Default | Required |
|---|---|---|---|
url |
URL to screenshot | — | Yes |
viewport |
desktop, tablet, mobile, 1080p, 4k |
desktop |
No |
format |
png or jpeg |
png |
No |
full-page |
Capture full scrollable page | false |
No |
dark-mode |
Emulate dark color scheme | false |
No |
quality |
JPEG quality (1-100) | 80 |
No |
output-path |
File path for the screenshot | screenshot.png |
No |
api-key |
Frostbyte API key (optional) | — | No |
comment-on-pr |
Post screenshot as PR comment | false |
No |
upload-artifact |
Upload as GitHub Actions artifact | true |
No |
artifact-name |
Name for the artifact | screenshot |
No |
| Output | Description |
|---|---|
screenshot-path |
Path to the saved screenshot file |
screenshot-url |
URL to view the artifact in Actions |
| Preset | Resolution |
|---|---|
desktop |
1280 x 720 |
tablet |
768 x 1024 |
mobile |
375 x 812 |
1080p |
1920 x 1080 |
4k |
3840 x 2160 |
Works without an API key — 50 free screenshots per IP. For higher limits:
- Get a free API key:
curl -X POST https://agent-gateway-kappa.vercel.app/api/keys/create - Add it as a repository secret (
FROSTBYTE_API_KEY) - Pass it to the action:
- uses: OzorOwn/frostbyte-screenshot-action@v1
with:
url: 'https://example.com'
api-key: ${{ secrets.FROSTBYTE_API_KEY }}Free API keys include 200 credits. Each screenshot costs 1 credit.
This action uses the Frostbyte Screenshot API — one of 40+ developer APIs available through a single gateway.
- API Catalog — Browse all APIs
- Get API Key — 200 free credits
- SDK (JavaScript + Python) — Client libraries
MIT