Screenshot API v1

以下は POST /api/v1/screenshots.

認証

API キーを Authorization ヘッダーに送信してください:

Authorization: Bearer <api_key>

スクリーンショットを作成

エンドポイント: POST /api/v1/screenshots
本文: JSON

最小リクエスト例

curl -X POST "https://api.page-ops.com/api/v1/screenshots" \
  -H "Authorization: Bearer $SCREENSHOT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"url":"https://example.com"}'

同期リクエスト(許可される場合)

curl -X POST "https://api.page-ops.com/api/v1/screenshots" \
  -H "Authorization: Bearer $SCREENSHOT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://example.com",
    "mode": "sync",
    "timeoutMs": 8000,
    "fullPage": false
  }'
完了前に同期ウィンドウが切れた場合、API は status=processing. 以下を使ってポーリングを続けてください: GET /api/v1/screenshots/{jobId}.

主要パラメータ

url
必須。キャプチャ対象の URL。
mode
任意。 async (デフォルト)または sync.
timeoutMs
これは sync. で必須です。次を満たす必要があります: > 0 かつ < 10000.
fullPage
任意。 sync モードでは、 false.
同期モード制約
たとえ mode=sync, を指定しても、以下を満たさない限りサーバーは async にフォールバックします:
mode == "sync"
timeoutMs != null
0 < timeoutMs < 10000
fullPage == false

パラメータ一覧(完全版)

項目 必須 デフォルト 説明
urlstringはい-対象 URL。
modestringいいえasync次を受け付けます: async または sync (大文字・小文字は区別されません)。;
timeoutMsint?いいえ-sync の場合のみ使用されます。次を満たす必要があります: 0 < timeoutMs < 10000.
fullPageboolいいえfalsesync では false.
viewportobject?いいえ-ビューポートを上書きします。
formatstring?いいえ-現在サポートされているのは png のみです。他の形式は将来のバージョン向けに予約されています。
qualityint?いいえ-現在は無視されます(将来的に jpeg/webp でのみ使用予定)。
waitUntilstring?いいえ-推奨値: load, domcontentloaded, networkidle.
delayMsint?いいえ-waitUntil 後の追加遅延。
selectorstring?いいえ-特定の要素のみをキャプチャします。
headersobject?いいえ-追加のリクエストヘッダー辞書。
cookiesarray?いいえ-注入する Cookie の一覧。
javascriptstring?いいえ-注入するカスタム JS(実装依存)。;
cssstring?いいえ-注入するカスタム CSS(実装依存)。;
devicestring?いいえ-推奨値: desktop/iphone/ipad/pixel.
strictDevicebool?いいえ-true の場合、未対応デバイスは失敗すべきです(実装依存)。;
colorSchemestring?いいえ-推奨値: light/dark/no-preference.
proxystring?いいえ-将来のバージョン向けに予約されており、現在は無視されます。
tracebool?いいえ-将来のバージョン向けに予約されており、現在は無視されます。
harbool?いいえ-将来のバージョン向けに予約されており、現在は無視されます。
returnDombool?いいえ-将来のバージョン向けに予約されており、現在は無視されます。
returnNetworkbool?いいえ-将来のバージョン向けに予約されており、現在は無視されます。
priorityint?いいえ-将来のバージョン向けに予約されており、現在は無視されます。

viewport

項目必須説明
viewport.widthintいいえビューポートの幅。
viewport.heightintいいえビューポートの高さ。

cookies[]

項目必須説明
cookies[].namestringはいCookie 名。
cookies[].valuestringはいCookie 値。
cookies[].domainstring?いいえCookie ドメイン。
cookies[].pathstring?いいえCookie パス。

レスポンス例

非同期(デフォルト)
{ "jobId": "<guid>", "status": "pending" }
同期(完了)
{ "jobId": "<guid>", "status": "completed", "result": { "url": "https://..." } }
同期(失敗)
{ "jobId": "<guid>", "status": "failed", "errorMessage": "..." }
同期(タイムアウト)
{ "jobId": "<guid>", "status": "processing" }
非同期呼び出し(または同期タイムアウト)の場合は、 GET /api/v1/screenshots/{jobId} で状態を確認してください。想定される値: pending, processing, completed, failed, expired.

エラー

HTTP発生条件本文
400body がない、または url がない/空BadRequest
401API キーが無効または欠落ミドルウェア応答
402クォータ超過{ "error": "quota_exceeded", "operationKey": "screenshot.capture", ... }
429レート制限{ "error": "rate_limited", "operationKey": "screenshot.capture", ... }
404ジョブが見つかりませんNotFound

実践例

一般的な統合ニーズに対応した実用例です。

対象サイトの認証トークンを渡す(headers 経由)

キャプチャ対象ページが保護されている場合(Bearer/JWT/session token)、次を使って転送してください: headers:
{
  "url": "https://example.com/dashboard",
  "headers": {
    "Authorization": "Bearer <target_site_token>"
  }
}

Cookie を設定する(セッションベースのログイン)

Web サイトが認証に Cookie を使用している場合は、次を使って渡してください: cookies:
{
  "url": "https://example.com/account",
  "cookies": [
    { "name": "session", "value": "<cookie_value>", "domain": "example.com", "path": "/" }
  ]
}

カスタムリクエストヘッダー(User-Agent / locale)

{
  "url": "https://example.com",
  "headers": {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64)",
    "Accept-Language": "en-US,en;q=0.9"
  }
}

ビューポート + 形式 + 品質

{
  "url": "https://example.com",
  "viewport": { "width": 1280, "height": 720 },
  "format": "jpeg",
  "quality": 85
}

ページ読み込み待機 + 遅延追加

{
  "url": "https://example.com",
  "waitUntil": "networkidle",
  "delayMs": 500
}

特定要素をキャプチャ(selector)

{
  "url": "https://example.com/pricing",
  "selector": "#pricing"
}

状態を取得

ジョブをポーリング:

GET /api/v1/screenshots/{jobId}