Быстрый старт — SnapStack

Интеграция API скриншотов в ваше приложение за 5 минут. Никакой лишней конфигурации.

Примеры кода

Выберите ваш стек. Все примеры используют стандартные библиотеки и аутентификацию через заголовок X-API-Key.

cURL

curl -X POST "https://api.snapstack.io/v1/capture" \
  -H "X-API-Key: sk_live_48291..." \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://example.com",
    "viewport": { "width": 1280, "height": 800 },
    "format": "png"
  }' \
  --output page-screenshot.png

Python

import requests

response = requests.post(
    "https://api.snapstack.io/v1/capture",
    headers={
        "X-API-Key": "sk_live_48291...",
        "Content-Type": "application/json"
    },
    json={
        "url": "https://example.com",
        "viewport": {"width": 1280, "height": 800},
        "format": "jpeg",
        "quality": 90
    }
)

with open("preview.jpg", "wb") as f:
    f.write(response.content)

Node.js

const axios = require('axios');
const fs = require('fs');

async function capture() {
  const res = await axios.post(
    'https://api.snapstack.io/v1/capture',
    {
      url: 'https://example.com',
      viewport: { width: 1280, height: 800 },
      format: 'png'
    },
    {
      headers: { 'X-API-Key': 'sk_live_48291...' },
      responseType: 'arraybuffer'
    }
  );
  
  fs.writeFileSync('screenshot.png', Buffer.from(res.data));
}

capture();

Go

package main

import (
    "bytes"
    "encoding/json"
    "net/http"
    "os"
)

func main() {
    payload := map[string]interface{}{
        "url": "https://example.com",
        "viewport": map[string]int{"width": 1280, "height": 800},
        "format": "png",
    }
    
    body, _ := json.Marshal(payload)
    req, _ := http.NewRequest("POST", "https://api.snapstack.io/v1/capture", bytes.NewBuffer(body))
    req.Header.Set("X-API-Key", "sk_live_48291...")
    req.Header.Set("Content-Type", "application/json")

    client := &http.Client{}
    resp, _ := client.Do(req)
    defer resp.Body.Close()

    out, _ := os.Create("page.png")
    defer out.Close()
    
    // Copy response body to file
    // io.Copy(out, resp.Body)
}