### Device API - Getting Started Source: https://docs.screenshotmax.com/endpoints/devices This section provides an overview of how to use the Device API, including authentication methods and general usage notes. ```APIDOC ## Device API Overview ### Description It’s simple to use: you only need to submit your `access_key`. The API will return a list of available devices for emulation. ### Note Requests to this endpoint are **not counted against your usage quota,** but they are **still subject to rate limiting.** This ensures fair use and stability of the platform. If you exceed the rate limit, your requests may be temporarily blocked. ### Getting Started #### REST The Device API, like all of ScreenshotMAX’s APIs, is organized around REST. It is designed to use predictable, resource-oriented URL’s and to use HTTP status codes to indicate errors. #### HTTPS The Device API requires all communications to be secured TLS 1.2 or greater. #### API Versions All of ScreenshotMAX’s APIs are versioned. The Device API is currently on Version 1. #### Your Access Key Your access key is your unique authentication key to be used to access ScreenshotMAX APIs. To authenticate your requests, you will need to append your access key to the base URL as a query parameter for GET requests. For POST requests, you can include your access key in the request body as a JSON object. You can also use the `X-Access-Key` header to pass your access key. You can find your access key in your [account dashboard](https://app.screenshotmax.com/access). #### Base URL ```text https://api.screenshotmax.com/v1/devices ``` #### Validation endpoint ScreenshotMAX’s Device API simply requires your unique access key. The API will return a list of available devices for emulation. ``` -------------------------------- ### cURL Example with Header Authentication Source: https://context7_llms Demonstrates how to make a GET request using cURL, authenticating with the access key provided in the 'X-Access-Key' header. ```bash curl -X GET https://api.screenshotmax.com/v1/screenshot \ -H "X-Access-Key: YOUR_ACCESS_KEY" \ -G --data-urlencode "url=https://example.com" ``` -------------------------------- ### Screencast API Request Example (JavaScript) Source: https://context7_llms Example of how to make a GET request to the Screencast API using JavaScript's fetch API. This demonstrates how to construct the URL with query parameters. ```javascript const accessKey = "YOUR_ACCESS_KEY"; const url = "https://example.com"; const apiUrl = `https://api.screenshotmax.com/v1/screencast?access_key=${accessKey}&url=${encodeURIComponent(url)}`; fetch(apiUrl) .then(response => { if (!response.ok) { throw new Error(`HTTP error! status: ${response.status}`); } return response.blob(); // Assuming the response is an animated screenshot (e.g., GIF) }) .then(blob => { // Handle the blob data, e.g., create an object URL to display the image const imageUrl = URL.createObjectURL(blob); console.log("Animated screenshot URL:", imageUrl); }) .catch(error => { console.error("Error fetching screencast:", error); }); ``` -------------------------------- ### GET Request Example for Screenshot Capture Source: https://context7_llms An example of a basic GET request to capture a screenshot. It includes the necessary 'access_key' and 'url' parameters passed as query strings. ```http https://api.screenshotmax.com/v1/screenshot ?access_key=YOUR_ACCESS_KEY &url=https://example.com ``` -------------------------------- ### Screenshot API - Getting Started Source: https://docs.screenshotmax.com/endpoints/get-screenshot This section explains the basic usage of the Screenshot API, requiring an access key and a URL to generate a webpage screenshot. ```APIDOC ## Getting Started It’s simple to use: you only need to submit your `access_key` and a url `url` of a webpage. The API will return the screenshot of the webpage. ``` -------------------------------- ### Screencast API Request Example (REST) Source: https://context7_llms Example of how to make a GET request to the Screencast API using REST principles. It demonstrates how to include the access key and URL as query parameters. ```http GET https://api.screenshotmax.com/v1/screencast ?access_key=YOUR_ACCESS_KEY &url=https://example.com ``` -------------------------------- ### Screencast API Request Example (cURL) Source: https://context7_llms Example of how to make a GET request to the Screencast API using cURL. This command-line tool is useful for testing API endpoints. ```bash curl -X GET "https://api.screenshotmax.com/v1/screencast?access_key=YOUR_ACCESS_KEY&url=https://example.com" ``` -------------------------------- ### ScreenshotMax API GET Request Example Source: https://docs.screenshotmax.com/guides/start/signed-requests This example demonstrates the structure of a GET request to the ScreenshotMax API, including the URL, query parameters for the target URL, access key, and signature. It highlights the importance of parameter order for signature generation. ```text GET https://api.screenshotmax.com/v1/screenshot ?url=https://example.com &access_key=YOUR_ACCESS_KEY &signature=2f3a5c9d... ``` -------------------------------- ### Screenshot Capture Example using JavaScript/TypeScript SDK Source: https://context7_llms This TypeScript example shows how to use the ScreenshotMAX SDK to capture a screenshot. It initializes the SDK with credentials, sets screenshot options, generates a signed URL, fetches the screenshot data, and saves it to a file. This requires Node.js and the installed SDK. ```typescript import fs from "node:fs"; import { SDK } from "@screenshotmax/sdk"; // create API client const sdk = new SDK("YOUR_ACCESS_KEY", "YOUR_SECRET_KEY"); // set up options sdk.screenshot.setOptions({ url: "https://example.com", format: "png" }); // optionally: generate signed URL // (https://api.screenshotmax.com/v1/screenshot?url=https%3A%2F%2Fexample.com&format=png&access_key=YOUR_ACCESS_KEY&signature=370f5b161bc59eed13b76........1f778635d7fc595dbab12) const url = sdk.screenshot.getUrl(); // generate screenshot const result = await sdk.screenshot.fetch(); fs.writeFileSync("screenshot.png", Buffer.from(result.data, "binary")); ``` -------------------------------- ### Go SDK Examples Source: https://context7_llms Examples demonstrating how to use the ScreenshotMAX API with the Go SDK, including basic and HMAC-signed requests. ```APIDOC ## Go SDK Examples ### Description Use Go to interact with the ScreenshotMAX API via `net/http`. Below are examples for simple and signed screenshot requests. ### Basic GET Screenshot ```go package main import ( "fmt" "io" "net/http" "net/url" "os" ) func main() { endpoint := "https://api.screenshotmax.com/v1/screenshot" params := url.Values{} params.Add("access_key", "YOUR_ACCESS_KEY") params.Add("url", "https://example.com") params.Add("format", "png") fullURL := endpoint + "?" + params.Encode() resp, err := http.Get(fullURL) if err != nil { fmt.Println("Request failed:", err) return } defer resp.Body.Close() out, err := os.Create("screenshot.png") if err != nil { fmt.Println("File error:", err) return } defer out.Close() io.Copy(out, resp.Body) fmt.Println("Image saved to screenshot.png") } ``` ### HMAC-Signed GET Screenshot ```go package main import ( "crypto/hmac" "crypto/sha256" "encoding/hex" "fmt" "io" "net/http" "net/url" "os" ) func main() { accessKey := "YOUR_ACCESS_KEY" secretKey := "YOUR_SECRET_KEY" baseURL := "https://api.screenshotmax.com/v1/screenshot" query := url.Values{} query.Set("access_key", accessKey) query.Set("url", "https://example.com") query.Set("format", "png") qs := query.Encode() signature := signHMAC(qs, secretKey) // Add signature to query query.Set("signature", signature) fullURL := baseURL + "?" + query.Encode() resp, err := http.Get(fullURL) if err != nil { fmt.Println("Request failed:", err) return } defer resp.Body.Close() out, _ := os.Create("screenshot.png") io.Copy(out, resp.Body) fmt.Println("Image saved to screenshot.png") } func signHMAC(message, secret string) string { mac := hmac.New(sha256.New, []byte(secret)) mac.Write([]byte(message)) return hex.EncodeToString(mac.Sum(nil)) } ``` ``` -------------------------------- ### Install ScreenshotMAX Python SDK Source: https://context7_llms Install the ScreenshotMAX Python SDK using pip. This command fetches and installs the latest version of the SDK from the Python Package Index. ```bash pip install screenshotmax ``` -------------------------------- ### Install PHP SDK using Composer Source: https://context7_llms Provides the command to install the ScreenshotMAX PHP SDK using Composer, the dependency manager for PHP. This is the first step to using the SDK in a PHP project. ```bash composer require screenshotmax/sdk ``` -------------------------------- ### GET /v1/screenshot Source: https://docs.screenshotmax.com/start/signed-request%22 Capture high-quality screenshots of webpages using a GET request. ```APIDOC ## GET /v1/screenshot ### Description Capture high-quality screenshots of webpages. ### Method GET ### Endpoint https://api.screenshotmax.com/v1/screenshot ### Parameters #### Query Parameters - **url** (string) - Required - The URL of the webpage to capture. - **width** (integer) - Optional - The width of the screenshot in pixels. - **height** (integer) - Optional - The height of the screenshot in pixels. ### Request Example ``` GET https://api.screenshotmax.com/v1/screenshot?url=https://example.com&width=1920&height=1080 ``` ### Response #### Success Response (200) - **image** (string) - The base64 encoded image data of the screenshot. #### Response Example ```json { "image": "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=" } ``` ``` -------------------------------- ### Install ScreenshotMAX SDK for JavaScript/TypeScript Source: https://context7_llms This command installs the official ScreenshotMAX SDK for Node.js environments using npm. The SDK simplifies interactions with the ScreenshotMAX API, handling authentication and request generation. ```bash npm install @screenshotmax/sdk ``` -------------------------------- ### ScreenshotMAX API Validation Endpoint Example Source: https://docs.screenshotmax.com/endpoints/devices An example demonstrating how to interact with the ScreenshotMAX Device API validation endpoint. This typically involves sending your access key to receive a list of available devices. ```text GET https://api.screenshotmax.com/v1/devices --header "X-Access-Key: YOUR_ACCESS_KEY" ``` -------------------------------- ### Screencast API Request Example (REST) Source: https://context7_llms This example demonstrates how to make a POST request to the Screencast API to capture an animated screenshot. It requires an access key and the target URL. The API uses REST principles and HTTPS for secure communication. ```json POST https://api.screenshotmax.com/v1/screencast { "access_key": "YOUR_ACCESS_KEY", "url": "https://example.com" } ``` -------------------------------- ### POST Request Example for Screenshot Capture Source: https://context7_llms An example of a POST request to capture a screenshot. The 'access_key' and 'url' parameters are sent within a JSON payload. ```json POST "https://api.screenshotmax.com/v1/screenshot" { "access_key": "YOUR_ACCESS_KEY", "url": "https://example.com" } ``` -------------------------------- ### Fetch Example with POST and Header Authentication Source: https://context7_llms Illustrates how to make a POST request using the Fetch API in JavaScript, including the access key in the 'X-Access-Key' header and content type in the headers. ```javascript fetch("https://api.screenshotmax.com/v1/pdf", { method: "POST", headers: { "Content-Type": "application/json", "X-Access-Key": "YOUR_ACCESS_KEY" }, body: JSON.stringify({ url: "https://example.com" }) }); ``` -------------------------------- ### Go Code Samples for ScreenshotMAX Source: https://docs.screenshotmax.com/guides/start/scheduled-tasks Provides code examples for interacting with the ScreenshotMAX API using Go. These samples demonstrate how to initiate screenshot captures, screencasts, and other API operations. ```go package main import ( "fmt" "log" "github.com/screenshotmax/screenshotmax-go" ) func main() { client := screenshotmax.NewClient("YOUR_API_KEY") options := screenshotmax.ScreenshotOptions{ URL: "https://example.com", // other parameters } result, err := client.GetScreenshot(options) if err != nil { log.Fatalf("Error taking screenshot: %v", err) } fmt.Printf("Screenshot taken: %s\n", result) } ``` -------------------------------- ### Retrieve a Scheduled Task using Access Key (GET Request) Source: https://context7_llms This example demonstrates how to retrieve a specific scheduled task from the ScreenshotMAX API using a GET request. It requires your unique access key appended as a query parameter. The API returns a 200 OK response with the scheduled task details in JSON format upon success. ```HTTP GET https://api.screenshotmax.com/v1/tasks/5650820808835072?access_key=YOUR_ACCESS_KEY ``` -------------------------------- ### GET /v1/tasks Source: https://docs.screenshotmax.com/guides/start/animated-screenshots Get a list of all your scheduled tasks. ```APIDOC ## GET /v1/tasks ### Description Get all your scheduled tasks. ### Method GET ### Endpoint https://api.screenshotmax.com/v1/tasks ### Response #### Success Response (200) - **tasks** (array) - An array of scheduled task objects. #### Response Example ```json { "tasks": [ { "id": "task_123", "url": "https://example.com", "schedule": "daily", "created_at": "2023-10-27T10:00:00Z" } ] } ``` ``` -------------------------------- ### GET /v1/usage Source: https://docs.screenshotmax.com/guides/start/animated-screenshots Get your account's usage statistics. ```APIDOC ## GET /v1/usage ### Description Get usage statistics for your account. ### Method GET ### Endpoint https://api.screenshotmax.com/v1/usage ### Response #### Success Response (200) - **usage** (object) - An object containing usage details. #### Response Example ```json { "usage": { "screenshots_taken": 1500, "pdf_generations": 200, "api_calls": 1700, "bandwidth_used_mb": 500 } } ``` ``` -------------------------------- ### GET /v1/devices Source: https://docs.screenshotmax.com/guides/start/animated-screenshots Get a list of available devices that can be emulated for screenshots. ```APIDOC ## GET /v1/devices ### Description Get a list of available devices for emulation. ### Method GET ### Endpoint https://api.screenshotmax.com/v1/devices ### Response #### Success Response (200) - **devices** (array) - An array of available device names. #### Response Example ```json { "devices": [ "desktop", "mobile", "tablet" ] } ``` ``` -------------------------------- ### GET /v1/scrape Source: https://docs.screenshotmax.com/guides/start/animated-screenshots Scrape data from webpages using a GET request. ```APIDOC ## GET /v1/scrape ### Description Scrape data from webpages. ### Method GET ### Endpoint https://api.screenshotmax.com/v1/scrape ### Parameters #### Query Parameters - **url** (string) - Required - The URL of the webpage to scrape. - **selector** (string) - Required - A CSS selector to extract data. ### Request Example ``` GET https://api.screenshotmax.com/v1/scrape?url=https://example.com&selector=h1 ``` ### Response #### Success Response (200) - **data** (array) - An array of strings containing the scraped data. #### Response Example ```json { "data": [ "Example Domain" ] } ``` ``` -------------------------------- ### Apply Theme Based on User Preference or System Setting (JavaScript) Source: https://docs.screenshotmax.com/start/async-webhooks This function dynamically applies a theme ('light' or 'dark') to the document's root element. It prioritizes a user-defined theme from local storage, falls back to a system preference if available, or uses a default. The theme can be set via a 'class' attribute or a 'data-theme' attribute. It supports 'light', 'dark', and 'system' as theme values. Dependencies include localStorage, window.matchMedia, and DOM manipulation. ```javascript function(a,b,c,d,e,f,g,h){let i=document.documentElement,j=["light","dark"];function k(b){var c;(Array.isArray(a)?a:[a]).forEach(a=>{let c="class"===a,d=c&&f?e.map(a=>f[a]||a):e;c?(i.classList.remove(...d),i.classList.add(f&&f[b]?f[b]:b)):i.setAttribute(a,b)}),c=b,h&&j.includes(c)&&(i.style.colorScheme=c)}if(d)k(d);else try{let a=localStorage.getItem(b)||c,d=g&&"system"===a?window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":a;k(d)}catch(a){}})("class","isDarkMode","system",null,["dark","light","true","false","system"],{"true":"dark","false":"light","dark":"dark","light":"light"},true,true) ``` -------------------------------- ### Theme Management with Local Storage and System Preference (JavaScript) Source: https://docs.screenshotmax.com/endpoints/devices This script handles theme management, allowing switching between 'light', 'dark', and 'system' modes. It reads the theme preference from local storage or defaults to 'system'. If 'system' is selected, it checks the user's OS-level color scheme preference. The theme is applied by adding/removing classes or setting the 'data-theme' attribute on the document element. It uses localStorage and window.matchMedia. ```javascript ((a,b,c,d,e,f,g,h)=>{ let i=document.documentElement, j=["light","dark"]; function k(b){ var c; (Array.isArray(a)?a:[a]).forEach(a=>{ let c="class"===a, d=c&&f?e.map(a=>f[a]||a):e; c?(i.classList.remove(...d),i.classList.add(f&&f[b]?f[b]:b)):i.setAttribute(a,b) }), c=b, h&&j.includes(c)&&(i.style.colorScheme=c) } if(d)k(d); else try{ let a=localStorage.getItem(b)||c, d=g&&"system"===a?window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":a; k(d) }catch(a){document.documentElement.setAttribute(b,"hidden")} })("class","isDarkMode","system",null,["dark","light","true","false","system"],{"true":"dark","false":"light","dark":"dark","light":"light"},true,true) ``` -------------------------------- ### GET /v1/tasks/{id} Source: https://docs.screenshotmax.com/guides/start/animated-screenshots Get details of a specific scheduled task by its ID. ```APIDOC ## GET /v1/tasks/{id} ### Description Get a scheduled task. ### Method GET ### Endpoint https://api.screenshotmax.com/v1/tasks/{id} ### Parameters #### Path Parameters - **id** (string) - Required - The ID of the scheduled task. ### Response #### Success Response (200) - **task** (object) - The scheduled task object. #### Response Example ```json { "task": { "id": "task_123", "url": "https://example.com", "schedule": "daily", "created_at": "2023-10-27T10:00:00Z" } } ``` ``` -------------------------------- ### GET /v1/screencast Source: https://docs.screenshotmax.com/start/signed-request%22 Generate short video captures of your webpage as a static animation or a dynamic scroll-through. ```APIDOC ## GET /v1/screencast ### Description Generate short video captures of your webpage as a static animation or a dynamic scroll-through. It’s great for showcasing your app, previewing a website, or generating media content programmatically. ### Method GET ### Endpoint https://api.screenshotmax.com/v1/screencast ### Parameters #### Query Parameters - **url** (string) - Required - The URL of the webpage to capture. - **type** (string) - Optional - The type of animation ('video' for static, 'scroll' for dynamic scroll-through). - **width** (integer) - Optional - The width of the video in pixels. - **height** (integer) - Optional - The height of the video in pixels. ### Request Example ``` GET https://api.screenshotmax.com/v1/screencast?url=https://example.com&type=video&width=1280&height=720 ``` ### Response #### Success Response (200) - **video_url** (string) - The URL of the generated video. #### Response Example ```json { "video_url": "https://cdn.screenshotmax.com/videos/abcdef123456.mp4" } ``` ``` -------------------------------- ### GET /v1/pdf Source: https://docs.screenshotmax.com/guides/start/animated-screenshots Generate a PDF document from a webpage using a GET request. ```APIDOC ## GET /v1/pdf ### Description Generate a PDF from a webpage. ### Method GET ### Endpoint https://api.screenshotmax.com/v1/pdf ### Parameters #### Query Parameters - **url** (string) - Required - The URL of the webpage to convert to PDF. - **orientation** (string) - Optional - 'portrait' or 'landscape'. - **format** (string) - Optional - Paper format (e.g., 'A4', 'Letter'). ### Request Example ``` GET https://api.screenshotmax.com/v1/pdf?url=https://example.com&orientation=landscape ``` ### Response #### Success Response (200) - **pdf_url** (string) - The URL to the generated PDF file. #### Response Example ```json { "pdf_url": "https://pdfs.screenshotmax.com/abcdef12345.pdf" } ``` ``` -------------------------------- ### Generate Screenshot using Python SDK Source: https://context7_llms This example demonstrates how to generate a screenshot of a given URL using the ScreenshotMAX Python SDK. It shows how to set options, fetch the screenshot, and optionally generate a signed URL. The result is saved to a local file. ```python from screenshotmax import SDK from screenshotmax.enum import ImageFormat from screenshotmax.options import ScreenshotOptions sdk = SDK("YOUR_ACCESS_KEY", "YOUR_SECRET_KEY") # set up options opts = ScreenshotOptions(url="https://example.com", format=ImageFormat.PNG) # fetch screenshot result, headers = sdk.screenshot.set_options(opts).fetch() # optionally: generate signed URL # (https://api.screenshotmax.com/v1/screenshot?url=https%3A%2F%2Fexample.com&format=png&access_key=YOUR_ACCESS_KEY&signature=370f5b161bc59eed13b76........1f778635d7fc595dbab12) url = sdk.screenshot.get_url() # save screenshot to file with open("screenshot.png", "wb") as f: f.write(result) ``` -------------------------------- ### GET /v1/screenshot Source: https://docs.screenshotmax.com/guides/start/animated-screenshots Capture high-quality screenshots of webpages using a GET request. ```APIDOC ## GET /v1/screenshot ### Description Capture high-quality screenshots of webpages. ### Method GET ### Endpoint https://api.screenshotmax.com/v1/screenshot ### Parameters #### Query Parameters - **url** (string) - Required - The URL of the webpage to capture. - **width** (integer) - Optional - The width of the screenshot in pixels. - **height** (integer) - Optional - The height of the screenshot in pixels. - **device** (string) - Optional - The device to emulate (e.g., 'desktop', 'mobile'). ### Request Example ``` GET https://api.screenshotmax.com/v1/screenshot?url=https://example.com&width=1920&device=desktop ``` ### Response #### Success Response (200) - **screenshot_url** (string) - The URL to the generated screenshot. #### Response Example ```json { "screenshot_url": "https://screenshots.screenshotmax.com/abcdef12345.png" } ``` ``` -------------------------------- ### GET /v1/screenshot Source: https://docs.screenshotmax.com/guides/start/signed-requests Capture high-quality screenshots of webpages using a GET request. ```APIDOC ## GET /v1/screenshot ### Description Capture high-quality screenshots of webpages. ### Method GET ### Endpoint https://api.screenshotmax.com/v1/screenshot ### Parameters #### Query Parameters - **url** (string) - Required - The URL of the webpage to capture. - **width** (integer) - Optional - The width of the screenshot in pixels. - **height** (integer) - Optional - The height of the screenshot in pixels. - **format** (string) - Optional - The image format (e.g., 'png', 'jpeg'). Defaults to 'png'. ### Request Example ``` GET https://api.screenshotmax.com/v1/screenshot?url=https://example.com&width=1920&height=1080&format=jpeg ``` ### Response #### Success Response (200) - **image** (string) - The base64 encoded image data of the screenshot. #### Response Example ```json { "image": "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=" } ``` ``` -------------------------------- ### GET /v1/screencast Source: https://docs.screenshotmax.com/guides/start/animated-screenshots Capture high-quality animated screenshots (screencasts) of webpages using a GET request. ```APIDOC ## GET /v1/screencast ### Description Capture high-quality animated screenshots of webpages. ### Method GET ### Endpoint https://api.screenshotmax.com/v1/screencast ### Parameters #### Query Parameters - **url** (string) - Required - The URL of the webpage to capture. - **duration** (integer) - Optional - The duration of the screencast in seconds. - **fps** (integer) - Optional - The frames per second for the screencast. ### Request Example ``` GET https://api.screenshotmax.com/v1/screencast?url=https://example.com&duration=10 ``` ### Response #### Success Response (200) - **screencast_url** (string) - The URL to the generated screencast. #### Response Example ```json { "screencast_url": "https://screencasts.screenshotmax.com/abcdef12345.gif" } ``` ``` -------------------------------- ### Mintlify Banner Script Initialization (JavaScript) Source: https://docs.screenshotmax.com/endpoints/get-screenshot This snippet initializes a banner script, likely for displaying localized or contextual messages. It determines banner content based on URL path and language, checks local storage for previously dismissed banners, and sets an attribute to control banner visibility. Dependencies: Browser's Local Storage API, `window.location`. ```javascript function j(a,b,c,d,e){try{let f,g,h=\[\];try{h=window.location.pathname.split(\"/").filter(a=>\"\"!==a&&\"global\"!==a).slice(0,2)}catch{h=\[\]}let i=h.find(a=>c.includes(a)),j=\[\];for(let c of(i?j.push(i):j.push(b),j.push(\"global\"),j)){if(!c)continue;let b=a[c];if(b?.content){f=b.content,g=c;break}}if(!f)return void document.documentElement.setAttribute(d,\"hidden\");let k=!0,l=0;for(;lurl = 'https://example.com'; $opts->pdf_paper_format = 'a4'; $result = $sdk->pdf->setOptions($opts)->fetch(); ```