PRNT REST API
Belgeler & SDK'lar

Dakikalar içinde uygulamalarınıza programatik web yakalamayı entegre edin. RESTful mimari, JSON yanıtları ve imzalı HMAC webhook'ları.

REST API v1.0
42ms Altı Gecikme
OpenAPI 3.0 Belirtimi
5 SDK Hazır

50ms Altı İşleme

Tekrarlanan istekler için anlık CDN önbelleği ile 12 küresel edge düğümünde önceden ısıtılmış Chromium örnekleri.

Piksel Düzeyinde Kusursuz DOM

Eksiksiz JavaScript hidrasyonu, WebGL kareleri, sonsuz kaydırma, retina ölçek çarpanları ve otomatik çerez afişi kapatma.

Güçlendirilmiş Güvenlik

Otomatik SSRF koruması, tek kullanımlık izole Docker sanal alanları, sıfır hedef çerez kalıcılığı ve 256-bit TLS 1.3.

Çoklu Dil SDK'ları

Tipli parametrelerle cURL, Python, Node.js, PHP ve Go dillerinde hazır kütüphaneler ve kod örnekleri.

01 Hızlı Başlangıç Kılavuzu

RESTful API'miz ile 60 saniyeden kısa sürede ilk programatik ekran görüntüsü isteğinizi gönderin:

  1. Canlı API anahtarınızı almak için ücretsiz bir geliştirici hesabı oluşturun.
  2. Bearer belirtecinizi kopyalamak için API Anahtarları Panelinize gidin.
  3. Hedef URL'niz ile /v1/capture uç noktasına bir HTTP POST isteği gönderin.
# Request full-page PNG screenshot
curl -X POST "https://api.prnt.tr/v1/capture" \
  -H "Authorization: Bearer prnt_live_your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://github.com",
    "format": "png",
    "full_page": true,
    "viewport": { "width": 1920, "height": 1080 }
  }' --output screenshot.png
import requests

url = "https://api.prnt.tr/v1/capture"
headers = {
    "Authorization": "Bearer prnt_live_your_api_key_here",
    "Content-Type": "application/json"
}
payload = {
    "url": "https://github.com",
    "format": "png",
    "full_page": True
}

response = requests.post(url, json=payload, headers=headers)
with open("screenshot.png", "wb") as f:
    f.write(response.content)
print("Screenshot saved successfully!")
import fs from 'fs/promises';

const response = await fetch('https://api.prnt.tr/v1/capture', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer prnt_live_your_api_key_here',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    url: 'https://github.com',
    format: 'png',
    full_page: true
  })
});

const buffer = Buffer.from(await response.arrayBuffer());
await fs.writeFile('screenshot.png', buffer);
console.log('Screenshot captured successfully.');
<?php
$apiKey = 'prnt_live_your_api_key_here';
$ch = curl_init('https://api.prnt.tr/v1/capture');

curl_setopt_array($ch, [
    CURLOPT_POST => true,
    CURLOPT_HTTPHEADER => [
        "Authorization: Bearer {$apiKey}",
        "Content-Type: application/json"
    ],
    CURLOPT_POSTFIELDS => json_encode([
        'url' => 'https://github.com',
        'format' => 'png',
        'full_page' => true
    ]),
    CURLOPT_RETURNTRANSFER => true
]);

$image = curl_exec($ch);
file_put_contents('screenshot.png', $image);
curl_close($ch);

02 Kimlik Doğrulama & Güvenlik

PRNT, API isteklerini kriptografik Bearer belirteçleriyle doğrular. Anahtarınızı her isteğin Authorization başlığına ekleyin:

HEADER Authorization: Bearer <YOUR_API_KEY>
Güvenlik En İyi Uygulaması: Gizli API anahtarlarını asla genel istemci tarafı JavaScript'te, GitHub depolarında veya ön uç paketlerinde açığa çıkarmayın. İstekleri daima arka uç servisiniz üzerinden gönderin.

03 Temel URL & İçerik Formatları

Tüm API uç noktaları TLS 1.3 üzerinden güvenli bir şekilde sunulur. Canlı giriş noktası:

HTTPS https://api.prnt.tr/v1

PRNT; web, baskı ve arşivleme için uyarlanmış birden fazla çıktı görsel formatını destekler:

Format MIME Türü En Uygun Kullanım Alanı
png image/png Varsayılan. Kayıpsız kalite; net metinler, UI öğeleri ve şeffaf arka planlar için ideal.
jpeg / jpg image/jpeg Yapılandırılabilir kalite (1-100) ayarıyla fotoğraf ağırlıklı web siteleri için optimize edilmiş dosya boyutu.
webp image/webp JPEG'den %30'a kadar daha küçük dosya boyutuna sahip modern, yüksek sıkıştırmalı web formatı.
pdf application/pdf Faturalar, yasal uyumluluk ve arşiv baskıları için sayfalandırılmış vektör belge çıktısı.

