### Install official client libraries Source: https://ironfang.uk/renderwolf/docs Commands to install the official Renderwolf SDKs for Node.js and Python. ```bash npm install @ironfang/renderwolf # TypeScript, Node 20+ pip install ironfang-renderwolf # Python ``` -------------------------------- ### Perform a screenshot request with Renderwolf Source: https://ironfang.uk/renderwolf/docs Example of a POST request to the Renderwolf API using curl, demonstrating blocking, waiting, and device scaling options. ```bash curl -X POST https://api.ironfang.uk/renderwolf/v1/screenshot \ -H "Authorization: Bearer if_live_..." \ -H "Content-Type: application/json" \ -d '{ "url": "https://example.com", "block_ads": true, "block_cookie_banners": true, "wait_for_selector": "#main", "device_scale_factor": 2 }' \ --output shot.png ``` -------------------------------- ### GET /v1/templates Source: https://ironfang.uk/renderwolf/docs List all templates associated with the account. ```APIDOC ## GET /v1/templates ### Description Retrieve a list of all stored templates. ### Method GET ### Endpoint /v1/templates ``` -------------------------------- ### Create a Signed URL Source: https://ironfang.uk/renderwolf/docs Generates a stable, signed GET URL for images or screenshots without exposing API keys. ```bash curl -X POST https://api.ironfang.uk/renderwolf/v1/sign \ -H "Authorization: Bearer if_live_..." \ -d '{"kind": "image", "template": "0198c9f1-5b7a-7c2e-9f1d-3a8b2c4d5e6f", "vars": {"title": "My post"}, "ttl_hours": 0}' {"url": "https://api.ironfang.uk/v1/r/0/a1b2c3...?kind=image&template=0198c9f1-5b7a-7c2e-9f1d-3a8b2c4d5e6f&v.title=My+post"} ``` -------------------------------- ### GET /renderwolf/v1/deliveries Source: https://ironfang.uk/renderwolf/docs Retrieves the status of job deliveries. ```APIDOC ## GET /renderwolf/v1/deliveries ### Description Shows the status and progress of each delivery attempt for jobs. ### Method GET ### Endpoint /renderwolf/v1/deliveries ``` -------------------------------- ### GET /v1/usage Source: https://ironfang.uk/renderwolf/docs Retrieves the current consumption metrics against the account's plan hard cap. ```APIDOC ## GET /v1/usage ### Description Returns the current usage statistics for the account, including the billing period, credit usage, and plan limit. ### Method GET ### Endpoint /v1/usage ### Response #### Success Response (200) - **period** (string) - The start date of the current billing cycle. - **credits** (integer) - The number of credits consumed in the current period. - **renders** (integer) - Deprecated field, repeats the credits value. - **limit** (integer) - The hard cap limit for the current plan. #### Response Example { "period": "2026-08", "credits": 1240, "renders": 1240, "limit": 50000 } ``` -------------------------------- ### GET /v1/templates/{id} Source: https://ironfang.uk/renderwolf/docs Fetch a specific template by its ID. ```APIDOC ## GET /v1/templates/{id} ### Description Fetch details for a single template. ### Method GET ### Endpoint /v1/templates/{id} ### Parameters #### Path Parameters - **id** (string) - Required - The UUIDv7 of the template ``` -------------------------------- ### POST /v1/sign Source: https://ironfang.uk/renderwolf/docs Creates a stable, signed GET URL for use in image elements or meta tags. The signature prevents unauthorized changes and covers all parameters. ```APIDOC ## POST /v1/sign ### Description Creates a stable GET URL for use in an `` element or `og:image` meta tag. The URL does not expose the API key or require an application proxy. ### Method POST ### Endpoint /v1/sign ### Request Body - **kind** (string) - Required - `screenshot` or `image`. - **url** (string) - Optional - Target page (required for `kind: screenshot`). - **template** (string) - Optional - Template id (required for `kind: image`). - **vars** (object) - Optional - Template variables (required for `kind: image`). - **width** (int) - Optional - Dimensions. - **height** (int) - Optional - Dimensions. - **full_page** (bool) - Optional - Screenshots only. - **ttl_hours** (int) - Optional - Expiry. `0` = never expires. ### Response #### Success Response (200) - **url** (string) - The full signed URL. - **path** (string) - The path component of the URL. ``` -------------------------------- ### GET /renderwolf/v1/batches/{id} Source: https://ironfang.uk/renderwolf/docs Retrieves the status and counts of a specific batch by its ID. ```APIDOC ## GET /renderwolf/v1/batches/{id} ### Description Poll the status of a batch, including counts by state, completion status, and full job resources for every item in the batch. ### Method GET ### Endpoint /renderwolf/v1/batches/{id} ### Parameters #### Path Parameters - **id** (string) - Required - The unique identifier of the batch. ``` -------------------------------- ### GET /renderwolf/v1/jobs/{id} Source: https://ironfang.uk/renderwolf/docs Retrieves the status and result of a previously submitted rendering job. ```APIDOC ## GET /renderwolf/v1/jobs/{id} ### Description Returns the job status and result details. A succeeded job includes a signed URL valid for 15 minutes. ### Method GET ### Endpoint /renderwolf/v1/jobs/{id} ### Parameters #### Path Parameters - **id** (string) - Required - The unique identifier of the job. ``` -------------------------------- ### Create a Template Source: https://ironfang.uk/renderwolf/docs Use this request to store an HTML template with placeholders for dynamic content. ```bash curl -X POST https://api.ironfang.uk/renderwolf/v1/templates \ -H "Authorization: Bearer if_live_..." \ -d '{ "name": "og-card", "html": "

{{title}}

{{author}}

", "width": 1200, "height": 630 }' ``` -------------------------------- ### Request a site preview with fetch Source: https://ironfang.uk/renderwolf/docs Use this POST request to initiate a site preview. Ensure the API key is kept secure on the server-side. ```javascript const response = await fetch( 'https://api.ironfang.uk/renderwolf/v1/site-preview', { method: 'POST', headers: { Authorization: 'Bearer if_live_...', 'Content-Type': 'application/json' }, body: JSON.stringify({ url: 'https://example.com', motion: 'per_page' }) } ); const output = await response.formData(); const poster = output.get('poster'); // poster.jpg, image/jpeg const video = output.get('video'); // preview.mp4, video/mp4 ``` -------------------------------- ### POST /renderwolf/v1/site-preview Source: https://ironfang.uk/renderwolf/docs Generates a top-to-bottom preview of a public webpage, returning a JPEG poster and an H.264 MP4 video. ```APIDOC ## POST /renderwolf/v1/site-preview ### Description Turn a public webpage into a top-to-bottom preview. One request returns a JPEG poster from the first frame and a browser-recorded H.264 MP4. ### Method POST ### Endpoint https://api.ironfang.uk/renderwolf/v1/site-preview ### Parameters #### Request Body - **url** (string) - Required - Public HTTP or HTTPS page to record. - **width** (int) - Optional - Even output width from 320 to 1280. Default 672. - **height** (int) - Optional - Even output height from 240 to 1200. Default 494. - **motion** (string) - Optional - 'per_page' for viewport-sized steps and pauses, or 'single_sweep' for one continuous pass. Default 'per_page'. - **device** (string) - Optional - 'desktop', 'tablet' or 'mobile'. - **dark_mode** (bool) - Optional - Record with the page's dark colour scheme. Default false. - **no_cache** (bool) - Optional - Force a fresh recording. Default false. ### Request Example { "url": "https://example.com", "motion": "per_page" } ### Response #### Success Response (200) - **poster** (file) - JPEG image of the first frame. - **video** (file) - H.264 MP4 video file. ``` -------------------------------- ### POST /renderwolf/v1/screenshot Source: https://ironfang.uk/renderwolf/docs Generates a screenshot of the specified URL and returns the binary asset. ```APIDOC ## POST /renderwolf/v1/screenshot ### Description Generates a screenshot of a provided URL. The response returns the binary asset directly. ### Method POST ### Endpoint https://api.ironfang.uk/renderwolf/v1/screenshot ### Request Body - **url** (string) - Required - The URL to capture. - **width** (integer) - Optional - The width of the viewport in pixels. ### Request Example { "url": "https://example.com", "width": 1280 } ### Response #### Success Response (200) - **Binary Asset** (image/png, image/jpeg, application/pdf) - The rendered file content. ``` -------------------------------- ### POST /v1/screenshot Source: https://ironfang.uk/renderwolf/docs Capture a URL or raw HTML with a warm Chromium instance. ```APIDOC ## POST /v1/screenshot ### Description Capture a URL or raw HTML with a warm Chromium instance. Uses 1 credit. ### Method POST ### Endpoint https://api.ironfang.uk/renderwolf/v1/screenshot ### Parameters #### Request Body - **url** (string) - Optional - Page to capture. Provide url or html, not both. - **html** (string) - Optional - Raw HTML to render instead of a URL. - **width** (int) - Optional - Viewport width. Default 1280. - **height** (int) - Optional - Viewport height. Default 800. - **device** (string) - Optional - desktop, tablet or mobile. - **full_page** (bool) - Optional - Capture the full scroll height instead of the viewport. - **selector** (string) - Optional - CSS selector for capturing a single element. - **dark_mode** (bool) - Optional - Emulate prefers-color-scheme: dark. - **format** (string) - Optional - png (default), jpeg or webp. - **quality** (int) - Optional - JPEG and WebP quality from 1 to 100. Default 85. - **delay_ms** (int) - Optional - Additional wait time after load for late-rendering content. - **no_cache** (bool) - Optional - Force a new capture, ignoring any cached render. - **clip** (object) - Optional - { x, y, width, height } in CSS pixels from the top left. - **omit_background** (bool) - Optional - Use a transparent background instead of the page background. - **full_page_max_height** (int) - Optional - Caps a full_page capture. ### Request Example { "url": "https://example.com", "full_page": true, "dark_mode": true } ``` -------------------------------- ### Capture a mobile-formatted screenshot in WebP Source: https://ironfang.uk/renderwolf/docs Uses the POST /v1/screenshot endpoint with the mobile device preset and WebP format. ```bash curl -X POST https://api.ironfang.uk/renderwolf/v1/screenshot \ -H "Authorization: Bearer if_live_..." \ -d '{"url": "https://example.com", "device": "mobile", "format": "webp"}' \ --output phone.webp ``` -------------------------------- ### POST /v1/video Source: https://ironfang.uk/renderwolf/docs Generates a video clip based on the provided configuration, including background, captions, and audio. ```APIDOC ## POST /v1/video ### Description Generates a video clip from structured data, including background, captions, and audio. Returns a video/mp4 file. ### Method POST ### Endpoint https://api.ironfang.uk/renderwolf/v1/video ### Parameters #### Request Body - **size** (string) - Optional - vertical (default), square, landscape, 720p. - **duration** (number) - Optional - Seconds of output, 1 to 60. Default 15. - **captions** (array) - Optional - Up to 12 cards of {text, from, to} in seconds. - **colour** (string) - Optional - Hex background color. Default #101820. - **background** (string) - Optional - URL of an image or video. - **watermark** (string) - Optional - URL of a PNG. - **audio** (string) - Optional - URL of an audio track. - **font_size** (int) - Optional - Caption size in pixels. ### Request Example { "size": "vertical", "duration": 15, "captions": [ {"text": "Ship it on Friday", "from": 0, "to": 5}, {"text": "Find out on Monday", "from": 5, "to": 10}, {"text": "Or gate the deploy", "from": 10, "to": 15} ] } ### Response #### Success Response (200) - **body** (video/mp4) - The rendered video file. ``` -------------------------------- ### Render an Image from Template Source: https://ironfang.uk/renderwolf/docs Renders a stored template into an image file by providing a map of variables to fill placeholders. ```bash curl -X POST https://api.ironfang.uk/renderwolf/v1/image/0198c9f1-5b7a-7c2e-9f1d-3a8b2c4d5e6f \ -H "Authorization: Bearer if_live_..." \ -d '{"vars": {"title": "Hello from Renderwolf", "author": "Rick"}}' \ --output og.png ``` -------------------------------- ### POST /renderwolf/v1/jobs Source: https://ironfang.uk/renderwolf/docs Submits a new rendering job with specified delivery configurations. ```APIDOC ## POST /renderwolf/v1/jobs ### Description Submits a rendering job. The job results will be delivered to the specified webhook or storage destinations. ### Method POST ### Endpoint /renderwolf/v1/jobs ### Request Body - **kind** (string) - Required - The type of render job (e.g., "screenshot") - **request** (object) - Required - The request details (e.g., URL to render) - **external_id** (string) - Optional - A user-provided identifier for the job - **delivery** (object) - Optional - Delivery configuration including webhook_destination, storage_destination, and storage_key ``` -------------------------------- ### POST /renderwolf/v1/batches Source: https://ironfang.uk/renderwolf/docs Submits a batch of up to 100 rendering jobs. The request includes a default configuration and a list of items that can override specific fields. ```APIDOC ## POST /renderwolf/v1/batches ### Description Submit up to 100 jobs in one request. A shared default configuration is applied, with individual items allowed to override specific fields. ### Method POST ### Endpoint /renderwolf/v1/batches ### Request Headers - **Idempotency-Key** (string) - Required - Unique key for the request. ### Request Body - **kind** (string) - Required - The default rendering kind (e.g., "screenshot"). - **default** (object) - Optional - Default settings applied to all items. - **external_id** (string) - Optional - Identifier for the batch. - **items** (array) - Required - List of individual job items. ### Request Example { "kind": "screenshot", "default": { "full_page": true, "block_ads": true }, "external_id": "nightly", "items": [ { "request": { "url": "https://example.com/a" }, "external_id": "a" }, { "request": { "url": "https://example.com/b" }, "external_id": "b" }, { "kind": "pdf", "request": { "url": "https://example.com/terms" } } ] } ``` -------------------------------- ### POST /v1/templates Source: https://ironfang.uk/renderwolf/docs Create a new reusable HTML template. ```APIDOC ## POST /v1/templates ### Description Create a new reusable HTML template. Variables use {{name}} placeholders and values are HTML-escaped. ### Method POST ### Endpoint /v1/templates ### Request Body - **name** (string) - Required - Name of the template - **html** (string) - Required - HTML content (max 256KB) - **width** (integer) - Optional - Width of the image - **height** (integer) - Optional - Height of the image (default 1200x630, capped 4096) ``` -------------------------------- ### POST /v1/qr Source: https://ironfang.uk/renderwolf/docs Generate styled QR codes that are verified before delivery. QR requests are free on every plan. ```APIDOC ## POST /v1/qr ### Description Generate styled QR codes that are verified before delivery. Renderwolf decodes each finished image and compares it with the supplied payload. ### Method POST ### Endpoint https://api.ironfang.uk/renderwolf/v1/qr ### Parameters #### Request Body - **data** (string) - Required - Payload containing a URL, WiFi string or text up to 1KB. - **size** (int) - Optional - Square output size from 64 to 2048 pixels. Default 512. - **ecc** (string) - Optional - Error correction: L, M, Q or H. Default M. - **dark** (string) - Optional - Hex colour for dark modules. - **light** (string) - Optional - Hex colour for light modules. - **dots** (string) - Optional - square or circle. - **eyes** (string) - Optional - square or rounded. - **margin** (int) - Optional - Quiet zone from 0 to 8 modules. Default 4. - **invert** (bool) - Optional - Creates light modules on a dark background. - **logo** (string) - Optional - Center mark as a base64 data: URI. - **logo_url** (string) - Optional - Centre mark supplied by URL. - **logo_size** (float) - Optional - Logo tile as a fraction of the symbol, from 0.12 to 0.30. - **logo_pad** (bool) - Optional - Adds a knockout tile behind the logo. Default true. ### Request Example { "data": "https://example.com/menu", "dots": "rounded", "logo_url": "https://example.com/logo.png" } ``` -------------------------------- ### Submit a batch rendering request Source: https://ironfang.uk/renderwolf/docs Submits a batch of rendering jobs with a shared default configuration and individual item overrides. ```http POST /renderwolf/v1/batches Idempotency-Key: nightly-2026-08-28 { "kind": "screenshot", "default": { "full_page": true, "block_ads": true }, "external_id": "nightly", "items": [ { "request": { "url": "https://example.com/a" }, "external_id": "a" }, { "request": { "url": "https://example.com/b" }, "external_id": "b" }, { "kind": "pdf", "request": { "url": "https://example.com/terms" } } ] } ``` -------------------------------- ### POST /renderwolf/v1/screenshot Source: https://ironfang.uk/renderwolf/docs Captures a screenshot of a specified URL with optional blocking, waiting, and device configuration. ```APIDOC ## POST /renderwolf/v1/screenshot ### Description Captures a screenshot of the target URL. Supports blocking ads and cookie banners, waiting for specific elements or network states, and configuring device pixel density. ### Method POST ### Endpoint https://api.ironfang.uk/renderwolf/v1/screenshot ### Parameters #### Request Body - **url** (string) - Required - The URL to capture. - **block_ads** (bool) - Optional - Prevents requests to known ad and tracker networks. - **block_cookie_banners** (bool) - Optional - Hides supported consent frameworks and removes scroll locks. - **hide_selectors** (string[]) - Optional - CSS selectors to hide after page load. - **headers** (object) - Optional - Extra HTTP headers sent with every request. - **authorization** (string) - Optional - Sets the Authorization header. - **cookies** (object[]) - Optional - Array of cookies with name, value, domain, and path. - **user_agent** (string) - Optional - Overrides the default user agent. - **wait_until** (string) - Optional - Event to wait for: load, domcontentloaded, or networkidle. - **wait_for_selector** (string) - Optional - CSS selector to wait for before capturing. - **timeout_ms** (int) - Optional - Per-render timeout in milliseconds. - **device_scale_factor** (number) - Optional - Pixel density, 1 to 3. ### Request Example { "url": "https://example.com", "block_ads": true, "block_cookie_banners": true, "wait_for_selector": "#main", "device_scale_factor": 2 } ``` -------------------------------- ### POST /v1/pdf Source: https://ironfang.uk/renderwolf/docs Print a URL or raw HTML to PDF. Each successful PDF uses 2 credits. ```APIDOC ## POST /v1/pdf ### Description Print a URL or raw HTML to PDF. Each successful PDF uses 2 credits. ### Method POST ### Endpoint https://api.ironfang.uk/renderwolf/v1/pdf ### Parameters #### Request Body - **url** (string) - Optional - Page to print. Provide url or html. - **html** (string) - Optional - Raw HTML to print instead of a URL. - **landscape** (bool) - Optional - Landscape orientation. - **print_background** (bool) - Optional - Include CSS backgrounds. - **header_html** (string) - Optional - Chromium header template. - **footer_html** (string) - Optional - Chromium footer template. - **scale** (float) - Optional - Print scale. Default 1.0. - **no_cache** (bool) - Optional - Force a new capture, ignoring any cached render. - **paper_format** (string) - Optional - a3, a4, a5, letter, legal or tabloid. - **margin** (object) - Optional - { top, right, bottom, left } in inches. ### Request Example { "html": "

Invoice #42

", "print_background": true } ``` -------------------------------- ### POST /v1/image/{id} Source: https://ironfang.uk/renderwolf/docs Render a stored template as an image. ```APIDOC ## POST /v1/image/{id} ### Description Render a stored template as an image with the supplied variables. Each successful render uses 1 credit. ### Method POST ### Endpoint /v1/image/{id} ### Parameters #### Path Parameters - **id** (string) - Required - The UUIDv7 of the template #### Request Body - **vars** (object) - Optional - String map filling the template's placeholders - **no_cache** (bool) - Optional - Force a new capture, ignoring cached render - **format** (string) - Optional - png (default), jpeg, or webp - **qr** (object) - Optional - Named QR specs to be injected as data URIs ``` -------------------------------- ### Render a screenshot via cURL Source: https://ironfang.uk/renderwolf/docs Sends a POST request to the screenshot endpoint with a URL and width, saving the output as a file. ```bash curl -X POST https://api.ironfang.uk/renderwolf/v1/screenshot \ -H "Authorization: Bearer if_live_..." \ -H "Content-Type: application/json" \ -d '{"url": "https://example.com", "width": 1280}' \ --output shot.png ``` -------------------------------- ### Generate PDF from HTML Source: https://ironfang.uk/renderwolf/docs Sends a POST request to the PDF endpoint with raw HTML content. Requires a valid Bearer token in the Authorization header. ```bash curl -X POST https://api.ironfang.uk/renderwolf/v1/pdf \ -H "Authorization: Bearer if_live_..." \ -d '{"html": "

