Site
Query and manage monitored sites through the WebPixie GraphQL API.
Fields
| Field | Type | Description |
|---|---|---|
id | ID! | Unique identifier for the site. |
userId | ID! | ID of the user who added the site. |
domain | String! | The monitored domain. |
rootDomain | String! | The registrable root domain — e.g. acme.io for a site added as www.acme.io. |
isFavorite | Boolean! | Whether the site is marked as a favorite. |
features | [SiteFeatureTypes!]! | Product areas enabled for this site. |
notification | SiteNotificationConfig! | Notification settings for this site — { all: Boolean! }. |
ssl | SiteSSL | SSL/TLS monitoring data, populated once MONITOR_SSL has run. |
certificate | SiteCertificate | Latest certificate check data, populated once MONITOR_SSL has run. |
whois | SiteWhois | WHOIS/domain registration data, populated once MONITOR_WHOIS has run. |
dns | SiteDNS | DNS monitoring data, populated once MONITOR_DNS has run. |
mainPage | SiteMainPage | Main page crawl data from the site's most recent snapshot crawl. |
robotsTxt | SiteRobotsTxt | robots.txt data from the site's most recent snapshot crawl. |
sitemap | SiteSitemap | Sitemap discovery data, populated once SITEMAP_CRAWLER has run. |
link | SiteLinkStats | Link crawler summary stats, present when LINK_CRAWLER is enabled. |
attachments | [SiteAttachment!] | Screenshots and favicons captured for the site. |
createTime / updateTime | String! / String | ISO 8601 timestamps for creation / last update. |
Features
enum SiteFeatureTypes {
MONITOR_WHOIS # Enables WHOIS/domain registration monitoring.
MONITOR_SSL # Enables SSL/TLS certificate monitoring.
MONITOR_DNS # Enables DNS record monitoring.
LINK_CRAWLER # Enables the link crawler.
SITEMAP_CRAWLER # Enables sitemap discovery and crawling.
}Site Pillars
ssl, certificate, whois, dns, robotsTxt, and sitemap above share a common wrapper shape:
| Field | Type | Description |
|---|---|---|
createTime / updateTime | String! / String | ISO 8601 timestamps for creation / last update. |
hash | String | Content hash used internally to detect changes between checks. |
checkTime | String | ISO 8601 timestamp of the last check attempt, successful or not. |
syncTime | String | ISO 8601 timestamp of the last successful check, whether or not anything changed. |
mainPage does not share this shape — see SiteMainPage below. link is a separate, lightweight stats object — see SiteLinkStats below.
SiteSSL
Adds to the common shape above:
| Field | Type | Description |
|---|---|---|
payload | SiteSSLPayload | |
error | SiteSslError | Set if the SSL check itself failed. |
SiteCertificate
Adds to the common shape above:
| Field | Type | Description |
|---|---|---|
payload | [SiteCertificateRecord!] | Same shape as findSiteCertificate's response items above. |
error | SiteCertificateError | Set if the certificate check itself failed. |
SiteWhois
Adds to the common shape above:
| Field | Type | Description |
|---|---|---|
payload | SiteWhoisPayload | |
error | SiteWhoisError | Set if the WHOIS lookup itself failed. |
SiteDNS
Adds to the common shape above:
| Field | Type | Description |
|---|---|---|
payload | SiteDnsPayload | See below. |
error | SiteDnsError | Set if the DNS lookup itself failed. |
SiteDnsPayload
| Field | Type | Description |
|---|---|---|
records | [SiteDnsRecord!] | Raw DNS records — { key: String!, values: [String!]!, ttl: Int! }. |
spf | SiteDnsSpf | SPF record — { payload: [KeyValues!], error: SiteDnsRecordError }. |
dmarc | SiteDnsDmarc | DMARC record — { payload: [KeyValue!], error: SiteDnsRecordError, source: DmarcSource }. source is ROOT or SUBDOMAIN, depending on whether the record was found on the root domain or the checked subdomain. |
bimi | SiteDnsBimi | BIMI record — { payload: SiteDnsBimiPayload, error: SiteDnsRecordError }. |
tlsRpt | SiteDnsTlsRpt | TLS-RPT record — { payload: SiteDnsTlsRptPayload, error: SiteDnsRecordError }. |
mtaSts | SiteDnsMtaSts | MTA-STS record — { payload: SiteDnsMtaStsPayload, error: SiteDnsRecordError }. |
ptr | [KeyValues!] | PTR (reverse DNS) records. |
dnssec | DnsSecStatus | SECURE, BOGUS, INSECURE, or INDETERMINATE. |
IPv4 / IPv6 | Boolean | Whether the domain resolves over each protocol. |
source | String! | The DNS server the lookup was performed against. |
server | [String!]! | Nameservers found for the domain. |
SiteDnsRecordError is the shared { code: DnsErrorCode!, message: String! } shape used by each derived-record error field above — see Error Codes: DNS.
KeyValues (plural) — used for ptr and the SPF/BIMI raw payloads: { key: String, values: [String!]!, payload: [KeyValues!] }, allowing nested key/value groups. Distinct from KeyValue (singular value).
SiteDnsBimiPayload — { value: String, version: String, logoUrl: String, authorityUrl: String }.
SiteDnsTlsRptPayload — { value: String, version: String, rua: String }.
SiteDnsMtaStsPayload — { value: String, version: String, id: String }.
SiteRobotsTxt
Adds to the common shape above:
| Field | Type | Description |
|---|---|---|
payload | SiteRobotsTxtPayload! | A union — see below. There is no separate error field; a fetch/parse failure is reported as the SiteRobotsTxtError member of the union itself. |
SiteRobotsTxtPayload is a union of:
| Type | Fields | Description |
|---|---|---|
SiteRobotsTxtValid | content: String!, messages: [SiteRobotsTxtMessage!]! | robots.txt was found and parsed without issues. |
SiteRobotsTxtInvalid | content: String, messages: [SiteRobotsTxtMessage!]! | robots.txt was found but has parsing issues — messages explains what. |
SiteRobotsTxtError | code: RobotsTxtErrorCode!, message: String! | robots.txt couldn't be fetched. |
SiteRobotsTxtMessage is itself a union of LineMessage ({ line: Int!, message: String! }) and Message ({ message: String! }) — LineMessage is used when an issue is tied to a specific line.
SiteSitemap
Adds to the common shape above. This is the summary object at sitemap itself — distinct from SiteSitemapFile / SiteSitemapLink, the findSiteSitemap / findSiteSitemapLink response items documented under Sitemap below.
| Field | Type | Description |
|---|---|---|
status | SitemapStatus! | PROCESSING, COMPLETE, or FAILED. |
orchestrationId | String | Internal identifier for the current discovery run, if one is in progress. |
error | SiteSitemapDiscoveryError | Set if sitemap discovery itself failed. There is no payload field here; use findSiteSitemap / findSiteSitemapLink to read discovered sitemap data. |
SiteMainPage
Does not share the common wrapper shape above — it's the site's most recent snapshot crawl of its homepage, with no hash / checkTime / syncTime.
| Field | Type | Description |
|---|---|---|
url | String | The final URL crawled, after redirects. |
status | SiteLinkStatus | Crawl status. |
crawlTime | String | ISO 8601 timestamp of the crawl. |
page | MainWebpage | The fetched page's response data — see below. |
httpSupport / httpsSupport | Boolean | Whether the site responds over each protocol. |
httpsRedirection | Boolean | Whether HTTP requests redirect to HTTPS. |
http2Support / http3Support | Boolean | Whether the site negotiates each HTTP version. |
paths | [PagePath!] | Additional well-known paths checked (e.g. /robots.txt, /sitemap.xml) — { url: String!, page: Webpage }, using the generic Webpage shape. |
error | SiteMainPageError | Set if the crawl itself failed — { code: MainPageErrorCode!, message: String!, payload: [KeyValue!] }. |
MainWebpage
Same fields as Webpage, plus:
| Field | Type | Description |
|---|---|---|
timer | WebpageTimer | Request timing breakdown, in seconds — { dnsResolution, connect, appConnect, preTransfer, startTransfer, total: Float! }. |
browser | BrowserPayload | Headless-browser rendering data, if a browser-rendered check was performed — see below. |
BrowserPayload
| Field | Type | Description |
|---|---|---|
viewport | BrowserViewport! | { width: Int!, height: Int!, devicePixelRatio: Float! }. |
pageHeight | Int! | Rendered page height in pixels. |
cookies | [HttpCookie!] | Cookies set during rendering — { name, value, domain, path: String!, expires: Int!, httpOnly, secure: Boolean!, sameSite: HttpCookieSameSiteType! }. sameSite is STRICT, LAX, NONE, or UNDEFINED. |
jsErrors | [String!] | JavaScript errors thrown during rendering. |
consoleLogs | [BrowserConsoleLog!] | Browser console output — { type: BrowserConsoleLogType!, text: String! }. |
localStorage / sessionStorage | [KeyValue!] | Captured storage contents. |
SiteLinkStats
link — a lightweight link-crawler summary. Distinct from SiteLink (individual crawled links, returned by findSiteLink — see Links below).
| Field | Type | Description |
|---|---|---|
count | Int! | Number of links crawled for this site. |
limit | Int! | Max links the link crawler will follow for this site, per your plan. |
SiteAttachment
attachments — screenshots and favicons captured for the site.
| Field | Type | Description |
|---|---|---|
createTime | String! | ISO 8601 timestamp when this attachment was captured. |
type | SiteAttachmentType! | SCREENSHOT or FAVICON. |
url | String! | URL of the captured asset. |
Queries
getSite
Look up a single monitored site by domain.
query {
getSite(domain: "acme.io") {
id
domain
features
}
}Parameters
| Name | Type | Description |
|---|---|---|
domain | String! | The monitored domain. |
Response: a Site (see Fields above), or null if not found.
findSite
Paginated, filterable list of your monitored sites.
query {
findSite(query: "isFavorite = TRUE", limit: 25) {
pagination {
count
}
items {
domain
features
}
}
}Parameters
| Name | Type | Description |
|---|---|---|
query | String | Filter expression — see SiteFilterableFields. |
page | Int | Page number, defaults to 1. |
limit | Int | Page size, defaults to 10, capped at 100. |
sort | [Sort!] | Sort order, defaults to newest first. |
Response: a SiteList — pagination + items: [Site!]!. See Pagination & Sorting.
analyzeSite
Returns the domain's latest site analysis results.
query {
analyzeSite(domain: "acme.io") {
status
summary {
score
}
}
}Parameters
| Name | Type | Description |
|---|---|---|
domain | String! | The domain to analyze. |
Response: an AnalyzeResult — see Types: Analysis for the nested AnalyzeSummary/SubAnalyzeResult shapes.
| Field | Type |
|---|---|
summary | AnalyzeSummary! |
header | SubAnalyzeResult! |
common | SubAnalyzeResult! |
whois | SubAnalyzeResult! |
dns | SubAnalyzeResult! |
ssl | SubAnalyzeResult! |
status | SiteAnalyzeStatus! |
Mutations
createSite
Adds a new domain to monitor.
mutation {
createSite(
domain: "acme.io"
features: [MONITOR_WHOIS, MONITOR_SSL, MONITOR_DNS, LINK_CRAWLER]
notification: { all: true }
) {
id
domain
features
}
}Parameters
| Name | Type | Description |
|---|---|---|
domain | String! | The domain to start monitoring. |
features | [SiteFeatureTypes!] | Product areas to enable. |
notification | SiteNotificationConfigInput | Notification settings — { all: Boolean! = true }. |
Response: the created Site.
updateSite
Updates a site's enabled features and/or notification settings. Passing features replaces the full set of enabled features.
Parameters
| Name | Type | Description |
|---|---|---|
domain | String! | The site's domain. |
features | [SiteFeatureTypes!] | Product areas to enable. |
notification | SiteNotificationConfigInput | Notification settings — { all: Boolean! = true }. |
Response: the updated Site.
deleteSite
Stops monitoring a domain and removes its data.
mutation {
deleteSite(domain: "acme.io") {
affectedRecords
}
}Parameters
| Name | Type | Description |
|---|---|---|
domain | String! | The domain to stop monitoring. |
Response: a DeleteResult — { affectedRecords: Int! }.
Filterable Fields
SiteFilterableFields — see Discovering Filterable Fields for how to use this with findSite.
enum SiteFilterableFields {
ID
USER_ID
IS_FAVORITE
DOMAIN
ROOT_DOMAIN
FEATURES
CREATE_TIME
UPDATE_TIME
}Certificates
findSiteCertificate
Filterable list of a domain's certificate history. Not paginated or sortable.
query {
findSiteCertificate(domain: "acme.io") {
items {
commonName
notBefore
notAfter
issuerName
}
}
}Parameters
| Name | Type | Description |
|---|---|---|
domain | String! | The monitored domain. |
query | String | Filter expression — see SiteCertificateFilterableFields. |
Response: a SiteCertificateList — items: [SiteCertificateRecord!]!:
| Field | Type | Description |
|---|---|---|
id | ID! | Unique identifier for this certificate record. |
notAfter | String! | ISO 8601 expiration date of the certificate. |
notBefore | String! | ISO 8601 issuance date of the certificate. |
issuerName | String! | Name of the certificate issuer. |
issuer | X509Name | Structured issuer distinguished name. |
commonName | String | The certificate's common name (CN). |
identityName | [String!]! | Subject Alternative Names (SANs) covered by this certificate. |
serialNumber | String! | The certificate's serial number. |
createTime | String! | ISO 8601 timestamp when this record was observed. |
isPrecert | Boolean! | Whether this is a precertificate (Certificate Transparency). |
getSiteCertificateIdentities
Distinct identity names (SANs) seen across a domain's certificate history.
query {
getSiteCertificateIdentities(domain: "acme.io")
}Parameters
| Name | Type | Description |
|---|---|---|
domain | String! | The monitored domain. |
Response: [String!]!.
Filterable fields: SiteCertificateFilterableFields — COMMON_NAME, NOT_BEFORE, NOT_AFTER, IDENTITY_NAME, CHECK_TIME, SYNC_TIME, CREATE_TIME, UPDATE_TIME.
Errors: see Error Codes: Certificates.
Sitemap
findSiteSitemap
Paginated, filterable list of sitemap files discovered for a domain.
query {
findSiteSitemap(domain: "acme.io", limit: 25) {
items {
url
type
status
linkCount
}
}
}Parameters
| Name | Type | Description |
|---|---|---|
domain | String! | The monitored domain. |
query | String | Filter expression — see SiteSitemapFilterableFields. |
page | Int | Page number, defaults to 1. |
limit | Int | Page size, defaults to 10, capped at 100. |
sort | [Sort!] | Sort order, defaults to newest first. |
Response: a SiteSitemapFileList — items: [SiteSitemapFile!]!:
| Field | Type | Description |
|---|---|---|
id | ID! | Unique identifier for this sitemap file. |
url | String! | URL of the sitemap file. |
type | SitemapFileType | The sitemap file's type. |
parentUrl | String | URL of the parent sitemap index, if this file was referenced from one. |
finalUrl | String | URL the sitemap file was actually fetched from, after redirects. |
format | SitemapFormat | The sitemap file's format. |
status | CrawlStatus | Crawl status for this file. |
linkCount | Int | Number of URL entries found in this sitemap file. |
page | HttpResponse | Raw HTTP response info from fetching the sitemap file. |
error | SiteSitemapEntryError | Set if this file failed to fetch/parse, was rejected as out-of-scope, or was truncated by a file/link cap — can be set alongside a CRAWL_COMPLETE status. Shape: { code: SitemapErrorCode!, message: String!, payload: [KeyValue!] }. |
hash | String | Content hash used internally to detect changes between checks. |
checkTime | String | ISO 8601 timestamp of the last check attempt, successful or not. |
syncTime | String | ISO 8601 timestamp of the last successful check, whether or not anything changed. |
createTime / updateTime | String! / String | ISO 8601 timestamps for creation / last update. |
findSiteSitemapLink
Paginated, filterable list of individual URL entries within a domain's sitemaps.
query {
findSiteSitemapLink(domain: "acme.io", limit: 25) {
items {
sitemapUrl
linkCount
}
}
}Parameters
| Name | Type | Description |
|---|---|---|
domain | String! | The monitored domain. |
query | String | Filter expression — see SiteSitemapLinkFilterableFields. |
page | Int | Page number, defaults to 1. |
limit | Int | Page size, defaults to 10, capped at 100. |
sort | [Sort!] | Sort order, defaults to newest first. |
Response: a SiteSitemapLinkList — items: [SiteSitemapLink!]!:
| Field | Type | Description |
|---|---|---|
id | ID! | Unique identifier for this sitemap file's link entry. |
sitemapUrl | String! | URL of the sitemap file this entry came from. |
linkCount | Int! | Number of URL entries in this sitemap file. |
links | [SiteSitemapUrlEntry!]! | The individual URL entries — see below. |
SiteSitemapUrlEntry
| Field | Type | Description |
|---|---|---|
url | String! | The URL listed in the sitemap. |
lastmod | String | The entry's declared lastmod value. |
changefreq | String | The entry's declared changefreq value. |
priority | Float | The entry's declared priority value. |
error | SiteSitemapEntryError | Set if this entry falls outside the site's sitemap scope. Shape: { code: SitemapErrorCode!, message: String!, payload: [KeyValue!] }. |
Filterable fields: SiteSitemapFilterableFields (for findSiteSitemap) — URL, FINAL_URL, TYPE, STATUS, PARENT_URL, FORMAT, LINK_COUNT, CHECK_TIME, SYNC_TIME, CREATE_TIME, UPDATE_TIME, DOMAIN. SiteSitemapLinkFilterableFields (for findSiteSitemapLink) — SITEMAP_URL, URL, DOMAIN.
Errors: see Error Codes: Sitemap.
Links
findSiteLink
Paginated, filterable list of crawled links across your sites. Filter by domain in the query string to scope to one site.
query {
findSiteLink(query: "domain = acme.io AND status = CRAWL_COMPLETE", limit: 25) {
items {
url
status
mainPage
}
}
}Parameters
| Name | Type | Description |
|---|---|---|
query | String | Filter expression — see SiteLinkFilterableFields. |
page | Int | Page number, defaults to 1. |
limit | Int | Page size, defaults to 10, capped at 100. |
sort | [Sort!] | Sort order, defaults to newest first. |
Response: a SiteLinkList — items: [SiteLink!]!:
| Field | Type | Description |
|---|---|---|
id | ID! | Unique identifier for this crawled link. |
url | String! | The crawled URL. |
mainPage | Boolean! | Whether this is the site's main page. |
status | SiteLinkStatus! | Crawl status for this link. |
severity | Int! | Numeric severity/priority score, mainly useful for sorting and the SEVERITY filter — higher generally means more urgent. Derived internally from status. |
page | Webpage | The fetched page's response data, if the crawl succeeded. |
crawlTime | String | ISO 8601 timestamp of the last crawl attempt, if any. |
links | [SiteSubLink!] | Links found on this page, if it was crawled. |
error | SiteLinkError | Set if the crawl couldn't complete. |
systemTags | [SiteLinkSystemTag!]! | System-assigned status tags, matching what siteLinkSummary groups by. |
createTime / updateTime | String! / String | ISO 8601 timestamps for creation / last update. |
siteLinkSummary
Counts of crawled links grouped by system tag (OK, REDIRECT, NOT_FOUND, etc.).
query {
siteLinkSummary(query: "domain = acme.io") {
total
items {
tag
count
}
}
}Parameters
| Name | Type | Description |
|---|---|---|
query | String | Filter expression — see SiteLinkFilterableFields. |
Response: a SiteLinkSummary:
| Field | Type | Description |
|---|---|---|
total | Int! | Total number of matching links across all tags. |
items | [SiteLinkSummaryItem!]! | Per-tag counts — each item is { tag: SiteLinkSystemTag!, count: Int! }. |
siteLinkBacklinks
Paginated list of crawled links pointing to a given URL.
query {
siteLinkBacklinks(url: "https://acme.io/pricing", limit: 25) {
items {
url
status
}
}
}Parameters
| Name | Type | Description |
|---|---|---|
url | String! | The target URL to find backlinks for. |
query | String | Filter expression — see SiteLinkFilterableFields. |
page | Int | Page number, defaults to 1. |
limit | Int | Page size, defaults to 10, capped at 100. |
sort | [Sort!] | Sort order, defaults to newest first. |
Response: a SiteLinkList — same shape as findSiteLink above.
Filterable fields: SiteLinkFilterableFields — ID, STATUS, URL, PAGE_TITLE, PAGE_STATUS_CODE, PAGE_RESPONSE_TIME, PAGE_CONTENT_SIZE, MAIN_PAGE, CRAWL_TIME, CREATE_TIME, UPDATE_TIME, DOMAIN, SEVERITY, SYSTEM_TAGS.
Errors: see Error Codes: Links.