04 POST /v1/capture

Web sayfalarını yüksek çözünürlüklü görsellere veya belgelere dönüştüren ana programatik uç nokta.

POST https://api.prnt.tr/v1/capture

İstek Parametreleri (JSON Gövdesi)

Parametre Tür Durum Açıklama ve Varsayılan
url string ZORUNLU Tam nitelikli hedef web sayfası URL'si (https:// veya http:// içermelidir).
format string İSTEĞE BAĞLI png (varsayılan), jpeg, webp, veya pdf.
full_page boolean İSTEĞE BAĞLI Tüm sayfa yüksekliğini yakalamak için geç yüklenen DOM öğelerini otomatik olarak kaydırır. Varsayılan false.
viewport.width integer İSTEĞE BAĞLI Piksel cinsinden tarayıcı penceresi genişliği. Varsayılan 1920.
viewport.height integer İSTEĞE BAĞLI Piksel cinsinden tarayıcı penceresi yüksekliği. Varsayılan 1080.
delay integer İSTEĞE BAĞLI DOM yüklendikten sonra yakalama öncesi milisaniye cinsinden bekleme süresi (0 – 10000ms). Varsayılan 0.
dark_mode boolean İSTEĞE BAĞLI prefers-color-scheme: dark CSS medya sorgularını taklit eder. Varsayılan false.
block_cookie_banners boolean İSTEĞE BAĞLI Rahatsız edici GDPR / Çerez onay açılır pencerelerini otomatik olarak algılar ve kaldırır. Varsayılan true.
custom_css string İSTEĞE BAĞLI Yakalama öncesinde özel CSS kuralları enjekte edin (ör. .announcement { display: none; }).
custom_js string İSTEĞE BAĞLI Yakalama öncesinde özel istemci tarafı JavaScript kodu yürütün.

05 HTTP Durum Kodları & Hatalar

PRNT, yapılandırılmış JSON hata yükleriyle birlikte standart HTTP yanıt kodları döndürür:

HTTP Kodu Hata Sabiti Sebep ve Çözüm
200 OK SUCCESS Ekran görüntüsü başarıyla işlendi ve ikili görsel veya CDN varlığı olarak döndürüldü.
400 Bad Request INVALID_PARAMETER Eksik hedef URL, geçersiz boyutlar veya hatalı biçimlendirilmiş JSON gövdesi.
401 Unauthorized INVALID_API_KEY İstek başlığında eksik veya iptal edilmiş API Bearer belirteci.
403 Forbidden DOMAIN_BLOCKED İstenen hedef alan adı, Kullanım Politikamızı veya SSRF güvenlik duvarımızı ihlal ediyor.
429 Too Many Requests RATE_LIMIT_EXCEEDED Plan istek kotanıza veya eşzamanlılık sınırınıza ulaşıldı. Yükseltmek için planınızı yükseltin.
504 Gateway Timeout RENDER_TIMEOUT Hedef web sayfası 30 saniyelik yürütme penceresi içinde yanıt veremedi veya işlenemedi.

06 SDK Kod Örnekleri & Kütüphaneler

Resmi SDK'larımız ve HTTP istemcilerimiz için entegrasyona hazır örnek kodları inceleyin:

package main

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

func main() {
	payload, _ := json.Marshal(map[string]interface{}{
		"url":       "https://github.com",
		"format":    "png",
		"full_page": true,
	})

	req, _ := http.NewRequest("POST", "https://api.prnt.tr/v1/capture", bytes.NewBuffer(payload))
	req.Header.Set("Authorization", "Bearer prnt_live_your_api_key_here")
	req.Header.Set("Content-Type", "application/json")

	resp, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer resp.Body.Close()

	out, _ := os.Create("screenshot.png")
	defer out.Close()
	io.Copy(out, resp.Body)
}
# pip install prnt-sdk
from prnt import PrntClient

client = PrntClient(api_key="prnt_live_your_api_key_here")

screenshot = client.capture(
    url="https://github.com",
    format="png",
    full_page=True,
    dark_mode=True,
    delay=500
)

screenshot.save("github_dark.png")
// npm install @prnt/sdk
import { PrntClient } from '@prnt/sdk';

const prnt = new PrntClient({ apiKey: 'prnt_live_your_api_key_here' });

const image = await prnt.capture({
  url: 'https://github.com',
  format: 'webp',
  fullPage: true,
  blockCookieBanners: true
});

await image.save('output.webp');