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: