{
  "openapi": "3.0.1",
  "info": {
    "title": "FirePrint – Web pages to Video, screenshots, and PDF",
    "description": "FirePrint turns your web pages into videos, pictures, and PDFs. It records real MP4 videos and takes super clear screenshots like a camera. You can save your HTML as JPG, PNG, GIF, MP4, or PDF. FirePrint makes everything look great and is fast and easy to use.",
    "version": "0.0",
    "x-build-id": "P8ekC3eSjUX4dxnLn"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/nocodeventure~fireprint---web-pages-to-video-screenshots-and-pdf/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-nocodeventure-fireprint---web-pages-to-video-screenshots-and-pdf",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/nocodeventure~fireprint---web-pages-to-video-screenshots-and-pdf/runs": {
      "post": {
        "operationId": "runs-sync-nocodeventure-fireprint---web-pages-to-video-screenshots-and-pdf",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/nocodeventure~fireprint---web-pages-to-video-screenshots-and-pdf/run-sync": {
      "post": {
        "operationId": "run-sync-nocodeventure-fireprint---web-pages-to-video-screenshots-and-pdf",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "required": [
          "linkUrls"
        ],
        "properties": {
          "linkUrls": {
            "title": "URLs to capture",
            "type": "array",
            "description": "List of URLs to capture. Each URL will be processed and converted to the specified output format.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "outputFormat": {
            "title": "Output format",
            "enum": [
              "jpeg",
              "png",
              "pdf",
              "gif",
              "mp4"
            ],
            "type": "string",
            "description": "Choose the output format for captures: JPEG/PNG for images, PDF for documents, GIF for animations, or MP4 for videos with real-time streaming encoding.",
            "default": "pdf"
          },
          "fullPage": {
            "title": "Capture full page",
            "type": "boolean",
            "description": "When enabled, resizes the viewport to match the full page layout dimensions before taking the screenshot, then restores it. This captures the entire scrollable page content. Disable to only capture what's visible in the current viewport.",
            "default": true
          },
          "captureBeyondViewport": {
            "title": "Capture beyond viewport",
            "type": "boolean",
            "description": "Only applies when 'Capture full page' is disabled. When true, captures elements that extend beyond viewport boundaries (e.g., elements with height: 110vh). When false, only captures within viewport size. Note: This is automatically enabled for full page screenshots as it's required to capture content beyond the viewport.",
            "default": false
          },
          "waitUntil": {
            "title": "Wait until",
            "enum": [
              "load",
              "domcontentloaded",
              "networkidle0",
              "networkidle2"
            ],
            "type": "string",
            "description": "When to consider navigation successful: 'load' (all resources loaded), 'domcontentloaded' (DOM ready), 'networkidle0' (no network connections for 500ms), 'networkidle2' (max 2 network connections for 500ms).",
            "default": "networkidle2"
          },
          "timeout": {
            "title": "Page load timeout",
            "minimum": 5,
            "maximum": 300,
            "type": "integer",
            "description": "Maximum time to wait for page load in seconds.",
            "default": 30
          },
          "captureTimeout": {
            "title": "Total capture timeout",
            "minimum": 30,
            "maximum": 3600,
            "type": "integer",
            "description": "Maximum time for entire page processing including page load, delays, and capture. Leave empty for auto-calculation based on frame count. Video captures use real-time streaming encoding for efficiency."
          },
          "delayBeforeCapture": {
            "title": "Delay before capture",
            "minimum": 0,
            "maximum": 30000,
            "type": "integer",
            "description": "Additional wait time in milliseconds before capturing. Useful for pages with animations or lazy-loaded content.",
            "default": 1500
          },
          "device": {
            "title": "Device emulation",
            "type": "string",
            "description": "Emulate a specific device (e.g., 'iPhone 14 Pro', 'iPad Pro', 'Galaxy S21'). Leave empty for custom dimensions. See documentation for full device list."
          },
          "windowWidth": {
            "title": "Viewport width",
            "minimum": 320,
            "maximum": 7680,
            "type": "integer",
            "description": "Custom viewport width in pixels. Only used when device emulation is not set.",
            "default": 1920
          },
          "windowHeight": {
            "title": "Viewport height",
            "minimum": 240,
            "maximum": 4320,
            "type": "integer",
            "description": "Custom viewport height in pixels. Only used when device emulation is not set.",
            "default": 1080
          },
          "gifFrameCount": {
            "title": "Frame count",
            "minimum": 2,
            "maximum": 500,
            "type": "integer",
            "description": "Number of frames to capture for animated GIF. More frames = longer animation. Only applies when outputFormat is 'gif'.",
            "default": 10
          },
          "gifFrameInterval": {
            "title": "Frame delay (ms)",
            "minimum": 10,
            "maximum": 5000,
            "type": "integer",
            "description": "Milliseconds between each frame in the GIF animation. Lower = smoother animation but larger file size. Only applies to GIF format.",
            "default": 300
          },
          "gifScrollStep": {
            "title": "Scroll step (pixels)",
            "minimum": 0,
            "maximum": 2000,
            "type": "integer",
            "description": "How to scroll through the page during GIF capture. DEFAULT (0): Auto-scrolls entire page smoothly from top to bottom. CUSTOM: Set pixels to scroll between frames (e.g., 100 = slow, 500 = fast).",
            "default": 0
          },
          "videoDuration": {
            "title": "Video duration (seconds) - OPTIONAL",
            "minimum": 1,
            "maximum": 60,
            "type": "integer",
            "description": "OPTIONAL: Set desired video playback duration in seconds, and frame count will be auto-calculated (duration × FPS). Leave blank to use manual frame count below. Recommended: 3-5 seconds for full page scroll."
          },
          "videoFrameCount": {
            "title": "Frame count (manual)",
            "minimum": 2,
            "maximum": 500,
            "type": "integer",
            "description": "Manual frame count override. Only used if 'Video duration' is not set. Number of frames to capture for MP4 video. Uses real-time streaming capture with FFmpeg.",
            "default": 60
          },
          "videoFrameInterval": {
            "title": "Frame interval (ms)",
            "minimum": 10,
            "maximum": 5000,
            "type": "integer",
            "description": "Milliseconds between each frame capture. Frames are streamed directly to FFmpeg for real-time encoding. Lower = smoother video. Only applies to MP4 format.",
            "default": 300
          },
          "videoFps": {
            "title": "FPS (frames per second)",
            "minimum": 1,
            "maximum": 60,
            "type": "integer",
            "description": "Video playback speed. Standard is 24-30 FPS for cinematic look, 60 FPS for smooth motion. Only applies to MP4 format.",
            "default": 24
          },
          "videoScrollStep": {
            "title": "Scroll step (pixels)",
            "minimum": -1,
            "maximum": 2000,
            "type": "integer",
            "description": "How to scroll through the page during recording. DEFAULT (0): Auto-scrolls entire page smoothly from top to bottom. CUSTOM: Set pixels to scroll between frames (e.g., 50 = slow, 200 = fast). To capture without scrolling (static viewport), set to a negative value like -1.",
            "default": 0
          },
          "printBackground": {
            "title": "Print background graphics",
            "type": "boolean",
            "description": "Include background colors and images in PDF. Recommended for accurate page rendering.",
            "default": true
          },
          "pdfMarginTop": {
            "title": "Top margin",
            "minimum": 0,
            "maximum": 100,
            "type": "integer",
            "description": "Top margin in millimeters.",
            "default": 10
          },
          "pdfMarginRight": {
            "title": "Right margin",
            "minimum": 0,
            "maximum": 100,
            "type": "integer",
            "description": "Right margin in millimeters.",
            "default": 10
          },
          "pdfMarginBottom": {
            "title": "Bottom margin",
            "minimum": 0,
            "maximum": 100,
            "type": "integer",
            "description": "Bottom margin in millimeters.",
            "default": 10
          },
          "pdfMarginLeft": {
            "title": "Left margin",
            "minimum": 0,
            "maximum": 100,
            "type": "integer",
            "description": "Left margin in millimeters.",
            "default": 10
          },
          "landscape": {
            "title": "Landscape orientation",
            "type": "boolean",
            "description": "Use landscape orientation for PDF output.",
            "default": false
          },
          "dismissCookieConsent": {
            "title": "Dismiss cookie consent banners",
            "type": "boolean",
            "description": "Automatically detect and dismiss common cookie consent banners before capture. Helps create cleaner captures without cookie popups.",
            "default": true
          },
          "scrollToBottom": {
            "title": "Auto-scroll to bottom",
            "type": "boolean",
            "description": "Automatically scroll to the bottom of the page before capture. Triggers lazy-loaded content.",
            "default": false
          },
          "cookies": {
            "title": "Cookies",
            "type": "array",
            "description": "Custom cookies for authentication or session management. Format: [{name, value, domain}]",
            "default": []
          },
          "customHeaders": {
            "title": "Custom HTTP headers",
            "type": "object",
            "description": "Add custom HTTP headers to requests (e.g., User-Agent, Authorization).",
            "default": {}
          },
          "removeElements": {
            "title": "Elements to remove",
            "type": "string",
            "description": "CSS selector for elements to remove before capture (e.g., '.ads, .popup, #cookie-banner'). Useful for cleaning up pages."
          },
          "waitForSelector": {
            "title": "Wait for selector",
            "type": "string",
            "description": "CSS selector to wait for before capture. Ensures specific content is loaded."
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "OPTIONAL: Enable Apify Proxy (datacenter/residential) or use custom proxy URLs to bypass geo-restrictions and rate limits. Select 'No proxy' (default) to scrape without proxies."
          },
          "ignoreSslErrors": {
            "title": "Ignore SSL errors",
            "type": "boolean",
            "description": "Bypass SSL certificate validation. Use with caution for sites with invalid certificates.",
            "default": false
          },
          "blockResources": {
            "title": "Block resources",
            "type": "array",
            "description": "Resource types to block for faster loading: 'stylesheet', 'image', 'media', 'font', 'script', etc.",
            "default": []
          },
          "maxConcurrency": {
            "title": "Max concurrency",
            "minimum": 1,
            "maximum": 50,
            "type": "integer",
            "description": "Maximum number of pages processed in parallel. Higher values = faster but more resource intensive.",
            "default": 10
          },
          "maxRequestRetries": {
            "title": "Max retries",
            "minimum": 0,
            "maximum": 10,
            "type": "integer",
            "description": "Number of times to retry failed requests.",
            "default": 3
          },
          "debugLog": {
            "title": "Debug logging",
            "type": "boolean",
            "description": "Enable detailed debug logs for troubleshooting.",
            "default": false
          },
          "saveHtml": {
            "title": "Save HTML",
            "type": "boolean",
            "description": "Also save the page HTML alongside the capture output.",
            "default": false
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}