Invoice #42

", "print_background": true}' \ --output invoice.pdf ``` -------------------------------- ### Generate a video clip with cURL Source: https://ironfang.uk/renderwolf/docs Sends a POST request to the Renderwolf API to generate a vertical video clip with scheduled captions. ```bash curl -X POST https://api.ironfang.uk/renderwolf/v1/video \ -H "Authorization: Bearer if_live_..." \ -d '{ "size": "vertical", "duration": 15, "captions": [ {"text": "Ship it on Friday", "from": 0, "to": 5}, {"text": "Find out on Monday", "from": 5, "to": 10}, {"text": "Or gate the deploy", "from": 10, "to": 15} ] }' --output clip.mp4 ``` -------------------------------- ### Generate Styled QR Code Source: https://ironfang.uk/renderwolf/docs Sends a POST request to the QR endpoint to generate a custom QR code with a logo. The service verifies the output before delivery. ```bash curl -X POST https://api.ironfang.uk/renderwolf/v1/qr \ -H "Authorization: Bearer if_live_..." \ -d '{"data": "https://example.com/menu", "dots": "rounded", "logo_url": "https://example.com/logo.png"}' \ --output qr.png ``` -------------------------------- ### Render an Image with QR Code Source: https://ironfang.uk/renderwolf/docs Generates an image containing an embedded QR code by providing a QR specification in the request body. ```bash curl -X POST https://api.ironfang.uk/renderwolf/v1/image/0198c9f1-5b7a-7c2e-9f1d-3a8b2c4d5e6f \ -H "Authorization: Bearer if_live_..." \ -d '{"vars": {"invoice": "INV-2041"}, "qr": {"pay": {"data": "https://pay.example/INV-2041", "size": 300}}}' \ --output invoice-card.png ``` -------------------------------- ### Capture a full-page screenshot with dark mode Source: https://ironfang.uk/renderwolf/docs Uses the POST /v1/screenshot endpoint to capture a full-page screenshot of a URL with dark mode enabled. ```bash curl -X POST https://api.ironfang.uk/renderwolf/v1/screenshot \ -H "Authorization: Bearer if_live_..." \ -d '{"url": "https://example.com", "full_page": true, "dark_mode": true}' \ --output page.png ``` -------------------------------- ### POST /renderwolf/v1/destinations Source: https://ironfang.uk/renderwolf/docs Registers a new delivery destination, such as a webhook or S3-compatible bucket, to receive job results. ```APIDOC ## POST /renderwolf/v1/destinations ### Description Registers a new destination for job delivery. Credentials are provided once during creation and are not stored in job bodies. ### Method POST ### Endpoint /renderwolf/v1/destinations ### Request Body - **type** (string) - Required - The type of destination (e.g., "webhook") - **name** (string) - Required - A user-defined name for the destination - **url** (string) - Required - The endpoint URL for webhooks ### Response #### Success Response (201) - **id** (string) - The unique identifier for the destination - **signing_secret** (string) - The secret used for webhook signature verification (shown only once) - **signing_secret_note** (string) - Note regarding the storage of the signing secret ``` -------------------------------- ### Submit a job with delivery Source: https://ironfang.uk/renderwolf/docs Include delivery destination IDs in the job request to route results to webhooks or storage buckets. ```json POST /renderwolf/v1/jobs { "kind": "screenshot", "request": { "url": "https://example.com" }, "external_id": "catalogue-42", "delivery": { "webhook_destination": "0198f0a1...", "storage_destination": "0198f0b2...", "storage_key": "captures/{date}/{external_id}.png" } } ``` -------------------------------- ### POST /renderwolf/v1/jobs Source: https://ironfang.uk/renderwolf/docs Submits a rendering task as a durable job, returning a 202 status code for asynchronous processing. ```APIDOC ## POST /renderwolf/v1/jobs ### Description Submits a render task as a durable job. Use this for clips, slow pages, or tasks where you prefer not to hold a connection open. ### Method POST ### Endpoint /renderwolf/v1/jobs ### Request Body - **kind** (string) - Required - `screenshot`, `pdf`, `qr`, `image`, `clip`, or `site_preview`. - **request** (object) - Required - The specific request parameters for the chosen kind. - **external_id** (string) - Optional - An identifier for the job. ``` -------------------------------- ### PUT /v1/templates/{id} Source: https://ironfang.uk/renderwolf/docs Update an existing template. ```APIDOC ## PUT /v1/templates/{id} ### Description Update an existing template. Edits invalidate the render cache automatically. ### Method PUT ### Endpoint /v1/templates/{id} ### Parameters #### Path Parameters - **id** (string) - Required - The UUIDv7 of the template ``` -------------------------------- ### Retrieve API Usage Source: https://ironfang.uk/renderwolf/docs Returns the current consumption metrics for the billing period. The 'renders' field is deprecated; use 'credits' for new integrations. ```json {"period": "2026-08", "credits": 1240, "renders": 1240, "limit": 50000} ``` -------------------------------- ### Register a delivery destination Source: https://ironfang.uk/renderwolf/docs Create a new webhook destination to receive job notifications. The signing secret is returned only once upon creation. ```http POST /renderwolf/v1/destinations { "type": "webhook", "name": "Production", "url": "https://hooks.example.com/renderwolf" } → 201 { "id": "0198f0a1...", "signing_secret": "...", "signing_secret_note": "store this now; it is not shown again" } ``` -------------------------------- ### Submit a Rendering Job Source: https://ironfang.uk/renderwolf/docs Submits a durable rendering job for long-running tasks, returning a 202 status code. ```http POST /renderwolf/v1/jobs Idempotency-Key: catalogue-42-v1 { "kind": "screenshot", "request": { "url": "https://example.com", "full_page": true }, "external_id": "catalogue-42" } ``` -------------------------------- ### DELETE /v1/templates/{id} Source: https://ironfang.uk/renderwolf/docs Delete a template. ```APIDOC ## DELETE /v1/templates/{id} ### Description Delete a stored template. ### Method DELETE ### Endpoint /v1/templates/{id} ### Parameters #### Path Parameters - **id** (string) - Required - The UUIDv7 of the template ``` -------------------------------- ### Verify webhook signature Source: https://ironfang.uk/renderwolf/docs Validate the authenticity of incoming webhooks by comparing the signature against the raw request body. ```python expected = "v1=" + hmac_sha256(secret, timestamp + "." + raw_body).hexdigest() compare(expected, headers["Renderwolf-Signature"]) # constant time ``` -------------------------------- ### Error Response Structure Source: https://ironfang.uk/renderwolf/docs The standard JSON format for API errors, including a machine-readable code and descriptive message. ```json {"error": {"code": "quota_exhausted", "message": "monthly credits exhausted - upgrade your plan or wait for the period to reset"}} ``` === COMPLETE CONTENT === This response contains all available snippets from this library. No additional content exists. Do not make further requests.