openapi: 3.2.0 info: title: Geekflare API Tool API description: Official OpenAPI specification for all Geekflare endpoints. version: 1.0.0 license: name: MIT servers: - url: https://api.geekflare.com security: - x-api-key: [] tags: - name: api-tool paths: /metascraping: post: description: Extract a page's meta tags, Open Graph, and Twitter Card data like title, description, canonical URL, images, and more without scraping the full page body. operationId: metaScrape parameters: [] requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/MetaScrapeDto' responses: '200': description: Successfully scraped webpage meta content: application/json: schema: $ref: '#/components/schemas/MetaScrapeResponseDto' '400': description: Invalid URL. content: application/json: schema: $ref: '#/components/schemas/BaseErrorResponseDto' example: timestamp: 1700000000000 apiStatus: failure apiCode: 400 message: INVALID_URL details: The URL must be a valid HTTP or HTTPS URL. '422': description: No metadata found. content: application/json: schema: $ref: '#/components/schemas/BaseErrorResponseDto' example: timestamp: 1700000000000 apiStatus: failure apiCode: 422 message: NO_METADATA details: Metadata could not be extracted from the target URL. '500': description: Crawling failed. content: application/json: schema: $ref: '#/components/schemas/BaseErrorResponseDto' example: timestamp: 1700000000000 apiStatus: failure apiCode: 500 message: CRAWL_FAILED details: Our crawling service encountered an error while attempting to fetch data from the specified URL. summary: Scrape a webpage meta with custom options tags: - api-tool /webscraping: post: description: Fetch a page and return content as Markdown, HTML, JSON, or plain text. Automatically detects whether JavaScript rendering is needed, with optional stealth mode, `proxyMode`-controlled proxy routing, CSS/XPath field extraction, and ready-made `product`/`contact` extraction templates. operationId: webScrape parameters: [] requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/WebScrapeDto' examples: default: summary: Default value: url: https://example.com customOptions: summary: Custom options value: url: https://example.com format: - markdown - json stealth: true waitTime: 2.5 withProxy: summary: With proxy value: url: https://example.com proxyMode: true proxyCountry: gb withTemplate: summary: With extraction template value: url: https://example.com/products/laptop-107 extractionMode: template template: product responses: '200': description: Successfully scraped webpage content: application/json: schema: $ref: '#/components/schemas/WebScrapeResponseDto' examples: default: summary: Default scrape value: timestamp: 1778737930991 apiStatus: success apiCode: 200 meta: url: https://example.com device: desktop format: - html-llm fileOutput: false blockAds: true renderJS: true stealth: false waitTime: 0 extractionMode: default proxyMode: 'false' proxyUsed: false test: id: abc123 data: '# Example Domain This domain is for use in illustrative examples...' templateContact: summary: 'extractionMode: template, template: contact' value: timestamp: 1786985696914 apiStatus: success apiCode: 200 meta: url: https://testingurl.dev/contact device: desktop format: - json fileOutput: false blockAds: true renderJS: true stealth: false waitTime: 1 extractionMode: template template: contact proxyMode: 'false' proxyUsed: false test: id: 8f3a07aa-8b8d-4f21-b0d6-706d3fea5dc0 data: json: contact: companyName: TestingURL.dev locations: - id: london label: London address: 221B Baker Street mapUrl: https://www.google.com/maps/search/?api=1&query=221B%20Baker%20Street phones: - value: +1-555-0102 emails: - value: hello@testingurl.dev label: general - value: sales@testingurl.dev label: sales contactChannels: emails: - value: hello@testingurl.dev label: general - value: sales@testingurl.dev label: sales phones: - value: +1-555-0102 forms: - https://testingurl.dev/contact socialProfiles: - platform: github url: https://github.com/geekflare/testingurl extractionMeta: fieldsFound: - companyName - locations - address - phones - emails - forms - socialProfiles fieldsMissing: - hours - chatUrl - contactPersons raw: '...' templateProduct: summary: 'extractionMode: template, template: product' value: timestamp: 1786985781147 apiStatus: success apiCode: 200 meta: url: https://testingurl.dev/scraping/ecommerce/product/1 device: desktop format: - json fileOutput: false blockAds: true renderJS: true stealth: false waitTime: 1 extractionMode: template template: product proxyMode: 'false' proxyUsed: false test: id: 22c8fcbf-dcf9-42e5-aaec-a0a3df4b334a data: json: product: title: Vertex Air Laptop 107 brand: Vertex category: laptops url: https://testingurl.dev/scraping/ecommerce/product/1 description: Designed with a minimalist aesthetic. aggregateRating: ratingValue: 2 bestRating: 5 reviewCount: 19 variants: - sku: TU-1 price: amount: 86 currency: USD availability: inStock: true text: https://schema.org/InStock images: - url: https://testingurl.dev/assets/placeholder-product.svg '400': description: Invalid URL. content: application/json: schema: $ref: '#/components/schemas/BaseErrorResponseDto' example: timestamp: 1700000000000 apiStatus: failure apiCode: 400 message: INVALID_URL details: The URL must be a valid HTTP or HTTPS URL. '422': description: Unable to connect to the target website. content: application/json: schema: $ref: '#/components/schemas/BaseErrorResponseDto' example: timestamp: 1700000000000 apiStatus: failure apiCode: 422 message: UNABLE_TO_CONNECT details: The destination server could not be resolved, refused the connection, timed out, or is redirecting indefinitely. '500': description: Crawling failed. content: application/json: schema: $ref: '#/components/schemas/BaseErrorResponseDto' example: timestamp: 1700000000000 apiStatus: failure apiCode: 500 message: CRAWL_FAILED details: Our crawling service encountered an error while attempting to fetch data from the specified URL. summary: Scrape a webpage with custom options tags: - api-tool /dnsrecord: post: description: Look up A, AAAA, CNAME, MX, CAA, NS, SOA, SRV, and TXT records for any domain. Query every supported type in one call, or pass `types` to fetch only the ones you need. operationId: dnsRecord parameters: [] requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/DnsRecordDto' responses: '200': description: Successfully retrieved DNS records content: application/json: schema: $ref: '#/components/schemas/DnsRecordResponseDto' '400': description: Invalid URL. content: application/json: schema: $ref: '#/components/schemas/BaseErrorResponseDto' example: timestamp: 1700000000000 apiStatus: failure apiCode: 400 message: INVALID_URL details: The URL must be a valid HTTP or HTTPS URL. '500': description: DNS lookup failed. content: application/json: schema: $ref: '#/components/schemas/BaseErrorResponseDto' example: timestamp: 1700000000000 apiStatus: failure apiCode: 500 message: DNS_LOOKUP_FAILED details: DNS lookup failed for the requested domain. summary: Retrieve DNS records for a given domain tags: - api-tool /screenshot: post: description: Capture a pixel-perfect screenshot of any URL as PNG, JPEG, or WebP. Supports full-page capture, device emulation, custom viewports, and CAPTCHA/cookie-banner bypass. operationId: screenshot parameters: [] requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/ScreenshotDto' responses: '200': description: Successfully captured screenshot content: application/json: schema: $ref: '#/components/schemas/ScreenshotResponseDto' '400': description: Invalid URL. content: application/json: schema: $ref: '#/components/schemas/BaseErrorResponseDto' example: timestamp: 1700000000000 apiStatus: failure apiCode: 400 message: INVALID_URL details: The URL must be a valid HTTP or HTTPS URL. '422': description: Unable to connect to the target website. content: application/json: schema: $ref: '#/components/schemas/BaseErrorResponseDto' example: timestamp: 1700000000000 apiStatus: failure apiCode: 422 message: UNABLE_TO_CONNECT details: The destination server could not be resolved, refused the connection, timed out, or is redirecting indefinitely. '500': description: Screenshot generation failed. content: application/json: schema: $ref: '#/components/schemas/BaseErrorResponseDto' example: timestamp: 1700000000000 apiStatus: failure apiCode: 500 message: SCREENSHOT_FAILED details: Failed to process the request during browser automation. summary: Capture a full-page screenshot of a website tags: - api-tool /up: post: description: Check whether a website is reachable and returns a successful HTTP response. Ideal for uptime monitoring and pre-flight checks before running other tests. operationId: siteStatus parameters: [] requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/SiteStatusDto' responses: '200': description: Site status retrieved successfully content: application/json: schema: $ref: '#/components/schemas/SiteStatusResponseDto' '400': description: Invalid URL. content: application/json: schema: $ref: '#/components/schemas/BaseErrorResponseDto' example: timestamp: 1700000000000 apiStatus: failure apiCode: 400 message: INVALID_URL details: The URL must be a valid HTTP or HTTPS URL. '429': description: Too many redirects. content: application/json: schema: $ref: '#/components/schemas/BaseErrorResponseDto' example: timestamp: 1700000000000 apiStatus: failure apiCode: 429 message: TOO_MANY_REDIRECTS details: Exceeded the maximum number of redirects while checking the target website. '500': description: Site status check failed. content: application/json: schema: $ref: '#/components/schemas/BaseErrorResponseDto' example: timestamp: 1700000000000 apiStatus: failure apiCode: 500 message: SITE_STATUS_FAILED details: Failed to determine the availability or status of the target website. summary: Check if a site is up or down tags: - api-tool /redirectcheck: post: description: Trace the full redirect chain of a URL, including every intermediate hop, status code, and the final destination. Useful for auditing SEO redirects and link rot. operationId: redirectCheck parameters: [] requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/RedirectCheckDto' responses: '200': description: Successfully retrieved redirect chain content: application/json: schema: $ref: '#/components/schemas/RedirectCheckResponseDto' '400': description: Invalid URL. content: application/json: schema: $ref: '#/components/schemas/BaseErrorResponseDto' example: timestamp: 1700000000000 apiStatus: failure apiCode: 400 message: INVALID_URL details: The URL must be a valid HTTP or HTTPS URL. '429': description: Too many redirects. content: application/json: schema: $ref: '#/components/schemas/BaseErrorResponseDto' example: timestamp: 1700000000000 apiStatus: failure apiCode: 429 message: TOO_MANY_REDIRECTS details: Exceeded the maximum number of redirects while resolving the target URL. '500': description: Redirect check failed. content: application/json: schema: $ref: '#/components/schemas/BaseErrorResponseDto' example: timestamp: 1700000000000 apiStatus: failure apiCode: 500 message: REDIRECT_CHECK_FAILED details: Unable to determine the redirect chain for the target URL. summary: Check the redirection chain of a given URL tags: - api-tool /brokenlink: post: description: Scan a webpage for broken links and report which URLs return errors, so you can fix dead links before they hurt SEO or user experience. operationId: brokenLink parameters: [] requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/BrokenLinkDto' responses: '200': description: Successfully checked for broken links content: application/json: schema: $ref: '#/components/schemas/BrokenLinkResponseDto' '400': description: Invalid URL. content: application/json: schema: $ref: '#/components/schemas/BaseErrorResponseDto' example: timestamp: 1700000000000 apiStatus: failure apiCode: 400 message: INVALID_URL details: The URL must be a valid HTTP or HTTPS URL. '422': description: Unable to connect to the target website. content: application/json: schema: $ref: '#/components/schemas/BaseErrorResponseDto' example: timestamp: 1700000000000 apiStatus: failure apiCode: 422 message: UNABLE_TO_CONNECT details: The destination server could not be resolved, refused the connection, timed out, or is redirecting indefinitely. summary: Check if a webpage contains broken links tags: - api-tool /url2pdf: post: description: Convert any URL into a downloadable PDF document, with control over page orientation, margins, and scale. Useful for archiving pages or generating reports. operationId: url2Pdf parameters: [] requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/Url2PdfDto' responses: '200': description: Successfully captured Url2Pdf content: application/json: schema: $ref: '#/components/schemas/Url2PdfResponseDto' '400': description: Invalid URL. content: application/json: schema: $ref: '#/components/schemas/BaseErrorResponseDto' example: timestamp: 1700000000000 apiStatus: failure apiCode: 400 message: INVALID_URL details: The URL must be a valid HTTP or HTTPS URL. '422': description: Unable to connect to the target website. content: application/json: schema: $ref: '#/components/schemas/BaseErrorResponseDto' example: timestamp: 1700000000000 apiStatus: failure apiCode: 422 message: UNABLE_TO_CONNECT details: The destination server could not be resolved, refused the connection, timed out, or is redirecting indefinitely. '500': description: PDF conversion failed. content: application/json: schema: $ref: '#/components/schemas/BaseErrorResponseDto' example: timestamp: 1700000000000 apiStatus: failure apiCode: 500 message: PDF_CONVERSION_FAILED details: Our PDF conversion service encountered an error while fetching the target URL. summary: Capture a full-page Url2Pdf of a website tags: - api-tool /openport: post: description: Scan a domain or IP for open TCP ports, either across the top N most common ports or a custom range you specify. Useful for surface-level network security audits and exposure checks. operationId: openPorts parameters: [] requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/OpenPortDto' responses: '200': description: Open ports retrieved successfully content: application/json: schema: $ref: '#/components/schemas/OpenPortResponseDto' '400': description: Invalid URL. content: application/json: schema: $ref: '#/components/schemas/BaseErrorResponseDto' example: timestamp: 1700000000000 apiStatus: failure apiCode: 400 message: INVALID_URL details: The URL must be a valid HTTP or HTTPS URL. '408': description: Port scan timed out. content: application/json: schema: $ref: '#/components/schemas/BaseErrorResponseDto' example: timestamp: 1700000000000 apiStatus: failure apiCode: 408 message: NMAP_TIMEOUT details: The port scan timed out before it could complete. '500': description: Port scan failed. content: application/json: schema: $ref: '#/components/schemas/BaseErrorResponseDto' example: timestamp: 1700000000000 apiStatus: failure apiCode: 500 message: PORT_SCAN_FAILED details: Our port scanning service encountered an unexpected error while attempting to scan the target. summary: Scan a website for open ports tags: - api-tool /tlsscan: post: description: Inspect a domain's TLS/SSL configuration, including which protocol versions are supported (from the deprecated and insecure SSLv2/SSLv3 through TLS 1.3) and certificate details, to catch expiring certificates and outdated, insecure configurations. operationId: tlsScan parameters: [] requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/TlsScanDto' responses: '200': description: Successfully retrieved TLS scan information content: application/json: schema: $ref: '#/components/schemas/TlsScanResponseDto' example: timestamp: 1786985154370 apiStatus: success apiCode: 200 meta: url: example.com test: id: 25075387-6ffd-4779-94b5-2304d77c8f77 data: protocols: ssl2: true ssl3: true tls10: true tls11: true tls12: true tls13: false certificate: commonName: '*.example.com' subjectAltName: DNS:*.example.com, DNS:example.com issuer: country: GB organization: Sectigo Limited commonName: Sectigo Public Server Authentication CA OV R36 expiry: Sep 30 23:59:59 2026 GMT '400': description: Invalid URL. content: application/json: schema: $ref: '#/components/schemas/BaseErrorResponseDto' example: timestamp: 1700000000000 apiStatus: failure apiCode: 400 message: INVALID_URL details: The URL must be a valid HTTP or HTTPS URL. '422': description: TLS handshake failed. content: application/json: schema: $ref: '#/components/schemas/BaseErrorResponseDto' example: timestamp: 1700000000000 apiStatus: failure apiCode: 422 message: TLS_HANDSHAKE_FAILED details: Unable to establish a TLS connection with the target server. '500': description: TLS scan failed. content: application/json: schema: $ref: '#/components/schemas/BaseErrorResponseDto' example: timestamp: 1700000000000 apiStatus: failure apiCode: 500 message: TLS_SCAN_FAILED details: Unable to complete the TLS scan for the target domain. summary: Perform TLS scan for a given domain tags: - api-tool /loadtime: post: description: Measure how long a webpage takes to fully load from a real browser. Pass `targetCountries` (up to 3 ISO country codes) to also test reachability from those locations via proxy alongside the default US server test, and compare results side by side. operationId: loadTime parameters: [] requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/LoadTimeDto' examples: default: summary: Default value: url: https://example.com withProxy: summary: With proxy value: url: https://example.com proxyCountry: gb withTargetCountries: summary: With target countries value: url: https://example.com targetCountries: - gb - ca responses: '200': description: Load time retrieved successfully. Returns a single-location result by default, or a per-location breakdown when `targetCountries` is set. content: application/json: schema: oneOf: - $ref: '#/components/schemas/LoadTimeResponseDto' - $ref: '#/components/schemas/LoadTimeMultiLocationResponseDto' examples: singleLocation: summary: Default (single location) value: timestamp: 1783943217189 apiStatus: success apiCode: 200 message: Site is reachable. meta: url: https://example.com followRedirect: true redirectedURL: https://example.com/ test: id: mxqx9v9y0742lap6altwdteqd28t23nq data: dns: 10 connect: 12 tls: 9 send: 19 wait: 86 total: 88 statusCode: 200 reasonPhrase: OK multiLocation: summary: targetCountries set (multi-location) value: timestamp: 1785938505112 apiStatus: success apiCode: 200 message: Reachable from all 3 tested locations. meta: url: https://logi.com test: id: cc20cf78-3bfb-4ad4-8e75-4be137f7fb3d targetCountries: - us - gb - ca followRedirect: true summary: reachable: - us - gb - ca locations: - location: us countryName: United States status: reachable data: {} - location: gb countryName: Great Britain status: reachable data: {} - location: ca countryName: Canada status: reachable data: {} '400': description: Invalid URL. content: application/json: schema: $ref: '#/components/schemas/BaseErrorResponseDto' example: timestamp: 1700000000000 apiStatus: failure apiCode: 400 message: INVALID_URL details: The URL must be a valid HTTP or HTTPS URL. '422': description: Unable to connect to the target website. content: application/json: schema: $ref: '#/components/schemas/BaseErrorResponseDto' example: timestamp: 1700000000000 apiStatus: failure apiCode: 422 message: UNABLE_TO_CONNECT details: The destination server could not be resolved, refused the connection, timed out, or is redirecting indefinitely. '500': description: Failed to measure page load time. content: application/json: schema: $ref: '#/components/schemas/BaseErrorResponseDto' example: timestamp: 1700000000000 apiStatus: failure apiCode: 500 message: LOAD_TIME_FAILED details: Unable to measure the page load time for the target URL. summary: Measure the page load time for a given URL tags: - api-tool /mixedcontent: post: description: Scan an HTTPS page for insecure HTTP resources like images, scripts, or stylesheets that trigger browser security warnings and break the padlock icon. operationId: mixedContent parameters: [] requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/MixedContentDto' responses: '200': description: Site status retrieved successfully content: application/json: schema: $ref: '#/components/schemas/MixedContentResponseDto' '400': description: Invalid URL. content: application/json: schema: $ref: '#/components/schemas/BaseErrorResponseDto' example: timestamp: 1700000000000 apiStatus: failure apiCode: 400 message: INVALID_URL details: The URL must be a valid HTTP or HTTPS URL. '422': description: Unable to connect to the target website. content: application/json: schema: $ref: '#/components/schemas/BaseErrorResponseDto' example: timestamp: 1700000000000 apiStatus: failure apiCode: 422 message: UNABLE_TO_CONNECT details: The destination server could not be resolved, refused the connection, timed out, or is redirecting indefinitely. '500': description: Failed to check for mixed content. content: application/json: schema: $ref: '#/components/schemas/BaseErrorResponseDto' example: timestamp: 1700000000000 apiStatus: failure apiCode: 500 message: MIXED_CONTENT_CHECK_FAILED details: Unable to analyze the target webpage for mixed content. summary: Check for mixed content on a site tags: - api-tool /dnssec: post: description: Check whether DNSSEC is properly configured and validating for a domain, helping you confirm protection against DNS spoofing and cache poisoning attacks. operationId: dnsSec parameters: [] requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/DnsSecDto' responses: '200': description: DNSSEC test result retrieved successfully content: application/json: schema: $ref: '#/components/schemas/DnsSecResponseDto' '400': description: Invalid URL. content: application/json: schema: $ref: '#/components/schemas/BaseErrorResponseDto' example: timestamp: 1700000000000 apiStatus: failure apiCode: 400 message: INVALID_URL details: The URL must be a valid HTTP or HTTPS URL. '500': description: DNSSEC check failed. content: application/json: schema: $ref: '#/components/schemas/BaseErrorResponseDto' example: timestamp: 1700000000000 apiStatus: failure apiCode: 500 message: DNSSEC_CHECK_FAILED details: DNSSEC validation failed due to an internal processing error. '502': description: DNSSEC query failed. content: application/json: schema: $ref: '#/components/schemas/BaseErrorResponseDto' example: timestamp: 1700000000000 apiStatus: failure apiCode: 502 message: DNSSEC_QUERY_FAILED details: DNSSEC query failed for the requested domain. '504': description: DNS server timed out. content: application/json: schema: $ref: '#/components/schemas/BaseErrorResponseDto' example: timestamp: 1700000000000 apiStatus: failure apiCode: 504 message: DNSSEC_TIMEOUT details: DNSSEC query timed out while contacting the DNS server. summary: Check if DNSSEC is enabled for a domain tags: - api-tool /mtr: post: description: Run a My Traceroute (MTR) diagnostic between Geekflare and a target host, combining traceroute and ping to show packet loss and latency at each network hop. operationId: mtr parameters: [] requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/MtrDto' responses: '200': description: MTR test completed successfully content: application/json: schema: $ref: '#/components/schemas/MtrResponseDto' '400': description: Invalid URL. content: application/json: schema: $ref: '#/components/schemas/BaseErrorResponseDto' example: timestamp: 1700000000000 apiStatus: failure apiCode: 400 message: INVALID_URL details: The URL must be a valid HTTP or HTTPS URL. '500': description: MTR is not installed. content: application/json: schema: $ref: '#/components/schemas/BaseErrorResponseDto' example: timestamp: 1700000000000 apiStatus: failure apiCode: 500 message: MTR_NOT_FOUND details: The mtr command is not available on the server. summary: Perform MTR (My Traceroute) network diagnostic test tags: - api-tool /ping: post: description: Send ICMP ping requests to a URL or IP and return latency, packet loss, and round-trip time statistics — useful for quick reachability and network health checks. operationId: ping parameters: [] requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/PingDto' responses: '200': description: Ping test completed successfully content: application/json: schema: $ref: '#/components/schemas/PingResponseDto' '400': description: Invalid URL. content: application/json: schema: $ref: '#/components/schemas/BaseErrorResponseDto' example: timestamp: 1700000000000 apiStatus: failure apiCode: 400 message: INVALID_URL details: The URL must be a valid HTTP or HTTPS URL. '504': description: Host is unreachable. content: application/json: schema: $ref: '#/components/schemas/BaseErrorResponseDto' example: timestamp: 1700000000000 apiStatus: failure apiCode: 504 message: TCP_PING_FAILED details: All TCP ping attempts to the target host failed. summary: Perform ICMP Ping test on a given URL or IP tags: - api-tool /lighthouse: post: description: Run a Google Lighthouse audit for performance, SEO, accessibility, and best practices, with support for advanced flags via the `parameters` array. operationId: lighthouse parameters: [] requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/LighthouseDto' responses: '200': description: Successfully ran Lighthouse audit content: application/json: schema: $ref: '#/components/schemas/LighthouseResponseDto' '400': description: Invalid URL. content: application/json: schema: $ref: '#/components/schemas/BaseErrorResponseDto' example: timestamp: 1700000000000 apiStatus: failure apiCode: 400 message: INVALID_URL details: The URL must be a valid HTTP or HTTPS URL. '422': description: Unable to connect to the target website. content: application/json: schema: $ref: '#/components/schemas/BaseErrorResponseDto' example: timestamp: 1700000000000 apiStatus: failure apiCode: 422 message: UNABLE_TO_CONNECT details: The destination server could not be resolved, refused the connection, timed out, or is redirecting indefinitely. '500': description: Lighthouse audit failed. content: application/json: schema: $ref: '#/components/schemas/BaseErrorResponseDto' example: timestamp: 1700000000000 apiStatus: failure apiCode: 500 message: LIGHTHOUSE_UNEXPECTED details: Unexpected Lighthouse audit failure. summary: Run Lighthouse audit on a website tags: - api-tool /search: post: description: Structured search results from the web or news. Strips out ads and HTML noise to provide pure data in JSON, Markdown, or HTML. Fully supports AI-grounded answers, search-with-scrape, image search, and targeted Web or News sourcing. operationId: search parameters: [] requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/SearchRequestDto' responses: '200': description: Search results (format depends on request) content: application/json: schema: oneOf: - $ref: '#/components/schemas/SearchResponseDto' - $ref: '#/components/schemas/ImageSearchResponseDto' - $ref: '#/components/schemas/SearchMarkdownResponseDto' - $ref: '#/components/schemas/SearchHtmlResponseDto' - $ref: '#/components/schemas/GroundedAnswerResponseDto' '400': description: Invalid URL. content: application/json: schema: $ref: '#/components/schemas/BaseErrorResponseDto' example: timestamp: 1700000000000 apiStatus: failure apiCode: 400 message: INVALID_URL details: The URL must be a valid HTTP or HTTPS URL. '422': description: Unable to connect to the target website. content: application/json: schema: $ref: '#/components/schemas/BaseErrorResponseDto' example: timestamp: 1700000000000 apiStatus: failure apiCode: 422 message: UNABLE_TO_CONNECT details: The destination server could not be resolved, refused the connection, timed out, or is redirecting indefinitely. '500': description: Search failed. content: application/json: schema: $ref: '#/components/schemas/BaseErrorResponseDto' example: timestamp: 1700000000000 apiStatus: failure apiCode: 500 message: SEARCH_FAILED details: Our search service encountered an error while processing the request. summary: Search API for AI Agents & LLMs tags: - api-tool /brand: post: description: Retrieve structured brand information for a website domain, including key brand details useful for identifying and understanding a website or company. operationId: brand parameters: [] requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/BrandDto' responses: '200': description: Successfully retrieved brand data content: application/json: schema: $ref: '#/components/schemas/BrandResponseDto' '400': description: Invalid URL. content: application/json: schema: $ref: '#/components/schemas/BaseErrorResponseDto' example: timestamp: 1700000000000 apiStatus: failure apiCode: 400 message: INVALID_URL details: The URL must be a valid HTTP or HTTPS URL. summary: Get brand data for a domain tags: - api-tool components: schemas: SearchResponseDto: type: object properties: timestamp: type: number description: Timestamp of the request in milliseconds example: 1788414740025 apiStatus: type: string description: API status message example: success enum: - success - failure apiCode: type: number description: API status code example: 200 meta: $ref: '#/components/schemas/SearchMetaDto' data: type: array items: $ref: '#/components/schemas/SearchResultItemDto' required: - timestamp - apiStatus - apiCode - meta - data LoadTimeDataDto: type: object properties: dns: type: number description: Time spent in DNS lookup (ms) example: 10 connect: type: number description: Time to establish TCP connection (ms) example: 12 tls: type: number description: Time to complete TLS handshake (ms) example: 9 send: type: number description: Time to send request (ms) example: 19 wait: type: number description: Time waiting for response (ms) example: 86 total: type: number description: Total load time (ms) example: 88 statusCode: type: number description: HTTP status code of the response example: 404 reasonPhrase: type: string description: HTTP reason phrase example: Not Found timings: description: Detailed timing breakdown allOf: - $ref: '#/components/schemas/TimingsDto' network: description: Network information allOf: - $ref: '#/components/schemas/NetworkDto' headers: type: object description: Response headers as key-value pairs example: server: cloudflare content-type: text/html; charset=utf-8 cache-control: no-cache protocolSupport: description: HTTP protocol support information allOf: - $ref: '#/components/schemas/ProtocolSupportDto' required: - dns - connect - tls - send - wait - total - statusCode - reasonPhrase - timings - network - headers - protocolSupport WebScrapeDto: type: object properties: url: type: string description: Target URL example: https://example.com device: type: string description: Device type to emulate. Defaults to desktop. example: desktop enum: - desktop - mobile default: desktop blockAds: type: boolean description: Whether to block ads example: true default: true renderJS: type: boolean description: 'Whether to render JavaScript. If omitted, rendering is automatic: the page is fetched without a browser first, and JavaScript is only rendered if the page needs it. Set explicitly to true or false to force rendering on or off.' proxyMode: description: Whether to route the request through a proxy. `false` never uses a proxy (default), `auto` tries without a proxy first and retries through one if the site blocks the request, `true` always uses a proxy. default: false oneOf: - type: boolean example: true - type: string enum: - auto example: auto proxyCountry: type: string description: Proxy country code to route the request. Used when a proxy is active (proxyMode is auto or true). example: us format: type: array description: Format(s) of the scraped result. Comma-separated or array. Defaults to html-llm. markdown is recommended for most use cases. example: markdown,json default: - html-llm items: type: string enum: - html - markdown - json - markdown-llm - html-llm - text - text-llm fileOutput: type: boolean description: Whether to get response in file format example: false default: false stealth: type: boolean description: Enable stealth mode to bypass basic bot detection (removes webdriver signals, patches navigator properties) example: false default: false waitTime: type: number description: Seconds to wait after page load before capturing content. Helps bypass lazy-loaded content and bot checks. example: 2.5 default: 0 extractionMode: type: string description: Extraction mode (only used if format=json). Set to `template` to use a ready-made extraction template instead of a custom schema — see the `template` field. example: default enum: - default - cssSchema - xpathSchema - template default: default template: type: string description: 'Extraction template to use when extractionMode is `template` (ignored otherwise, and has no effect unless extractionMode is set to `template`). Accepts `product` (extracts product info: title, brand, pricing, availability, images, ratings) or `contact` (extracts contact info: company, locations, emails, phones, social profiles).' extractionSchema: description: Extraction schema (optional in default mode, required in css/xpath) examples: default: summary: Default Mode Schema value: name: Quick Fields fields: - title: Category value: Electronics - title: Country value: India cssSchema: summary: CSS Schema value: name: Product Schema baseSelector: .product fields: - name: title selector: h1.product-title type: text - name: price selector: .price type: text xpathSchema: summary: XPath Schema value: name: Article Schema baseSelector: //div[@class='article'] fields: - name: title selector: //h1/text() type: text allOf: - $ref: '#/components/schemas/ExtractionSchemaDto' aiPrompt: description: Ask AI to extract or analyze the scraped page. Always runs against the Markdown of the page regardless of the format field. Adds +6 credits on top of the base scraping cost. oneOf: - $ref: '#/components/schemas/PromptAiPromptDto' - $ref: '#/components/schemas/SchemaAiPromptDto' - $ref: '#/components/schemas/ListingAiPromptDto' - $ref: '#/components/schemas/SummaryAiPromptDto' - $ref: '#/components/schemas/SentimentAiPromptDto' - $ref: '#/components/schemas/KeywordsAiPromptDto' discriminator: propertyName: type mapping: prompt: '#/components/schemas/PromptAiPromptDto' schema: '#/components/schemas/SchemaAiPromptDto' listing: '#/components/schemas/ListingAiPromptDto' summary: '#/components/schemas/SummaryAiPromptDto' sentiment: '#/components/schemas/SentimentAiPromptDto' keywords: '#/components/schemas/KeywordsAiPromptDto' examples: prompt: summary: Open-ended Question value: type: prompt query: What is the return policy? schema: summary: Custom JSON Schema value: type: schema schema: type: object properties: title: type: string price: type: number currency: type: string inStock: type: boolean product: summary: Product Extraction value: type: product listing: summary: Listing Extraction value: type: listing itemSchema: type: object properties: name: type: string price: type: number maxItems: 20 summary: summary: Summary value: type: summary style: bullets focus: pricing contact: summary: Contact Info value: type: contact sentiment: summary: Sentiment Analysis value: type: sentiment aspects: - sound quality - battery life - comfort - price keywords: summary: Keywords & Entities value: type: keywords maxKeywords: 10 includeEntities: true required: - url DnsSecDataDto: type: object properties: isEnabled: type: boolean description: Indicates if DNSSEC is enabled for the domain example: true dnskey: description: List of DNSKEY records if DNSSEC is enabled example: - DNSKEY 256 3 13 oJMRESz5E4gYzS/q6XDrvU1qMPYIjCWzJaOau8XNEZeqCYKD5ar0IRd8 KqXXFJkqmVfRvMGPmM1x8fGAa2XhSA== type: array items: type: string rrsig: description: List of RRSIG records if DNSSEC is enabled example: - RRSIG DNSKEY 13 2 3600 20251124121323 20250924121323 2371 geekflare.com. LUeqKWfw4GcaqSaCbFT7ik6mTgFdWsRdVzn1hHGSwMGZ4HuwlVFB3e1K 9Os+4DnxyYNkfWkBHJcBfFN7e4snHg== type: array items: type: string required: - isEnabled WebScrapeMetaDto: type: object properties: url: type: string description: The target URL that was scraped example: https://example.com device: type: string description: Device type used example: desktop enum: - desktop - mobile format: type: array description: Output format(s) of the result example: - html-llm items: type: string enum: - html - markdown - json - markdown-llm - html-llm - text - text-llm fileOutput: type: boolean description: Whether to get response in file format example: false blockAds: type: boolean description: Whether ads were blocked example: true renderJS: type: boolean description: Whether JavaScript was rendered for this request (resolved automatically unless explicitly set) example: true stealth: type: boolean description: Whether stealth mode was enabled example: false proxyMode: type: string description: Proxy mode requested for this request, echoed as a string ("false", "auto", or "true") example: 'false' proxyUsed: type: boolean description: Whether a proxy was actually used for this request. Always matches proxyMode when it's `false` or `true`; depends on the outcome of the auto-retry when proxyMode is `auto`. example: false waitTime: type: number description: Seconds to wait after page load before capturing content. Helps bypass lazy-loaded content and bot checks. example: 2.5 default: 0 proxyCountry: type: string description: Proxy country used, if any extractionMode: type: string description: Extraction mode (only used if format=json) example: default template: type: string description: Extraction template used, if extractionMode was `template` example: product enum: - product - contact extractionSchema: description: Extraction schema (optional in default mode, required in css/xpath) examples: default: summary: Default Mode Schema value: name: Quick Fields fields: - title: Category value: Electronics - title: Country value: India allOf: - $ref: '#/components/schemas/ExtractionSchemaDto' test: description: Test details object allOf: - $ref: '#/components/schemas/TestMetaDto' aiPromptType: type: string description: The aiPrompt.type used for this request, if any example: prompt required: - url - device - format - fileOutput - blockAds - renderJS - stealth - proxyMode - proxyUsed - waitTime - extractionMode - extractionSchema - test TlsCertificateChainDto: type: object properties: length: type: number description: Number of certificates in the chain as presented by the server complete: type: boolean description: Whether the chain terminates in a self-signed root (i.e. is not missing an intermediate) certificates: description: Ordered list of certificates from leaf to root type: array items: $ref: '#/components/schemas/TlsCertificateChainEntryDto' required: - length - complete - certificates BrandButtonStyleDto: type: object properties: background: type: string textColor: type: string borderColor: type: string borderRadius: type: string shadow: type: string SchemaAiPromptDto: type: object properties: type: type: string description: AI extraction mode enum: - prompt - schema - listing - summary - sentiment - keywords example: prompt schema: type: object description: JSON Schema-like object describing fields to extract example: type: object properties: title: type: string price: type: number required: - type - schema DnsSecMetaDto: type: object properties: url: type: string description: The tested domain name example: example.com test: description: Metadata about the test execution allOf: - $ref: '#/components/schemas/TestMetaDto' required: - url - test LoadTimeResponseDto: type: object properties: timestamp: type: number description: Timestamp of the request in milliseconds example: 1787223157468 apiStatus: type: string description: API status message example: success enum: - success - failure apiCode: type: number description: API status code example: 200 message: type: string description: Overall message about site reachability example: Site is reachable. meta: description: Metadata about the load time test allOf: - $ref: '#/components/schemas/LoadTimeMetaDto' data: description: Comprehensive site load time metrics allOf: - $ref: '#/components/schemas/LoadTimeDataDto' required: - timestamp - apiStatus - apiCode - meta - data ScreenshotDto: type: object properties: url: type: string description: Target URL example: https://example.com device: type: string description: Device type to emulate. Defaults to desktop. example: desktop enum: - desktop - mobile default: desktop proxyCountry: type: string description: Proxy country code to route the request example: us type: type: string description: File type of screenshot. Defaults to png. example: png enum: - png - jpeg - webp default: png fullPage: type: boolean description: Take full-page screenshot example: true default: false blockAds: type: boolean description: Block ads on the page example: true default: true hideCookie: type: boolean description: Hide cookie popups example: true default: true skipCaptcha: type: boolean description: Try to bypass captcha example: true default: true addTimestamp: type: boolean description: Add timestamp watermark example: true default: false pageHeight: type: number description: Height of the page (for partial screenshot) example: 2000 minimum: 100 maximum: 5000 viewportWidth: type: number description: Width of the viewport example: 1280 minimum: 320 maximum: 3840 viewportHeight: type: number description: Height of the viewport example: 800 minimum: 240 maximum: 2160 theme: type: string description: Theme to use for rendering example: auto enum: - light - dark - auto default: auto removeBackground: type: boolean description: Remove background from screenshot example: false highlightLinks: type: boolean description: Highlight links on the page example: false delay: type: number description: Delay before taking screenshot (in seconds) example: 2 minimum: 0 maximum: 10 disableAnimations: type: boolean description: Disable animations on the page example: false quality: type: number description: Image quality (for JPEG/WEBP) example: 90 minimum: 10 maximum: 100 scaleFactor: type: number description: Device scale factor example: 1 minimum: 0.1 maximum: 5 captureBeyondViewport: type: boolean description: Capture beyond viewport if possible example: true selector: type: string description: CSS selector to capture only a specific element on the page. Supports class (.), ID (#), and attribute selectors. example: .hero-section fallbackToFullPage: type: boolean description: 'If true and the selector is not found, falls back to a full-page screenshot instead of returning an error. Default: false.' example: false default: false inline: type: boolean description: 'If true, includes a Base64-encoded image and data URI in the response. Useful for AI agents and LLMs that cannot fetch URLs. Default: false.' example: false default: false required: - url OpenPortMetaDto: type: object properties: url: type: string description: The scanned URL example: https://example.com topPorts: type: number description: Top ports scanned (if any) example: 100 enum: - 50 - 100 - 500 - 1000 - 5000 portRanges: type: string description: Custom port ranges scanned (if any) example: 80,443,1000-1010 test: description: Test details object allOf: - $ref: '#/components/schemas/TestMetaDto' required: - url - test SiteStatusMetaDto: type: object properties: url: type: string description: The target URL checked example: https://example.com followRedirect: type: boolean description: Whether redirects were followed example: true redirectedURL: type: object description: Final redirected URL (if applicable) example: https://www.example.com/home proxyCountry: type: string description: Proxy country used (if any) example: US test: description: Test details object allOf: - $ref: '#/components/schemas/TestMetaDto' required: - url - followRedirect - proxyCountry - test GroundedSourceDto: type: object properties: title: type: string example: web url: type: string example: https://example.com position: type: number example: 1 required: - title - url - position BrandResponseDto: type: object properties: timestamp: type: number description: Timestamp of the request in milliseconds example: 1788414740025 apiStatus: type: string description: API status message example: success enum: - success - failure apiCode: type: number description: API status code example: 200 meta: description: Metadata about the request allOf: - $ref: '#/components/schemas/BrandMetaDto' data: description: Brand data payload allOf: - $ref: '#/components/schemas/BrandDataDto' required: - timestamp - apiStatus - apiCode - meta - data SentimentAiPromptDto: type: object properties: type: type: string description: AI extraction mode enum: - prompt - schema - listing - summary - sentiment - keywords example: prompt aspects: description: Aspects to score individually (aspect-based sentiment). If omitted, only overall sentiment is returned. example: - sound quality - battery life - comfort - price type: array items: type: string required: - type ImageSearchResultItemDto: type: object properties: title: type: string example: Nike Alphafly 3 imageUrl: type: string example: https://example.com/img.jpg sourceUrl: type: string example: https://example.com/page width: type: number example: 1024 height: type: number example: 768 required: - title - imageUrl - sourceUrl - width - height GroundedAnswerDataDto: type: object properties: answer: type: string description: AI-synthesized answer with inline citations sources: description: Sources cited in the answer type: array items: $ref: '#/components/schemas/GroundedSourceDto' required: - answer - sources BrandLocationDto: type: object properties: city: type: object nullable: true state: type: object nullable: true country: type: object nullable: true countryCode: type: object nullable: true ProtocolSupportDto: type: object properties: http10: type: boolean description: Whether HTTP/1.0 is supported example: false http11: type: boolean description: Whether HTTP/1.1 is supported example: true http2: type: boolean description: Whether HTTP/2 is supported example: true http3: type: boolean description: Whether HTTP/3 is supported example: false http3SupportedVersion: description: HTTP/3 supported versions if available example: - h3-29 - h3 type: array items: type: string required: - http10 - http11 - http2 - http3 BrandDto: type: object properties: url: type: string description: Target URL example: https://example.com refresh: type: boolean description: Force on-demand fetch and refresh the cache, bypassing any existing cached data example: false default: false mode: type: string description: Depth of brand data to return. Enriched includes LLM-synthesized company intelligence. example: standard enum: - standard - enriched default: standard required: - url BrandColorsDto: type: object properties: primary: type: string secondary: type: string background: type: string text: type: string accent: type: string link: type: string palette: type: array items: $ref: '#/components/schemas/BrandColorEntryDto' required: - palette LoadTimeLocationResultDto: type: object properties: location: type: string description: ISO alpha-2 country code for this test location example: gb countryName: type: string description: Full country name for this test location example: Great Britain status: type: string description: Whether the site was reachable from this location example: reachable enum: - reachable - unreachable data: type: object description: Load time metrics for this location, same structure as the single-location `data` object additionalProperties: true required: - location - countryName - status - data MixedContentDto: type: object properties: url: type: string description: Target URL example: https://example.com followRedirect: type: boolean description: Whether to follow redirects when checking site status example: false default: false proxyCountry: type: string description: Proxy country code to route the request example: us required: - url PromptAiPromptDto: type: object properties: type: type: string description: AI extraction mode enum: - prompt - schema - listing - summary - sentiment - keywords example: prompt query: type: string description: Open-ended question about the page example: What is the return policy? required: - type - query DnsRecordResponseDto: type: object properties: timestamp: type: number description: Timestamp of the request in milliseconds example: 1788414740025 apiStatus: type: string description: API status message example: success enum: - success - failure apiCode: type: number description: API status code example: 200 meta: description: Metadata about the request. example: url: example.com types: - A - MX test: id: zmkqoxxu075dwn4u61yoqhq2rwo0029m allOf: - $ref: '#/components/schemas/DnsMetaDto' data: type: object description: DNS records grouped by type. example: A: - 172.67.70.213 - 104.26.11.88 - 104.26.10.88 MX: - exchange: alt3.aspmx.l.google.com priority: 10 - exchange: aspmx.l.google.com priority: 1 required: - timestamp - apiStatus - apiCode - meta - data ScreenshotResponseDto: type: object properties: timestamp: type: number description: Timestamp of the request in milliseconds example: 1788414740025 apiStatus: type: string description: API status message example: success enum: - success - failure apiCode: type: number description: API status code example: 200 meta: description: Metadata about the request allOf: - $ref: '#/components/schemas/ScreenshotMetaDto' data: type: string description: URL of the captured screenshot example: https://geekflare.com/tests/screenshot/kbi6d206g87ituahb7icwtpr.png inline: description: 'Inline Base64 image data. Present only when the request included `inline: true`.' allOf: - $ref: '#/components/schemas/ScreenshotInlineDto' required: - timestamp - apiStatus - apiCode - meta - data OpenPortDto: type: object properties: url: type: string description: The URL, hostname, IPv4, or IPv6 address to be checked example: https://example.com topPorts: type: number description: Scan only the top N ports (optional) example: 100 enum: - 50 - 100 - 500 - 1000 - 5000 portRanges: type: string description: Custom port ranges to scan, e.g., "80,443,1000-1010" example: 80,443,1000-1010 required: - url BrokenLinkSummaryDto: type: object properties: total: type: number description: Total number of links checked example: 5 successful: type: number description: Number of successful links (2xx status codes) example: 2 redirects: type: number description: Number of redirect links (3xx status codes) example: 2 broken: type: number description: Number of broken links (4xx status codes and DNS/network failures) example: 1 serverError: type: number description: Number of server errors (5xx status codes) example: 0 forbidden: type: number description: Number of forbidden links (403 status codes) example: 0 timedOut: type: number description: Number of timed-out links example: 0 required: - total - successful - redirects - broken - serverError - forbidden - timedOut TlsForwardSecrecyDto: type: object properties: negotiatedCipher: type: object description: Cipher suite negotiated on the primary handshake nullable: true ephemeralKeyType: type: object description: Ephemeral key exchange type (e.g. ECDH, DH), null if the cipher does not provide forward secrecy nullable: true ephemeralKeySize: type: object description: Ephemeral key size in bits nullable: true required: - negotiatedCipher - ephemeralKeyType - ephemeralKeySize MetaScrapeDto: type: object properties: url: type: string description: Target URL example: https://example.com device: type: string description: Device type to emulate. Defaults to desktop. example: desktop enum: - desktop - mobile default: desktop blockAds: type: boolean description: Whether to block ads example: true default: true renderJS: type: boolean description: Whether to render JavaScript example: true default: true proxyCountry: type: string description: Proxy country code to route the request example: us format: type: string description: Format of the scraped result. Defaults to html. example: json enum: - markdown - json default: json fileOutput: type: boolean description: Whether to get response in file format example: false default: false required: - url Url2PdfMetaDto: type: object properties: url: type: string description: The target URL example: https://example.com device: type: string description: Device type used example: desktop proxyCountry: type: string description: Proxy country used, if any format: type: string description: Paper format example: letter orientation: type: string description: Orientation example: landscape margin: description: Margins in mm allOf: - $ref: '#/components/schemas/MarginDto' scale: type: number description: Rendering scale example: 1.5 test: description: Test details allOf: - $ref: '#/components/schemas/TestMetaDto' required: - url - device - format - orientation - scale - test MtrDataDto: type: object properties: hop: type: number description: Hop number in the traceroute path example: 1 host: type: string description: Host IP or domain name at this hop example: 240.192.18.19 asn: type: string description: Autonomous System Number (ASN) for the host example: AS??? loss: type: number description: Packet loss percentage at this hop example: 0 sent: type: number description: Number of packets sent to this hop example: 2 last: type: number description: Last recorded round-trip time (RTT) in milliseconds example: 0.28 avg: type: number description: Average RTT across packets example: 0.29 best: type: number description: Best (lowest) RTT observed example: 0.28 worst: type: number description: Worst (highest) RTT observed example: 0.3 stdDev: type: number description: Standard deviation of RTT measurements example: 0.01 required: - hop - host - asn - loss - sent - last - avg - best - worst - stdDev MtrMetaDto: type: object properties: url: type: string description: The tested URL or IP address example: example.com proxyCountry: type: string description: Country used for proxy example: United States followRedirect: type: boolean description: Indicates if redirects should be followed example: true redirectedURL: type: string description: Final URL after redirection (if any) example: https://example.com/ test: description: Metadata about the test execution allOf: - $ref: '#/components/schemas/TestMetaDto' required: - url - redirectedURL - test LoadTimeDto: type: object properties: url: type: string description: Target URL example: https://example.com followRedirect: type: boolean description: Whether to follow redirects when checking site status example: false default: false proxyCountry: type: string description: Proxy country code to route the request example: us targetCountries: type: array description: Test the URL from up to 3 additional locations via proxy, alongside the default US server test. Each entry is an ISO alpha-2 country code. When set, the response includes a per-location reachability breakdown instead of a single result. example: - gb - ca maxItems: 3 items: type: string required: - url MixedContentResponseDto: type: object properties: timestamp: type: number description: Timestamp of the request in milliseconds example: 1788414740025 apiStatus: type: string description: API status message example: success enum: - success - failure apiCode: type: number description: API status code example: 200 message: type: string description: Indicates whether mixed content found or not. It can either be "Mixed content(s) found." or "No mixed content found." example: Mixed content(s) found. meta: description: Metadata about the mixed content test allOf: - $ref: '#/components/schemas/MixedContentMetaDto' data: description: Contains either an array of all resources (when no mixed content) or an object with insecure/secure arrays (when mixed content found) oneOf: - type: array items: type: string description: Simple array of all resources when no mixed content found example: - https://example.com/ - https://example.com/style.css - https://example.com/script.js - $ref: '#/components/schemas/MixedContentDataDto' required: - timestamp - apiStatus - apiCode - message - meta - data RedirectCheckResponseDto: type: object properties: timestamp: type: number description: Timestamp of the request in milliseconds example: 1788414740025 apiStatus: type: string description: API status message example: success enum: - success - failure apiCode: type: number description: API status code example: 200 meta: description: Metadata about the redirection check. example: url: example.com proxyCountry: United States test: id: 667zexrk0aaiabz2rx95b2cxm0khc2s0 allOf: - $ref: '#/components/schemas/RedirectCheckMetaDto' data: description: List of redirection hops with status and headers. type: array items: $ref: '#/components/schemas/RedirectHopDto' required: - timestamp - apiStatus - apiCode - meta - data BrandTypographyDto: type: object properties: h1: type: string h2: type: string body: type: string LoadTimeMultiLocationMetaDto: type: object properties: url: type: string description: The tested URL example: https://logi.com test: description: Metadata about the test execution allOf: - $ref: '#/components/schemas/TestMetaDto' targetCountries: type: array description: 'The full list of locations tested: the default US server plus every requested targetCountries entry' example: - us - gb - ca items: type: string followRedirect: type: boolean description: Indicates if redirects were followed during the test example: true required: - url - test - targetCountries PingResponseDto: type: object properties: timestamp: type: number description: Timestamp of the request in milliseconds example: 1788414740025 apiStatus: type: string description: API status message example: success enum: - success - failure apiCode: type: number description: API status code example: 200 meta: description: Metadata about the Ping test execution allOf: - $ref: '#/components/schemas/PingMetaDto' data: description: Ping result statistics example: requests: 4 loss: 0 latency: 32.5 min: 30 max: 35 avg: 32.5 stdDev: 1.5 ip: 142.250.183.206 allOf: - $ref: '#/components/schemas/PingDataDto' required: - timestamp - apiStatus - apiCode - meta - data OpenPortResponseDto: type: object properties: timestamp: type: number description: Timestamp of the request in milliseconds example: 1788414740025 apiStatus: type: string description: API status message example: success enum: - success - failure apiCode: type: number description: API status code example: 200 meta: description: Metadata about the request allOf: - $ref: '#/components/schemas/OpenPortMetaDto' data: description: List of open ports found type: array items: type: number required: - timestamp - apiStatus - apiCode - meta - data LighthouseResponseDto: type: object properties: timestamp: type: number description: Timestamp of the request in milliseconds example: 1788414740025 apiStatus: type: string description: API status message example: success enum: - success - failure apiCode: type: number description: API status code example: 200 meta: description: Metadata about the request allOf: - $ref: '#/components/schemas/LighthouseMetaDto' data: type: string description: URL to the Lighthouse report example: https://example.com/report.html required: - timestamp - apiStatus - apiCode - meta - data WebScrapeResponseDto: type: object properties: timestamp: type: number description: Timestamp of the request in milliseconds example: 1788414740025 apiStatus: type: string description: API status message example: success enum: - success - failure apiCode: type: number description: API status code example: 200 meta: description: Metadata about the request allOf: - $ref: '#/components/schemas/WebScrapeMetaDto' data: description: Scraped data (URL or inline content depending on output) example: https://example.com/9bulgk075ed9m3vhua5vcrp0.html oneOf: - type: string - type: object aiResult: type: object description: AI extraction/analysis result. Shape depends on aiPrompt.type. Omitted when aiPrompt was not provided. required: - timestamp - apiStatus - apiCode - meta - data TestMetaDto: type: object properties: id: type: string description: Unique test identifier example: mxqx9v9y0742lap6altwdteqd28t23nq required: - id TlsAdvisoryDto: type: object properties: breach: type: object description: BREACH is an HTTP-layer attack, not a TLS property — this is advisory only, not a vulnerability verdict secureRenegotiation: type: object description: Secure renegotiation (RFC 5746) support signal — absence does not necessarily mean vulnerable ocspStapling: type: object description: Whether the server stapled an OCSP response during the handshake required: - breach - secureRenegotiation - ocspStapling BrandSpacingDto: type: object properties: baseUnit: type: number description: 'Heuristic: mode of observed small padding/margin values, not a guaranteed design token' borderRadius: type: string SearchMarkdownResponseDto: type: object properties: timestamp: type: number description: Timestamp of the request in milliseconds example: 1788414740025 apiStatus: type: string description: API status message example: success enum: - success - failure apiCode: type: number description: API status code example: 200 meta: $ref: '#/components/schemas/SearchMetaDto' data: type: object example: "1. [Title](https://example.com)\n - snippet" required: - timestamp - apiStatus - apiCode - meta - data ImageSearchResponseDto: type: object properties: timestamp: type: number description: Timestamp of the request in milliseconds example: 1788414740025 apiStatus: type: string description: API status message example: success enum: - success - failure apiCode: type: number description: API status code example: 200 meta: $ref: '#/components/schemas/SearchMetaDto' data: type: array items: $ref: '#/components/schemas/ImageSearchResultItemDto' required: - timestamp - apiStatus - apiCode - meta - data ExtractionSchemaDto: type: object properties: name: type: string description: Name/Label for this extraction schema example: Product Schema baseSelector: type: string description: Base selector for scoping extraction (css/xpath only) example: .product fields: type: array description: List of fields to extract items: oneOf: - $ref: '#/components/schemas/DefaultExtractionFieldDto' - $ref: '#/components/schemas/SelectorExtractionFieldDto' required: - name - fields ListingAiPromptDto: type: object properties: type: type: string description: AI extraction mode enum: - prompt - schema - listing - summary - sentiment - keywords example: prompt itemSchema: type: object description: JSON Schema-like object describing each item to extract from a listing/category page example: type: object properties: name: type: string price: type: number maxItems: type: number description: Maximum number of items to extract default: 20 example: 20 required: - type - itemSchema MtrDto: type: object properties: url: type: string description: Target URL example: https://example.com followRedirect: type: boolean description: Whether to follow redirects when checking site status example: false default: false proxyCountry: type: string description: Proxy country code to route the request example: us required: - url TlsScanDataDto: type: object properties: protocols: description: Protocols supported allOf: - $ref: '#/components/schemas/TlsProtocolsDto' certificate: description: Certificate details allOf: - $ref: '#/components/schemas/TlsCertificateDto' vulnerabilities: description: Category A vulnerability findings (definitive pass/fail) allOf: - $ref: '#/components/schemas/TlsVulnerabilitiesDto' advisory: description: Category B advisory signals (informational, not a verdict) allOf: - $ref: '#/components/schemas/TlsAdvisoryDto' required: - protocols - certificate - vulnerabilities - advisory BrandColorEntryDto: type: object properties: hex: type: string example: '#635BFF' usage: type: string example: primary required: - hex - usage BrandCompanyDto: type: object properties: foundedYear: type: object nullable: true employeesRange: type: object nullable: true revenueRange: type: object nullable: true kind: type: string enum: - PRIVATELY_HELD - PUBLICLY_TRADED - NON_PROFIT - GOVERNMENT nullable: true industry: type: object nullable: true location: $ref: '#/components/schemas/BrandLocationDto' stockTicker: type: object nullable: true summary: type: string targetAudience: type: string targetAudienceSegments: type: array items: type: string enum: - Freelancers - Startups - SMBs - Mid-Market - Enterprise - Consumers (B2C) brandVoice: type: array items: type: string useCases: type: array items: type: string BaseErrorResponseDto: type: object properties: timestamp: type: number description: Timestamp of the request in milliseconds example: 1778737930991 apiStatus: type: string description: API status message example: success enum: - success - failure apiCode: type: number description: API status code example: 200 message: type: string description: Error message example: Invalid URL provided details: type: string description: Detailed error information example: The URL must be a valid HTTP or HTTPS URL required: - timestamp - apiStatus - apiCode - message SearchMetaDto: type: object properties: query: type: string description: Original query example: best running shoes count: type: number description: Number of results returned example: 10 source: description: Search source used example: web type: array items: type: string location: type: string description: Country used for ranking example: us time: type: string description: Time filter applied example: d scrape: type: boolean description: Whether URL scraping was enabled example: false scrapeLimit: type: number description: Number of URLs scraped example: 3 test: description: Test metadata allOf: - $ref: '#/components/schemas/TestMetaDto' required: - query - count - source - location - time - scrape - scrapeLimit - test TlsScanResponseDto: type: object properties: timestamp: type: number description: Timestamp of the request in milliseconds example: 1788414740025 apiStatus: type: string description: API status message example: success enum: - success - failure apiCode: type: number description: API status code example: 200 meta: description: Metadata about the TLS scan request example: url: example.com test: id: 40zt4but04y07ccn4pov5fiolzrxbxdg allOf: - $ref: '#/components/schemas/TlsScanMetaDto' data: description: TLS scan result data example: protocols: ssl2: false ssl3: false tls10: false tls11: false tls12: true tls13: true certificate: commonName: sni.cloudflaressl.com subjectAltName: DNS:*.example.com, DNS:sni.cloudflaressl.com, DNS:example.com issuer: country: US organization: Cloudflare, Inc. commonName: Cloudflare Inc ECC CA-3 expiry: Jun 6 23:59:59 2023 GMT allOf: - $ref: '#/components/schemas/TlsScanDataDto' required: - timestamp - apiStatus - apiCode - meta - data MtrResponseDto: type: object properties: timestamp: type: number description: Timestamp of the request in milliseconds example: 1788414740025 apiStatus: type: string description: API status message example: success enum: - success - failure apiCode: type: number description: API status code example: 200 meta: description: Metadata about the MTR test execution allOf: - $ref: '#/components/schemas/MtrMetaDto' data: description: Array of hop details observed in the MTR trace route example: - hop: 1 host: 240.192.18.19 asn: AS??? loss: 0 sent: 2 last: 0.28 avg: 0.29 best: 0.28 worst: 0.3 stdDev: 0.01 - hop: 2 host: 240.0.60.49 asn: AS??? loss: 0 sent: 2 last: 0.28 avg: 0.29 best: 0.28 worst: 0.29 stdDev: 0.01 type: array items: $ref: '#/components/schemas/MtrDataDto' required: - timestamp - apiStatus - apiCode - meta - data TlsProtocolsDto: type: object properties: ssl2: type: boolean description: Whether the deprecated and insecure SSL 2.0 is supported example: false ssl3: type: boolean description: Whether the deprecated and insecure SSL 3.0 is supported example: false tls10: type: boolean description: Whether TLS 1.0 is supported example: false tls11: type: boolean description: Whether TLS 1.1 is supported example: false tls12: type: boolean description: Whether TLS 1.2 is supported example: true tls13: type: boolean description: Whether TLS 1.3 is supported example: true required: - ssl2 - ssl3 - tls10 - tls11 - tls12 - tls13 ScreenshotMetaDto: type: object properties: url: type: string description: The target URL that was captured example: https://example.com type: type: string description: File type of screenshot example: png device: type: string description: Device type used example: desktop fullPage: type: boolean description: Whether full-page screenshot was taken example: false blockAds: type: boolean description: Whether ads were blocked example: false hideCookie: type: boolean description: Whether cookie popups were hidden example: false skipCaptcha: type: boolean description: Whether captcha was bypassed example: false addTimestamp: type: boolean description: Whether timestamp watermark was added example: false proxyCountry: type: string description: Proxy country used, if any pageHeight: type: number description: Height of the page example: 2000 viewportWidth: type: number description: Width of the viewport example: 1280 viewportHeight: type: number description: Height of the viewport example: 800 theme: type: string description: Theme used example: auto removeBackground: type: boolean description: Whether background was removed example: false highlightLinks: type: boolean description: Whether links were highlighted example: false delay: type: number description: Delay before screenshot example: 2 disableAnimations: type: boolean description: Whether animations were disabled example: false quality: type: number description: Image quality (JPEG/WEBP) example: 90 scaleFactor: type: number description: Device scale factor example: 1 captureBeyondViewport: type: boolean description: Capture beyond viewport example: true selector: type: string description: CSS selector that was targeted, if provided example: .hero-section fallbackToFullPage: type: boolean description: Whether fallback to full-page was enabled example: false inline: type: boolean description: Whether inline base64 output was requested example: false test: description: Test details allOf: - $ref: '#/components/schemas/TestMetaDto' required: - url - type - device - fullPage - blockAds - hideCookie - skipCaptcha - addTimestamp - test MixedContentMetaDto: type: object properties: url: type: string description: The tested URL example: https://example.com proxyCountry: type: string description: Country used for proxy example: United States followRedirect: type: boolean description: Indicates if redirects should be followed example: true redirectedURL: type: string description: Final URL after redirection (if any) example: https://example.com/ test: description: Metadata about the test execution allOf: - $ref: '#/components/schemas/TestMetaDto' required: - url - test SearchResultItemDto: type: object properties: title: type: string description: Result title example: Best Running Shoes of 2025 url: type: string description: Canonical URL example: https://example.com/running-shoes snippet: type: string description: Clean snippet (ads/HTML removed) example: We tested over 100 pairs to find the best running shoes... date: type: string description: Published date (if available) example: Dec 18, 2025 position: type: number description: Rank position example: 1 content: type: object description: Scraped cleaned HTML content from the result URL example: Full article cleaned for LLM consumption... thumbnail: type: object description: Thumbnail image URL (if available) example: https://example.com/thumb.jpg required: - title - url - snippet - position RedirectCheckDto: type: object properties: url: type: string description: Target URL example: https://example.com proxyCountry: type: string description: Proxy country code to route the request example: us required: - url SearchRequestDto: type: object properties: query: type: string description: Search query example: best running shoes maxLength: 2048 limit: type: number description: Number of results example: 10 default: 10 minimum: 1 maximum: 100 time: type: string description: Time filter (h, d, w, m, y or h2, d7, etc.) example: d default: any location: type: string description: Country code (ISO alpha-2) example: us default: us source: type: string description: Search source enum: - web - news - images example: web default: web category: type: string description: Category filter enum: - general - code - pdf - research - linkedin - wiki example: code default: general includeDomains: description: Include only these domains example: - reddit.com - stackoverflow.com type: array items: type: string excludeDomains: description: Exclude these domains example: - pinterest.com type: array items: type: string format: type: string description: Output format enum: - json - markdown - html default: json scrape: type: boolean description: scrape and extract content from SERP result URLs example: false default: false scrapeLimit: type: number description: 'Number of URLs to scrape (requires scrape: true)' example: 3 default: 3 minimum: 1 maximum: 10 groundedAnswer: type: boolean description: Use AI to synthesize a grounded answer from search results. example: false default: false required: - query DnsMetaDto: type: object properties: url: type: string description: The target URL that was scraped example: https://example.com types: type: string description: List of DNS record types to query. If omitted, all supported types will be returned. example: - A - MX enum: - A - AAAA - CNAME - MX - CAA - NS - SOA - SRV - TXT test: description: Test details object allOf: - $ref: '#/components/schemas/TestMetaDto' required: - url - types - test RedirectCheckMetaDto: type: object properties: url: type: string description: The original URL checked example: example.com proxyCountry: type: object description: Proxy country used (if any) example: US test: description: Test details object allOf: - $ref: '#/components/schemas/TestMetaDto' required: - url - proxyCountry - test BrokenLinkResponseDto: type: object properties: timestamp: type: number description: Timestamp of the request in milliseconds example: 1788414740025 apiStatus: type: string description: API status message example: success enum: - success - failure apiCode: type: number description: API status code example: 200 message: type: string description: Human-readable message about the broken link scan result example: No broken links found. meta: description: Metadata about the broken link request example: url: example.com proxyCountry: United States followRedirect: true redirectedURL: https://example.com/ test: id: wf0b7yrn05br8xtwple7ngj7hhxzvl2e allOf: - $ref: '#/components/schemas/BrokenLinkMetaDto' summary: description: Summary of link check results categorized by status example: total: 5 successful: 2 redirects: 2 broken: 1 serverError: 0 allOf: - $ref: '#/components/schemas/BrokenLinkSummaryDto' data: description: List of links found on the page and their HTTP status example: - link: https://example.com/ status: 200 - link: https://example.com/articles status: 200 type: array items: type: string required: - timestamp - apiStatus - apiCode - message - meta - summary - data LighthouseMetaDto: type: object properties: url: type: string description: Target URL example: https://example.com device: type: string description: Device type used enum: - desktop - mobile followRedirect: type: boolean description: Whether redirects were followed redirectedURL: type: string description: Final URL after redirection (if any) example: https://example.com/ proxyCountry: type: string description: Proxy country used, if any test: description: Test details object allOf: - $ref: '#/components/schemas/TestMetaDto' required: - url - device - followRedirect - redirectedURL - test MetaScrapeMetaDto: type: object properties: url: type: string description: The target URL that was scraped example: https://example.com device: type: string description: Device type used example: desktop enum: - desktop - mobile format: type: string description: Output format of the result example: json enum: - markdown - json fileOutput: type: boolean description: Whether to get response in file format example: false blockAds: type: boolean description: Whether ads were blocked example: true renderJS: type: boolean description: Whether JavaScript was rendered example: true proxyCountry: type: string description: Proxy country used, if any test: description: Test details object allOf: - $ref: '#/components/schemas/TestMetaDto' required: - url - device - format - fileOutput - blockAds - renderJS - test LighthouseDto: type: object properties: url: type: string description: Target URL example: https://example.com device: type: string description: Device type to emulate. Defaults to desktop. example: desktop enum: - desktop - mobile default: desktop followRedirect: type: boolean description: Whether to follow redirects when checking site status example: false default: false proxyCountry: type: string description: Proxy country code to route the request example: us parameters: description: Extra Lighthouse CLI parameters example: - --only-categories=seo type: array items: type: string required: - url BrandFontDto: type: object properties: family: type: string usage: type: string example: heading source: type: string enum: - custom - google - system required: - family - usage - source TlsCertificateDto: type: object properties: commonName: type: string description: Common name (CN) on the certificate example: sni.cloudflaressl.com subjectAltName: type: string description: Subject Alternative Names (SAN) example: DNS:*.example.com, DNS:sni.cloudflaressl.com, DNS:example.com issuer: description: Issuer details allOf: - $ref: '#/components/schemas/TlsCertificateIssuerDto' expiry: type: string description: Certificate expiry date example: Jun 6 23:59:59 2023 GMT validFrom: type: string description: Certificate valid-from date isExpired: type: boolean description: Whether the certificate has expired isNotYetValid: type: boolean description: Whether the certificate is not yet valid hostnameMatches: type: boolean description: Whether the requested hostname matches the certificate (CN/SAN) selfSigned: type: boolean description: Whether the leaf certificate is self-signed keyBits: type: object description: Public key size in bits, null if not an RSA key nullable: true weakKey: type: object description: Whether the key size is considered weak (RSA < 2048 bits), null if not applicable nullable: true weakSignatureAlgorithm: type: object description: Whether the certificate uses a weak signature algorithm (SHA-1/MD5); heuristic OID scan, null if undeterminable nullable: true chain: description: Certificate chain analysis allOf: - $ref: '#/components/schemas/TlsCertificateChainDto' forwardSecrecy: description: Forward secrecy signal from the negotiated handshake allOf: - $ref: '#/components/schemas/TlsForwardSecrecyDto' trusted: type: boolean description: Whether the chain validates against Node/OpenSSL's built-in trust store authorizationError: type: object description: Node TLS authorization error code/message if not trusted, null otherwise nullable: true required: - commonName - subjectAltName - issuer - expiry - validFrom - isExpired - isNotYetValid - hostnameMatches - selfSigned - keyBits - weakKey - weakSignatureAlgorithm - chain - forwardSecrecy - trusted - authorizationError ScreenshotInlineDto: type: object properties: base64: type: string description: Raw Base64-encoded image string example: iVBORw0KGgoAAAANSUhEUgAA... dataUri: type: string description: Data URI — ready to embed in an tag or pass directly to an LLM example: data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA... required: - base64 - dataUri SummaryAiPromptDto: type: object properties: type: type: string description: AI extraction mode enum: - prompt - schema - listing - summary - sentiment - keywords example: prompt style: type: string description: Summary style enum: - paragraph - bullets - tldr default: paragraph focus: type: string description: Only summarize the parts of the content relevant to this focus area example: pricing maxLength: type: number description: Sentence count (paragraph/tldr) or bullet count (bullets) default: 5 example: 5 required: - type BrokenLinkDto: type: object properties: url: type: string description: Target URL example: https://example.com proxyCountry: type: string description: Proxy country code to route the request example: us followRedirect: type: boolean description: Whether to follow redirects when checking site status example: false default: false required: - url PingMetaDto: type: object properties: url: type: string description: The tested URL or IP address example: example.com test: description: Metadata about the test execution allOf: - $ref: '#/components/schemas/TestMetaDto' required: - url - test TlsScanMetaDto: type: object properties: url: type: string description: The target URL checked for TLS support example: example.com test: description: Test metadata object example: id: 40zt4but04y07ccn4pov5fiolzrxbxdg allOf: - $ref: '#/components/schemas/TestMetaDto' required: - url - test BrandComponentsDto: type: object properties: buttonPrimary: $ref: '#/components/schemas/BrandButtonStyleDto' buttonSecondary: $ref: '#/components/schemas/BrandButtonStyleDto' input: $ref: '#/components/schemas/BrandButtonStyleDto' SiteStatusResponseDto: type: object properties: timestamp: type: number description: Timestamp of the request in milliseconds example: 1788414740025 apiStatus: type: string description: API status message example: success enum: - success - failure apiCode: type: number description: API status code example: 200 message: type: string description: Indicates the current status of the site. It can either be "Site is up" or "Unable to reach the URL." example: Site is up meta: description: Metadata about the site status check. example: url: example.com proxyCountry: US followRedirect: true redirectedURL: https://www.example.com test: id: zmkqoxxu075dwn4u61yoqhq2rwo0029m allOf: - $ref: '#/components/schemas/SiteStatusMetaDto' data: type: object description: HTTP status information from the site check. example: statusCode: 200 reasonPhrase: OK required: - timestamp - apiStatus - apiCode - message - meta - data MarginDto: type: object properties: top: type: number description: Top margin in mm example: 25.4 bottom: type: number description: Bottom margin in mm example: 25.4 right: type: number description: Right margin in mm example: 25.4 left: type: number description: Left margin in mm example: 25.4 RedirectHopDto: type: object properties: url: type: string description: The URL at this hop example: http://example.com/ status: type: number description: HTTP status code at this hop example: 301 headers: description: Response headers example: - name: location value: https://example.com/ - name: date value: Mon, 29 Aug 2022 07:17:31 GMT type: array items: type: string required: - url - status - headers BrandDataDto: type: object properties: domain: type: string example: stripe.com name: type: string tagline: type: string description: type: string slogan: type: string isNsfw: type: boolean default: false favicon: type: string bannerUrl: type: string logos: type: array items: $ref: '#/components/schemas/BrandLogoDto' colors: $ref: '#/components/schemas/BrandColorsDto' colorScheme: type: string enum: - light - dark fonts: type: array items: $ref: '#/components/schemas/BrandFontDto' fontSizes: $ref: '#/components/schemas/BrandTypographyDto' components: $ref: '#/components/schemas/BrandComponentsDto' spacing: $ref: '#/components/schemas/BrandSpacingDto' socialProfiles: type: array items: $ref: '#/components/schemas/BrandSocialProfileDto' links: $ref: '#/components/schemas/BrandLinksDto' company: $ref: '#/components/schemas/BrandCompanyDto' pageMeta: $ref: '#/components/schemas/BrandPageMetaDto' required: - domain DnsSecResponseDto: type: object properties: timestamp: type: number description: Timestamp of the request in milliseconds example: 1788414740025 apiStatus: type: string description: API status message example: success enum: - success - failure apiCode: type: number description: API status code example: 200 meta: description: Metadata about the DNSSEC test allOf: - $ref: '#/components/schemas/DnsSecMetaDto' data: description: DNSSEC test result data allOf: - $ref: '#/components/schemas/DnsSecDataDto' required: - timestamp - apiStatus - apiCode - meta - data TlsScanDto: type: object properties: url: type: string description: Target URL example: https://example.com required: - url PingDto: type: object properties: url: type: string description: Target URL, hostname, IPv4, or IPv6 address example: https://example.com required: - url TlsCertificateIssuerDto: type: object properties: country: type: string description: Issuer country example: US organization: type: string description: Issuer organization example: Cloudflare, Inc. commonName: type: string description: Issuer common name example: Cloudflare Inc ECC CA-3 required: - country - organization - commonName SelectorExtractionFieldDto: type: object properties: name: type: string description: Field name in the extracted JSON example: title selector: type: string description: Selector or XPath to extract value example: h1.product-title type: type: string description: Type of data to extract example: text attribute: type: string description: If type=attr, specify attribute name example: href fields: description: Nested fields type: array items: $ref: '#/components/schemas/SelectorExtractionFieldDto' required: - name - selector - type Url2PdfDto: type: object properties: url: type: string description: Target URL example: https://example.com device: type: string description: Device type to emulate. Defaults to desktop. example: desktop enum: - desktop - mobile default: desktop proxyCountry: type: string description: Proxy country code to route the request example: us format: type: string description: Paper format example: a4 enum: - letter - legal - a0 - a1 - a2 - a3 - a4 - a5 - a6 default: a4 orientation: type: string description: Orientation example: portrait enum: - portrait - landscape default: portrait margin: description: Margins in mm allOf: - $ref: '#/components/schemas/MarginDto' scale: type: number description: Rendering scale between 0–2 example: 1.5 default: 1 hideCookie: type: boolean description: Hide cookie popups example: false default: false skipCaptcha: type: boolean description: Try to skip captcha example: false default: false addTimestamp: type: boolean description: Add timestamp watermark example: false default: false required: - url SearchHtmlResponseDto: type: object properties: timestamp: type: number description: Timestamp of the request in milliseconds example: 1788414740025 apiStatus: type: string description: API status message example: success enum: - success - failure apiCode: type: number description: API status code example: 200 meta: $ref: '#/components/schemas/SearchMetaDto' data: type: object example: required: - timestamp - apiStatus - apiCode - meta - data DefaultExtractionFieldDto: type: object properties: title: type: string description: Title/key of the extracted field example: Product Name value: type: object description: Static value to assign to this field example: Some hardcoded string required: - title - value Url2PdfResponseDto: type: object properties: timestamp: type: number description: Timestamp of the request in milliseconds example: 1788414740025 apiStatus: type: string description: API status message example: success enum: - success - failure apiCode: type: number description: API status code example: 200 meta: description: Metadata about the request allOf: - $ref: '#/components/schemas/Url2PdfMetaDto' data: type: string description: Generated PDF URL example: https://api-assets.example.com/tests/pdf/o5jiqf08bmp93jsll7vb24vs.pdf required: - timestamp - apiStatus - apiCode - meta - data DnsSecDto: type: object properties: url: type: string description: Target URL example: https://example.com required: - url MetaScrapeResponseDto: type: object properties: timestamp: type: number description: Timestamp of the request in milliseconds example: 1788414740025 apiStatus: type: string description: API status message example: success enum: - success - failure apiCode: type: number description: API status code example: 200 meta: description: Metadata about the request allOf: - $ref: '#/components/schemas/MetaScrapeMetaDto' data: description: Scraped data (URL or inline content depending on output) example: https://cdn.geekflare.com/tests/webscraping/ZuyhINuAZPQQabbN oneOf: - type: string - type: object required: - timestamp - apiStatus - apiCode - meta - data TlsVulnerabilitiesDto: type: object properties: poodle: type: object description: POODLE (SSLv3 padding oracle) exposure and TLS_FALLBACK_SCSV support drown: type: object description: DROWN exposure, simplified to SSLv2 support (full check requires cross-server key reuse analysis) freak: type: object description: FREAK — whether the server accepts EXPORT-grade RSA cipher suites logjam: type: object description: LOGJAM — whether the server negotiates a DHE group under 1024 bits sweet32: type: object description: SWEET32 — whether the server negotiates 3DES/64-bit block ciphers rc4: type: object description: Whether the server accepts RC4 cipher suites nullCipher: type: object description: Whether the server accepts NULL-encryption cipher suites anonymousCipher: type: object description: Whether the server accepts anonymous (unauthenticated) cipher suites crime: type: object description: CRIME — whether the server accepts TLS-level (DEFLATE) compression required: - poodle - drown - freak - logjam - sweet32 - rc4 - nullCipher - anonymousCipher - crime LoadTimeMetaDto: type: object properties: url: type: string description: The tested URL example: https://example.com proxyCountry: type: string description: Proxy country used for the test example: us followRedirect: type: boolean description: Indicates if redirects were followed during the test example: true redirectedURL: type: string description: Final URL after redirection (if any) example: https://example.com/ test: description: Metadata about the test execution allOf: - $ref: '#/components/schemas/TestMetaDto' required: - url - redirectedURL - test KeywordsAiPromptDto: type: object properties: type: type: string description: AI extraction mode enum: - prompt - schema - listing - summary - sentiment - keywords example: prompt maxKeywords: type: number description: Maximum number of keywords to return default: 10 example: 10 includeEntities: type: boolean description: Also extract named entities (organizations, people, dates, laws, locations) default: false required: - type NetworkDto: type: object properties: protocol: type: string description: The actual HTTP protocol used (e.g. h2, h3, http/1.1, http/1.0) example: h2 remoteIp: type: string description: Remote IP address of the server example: 1.1.1.1 bytesRead: type: number description: Total bytes read from the response example: 15400 required: - protocol - bytesRead BrandPageMetaDto: type: object properties: title: type: string themeColor: type: string canonicalUrl: type: string language: type: string BrandLinksDto: type: object properties: blog: type: string login: type: string signup: type: string careers: type: string contact: type: string privacy: type: string terms: type: string pricing: type: string SiteStatusDto: type: object properties: url: type: string description: Target URL example: https://example.com proxyCountry: type: string description: Proxy country code to route the request example: us followRedirect: type: boolean description: Whether to follow redirects when checking site status example: false default: false required: - url TimingsDto: type: object properties: dns: type: number description: Time spent in DNS lookup (ms) example: 21 connect: type: number description: Time to establish TCP connection (ms) example: 15 tls: type: number description: Time to complete TLS handshake (ms) example: 40 send: type: number description: Time to send request (ms) example: 1 wait: type: number description: Server processing time (ms) example: 457 ttfb: type: number description: Time to First Byte - calculated as dns+connect+tls+send+wait (ms) example: 534 download: type: number description: Time to download response body (ms) example: 4 total: type: number description: Total load time (ms) example: 538 redirectDuration: type: number description: Time spent in redirects before reaching final URL (ms) example: 0 required: - dns - connect - tls - send - wait - ttfb - download - total - redirectDuration MixedContentDataDto: type: object properties: insecure: description: List of insecure (HTTP) resources found on the page example: - http://example.com/style.css - http://example.com/script.js type: array items: type: string secure: description: List of secure (HTTPS) resources found on the page example: - https://example.com/ - https://fonts.googleapis.com/css?family=Open+Sans - data:image/svg+xml;base64,PHN2ZyB4bWxucz0i... type: array items: type: string required: - insecure - secure BrandSocialProfileDto: type: object properties: name: type: string example: twitter url: type: string required: - name - url BrokenLinkMetaDto: type: object properties: url: type: string description: The target URL checked for broken links example: example.com proxyCountry: type: string description: Proxy country used for this request example: United States followRedirect: type: boolean description: Whether redirection was followed example: true redirectedURL: type: string description: Final URL after redirection (if any) example: https://example.com/ test: description: Test details object allOf: - $ref: '#/components/schemas/TestMetaDto' required: - url - proxyCountry - followRedirect - redirectedURL - test BrandMetaDto: type: object properties: domain: type: string description: The domain that was queried example: stripe.com mode: type: string description: Mode requested example: standard enum: - standard - enriched cached: type: boolean description: Whether this response was served from cache example: true lastUpdated: type: string description: When the underlying data was last fetched/updated example: '2026-06-15T08:32:00Z' dataAge: type: string description: Human-readable age of the cached data example: 5d refreshRequested: type: boolean description: Whether a forced refresh was requested example: false test: description: Test details object allOf: - $ref: '#/components/schemas/TestMetaDto' required: - domain - mode - cached - lastUpdated - dataAge - refreshRequested - test BrandLogoDto: type: object properties: type: type: string enum: - logo - symbol - icon theme: type: string enum: - light - dark nullable: true url: type: string format: type: string example: svg required: - type - url - format LoadTimeMultiLocationResponseDto: type: object description: Returned instead of LoadTimeResponseDto when `targetCountries` is set on the request properties: timestamp: type: number description: Timestamp of the request in milliseconds example: 1787223157468 apiStatus: type: string description: API status message example: success enum: - success - failure apiCode: type: number description: API status code example: 200 message: type: string description: Overall summary of reachability across all tested locations example: Reachable from all 3 tested locations. meta: description: Metadata about the multi-location test allOf: - $ref: '#/components/schemas/LoadTimeMultiLocationMetaDto' summary: type: object description: Locations grouped by reachability outcome properties: reachable: type: array description: Locations from which the site was reachable example: - us - gb - ca items: type: string locations: type: array description: Per-location test results, including the default US server test items: $ref: '#/components/schemas/LoadTimeLocationResultDto' required: - timestamp - apiStatus - apiCode - message - meta - summary - locations DnsRecordDto: type: object properties: url: type: string description: Target URL example: https://example.com types: type: array description: List of DNS record types to query. If omitted, all supported types will be returned. example: - A - MX items: type: string enum: - A - AAAA - CNAME - MX - CAA - NS - SOA - SRV - TXT required: - url TlsCertificateChainEntryDto: type: object properties: commonName: type: string description: Common name of this certificate in the chain issuerCommonName: type: string description: Common name of this certificate's issuer fingerprint: type: string description: SHA-1 fingerprint of this certificate required: - commonName - issuerCommonName - fingerprint GroundedAnswerResponseDto: type: object properties: timestamp: type: number description: Timestamp of the request in milliseconds example: 1788414740025 apiStatus: type: string description: API status message example: success enum: - success - failure apiCode: type: number description: API status code example: 200 meta: $ref: '#/components/schemas/SearchMetaDto' data: $ref: '#/components/schemas/GroundedAnswerDataDto' required: - timestamp - apiStatus - apiCode - meta - data PingDataDto: type: object properties: requests: type: number description: Number of ping requests sent example: 4 loss: type: number description: Packet loss percentage example: 0 latency: type: number description: Average latency in milliseconds example: 32.5 min: type: number description: Minimum round-trip time (RTT) in milliseconds example: 30 max: type: number description: Maximum round-trip time (RTT) in milliseconds example: 35 avg: type: number description: Average round-trip time (RTT) in milliseconds example: 32.5 stdDev: type: number description: Standard deviation of RTT in milliseconds example: 1.5 ip: type: string description: Resolved IP address of the tested domain example: 142.250.183.206 required: - requests - loss - latency - min - max - avg - stdDev - ip securitySchemes: x-api-key: type: apiKey in: header name: x-api-key description: API Key required for all endpoints bearer-token: scheme: bearer bearerFormat: JWT type: http description: JWT token for Admin endpoints gf_auth_session: type: apiKey in: cookie name: gf_auth_session description: IDP session cookie x-internal-key: type: apiKey in: header name: x-internal-key description: Internal API key (Swagger only)