schema { query: Query mutation: Mutation } """ Controls the rate of traffic. """ directive @rateLimit( """ Number of seconds before limit is reset. """ duration: Int! = 60 """ Number of occurrences allowed over duration. """ limit: Int! = 6 ) on FIELD_DEFINITION | OBJECT type APICallbackHeader { key: String! value: String! } input APICallbackHeaderInput { key: String! value: String! } input AbortBuildInput { buildId: ObjectID! } type AbortBuildPayload { build: Build! } input AcceptHealthScoreTestResultsSuggestedThresholdInput { healthScoreTestResultIds: [ObjectID!]! } type AcceptHealthScoreTestResultsSuggestedThresholdPayload { healthScoreTestResults: [HealthScoreTestResult!]! } input AcceptSuggestedThresholdInput { testResultIds: [ObjectID!]! } type AccessibilityIssueSolutionSuggestion { createdAt: DateTime! id: ObjectID! issueDigest: String! rawID: String! suggestedSolution: String! updatedAt: DateTime! } type Account { accountManagers: [String!]! accountSettings: [AccountSetting!]! accountSsoClients( after: String before: String """ Filtering options for AccountSSOClients returned from the connection. """ filter: AccountSSOClientConnectionFilterInput first: Int = 15 last: Int """ Ordering options for AccountSSOClients returned from the connection. """ orderBy: [AccountSSOClientOrder!] ): AccountSSOClientConnection accountUsers( after: String before: String """ Filtering options for AccountUsers returned from the connection. """ filter: AccountUserConnectionFilterInput first: Int = 15 last: Int ): AccountUserConnection active: Boolean! addressCity: String addressZip: String aiFeaturesEnabled: Boolean! """ Number of active (non-paused) AI Visibility prompts across all of the account's projects: what `aiVisibilityPromptsLimit` is enforced against. """ aiVisibilityActivePromptsCount: Int! """ Whether this free-scan account can start its one-time seven-day conversion trial. Checkout rechecks eligibility. """ aiVisibilityConversionTrialEligible: Boolean! """ Whether this account originated from a free AI Visibility scan. Its verified owner can read that report without a subscription. """ aiVisibilityFreeScan: Boolean! """ Maximum number of active AI Visibility prompts a new project on this account could hold, for the schedule cadence it would be created with: the same number `AiVisibilityProject.effectivePromptsLimit` reports, for a project that does not exist yet. It is the lower of the account's prompts-per-project limit, the limit derived from its prompt runs limit, enabled AI provider addons and the cadence, and — when the account has an account-wide limit (`aiVisibilityPromptsLimit`) — the budget its existing projects have left unused. Read it when sizing project setup, so topic and prompt generation asks for a number the project can actually keep. Null when no limit is configured, 0 when provider addons are missing or the account budget is already used up. """ aiVisibilityNewProjectPromptsLimit( """ Schedule cadence the new project would be created with. Defaults to the creation default. """ scheduleCadence: AiVisibilityScheduleCadence! = Daily ): Int """ Number of AI Visibility projects on the account: what `aiVisibilityProjectsLimit` is enforced against. Deleted projects are excluded; 0 before the account's first project is created. """ aiVisibilityProjectsCount: Int! """ Maximum number of AI Visibility projects the account may hold, from its `ai_visibility_projects` setting: the limit `createAiVisibilityProject` enforces against `aiVisibilityProjectsCount`. Gate a "create project" action on `aiVisibilityProjectsLimit == null || aiVisibilityProjectsCount < aiVisibilityProjectsLimit` rather than on the setting, so the client and the mutation cannot disagree. Null when the account has no projects limit, which the mutation treats as unlimited — comparing a null limit numerically would disable creation on exactly the accounts that have no cap. """ aiVisibilityProjectsLimit: Int """ Maximum number of active (non-paused) AI Visibility prompts allowed across all of the account's projects combined, from the account's `ai_visibility_prompts` setting. Self-serve plans sell one prompt budget shared by every project, so `aiVisibilityPromptsLimit - aiVisibilityActivePromptsCount` is how many prompts can still be added anywhere on the account, on top of each project's own `effectivePromptsLimit`. Null when the account has no account-wide limit and only the per-project limit applies. """ aiVisibilityPromptsLimit: Int apiCallbackHeaders: [APICallbackHeader!] apiCallbackUrl: String availableAiVisibilityCredits: Float! availableCredits(creditAllocationType: CreditAllocationType): Float! availableGlobalCustomMetricContainers( after: String before: String """ Filtering options for CustomMetricContainers returned from the connection. """ filter: CustomMetricContainerConnectionFilterInput first: Int = 15 last: Int """ Ordering options for CustomMetricContainers returned from the connection. """ orderBy: [CustomMetricContainerOrder!] ): CustomMetricContainerConnection! buildSchedules( after: String before: String """ Filtering options for BuildSchedules returned from the connection. """ filter: BuildScheduleConnectionFilterInput first: Int = 15 last: Int """ Ordering options for BuildSchedules returned from the connection. """ orderBy: [BuildScheduleOrder!] ): BuildScheduleConnection! contractStartDate: DateTime contractTerminationDate: DateTime country: String crawlRetentionMonths: Int! crawlerIpAddresses: [String!]! createdAt: DateTime! creditAllocations( after: String before: String """ Filtering options for CreditAllocations returned from the connection. """ filter: CreditAllocationConnectionFilterInput first: Int = 15 last: Int """ Ordering options for CreditAllocations returned from the connection. """ orderBy: [CreditAllocationOrder!] ): CreditAllocationConnection creditReportExports( after: String before: String """ Filtering options for CreditReportExports returned from the connection. """ filter: CreditReportExportConnectionFilterInput first: Int = 15 last: Int """ Ordering options for CreditReportExports returned from the connection. """ orderBy: [CreditReportExportOrder!] ): CreditReportExportConnection creditReports( after: String before: String """ Filtering options for CreditReports returned from the connection. """ filter: CreditReportConnectionFilterInput first: Int = 15 last: Int """ Ordering options for CreditReports returned from the connection. """ orderBy: [CreditReportOrder!] ): CreditReportConnection customDashboardCollections( after: String before: String """ Filtering options for CustomDashboardCollections returned from the connection. """ filter: CustomDashboardCollectionConnectionFilterInput first: Int = 15 last: Int """ Ordering options for CustomDashboardCollections returned from the connection. """ orderBy: [CustomDashboardCollectionOrder!] ): CustomDashboardCollectionConnection! customDashboardCollectionsViewCount: Int! customDashboardViews( after: String before: String """ Filtering options for CustomDashboardViews returned from the connection. """ filter: CustomDashboardViewConnectionFilterInput first: Int = 15 last: Int """ Ordering options for CustomDashboardViews returned from the connection. """ orderBy: [CustomDashboardViewOrder!] ): CustomDashboardViewConnection customDashboards( after: String before: String """ Filtering options for CustomDashboards returned from the connection. """ filter: CustomDashboardConnectionFilterInput first: Int = 15 last: Int """ Ordering options for CustomDashboards returned from the connection. """ orderBy: [CustomDashboardOrder!] ): CustomDashboardConnection! customHeaderColor: String customLogo: String customMenuColor: String customMetricContainerGenerations( after: String before: String """ Filtering options for CustomMetricContainerGenerations returned from the connection. """ filter: CustomMetricContainerGenerationConnectionFilterInput first: Int = 15 last: Int """ Ordering options for CustomMetricContainerGenerations returned from the connection. """ orderBy: [CustomMetricContainerGenerationOrder!] ): CustomMetricContainerGenerationConnection! customMetricContainers( after: String before: String """ Filtering options for CustomMetricContainers returned from the connection. """ filter: CustomMetricContainerConnectionFilterInput first: Int = 15 last: Int """ Ordering options for CustomMetricContainers returned from the connection. """ orderBy: [CustomMetricContainerOrder!] ): CustomMetricContainerConnection! customMetricUploadContainers( after: String before: String """ Filtering options for CustomMetricUploadContainers returned from the connection. """ filter: CustomMetricUploadContainerConnectionFilterInput first: Int = 15 last: Int """ Ordering options for CustomMetricUploadContainers returned from the connection. """ orderBy: [CustomMetricUploadContainerOrder!] ): CustomMetricUploadContainerConnection! customProxy: String customViews( after: String before: String """ Filtering options for CustomViews returned from the connection. """ filter: CustomViewConnectionFilterInput first: Int = 15 last: Int """ Ordering options for CustomViews returned from the connection. """ orderBy: [CustomViewOrder!] ): CustomViewConnection disableUpselling: Boolean! featureFlag(flagName: String!): FeatureFlag featureFlags: [FeatureFlag!]! id: ObjectID! jiraAuthentications(after: String, before: String, first: Int = 15, last: Int): JiraAuthenticationConnection! legacyTasks( after: String before: String """ Filtering options for LegacyTasks returned from the connection. """ filter: LegacyTaskConnectionFilterInput first: Int = 15 last: Int """ Ordering options for LegacyTasks returned from the connection. """ orderBy: [LegacyTaskOrder!] ): LegacyTaskConnection! limitLevelsMax: Int! limitPagesMax: Int! locations: [Location!]! logManagerConnections( after: String before: String """ Filtering options for LogManagerConnections returned from the connection. """ filter: LogManagerConnectionConnectionFilterInput first: Int = 15 last: Int """ Ordering options for LogManagerConnections returned from the connection. """ orderBy: [LogManagerConnectionOrder!] ): LogManagerConnectionConnection! maxActiveLegacyTasksPerProject: Int! """ Maximum crawl rate that can be set for a Project or Test Suite. """ maxCrawlRate: Int! maxCrawlsPerProject: Int! maxCustomReportsPerProject: Int! """ Maximum sum of all CustomViews in the Account's CustomDashboardCollections. """ maxDashboardCollectionViews: Int! maxGoogleSearchConsolePropertiesPerProject: Int! maxLegacyTasksPerProject: Int! """ Maximum total of Tests that can be created for Projects in the Account. """ maxProjectTests: Int! maxReportTemplateOverridesPerProject: Int! maxSearchQueriesLimitPerProperty: Int! """ Maximum total of restricted filter predicates allowed in a Segment filter: arrayContainsLike, arrayNotContainsLike, endsWith, contains, notContains, matchesRegex, notMatchesRegex. """ maxSegmentRestrictedFilterPredicates: Int! maxSegmentsPerProject: Int! """ Maximum number of IP allowlist ranges per service account owned by this Account. """ maxServiceAccountIpRanges: Int! """ Maximum number of SSO IP allowlist ranges per SSO client owned by this Account. """ maxSsoIpRanges: Int! maximumRenderTimeout: Int! minSearchQueriesMinClicks: Int! monitorHealthScoreNotifications( after: String before: String """ Filtering options for HealthScoreTestResults returned from the connection. """ filter: HealthScoreTestResultConnectionFilterInput first: Int = 15 last: Int projectIds: [ObjectID!] withUpToDateTestRule: Boolean ): HealthScoreTestResultConnection! monitorNotifications( after: String before: String """ Filtering options for TestResults returned from the connection. """ filter: TestResultConnectionFilterInput first: Int = 15 last: Int projectIds: [ObjectID!] withUpToDateTestRule: Boolean ): TestResultConnection! monitorProjects( after: String before: String """ Filtering options for Projects returned from the connection. """ filter: ProjectConnectionFilterInput first: Int = 15 last: Int """ Ordering options for Projects returned from the connection. """ orderBy: [ProjectOrder!] ): ProjectConnection! name: String notLinkedTestSuites( after: String before: String """ Filtering options for TestSuites returned from the connection. """ filter: TestSuiteConnectionFilterInput first: Int = 15 last: Int """ Ordering options for TestSuites returned from the connection. """ orderBy: [TestSuiteOrder!] ): TestSuiteConnection packageAccount: PackageAccount packagePlan: String parentTestSuites( after: String before: String """ Filtering options for TestSuites returned from the connection. """ filter: TestSuiteConnectionFilterInput first: Int = 15 last: Int """ Ordering options for TestSuites returned from the connection. """ orderBy: [TestSuiteOrder!] ): TestSuiteConnection phone: String primaryAccountPackage: AccountPackage project(id: ObjectID!): Project projectHealthScoreTestsTotalCount: Int! projectTestsTotalCount: Int! projects( after: String before: String crawlTypeCodes: [CrawlType!] crawlTypeCodesExcluded: [CrawlType!] """ Filtering options for Projects returned from the connection. """ filter: ProjectConnectionFilterInput first: Int = 15 includeTestSuites: Boolean last: Int """ Ordering options for Projects returned from the connection. """ orderBy: [ProjectOrder!] """ Filter projects by account tag ids """ tagIds: [ObjectID!] ): ProjectConnection! rawID: String! reportTemplates( after: String before: String """ Filtering options for ReportTemplates returned from the connection. """ filter: ReportTemplateConnectionFilterInput first: Int = 15 last: Int """ Ordering options for ReportTemplates returned from the connection. """ orderBy: [ReportTemplateOrder!] ): ReportTemplateConnection! selfServeAccountSubscription: SelfServeAccountSubscription selfServeSubscriptionState: SelfServeSubscriptionState! semanticRelevanceLimitPagesMax: Int! serviceAccounts: [ServiceAccount!]! ssoClient: SSOClient ssoGroupRoleMappings( after: String before: String """ Filtering options for AccountSsoGroupRoleMappings returned from the connection. """ filter: AccountSsoGroupRoleMappingConnectionFilterInput first: Int = 15 last: Int """ Ordering options for AccountSsoGroupRoleMappings returned from the connection. """ orderBy: [AccountSsoGroupRoleMappingOrder!] ): AccountSsoGroupRoleMappingConnection stripeEventProcessedAt: DateTime subscription: AccountSubscription taggedTaskReportDownloadRowsLimit: Int! tags( after: String before: String """ Filtering options for AccountTags returned from the connection. """ filter: AccountTagConnectionFilterInput first: Int = 15 last: Int """ Ordering options for AccountTags returned from the connection. """ orderBy: [AccountTagOrder!] ): AccountTagConnection! testSuites( after: String before: String """ Filtering options for TestSuites returned from the connection. """ filter: TestSuiteConnectionFilterInput first: Int = 15 last: Int """ Ordering options for TestSuites returned from the connection. """ orderBy: [TestSuiteOrder!] """ Filter test suites by account tag ids """ tagIds: [ObjectID!] ): TestSuiteConnection timezone: String unscheduledTestSuites( after: String before: String """ Filtering options for TestSuites returned from the connection. """ filter: TestSuiteConnectionFilterInput first: Int = 15 last: Int """ Ordering options for TestSuites returned from the connection. """ orderBy: [TestSuiteOrder!] ): TestSuiteConnection updatedAt: DateTime! userAgentSuffix: String! userInvites( after: String before: String """ Filtering options for UserInvites returned from the connection. """ filter: UserInviteConnectionFilterInput first: Int = 15 last: Int """ Ordering options for UserInvites returned from the connection. """ orderBy: [UserInviteOrder!] ): UserInviteConnection """ Number of users connected to the account: what `usersLimit` is checked against. Pending user invites are not counted, so seats promised to open invites still read as free, and it can exceed `usersLimit` on accounts whose users arrive through SSO login provisioning. """ usersCount: Int! """ Maximum number of users that may be connected to the account, from its `users` setting: the limit every graph-api path that connects a user to an account checks against `usersCount`. Gate an "invite user" action on `usersCount < usersLimit` rather than on the setting, so the client and the mutation cannot disagree. 0 when the account's package sells no seats — a missing setting means no seats, not unlimited ones. SSO login provisioning happens in auth-api and does not check the setting, so on an SSO account `usersCount` can exceed `usersLimit`; treat the difference as remaining seats only when it is positive. """ usersLimit: Int! webBotAuthSignatures(after: String, before: String, first: Int = 15, last: Int): WebBotAuthSignatureConnection! } type AccountConnection { """ A list of edges. """ edges: [AccountEdge!]! """ A list of nodes. """ nodes: [Account!]! """ Information to aid in pagination. """ pageInfo: PageInfo! """ Identifies the total count of Accounts in the connection. """ totalCount: Int! } input AccountConnectionFilterInput { """ Groups each filter object using AND """ _and: [AccountConnectionFilterInput!] """ Groups each filter object using AND, wrapped inside NOT """ _not: [AccountConnectionFilterInput!] """ Groups each filter object using OR """ _or: [AccountConnectionFilterInput!] active: ConnectionBooleanFilterInput aiFeaturesEnabled: ConnectionBooleanFilterInput country: ConnectionStringFilterInput crawlRetentionMonths: ConnectionIntFilterInput createdAt: ConnectionDateFilterInput customLogo: ConnectionStringFilterInput disableUpselling: ConnectionBooleanFilterInput maxActiveLegacyTasksPerProject: ConnectionIntFilterInput maxCrawlsPerProject: ConnectionIntFilterInput maxCustomReportsPerProject: ConnectionIntFilterInput maxGoogleSearchConsolePropertiesPerProject: ConnectionIntFilterInput maxLegacyTasksPerProject: ConnectionIntFilterInput maxProjectTests: ConnectionIntFilterInput maxReportTemplateOverridesPerProject: ConnectionIntFilterInput maxSearchQueriesLimitPerProperty: ConnectionIntFilterInput maxSegmentRestrictedFilterPredicates: ConnectionIntFilterInput maxSegmentsPerProject: ConnectionIntFilterInput maximumRenderTimeout: ConnectionIntFilterInput minSearchQueriesMinClicks: ConnectionIntFilterInput name: ConnectionStringFilterInput packagePlan: ConnectionStringFilterInput semanticRelevanceLimitPagesMax: ConnectionIntFilterInput taggedTaskReportDownloadRowsLimit: ConnectionIntFilterInput updatedAt: ConnectionDateFilterInput userAgentSuffix: ConnectionStringFilterInput } type AccountEdge { """ A cursor to use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: Account! } type AccountNotificationSubscription { notificationType: AccountNotificationType! """ Whether the requesting user currently receives this notification type for the account. """ subscribed: Boolean! } """ An account-level notification type a user can subscribe to or unsubscribe from. """ enum AccountNotificationType { CreditBalanceWarnings WebBotAuthSignatureExpiring } input AccountOrder { """ The ordering direction. """ direction: OrderDirection! """ The field to order Accounts by. """ field: AccountOrderField! } enum AccountOrderField { active aiFeaturesEnabled createdAt id name packagePlan updatedAt } type AccountPackage { credits: BigInt! creditsAIVisibility: BigInt! creditsAIVisibilityAnthropic: BigInt! creditsAIVisibilityChatgptUi: BigInt! creditsAIVisibilityCopilotUi: BigInt! creditsAIVisibilityGeminiUi: BigInt! creditsAIVisibilityGoogle: BigInt! creditsAIVisibilityGoogleAiModeSerp: BigInt! creditsAIVisibilityGoogleAiOverviewSerp: BigInt! creditsAIVisibilityGrokUi: BigInt! creditsAIVisibilityOpenAI: BigInt! creditsAIVisibilityPerplexity: BigInt! creditsAIVisibilityPerplexityUi: BigInt! creditsAIVisibilityUi: BigInt! creditsAIVisibilityXai: BigInt! creditsAccessibility: BigInt! creditsContentEvals: BigInt! creditsSiteSpeed: BigInt! currency: Currency! packageType: AccountPackageType! } enum AccountPackageType { Archived PartnerSubscription Subscription Trial } type AccountSSOClient { accountId: Int! """ Apps a user provisioned through this SSO connection starts with. Copied onto the membership when it is created and never re-applied, so a later change here does not rewrite existing users and an admin's edit to a user survives their next login. Null means no default: the user lands unrestricted. """ defaultApps: [LumarApp!] defaultRoleCode: RoleCode groupAttributeName: String ssoClientAccountId: Int ssoClientId: String! } type AccountSSOClientConnection { """ A list of edges. """ edges: [AccountSSOClientEdge!]! """ A list of nodes. """ nodes: [AccountSSOClient!]! """ Information to aid in pagination. """ pageInfo: PageInfo! """ Identifies the total count of AccountSSOClients in the connection. """ totalCount: Int! } input AccountSSOClientConnectionFilterInput { """ Groups each filter object using AND """ _and: [AccountSSOClientConnectionFilterInput!] """ Groups each filter object using AND, wrapped inside NOT """ _not: [AccountSSOClientConnectionFilterInput!] """ Groups each filter object using OR """ _or: [AccountSSOClientConnectionFilterInput!] ssoClientId: ConnectionStringFilterInput } type AccountSSOClientEdge { """ A cursor to use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: AccountSSOClient! } input AccountSSOClientOrder { """ The ordering direction. """ direction: OrderDirection! """ The field to order AccountSSOClients by. """ field: AccountSSOClientOrderField! } enum AccountSSOClientOrderField { accountId ssoClientId } type AccountSetting { code: String! dataType: AccountSettingDataType! description: String limit: Int name: String! source: AccountSettingSource type: AccountSettingType! unit: String visible: Boolean } enum AccountSettingDataType { Boolean Number } enum AccountSettingSource { Manual Package } enum AccountSettingType { IntegrationAddons SubscriptionSettings } type AccountSsoGroupRoleMapping { createdAt: DateTime! id: ObjectID! rawID: String! role: Role! roleCode: RoleCode! ssoGroupName: String! updatedAt: DateTime! } type AccountSsoGroupRoleMappingConnection { """ A list of edges. """ edges: [AccountSsoGroupRoleMappingEdge!]! """ A list of nodes. """ nodes: [AccountSsoGroupRoleMapping!]! """ Information to aid in pagination. """ pageInfo: PageInfo! """ Identifies the total count of AccountSsoGroupRoleMappings in the connection. """ totalCount: Int! } input AccountSsoGroupRoleMappingConnectionFilterInput { """ Groups each filter object using AND """ _and: [AccountSsoGroupRoleMappingConnectionFilterInput!] """ Groups each filter object using AND, wrapped inside NOT """ _not: [AccountSsoGroupRoleMappingConnectionFilterInput!] """ Groups each filter object using OR """ _or: [AccountSsoGroupRoleMappingConnectionFilterInput!] createdAt: ConnectionDateFilterInput roleCode: ConnectionRoleCodeFilterInput ssoGroupName: ConnectionStringFilterInput updatedAt: ConnectionDateFilterInput } type AccountSsoGroupRoleMappingEdge { """ A cursor to use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: AccountSsoGroupRoleMapping! } input AccountSsoGroupRoleMappingOrder { """ The ordering direction. """ direction: OrderDirection! """ The field to order AccountSsoGroupRoleMappings by. """ field: AccountSsoGroupRoleMappingOrderField! } enum AccountSsoGroupRoleMappingOrderField { createdAt id roleCode ssoGroupName updatedAt } type AccountSubscription { accessibilityAvailable: Boolean! addonByIntegrationType(integrationType: String!): AccountSubscriptionAddon addons: [AccountSubscriptionAddon!]! aiVisibilityAvailable: Boolean! analyzeAvailable: Boolean! automateAvailable: Boolean! """ Apps this account's subscription entitles it to open. Combine with `AccountUser.apps` to work out what a given user can reach: an account user with no apps of their own can open all of these. """ availableApps: [LumarApp!]! billingAt: DateTime currentBillingPeriod: DateTimeRange! googleDataStudioAvailable: Boolean! impactAvailable: Boolean! jsRenderingAvailable: Boolean! kvStoreAvailable: Boolean! mcpServerAvailable: Boolean! monitorAvailable: Boolean! plan: AccountSubscriptionPlan! segmentationAvailable: Boolean! status: String! } type AccountSubscriptionAddon { code: String! description: String! integrationType: String name: String! prices: [AccountSubscriptionAddonPrice!]! settings: [AccountSetting!]! status: String type: AddonType! } type AccountSubscriptionAddonPrice { currency: Currency! price: Float! } type AccountSubscriptionPlan { addons: [AccountSubscriptionAddon!]! code: String! minCommitmentPeriod: Int! name: String! packageType: String! period: Int! prices: [AccountSubscriptionPlanPrice!]! settings: [AccountSetting!]! status: String } type AccountSubscriptionPlanPrice { currency: Currency! price: Float! } input AccountSubscriptionPlanSettingInput { code: String! limit: Int } type AccountTag { color: String! createdAt: DateTime! id: ObjectID! name: String! position: Int! rawID: String! updatedAt: DateTime! } type AccountTagConnection { """ A list of edges. """ edges: [AccountTagEdge!]! """ A list of nodes. """ nodes: [AccountTag!]! """ Information to aid in pagination. """ pageInfo: PageInfo! """ Identifies the total count of AccountTags in the connection. """ totalCount: Int! } input AccountTagConnectionFilterInput { """ Groups each filter object using AND """ _and: [AccountTagConnectionFilterInput!] """ Groups each filter object using AND, wrapped inside NOT """ _not: [AccountTagConnectionFilterInput!] """ Groups each filter object using OR """ _or: [AccountTagConnectionFilterInput!] color: ConnectionStringFilterInput createdAt: ConnectionDateFilterInput name: ConnectionStringFilterInput position: ConnectionIntFilterInput updatedAt: ConnectionDateFilterInput } type AccountTagEdge { """ A cursor to use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: AccountTag! } input AccountTagOrder { """ The ordering direction. """ direction: OrderDirection! """ The field to order AccountTags by. """ field: AccountTagOrderField! } enum AccountTagOrderField { color createdAt id name position updatedAt } type AccountUser { account: Account! """ Apps this user may open in the account, for clients to drive their app switcher and navigation from. An empty list means the user is unrestricted and can open any app the account itself is entitled to, not that the user is locked out of everything. Not an authorization boundary: the API still authorizes every request by role, account and subscription, and ignores this list. """ apps: [LumarApp!]! role: Role! roleCode: RoleCode! """ Tags restricting this member's projects. An empty list means all projects are visible. """ tags: [AccountTag!]! userEmail: String userEmailValidatedAt: DateTime userFirstName: String userId: ObjectID! userLastName: String userSsoClientId: String } type AccountUserConnection { """ A list of edges. """ edges: [AccountUserEdge!]! """ A list of nodes. """ nodes: [AccountUser!]! """ Information to aid in pagination. """ pageInfo: PageInfo! """ Identifies the total count of AccountUsers in the connection. """ totalCount: Int! } input AccountUserConnectionFilterInput { """ Groups each filter object using AND """ _and: [AccountUserConnectionFilterInput!] """ Groups each filter object using AND, wrapped inside NOT """ _not: [AccountUserConnectionFilterInput!] """ Groups each filter object using OR """ _or: [AccountUserConnectionFilterInput!] roleCode: ConnectionRoleCodeFilterInput } type AccountUserEdge { """ A cursor to use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: AccountUser! } input AddAccountUserInput { accountId: ObjectID! """ Apps this user may open in the account, which clients use to decide what to show them. Omit (or pass an empty list) to leave the user unrestricted, so they can open any app the account is entitled to. """ apps: [LumarApp!] roleCode: RoleCode! userEmail: String! } type AddAccountUserPayload { account: Account! } input AddCustomDashboardToCollectionInput { customDashboardCollectionId: ObjectID! customDashboardIds: [ObjectID!]! } input AddCustomSitemapsInput { projectId: ObjectID! sitemapUrls: [String!]! } type AddCustomSitemapsPayload { sitemaps: [Sitemap!]! } input AddCustomViewsToCollectionInput { addToCustomDashboards: Boolean customDashboardCollectionId: ObjectID! customViewInputs: [CustomViewInput!]! } type AddCustomViewsToCustomDashboardCollectionPayload { customViews: [CustomView!]! } input AddCustomViewsToCustomDashboardInput { customDashboardId: ObjectID! customViewIds: [ObjectID!]! } type AddCustomViewsToCustomDashboardPayload { customViews: [CustomView!]! } input AddSsoClientIpRangeInput { cidr: String! label: String ssoClientId: String! } type AddSsoClientIpRangePayload { ssoClientIpRange: SsoClientIpRange! } enum AddonType { IntegrationAddon ProjectAddon UrlAddon } type AdobeAnalyticsDimension { description: String """ The dimension ID, without the `variables/` prefix (e.g. `pageurl` instead of `variables/pageurl`). """ id: String! title: String! } type AdobeAnalyticsProjectReportSuite { adobeOauthServerToServerConnection: AdobeOauthServerToServerConnection! adobeOauthServerToServerConnectionId: Int! createdAt: DateTime! id: ObjectID! maxRows: Int minimumVisits: Int! numberOfDays: Int! perPage: Int project: Project! rawID: String! reportSuiteId: String! suiteName: String! updatedAt: DateTime! """ The Adobe Analytics dimension ID used to identify the page URL, without the `variables/` prefix (e.g. `pageurl` instead of `variables/pageurl`). """ urlDimensionId: String! } type AdobeAnalyticsProjectReportSuiteConnection { """ A list of edges. """ edges: [AdobeAnalyticsProjectReportSuiteEdge!]! """ A list of nodes. """ nodes: [AdobeAnalyticsProjectReportSuite!]! """ Information to aid in pagination. """ pageInfo: PageInfo! """ Identifies the total count of AdobeAnalyticsProjectReportSuites in the connection. """ totalCount: Int! } input AdobeAnalyticsProjectReportSuiteConnectionFilterInput { """ Groups each filter object using AND """ _and: [AdobeAnalyticsProjectReportSuiteConnectionFilterInput!] """ Groups each filter object using AND, wrapped inside NOT """ _not: [AdobeAnalyticsProjectReportSuiteConnectionFilterInput!] """ Groups each filter object using OR """ _or: [AdobeAnalyticsProjectReportSuiteConnectionFilterInput!] adobeOauthServerToServerConnectionId: ConnectionIntFilterInput createdAt: ConnectionDateFilterInput maxRows: ConnectionIntFilterInput minimumVisits: ConnectionIntFilterInput numberOfDays: ConnectionIntFilterInput perPage: ConnectionIntFilterInput reportSuiteId: ConnectionStringFilterInput suiteName: ConnectionStringFilterInput updatedAt: ConnectionDateFilterInput urlDimensionId: ConnectionStringFilterInput } type AdobeAnalyticsProjectReportSuiteEdge { """ A cursor to use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: AdobeAnalyticsProjectReportSuite! } input AdobeAnalyticsProjectReportSuiteOrder { """ The ordering direction. """ direction: OrderDirection! """ The field to order AdobeAnalyticsProjectReportSuites by. """ field: AdobeAnalyticsProjectReportSuiteOrderField! } enum AdobeAnalyticsProjectReportSuiteOrderField { adobeOauthServerToServerConnectionId createdAt maxRows minimumVisits numberOfDays perPage reportSuiteId suiteName updatedAt urlDimensionId } type AdobeAnalyticsReportSuite { reportSuiteId: String! suiteName: String! } type AdobeOauthServerToServerConnection { adobeAnalyticsProjectReportSuites( after: String before: String """ Filtering options for AdobeAnalyticsProjectReportSuites returned from the connection. """ filter: AdobeAnalyticsProjectReportSuiteConnectionFilterInput first: Int = 15 last: Int """ Ordering options for AdobeAnalyticsProjectReportSuites returned from the connection. """ orderBy: [AdobeAnalyticsProjectReportSuiteOrder!] ): AdobeAnalyticsProjectReportSuiteConnection! availableAdobeAnalyticsReportSuites: [AdobeAnalyticsReportSuite!]! clientId: String! createdAt: DateTime! globalCompanyId: String! id: ObjectID! isWorking: Boolean! rawID: String! secretLastFragment: String! updatedAt: DateTime! urlDimensionCandidates(reportSuiteId: String!): [AdobeAnalyticsDimension!]! } type AdobeOauthServerToServerConnectionConnection { """ A list of edges. """ edges: [AdobeOauthServerToServerConnectionEdge!]! """ A list of nodes. """ nodes: [AdobeOauthServerToServerConnection!]! """ Information to aid in pagination. """ pageInfo: PageInfo! """ Identifies the total count of AdobeOauthServerToServerConnections in the connection. """ totalCount: Int! } input AdobeOauthServerToServerConnectionConnectionFilterInput { """ Groups each filter object using AND """ _and: [AdobeOauthServerToServerConnectionConnectionFilterInput!] """ Groups each filter object using AND, wrapped inside NOT """ _not: [AdobeOauthServerToServerConnectionConnectionFilterInput!] """ Groups each filter object using OR """ _or: [AdobeOauthServerToServerConnectionConnectionFilterInput!] clientId: ConnectionStringFilterInput createdAt: ConnectionDateFilterInput globalCompanyId: ConnectionStringFilterInput updatedAt: ConnectionDateFilterInput } type AdobeOauthServerToServerConnectionEdge { """ A cursor to use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: AdobeOauthServerToServerConnection! } input AdobeOauthServerToServerConnectionOrder { """ The ordering direction. """ direction: OrderDirection! """ The field to order AdobeOauthServerToServerConnections by. """ field: AdobeOauthServerToServerConnectionOrderField! } enum AdobeOauthServerToServerConnectionOrderField { clientId createdAt globalCompanyId updatedAt } type AdvancedCrawlRate { end: AdvancedCrawlRateTime! maximumCrawlRate: Float! start: AdvancedCrawlRateTime! type: AdvancedCrawlRateType! } enum AdvancedCrawlRateDay { Friday Monday Saturday Sunday Thursday Tuesday Wednesday } input AdvancedCrawlRateInput { end: AdvancedCrawlRateTimeInput! maximumCrawlRate: Float! start: AdvancedCrawlRateTimeInput! type: AdvancedCrawlRateType! } type AdvancedCrawlRateTime { day: AdvancedCrawlRateDay """ UTC time in the HH:MM format. """ hour: String! } input AdvancedCrawlRateTimeInput { day: AdvancedCrawlRateDay """ UTC time in the HH:MM format. """ hour: String! } enum AdvancedCrawlRateType { Daily Weekly } type AgentsApiMetadata { apiKey: String! resourceId: String! url: String! } type AiSourceBreakdown { bounceRate: Float! pageviews: Int! platform: String sessions: Int! source: String! users: Int! } input AiSourceBreakdownObjectArrayMemberConnectionFilterInput { platform: ConnectionStringObjectArrayMemberFilterInput source: ConnectionStringObjectArrayMemberFilterInput } type AiVisibilityAccountSettings { """ When enabled, AI providers included in your subscription are automatically added to your projects, so newly entitled providers become available without any manual setup. When disabled, you choose which providers each project uses. Providers that are no longer part of your subscription are always removed, regardless of this setting. """ aiProvidersSyncWithSubscription: Boolean! """ Default market for new AI Visibility projects, as an ISO 3166-1 alpha-2 country code. Copied onto a project when it is created without a `country`; changing it never rewrites existing projects. Null means no default (new projects target worldwide unless they set their own country). """ defaultCountry: String """ Default generation language for new AI Visibility projects, as an ISO 639-1 code. Copied onto a project when it is created without a `language`; changing it never rewrites existing projects. Null means no default. """ defaultLanguage: String scheduleType: AiVisibilityScheduleType! """ IANA timezone identifier (e.g. 'Europe/London'). """ timezone: String! } """ A country with active prompt runs within a date range. """ type AiVisibilityActiveCountry { """ ISO 3166-1 alpha-2 country code. Null means worldwide (prompts with no country). """ code: String """ English display name of the country, or 'Worldwide' when code is null. """ name: String! } type AiVisibilityAiProvider { createdAt: DateTime! id: ObjectID! """ Indicates if the provider is included in the subscription. """ included: Boolean! name: String! """ How Lumar gathers the provider's answers: through its official API or its chat UI. """ providerType: AiVisibilityProviderType! rawId: Int! type: AiVisibilityAiProviderType! updatedAt: DateTime! } type AiVisibilityAiProviderConnection { """ A list of nodes. """ nodes: [AiVisibilityAiProvider!]! """ Information to aid in pagination. """ pageInfo: PageInfo! """ Identifies the total count of AI providers in the connection. """ totalCount: Int! } enum AiVisibilityAiProviderType { AnthropicApi ChatgptUi CopilotUi GeminiUi GoogleAiModeSerpApi GoogleAiOverviewSerpApi GoogleApi GrokUi OpenaiApi PerplexityApi PerplexityUi XaiApi } """ Per-AI-provider visibility scores and presence metrics for a brand. """ type AiVisibilityAiProviderVisibilityItem { """ The AI provider platform type. """ aiProviderType: AiVisibilityAiProviderType! """ Average brand mention quality score (0-100). """ avgBrandMentionQualityScore: Float """ Average citation quality score (0-100). """ avgCitationQualityScore: Float """ Presence Rate: percentage of prompt runs where the brand was mentioned or cited (0-100). """ avgPresenceRate: Float! """ Quality Score: 75% mention quality + 25% citation quality (0-100); a missing component counts as 0. """ avgQualityScore: Float! """ Visibility Index (formerly avgVisibilityScore): composite ranking blend of 25% citation quality + 75% mention quality, each scaled by √(appearance rate) (0-100). """ avgVisibilityIndex: Float! """ Deprecated alias of `avgVisibilityIndex`. Weighted blend: 25% citation quality + 75% mention quality, each scaled by the appearance rate (0-100). """ avgVisibilityScore: Float! @deprecated(reason: "Renamed to `avgVisibilityIndex` (identical value). The headline metric has been split into `avgPresenceRate` and `avgQualityScore`. Scheduled for removal.") """ Percentage of runs where the brand was mentioned or cited. """ brandMentionPercentage: Float """ Number of runs where the brand was mentioned or cited. """ brandMentionRuns: Int! """ Total number of finished prompt runs for this provider. """ totalRuns: Int! } type AiVisibilityBrand { aiVisibilityProjectId: ObjectID! aiVisibilityProjectRawId: Int! createdAt: DateTime! domains: [AiVisibilityBrandDomain!]! id: ObjectID! isMerged: Boolean! mergedAt: DateTime mergedBrands: [AiVisibilityBrand!]! mergedIntoAiVisibilityBrandId: ObjectID mergedIntoAiVisibilityBrandRawId: Int mergedIntoBrand: AiVisibilityBrand name: String! primary: Boolean! rawId: Int! type: AiVisibilityBrandType! updatedAt: DateTime! } type AiVisibilityBrandConnection { """ How many distinct brands the Share of Voice denominators are spread across — every in-scope brand mentioned or cited at least once in the window, after merges are resolved. Follows the `types` filter. Not the same as `totalCount`, which counts the non-merged brands matching the connection's filters regardless of whether they appeared in this window. Returns 0 when dateRange is omitted. """ brandsInScope: Int! """ A list of nodes. """ nodes: [AiVisibilityBrandListItem!]! """ Every in-scope brand that is not on this page, rolled into one slice — so the page's nodes plus this account for the whole denominator without the caller subtracting anything. Because it is derived from the current page, it shrinks as `first` grows and is null once the page covers every brand in scope. Out-of-scope nodes (a `Context` brand on an unfiltered page) are not subtracted, since they never counted towards the denominator. """ others: AiVisibilityShareOfVoiceOthers """ Information to aid in pagination. """ pageInfo: PageInfo! """ The denominators over `comparisonDateRange`, so a previous-period share can be re-derived without reading scope-wide values off an arbitrary node's `previousPeriod` — which is unavailable exactly when the page is empty. Null when no comparison window was requested, or when it holds no finished prompt runs in scope. """ previousPeriodShareOfVoiceTotals: AiVisibilityShareOfVoiceTotals """ The `citationShareOfVoice` denominator: citation answer-appearances across every brand in scope, counting each brand once per answer. Follows the `types` filter. Excludes `Context` brands and citations that could not be attributed to a brand. Returns 0 when dateRange is omitted. """ totalCitationAnswerAppearances: Int! """ Identifies the total count of AI Visibility Brands in the connection. """ totalCount: Int! """ The `mentionShareOfVoice` denominator: brand answer-appearances across every brand in scope (not just the current page), counting each brand once per answer. Follows the `types` filter, so a request narrowed to `[Own, Competitor]` returns a competitor-only denominator and every share is renormalized onto that set. `Context` brands (platforms and surfaces like Google or ChatGPT) are always excluded. Surface it next to a share ("9,612 of 84,200 answer-appearances across 312 brands") — the denominator is dynamic, so as prompt volume grows and discovery finds more brands it inflates and every share drifts down without any real change in position. Returns 0 when dateRange is omitted. """ totalMentionAnswerAppearances: Int! } type AiVisibilityBrandDomain { aiVisibilityBrandId: ObjectID! aiVisibilityBrandRawId: Int! createdAt: DateTime! domain: String! """ Source of the domain association. """ domainSource: AiVisibilityDomainSource id: ObjectID! includeSubdomains: Boolean! rawId: Int! updatedAt: DateTime! } type AiVisibilityBrandListItem { aiVisibilityProjectId: ObjectID! aiVisibilityProjectRawId: Int! """ Average brand mention quality score (0-100). Returns null when dateRange is omitted. """ avgBrandMentionQualityScore: Float """ Average citation position for this brand. Returns null when dateRange is omitted. """ avgBrandPosition: Float """ Average sentiment score for this brand's mentions. Returns null when dateRange is omitted. """ avgBrandSentiment: Float """ Average citation quality score (0-100). Returns null when dateRange is omitted. """ avgCitationQualityScore: Float """ Presence Rate: percentage of prompt runs where the brand was mentioned or cited, |mention_runs ∪ citation_runs| / total_runs (0-100). Returns 0 when dateRange is omitted. """ avgPresenceRate: Float! """ Quality Score: weighted quality of the brand's appearances, 75% mention quality + 25% citation quality (0-100); a missing component counts as 0. Returns 0 when dateRange is omitted. """ avgQualityScore: Float! """ Visibility Index (formerly `avgVisibilityScore`): composite ranking blend of 25% citation quality + 75% mention quality, each scaled by √(appearance rate) (0-100). Used to rank brands. Returns 0 when dateRange is omitted. """ avgVisibilityIndex: Float! """ Deprecated alias of `avgVisibilityIndex`. Weighted blend: 25% citation quality + 75% mention quality, each scaled by the appearance rate (0-100). Returns 0 when dateRange is omitted. """ avgVisibilityScore: Float! @deprecated(reason: "Renamed to `avgVisibilityIndex` (identical value). The headline metric has been split into `avgPresenceRate` and `avgQualityScore`. Scheduled for removal.") """ How many distinct brands the denominators for this object's window are spread across. Populated on `previousPeriod`; for the current period read it from the enclosing result. """ brandsInScope: Int """ Distinct answers in scope that cite one of this brand's domains — the `citationShareOfVoice` numerator. Differs from `totalBrandCitations`, which counts every citation instance. Returns 0 when dateRange is omitted. """ citationAnswerAppearances: Int! """ Citation Share of Voice: this brand's share of all brand citation answer-appearances in scope (0-100), same once-per-answer rule and `Context`-brand exclusion as `mentionShareOfVoice`. Citations that could not be attributed to a brand are excluded from both the numerator and the denominator. Returns 0 when dateRange is omitted. """ citationShareOfVoice: Float! """ First/oldest domain associated with this brand. """ domain: String id: ObjectID! """ Distinct answers in scope that mention this brand — the `mentionShareOfVoice` numerator. Differs from `totalBrandMentions`, which counts every mention instance including repeats within one answer. Returns 0 when dateRange is omitted. """ mentionAnswerAppearances: Int! """ Mention Share of Voice: this brand's share of all brand answer-appearances in scope (0-100). `mentionAnswerAppearances / totalMentionAnswerAppearances` (the connection-level total), where an appearance is one brand in one answer — a brand named five times in a single answer counts once, so the metric does not move when AI answer formats shift. The denominator covers every brand mentioned in scope (no curated competitor list), except `Context` brands — platforms and surfaces like Google or ChatGPT — which are excluded so they don't dilute real brands' shares; a `Context` brand's own share reads 0 since it is not part of the metric. Rounded to 2 dp, so shares need not sum to exactly 100. Returns 0 when dateRange is omitted. """ mentionShareOfVoice: Float! name: String! """ Metrics for the same brand computed against the query's `comparisonDateRange`. Populated only when the caller supplied `comparisonDateRange` and selected fields here. Always `null` at further levels of nesting. """ previousPeriod: AiVisibilityBrandListItem primary: Boolean! rawId: Int! """ Total number of citations for this brand in the date range. Returns 0 when dateRange is omitted. """ totalBrandCitations: Int! """ Total number of brand mentions for this brand in the date range. Returns 0 when dateRange is omitted. """ totalBrandMentions: Int! """ The `citationShareOfVoice` denominator for the window this object describes. See `totalMentionAnswerAppearances`. """ totalCitationAnswerAppearances: Int """ The `mentionShareOfVoice` denominator for the window this object describes. Populated on `previousPeriod`, where there is no wrapper to carry it — on a current-period brand read the scope-wide total from the enclosing result instead, which is where it lives for that window. """ totalMentionAnswerAppearances: Int type: AiVisibilityBrandType! } input AiVisibilityBrandOrder { """ The ordering direction. """ direction: OrderDirection! """ The field to order AI Visibility Brands by. """ field: AiVisibilityBrandOrderField! } """ Properties by which AI Visibility Brand connections can be ordered. """ enum AiVisibilityBrandOrderField { avgBrandMentionQualityScore avgBrandPosition avgBrandSentiment avgCitationQualityScore avgPresenceRate avgQualityScore avgVisibilityIndex avgVisibilityScore @deprecated(reason: "Renamed to `avgVisibilityIndex`. Sort by `avgVisibilityIndex`, `avgPresenceRate`, or `avgQualityScore`.") citationShareOfVoice domain mentionShareOfVoice name totalBrandCitations totalBrandMentions type } """ What a brand does, who and where it sells to, what it is aiming for, what it owns and who a buyer could choose instead, researched from the web for the brand's domain and market. AI Visibility topic and prompt suggestions are written from it. Content fields are null until the first research succeeds. """ type AiVisibilityBrandProfile { """ The brand's name as the research found it. """ brandName: String """ Most material first. """ competitorBrands: [AiVisibilityBrandProfileCompetitor!]! """ The ISO 3166-1 alpha-2 market the profile was researched for. Null means worldwide. """ country: String """ The domain the profile was researched for. """ domain: String """ The ISO 639-1 language the profile's text is written in. Null means unspecified. """ language: String """ The market the brand competes in, in buyer terms. """ marketCategory: String """ Brands, subsidiaries or product businesses the brand owns. Empty for a standalone brand. """ portfolioBrands: [AiVisibilityBrandProfileOwnedBrand!]! """ When the content was researched. Null until the first research succeeds. """ researchedAt: DateTime """ Where the profile's research stands. """ status: AiVisibilityBrandProfileStatus! """ What the brand is concentrating on now: its current priorities and the buyer decisions they create or change. """ strategicFocus: String """ URLs of the pages that support the strategic focus. """ strategicFocusSources: [String!]! """ What the brand sells or provides. """ whatTheyDo: String """ The countries, regions and channels the brand sells through. """ whereTheySell: String """ The buyers and users the brand serves. """ whoTheySellTo: String } """ A company a buyer could choose instead of the researched brand. """ type AiVisibilityBrandProfileCompetitor { """ Its root domain, or null when it was not verified. """ domain: String """ The competitor's name. """ name: String! """ Whether it competes in the brand's established market, for its strategic focus, or both. """ relevance: AiVisibilityBrandProfileCompetitorRelevance! """ The buyer decision this company can win against the brand, in one sentence. """ whyRelevant: String! } """ Which part of the brand's business a competitor contests. """ enum AiVisibilityBrandProfileCompetitorRelevance { """ Competes in the established market and for the strategic focus. """ Both """ Competes for the brand's established market. """ CoreMarket """ Competes for the buyer decisions created by the brand's strategic focus. """ StrategicFocus } """ A brand, subsidiary or product business the researched brand owns. """ type AiVisibilityBrandProfileOwnedBrand { """ Its root domain, or null when it was not verified. """ domain: String """ The owned brand's name. """ name: String! } """ Where a brand profile's research stands. """ enum AiVisibilityBrandProfileStatus { """ The last research failed. Content fields keep the last successful profile, if there is one. A refresh retries. """ Failed """ The profile is researched and current. """ Ready """ Research is running. Content fields hold the previous profile, if there is one; poll until the status changes. """ Researching } type AiVisibilityBrandSearchResult { """ Visibility Index the results are ordered by: composite blend of 25% citation quality + 75% mention quality, each scaled by √(appearance rate) (0-100). `null` unless the query supplied a `dateRange`; `0` for a brand that is only listed because it is the primary or focus brand. """ avgVisibilityIndex: Float """ First/oldest domain associated with this brand """ domain: String id: ObjectID! name: String! primary: Boolean! rawId: Int! type: AiVisibilityBrandType! } enum AiVisibilityBrandType { Competitor """ A platform or surface rather than a market participant (Google, ChatGPT, browsers). Tracked and charted like any other brand, but excluded from every Share of Voice denominator. Never applied automatically — whether e.g. Google is context or a competitor depends on the customer's market. """ Context Other Own } """ How a citation was tied to a passage of the answer. When every citation in a run is `None`, the AI platform showed nothing about where its sources sit, so leave that run out of any comparison of how prominently sources were shown. """ enum AiVisibilityCitationBacking { """ The AI platform reported which passage the citation supports. """ Grounded """ The answer linked the citation in its own text. """ Inline """ The answer referenced the citation with a numbered marker such as [2]. """ Marker """ The citation could not be tied to any passage of the answer. """ None } type AiVisibilityCitationConnection { """ A list of nodes. """ nodes: [AiVisibilityCitationListItem!]! """ Information to aid in pagination. """ pageInfo: PageInfo! """ Identifies the total count of unique URLs in the connection. """ totalCount: Int! } """ Whose domain a citation sits on, checked against the domains of the project's brands. A brand's domain covers its subdomains only when the domain has `includeSubdomains` set. `www.` is ignored on both sides. """ enum AiVisibilityCitationDomainOwnership { """ A domain of a competitor brand, and of no own brand. """ Competitor """ Neither an own nor a competitor domain: a third-party source. """ Other """ A domain of one of the project's own brands. """ Own } type AiVisibilityCitationListItem { """ AI provider types that cited this URL. """ aiProviderTypes: [AiVisibilityAiProviderType!]! """ Average citation position across all citations (1 is best). """ avgBrandPosition: Float! """ Average citation quality score (0-100). """ avgCitationScore: Float """ The brand these citations are attributed to: the brand recognised as the cited page's publisher, merged brands shown as their merge target. When the query names `aiVisibilityBrandId`, that brand on every row. Null when the publisher of the cited page was not recognised as any brand. """ brand: AiVisibilityBrand """ Canonical form of the cited URL: `https`, no `www.`, no default port, no fragment, no trailing slash and no tracking query parameters. This is the key rows are grouped by — citations whose URLs differ only by those parts are one row here. """ canonicalUrl: String! """ Timestamp (created_at) of the latest page run for this URL within the project. Null if no page run has been triggered. """ latestRunAt: DateTime """ Stable, opaque id for the cited page, derived from `canonicalUrl`. The same page has the same id on page scores, discovered pages and page runs, so clients join and route on it rather than on a URL they normalise themselves. """ pageId: String! """ Status of the latest page run (content eval) for this URL within the project. Null if no page run has been triggered. """ pageRunStatus: AiVisibilityPageRunStatus """ Metrics for the same page computed against the query's `comparisonDateRange`. Populated only when the caller supplied `comparisonDateRange` and selected fields here. Always `null` at further levels of nesting. """ previousPeriod: AiVisibilityCitationListItem """ Page title as seen in search results, from the best-positioned SERP discovery of this page. Null when the page has never been discovered through SERP discovery — a citation carries no title of its own. """ title: String """ Topic names associated with citations for this URL. """ topicNames: [String!]! """ Total number of citations for this URL. """ totalBrandCitations: Int! """ A representative raw citation URL for the page. Use `canonicalUrl` to identify it. """ url: String! } input AiVisibilityCitationOrder { """ The ordering direction. """ direction: OrderDirection! """ The field to order AI Visibility Citations by. """ field: AiVisibilityCitationOrderField! } """ Properties by which AI Visibility Citation connections can be ordered. """ enum AiVisibilityCitationOrderField { avgBrandPosition avgCitationScore totalBrandCitations url } type AiVisibilityCitationQualityScoreComponent { """ Quality score component justification. """ justification: String! """ Quality score component key. """ key: String! """ Quality score component value. """ value: Int! } """ The kind of page a cited source is, graded once per citation. Read it as what kind of page cited the brand, not as a score. The grade is not yet stable between runs: the same page can be graded differently by two runs. """ enum AiVisibilityCitationSourceType { """ A primary or in-depth source: official documentation, research, a focused review. """ Authoritative """ A page covering many brands at once, such as a ranked comparison or a best-of list. """ Listicle """ A thin, low-effort or tangential page. """ Weak } """ A third-party page cited in answers that named at least one of the requested brands and none of the project's own brands: a page where a rival is being recommended without you. """ type AiVisibilityCompetitorGapCitedPage { """ Number of answers that cited this page for one of the requested brands without naming yours. """ answerCount: Int! """ The requested brands this page was cited for, each as the brand it was merged into when it was merged, ordered by name. """ brands: [AiVisibilityBrand!]! """ Canonical form of the cited URL: `https`, no `www.`, no default port, no fragment, no trailing slash and no tracking query parameters. Citations whose URLs differ only by those parts are one page. """ canonicalUrl: String! """ Host of the page: lowercased, without `www.` or a default port. """ domain: String! """ When the most recent of those answers was produced. """ latestCitedAt: DateTime! """ The most recent mention of a requested brand this page backed, with the prompt run that produced it, so a client can open the answer. """ latestMention: AiVisibilityMentionListItem! """ Stable, opaque id for the page, derived from `canonicalUrl`. The same page has the same id on cited pages, page scores, discovered pages and page runs. """ pageId: String! """ The best grade any of these citations got, `Authoritative` first, then `Listicle`, then `Weak`. Null when none was graded. """ sourceType: AiVisibilityCitationSourceType """ The page's URL as cited in the most recent answer. Use `canonicalUrl` to identify it. """ url: String! } """ Third-party pages cited in answers that named at least one of the requested brands and none of the project's own brands, one node per page. """ type AiVisibilityCompetitorGapCitedPageConnection { """ A list of nodes. """ nodes: [AiVisibilityCompetitorGapCitedPage!]! """ Information to aid in pagination. """ pageInfo: PageInfo! """ Number of distinct pages across all pages of the connection. A page cited for several of the brands, or several times in one answer, counts once. """ totalCount: Int! } """ Ordering for competitor gap cited pages. """ input AiVisibilityCompetitorGapCitedPageOrder { """ The ordering direction. """ direction: OrderDirection! """ The field to order competitor gap cited pages by. """ field: AiVisibilityCompetitorGapCitedPageOrderField! } """ Properties by which AI Visibility competitor gap cited page connections can be ordered. """ enum AiVisibilityCompetitorGapCitedPageOrderField { answerCount latestCitedAt } type AiVisibilityContentEvalsAiReference { index: Float! link: String! snippet: String! source: String! title: String! } type AiVisibilityContentEvalsBrandMention { brandPosition: Float brands: String! isOwnBrandMentioned: Boolean! modelName: String! } type AiVisibilityContentEvalsBrandSentimentResult { authority: Float competitiveRanking: String modelName: String! qualityScore: Float reasoning: String recommendations: String sentiment: String topics: String trustScore: Float } type AiVisibilityContentEvalsGscQueryEvaluation { assessment: String clicks: Float originalQuery: String! question: String! score: Float! suggestions: String } type AiVisibilityContentEvalsPrecisionEvaluation { accuracy: Float! clarity: Float! completeness: Float! contributionAnalysis: String improvementRecommendations: String positionWeight: Float precisionScore: Float! purpose: Float! relevanceClassification: String specificity: Float! text: String weightedScore: Float } type AiVisibilityContentEvalsQdfQueryEvaluation { qdfScore: Float! query: String! reasoning: String! } type AiVisibilityContentEvalsUniquenessEvaluation { competitorUrl: String! explanation: String missingElements: String overlapScore: Float! overlappingElements: String searchPosition: Float suggestions: String uniqueElements: String uniquenessScore: Float! } """ A country available for AI Visibility prompts. """ type AiVisibilityCountry { """ ISO 3166-1 alpha-2 country code. """ code: String! """ English display name of the country. """ name: String! } input AiVisibilityDateRangeInput { """ End date of the range (inclusive) """ end: DateTime! """ Start date of the range (inclusive) """ start: DateTime! } """ A unique URL surfaced by SERP discovery for an AI Visibility project, aggregated across every discovery of that URL. """ type AiVisibilityDiscoveredPage { """ Distinct AI provider types whose prompt runs surfaced this URL. """ aiProviderTypes: [AiVisibilityAiProviderType!]! """ Average SERP position across all discoveries of this URL. 1 is best. """ avgPosition: Float! """ Best (lowest) SERP position across all discoveries of this URL. 1 is best. """ bestPosition: Int! """ Canonical form of the discovered URL: `https`, no `www.`, no default port, no fragment, no trailing slash and no tracking query parameters. This is the key discoveries are grouped by. """ canonicalUrl: String! """ Number of distinct prompts whose runs discovered this URL. """ distinctPromptCount: Int! """ Most recent time this URL was discovered (serp_discovery_results.createdAt). Always present on connection nodes; null in a `previousPeriod` entry for a URL not discovered in the comparison window. """ latestDiscoveredAt: DateTime """ Timestamp (created_at) of the latest page run for this URL within the project. Null if no page run has been triggered. """ latestPageRunAt: DateTime """ Stable, opaque id for the discovered page, derived from `canonicalUrl`. The same page has the same id on page scores, cited pages and page runs, so clients join and route on it rather than on a URL they normalise themselves. """ pageId: String! """ Status of the latest page run (content eval) for this URL within the project. Null if no page run has been triggered. """ pageRunStatus: AiVisibilityPageRunStatus """ Metrics for the same page computed against the query's `comparisonDateRange`. Populated only when the caller supplied `comparisonDateRange` and selected fields here. Always `null` at further levels of nesting. """ previousPeriod: AiVisibilityDiscoveredPage """ Page title as seen in search results, from the best-positioned SERP discovery of this page in the project. Unlike every other field here it is not scoped to `dateRange` — a title is current state, so the same page reports the same title on page scores and cited pages too. """ title: String """ Distinct topic names associated with discoveries of this URL. """ topicNames: [String!]! """ Total number of discovery rows for this URL across all prompt runs. """ totalDiscoveries: Int! """ A representative raw discovered URL for the page. Use `canonicalUrl` to identify it. """ url: String! } type AiVisibilityDiscoveredPageConnection { """ A list of nodes. """ nodes: [AiVisibilityDiscoveredPage!]! """ Information to aid in pagination. """ pageInfo: PageInfo! """ Identifies the total count of unique URLs in the connection. """ totalCount: Int! } input AiVisibilityDiscoveredPageOrder { """ The ordering direction. """ direction: OrderDirection! """ The field to order AI Visibility Discovered Pages by. """ field: AiVisibilityDiscoveredPageOrderField! } """ Properties by which AI Visibility Discovered Page connections can be ordered. """ enum AiVisibilityDiscoveredPageOrderField { avgPosition bestPosition distinctPromptCount latestDiscoveredAt totalDiscoveries url } enum AiVisibilityDomainSource { Citation Inferred } type AiVisibilityFreeScanBrand { """ Brand identifier for matching appearances within this preview. Merged variants share the target identifier. """ id: Int! """ Whether this is the scanned brand for the original run, including its merged variants. """ isOwnBrand: Boolean! """ Current display name of the identified brand, resolving merged variants. """ name: String! """ Current brand classification. Other and Context brands are not necessarily competitors. """ type: AiVisibilityBrandType! } type AiVisibilityFreeScanBrandSummary { """ An identified brand other than the scanned brand. Classification is preserved rather than assuming it is a competitor. """ brand: AiVisibilityFreeScanBrand! """ Number of successful original answers citing this brand, counting each answer once. """ citedAnswers: Int! """ Number of successful original answers mentioning this brand, counting each answer once. """ mentionedAnswers: Int! """ Percentage of successful original answers mentioning or citing this brand, rounded to one decimal. This is a presence rate, not share of voice. """ presenceRate: Float! """ Total citation occurrences for this brand across successful original answers. """ totalCitations: Int! """ Total mention occurrences for this brand across successful original answers. """ totalMentions: Int! """ Number of successful original answers mentioning or citing this brand, counting each answer once. """ visibleAnswers: Int! } type AiVisibilityFreeScanCitation { """ Identified brand for this citation; null for unattributed sources. """ brand: AiVisibilityFreeScanBrand """ Canonical form of the cited URL, with fragments and known tracking parameters removed. """ canonicalUrl: String! """ Citation quality score, from 0 to 100. """ citationQualityScore: Int! """ Citation position in the original answer, starting at 1. """ position: Int! """ The URL cited in the original answer. """ url: String! } type AiVisibilityFreeScanMention { """ Identified brand for this mention. """ brand: AiVisibilityFreeScanBrand! """ Brand mention quality score, from 0 to 100. """ brandMentionQualityScore: Int! """ Mention position in the original answer, starting at 1. """ position: Int! """ Sentiment score assigned to this mention. """ sentiment: Int! """ Explanation of the sentiment assigned to this mention. """ sentimentJustification: String! """ The text identified as a brand mention in the original answer. """ text: String! """ Provider-supplied character offsets in fullAnswerText; null when either offset is unavailable. """ textSpan: AiVisibilityFreeScanTextSpan } type AiVisibilityFreeScanPreview { brandName: String """ What the brand does, who and where it sells to, what it is aiming for, what it owns and its competitors, researched while the draft is generated and used to write it. A free scan researches only where free-scan research is switched on, which it is not by default. Researching while a draft that researches the brand generates, Failed when one finished without a profile. Null until a generation has researched the brand. """ brandProfile: AiVisibilityBrandProfile completedRuns: Int! """ Whether the owner has verified their email by signing in. Until then the UI offers sign-in with a one-time code to save the project. """ emailVerified: Boolean! failedRuns: Int! hasUsableResults: Boolean! """ Other brands identified in successful original answers, including Other and Context classifications. Ordered by visible answer count descending, then name and identifier. Names and classifications reflect current brand curation. """ otherBrands: [AiVisibilityFreeScanBrandSummary!]! phase: AiVisibilityOnboardingPhase! results: [AiVisibilityFreeScanResult!]! settled: Boolean! stalled: Boolean! successfulRuns: Int! """ Scanned-brand presence across successful original answers. Failed and unfinished answers are excluded. """ summary: AiVisibilityFreeScanSummary! totalRuns: Int! } type AiVisibilityFreeScanResult { """ The AI provider used for the original prompt run. """ aiProviderType: AiVisibilityAiProviderType! """ Average mention quality score for the scanned brand, from 0 to 100; null when unavailable. """ avgBrandMentionQualityScore: Float """ Average sentiment of the scanned brand's mentions; null when unavailable. """ avgBrandSentiment: Float """ Average citation quality score for the scanned brand, from 0 to 100; null when unavailable. """ avgCitationQualityScore: Float """ Lowest citation position for the scanned brand; 1 is best. Null when no brand citation exists. """ bestBrandPosition: Int brandVisible: Boolean! """ All citations in this original answer, including unattributed sources, ordered by position then occurrence ID. """ citations: [AiVisibilityFreeScanCitation!]! """ When the original prompt run was created. """ createdAt: DateTime! """ Reason the original prompt run failed, when available. """ failureReason: String fullAnswerText: String! """ All identified brand mentions in this original answer, ordered by position then occurrence ID. """ mentions: [AiVisibilityFreeScanMention!]! promptText: String! qualityScore: Float runId: Int! status: AiVisibilityPromptRunStatus! topicName: String! totalBrandCitations: Int! totalBrandMentions: Int! } type AiVisibilityFreeScanSummary { """ Successful original answers citing the scanned brand, counting each answer once. """ brandCitedAnswers: Int! """ Successful original answers mentioning the scanned brand, counting each answer once. """ brandMentionedAnswers: Int! """ Percentage of successful original answers mentioning or citing the scanned brand, rounded to one decimal; null when there are no successful answers. """ brandPresenceRate: Float """ Successful original answers mentioning or citing the scanned brand, counting each answer once. """ brandVisibleAnswers: Int! """ Original runs that finished with nonempty answer text. Failed, unfinished and empty answers are excluded from presence rates. """ successfulAnswers: Int! } type AiVisibilityFreeScanTextSpan { """ End character offset supplied by the provider in the original full answer text. """ end: Int! """ Start character offset supplied by the provider in the original full answer text. """ start: Int! } """ A language available for AI Visibility accounts and projects. """ type AiVisibilityLanguage { """ ISO 639-1 language code, lower-case. """ code: String! """ English display name of the language. """ name: String! } """ A citation the answer used to support a brand mention. """ type AiVisibilityMentionCitation { """ How the citation was tied to a passage of the answer. Null for runs processed before this was recorded. """ backing: AiVisibilityCitationBacking """ Canonical form of the cited URL, the same page key used by `getAiVisibilityCitations` and page scores. """ canonicalUrl: String! """ Citation quality score (0-100). """ citationQualityScore: Int! """ Host of the cited page, lowercased and without `www.`. Null when the URL has no host. """ domain: String """ Whether the cited page is on an own brand's domain, a competitor's domain, or neither. """ domainOwnership: AiVisibilityCitationDomainOwnership! """ Citation position within the answer, starting at 1. """ position: Int! """ Brand that publishes the cited page, not the brand the mention names; a merged brand reports the brand it was merged into. Null when no publisher was recognised. """ publisherBrandName: String """ Type of the publisher brand. """ publisherBrandType: AiVisibilityBrandType """ Citation ID. """ rawId: Int! """ Kind of page the source is. Null for runs processed before source types were graded. """ sourceType: AiVisibilityCitationSourceType """ The cited URL as the AI platform returned it. """ url: String! } """ Filters mentions by the citations backing them. Domains are resolved as in `AiVisibilityCitationDomainOwnership`. Mentions from runs processed before citations were linked to mentions have no backing citations, so they count as `Uncited`. """ enum AiVisibilityMentionCitationSource { """ Backed by at least one citation. """ Cited """ Backed by at least one citation that is not on an own brand's domain: pages the AI platform used independently of the brand's own site. """ NonOwnDomain """ Backed by at least one citation on an own brand's domain. """ OwnDomain """ Backed by at least one citation on neither an own nor a competitor brand's domain. """ ThirdPartyDomain """ Backed by no citation. """ Uncited } type AiVisibilityMentionConnection { """ A list of nodes. """ nodes: [AiVisibilityMentionListItem!]! """ Information to aid in pagination. """ pageInfo: PageInfo! """ Mention connection computed against the query's `comparisonDateRange`. Rows are different mentions (not aligned 1:1 with the current period's rows). Inherits `first`/`after` pagination from the parent connection args. Populated only when the caller supplied `comparisonDateRange` and selected fields here. Always `null` at further levels of nesting. """ previousPeriod: AiVisibilityMentionConnection """ Identifies the total count of mentions in the connection. """ totalCount: Int! } type AiVisibilityMentionListItem { """ AI provider type. """ aiProviderType: AiVisibilityAiProviderType! """ Prompt run ObjectID. """ aiVisibilityPromptRunId: ObjectID! """ Prompt run ID. """ aiVisibilityPromptRunRawId: Int! """ Brand mention quality score. """ brandMentionQualityScore: Int """ Brand mention quality score components. """ brandMentionQualityScoreComponents: [AiVisibilityMentionQualityScoreComponent!] """ Brand name (original brand, not merged target). """ brandName: String! """ Brand type. """ brandType: AiVisibilityBrandType! """ Citations the answer used to support this mention, in answer order: those placed in the passage naming the brand, or reported by the AI platform as backing it. A citation's publisher is not necessarily the mentioned brand. Empty when the answer's sources could not be tied to the passage, which is normal for some AI platforms, and for runs processed before citations were linked to mentions. """ citations: [AiVisibilityMentionCitation!]! """ Prompt run creation date. """ createdAt: DateTime! """ Mention position within the answer. """ position: Int! """ Mention ID. """ rawId: Int! """ Sentiment score. """ sentiment: Int! """ Sentiment justification. """ sentimentJustification: String! """ Mention text. """ text: String! """ Character span of the mention within the full answer text. """ textSpan: AiVisibilityTextSpan } input AiVisibilityMentionOrder { """ The ordering direction. """ direction: OrderDirection! """ The field to order AI Visibility Mentions by. """ field: AiVisibilityMentionOrderField! } """ Properties by which AI Visibility Mention connections can be ordered. """ enum AiVisibilityMentionOrderField { brandMentionQualityScore createdAt id position } type AiVisibilityMentionQualityScoreComponent { """ Quality score component justification. """ justification: String! """ Quality score component key. """ key: String! """ Quality score component value. """ value: Int! } type AiVisibilityMergeThemeResult { """ Canonical theme ID as of the merge request, if already resolved. Null until resolved. """ canonicalThemeId: String """ Theme ObjectID. """ id: ObjectID! """ Theme ID (local per-project theme cache row). """ rawId: Int! """ Theme status as of the merge request. Does not yet reflect this merge request. """ status: AiVisibilityThemeStatus """ Upstream theme ID. """ upstreamThemeId: String! } type AiVisibilityOnboardingDraft { brandName: String! """ Target country as an ISO 3166-1 alpha-2 code, e.g. GB. Null means worldwide; omitted country may be inferred from clear website evidence. """ country: String """ Output language as an ISO 639-1 code, e.g. en. Explicit selection wins; omitted language defaults to English unless website evidence unambiguously supports another language. """ language: String topics: [AiVisibilityOnboardingTopic!]! } input AiVisibilityOnboardingDraftInput { brandName: String! """ Target country as an ISO 3166-1 alpha-2 code, e.g. GB. Null means worldwide; omitted country may be inferred from clear website evidence. """ country: String """ Output language as an ISO 639-1 code, e.g. en. Explicit selection wins; omitted language defaults to English unless website evidence unambiguously supports another language. """ language: String topics: [AiVisibilityOnboardingTopicInput!]! } enum AiVisibilityOnboardingPhase { Generating GenerationFailed Pending Ready Review Running } type AiVisibilityOnboardingStatus { accountId: ObjectID! """ What the brand does, who and where it sells to, what it is aiming for, what it owns and its competitors, researched while the draft is generated and used to write it. A free scan researches only where free-scan research is switched on, which it is not by default. Researching while a draft that researches the brand generates, Failed when one finished without a profile. Null until a generation has researched the brand. """ brandProfile: AiVisibilityBrandProfile canRegenerateAt: DateTime draft: AiVisibilityOnboardingDraft emailVerified: Boolean! generationsRemaining: Int! phase: AiVisibilityOnboardingPhase! suggestions: AiVisibilityOnboardingDraft } input AiVisibilityOnboardingTokenInput { onboardingToken: String! } type AiVisibilityOnboardingTopic { description: String! keywords: [String!]! name: String! prompts: [String!]! """ The same prompts as `prompts`, each carrying its branded tag — one entry per prompt, in the same order, so a draft with no tags recorded reads as entirely unbranded rather than empty. Read it to show the user what generation decided about each prompt and let them confirm or flip it before anything is created. Send it back on save to persist what they chose: it wins over the tags the server already held. Omitting it is what a client that only knows `prompts` does, and keeps the earlier behaviour — a prompt whose text is returned unchanged keeps its tag, one that is edited or added is unbranded, and tags written for a different brand are dropped if `brandName` changes. `content` must match the matching entry of `prompts`. """ taggedPrompts: [AiVisibilityOnboardingTopicPrompt!]! } input AiVisibilityOnboardingTopicInput { description: String! = "" keywords: [String!]! = [] name: String! prompts: [String!]! """ The same prompts as `prompts`, each carrying its branded tag — one entry per prompt, in the same order, so a draft with no tags recorded reads as entirely unbranded rather than empty. Read it to show the user what generation decided about each prompt and let them confirm or flip it before anything is created. Send it back on save to persist what they chose: it wins over the tags the server already held. Omitting it is what a client that only knows `prompts` does, and keeps the earlier behaviour — a prompt whose text is returned unchanged keeps its tag, one that is edited or added is unbranded, and tags written for a different brand are dropped if `brandName` changes. `content` must match the matching entry of `prompts`. """ taggedPrompts: [AiVisibilityOnboardingTopicPromptInput!]! = [] } """ A drafted onboarding prompt together with the branded tag generation gave it. The tag is the generator's own statement about the prompt it wrote, not something derived from the text afterwards, so show it for the user to confirm rather than as fact — and send it back changed to correct it before the prompt is created. """ type AiVisibilityOnboardingTopicPrompt { """ True when the prompt names the project's own (primary) brand. Branded prompts measure how AI answers describe that brand when asked about it directly; unbranded prompts ask the category question and measure whether it surfaces at all. The tag is always about the project's own brand, never about a competitor named in the prompt, so it means the same thing whichever brand a query is scoped to. Prompts created before this field existed are all stored as unbranded, whatever their text says, so one that names your brand reads the wrong way until it is corrected with `setAiVisibilityPromptBranded`. Generation sets it from what the model says it wrote; send it back changed to correct it before the prompt is created. """ branded: Boolean! """ The prompt text, identical to the matching entry of `prompts`. """ content: String! } """ A drafted onboarding prompt together with the branded tag generation gave it. The tag is the generator's own statement about the prompt it wrote, not something derived from the text afterwards, so show it for the user to confirm rather than as fact — and send it back changed to correct it before the prompt is created. """ input AiVisibilityOnboardingTopicPromptInput { """ True when the prompt names the project's own (primary) brand. Branded prompts measure how AI answers describe that brand when asked about it directly; unbranded prompts ask the category question and measure whether it surfaces at all. The tag is always about the project's own brand, never about a competitor named in the prompt, so it means the same thing whichever brand a query is scoped to. Prompts created before this field existed are all stored as unbranded, whatever their text says, so one that names your brand reads the wrong way until it is corrected with `setAiVisibilityPromptBranded`. Generation sets it from what the model says it wrote; send it back changed to correct it before the prompt is created. """ branded: Boolean! = false """ The prompt text, identical to the matching entry of `prompts`. """ content: String! } type AiVisibilityPageRun { aiVisibilityProjectId: ObjectID! aiVisibilityProjectRawId: Int! brandMentionScore: Float brandPositionScore: Float brandSentimentResults: [AiVisibilityContentEvalsBrandSentimentResult!] brandSentimentScore: Float """ Canonical form of the run's URL: `https`, no `www.`, no default port, no fragment, no trailing slash and no tracking query parameters. Runs of URLs differing only by those parts are runs of one page. """ canonicalUrl: String! contentEvalsBrandMentions: [AiVisibilityContentEvalsBrandMention!] contentIsOldForTrend: Boolean contentPrecisionEvaluations: [AiVisibilityContentEvalsPrecisionEvaluation!] coveredSubjects: [String!] createdAt: DateTime! domainInGoogleAiModeResults: Boolean domainInGoogleAiOverviewResults: Boolean domainInResults: Boolean evergreenHealthScore: Float """ Why the run failed, as a fixed value, so clients no longer match `failureReason` text. Null unless `status` is Failed, and also null on runs that failed before this field existed. """ failureCode: AiVisibilityPageRunFailureCode failureReason: String googleAiModeReferences: [AiVisibilityContentEvalsAiReference!] googleAiModeTextBlocks: String googleAiOverviewReferences: [AiVisibilityContentEvalsAiReference!] googleAiOverviewTextBlocks: String gscQueryEvaluations: [AiVisibilityContentEvalsGscQueryEvaluation!] gscQueryScore: Float hasPageChanged: Boolean id: ObjectID! intendedConcept: String """ Whether the run has settled (Completed or Failed). False means work is still outstanding. Decide whether to keep polling from this rather than from a timer or a status allow-list of your own, so a status added later is still handled correctly. A settled run never changes on its own; the one way it moves again is retrying a failed copywriting preview with the same idempotency key, which reuses the run rather than creating a second one, so a caller doing that should expect the run it already holds to go back to Pending. """ isTerminal: Boolean! lacksLogicalChunks: Boolean mainContentTokens: Float missingAspects: [String!] pageFreshnessConfidenceLevel: String pageFreshnessDateSource: String pageFreshnessLastModifiedDate: String pageFreshnessReasoning: String """ Stable, opaque id for the page this run evaluated, derived from `canonicalUrl`. The same page has the same id on page scores, cited pages and discovered pages, so a run can be linked back to its page without normalising URLs client-side. """ pageId: String! pageIntents: [String!] precisionScore: Float primaryPageIntent: String qdfQueryEvaluations: [AiVisibilityContentEvalsQdfQueryEvaluation!] qdfScore: Float qualityScore: Float rawId: Int! recallScore: Float searchQuery: String signalRatio: Float """ How the page run was triggered. """ source: AiVisibilityPageRunSource """ Reference to the Single Page Requester request ID. """ sprRequestId: String status: AiVisibilityPageRunStatus! tokenEfficiencyRating: String tokenWastePercent: Float topSemanticRecallRecommendations: [String!] topicTrendDetected: Boolean topicTrendPriority: String topicTrendReasoning: String topicTrendStrength: String topicalOpportunityPrimaryDriver: String topicalOpportunityReasoning: String topicalOpportunityRecommendedAction: String topicalOpportunityScore: Float topicalOpportunityUpdatePriority: String totalPageTokens: Float trustScore: Float uniquenessEvaluations: [AiVisibilityContentEvalsUniquenessEvaluation!] uniquenessScore: Float updatedAt: DateTime! """ The raw URL this run was requested for. """ url: String! userIntents: [String!] } type AiVisibilityPageRunConnection { nodes: [AiVisibilityPageRun!]! pageInfo: PageInfo! totalCount: Int! } enum AiVisibilityPageRunFailureCode { CrawlRequestUnconfirmed ProcessingExhaustedRetries ProcessingFailed } input AiVisibilityPageRunOrder { """ The ordering direction. """ direction: OrderDirection! """ The field to order AI Visibility Page Runs by. """ field: AiVisibilityPageRunOrderField! } """ Properties by which AI Visibility Page Run connections can be ordered. """ enum AiVisibilityPageRunOrderField { brandMentionScore brandPositionScore brandSentimentScore createdAt evergreenHealthScore precisionScore qdfScore qualityScore recallScore status topicalOpportunityScore trustScore uniquenessScore } enum AiVisibilityPageRunSource { Citation CopywritingAgentPreview Manual SerpDiscovery } enum AiVisibilityPageRunStatus { Completed Crawling Failed Pending } type AiVisibilityPageScore { """ Distinct AI provider types that have cited this URL for the given brand. Empty when aiVisibilityBrandId is omitted. """ aiProviderTypes: [AiVisibilityAiProviderType!]! avgBrandMentionScore: Float """ Average citation position for this URL for the given brand. Requires aiVisibilityBrandId. """ avgBrandPosition: Float avgBrandPositionScore: Float avgBrandSentimentScore: Float """ Average citation quality score for citations of this URL for the given brand. Requires aiVisibilityBrandId. """ avgCitationQualityScore: Float avgEvergreenHealthScore: Float avgGscQueryScore: Float avgPrecisionScore: Float avgQdfScore: Float avgQualityScore: Float avgRecallScore: Float avgTopicalOpportunityScore: Float avgTrustScore: Float avgUniquenessScore: Float """ Visibility Index (formerly `avgVisibilityScore`): mean of per-prompt Visibility Index (0–100) across prompts that cite this URL for the given brand. Requires aiVisibilityBrandId. """ avgVisibilityIndex: Float """ Deprecated alias of `avgVisibilityIndex`. Mean of per-prompt Visibility Index (0–100) across prompts that cite this URL for the given brand. Requires aiVisibilityBrandId. """ avgVisibilityScore: Float @deprecated(reason: "Renamed to `avgVisibilityIndex` (identical value). Scheduled for removal.") """ Canonical form of the page URL: `https`, no `www.`, no default port, no fragment, no trailing slash and no tracking query parameters. This is the key rows are grouped by — page runs whose URLs differ only by those parts are one row here. """ canonicalUrl: String! latestRunAt: DateTime! """ Stable, opaque id for the page this row scores, derived from `canonicalUrl`. The same page has the same id on cited pages, discovered pages and page runs, so clients join and route on it rather than on a URL they normalise themselves. """ pageId: String! """ Page scores for the same page computed against the query's `comparisonDateRange`. Populated only when the caller supplied `comparisonDateRange` and selected fields here. Always `null` at further levels of nesting. """ previousPeriod: AiVisibilityPageScore """ Page title as seen in search results, from the best-positioned SERP discovery of this page. Null when the page has never been discovered through SERP discovery — there is no other stored title. """ title: String """ Distinct topic names across prompts that cite this URL for the given brand. Empty when aiVisibilityBrandId is omitted. """ topicNames: [String!]! """ Total number of citations for this URL for the given brand. Requires aiVisibilityBrandId. """ totalBrandCitations: Int totalRuns: Int! """ A representative raw URL for the page, taken from its most recent page run. Use it to link to the page; use `canonicalUrl` or `pageId` to identify it. """ url: String! } type AiVisibilityPageScoreConnection { """ A list of nodes. """ nodes: [AiVisibilityPageScore!]! """ Information to aid in pagination. """ pageInfo: PageInfo! """ Identifies the total count of evaluated pages matching the filters, across all pages of results. """ totalCount: Int! } input AiVisibilityPageScoreOrder { """ The ordering direction. """ direction: OrderDirection! """ The field to order AI Visibility Page Scores by. """ field: AiVisibilityPageScoreOrderField! } """ Properties by which AI Visibility Page Score connections can be ordered. `url` orders by the canonical URL. Pages with no value for an ordered score sort last in either direction. """ enum AiVisibilityPageScoreOrderField { avgBrandMentionScore avgBrandPositionScore avgBrandSentimentScore avgEvergreenHealthScore avgGscQueryScore avgPrecisionScore avgQdfScore avgQualityScore avgRecallScore avgTopicalOpportunityScore avgTrustScore avgUniquenessScore latestRunAt totalRuns url } type AiVisibilityProject { """ Whether the account-ready notification has been durably requested. """ accountReadyNotificationSent: Boolean! aiProviders: [AiVisibilityAiProvider!]! """ Whether to automatically crawl cited pages for content evaluations. """ autoCrawlEnabled: Boolean! """ Top N SERP results to auto-trigger page runs for (1-30). """ autoDiscoveryThreshold: Int! """ Whether this project requests per-theme brand sentiment capture on its prompt runs. Off by default because capture makes brand detection substantially more expensive. The request is passed on to the prompt tracker, which may not honour it, so theme sentiments can stay empty even while this is enabled. """ brandThemeSentimentCaptureEnabled: Boolean! """ The project's market as an ISO 3166-1 alpha-2 country code. Copied onto every prompt created without an explicit `country`; an explicit prompt country (including null for worldwide) always wins. Null means worldwide. Changing it never rewrites existing prompts or runs. """ country: String createdAt: DateTime! """ Effective maximum number of active prompts allowed for this project: the lower of the account's direct prompts-per-project limit and the limit derived from the account's prompt runs limit, enabled AI provider addons, and the project's schedule cadence. When the account has an account-wide limit (`Account.aiVisibilityPromptsLimit`) the value is further capped by the budget still available to this project: that limit minus the active prompts on the account's other projects. Returns null when no limit is configured, or 0 when provider addons are missing or the account budget is used up elsewhere. """ effectivePromptsLimit: Int """ Days before content evaluation data is considered stale (1-90). """ freshnessThresholdDays: Int! googleSearchConsoleProperties( after: String before: String first: Int = 15 last: Int """ Ordering options for GoogleSearchConsoleAiVisibilityProperties returned from the connection. """ orderBy: [GoogleSearchConsoleAiVisibilityPropertyOrder!] ): GoogleSearchConsoleAiVisibilityPropertyConnection! id: ObjectID! """ The language suggested topics, prompts and topic metadata are generated in, as an ISO 639-1 code. Null means unspecified (the generator picks the language itself). Prompts themselves carry no language. """ language: String linkedProject: Project name: String! """ When the next scheduled prompt run will occur. """ nextScheduleRunAt: DateTime! """ The primary brand's Visibility Index, Presence Rate, Quality Score, rank and trend over a date range. Priced as a single aggregate, so it can be selected on every node of `getAiVisibilityProjects` in one request, on pages of up to 100 projects. Null when the project has no primary brand. """ periodStats( """ Date range the statistics cover. Maximum 730 days. Defaults to last 30 days when omitted. """ dateRange: AiVisibilityDateRangeInput ): AiVisibilityProjectPeriodStats primaryBrand: AiVisibilityBrand rawId: Int! """ When the initial processing pipeline (prompt runs, discovery, page evaluations) fully settled. """ readyAt: DateTime """ When the last account-ready notification attempt was claimed. """ readyNotifiedAt: DateTime """ How often scheduled prompt runs occur. """ scheduleCadence: AiVisibilityScheduleCadence! """ Whether SERP discovery is enabled for this project. """ serpDiscoveryEnabled: Boolean! """ Progress through the project's first pass of prompt runs, SERP discovery and page evaluations, so a client can show setup progress without paging through runs itself. Priced as a single aggregate, so it can be selected on every node of `getAiVisibilityProjects` in one request. """ setupStatus: AiVisibilityProjectSetupStatus! """ Account tags applied to this AI Visibility Project. """ tags: [AccountTag!]! updatedAt: DateTime! } type AiVisibilityProjectAiProvider { aiProvider: AiVisibilityAiProvider! aiVisibilityAiProviderId: ObjectID! aiVisibilityAiProviderRawId: Int! aiVisibilityProjectId: ObjectID! aiVisibilityProjectRawId: Int! createdAt: DateTime! id: ObjectID! rawId: Int! } type AiVisibilityProjectConnection { """ A list of nodes. """ nodes: [AiVisibilityProjectListItem!]! """ Information to aid in pagination. """ pageInfo: PageInfo! """ Identifies the total count of AI Visibility Projects in the connection. """ totalCount: Int! } type AiVisibilityProjectListItem { """ List of enabled AI provider types. """ aiProviderTypes: [AiVisibilityAiProviderType!] """ Whether to automatically crawl cited pages for content evaluations. """ autoCrawlEnabled: Boolean! """ Whether this project requests per-theme brand sentiment capture on its prompt runs. Off by default because capture makes brand detection substantially more expensive. The request is passed on to the prompt tracker, which may not honour it, so theme sentiments can stay empty even while this is enabled. """ brandThemeSentimentCaptureEnabled: Boolean! """ The project's market as an ISO 3166-1 alpha-2 country code. Null means worldwide. """ country: String createdAt: DateTime! """ Days before content evaluation data is considered stale (1-90). """ freshnessThresholdDays: Int! id: ObjectID! """ The project's generation language as an ISO 639-1 code. Null means unspecified. """ language: String name: String! """ When the next scheduled prompt run will occur. """ nextScheduleRunAt: DateTime """ The primary brand's Visibility Index, Presence Rate, Quality Score, rank and trend over a date range. Priced as a single aggregate, so it can be selected on every node of `getAiVisibilityProjects` in one request, on pages of up to 100 projects. Null when the project has no primary brand. """ periodStats( """ Date range the statistics cover. Maximum 730 days. Defaults to last 30 days when omitted. """ dateRange: AiVisibilityDateRangeInput ): AiVisibilityProjectPeriodStats """ Domain of the primary brand. """ primaryBrandDomain: String """ ID of the primary brand. """ primaryBrandId: ObjectID """ Raw ID of the primary brand. """ primaryBrandRawId: Int rawId: Int! """ How often scheduled prompt runs occur. """ scheduleCadence: AiVisibilityScheduleCadence! """ Progress through the project's first pass of prompt runs, SERP discovery and page evaluations, so a client can show setup progress without paging through runs itself. Priced as a single aggregate, so it can be selected on every node of `getAiVisibilityProjects` in one request. """ setupStatus: AiVisibilityProjectSetupStatus! """ Account tags applied to this AI Visibility Project. """ tags: [AccountTag!]! """ Total number of prompts in the project. """ totalPrompts: Int! """ Total number of topics in the project. """ totalTopics: Int! updatedAt: DateTime! } input AiVisibilityProjectOrder { """ The ordering direction. """ direction: OrderDirection! """ The field to order AI Visibility Projects by. """ field: AiVisibilityProjectOrderField! } """ Properties by which AI Visibility Project connections can be ordered. """ enum AiVisibilityProjectOrderField { name primaryBrandDomain totalPrompts totalTopics } """ The primary brand's headline metrics over a date range, its rank among the project's brands, and its trend across the range. The headline values are the primary brand's row of `getAiVisibilityTopBrands` with its default ranking, and `trend` matches `getAiVisibilityVisibilityIndexTrend`, for the same range. """ type AiVisibilityProjectPeriodStats { """ The primary brand's average brand mention quality score over the range (0-100). """ avgBrandMentionQualityScore: Float """ The primary brand's average citation quality score over the range (0-100). """ avgCitationQualityScore: Float """ The primary brand's Presence Rate over the range (0-100). """ avgPresenceRate: Float """ The primary brand's Quality Score over the range (0-100). """ avgQualityScore: Float """ The primary brand's Visibility Index over the whole range (0-100): 25% citation quality + 75% mention quality, each scaled by √(appearance rate). Computed once over the range rather than averaged across days, so a day with few runs weighs no more than its runs. """ avgVisibilityIndex: Float """ The primary brand's 1-based rank among the project's brands by Visibility Index. Brands with no data in the range still hold a rank: they tie at a Visibility Index of 0 and are ordered by brand id. """ primaryBrandRank: Int! """ The primary brand's citations in the range. """ totalBrandCitations: Int! """ The primary brand's mentions in the range. """ totalBrandMentions: Int! """ How many brands the ranking spanned: every non-merged brand in the project. """ totalRankedBrands: Int! """ The primary brand's Visibility Index, Presence Rate and Quality Score per time bucket across the range, for a sparkline next to the headline values. The same series `getAiVisibilityVisibilityIndexTrend` returns for the primary brand and range, with no topic, prompt, provider, country or branded filter. """ trend( """ Time bucket granularity for grouping data points. Defaults to Day. """ timeBucket: AiVisibilityTimeBucket = Day ): [AiVisibilityVisibilityIndexDataPoint!]! } """ How far an AI Visibility Project has got through its first pass of prompt runs, SERP discovery and page evaluations. Counts cover the project's whole history rather than a date range. """ type AiVisibilityProjectSetupStatus { """ Distinct pages AI answers cited for the project's primary brand, identified by canonical URL. The same count `getAiVisibilityBrandCitations` returns as `totalCount` for the primary brand, but over the project's whole history. 0 when the project has no primary brand. """ citedPages: Int! """ How many of `expectedPromptRuns` have settled: prompt and AI provider pairs with at least one run that finished, failed or got no response. Never exceeds `expectedPromptRuns`, so repeat runs on later schedules do not push it past 100%. """ completedPromptRuns: Int! """ Distinct pages SERP discovery found for the project's prompts, identified by canonical URL. The same count `getAiVisibilityDiscoveredPages` returns as `totalCount`, but over the project's whole history. """ discoveredPages: Int! """ How many of `totalPages` have a completed page evaluation. """ evaluatedPages: Int! """ Prompt runs one full pass needs: active prompts (not paused, not deleted) multiplied by the AI providers enabled on the project. """ expectedPromptRuns: Int! """ True while any prompt run, SERP discovery run or page evaluation is still in progress, and for 30 seconds after any of them last changed, so the page evaluations and SERP discovery a finished prompt run starts are seen before setup reports complete. Runs that have not changed for 6 hours are treated as stalled and ignored, so one stuck run cannot hold this true. """ inProgress: Boolean! """ True when every expected prompt run has settled and nothing is still in progress. False while the project has no active prompts or no AI providers. A project that completes setup reverts to false when a prompt or AI provider that has never run on it is added. Resuming a paused prompt or re-enabling a provider does not reopen setup for pairs that already have a settled run. """ isComplete: Boolean! """ Distinct pages with at least one page evaluation run, of any status. Pages are identified by their canonical URL, so re-evaluating a page does not count it twice. """ totalPages: Int! } type AiVisibilityProjectUsage { """ Estimated runs across entitled providers in the fixed planning window, excluding the optional hover preview. This is not actual credit consumption. """ estimatedRuns: Int! """ Visible project name, or Other projects for all hidden projects together. """ name: String! """ Visible project ID; null for the combined Other projects row. """ projectId: ObjectID """ Active prompt count, using draft settings for the modeled project. """ promptCount: Int! } type AiVisibilityPrompt { aiVisibilityTopicId: ObjectID! aiVisibilityTopicRawId: Int! """ True when the prompt names the project's own (primary) brand. Branded prompts measure how AI answers describe that brand when asked about it directly; unbranded prompts ask the category question and measure whether it surfaces at all. The tag is always about the project's own brand, never about a competitor named in the prompt, so it means the same thing whichever brand a query is scoped to. Prompts created before this field existed are all stored as unbranded, whatever their text says, so one that names your brand reads the wrong way until it is corrected with `setAiVisibilityPromptBranded`. """ branded: Boolean! content: String! """ ISO 3166-1 alpha-2 country code. Null means worldwide. """ country: String createdAt: DateTime! id: ObjectID! """ When paused, the prompt is excluded from scheduled runs and does not consume the prompts limit. """ paused: Boolean! rawId: Int! updatedAt: DateTime! } type AiVisibilityPromptConnection { """ A list of nodes. """ nodes: [AiVisibilityPromptListItem!]! """ Information to aid in pagination. """ pageInfo: PageInfo! """ Identifies the total count of AI Visibility Prompts in the connection. """ totalCount: Int! } type AiVisibilityPromptDetails { aiVisibilityTopicId: ObjectID! aiVisibilityTopicRawId: Int! """ True when the prompt names the project's own (primary) brand. Branded prompts measure how AI answers describe that brand when asked about it directly; unbranded prompts ask the category question and measure whether it surfaces at all. The tag is always about the project's own brand, never about a competitor named in the prompt, so it means the same thing whichever brand a query is scoped to. Prompts created before this field existed are all stored as unbranded, whatever their text says, so one that names your brand reads the wrong way until it is corrected with `setAiVisibilityPromptBranded`. """ branded: Boolean! content: String! """ ISO 3166-1 alpha-2 country code. Null means worldwide. """ country: String id: ObjectID! """ When paused, the prompt is excluded from scheduled runs and does not consume the prompts limit. """ paused: Boolean! rawId: Int! topicName: String! } type AiVisibilityPromptListItem { """ Per-AI-provider visibility scores for the specified brand. Returns empty array when dateRange is omitted. """ aiProviderVisibility: [AiVisibilityAiProviderVisibilityItem!]! aiVisibilityTopicId: ObjectID! aiVisibilityTopicRawId: Int! """ Average brand mention quality score (0-100). Returns null when dateRange is omitted. """ avgBrandMentionQualityScore: Float """ Average citation position for the specified brand. Returns null when dateRange is omitted. """ avgBrandPosition: Float """ Average sentiment score for the specified brand's mentions. Returns null when dateRange is omitted. """ avgBrandSentiment: Float """ Average citation quality score (0-100). Returns null when dateRange is omitted. """ avgCitationQualityScore: Float """ Presence Rate: percentage of prompt runs where the brand was mentioned or cited (0-100). Returns 0 when dateRange is omitted. """ avgPresenceRate: Float! """ Quality Score: 75% mention quality + 25% citation quality (0-100); a missing component counts as 0. Returns 0 when dateRange is omitted. """ avgQualityScore: Float! """ Visibility Index (formerly avgVisibilityScore): composite ranking blend of 25% citation quality + 75% mention quality, each scaled by √(appearance rate) (0-100). Returns 0 when dateRange is omitted. """ avgVisibilityIndex: Float! """ Deprecated alias of `avgVisibilityIndex`. Weighted blend: 25% citation quality + 75% mention quality, each scaled by the appearance rate (0-100). Returns 0 when dateRange is omitted. """ avgVisibilityScore: Float! @deprecated(reason: "Renamed to `avgVisibilityIndex` (identical value). The headline metric has been split into `avgPresenceRate` and `avgQualityScore`. Scheduled for removal.") """ True when the prompt names the project's own (primary) brand. Branded prompts measure how AI answers describe that brand when asked about it directly; unbranded prompts ask the category question and measure whether it surfaces at all. The tag is always about the project's own brand, never about a competitor named in the prompt, so it means the same thing whichever brand a query is scoped to. Prompts created before this field existed are all stored as unbranded, whatever their text says, so one that names your brand reads the wrong way until it is corrected with `setAiVisibilityPromptBranded`. """ branded: Boolean! content: String! """ ISO 3166-1 alpha-2 country code. Null means worldwide. """ country: String id: ObjectID! """ When paused, the prompt is excluded from scheduled runs and does not consume the prompts limit. """ paused: Boolean! """ Metrics for the same prompt computed against the query's `comparisonDateRange`. Populated only when the caller supplied `comparisonDateRange` and selected fields here. Always `null` at further levels of nesting. """ previousPeriod: AiVisibilityPromptListItem rawId: Int! """ Top 4 brands for this prompt ordered by visibility score descending. Ranks every non-merged brand in the project unless `brandTypes` narrows the eligible types — pass `[Own, Competitor, Other]` to keep `Context` brands (platforms and surfaces like Google or ChatGPT) out of the top 4 so the next ranked brands take their slots. Returns empty array when dateRange is omitted. """ topBrands: [AiVisibilityTopicBrandItem!]! topicName: String! """ Total number of citations for the specified brand. Returns 0 when dateRange is omitted. """ totalBrandCitations: Int! """ Total number of brand mentions for the specified brand. Returns 0 when dateRange is omitted. """ totalBrandMentions: Int! """ Total number of finished runs in the date range. Returns 0 when dateRange is omitted. """ totalRuns: Int! } input AiVisibilityPromptOrder { """ The ordering direction. """ direction: OrderDirection! """ The field to order AI Visibility Prompts by. """ field: AiVisibilityPromptOrderField! } """ Properties by which AI Visibility Prompt connections can be ordered. """ enum AiVisibilityPromptOrderField { avgBrandMentionQualityScore avgBrandPosition avgBrandSentiment avgCitationQualityScore avgPresenceRate avgQualityScore avgVisibilityIndex avgVisibilityScore @deprecated(reason: "Renamed to `avgVisibilityIndex`. Sort by `avgVisibilityIndex`, `avgPresenceRate`, or `avgQualityScore`.") content topicName totalBrandCitations totalBrandMentions totalRuns } type AiVisibilityPromptRunCitation { """ Stretches of `fullAnswerText` this citation supports, for highlighting. Empty when it could not be tied to a passage, and for runs processed before this was recorded. """ backedSpans: [AiVisibilityTextSpan!]! """ How the citation was tied to a passage of the answer. Null for runs processed before this was recorded. """ backing: AiVisibilityCitationBacking """ Citation quality score. """ citationQualityScore: Int """ Citation quality score components. """ citationQualityScoreComponents: [AiVisibilityCitationQualityScoreComponent!] """ Citation position within the answer. """ position: Int! """ Kind of page the source is. Null for runs processed before source types were graded. """ sourceType: AiVisibilityCitationSourceType """ The URL of the citation. """ url: String! } type AiVisibilityPromptRunConnection { """ A list of nodes. """ nodes: [AiVisibilityPromptRunListItem!]! """ Information to aid in pagination. """ pageInfo: PageInfo! """ Prompt-run connection computed against the query's `comparisonDateRange`. Rows are different runs (not aligned 1:1 with the current period's rows). Inherits `first`/`after` pagination from the parent connection args. Populated only when the caller supplied `comparisonDateRange` and selected fields here. Always `null` at further levels of nesting. """ previousPeriod: AiVisibilityPromptRunConnection """ Identifies the total count of AI Visibility Prompt Runs in the connection. """ totalCount: Int! } type AiVisibilityPromptRunDetails { """ The type of AI provider. """ aiProviderType: AiVisibilityAiProviderType! """ Average brand mention quality score for the specified brand. """ avgBrandMentionQualityScore: Float """ Average sentiment score for the specified brand's mentions. """ avgBrandSentiment: Float """ Average citation quality score for the specified brand. """ avgCitationQualityScore: Float """ Best (lowest) citation position for the specified brand. Position 1 is highest/best. """ bestBrandPosition: Int """ Citations for the specified brand. """ brandCitations: [AiVisibilityPromptRunCitation!]! """ Mentions of the specified brand within the AI response. """ brandMentions: [AiVisibilityPromptRunMention!]! """ Whether the specified brand appears in citations or mentions. """ brandVisible: Boolean! """ When the prompt run was created. """ createdAt: DateTime! """ Reason the prompt run failed, if status is Failed. """ failureReason: String """ The full text of the AI-generated answer. """ fullAnswerText: String! """ Whether the run has settled (Finished, Failed or NoResponse), meaning no further work is expected. False means work is still outstanding — Submitted in particular is not settled. Decide whether to keep polling from this rather than from a status allow-list of your own. Settled is not immutable: a run failed because publishing its batch appeared to fail can later be corrected to Finished if the work in fact ran. """ isTerminal: Boolean! """ Citations from all brands other than the specified brand, plus citations that could not be attributed to any brand. Pass `brandTypes` (e.g. `[Own, Competitor, Other]`) to leave `Context` brands — platforms and surfaces like Google or ChatGPT — out; unattributed citations are always kept. """ otherBrandCitations( """ Restricts attributed citations to these brand types. Unattributed citations are unaffected. Defaults to every type. """ brandTypes: [AiVisibilityBrandType!] ): [AiVisibilityPromptRunOtherCitation!]! """ The prompt text that was sent to the AI. """ promptText: String! """ Quality Score for the specified brand in this run: 75% mention quality + 25% citation quality (0.25 * avgCitationQualityScore + 0.75 * avgBrandMentionQualityScore), a missing component counted as 0. """ qualityScore: Float """ Version of the scoring that produced this run's quality scores. It changes when a score's meaning changes, so a step in a chart can be told apart from a real movement by grouping on it. Null for runs scored before scoring was versioned. """ scoringVersion: Int """ Search queries the AI provider used while formulating its answer for this prompt run, ordered by position. """ searchQueries: [AiVisibilityPromptRunSearchQuery!]! """ The status of the prompt run. """ status: AiVisibilityPromptRunStatus! """ The topic name this prompt belongs to. """ topicName: String! """ Total number of citations for the specified brand. """ totalBrandCitations: Int! """ Total number of brand mentions for the specified brand. """ totalBrandMentions: Int! """ Deprecated alias of `qualityScore`: 0.25 * avgCitationQualityScore + 0.75 * avgBrandMentionQualityScore. """ visibilityScore: Float @deprecated(reason: "Renamed to `qualityScore` (identical value). For a single run this metric is the quality blend, not the composite Visibility Index. Scheduled for removal.") } type AiVisibilityPromptRunListItem { """ The AI provider type (platform). """ aiProviderType: AiVisibilityAiProviderType! aiVisibilityAiProviderId: ObjectID! aiVisibilityAiProviderRawId: Int! aiVisibilityPromptId: ObjectID! aiVisibilityPromptRawId: Int! """ Average sentiment score for the specified brand's mentions. """ avgBrandSentiment: Float """ Best (lowest) citation position for the specified brand. Position 1 is highest/best. """ bestBrandPosition: Int """ Whether the specified brand appears in citations or mentions for this run. """ brandVisible: Boolean! """ When the prompt run was created. """ createdAt: DateTime! """ Reason the prompt run failed, if status is Failed. """ failureReason: String id: ObjectID! """ Whether the run has settled (Finished, Failed or NoResponse), meaning no further work is expected. False means work is still outstanding — Submitted in particular is not settled. Decide whether to keep polling from this rather than from a status allow-list of your own. Settled is not immutable: a run failed because publishing its batch appeared to fail can later be corrected to Finished if the work in fact ran. """ isTerminal: Boolean! rawId: Int! """ The status of the prompt run. """ status: AiVisibilityPromptRunStatus! """ Total number of citations for the specified brand in this run. """ totalBrandCitations: Int! """ Total number of brand mentions for the specified brand in this run. """ totalBrandMentions: Int! """ When the prompt run was last updated. """ updatedAt: DateTime! } type AiVisibilityPromptRunMention { """ Brand mention quality score. """ brandMentionQualityScore: Int """ Brand mention quality score components. """ brandMentionQualityScoreComponents: [AiVisibilityMentionQualityScoreComponent!] """ Brand name (original brand, not merged target). """ brandName: String! """ Brand type. """ brandType: AiVisibilityBrandType! """ Positions of the citations the answer used to support this mention, resolvable against `brandCitations` and `otherCitations`. A citation's publisher is not necessarily the mentioned brand. Empty when the answer's sources could not be tied to the passage, and for runs processed before citations were linked to mentions. """ citationPositions: [Int!]! """ Mention position within the answer. """ position: Int! """ Mention ID. """ rawId: Int! """ Sentiment score. """ sentiment: Int! """ Sentiment justification. """ sentimentJustification: String! """ Mention text. """ text: String! """ Character span of the mention within the full answer text. """ textSpan: AiVisibilityTextSpan } input AiVisibilityPromptRunOrder { """ The ordering direction. """ direction: OrderDirection! """ The field to order AI Visibility Prompt Runs by. """ field: AiVisibilityPromptRunOrderField! } """ Properties by which AI Visibility Prompt Run connections can be ordered. """ enum AiVisibilityPromptRunOrderField { avgBrandSentiment bestBrandPosition createdAt status totalBrandCitations totalBrandMentions } type AiVisibilityPromptRunOtherCitation { """ Stretches of `fullAnswerText` this citation supports, for highlighting. Empty when it could not be tied to a passage, and for runs processed before this was recorded. """ backedSpans: [AiVisibilityTextSpan!]! """ How the citation was tied to a passage of the answer. Null for runs processed before this was recorded. """ backing: AiVisibilityCitationBacking """ Brand name (original brand, not merged target). Null for unattributed citations. """ brandName: String """ Brand type. Null for unattributed citations. """ brandType: AiVisibilityBrandType """ Citation quality score. """ citationQualityScore: Int """ Citation quality score components. """ citationQualityScoreComponents: [AiVisibilityCitationQualityScoreComponent!] """ Citation position within the answer. """ position: Int! """ Kind of page the source is. Null for runs processed before source types were graded. """ sourceType: AiVisibilityCitationSourceType """ The URL of the citation. """ url: String! } type AiVisibilityPromptRunSearchQuery { """ Search query position within the AI answer. """ position: Int! """ The search query text the AI used while formulating its answer. """ query: String! } enum AiVisibilityPromptRunStatus { Failed Finished NoResponse Pending Running Submitted } enum AiVisibilityProviderType { Api Ui } type AiVisibilityRunCreditUsagePool { aiProviderTypes: [AiVisibilityAiProviderType!]! """ Number of allocation rows currently in effect for this pool. """ allocationCount: Int! """ Credits currently spendable by production run processing. """ availableCredits: Float! """ Stable UI key: `general_shared`, `ui_shared`, or a provider type. """ key: String! """ The production credit bucket represented by this pool, or Unconfigured when no allocation exists. """ source: AiVisibilityRunUsageLimitSource! """ Effective current pool size: consumed credits plus credits that remain spendable. """ totalCredits: Float! type: AiVisibilityRunUsagePoolType! """ Credits consumed from allocations currently in effect, including depleted allocations. """ usedCredits: Float! } type AiVisibilityRunUsage { """ Account-wide estimated run demand, including hidden projects, in the fixed planning window. Equal to the sum of projectUsage. Excludes optional hover preview and is not actual credit consumption. """ accountEstimatedRuns: Int """ The account-wide active prompts cap shared by every project (`Account.aiVisibilityPromptsLimit`). Null means the account has no such cap. """ accountPromptsLimit: Int """ Prompts this project may hold under the account-wide cap: the cap minus the active prompts on the account's other projects. Null when the account has no account-wide cap. """ accountPromptsRoom: Int aiProviderTypes: [AiVisibilityAiProviderType!]! """ Whether project providers are inherited from the account subscription instead of selected per project. """ aiProvidersSyncWithSubscription: Boolean! """ Which constraint leaves the least room: a credit pool, the per-project prompt limit, or the account-wide prompt limit. """ bindingConstraint: AiVisibilityRunUsageBindingConstraint """ The binding pool key when `bindingConstraint` is Pool. """ bindingPoolKey: String """ Estimated executions per prompt in the fixed planning window. """ cadenceFactor: Float! """ Actual usage from credit allocations in effect now, separate from normalized planning estimates. """ currentCreditUsage: [AiVisibilityRunCreditUsagePool!]! """ The existing effective per-project prompt cap. Null means no such cap is configured. """ effectivePromptsLimit: Int """ True when at least one entitled provider has no configured applicable credit bucket. """ hasUnconfiguredPools: Boolean! """ Whether saved configuration exceeds a project cap or normalized pool estimate. """ overLimit: Boolean! """ Fixed planning window used for normalized capacity estimates. This is not a calendar-month limit. """ planningPeriodDays: Int! """ Credit buckets with demand routed in production order: provider-specific, shared UI when eligible, then shared general AI Visibility credits. """ pools: [AiVisibilityRunUsagePool!]! """ Whether the preview provider fits within project caps and normalized pool estimates. """ previewCanBeEnabled: Boolean """ Per-project demand for visible projects, with hidden projects combined into one Other projects row. Rows reconcile to accountEstimatedRuns. """ projectUsage: [AiVisibilityProjectUsage!] promptCount: Int! """ Estimated additional prompts allowed by the binding configured constraint. Pool constraints use the normalized planning window. Null means no constraint exists. """ roomToAddPrompts: Int scheduleCadence: AiVisibilityScheduleCadence! } enum AiVisibilityRunUsageBindingConstraint { AccountPromptLimit Pool ProjectPromptLimit } enum AiVisibilityRunUsageLimitSource { GeneralCredits ProviderCredits SharedUiCredits Unconfigured } type AiVisibilityRunUsagePool { aiProviderTypes: [AiVisibilityAiProviderType!]! """ Estimated normalized capacity remaining after the optional hover preview. """ availableRuns: Int """ Stable UI key: `general_shared`, `ui_shared`, or a provider type. """ key: String! limitSource: AiVisibilityRunUsageLimitSource! """ Estimated runs from saved configurations in other active projects. """ otherProjectsRuns: Int! overLimit: Boolean! """ Estimated runs above normalized capacity. """ overageRuns: Int! """ Additional estimated runs for the hovered provider, if any. """ previewRuns: Int! """ Estimated runs including the optional hover preview. """ projectedRuns: Int! segments: [AiVisibilityRunUsageSegment!]! """ Estimated runs from the modeled configuration for this project. """ thisProjectRuns: Int! """ Estimated run capacity normalized to the response's fixed planning window from current credit allocations. Null means no current-period capacity can be inferred. """ totalRuns: Int type: AiVisibilityRunUsagePoolType! """ Estimated runs before applying the optional hover preview. """ usedRuns: Int! } enum AiVisibilityRunUsagePoolType { GeneralShared Provider UiShared } type AiVisibilityRunUsageSegment { aiProviderType: AiVisibilityAiProviderType runs: Int! type: AiVisibilityRunUsageSegmentType! } enum AiVisibilityRunUsageSegmentType { Available OtherProjects Preview ThisProject } """ How often a project's prompts are automatically sent to its AI providers. The cadence also sets the project's prompt allowance: a longer cadence runs each prompt less often, so the same run budget stretches over proportionally more prompts. """ enum AiVisibilityScheduleCadence { Daily """ Every two months, on the same day of the month as the previous run. """ EveryTwoMonths EveryTwoWeeks Monthly """ Every three months, on the same day of the month as the previous run. """ Quarterly Weekly } enum AiVisibilityScheduleType { Delayed Instant } type AiVisibilitySearchQueryConnection { """ A list of nodes. """ nodes: [AiVisibilitySearchQueryListItem!]! """ Information to aid in pagination. """ pageInfo: PageInfo! """ Identifies the total count of unique search queries in the connection. """ totalCount: Int! } type AiVisibilitySearchQueryListItem { """ AI provider types that issued this search query. """ aiProviderTypes: [AiVisibilityAiProviderType!]! """ Average position of the search query within the AI answer (1 is the first query issued). """ avgPosition: Float """ Number of distinct prompts that triggered this search query. """ distinctPromptCount: Int! """ Metrics for the same query (case-insensitive match) computed against the query's `comparisonDateRange`. Populated only when the caller supplied `comparisonDateRange` and selected fields here. Always `null` at further levels of nesting. """ previousPeriod: AiVisibilitySearchQueryListItem """ Search query text the AI provider issued while formulating its answer. Grouping is case-insensitive; the displayed value is the lexicographically first original casing seen. """ query: String! """ Topic names whose prompts triggered this search query. """ topicNames: [String!]! """ Total number of occurrences of this search query across all matched prompt run answers. """ totalSearchQueries: Int! } input AiVisibilitySearchQueryOrder { """ The ordering direction. """ direction: OrderDirection! """ The field to order AI Visibility Search Queries by. """ field: AiVisibilitySearchQueryOrderField! } """ Properties by which AI Visibility Search Query connections can be ordered. """ enum AiVisibilitySearchQueryOrderField { avgPosition query totalSearchQueries } """ Denormalized view of a URL surfaced by SERP discovery for an AI Visibility project. """ type AiVisibilitySerpDiscoveredUrl { aiProviderType: AiVisibilityAiProviderType! aiVisibilityPageRunId: ObjectID aiVisibilityPromptId: ObjectID! aiVisibilityPromptRunId: ObjectID! """ When the URL was discovered (serp_discovery_results.createdAt). """ discoveredAt: DateTime! displayedLink: String """ Domain searched for in the SERP (e.g. google.com). """ domain: String! id: ObjectID! pageRunStatus: AiVisibilityPageRunStatus """ 1-based rank of the URL within the SERP page. """ position: Int! promptRunStatus: AiVisibilityPromptRunStatus! """ Search query text that triggered the discovery. """ queryText: String! """ Raw row ID of the underlying serp_discovery_results row. """ rawId: Int! snippet: String title: String url: String! } type AiVisibilitySerpDiscoveredUrlConnection { nodes: [AiVisibilitySerpDiscoveredUrl!]! pageInfo: PageInfo! totalCount: Int! } input AiVisibilitySerpDiscoveredUrlOrder { """ The ordering direction. """ direction: OrderDirection! """ The field to order AI Visibility SERP Discovered URLs by. """ field: AiVisibilitySerpDiscoveredUrlOrderField! } """ Properties by which AI Visibility SERP Discovered URL connections can be ordered. """ enum AiVisibilitySerpDiscoveredUrlOrderField { discoveredAt position } type AiVisibilitySerpDiscoveryRun { aiVisibilityProjectId: ObjectID! aiVisibilityProjectRawId: Int! createdAt: DateTime! """ Domain searched for in the SERP (e.g. google.com). """ domain: String! failureReason: String id: ObjectID! """ ID of the prompt run answer search query that triggered this SERP discovery run. """ promptRunAnswerSearchQueryId: Int! rawId: Int! status: AiVisibilitySerpDiscoveryRunStatus! updatedAt: DateTime! } type AiVisibilitySerpDiscoveryRunConnection { nodes: [AiVisibilitySerpDiscoveryRun!]! pageInfo: PageInfo! totalCount: Int! } input AiVisibilitySerpDiscoveryRunOrder { """ The ordering direction. """ direction: OrderDirection! """ The field to order AI Visibility SERP Discovery Runs by. """ field: AiVisibilitySerpDiscoveryRunOrderField! } """ Properties by which AI Visibility SERP Discovery Run connections can be ordered. """ enum AiVisibilitySerpDiscoveryRunOrderField { createdAt domain status } enum AiVisibilitySerpDiscoveryRunStatus { Failed Finished Pending Running } type AiVisibilityShareOfVoiceBrandSeries { aiVisibilityBrandId: ObjectID! """ One data point per bucket that had at least one finished prompt run in the window, in ascending date order — including buckets where this brand did not appear, which read as zeros. Buckets with no finished runs are absent from every series and from `buckets`. """ dataPoints: [AiVisibilityShareOfVoiceDataPoint!]! """ First/oldest domain associated with this brand. """ domain: String """ Whether this series is the query's focus brand (`aiVisibilityBrandId`, or the project's primary brand when that argument is omitted). A merged brand id resolves to its merge target, so this flags the target's series. """ focusBrand: Boolean! name: String! primary: Boolean! """ 1-based position in the returned series, ordered by mention Share of Voice over the whole window. The focus brand is always rank 1 regardless of its share, so the remaining ranks are the top `brandLimit - 1` brands. """ rank: Int! rawId: Int! type: AiVisibilityBrandType! } type AiVisibilityShareOfVoiceBucket { """ Distinct in-scope brands that appeared in this bucket. Lower than the trend's window-level `brandsInScope` whenever some brands only appeared in other buckets. """ brandsInScope: Int! """ Start of the time bucket, truncated to the query's `timeBucket`. """ date: DateTime! """ Every in-scope brand's citation appearances in this bucket — the citation shares' denominator. """ totalCitationAnswerAppearances: Int! """ Every in-scope brand's mention appearances in this bucket — the denominator behind each series' `mentionShareOfVoice`, so a share can be re-derived and explained. `0` when runs happened in this bucket but no brand in scope appeared; that is how a 0% share of a real denominator is told apart from a bucket where nothing was found. """ totalMentionAnswerAppearances: Int! } type AiVisibilityShareOfVoiceDataPoint { """ Distinct answers in this bucket carrying a citation attributed to the series. `0` when it had none. """ citationAnswerAppearances: Int! """ The series' citation Share of Voice in this bucket (0-100, 2 dp), over the bucket's `totalCitationAnswerAppearances`. `0` and `null` mean the same things as on `mentionShareOfVoice`. """ citationShareOfVoice: Float """ Start of the time bucket, truncated to the query's `timeBucket`. """ date: DateTime! """ Distinct answers in this bucket where the series appeared as a brand mention. `0` when it did not appear — every bucket with at least one finished prompt run is present in the series, so a `0` here is a real zero rather than a gap the caller has to fill. """ mentionAnswerAppearances: Int! """ The series' mention Share of Voice in this bucket (0-100, 2 dp): its answer-appearances over the bucket's `totalMentionAnswerAppearances`. A bucket that had runs but no in-scope appearance reads `0`, the genuine share. `null` means the brand is outside the Share of Voice scope — a `Context` brand, or the focus brand when its type is not in `brandTypes` — so its appearances are excluded from the denominator and a quotient would not be a share of anything. The counts stay real either way. """ mentionShareOfVoice: Float } type AiVisibilityShareOfVoiceOthers { """ How many in-scope brands are rolled into this slice — the count a chart legend shows. """ brandCount: Int! """ The rolled-up brands' combined citation answer-appearances. """ citationAnswerAppearances: Int! """ The rolled-up brands' combined share of citation answer-appearances. """ citationShareOfVoice: Float! """ The rolled-up brands' combined mention answer-appearances. """ mentionAnswerAppearances: Int! """ The rolled-up brands' combined share of mention answer-appearances, against the same denominator as every returned brand's `mentionShareOfVoice`. Rounded to 2 dp, so segments need not sum to exactly 100. """ mentionShareOfVoice: Float! """ The same residual over `comparisonDateRange`, for a period-on-period delta on the slice. Computed against the comparison window's own denominator and its own in-scope brand count, so a brand that appeared in only one of the two windows is counted only in that one. Null when no comparison window was requested, or when it contains no finished prompt runs. """ previousPeriod: AiVisibilityShareOfVoiceOthers } type AiVisibilityShareOfVoiceOthersSeries { """ How many brands are rolled into this series over the whole window — i.e. every brand in scope that is not one of the returned `brands`. This is the count the chart legend shows. """ brandCount: Int! """ The residual brands' combined appearances per bucket, on the same bucket grid as every other series. A bucket's `brandCount` is not repeated per point; use the trend's `buckets` for that bucket's in-scope brand count. """ dataPoints: [AiVisibilityShareOfVoiceDataPoint!]! } type AiVisibilityShareOfVoiceTotals { """ How many distinct brands this window's denominators are spread across. """ brandsInScope: Int! """ The `citationShareOfVoice` denominator for this window: citation answer-appearances across every brand in scope, counting each brand once per answer. """ totalCitationAnswerAppearances: Int! """ The `mentionShareOfVoice` denominator for this window: brand answer-appearances across every brand in scope, counting each brand once per answer. """ totalMentionAnswerAppearances: Int! } type AiVisibilityShareOfVoiceTrend { """ One series per selected brand, ordered by `rank` — the focus brand first, then the top brands by mention Share of Voice over the window. At most `brandLimit` series, fewer when the project has fewer brands in scope. """ brands: [AiVisibilityShareOfVoiceBrandSeries!]! """ Distinct brands in scope across the whole window — the population the denominators are drawn from, after `brandTypes` and the `Context` exclusion. `brands.length` plus `others.brandCount` equals this. """ brandsInScope: Int! """ The bucket grid every series shares, in ascending date order, with each bucket's denominators. Derived from the finished prompt runs in the window, not from any brand's appearances, so a bucket where nobody was mentioned still appears (with zero denominators) instead of blanking the chart. """ buckets: [AiVisibilityShareOfVoiceBucket!]! """ Every remaining brand in scope collapsed into one residual series, so the returned series plus this one account for the whole denominator. `null` when `brands` already covers every brand in scope — deliberately not a zero series, which would be indistinguishable from residual brands that all scored zero (impossible: a brand is only in scope if it appeared at least once in the window). """ others: AiVisibilityShareOfVoiceOthersSeries } type AiVisibilitySuggestedPrompt { """ True when the prompt names the project's own (primary) brand. Branded prompts measure how AI answers describe that brand when asked about it directly; unbranded prompts ask the category question and measure whether it surfaces at all. The tag is always about the project's own brand, never about a competitor named in the prompt, so it means the same thing whichever brand a query is scoped to. Prompts created before this field existed are all stored as unbranded, whatever their text says, so one that names your brand reads the wrong way until it is corrected with `setAiVisibilityPromptBranded`. """ branded: Boolean! content: String! createdAt: DateTime! id: ObjectID! rawId: Int! } """ The latest suggested prompt generation for a brand and topic. Suggestions are generated in the background; poll this until `status` is no longer `Pending`, then read them with `getAiVisibilitySuggestedPrompts`. """ type AiVisibilitySuggestedPromptGeneration { """ When generation completed or failed. Null while pending. """ completedAt: DateTime """ Number of suggestions requested. """ count: Int! """ When generation was last requested. """ requestedAt: DateTime! """ Whether the generation is still running, finished or failed. """ status: AiVisibilitySuggestedPromptGenerationStatus! } """ Progress of a suggested prompt generation requested with `requestAiVisibilitySuggestedPromptsGeneration`. """ enum AiVisibilitySuggestedPromptGenerationStatus { """ Generation finished. `getAiVisibilitySuggestedPrompts` returns the new suggestions. """ Completed """ Generation failed, or produced no usable suggestions, and the previous suggestions are unchanged. Request generation again to retry. """ Failed """ Generation is queued or running. Poll again later. """ Pending } type AiVisibilitySuggestedTopic { createdAt: DateTime! """ Suggested user-visible topic description (for prefill). """ description: String! id: ObjectID! """ Suggested keywords for the topic (for prefill). """ keywords: [String!]! name: String! """ Suggested starter prompts for the topic, each tagged branded or unbranded. """ prompts: [AiVisibilitySuggestedTopicPrompt!]! rawId: Int! """ Deprecated: the `content` of each entry in `prompts`. """ suggestedPrompts: [String!]! @deprecated(reason: "Replaced by `prompts`, which carries each prompt's branded tag. Scheduled for removal.") } """ A starter prompt suggested alongside a topic, tagged branded or unbranded. """ type AiVisibilitySuggestedTopicPrompt { """ True when the prompt names the project's own (primary) brand. Branded prompts measure how AI answers describe that brand when asked about it directly; unbranded prompts ask the category question and measure whether it surfaces at all. The tag is always about the project's own brand, never about a competitor named in the prompt, so it means the same thing whichever brand a query is scoped to. Prompts created before this field existed are all stored as unbranded, whatever their text says, so one that names your brand reads the wrong way until it is corrected with `setAiVisibilityPromptBranded`. """ branded: Boolean! """ The prompt text, ready to be saved with `createAiVisibilityTopicsBulk`. """ content: String! } type AiVisibilityTextSpan { """ End character offset of the mention within the full answer text. """ end: Int! """ Start character offset of the mention within the full answer text. """ start: Int! } """ A statement the AI answer made about the brand on a theme, quoted verbatim from the answer. Claims are the evidence behind a theme sentiment row's 0-100 score; the score itself is a holistic judgement and is not an average of claim polarities. """ type AiVisibilityThemeSentimentClaim { """ AI platform that produced the answer. """ aiProviderType: AiVisibilityAiProviderType! """ Prompt run ObjectID. """ aiVisibilityPromptRunId: ObjectID! """ ID of the prompt run whose answer made this claim. """ aiVisibilityPromptRunRawId: Int! """ ID of the theme sentiment row this claim is evidence for (`rawId` on the theme sentiment details). """ aiVisibilityThemeSentimentRawId: Int! """ Positions of the answer's citations placed in the claim's enclosing sentence. Empty when the provider cites out of band — that is normal, not an error. """ citationPositions: [Int!]! """ The cited sources behind `citationPositions`, resolved to their URLs. Same order as the positions; empty when the claim has no inline citation. """ citations: [AiVisibilityThemeSentimentClaimCitation!]! """ Creation date of the prompt run whose answer made this claim. """ createdAt: DateTime! """ Direction of the claim. """ polarity: AiVisibilityThemeSentimentClaimPolarity! """ 1-based order of the claim within its theme sentiment row, as emitted by the prompt tracker. """ position: Int! """ The prompt whose answer made this claim, as sent to the AI platform. """ promptText: String! """ The statement, quoted verbatim from the answer. Often a clause rather than a full sentence. """ quote: String! """ Claim ID. """ rawId: Int! """ Character span of the quote within the prompt run's full answer text (`fullAnswerText` on prompt run details), like a mention's `textSpan`. """ textSpan: AiVisibilityTextSpan! } type AiVisibilityThemeSentimentClaimCitation { """ Citation position within the answer (matches `citationPositions`). """ position: Int! """ The URL of the cited source. """ url: String! } type AiVisibilityThemeSentimentClaimConnection { """ A list of nodes. """ nodes: [AiVisibilityThemeSentimentClaim!]! """ Information to aid in pagination. """ pageInfo: PageInfo! """ Identifies the total count of claims in the connection. """ totalCount: Int! } input AiVisibilityThemeSentimentClaimOrder { """ The ordering direction. """ direction: OrderDirection! """ The field to order AI Visibility theme sentiment claims by. """ field: AiVisibilityThemeSentimentClaimOrderField! } """ Properties by which AI Visibility theme sentiment claims can be ordered. `polarity` orders negative < neutral < positive. """ enum AiVisibilityThemeSentimentClaimOrderField { createdAt id polarity } """ Direction of a single quoted claim behind a theme sentiment score. `Neutral` means the statement carries no valence (not that it is balanced) — a statement pulling both ways is split into two claims. Distinct from bucketing the theme's 0-100 score; the two can disagree. """ enum AiVisibilityThemeSentimentClaimPolarity { Negative Neutral Positive } type AiVisibilityThemeSentimentConnection { """ A list of nodes. """ nodes: [AiVisibilityThemeSentimentListItem!]! """ Information to aid in pagination. """ pageInfo: PageInfo! """ Per-theme sentiment computed against the query's `comparisonDateRange`. Nodes are exactly the themes on the current page, in the same order, recomputed for that window (match them by `rawId`). A theme with no sentiment in the comparison window is still present, with `totalMentions` 0 (and `avgSentiment` 0). Populated only when the caller supplied `comparisonDateRange` and selected fields here. Always `null` at further levels of nesting. """ previousPeriod: AiVisibilityThemeSentimentConnection """ Identifies the total count of themes with sentiment in the connection. """ totalCount: Int! } type AiVisibilityThemeSentimentDetailConnection { """ A list of nodes. """ nodes: [AiVisibilityThemeSentimentDetailListItem!]! """ Information to aid in pagination. """ pageInfo: PageInfo! """ Theme sentiment detail rows computed against the query's `comparisonDateRange`. Rows are different sentiment rows (not aligned 1:1 with the current period's rows). Inherits `first`/`after` pagination from the parent connection args. Populated only when the caller supplied `comparisonDateRange` and selected fields here. Always `null` at further levels of nesting. """ previousPeriod: AiVisibilityThemeSentimentDetailConnection """ Identifies the total count of theme sentiment rows in the connection. """ totalCount: Int! } type AiVisibilityThemeSentimentDetailListItem { """ AI provider type. """ aiProviderType: AiVisibilityAiProviderType! """ Prompt run ObjectID. """ aiVisibilityPromptRunId: ObjectID! """ Prompt run ID. """ aiVisibilityPromptRunRawId: Int! """ Theme ID. """ aiVisibilityThemeRawId: Int! """ Brand name (original brand, not merged target). """ brandName: String! """ Brand type. """ brandType: AiVisibilityBrandType! """ The statements the answer made about the brand on this theme, quoted from the answer in the order they were captured — the evidence behind `sentiment`. Every row captured since claims shipped carries at least one; rows from before have none. """ claims: [AiVisibilityThemeSentimentClaim!]! """ Prompt run creation date. """ createdAt: DateTime! """ Theme sentiment row ID. """ rawId: Int! """ Sentiment score (0-100). """ sentiment: Int! """ Sentiment justification. """ sentimentJustification: String! } input AiVisibilityThemeSentimentDetailOrder { """ The ordering direction. """ direction: OrderDirection! """ The field to order AI Visibility theme sentiment detail rows by. """ field: AiVisibilityThemeSentimentDetailOrderField! } """ Properties by which AI Visibility per-theme sentiment detail rows can be ordered. """ enum AiVisibilityThemeSentimentDetailOrderField { createdAt id sentiment } type AiVisibilityThemeSentimentListItem { """ Average sentiment for this brand across this theme in the date range (0-100). """ avgSentiment: Float! """ Canonical theme ID once resolved (follows upstream merge chains). Null until resolved. """ canonicalThemeId: String """ Resolved theme description. Null while the theme is unresolved. """ description: String """ Theme ObjectID. """ id: ObjectID! """ Theme ID (local per-project theme cache row). """ rawId: Int! """ Distinct prompt runs contributing sentiment for this brand and theme in the date range. """ runsCount: Int! """ Resolved theme status. Null while the theme is unresolved. """ status: AiVisibilityThemeStatus """ Resolved theme title. Null while the theme is unresolved. """ title: String """ Number of quoted claims behind this brand and theme in the date range — the rows `getAiVisibilityThemeSentimentClaims` returns for it. Zero for sentiment captured before claims shipped. """ totalClaims: Int! """ Total number of per-theme sentiment rows for this brand and theme in the date range. """ totalMentions: Int! """ Whether the theme is still awaiting resolution against the Theme API. Unresolved themes carry sentiment but no title/description yet. """ unresolved: Boolean! """ Upstream theme ID (the id the crawler referenced this theme by). """ upstreamThemeId: String! } type AiVisibilityThemeSentimentMatrix { """ Brands that appear as columns in the matrix (those with sentiment in scope). """ brands: [AiVisibilityThemeSentimentMatrixBrand!]! """ Sentiment cells. Sparse: a missing (theme, brand) pair means no sentiment in scope. """ cells: [AiVisibilityThemeSentimentMatrixCell!]! """ Themes that appear as rows in the matrix (those with sentiment in scope). """ themes: [AiVisibilityThemeSentimentMatrixTheme!]! """ True when more themes had sentiment in scope than the matrix returns. Only the highest-signal themes (most sentiment rows) are included as rows; narrow the date range, topic, or prompt to see the rest. """ truncated: Boolean! } type AiVisibilityThemeSentimentMatrixBrand { """ Brand ObjectID. """ id: ObjectID! """ Brand name. """ name: String! """ Whether this is the project's primary brand. """ primary: Boolean! """ Brand ID (canonical, merged variants rolled up). """ rawId: Int! """ Brand type. """ type: AiVisibilityBrandType! } type AiVisibilityThemeSentimentMatrixCell { """ Brand ID this cell belongs to (matches a brand in `brands`). """ aiVisibilityBrandRawId: Int! """ Theme ID this cell belongs to (matches a theme in `themes`). """ aiVisibilityThemeRawId: Int! """ Average sentiment for this brand and theme in the date range (0-100). """ avgSentiment: Float! """ Distinct prompt runs contributing to this cell in the date range. """ runsCount: Int! """ Number of quoted claims behind this brand and theme in the date range — the rows `getAiVisibilityThemeSentimentClaims` returns for the pair. Zero for sentiment captured before claims shipped. """ totalClaims: Int! """ Total per-theme sentiment rows for this brand and theme in the date range. """ totalMentions: Int! } type AiVisibilityThemeSentimentMatrixTheme { """ Theme ObjectID. """ id: ObjectID! """ Theme ID. """ rawId: Int! """ Resolved theme status. """ status: AiVisibilityThemeStatus """ Resolved theme title. Null while the theme is unresolved. """ title: String """ Whether the theme is still awaiting resolution against the Theme API. """ unresolved: Boolean! """ Upstream theme ID. """ upstreamThemeId: String! } input AiVisibilityThemeSentimentOrder { """ The ordering direction. """ direction: OrderDirection! """ The field to order AI Visibility theme sentiment by. """ field: AiVisibilityThemeSentimentOrderField! } """ Properties by which AI Visibility per-theme brand sentiment connections can be ordered. """ enum AiVisibilityThemeSentimentOrderField { avgSentiment title totalClaims totalMentions } type AiVisibilityThemeSentimentScoreDataPoint { """ Claim-weighted average sentiment for the specified brand in this bucket (0-100): the mean `sentiment` across every theme-sentiment row in the bucket, rounded to 1 dp. Matches how the headline Sentiment Score KPI is derived, so the series and the card agree. Note the series is sparse: buckets with no sentiment-scored mentions are omitted rather than returned as zero — derive the bucket grid from `dateRange` + `timeBucket` and treat missing buckets as gaps. """ avgSentiment: Float! date: DateTime! """ Distinct prompt runs contributing to this bucket. """ runsCount: Int! """ Number of theme-sentiment rows (brand claims) contributing to this bucket's average. """ totalMentions: Int! } type AiVisibilityThemeSentimentScoreTrend { dataPoints: [AiVisibilityThemeSentimentScoreDataPoint!]! """ Trend computed against the query's `comparisonDateRange`. Same timeBucket, dataPoints over the comparison window. Populated only when the caller supplied `comparisonDateRange` and selected fields here. Always `null` at further levels of nesting. """ previousPeriod: AiVisibilityThemeSentimentScoreTrend } enum AiVisibilityThemeStatus { Active Merged } """ Time bucket granularity for grouping visibility score data points. """ enum AiVisibilityTimeBucket { Day Month Week } type AiVisibilityTopBrandListItem { aiVisibilityProjectId: ObjectID! aiVisibilityProjectRawId: Int! """ Average brand mention quality score (0-100). """ avgBrandMentionQualityScore: Float """ Average citation position for this brand. """ avgBrandPosition: Float """ Average sentiment score for this brand's mentions. """ avgBrandSentiment: Float """ Average citation quality score (0-100). """ avgCitationQualityScore: Float """ Presence Rate: percentage of prompt runs where the brand was mentioned or cited, |mention_runs ∪ citation_runs| / total_runs (0-100). """ avgPresenceRate: Float """ Quality Score: weighted quality of the brand's appearances, 75% mention quality + 25% citation quality (0-100); a missing component counts as 0. """ avgQualityScore: Float """ Visibility Index (formerly `avgVisibilityScore`): composite ranking blend of 25% citation quality + 75% mention quality, each scaled by √(appearance rate) (0-100). """ avgVisibilityIndex: Float """ Deprecated alias of `avgVisibilityIndex`: 25% citation quality + 75% mention quality (0-100). """ avgVisibilityScore: Float @deprecated(reason: "Renamed to `avgVisibilityIndex` (identical value). The headline metric has been split into `avgPresenceRate` and `avgQualityScore`. Scheduled for removal.") """ How many distinct brands the denominators for this object's window are spread across. Populated on `previousPeriod`; for the current period read it from the enclosing result. """ brandsInScope: Int """ Distinct answers in scope that cite one of this brand's domains — the `citationShareOfVoice` numerator. Differs from `totalBrandCitations`, which counts every citation instance. """ citationAnswerAppearances: Int """ Citation Share of Voice: this brand's share of all brand citation answer-appearances in scope (0-100). `citationAnswerAppearances / totalCitationAnswerAppearances`, same once-per-answer rule as `mentionShareOfVoice`, same `Context`-brand exclusion. Citations that could not be attributed to a brand are excluded from both the numerator and the denominator. """ citationShareOfVoice: Float """ First/oldest domain associated with this brand. """ domain: String id: ObjectID! """ Distinct answers in scope that mention this brand — the `mentionShareOfVoice` numerator. Differs from `totalBrandMentions`, which counts every mention instance including repeats within one answer. """ mentionAnswerAppearances: Int """ Mention Share of Voice: this brand's share of all brand answer-appearances in scope (0-100). `mentionAnswerAppearances / totalMentionAnswerAppearances`, where an appearance is one brand in one answer — a brand named five times in a single answer counts once, so the metric does not move when AI answer formats shift. The denominator covers every brand mentioned in scope (no curated competitor list), except `Context` brands — platforms and surfaces like Google or ChatGPT — which are excluded so they don't dilute real brands' shares; a `Context` brand's own share is null. The scope filters do the scoping. Rounded to 2 dp, so shares need not sum to exactly 100 — divide the raw counts when exactness matters. """ mentionShareOfVoice: Float name: String! """ This brand's metrics and rank computed against the query's `comparisonDateRange`. The current period determines which brands appear; `previousPeriod` does not change the set, only re-computes metrics and rank for those brands. `rank` is the brand's project-wide rank in the comparison window, using the same `orderBy` and scope filters as the current period (so a delta vs. `rank` shows movement between periods). Populated only when the caller supplied `comparisonDateRange` and selected fields here. Always `null` at further levels of nesting. """ previousPeriod: AiVisibilityTopBrandListItem primary: Boolean! """ 1-based position in the ranking determined by the orderBy parameter (defaults to avgVisibilityScore DESC) """ rank: Int! rawId: Int! """ Total number of citations for this brand in the date range. """ totalBrandCitations: Int! """ Total number of brand mentions for this brand in the date range. """ totalBrandMentions: Int! """ The `citationShareOfVoice` denominator for the window this object describes. See `totalMentionAnswerAppearances`. """ totalCitationAnswerAppearances: Int """ The `mentionShareOfVoice` denominator for the window this object describes. Populated on `previousPeriod`, where there is no wrapper to carry it — on a current-period brand read the scope-wide total from the enclosing result instead, which is where it lives for that window. """ totalMentionAnswerAppearances: Int type: AiVisibilityBrandType! } input AiVisibilityTopBrandOrder { """ The ordering direction. """ direction: OrderDirection! """ The field to order AI Visibility Top Brands by. """ field: AiVisibilityTopBrandOrderField! } """ Properties by which AI Visibility Top Brands can be ordered. """ enum AiVisibilityTopBrandOrderField { avgBrandMentionQualityScore avgBrandPosition avgBrandSentiment avgCitationQualityScore avgPresenceRate avgQualityScore avgVisibilityIndex avgVisibilityScore @deprecated(reason: "Renamed to `avgVisibilityIndex`. Sort by `avgVisibilityIndex`, `avgPresenceRate`, or `avgQualityScore`.") citationShareOfVoice mentionShareOfVoice totalBrandCitations totalBrandMentions } type AiVisibilityTopBrandsResult { """ The list of top brands, including the focus brand and its neighbors when ranked outside top positions """ brands: [AiVisibilityTopBrandListItem!]! """ How many distinct brands the Share of Voice denominators are spread across — every in-scope brand mentioned or cited at least once in the window, after merges are resolved. Not the same as `totalRankedBrands`, which counts every brand eligible for a rank including those with no appearances in this window. """ brandsInScope: Int! """ Every in-scope brand that did not make it into `brands`, rolled into one slice — so the returned brands plus this account for the whole denominator without the caller subtracting anything. Null when `brands` already covers every brand in scope. """ others: AiVisibilityShareOfVoiceOthers """ The denominators over `comparisonDateRange`, so a previous-period share can be re-derived without reading scope-wide values off an arbitrary brand's `previousPeriod`. Null when no comparison window was requested, or when it holds no finished prompt runs in scope. """ previousPeriodShareOfVoiceTotals: AiVisibilityShareOfVoiceTotals """ The `citationShareOfVoice` denominator: citation answer-appearances across every brand in scope, counting each brand once per answer. Follows `brandTypes`. Excludes `Context` brands and citations that could not be attributed to a brand. """ totalCitationAnswerAppearances: Int! """ The `mentionShareOfVoice` denominator: brand answer-appearances across every brand in scope, counting each brand once per answer. Follows `brandTypes`, so a narrowed set yields a narrowed denominator. `Context` brands (platforms and surfaces like Google or ChatGPT) are always excluded. Surface it next to a share ("9,612 of 84,200 answer-appearances across 312 brands") — the denominator is dynamic, so as prompt volume grows and discovery finds more brands it inflates and every share drifts down without any real change in position. """ totalMentionAnswerAppearances: Int! """ Total number of brands the ranking spanned (non-merged). Narrowed by `brandTypes` when that argument is given, so it counts the brands eligible for a rank rather than every brand in the project — a focus brand pinned in from an excluded type is returned but not counted here, since it holds no rank. """ totalRankedBrands: Int! } type AiVisibilityTopic { aiVisibilityProjectId: ObjectID! aiVisibilityProjectRawId: Int! createdAt: DateTime! """ User-visible topic description. Empty until async generation fills it. """ description: String! id: ObjectID! """ Keywords that identify content related to this topic. """ keywords: [String!]! name: String! rawId: Int! updatedAt: DateTime! } type AiVisibilityTopicBrandItem { """ Presence Rate: percentage of prompt runs where the brand was mentioned or cited (0-100). """ avgPresenceRate: Float """ Quality Score: 75% mention quality + 25% citation quality (0-100); a missing component counts as 0. """ avgQualityScore: Float """ Visibility Index (formerly `avgVisibilityScore`): composite ranking blend of 25% citation quality + 75% mention quality, each scaled by √(appearance rate) (0-100). """ avgVisibilityIndex: Float """ Deprecated alias of `avgVisibilityIndex`: 25% citation quality + 75% mention quality (0-100). """ avgVisibilityScore: Float @deprecated(reason: "Renamed to `avgVisibilityIndex` (identical value). The headline metric has been split into `avgPresenceRate` and `avgQualityScore`. Scheduled for removal.") """ First/oldest domain associated with this brand. """ domain: String id: ObjectID! name: String! rawId: Int! type: AiVisibilityBrandType! } type AiVisibilityTopicConnection { """ A list of nodes. """ nodes: [AiVisibilityTopicListItem!]! """ Information to aid in pagination. """ pageInfo: PageInfo! """ Identifies the total count of AI Visibility Topics in the connection. """ totalCount: Int! } type AiVisibilityTopicDetails { """ User-visible topic description. """ description: String! id: ObjectID! """ Keywords that identify content related to this topic. """ keywords: [String!]! name: String! rawId: Int! } type AiVisibilityTopicListItem { aiVisibilityProjectId: ObjectID! aiVisibilityProjectRawId: Int! """ Average brand mention quality score (0-100). Returns null when dateRange is omitted. """ avgBrandMentionQualityScore: Float """ Average sentiment score of the specified brand's mentions across the topic's prompts (1 dp), the same measure as `AiVisibilityPromptListItem.avgBrandSentiment`. `null` when the brand was not mentioned in the window or when dateRange is omitted. """ avgBrandSentiment: Float """ Average citation quality score (0-100). Returns null when dateRange is omitted. """ avgCitationQualityScore: Float """ Presence Rate: percentage of prompt runs where the brand was mentioned or cited (0-100). Returns 0 when dateRange is omitted. """ avgPresenceRate: Float! """ Quality Score: 75% mention quality + 25% citation quality (0-100); a missing component counts as 0. Returns 0 when dateRange is omitted. """ avgQualityScore: Float! """ Visibility Index (formerly `avgVisibilityScore`): composite ranking blend of 25% citation quality + 75% mention quality, each scaled by √(appearance rate) (0-100). Returns 0 when dateRange is omitted. """ avgVisibilityIndex: Float! """ Deprecated alias of `avgVisibilityIndex`. Weighted blend: 25% citation quality + 75% mention quality, each scaled by the appearance rate (0-100). Returns 0 when dateRange is omitted. """ avgVisibilityScore: Float! @deprecated(reason: "Renamed to `avgVisibilityIndex` (identical value). The headline metric has been split into `avgPresenceRate` and `avgQualityScore`. Scheduled for removal.") """ How many distinct in-scope brands were mentioned or cited at least once in this topic's window, after merges are resolved — the brands the Share of Voice denominators are spread across. Follows `brandTypes`. Returns 0 when dateRange is omitted. """ brandsInScope: Int! """ Distinct answers in this topic citing the specified brand — the `citationShareOfVoice` numerator. Returns 0 when dateRange is omitted. """ citationAnswerAppearances: Int! """ The specified brand's citation Share of Voice within this topic (0-100, 2 dp), computed over cited answers as `mentionShareOfVoice`. Citations that could not be attributed to a brand are excluded from both sides. Returns 0 when dateRange is omitted. """ citationShareOfVoice: Float! """ The topic's leading brand by citation Share of Voice (may be the specified brand itself), with the gap from the specified brand to it. Elected from the brands `brandTypes` scopes the metric to. `null` when no in-scope brand was cited in the topic's window, or when dateRange is omitted. Ties break by brand name. """ citationShareOfVoiceLeader: AiVisibilityTopicShareOfVoiceLeader """ User-visible topic description. """ description: String! id: ObjectID! """ Keywords that identify content related to this topic. """ keywords: [String!]! """ Distinct answers in this topic mentioning the specified brand — the `mentionShareOfVoice` numerator. Returns 0 when dateRange is omitted. """ mentionAnswerAppearances: Int! """ The specified brand's mention Share of Voice within this topic (0-100, 2 dp): the share of all brand answer-appearances in the topic's answers that belong to that brand, counting each brand once per answer. The comparison set is the brands AI actually names in this topic, narrowed by `brandTypes`. `Context` brands (platforms and surfaces like Google or ChatGPT) are always excluded from the denominator; a focus brand outside the scoped set reads 0 here (its appearance counts stay real). Returns 0 when dateRange is omitted. """ mentionShareOfVoice: Float! """ The topic's leading brand by mention Share of Voice (may be the specified brand itself), with the gap from the specified brand to it. Elected from the brands `brandTypes` scopes the metric to, so a `[Own, Competitor]` request returns the leading competitor rather than the market-wide leader. `null` when no in-scope brand was mentioned in the topic's window, or when dateRange is omitted. Ties break by brand name. """ mentionShareOfVoiceLeader: AiVisibilityTopicShareOfVoiceLeader name: String! """ Metrics for the same topic computed against the query's `comparisonDateRange`. Populated only when the caller supplied `comparisonDateRange` and selected fields here. Always `null` at further levels of nesting. """ previousPeriod: AiVisibilityTopicListItem rawId: Int! """ Top 4 brands for this topic ordered by visibility score descending. Ranks every non-merged brand in the project unless `brandTypes` narrows the eligible types — pass `[Own, Competitor, Other]` to keep `Context` brands (platforms and surfaces like Google or ChatGPT) out of the top 4 so the next ranked brands take their slots. Returns empty array when dateRange is omitted. """ topBrands: [AiVisibilityTopicBrandItem!]! """ Total number of citations for the specified brand. Returns 0 when dateRange is omitted. """ totalBrandCitations: Int! """ Total number of brand mentions for the specified brand. Returns 0 when dateRange is omitted. """ totalBrandMentions: Int! """ The `citationShareOfVoice` denominator for this topic: citation answer-appearances across every in-scope brand cited in the topic's answers, following `brandTypes`. Returns 0 when dateRange is omitted. """ totalCitationAnswerAppearances: Int! """ The `mentionShareOfVoice` denominator for this topic: answer-appearances across every in-scope brand named in the topic's answers, following `brandTypes`. Dynamic — as prompt volume grows and discovery surfaces more brands it inflates, and every share drifts down without any real change in position. Returns 0 when dateRange is omitted. """ totalMentionAnswerAppearances: Int! """ Total number of non-deleted prompts in the topic. """ totalPrompts: Int! """ Total number of finished prompt runs across the topic's prompts in the date range, the same measure as `AiVisibilityPromptListItem.totalRuns`. `0` means the topic was not measured in this window, which is how a genuine zero metric is told apart from an unmeasured period. Returns 0 when dateRange is omitted. """ totalRuns: Int! } input AiVisibilityTopicOrder { """ The ordering direction. """ direction: OrderDirection! """ The field to order AI Visibility Topics by. """ field: AiVisibilityTopicOrderField! } """ Properties by which AI Visibility Topic connections can be ordered. """ enum AiVisibilityTopicOrderField { avgBrandMentionQualityScore avgBrandSentiment avgCitationQualityScore avgPresenceRate avgQualityScore avgVisibilityIndex avgVisibilityScore @deprecated(reason: "Renamed to `avgVisibilityIndex`. Sort by `avgVisibilityIndex`, `avgPresenceRate`, or `avgQualityScore`.") """ The brand's share of every in-scope brand citation appearance in the topic. Unmeasured shares sort last in both directions, on the same rule as `mentionShareOfVoice`; `totalCitationAnswerAppearances` and `citationShareOfVoiceLeader.gap` separate them from a real 0%. """ citationShareOfVoice """ The brand's share of every in-scope brand mention appearance in the topic. A share is unmeasured when the topic has no in-scope mention appearances in the window, or when the brand itself is outside the Share of Voice universe (a `Context` brand, or one excluded by `brandTypes`). Unmeasured shares sort last in both directions, so ascending starts at the lowest real share rather than at topics with no data. The field still reads 0 for them: `totalMentionAnswerAppearances` is 0 for the empty-topic case, and a non-null `mentionShareOfVoiceLeader` with a null `gap` marks the out-of-universe case, which applies to every topic in the response rather than to one. """ mentionShareOfVoice name totalBrandCitations totalBrandMentions totalPrompts } type AiVisibilityTopicSearchResult { id: ObjectID! name: String! rawId: Int! } type AiVisibilityTopicShareOfVoiceLeader { aiVisibilityBrandId: ObjectID! """ Distinct answers in this topic where the leading brand appeared — its share's numerator. """ answerAppearances: Int! """ First/oldest domain associated with this brand. """ domain: String """ The specified brand's share minus the leader's share, in percentage points (2 dp, computed from the unrounded appearance counts). Zero when the specified brand leads the topic, negative otherwise. `null` when the specified brand is a `Context` brand, whose share is not part of the metric. """ gap: Float name: String! primary: Boolean! rawId: Int! """ The leading brand's Share of Voice within this topic (0-100, 2 dp): its answer-appearances over the topic's denominator. """ shareOfVoice: Float! """ Never `Context` — platforms and surfaces cannot lead a topic (they are outside the metric). """ type: AiVisibilityBrandType! } type AiVisibilityTopicVisibilityIndexTrend { aiVisibilityTopicId: ObjectID! aiVisibilityTopicRawId: Int! dataPoints: [AiVisibilityVisibilityIndexDataPoint!]! """ Trend for the same topic computed against the query's `comparisonDateRange`. Contains its own `dataPoints` array for the comparison window at the same timeBucket. Populated only when the caller supplied `comparisonDateRange` and selected fields here. Always `null` at further levels of nesting. """ previousPeriod: AiVisibilityTopicVisibilityIndexTrend topicName: String! } type AiVisibilityTopicVisibilityScoreTrend { aiVisibilityTopicId: ObjectID! aiVisibilityTopicRawId: Int! dataPoints: [AiVisibilityVisibilityScoreDataPoint!]! """ Trend for the same topic computed against the query's `comparisonDateRange`. Contains its own `dataPoints` array for the comparison window at the same timeBucket. Populated only when the caller supplied `comparisonDateRange` and selected fields here. Always `null` at further levels of nesting. """ previousPeriod: AiVisibilityTopicVisibilityScoreTrend topicName: String! } type AiVisibilityVisibilityIndexDataPoint { avgBrandMentionQualityScore: Float avgCitationQualityScore: Float """ Presence Rate: percentage of prompt runs in this bucket where the brand was mentioned or cited (0-100). """ avgPresenceRate: Float! """ Quality Score: 75% mention quality + 25% citation quality (0-100); a missing component counts as 0. """ avgQualityScore: Float! """ Visibility Index (formerly `avgVisibilityScore`): composite ranking blend of 25% citation quality + 75% mention quality, each scaled by √(appearance rate) (0-100). """ avgVisibilityIndex: Float! """ Distinct answers in this bucket citing the specified brand — the `citationShareOfVoice` numerator. Differs from `totalBrandCitations`, which counts every citation instance. """ citationAnswerAppearances: Int! """ Citation Share of Voice in this bucket (0-100), same once-per-answer rule and `Context`-brand handling as `mentionShareOfVoice`. Citations that could not be attributed to a brand are excluded from both sides of the ratio. """ citationShareOfVoice: Float! date: DateTime! """ Distinct answers in this bucket mentioning the specified brand — the `mentionShareOfVoice` numerator. Differs from `totalBrandMentions`, which counts every mention instance. """ mentionAnswerAppearances: Int! """ Mention Share of Voice in this bucket (0-100): the specified brand's answer-appearances as a share of every brand's (excluding `Context` brands — platforms and surfaces like Google or ChatGPT; when the specified brand is itself a `Context` brand this is 0, since it is not part of the metric), `mentionAnswerAppearances / totalMentionAnswerAppearances`. An appearance is one brand in one answer, so a brand named repeatedly in a single answer counts once. On a per-topic trend the denominator is that topic's, so the value is share of voice *within* the topic. Rounded to 2 dp. A bucket appears whenever there was at least one finished prompt run in scope, even if the brand had no scored mention or citation in it — that period reads as a genuine 0% share rather than a gap. """ mentionShareOfVoice: Float! """ Total number of citations for the specified brand. """ totalBrandCitations: Int! """ Total number of brand mentions for the specified brand. """ totalBrandMentions: Int! """ The `citationShareOfVoice` denominator for this bucket: citation answer-appearances across every non-`Context` brand in scope. """ totalCitationAnswerAppearances: Int! """ The `mentionShareOfVoice` denominator for this bucket: answer-appearances across every non-`Context` brand in scope. It moves between buckets (prompt volume and the discovered brand set both change), which is why a share can drift without the brand's own appearances changing — plot or tooltip it alongside the share. """ totalMentionAnswerAppearances: Int! } type AiVisibilityVisibilityIndexTrend { dataPoints: [AiVisibilityVisibilityIndexDataPoint!]! """ Trend computed against the query's `comparisonDateRange`. Same timeBucket, dataPoints over the comparison window. Populated only when the caller supplied `comparisonDateRange` and selected fields here. Always `null` at further levels of nesting. """ previousPeriod: AiVisibilityVisibilityIndexTrend } type AiVisibilityVisibilityScoreDataPoint { avgBrandMentionQualityScore: Float avgCitationQualityScore: Float """ Presence Rate: percentage of prompt runs in this bucket where the brand was mentioned or cited (0-100). """ avgPresenceRate: Float! """ Quality Score: 75% mention quality + 25% citation quality (0-100); a missing component counts as 0. """ avgQualityScore: Float! """ Visibility Index (formerly `avgVisibilityScore`): composite ranking blend of 25% citation quality + 75% mention quality, each scaled by √(appearance rate) (0-100). """ avgVisibilityIndex: Float! """ Deprecated alias of `avgVisibilityIndex`: 25% citation quality + 75% mention quality, each scaled by the appearance rate (0-100). """ avgVisibilityScore: Float! @deprecated(reason: "Renamed to `avgVisibilityIndex` (identical value). The headline metric has been split into `avgPresenceRate` and `avgQualityScore`. Scheduled for removal.") """ Distinct answers in this bucket citing the specified brand — the `citationShareOfVoice` numerator. Differs from `totalBrandCitations`, which counts every citation instance. """ citationAnswerAppearances: Int! """ Citation Share of Voice in this bucket (0-100), same once-per-answer rule and `Context`-brand handling as `mentionShareOfVoice`. Citations that could not be attributed to a brand are excluded from both sides of the ratio. """ citationShareOfVoice: Float! date: DateTime! """ Distinct answers in this bucket mentioning the specified brand — the `mentionShareOfVoice` numerator. Differs from `totalBrandMentions`, which counts every mention instance. """ mentionAnswerAppearances: Int! """ Mention Share of Voice in this bucket (0-100): the specified brand's answer-appearances as a share of every brand's (excluding `Context` brands — platforms and surfaces like Google or ChatGPT; when the specified brand is itself a `Context` brand this is 0, since it is not part of the metric), `mentionAnswerAppearances / totalMentionAnswerAppearances`. An appearance is one brand in one answer, so a brand named repeatedly in a single answer counts once. On a per-topic trend the denominator is that topic's, so the value is share of voice *within* the topic. Rounded to 2 dp. A bucket appears whenever there was at least one finished prompt run in scope, even if the brand had no scored mention or citation in it — that period reads as a genuine 0% share rather than a gap. """ mentionShareOfVoice: Float! """ Total number of citations for the specified brand. """ totalBrandCitations: Int! """ Total number of brand mentions for the specified brand. """ totalBrandMentions: Int! """ The `citationShareOfVoice` denominator for this bucket: citation answer-appearances across every non-`Context` brand in scope. """ totalCitationAnswerAppearances: Int! """ The `mentionShareOfVoice` denominator for this bucket: answer-appearances across every non-`Context` brand in scope. It moves between buckets (prompt volume and the discovered brand set both change), which is why a share can drift without the brand's own appearances changing — plot or tooltip it alongside the share. """ totalMentionAnswerAppearances: Int! } type AiVisibilityVisibilityScoreTrend { dataPoints: [AiVisibilityVisibilityScoreDataPoint!]! """ Trend computed against the query's `comparisonDateRange`. Same timeBucket, dataPoints over the comparison window. Populated only when the caller supplied `comparisonDateRange` and selected fields here. Always `null` at further levels of nesting. """ previousPeriod: AiVisibilityVisibilityScoreTrend } type AlertSetting { code: AlertSettingCode! name: String! } enum AlertSettingCode { Always Never } enum AlertType { Fail Pass Warning } type AllMetricsCustomReportRowConnection { """ A list of edges. """ edges: [AllMetricsCustomReportRowEdge!]! """ A list of nodes. """ nodes: [JSONObject!]! """ Information to aid in pagination. """ pageInfo: PageInfo! """ Identifies the total count of AllMetricsReportRows in the connection. """ totalCount: Int! } type AllMetricsCustomReportRowEdge { """ Used in `before` and `after` args """ cursor: String! node: JSONObject! } type AllMetricsReportStatRowConnection { """ A list of edges. """ edges: [AllMetricsReportStatRowEdge!]! """ A list of nodes. """ nodes: [JSONObject!]! """ Information to aid in pagination. """ pageInfo: PageInfo! """ Identifies the total count of AllMetricsReportRows in the connection. """ totalCount: Int! } type AllMetricsReportStatRowEdge { """ Used in `before` and `after` args """ cursor: String! node: JSONObject! } type AuthToken { value: String! } type AutomatorAccountStatistics { averageUrlsCrawledPerDay: Float! buildsCount: Float! failedTestPercentage: Float! passedTestPercentage: Float! testSuitesCount: Float! testsPerformedCount: Float! warnedTestPercentage: Float! } interface BaseProject { alertEmails: [String!] allPagesTotal: Int apiCallbackHeaders: [APICallbackHeader!] apiCallbackUrl: String applyCustomHeadersToNavigationRequestsOnly: Boolean! autoFinalizeOnCrawlLimits: Boolean! """ Flags if threshold on all tests is calculated automatically, based on previous test results. """ automaticThreshold: Boolean! """ Flags if automatic thresholds are calculated for all (true) or some (false) tests. """ automaticThresholdEnabledForAll: Boolean! """ Blocks third-party cookies. """ block3rdPartyCookies: Boolean! clonedAt: DateTime compareToCrawl: CompareToCrawl crawl4xxHreflangLinks: Boolean! crawl4xxLinks: Boolean! crawlDisallowedUrls1stLevel: Boolean! crawlHyperlinksExternal: Boolean! crawlHyperlinksInternal: Boolean! crawlImagesExternal: Boolean! crawlImagesInternal: Boolean! crawlNofollowHyperlinks: Boolean! crawlNonHtml: Boolean! crawlNotIncluded1stLevel: Boolean! crawlOtherRelExternal: Boolean! crawlOtherRelInternal: Boolean! crawlRedirectsExternal: Boolean! crawlRedirectsInternal: Boolean! crawlRelAmphtmlExternal: Boolean! crawlRelAmphtmlInternal: Boolean! crawlRelCanonicalsExternal: Boolean! crawlRelCanonicalsInternal: Boolean! crawlRelHreflangsExternal: Boolean! crawlRelHreflangsInternal: Boolean! crawlRelMobileExternal: Boolean! crawlRelMobileInternal: Boolean! crawlRelNextPrevExternal: Boolean! crawlRelNextPrevInternal: Boolean! crawlRobotsTxtNoindex: Boolean! crawlScriptsExternal: Boolean! crawlScriptsInternal: Boolean! crawlSitemapsExternal: Boolean! crawlSitemapsInternal: Boolean! crawlStylesheetsExternal: Boolean! crawlStylesheetsInternal: Boolean! crawlTestSite: Boolean! crawlUrlsTotal: Int crawlingAt: DateTime crawlsTotalCount: Int! createdAt: DateTime! customDns: [CustomDnsSetting!] """ Use regular expressions to extract custom information from pages when they are crawled. """ customExtractions: [CustomExtractionSetting!] customRequestHeaders: JSONObject dataLayerName: String dataOnlyCrawlTypes: [CrawlType!] discoverSitemapsInRobotsTxt: Boolean! """ Includes paginated pages, those with a `rel=next` or `rel=prev` link, in the duplicate checks for titles, descriptions, body content and pages. When false, the default, paginated pages are left out of them. """ duplicatePagesIncludePaginatedPages: Boolean! duplicatePrecision: Float! emptyPageThreshold: Int enableKeyValueStore: Boolean! excludeUrlPatterns: [String!] excludedDatasources: [DatasourceCode!] failureRateLimitEnabled: Boolean! failureRateLookbackWindow: Int! failureRateThreshold: Float! finishedAt: DateTime flattenIframes: Boolean! flattenShadowDom: Boolean! gaDateRange: Int! """ Flags if threshold on all health score tests is calculated automatically, based on previous health score test results. """ healthScoreAutomaticThreshold: Boolean! """ Flags if automatic thresholds are calculated for all (true) or some (false) health score tests. """ healthScoreAutomaticThresholdEnabledForAll: Boolean! ignoreInvalidSSLCertificate: Boolean ignoreRobotsForNavigationRequests: Boolean! ignoreXRobots: Boolean! includeBestPractices: Boolean! includeHttpAndHttps: Boolean! includeSubdomains: Boolean! includeUrlPatterns: [String!] industryCode: String isTestSuite: Boolean! """ Same as crawlingAt, but includes dates of deleted crawls. """ lastCrawlCrawlingAt: DateTime lastCrawlStatus: CrawlStatus legacyTasksTotalCount: Int! limitLevelsMax: Int! limitPagesMax: Int! limitUrlsMax: Int! @deprecated(reason: "Renamed to limitPagesMax.") logSummaryRequestsHigh: Int! logSummaryRequestsLow: Int! maxBodyContentLength: Int maxContentSize: Int! @deprecated(reason: "Renamed to maxBodyContentLength.") maxDescriptionLength: Int maxExternalLinks: Int maxHtmlSize: Int maxLinks: Int maxLinksProcessed: Int! maxLoadTime: Float maxRedirections: Int! maxTitleWidth: Int! maxUrlLength: Int maximumCrawlRate: Float! maximumCrawlRateAdvanced: [AdvancedCrawlRate!] minContentRatio: Float minDescriptionLength: Int! minTitleLength: Int! minVisits: Int! mobileHomepageUrl: String mobileUrlPattern: String """ Overrides the viewport height during crawling of the mobile site. """ mobileViewportHeight: Int """ Overrides the vieport width during crawling of the mobile site. """ mobileViewportWidth: Int moduleCode: ModuleCode! name: String! primaryDomain: String! renderTimeout: Int! renderWithImages: Boolean! rendererBlockAds: Boolean! rendererBlockAnalytics: Boolean! rendererBlockCustom: [String!] rendererCookies: [RendererCookie!] rendererJsString: String rendererJsUrls: [String!] renderingRobotsCheckMode: RenderingRobotsCheckMode robotsOverwrite: String schedulesTotalCount: Int! secondaryDomains: [String!] segmentsTotalCount: Int! selectedWcagLevel: WcagLevel! selectedWcagVersion: Float! sitePrimary: String! @deprecated(reason: "Renamed to primaryDomain.") siteTest: String @deprecated(reason: "Renamed to testSiteDomain.") sitemapUrls: [String!] startUrls: [String!] storeLighthouseJSON: Boolean! targetMaxUncrawledUrlsCount: Int! testSiteDomain: String testSiteUsername: String thinPageThreshold: Int """ Report setting for the topic clustering reports: a topic counts as thin when its `primaryIndexableUrlCountVsMedian` is below this value, that is, when it has fewer indexable primary URLs than this share of the median topic. """ thinTopicThreshold: Float! """ Report setting for the topic clustering reports: a page counts as ambiguous between its two best topics when its `topicScoreGap` is below this value. The gap is in standard deviations, not raw cosine similarity. """ topicAmbiguityGapThreshold: Float! totalSteps: Int updatedAt: DateTime! urlRewriteQueryParameters: [String!] urlRewriteRules: [UrlRewriteRule!] urlRewriteStripFragment: Boolean! urlSampling: [UrlSampling!] urlsExcluded: [String!] @deprecated(reason: "Renamed to excludeUrlPatterns.") urlsIncluded: [String!] @deprecated(reason: "Renamed to includeUrlPatterns.") useMobileSettings: Boolean! """ Use new Chrome headless mode. """ useNewHeadlessMode: Boolean! useRenderer: Boolean! useRobotsOverwrite: Boolean! useStealthMode: Boolean! useUrlRewriteRules: Boolean! userAgentIsMobile: Boolean userAgentMobileIsMobile: Boolean userAgentString: String userAgentStringMobile: String userAgentToken: String userAgentTokenMobile: String """ Overrides the default viewport height during crawling, if present. """ viewportHeight: Int """ Overrides the default viewport width during crawling, if present. """ viewportWidth: Int } """ The `BigInt` scalar type represents non-fractional signed whole numeric values. """ scalar BigInt type BillingPortalSession { """ The short-lived URL of the session that gives customers access to the customer portal. """ url: String! } type BucketsPayload { floatRangeAggs: [FloatRangeAgg!] intRangeAggs: [IntRangeAgg!] termsAggs: [TermsAgg!] } type Build { buildScheduleRun: BuildScheduleRun canceledByBuild: Build ciBuildId: String crawl: Crawl crawlDcWebUrl: String createdAt: DateTime! failedHealthScoreTestCount: Int! failedTestCount: Int finishedAt: DateTime healthScoreTestResults( after: String before: String """ Filtering options for HealthScoreTestResults returned from the connection. """ filter: HealthScoreTestResultConnectionFilterInput first: Int = 15 last: Int """ Ordering options for HealthScoreTestResults returned from the connection. """ orderBy: [HealthScoreTestResultOrder!] ): HealthScoreTestResultConnection! id: ObjectID! missingHealthScoreTestCount: Int! missingTestCount: Int! passed: Boolean! passedHealthScoreTestCount: Int! passedTestCount: Int rawID: String! status: BuildStatus! testResults( after: String before: String """ Filtering options for TestResults returned from the connection. """ filter: TestResultConnectionFilterInput first: Int = 15 last: Int """ Ordering options for TestResults returned from the connection. """ orderBy: [TestResultOrder!] ): TestResultConnection! testSuite: TestSuite! triggerType: BuildTriggerType! updatedAt: DateTime! warnedHealthScoreTestCount: Int! warnedTestCount: Int } type BuildConnection { """ A list of edges. """ edges: [BuildEdge!]! """ A list of nodes. """ nodes: [Build!]! """ Information to aid in pagination. """ pageInfo: PageInfo! """ Identifies the total count of Builds in the connection. """ totalCount: Int! } input BuildConnectionFilterInput { """ Groups each filter object using AND """ _and: [BuildConnectionFilterInput!] """ Groups each filter object using AND, wrapped inside NOT """ _not: [BuildConnectionFilterInput!] """ Groups each filter object using OR """ _or: [BuildConnectionFilterInput!] ciBuildId: ConnectionStringFilterInput createdAt: ConnectionDateFilterInput failedHealthScoreTestCount: ConnectionIntFilterInput failedTestCount: ConnectionIntFilterInput finishedAt: ConnectionDateFilterInput missingHealthScoreTestCount: ConnectionIntFilterInput missingTestCount: ConnectionIntFilterInput passed: ConnectionBooleanFilterInput passedHealthScoreTestCount: ConnectionIntFilterInput passedTestCount: ConnectionIntFilterInput status: ConnectionStringFilterInput updatedAt: ConnectionDateFilterInput warnedHealthScoreTestCount: ConnectionIntFilterInput warnedTestCount: ConnectionIntFilterInput } type BuildEdge { """ A cursor to use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: Build! } input BuildOrder { """ The ordering direction. """ direction: OrderDirection! """ The field to order Builds by. """ field: BuildOrderField! } enum BuildOrderField { ciBuildId createdAt failedHealthScoreTestCount failedTestCount finishedAt id missingHealthScoreTestCount missingTestCount passed passedHealthScoreTestCount passedTestCount status updatedAt warnedHealthScoreTestCount warnedTestCount } type BuildSchedule { account: Account! buildScheduleTestSuites( after: String before: String first: Int = 15 last: Int """ Ordering options for BuildScheduleTestSuites returned from the connection. """ orderBy: [BuildScheduleTestSuiteOrder!] ): BuildScheduleTestSuiteConnection! createdAt: DateTime! id: ObjectID! lastRunStartedAt: DateTime name: String! nextRunAt: DateTime rawID: String! repetitionRate: BuildScheduleRepetitionRate startAt: DateTime! updatedAt: DateTime! } type BuildScheduleConnection { """ A list of edges. """ edges: [BuildScheduleEdge!]! """ A list of nodes. """ nodes: [BuildSchedule!]! """ Information to aid in pagination. """ pageInfo: PageInfo! """ Identifies the total count of BuildSchedules in the connection. """ totalCount: Int! } input BuildScheduleConnectionFilterInput { """ Groups each filter object using AND """ _and: [BuildScheduleConnectionFilterInput!] """ Groups each filter object using AND, wrapped inside NOT """ _not: [BuildScheduleConnectionFilterInput!] """ Groups each filter object using OR """ _or: [BuildScheduleConnectionFilterInput!] createdAt: ConnectionDateFilterInput lastRunStartedAt: ConnectionDateFilterInput name: ConnectionStringFilterInput nextRunAt: ConnectionDateFilterInput startAt: ConnectionDateFilterInput updatedAt: ConnectionDateFilterInput } type BuildScheduleEdge { """ A cursor to use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: BuildSchedule! } input BuildScheduleOrder { """ The ordering direction. """ direction: OrderDirection! """ The field to order BuildSchedules by. """ field: BuildScheduleOrderField! } enum BuildScheduleOrderField { createdAt id lastRunStartedAt name nextRunAt startAt updatedAt } enum BuildScheduleRepetitionRate { Daily EveryFourHours EveryTwelveHours EveryWeekday Hourly Monthly Weekly } type BuildScheduleRun { buildSchedule: BuildSchedule! createdAt: DateTime! id: ObjectID! rawID: String! startedAt: DateTime updatedAt: DateTime! } type BuildScheduleTestSuite { buildSchedule: BuildSchedule! createdAt: DateTime! id: ObjectID! lastRunBuild: Build rawID: String! testSuite: TestSuite! } type BuildScheduleTestSuiteConnection { """ A list of edges. """ edges: [BuildScheduleTestSuiteEdge!]! """ A list of nodes. """ nodes: [BuildScheduleTestSuite!]! """ Information to aid in pagination. """ pageInfo: PageInfo! """ Identifies the total count of BuildScheduleTestSuites in the connection. """ totalCount: Int! } type BuildScheduleTestSuiteEdge { """ A cursor to use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: BuildScheduleTestSuite! } input BuildScheduleTestSuiteOrder { """ The ordering direction. """ direction: OrderDirection! """ The field to order BuildScheduleTestSuites by. """ field: BuildScheduleTestSuiteOrderField! } enum BuildScheduleTestSuiteOrderField { createdAt id } enum BuildStatus { Aborted Cancelled Finished Queued Running } enum BuildTriggerType { CI Manual Schedule } input BulkAiVisibilityPromptInput { """ True when the prompt names the project's own (primary) brand. Branded prompts measure how AI answers describe that brand when asked about it directly; unbranded prompts ask the category question and measure whether it surfaces at all. The tag is always about the project's own brand, never about a competitor named in the prompt, so it means the same thing whichever brand a query is scoped to. Prompts created before this field existed are all stored as unbranded, whatever their text says, so one that names your brand reads the wrong way until it is corrected with `setAiVisibilityPromptBranded`. Defaults to false. """ branded: Boolean """ Prompt content (max 2500 characters) """ content: String! """ ISO 3166-1 alpha-2 country code. Omit to inherit the project's `country` (null when the project has none); pass null explicitly for worldwide even when the project has a country. """ country: String } input BulkAiVisibilityTopicInput { """ User-visible topic description. Auto-generated asynchronously if omitted. """ description: String """ Keywords for this topic. Auto-generated asynchronously if omitted. """ keywords: [String!] name: String! prompts: [BulkAiVisibilityPromptInput!]! } type BulkProcessHealthScoreTestResultSuggestedThresholdsPayload { updatedThresholdsCount: Int! } type BulkProcessSuggestedThresholdsPayload { updatedThresholdsCount: Int! } input CancelBuildInput { buildId: ObjectID! } type CancelBuildPayload { build: Build! } input CancelCrawlingInput { crawlId: ObjectID! } type CancelCrawlingPayload { crawl: Crawl! } input CancelSelfServeAccountSubscriptionInput { accountId: ObjectID! cancellationDetails: CancellationDetailsInput } type CancelSelfServeAccountSubscriptionPayload { account: Account! } enum CancellationDetailsFeedback { customer_service low_quality missing_features other switched_service too_complex too_expensive unused } input CancellationDetailsInput { comment: String feedback: CancellationDetailsFeedback } input CheckDomainInput { url: String! } type CheckDomainPayload { variants: [DomainCheckVariant!]! } type CheckoutSession { """ The URL to the Checkout Session. """ url: String } type CloneProjectPayload { project: Project! } input CloneTestSuiteInput { testSuiteId: ObjectID! } type CloneTestSuitePayload { testSuite: TestSuite! } """ CompareTo scalar type represents a union of CompareToType enum ("LastCrawl", "None") and an ObjectID of a Crawl. """ scalar CompareToCrawl enum CompareToCrawlType { LastCrawl None } input ConfirmEmailInput { token: String! } type ConfirmEmailPayload { session: Session! } input ConnectionBigIntFilterInput { eq: BigInt ge: BigInt gt: BigInt in: [BigInt!] isNull: Boolean le: BigInt lt: BigInt ne: BigInt notIn: [BigInt!] } input ConnectionBooleanFilterInput { eq: Boolean isNull: Boolean ne: Boolean } input ConnectionCrawlPriorityFilterInput { eq: CrawlPriority in: [CrawlPriority!] isNull: Boolean ne: CrawlPriority notIn: [CrawlPriority!] } input ConnectionCrawlStatusFilterInput { eq: CrawlStatus in: [CrawlStatus!] isNull: Boolean ne: CrawlStatus notIn: [CrawlStatus!] } input ConnectionCreditAllocationTypeFilterInput { eq: CreditAllocationType in: [CreditAllocationType!] isNull: Boolean ne: CreditAllocationType notIn: [CreditAllocationType!] } input ConnectionCreditReportTypeFilterInput { eq: CreditReportType in: [CreditReportType!] isNull: Boolean ne: CreditReportType notIn: [CreditReportType!] } input ConnectionCustomChartTypeFilterInput { eq: CustomChartType in: [CustomChartType!] isNull: Boolean ne: CustomChartType notIn: [CustomChartType!] } input ConnectionCustomDashboardTypeFilterInput { eq: CustomDashboardType in: [CustomDashboardType!] isNull: Boolean ne: CustomDashboardType notIn: [CustomDashboardType!] } input ConnectionCustomMetricContainerGenerationStatusFilterInput { eq: CustomMetricContainerGenerationStatus in: [CustomMetricContainerGenerationStatus!] isNull: Boolean ne: CustomMetricContainerGenerationStatus notIn: [CustomMetricContainerGenerationStatus!] } input ConnectionCustomMetricContainerInputTypeFilterInput { eq: CustomMetricContainerInputType in: [CustomMetricContainerInputType!] isNull: Boolean ne: CustomMetricContainerInputType notIn: [CustomMetricContainerInputType!] } input ConnectionCustomMetricContainerScopeFilterInput { eq: CustomMetricContainerScope in: [CustomMetricContainerScope!] isNull: Boolean ne: CustomMetricContainerScope notIn: [CustomMetricContainerScope!] } input ConnectionCustomMetricContainerVersionStatusFilterInput { eq: CustomMetricContainerVersionStatus in: [CustomMetricContainerVersionStatus!] isNull: Boolean ne: CustomMetricContainerVersionStatus notIn: [CustomMetricContainerVersionStatus!] } input ConnectionCustomTableTypeFilterInput { eq: CustomTableType in: [CustomTableType!] isNull: Boolean ne: CustomTableType notIn: [CustomTableType!] } input ConnectionDatasourceCodeFilterInput { eq: DatasourceCode in: [DatasourceCode!] isNull: Boolean ne: DatasourceCode notIn: [DatasourceCode!] } input ConnectionDateFilterInput { eq: DateTime ge: DateTime gt: DateTime in: [DateTime!] isNull: Boolean le: DateTime lt: DateTime ne: DateTime notIn: [DateTime!] } input ConnectionElementOptimisationRequestStatusFilterInput { eq: ElementOptimisationRequestStatus in: [ElementOptimisationRequestStatus!] isNull: Boolean ne: ElementOptimisationRequestStatus notIn: [ElementOptimisationRequestStatus!] } input ConnectionExternalSourceExtractionStatusFilterInput { eq: ExternalSourceExtractionStatus in: [ExternalSourceExtractionStatus!] isNull: Boolean ne: ExternalSourceExtractionStatus notIn: [ExternalSourceExtractionStatus!] } input ConnectionExternalSourceTerminationReasonFilterInput { eq: ExternalSourceTerminationReason in: [ExternalSourceTerminationReason!] isNull: Boolean ne: ExternalSourceTerminationReason notIn: [ExternalSourceTerminationReason!] } input ConnectionExternalSourceTypeFilterInput { eq: ExternalSourceType in: [ExternalSourceType!] isNull: Boolean ne: ExternalSourceType notIn: [ExternalSourceType!] } input ConnectionFloatFilterInput { eq: Float ge: Float gt: Float in: [Float!] isNull: Boolean le: Float lt: Float ne: Float notIn: [Float!] } input ConnectionFloatObjectArrayMemberFilterInput { arrayContains: Float arrayNotContains: Float } input ConnectionIntArrayFilterInput { arrayContains: Int arrayNotContains: Int isNull: Boolean } input ConnectionIntFilterInput { eq: Int ge: Int gt: Int in: [Int!] isNull: Boolean le: Int lt: Int ne: Int notIn: [Int!] } input ConnectionIntObjectArrayMemberFilterInput { arrayContains: Int arrayNotContains: Int } input ConnectionLegacyTaskPriorityFilterInput { eq: LegacyTaskPriority in: [LegacyTaskPriority!] isNull: Boolean ne: LegacyTaskPriority notIn: [LegacyTaskPriority!] } input ConnectionLegacyTaskStatusFilterInput { eq: LegacyTaskStatus in: [LegacyTaskStatus!] isNull: Boolean ne: LegacyTaskStatus notIn: [LegacyTaskStatus!] } input ConnectionLegacyTaskTypeFilterInput { eq: LegacyTaskType in: [LegacyTaskType!] isNull: Boolean ne: LegacyTaskType notIn: [LegacyTaskType!] } input ConnectionLogManagerConnectionStatusFilterInput { eq: LogManagerConnectionStatus in: [LogManagerConnectionStatus!] isNull: Boolean ne: LogManagerConnectionStatus notIn: [LogManagerConnectionStatus!] } input ConnectionLogManagerProviderFilterInput { eq: LogManagerProvider in: [LogManagerProvider!] isNull: Boolean ne: LogManagerProvider notIn: [LogManagerProvider!] } input ConnectionModuleCodeFilterInput { eq: ModuleCode in: [ModuleCode!] isNull: Boolean ne: ModuleCode notIn: [ModuleCode!] } input ConnectionObjectIDFilterInput { eq: ObjectID ge: ObjectID gt: ObjectID in: [ObjectID!] isNull: Boolean le: ObjectID lt: ObjectID ne: ObjectID notIn: [ObjectID!] } enum ConnectionPredicate { arrayContains arrayContainsLike arrayNotContains arrayNotContainsLike beginsWith contains endsWith eq ge gt in isEmpty isNull le lt matchesRegex ne notContains notIn notMatchesRegex } type ConnectionPredicateMetadata { """ Predicate code """ code: ConnectionPredicate! """ Whether the predicate expects an array value """ isArray: Boolean! """ Human readable predicate name """ name: String! """ What type of value does the predicate expect """ type: MetricType! } input ConnectionRedirectExclusionReasonFilterInput { eq: RedirectExclusionReason in: [RedirectExclusionReason!] isNull: Boolean ne: RedirectExclusionReason notIn: [RedirectExclusionReason!] } input ConnectionRenderingRobotsCheckModeFilterInput { eq: RenderingRobotsCheckMode in: [RenderingRobotsCheckMode!] isNull: Boolean ne: RenderingRobotsCheckMode notIn: [RenderingRobotsCheckMode!] } input ConnectionResolvedHttpStatusCodeFilterInput { eq: ResolvedHttpStatusCode in: [ResolvedHttpStatusCode!] isNull: Boolean ne: ResolvedHttpStatusCode notIn: [ResolvedHttpStatusCode!] } input ConnectionRoleCodeFilterInput { eq: RoleCode in: [RoleCode!] isNull: Boolean ne: RoleCode notIn: [RoleCode!] } input ConnectionSinglePageRequesterRequestStatusFilterInput { eq: SinglePageRequesterRequestStatus in: [SinglePageRequesterRequestStatus!] isNull: Boolean ne: SinglePageRequesterRequestStatus notIn: [SinglePageRequesterRequestStatus!] } input ConnectionStringArrayFilterInput { arrayContains: String arrayContainsLike: String arrayNotContains: String arrayNotContainsLike: String isNull: Boolean } input ConnectionStringFilterInput { beginsWith: String contains: String endsWith: String eq: String in: [String!] isEmpty: Boolean isNull: Boolean matchesRegex: String ne: String notContains: String notIn: [String!] notMatchesRegex: String } input ConnectionStringObjectArrayMemberFilterInput { arrayContains: String arrayContainsLike: String arrayNotContains: String arrayNotContainsLike: String } input ConnectionTestAutoThresholdAcceptanceFilterInput { eq: TestAutoThresholdAcceptance in: [TestAutoThresholdAcceptance!] isNull: Boolean ne: TestAutoThresholdAcceptance notIn: [TestAutoThresholdAcceptance!] } input ConnectionTestResultStatusFilterInput { eq: TestResultStatus in: [TestResultStatus!] isNull: Boolean ne: TestResultStatus notIn: [TestResultStatus!] } input ConnectionThresholdChangeTypeFilterInput { eq: ThresholdChangeType in: [ThresholdChangeType!] isNull: Boolean ne: ThresholdChangeType notIn: [ThresholdChangeType!] } input ConnectionWcagLevelFilterInput { eq: WcagLevel in: [WcagLevel!] isNull: Boolean ne: WcagLevel notIn: [WcagLevel!] } type ContainerExecutionFailure { containerId: String! containerName: String error: String! } input ContainerExecutionFailureObjectArrayMemberConnectionFilterInput { containerId: ConnectionStringObjectArrayMemberFilterInput containerName: ConnectionStringObjectArrayMemberFilterInput error: ConnectionStringObjectArrayMemberFilterInput } type ConversionDetail { eventCount: Int! eventName: String! eventType: String! value: Float! } input ConvertAccountSubscriptionToChargebeeInput { accountId: ObjectID! planCode: String! startDate: DateTime } type ConvertAccountSubscriptionToChargebeePayload { hostedPageUrl: String! } input CopyCustomDashboardCollectionInput { accountId: ObjectID @deprecated(reason: "No longer used.") customDashboardCollectionId: ObjectID! excludedCustomViewIds: [ObjectID!] name: String! } input CopyCustomDashboardInput { customDashboardCollectionId: ObjectID customDashboardId: ObjectID! name: String! } input CopyHealthScoreTestsInput { fromProjectId: ObjectID! reportCategoryCodes: [String!] toProjectId: ObjectID! } type CopyHealthScoreTestsPayload { healthScoreTests: [HealthScoreTest!]! } input CopyTestsInput { fromProjectId: ObjectID! reportTemplateCodes: [String!] toProjectId: ObjectID! } type CopyTestsPayload { tests: [Test!]! } input CopywritingArticleEvalInput { html: String! idempotencyKey: String url: String! } type Crawl { archivedAt: DateTime brokenAt: DateTime @deprecated(reason: "Legacy timestamp. No longer in use.") build: Build canceledAt: DateTime comparedTo: Crawl comparedToCrawlId: ObjectID coreUIUrl: String! crawlAccessibilityIssuesAggregates( after: String dimensions: [CrawlAccessibilityIssueAggregateDimension!]! = [] filter: CrawlAccessibilityIssueConnectionFilterInput first: Int = 100 """ Ordering options for CrawlAccessibilityIssueAggregates returned from the connection. """ orderBy: [CrawlAccessibilityIssueAggregateOrder!]! = [] ): CrawlAccessibilityIssueAggregateConnection crawlAnalyticsAiReferralsAggregates( dimensions: [CrawlAnalyticsAiReferralAggregateDimension!]! = [] filter: CrawlAnalyticsAiReferralConnectionFilterInput """ Ordering options for CrawlAnalyticsAiReferralAggregates returned from the connection. """ orderBy: [CrawlAnalyticsAiReferralAggregateOrder!]! = [] ): CrawlAnalyticsAiReferralAggregateConnection crawlDatasource(datasourceCode: DatasourceCode!): CrawlDatasource crawlDatasources( after: String before: String """ Filtering options for CrawlDatasources returned from the connection. """ filter: CrawlDatasourceConnectionFilterInput first: Int = 15 last: Int """ Ordering options for CrawlDatasources returned from the connection. """ orderBy: [CrawlDatasourceOrder!] ): CrawlDatasourceConnection! crawlLevels: String crawlLogSummariesAiBotsAggregates( after: String dimensions: [CrawlLogSummariesAiBotAggregateDimension!]! = [] filter: CrawlLogSummariesAiBotConnectionFilterInput first: Int = 100 """ Ordering options for CrawlLogSummariesAiBotAggregates returned from the connection. """ orderBy: [CrawlLogSummariesAiBotAggregateOrder!]! = [] ): CrawlLogSummariesAiBotAggregateConnection crawlLogSummariesAiBotsAggregatesTrend(dimensions: [CrawlLogSummariesAiBotAggregateDimension!]! = [], filter: CrawlLogSummariesAiBotConnectionFilterInput, orderBy: [CrawlLogSummariesAiBotAggregateOrder!]! = [], size: Int! = 5): [CrawlLogSummariesAiBotAggregateTrendItem!] crawlSegments( after: String before: String """ Filtering options for CrawlSegments returned from the connection. """ filter: CrawlSegmentConnectionFilterInput first: Int = 15 last: Int """ Ordering options for CrawlSegments returned from the connection. """ orderBy: [CrawlSegmentOrder!] ): CrawlSegmentConnection """ Returns CrawlSegment health scores for a list of report category codes. """ crawlSegmentsHealthScores( after: String before: String """ Filtering options for CrawlSegments returned from the connection. """ filter: CrawlSegmentConnectionFilterInput first: Int = 15 last: Int """ Ordering options for CrawlSegments returned from the connection. """ orderBy: [CrawlSegmentOrder!] reportCategoryCodes: [String!]! ): CrawlSegmentHealthScoreConnection! """ CrawlSetting used for this Crawl, or the latest CrawlSetting if the Crawl is still running. """ crawlSetting: CrawlSetting crawlSiteSpeedAuditOpportunitiesAggregates( after: String dimensions: [CrawlSiteSpeedAuditOpportunityAggregateDimension!]! = [] filter: CrawlSiteSpeedAuditOpportunityConnectionFilterInput first: Int = 100 """ Ordering options for CrawlSiteSpeedAuditOpportunityAggregates returned from the connection. """ orderBy: [CrawlSiteSpeedAuditOpportunityAggregateOrder!]! = [] ): CrawlSiteSpeedAuditOpportunityAggregateConnection crawlSiteSpeedAuditsAggregates( after: String dimensions: [CrawlSiteSpeedAuditAggregateDimension!]! = [] filter: CrawlSiteSpeedAuditConnectionFilterInput first: Int = 100 """ Ordering options for CrawlSiteSpeedAuditAggregates returned from the connection. """ orderBy: [CrawlSiteSpeedAuditAggregateOrder!]! = [] ): CrawlSiteSpeedAuditAggregateConnection crawlStat: CrawlStat crawlStructuredDataBlocksAggregates( after: String dimensions: [CrawlStructuredDataBlockAggregateDimension!]! = [] filter: CrawlStructuredDataBlockConnectionFilterInput first: Int = 100 """ Ordering options for CrawlStructuredDataBlockAggregates returned from the connection. """ orderBy: [CrawlStructuredDataBlockAggregateOrder!]! = [] ): CrawlStructuredDataBlockAggregateConnection crawlStructuredDataIssuesAggregates( after: String dimensions: [CrawlStructuredDataIssueAggregateDimension!]! = [] filter: CrawlStructuredDataIssueConnectionFilterInput first: Int = 100 """ Ordering options for CrawlStructuredDataIssueAggregates returned from the connection. """ orderBy: [CrawlStructuredDataIssueAggregateOrder!]! = [] ): CrawlStructuredDataIssueAggregateConnection crawlTopicsAggregates( after: String dimensions: [CrawlTopicAggregateDimension!]! = [] filter: CrawlTopicConnectionFilterInput first: Int = 100 """ Ordering options for CrawlTopicAggregates returned from the connection. """ orderBy: [CrawlTopicAggregateOrder!]! = [] ): CrawlTopicAggregateConnection """ Returns all_pages basic Report rows counts for all provided crawlTypes and their intersections. """ crawlTypeCounts(input: CrawlTypeCountsInput!): [CrawlTypeCount!] crawlTypes: [CrawlType!]! crawlUrlsAggregates( after: String dimensions: [CrawlUrlAggregateDimension!]! = [] filter: CrawlUrlConnectionFilterInput first: Int = 100 """ Ordering options for CrawlUrlAggregates returned from the connection. """ orderBy: [CrawlUrlAggregateOrder!]! = [] ): CrawlUrlAggregateConnection crawlUrlsTotal: Int crawledAt: DateTime crawlerType: CrawlerType! crawlingAt: DateTime createdAt: DateTime! """ Basic information about the User who started the Crawl. """ createdByUser: UserInfo customMetricContainerVersionCrawls(after: String, before: String, first: Int = 15, last: Int): CustomMetricContainerVersionCrawlConnection customMetricUploadContainerCrawls(after: String, before: String, first: Int = 15, last: Int): CustomMetricUploadContainerCrawlConnection customMetrics: [CustomMetric!] customReports(customReportTemplateIds: [ObjectID!], includeAllSegments: Boolean, segmentId: ObjectID = null): [CustomReport!]! errorMessage: String @deprecated(reason: "Legacy field. No longer in use.") erroredAt: DateTime @deprecated(reason: "Legacy timestamp. No longer in use.") externalSourceExtractions( after: String before: String """ Filtering options for ExternalSourceExtractions returned from the connection. """ filter: ExternalSourceExtractionConnectionFilterInput first: Int = 15 last: Int """ Ordering options for ExternalSourceExtractions returned from the connection. """ orderBy: [ExternalSourceExtractionOrder!] ): ExternalSourceExtractionConnection! finishedAt: DateTime fsmExtTransitionedAt: DateTime fsmTransitionedAt: DateTime """ Returns the health score trend for a report category code. """ healthScore(reportCategoryCode: String!, segmentId: ObjectID): [CrawlHealthScoreItem!]! """ Returns the Crawl's health scores for a list of report category codes. """ healthScores(reportCategoryCodes: [String!]!): [CrawlHealthScoreItem!]! id: ObjectID! incomplete: Boolean isContainer: Boolean! @deprecated(reason: "No longer in use.") isScheduled: Boolean metricsServerId: MetricsServerId! parquetFiles(datasourceName: [String!]): [CrawlParquetFile!] pauseReason: PauseReason populatingAt: DateTime priority: CrawlPriority! processingAt: DateTime @deprecated(reason: "Legacy timestamp. No longer in use. Use Crawl.crawledAt instead.") project: Project! projectId: ObjectID! rawID: String! readyAt: DateTime reportCategoriesSnapshot: [CrawlReportCategorySnapshotItem!] reportDownloads( after: String before: String """ Filtering options for ReportDownloads returned from the connection. """ filter: ReportDownloadConnectionFilterInput first: Int = 15 last: Int """ Ordering options for ReportDownloads returned from the connection. """ orderBy: [ReportDownloadOrder!] ): ReportDownloadConnection reportGenerationRequestedAt: DateTime reportStat(reportTemplateCode: String!, segmentId: ObjectID): ReportStat reportStats(includeAggregateReportStats: Boolean, includeAllSegments: Boolean, reportTemplateCodes: [String!], segmentId: ObjectID): [ReportStat!]! scheduleRunningEmailSentAt: DateTime """ The schema templates the crawl runs with: the project's version when the crawl was created. Null when the crawl runs without schema templates. """ schemaTemplateSet: SchemaTemplateSetVersion startedByApi: Boolean! @deprecated(reason: "Legacy setting. No longer in use.") status: String! @deprecated(reason: "Use statusEnum instead.") statusEnum: CrawlStatus! totalStepLinks: BigInt totalSteps: Int transformedAt: DateTime transformingAt: DateTime updatedAt: DateTime! useRobotsOverwrite: Boolean! @deprecated(reason: "Legacy setting. No longer in use. Use CrawlSetting.useRobotsOverwrite instead.") } type CrawlAccessibilityIssue { axeResultsGroup: String base64Image: String bgAverage: String bgMaxColor: String bgMinColor: String bgStdv: String boundingBox: String category: String computedDescription: String computedName: String contrastRatio: Float contrastRatioAverage: Float elementSelectorCount: Int elementSource: String exampleElementSelector: String exampleUrl: String exampleUrlDigest: String fontColor: String fontSize: Float fontWeight: String gaPageviews: Int gaVisits: Int gscClicks: Int isFontLarge: Boolean isImageInAnchor: Boolean issueDescription: String issueDigest: String! issueSeverity: String issueType: String legal: [String!] legalCount: Int manualReviewNeededCount: Int needsManualReview: String noManualReviewNeededCount: Int passProbability: String ruleId: String safeContrastZone: Float segmentIds: [Int!] segmentIdsCount: Int segmentNames: [String!] segmentNamesCount: Int stDevWeightedRgb: Float surroundingTextColor: String urlCount: Int wcagLevel: String wcagSuccessCriteria: String wcagVersion: Float } type CrawlAccessibilityIssueAggregate { avg: CrawlAccessibilityIssueAvgCalculation! count: CrawlAccessibilityIssueCountCalculation! max: CrawlAccessibilityIssueMaxCalculation! min: CrawlAccessibilityIssueMinCalculation! needsManualReview: Boolean sum: CrawlAccessibilityIssueSumCalculation! } type CrawlAccessibilityIssueAggregateConnection { """ A list of nodes. """ nodes: [CrawlAccessibilityIssueAggregate!]! """ Information to aid in pagination. """ pageInfo: PageInfo! """ Identifies the total count of CrawlAccessibilityIssueAggregates in the connection. """ totalCount: Int! } """ Used for grouping the CrawlAccessibilityIssue aggregates results. """ enum CrawlAccessibilityIssueAggregateDimension { needsManualReview } input CrawlAccessibilityIssueAggregateOrder { """ The ordering direction. """ direction: OrderDirection! """ The dimension or aggregation to order by. """ field: CrawlAccessibilityIssueAggregateOrderField! } enum CrawlAccessibilityIssueAggregateOrderField { avgElementSelectorCount countElementSelectorCount maxElementSelectorCount minElementSelectorCount needsManualReview sumElementSelectorCount } type CrawlAccessibilityIssueAvgCalculation { elementSelectorCount: Float } type CrawlAccessibilityIssueConnection { """ A list of edges. """ edges: [CrawlAccessibilityIssueEdge!]! """ A list of nodes. """ nodes: [CrawlAccessibilityIssue!]! """ Information to aid in pagination. """ pageInfo: PageInfo! """ Identifies the total count of CrawlAccessibilityIssues in the connection. """ totalCount: Int! } input CrawlAccessibilityIssueConnectionFilterInput { """ Groups each filter object using AND """ _and: [CrawlAccessibilityIssueConnectionFilterInput!] """ Groups each filter object using AND, wrapped inside NOT """ _not: [CrawlAccessibilityIssueConnectionFilterInput!] """ Groups each filter object using OR """ _or: [CrawlAccessibilityIssueConnectionFilterInput!] axeResultsGroup: ConnectionStringFilterInput bgAverage: ConnectionStringFilterInput bgMaxColor: ConnectionStringFilterInput bgMinColor: ConnectionStringFilterInput bgStdv: ConnectionStringFilterInput category: ConnectionStringFilterInput computedDescription: ConnectionStringFilterInput computedName: ConnectionStringFilterInput contrastRatio: ConnectionFloatFilterInput contrastRatioAverage: ConnectionFloatFilterInput elementSelectorCount: ConnectionIntFilterInput elementSource: ConnectionStringFilterInput exampleElementSelector: ConnectionStringFilterInput exampleUrl: ConnectionStringFilterInput exampleUrlDigest: ConnectionStringFilterInput fontColor: ConnectionStringFilterInput fontSize: ConnectionFloatFilterInput fontWeight: ConnectionStringFilterInput gaPageviews: ConnectionIntFilterInput gaVisits: ConnectionIntFilterInput gscClicks: ConnectionIntFilterInput isFontLarge: ConnectionBooleanFilterInput isImageInAnchor: ConnectionBooleanFilterInput issueDescription: ConnectionStringFilterInput issueDigest: ConnectionStringFilterInput issueSeverity: ConnectionStringFilterInput issueType: ConnectionStringFilterInput legal: ConnectionStringArrayFilterInput legalCount: ConnectionIntFilterInput manualReviewNeededCount: ConnectionIntFilterInput needsManualReview: ConnectionStringFilterInput noManualReviewNeededCount: ConnectionIntFilterInput passProbability: ConnectionStringFilterInput ruleId: ConnectionStringFilterInput safeContrastZone: ConnectionFloatFilterInput segmentIds: ConnectionIntArrayFilterInput segmentIdsCount: ConnectionIntFilterInput segmentNames: ConnectionStringArrayFilterInput segmentNamesCount: ConnectionIntFilterInput stDevWeightedRgb: ConnectionFloatFilterInput surroundingTextColor: ConnectionStringFilterInput urlCount: ConnectionIntFilterInput wcagLevel: ConnectionStringFilterInput wcagSuccessCriteria: ConnectionStringFilterInput wcagVersion: ConnectionFloatFilterInput } type CrawlAccessibilityIssueCountCalculation { elementSelectorCount: Int! } type CrawlAccessibilityIssueEdge { """ A cursor to use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: CrawlAccessibilityIssue! } type CrawlAccessibilityIssueInstance { axeResultsGroup: String bgAverage: String bgMaxColor: String bgMinColor: String bgStdv: String boundingBox: String category: String computedDescription: String computedName: String contrastRatio: Float contrastRatioAverage: Float elementSelector: String elementSelectorDigest: String elementSource: String fontColor: String fontSize: Float fontWeight: String gaPageviews: Int gaVisits: Int gscClicks: Int instanceIndex: Int! isFontLarge: Boolean isImageInAnchor: Boolean issueDescription: String issueDigest: String! issueSeverity: String issueType: String legal: [String!] legalCount: Int needsManualReview: Boolean passProbability: String ruleId: String safeContrastZone: Float segmentIds: [Int!] segmentIdsCount: Int segmentNames: [String!] segmentNamesCount: Int stDevWeightedRgb: Float surroundingTextColor: String url: String urlDigest: String! wcagLevel: String wcagSuccessCriteria: String wcagVersion: Float } type CrawlAccessibilityIssueInstanceConnection { """ A list of edges. """ edges: [CrawlAccessibilityIssueInstanceEdge!]! """ A list of nodes. """ nodes: [CrawlAccessibilityIssueInstance!]! """ Information to aid in pagination. """ pageInfo: PageInfo! """ Identifies the total count of CrawlAccessibilityIssueInstances in the connection. """ totalCount: Int! } input CrawlAccessibilityIssueInstanceConnectionFilterInput { """ Groups each filter object using AND """ _and: [CrawlAccessibilityIssueInstanceConnectionFilterInput!] """ Groups each filter object using AND, wrapped inside NOT """ _not: [CrawlAccessibilityIssueInstanceConnectionFilterInput!] """ Groups each filter object using OR """ _or: [CrawlAccessibilityIssueInstanceConnectionFilterInput!] axeResultsGroup: ConnectionStringFilterInput bgAverage: ConnectionStringFilterInput bgMaxColor: ConnectionStringFilterInput bgMinColor: ConnectionStringFilterInput bgStdv: ConnectionStringFilterInput category: ConnectionStringFilterInput computedDescription: ConnectionStringFilterInput computedName: ConnectionStringFilterInput contrastRatio: ConnectionFloatFilterInput contrastRatioAverage: ConnectionFloatFilterInput elementSelector: ConnectionStringFilterInput elementSelectorDigest: ConnectionStringFilterInput elementSource: ConnectionStringFilterInput fontColor: ConnectionStringFilterInput fontSize: ConnectionFloatFilterInput fontWeight: ConnectionStringFilterInput gaPageviews: ConnectionIntFilterInput gaVisits: ConnectionIntFilterInput gscClicks: ConnectionIntFilterInput instanceIndex: ConnectionIntFilterInput isFontLarge: ConnectionBooleanFilterInput isImageInAnchor: ConnectionBooleanFilterInput issueDescription: ConnectionStringFilterInput issueDigest: ConnectionStringFilterInput issueSeverity: ConnectionStringFilterInput issueType: ConnectionStringFilterInput legal: ConnectionStringArrayFilterInput legalCount: ConnectionIntFilterInput needsManualReview: ConnectionBooleanFilterInput passProbability: ConnectionStringFilterInput ruleId: ConnectionStringFilterInput safeContrastZone: ConnectionFloatFilterInput segmentIds: ConnectionIntArrayFilterInput segmentIdsCount: ConnectionIntFilterInput segmentNames: ConnectionStringArrayFilterInput segmentNamesCount: ConnectionIntFilterInput stDevWeightedRgb: ConnectionFloatFilterInput surroundingTextColor: ConnectionStringFilterInput url: ConnectionStringFilterInput urlDigest: ConnectionStringFilterInput wcagLevel: ConnectionStringFilterInput wcagSuccessCriteria: ConnectionStringFilterInput wcagVersion: ConnectionFloatFilterInput } type CrawlAccessibilityIssueInstanceEdge { """ A cursor to use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: CrawlAccessibilityIssueInstance! } input CrawlAccessibilityIssueInstanceOrder { """ The ordering direction. """ direction: OrderDirection! """ The field to order CrawlAccessibilityIssueInstances by. """ field: CrawlAccessibilityIssueInstanceOrderField! } enum CrawlAccessibilityIssueInstanceOrderField { axeResultsGroup bgAverage bgMaxColor bgMinColor bgStdv category computedDescription computedName contrastRatio contrastRatioAverage elementSelector elementSelectorDigest elementSource fontColor fontSize fontWeight gaPageviews gaVisits gscClicks instanceIndex isFontLarge isImageInAnchor issueDescription issueDigest issueSeverity issueType legalCount needsManualReview passProbability ruleId safeContrastZone segmentIdsCount segmentNamesCount stDevWeightedRgb surroundingTextColor url urlDigest wcagLevel wcagSuccessCriteria wcagVersion } type CrawlAccessibilityIssueMaxCalculation { elementSelectorCount: Int } type CrawlAccessibilityIssueMinCalculation { elementSelectorCount: Int } input CrawlAccessibilityIssueOrder { """ The ordering direction. """ direction: OrderDirection! """ The field to order CrawlAccessibilityIssues by. """ field: CrawlAccessibilityIssueOrderField! } enum CrawlAccessibilityIssueOrderField { axeResultsGroup bgAverage bgMaxColor bgMinColor bgStdv category computedDescription computedName contrastRatio contrastRatioAverage elementSelectorCount elementSource exampleElementSelector exampleUrl exampleUrlDigest fontColor fontSize fontWeight gaPageviews gaVisits gscClicks isFontLarge isImageInAnchor issueDescription issueDigest issueSeverity issueType legalCount manualReviewNeededCount needsManualReview noManualReviewNeededCount passProbability ruleId safeContrastZone segmentIdsCount segmentNamesCount stDevWeightedRgb surroundingTextColor urlCount wcagLevel wcagSuccessCriteria wcagVersion } type CrawlAccessibilityIssueSumCalculation { elementSelectorCount: BigInt } type CrawlAiVisibilityPrompt { content: String! country: String topicId: Int! } type CrawlAiVisibilityPromptConnection { """ A list of edges. """ edges: [CrawlAiVisibilityPromptEdge!]! """ A list of nodes. """ nodes: [CrawlAiVisibilityPrompt!]! """ Information to aid in pagination. """ pageInfo: PageInfo! """ Identifies the total count of CrawlAiVisibilityPrompts in the connection. """ totalCount: Int! } input CrawlAiVisibilityPromptConnectionFilterInput { """ Groups each filter object using AND """ _and: [CrawlAiVisibilityPromptConnectionFilterInput!] """ Groups each filter object using AND, wrapped inside NOT """ _not: [CrawlAiVisibilityPromptConnectionFilterInput!] """ Groups each filter object using OR """ _or: [CrawlAiVisibilityPromptConnectionFilterInput!] content: ConnectionStringFilterInput country: ConnectionStringFilterInput topicId: ConnectionIntFilterInput } type CrawlAiVisibilityPromptEdge { """ A cursor to use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: CrawlAiVisibilityPrompt! } input CrawlAiVisibilityPromptOrder { """ The ordering direction. """ direction: OrderDirection! """ The field to order CrawlAiVisibilityPrompts by. """ field: CrawlAiVisibilityPromptOrderField! } enum CrawlAiVisibilityPromptOrderField { content country topicId } type CrawlAnalyticsAiReferral { aiBounceRateAvg: Float! aiPageviewsSum: Int! aiSessionSource: String! aiSessionsSum: Int! aiUsersSum: Int! platform: String } type CrawlAnalyticsAiReferralAggregate { avg: CrawlAnalyticsAiReferralAvgCalculation! count: CrawlAnalyticsAiReferralCountCalculation! max: CrawlAnalyticsAiReferralMaxCalculation! min: CrawlAnalyticsAiReferralMinCalculation! platform: String sum: CrawlAnalyticsAiReferralSumCalculation! } type CrawlAnalyticsAiReferralAggregateConnection { """ A list of nodes. """ nodes: [CrawlAnalyticsAiReferralAggregate!]! """ Information to aid in pagination. """ pageInfo: PageInfo! """ Identifies the total count of CrawlAnalyticsAiReferralAggregates in the connection. """ totalCount: Int! } """ Used for grouping the CrawlAnalyticsAiReferral aggregates results. """ enum CrawlAnalyticsAiReferralAggregateDimension { platform } input CrawlAnalyticsAiReferralAggregateOrder { """ The ordering direction. """ direction: OrderDirection! """ The dimension or aggregation to order by. """ field: CrawlAnalyticsAiReferralAggregateOrderField! } enum CrawlAnalyticsAiReferralAggregateOrderField { avgAiBounceRateAvg avgAiPageviewsSum avgAiSessionsSum avgAiUsersSum countAiBounceRateAvg countAiPageviewsSum countAiSessionsSum countAiUsersSum maxAiBounceRateAvg maxAiPageviewsSum maxAiSessionsSum maxAiUsersSum minAiBounceRateAvg minAiPageviewsSum minAiSessionsSum minAiUsersSum platform sumAiBounceRateAvg sumAiPageviewsSum sumAiSessionsSum sumAiUsersSum } type CrawlAnalyticsAiReferralAvgCalculation { aiBounceRateAvg: Float aiPageviewsSum: Float aiSessionsSum: Float aiUsersSum: Float } type CrawlAnalyticsAiReferralConnection { """ A list of edges. """ edges: [CrawlAnalyticsAiReferralEdge!]! """ A list of nodes. """ nodes: [CrawlAnalyticsAiReferral!]! """ Information to aid in pagination. """ pageInfo: PageInfo! """ Identifies the total count of CrawlAnalyticsAiReferrals in the connection. """ totalCount: Int! } input CrawlAnalyticsAiReferralConnectionFilterInput { """ Groups each filter object using AND """ _and: [CrawlAnalyticsAiReferralConnectionFilterInput!] """ Groups each filter object using AND, wrapped inside NOT """ _not: [CrawlAnalyticsAiReferralConnectionFilterInput!] """ Groups each filter object using OR """ _or: [CrawlAnalyticsAiReferralConnectionFilterInput!] aiBounceRateAvg: ConnectionFloatFilterInput aiPageviewsSum: ConnectionIntFilterInput aiSessionSource: ConnectionStringFilterInput aiSessionsSum: ConnectionIntFilterInput aiUsersSum: ConnectionIntFilterInput platform: ConnectionStringFilterInput } type CrawlAnalyticsAiReferralCountCalculation { aiBounceRateAvg: Int! aiPageviewsSum: Int! aiSessionsSum: Int! aiUsersSum: Int! } type CrawlAnalyticsAiReferralEdge { """ A cursor to use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: CrawlAnalyticsAiReferral! } type CrawlAnalyticsAiReferralMaxCalculation { aiBounceRateAvg: Float aiPageviewsSum: Int aiSessionsSum: Int aiUsersSum: Int } type CrawlAnalyticsAiReferralMinCalculation { aiBounceRateAvg: Float aiPageviewsSum: Int aiSessionsSum: Int aiUsersSum: Int } input CrawlAnalyticsAiReferralOrder { """ The ordering direction. """ direction: OrderDirection! """ The field to order CrawlAnalyticsAiReferrals by. """ field: CrawlAnalyticsAiReferralOrderField! } enum CrawlAnalyticsAiReferralOrderField { aiBounceRateAvg aiPageviewsSum aiSessionSource aiSessionsSum aiUsersSum platform } type CrawlAnalyticsAiReferralSumCalculation { aiBounceRateAvg: Float aiPageviewsSum: BigInt aiSessionsSum: BigInt aiUsersSum: BigInt } type CrawlConnection { """ A list of edges. """ edges: [CrawlEdge!]! """ A list of nodes. """ nodes: [Crawl!]! """ Information to aid in pagination. """ pageInfo: PageInfo! """ Identifies the total count of Crawls in the connection. """ totalCount: Int! } input CrawlConnectionFilterInput { """ Groups each filter object using AND """ _and: [CrawlConnectionFilterInput!] """ Groups each filter object using AND, wrapped inside NOT """ _not: [CrawlConnectionFilterInput!] """ Groups each filter object using OR """ _or: [CrawlConnectionFilterInput!] archivedAt: ConnectionDateFilterInput brokenAt: ConnectionDateFilterInput @deprecated(reason: "Legacy timestamp. No longer in use.") canceledAt: ConnectionDateFilterInput crawlLevels: ConnectionStringFilterInput crawlUrlsTotal: ConnectionIntFilterInput crawledAt: ConnectionDateFilterInput crawlingAt: ConnectionDateFilterInput createdAt: ConnectionDateFilterInput errorMessage: ConnectionStringFilterInput @deprecated(reason: "Legacy field. No longer in use.") erroredAt: ConnectionDateFilterInput @deprecated(reason: "Legacy timestamp. No longer in use.") finishedAt: ConnectionDateFilterInput fsmExtTransitionedAt: ConnectionDateFilterInput fsmTransitionedAt: ConnectionDateFilterInput incomplete: ConnectionBooleanFilterInput isContainer: ConnectionBooleanFilterInput @deprecated(reason: "No longer in use.") isScheduled: ConnectionBooleanFilterInput populatingAt: ConnectionDateFilterInput priority: ConnectionCrawlPriorityFilterInput processingAt: ConnectionDateFilterInput @deprecated(reason: "Legacy timestamp. No longer in use. Use Crawl.crawledAt instead.") readyAt: ConnectionDateFilterInput reportGenerationRequestedAt: ConnectionDateFilterInput scheduleRunningEmailSentAt: ConnectionDateFilterInput startedByApi: ConnectionBooleanFilterInput @deprecated(reason: "Legacy setting. No longer in use.") status: ConnectionStringFilterInput statusEnum: ConnectionCrawlStatusFilterInput totalStepLinks: ConnectionBigIntFilterInput totalSteps: ConnectionIntFilterInput transformedAt: ConnectionDateFilterInput transformingAt: ConnectionDateFilterInput updatedAt: ConnectionDateFilterInput useRobotsOverwrite: ConnectionBooleanFilterInput @deprecated(reason: "Legacy setting. No longer in use. Use CrawlSetting.useRobotsOverwrite instead.") } type CrawlDatasource { datasourceCode: DatasourceCode! """ Retrieve a single row by primary identifier, e.g. urlDigest in case of CrawlUrls datasource. """ resource(id: String!): CrawlDatasourceResource } type CrawlDatasourceConnection { """ A list of edges. """ edges: [CrawlDatasourceEdge!]! """ A list of nodes. """ nodes: [CrawlDatasource!]! """ Information to aid in pagination. """ pageInfo: PageInfo! """ Identifies the total count of CrawlDatasources in the connection. """ totalCount: Int! } input CrawlDatasourceConnectionFilterInput { """ Groups each filter object using AND """ _and: [CrawlDatasourceConnectionFilterInput!] """ Groups each filter object using AND, wrapped inside NOT """ _not: [CrawlDatasourceConnectionFilterInput!] """ Groups each filter object using OR """ _or: [CrawlDatasourceConnectionFilterInput!] datasourceCode: ConnectionDatasourceCodeFilterInput } type CrawlDatasourceEdge { """ A cursor to use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: CrawlDatasource! } input CrawlDatasourceOrder { """ The ordering direction. """ direction: OrderDirection! """ The field to order CrawlDatasources by. """ field: CrawlDatasourceOrderField! } enum CrawlDatasourceOrderField { datasourceCode } type CrawlDatasourceResource { row: ReportRow! rowWithAllMetrics: JSONObject! } type CrawlDuplicateUrl { canonicalUrl: String canonicalUrlDigest: String contentSize: Int deeprank: Float description: String descriptionLength: Int descriptionLengthPx: Int duplicateCount: Int duplicateNonIndexable: Boolean duplicateType: String! exampleDuplicate1: String exampleDuplicate2: String exampleDuplicateDigest1: String exampleDuplicateDigest2: String foundAtSitemap: String foundAtUrl: String h1Tag: [String!] h1TagCount: Int htmlSize: Int httpStatusCode: Int indexable: Boolean level: Int ogTitle: String pageTitle: String pageTitleLength: Int pageTitleLengthPx: Int primaryUrl: String primaryUrlDigest: String! wordCount: Int } type CrawlDuplicateUrlConnection { """ A list of edges. """ edges: [CrawlDuplicateUrlEdge!]! """ A list of nodes. """ nodes: [CrawlDuplicateUrl!]! """ Information to aid in pagination. """ pageInfo: PageInfo! """ Identifies the total count of CrawlDuplicateUrls in the connection. """ totalCount: Int! } input CrawlDuplicateUrlConnectionFilterInput { """ Groups each filter object using AND """ _and: [CrawlDuplicateUrlConnectionFilterInput!] """ Groups each filter object using AND, wrapped inside NOT """ _not: [CrawlDuplicateUrlConnectionFilterInput!] """ Groups each filter object using OR """ _or: [CrawlDuplicateUrlConnectionFilterInput!] canonicalUrl: ConnectionStringFilterInput canonicalUrlDigest: ConnectionStringFilterInput contentSize: ConnectionIntFilterInput deeprank: ConnectionFloatFilterInput description: ConnectionStringFilterInput descriptionLength: ConnectionIntFilterInput descriptionLengthPx: ConnectionIntFilterInput duplicateCount: ConnectionIntFilterInput duplicateNonIndexable: ConnectionBooleanFilterInput duplicateType: ConnectionStringFilterInput exampleDuplicate1: ConnectionStringFilterInput exampleDuplicate2: ConnectionStringFilterInput exampleDuplicateDigest1: ConnectionStringFilterInput exampleDuplicateDigest2: ConnectionStringFilterInput foundAtSitemap: ConnectionStringFilterInput foundAtUrl: ConnectionStringFilterInput h1Tag: ConnectionStringArrayFilterInput h1TagCount: ConnectionIntFilterInput htmlSize: ConnectionIntFilterInput httpStatusCode: ConnectionIntFilterInput indexable: ConnectionBooleanFilterInput level: ConnectionIntFilterInput ogTitle: ConnectionStringFilterInput pageTitle: ConnectionStringFilterInput pageTitleLength: ConnectionIntFilterInput pageTitleLengthPx: ConnectionIntFilterInput primaryUrl: ConnectionStringFilterInput primaryUrlDigest: ConnectionStringFilterInput wordCount: ConnectionIntFilterInput } type CrawlDuplicateUrlEdge { """ A cursor to use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: CrawlDuplicateUrl! } input CrawlDuplicateUrlOrder { """ The ordering direction. """ direction: OrderDirection! """ The field to order CrawlDuplicateUrls by. """ field: CrawlDuplicateUrlOrderField! } enum CrawlDuplicateUrlOrderField { canonicalUrl contentSize deeprank description descriptionLength descriptionLengthPx duplicateCount duplicateNonIndexable duplicateType exampleDuplicate1 exampleDuplicate2 foundAtSitemap foundAtUrl h1TagCount htmlSize httpStatusCode indexable level ogTitle pageTitle pageTitleLength pageTitleLengthPx primaryUrl wordCount } type CrawlEdge { """ A cursor to use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: Crawl! } type CrawlHealthScore { crawlId: ObjectID! healthScores: [CrawlHealthScoreItem!]! } type CrawlHealthScoreConnection { edges: [CrawlHealthScoreEdge!]! nodes: [CrawlHealthScore!]! pageInfo: PageInfo! totalCount: Int! } type CrawlHealthScoreEdge { """ Used in `before` and `after` args """ cursor: String! node: CrawlHealthScore! } type CrawlHealthScoreItem { categoryWeight: Float crawlId: Int! createdAt: DateTime healthScore: Float reportCategoryCode: String! segmentId: Int } type CrawlHealthScoreTrend { crawlId: ObjectID! healthScores: [CrawlHealthScoreItem!]! reportCategoryCode: String! } type CrawlHealthScoreTrendConnection { edges: [CrawlHealthScoreTrendEdge!]! nodes: [CrawlHealthScoreTrend!]! pageInfo: PageInfo! totalCount: Int! } type CrawlHealthScoreTrendEdge { """ Used in `before` and `after` args """ cursor: String! node: CrawlHealthScoreTrend! } type CrawlHreflangs { hreflangs: [String!] hreflangsCount: Int hreflangsDigest: String! urlCount: Int } type CrawlHreflangsConnection { """ A list of edges. """ edges: [CrawlHreflangsEdge!]! """ A list of nodes. """ nodes: [CrawlHreflangs!]! """ Information to aid in pagination. """ pageInfo: PageInfo! """ Identifies the total count of CrawlHreflangs in the connection. """ totalCount: Int! } input CrawlHreflangsConnectionFilterInput { """ Groups each filter object using AND """ _and: [CrawlHreflangsConnectionFilterInput!] """ Groups each filter object using AND, wrapped inside NOT """ _not: [CrawlHreflangsConnectionFilterInput!] """ Groups each filter object using OR """ _or: [CrawlHreflangsConnectionFilterInput!] hreflangs: ConnectionStringArrayFilterInput hreflangsCount: ConnectionIntFilterInput hreflangsDigest: ConnectionStringFilterInput urlCount: ConnectionIntFilterInput } type CrawlHreflangsEdge { """ A cursor to use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: CrawlHreflangs! } input CrawlHreflangsOrder { """ The ordering direction. """ direction: OrderDirection! """ The field to order CrawlHreflangs by. """ field: CrawlHreflangsOrderField! } enum CrawlHreflangsOrderField { hreflangsCount urlCount } type CrawlLevel { level: Int processedAt: DateTime! stepsProcessed: Int! } type CrawlLink { anchorText: String attrRel: String attrRelId: Int attrType: String dominantLanguagesHreflangMismatch: Boolean handheld: Boolean hreflang: String hreflangLanguage: String hreflangReciprocate: Boolean identifiedHreflangLanguageMismatch: Boolean internal: Boolean isHreflang: Boolean isRedirect: Boolean isRestricted: Boolean isValidHreflang: Boolean linkDigest: String linkType: String linkTypeId: Int mobile: Boolean relUrlFrom: String relUrlFromDigest: String tag: String! tagId: Int! urlFrom: String urlFromAlias: String urlFromAliasDigest: String urlFromDeeprank: Float urlFromDigest: String! urlFromHttps: Boolean urlFromStatusCode: Int urlFromStatusCodeId: Float urlFromTitle: String urlTo: String urlToAlias: String urlToAliasDigest: String urlToDeeprank: Float urlToDigest: String urlToDominantLanguages: [String!] urlToHttps: Boolean urlToIdentifiedLanguage: String urlToStatusCode: Int urlToStatusCodeId: Int urlToTitle: String } type CrawlLinkConnection { """ A list of edges. """ edges: [CrawlLinkEdge!]! """ A list of nodes. """ nodes: [CrawlLink!]! """ Information to aid in pagination. """ pageInfo: PageInfo! """ Identifies the total count of CrawlLinks in the connection. """ totalCount: Int! } input CrawlLinkConnectionFilterInput { """ Groups each filter object using AND """ _and: [CrawlLinkConnectionFilterInput!] """ Groups each filter object using AND, wrapped inside NOT """ _not: [CrawlLinkConnectionFilterInput!] """ Groups each filter object using OR """ _or: [CrawlLinkConnectionFilterInput!] anchorText: ConnectionStringFilterInput attrRel: ConnectionStringFilterInput attrType: ConnectionStringFilterInput dominantLanguagesHreflangMismatch: ConnectionBooleanFilterInput handheld: ConnectionBooleanFilterInput hreflang: ConnectionStringFilterInput hreflangLanguage: ConnectionStringFilterInput hreflangReciprocate: ConnectionBooleanFilterInput identifiedHreflangLanguageMismatch: ConnectionBooleanFilterInput internal: ConnectionBooleanFilterInput isHreflang: ConnectionBooleanFilterInput isRedirect: ConnectionBooleanFilterInput isRestricted: ConnectionBooleanFilterInput isValidHreflang: ConnectionBooleanFilterInput linkDigest: ConnectionStringFilterInput linkType: ConnectionStringFilterInput mobile: ConnectionBooleanFilterInput relUrlFrom: ConnectionStringFilterInput relUrlFromDigest: ConnectionStringFilterInput tag: ConnectionStringFilterInput urlFrom: ConnectionStringFilterInput urlFromAlias: ConnectionStringFilterInput urlFromAliasDigest: ConnectionStringFilterInput urlFromDeeprank: ConnectionFloatFilterInput urlFromDigest: ConnectionStringFilterInput urlFromHttps: ConnectionBooleanFilterInput urlFromStatusCode: ConnectionIntFilterInput urlFromStatusCodeId: ConnectionFloatFilterInput urlFromTitle: ConnectionStringFilterInput urlTo: ConnectionStringFilterInput urlToAlias: ConnectionStringFilterInput urlToAliasDigest: ConnectionStringFilterInput urlToDeeprank: ConnectionFloatFilterInput urlToDigest: ConnectionStringFilterInput urlToDominantLanguages: ConnectionStringArrayFilterInput urlToHttps: ConnectionBooleanFilterInput urlToIdentifiedLanguage: ConnectionStringFilterInput urlToStatusCode: ConnectionIntFilterInput urlToTitle: ConnectionStringFilterInput } type CrawlLinkEdge { """ A cursor to use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: CrawlLink! } input CrawlLinkOrder { """ The ordering direction. """ direction: OrderDirection! """ The field to order CrawlLinks by. """ field: CrawlLinkOrderField! } enum CrawlLinkOrderField { anchorText attrRel attrType dominantLanguagesHreflangMismatch handheld hreflang hreflangLanguage hreflangReciprocate identifiedHreflangLanguageMismatch internal isHreflang isRedirect isRestricted isValidHreflang linkType mobile relUrlFrom tag urlFrom urlFromAlias urlFromDeeprank urlFromHttps urlFromStatusCode urlFromTitle urlTo urlToAlias urlToDeeprank urlToHttps urlToIdentifiedLanguage urlToStatusCode urlToTitle } type CrawlLinkedDomain { domain: String! domainAlias: String linkCount: Int } type CrawlLinkedDomainConnection { """ A list of edges. """ edges: [CrawlLinkedDomainEdge!]! """ A list of nodes. """ nodes: [CrawlLinkedDomain!]! """ Information to aid in pagination. """ pageInfo: PageInfo! """ Identifies the total count of CrawlLinkedDomains in the connection. """ totalCount: Int! } input CrawlLinkedDomainConnectionFilterInput { """ Groups each filter object using AND """ _and: [CrawlLinkedDomainConnectionFilterInput!] """ Groups each filter object using AND, wrapped inside NOT """ _not: [CrawlLinkedDomainConnectionFilterInput!] """ Groups each filter object using OR """ _or: [CrawlLinkedDomainConnectionFilterInput!] domain: ConnectionStringFilterInput linkCount: ConnectionIntFilterInput } type CrawlLinkedDomainEdge { """ A cursor to use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: CrawlLinkedDomain! } input CrawlLinkedDomainOrder { """ The ordering direction. """ direction: OrderDirection! """ The field to order CrawlLinkedDomains by. """ field: CrawlLinkedDomainOrderField! } enum CrawlLinkedDomainOrderField { linkCount } type CrawlLogSummariesAiBot { aiBot: String! logRequests: Int! platform: String! } type CrawlLogSummariesAiBotAggregate { avg: CrawlLogSummariesAiBotAvgCalculation! count: CrawlLogSummariesAiBotCountCalculation! max: CrawlLogSummariesAiBotMaxCalculation! min: CrawlLogSummariesAiBotMinCalculation! platform: String! sum: CrawlLogSummariesAiBotSumCalculation! } type CrawlLogSummariesAiBotAggregateConnection { """ A list of nodes. """ nodes: [CrawlLogSummariesAiBotAggregate!]! """ Information to aid in pagination. """ pageInfo: PageInfo! """ Identifies the total count of CrawlLogSummariesAiBotAggregates in the connection. """ totalCount: Int! } """ Used for grouping the CrawlLogSummariesAiBot aggregates results. """ enum CrawlLogSummariesAiBotAggregateDimension { platform } input CrawlLogSummariesAiBotAggregateOrder { """ The ordering direction. """ direction: OrderDirection! """ The dimension or aggregation to order by. """ field: CrawlLogSummariesAiBotAggregateOrderField! } enum CrawlLogSummariesAiBotAggregateOrderField { avgLogRequests countLogRequests maxLogRequests minLogRequests platform sumLogRequests } type CrawlLogSummariesAiBotAggregateTrendItem { avg: CrawlLogSummariesAiBotAvgCalculation! count: CrawlLogSummariesAiBotCountCalculation! crawlCreatedAt: DateTime! crawlId: Int! max: CrawlLogSummariesAiBotMaxCalculation! min: CrawlLogSummariesAiBotMinCalculation! platform: String! sum: CrawlLogSummariesAiBotSumCalculation! } type CrawlLogSummariesAiBotAvgCalculation { logRequests: Float } type CrawlLogSummariesAiBotConnection { """ A list of edges. """ edges: [CrawlLogSummariesAiBotEdge!]! """ A list of nodes. """ nodes: [CrawlLogSummariesAiBot!]! """ Information to aid in pagination. """ pageInfo: PageInfo! """ Identifies the total count of CrawlLogSummariesAiBots in the connection. """ totalCount: Int! } input CrawlLogSummariesAiBotConnectionFilterInput { """ Groups each filter object using AND """ _and: [CrawlLogSummariesAiBotConnectionFilterInput!] """ Groups each filter object using AND, wrapped inside NOT """ _not: [CrawlLogSummariesAiBotConnectionFilterInput!] """ Groups each filter object using OR """ _or: [CrawlLogSummariesAiBotConnectionFilterInput!] aiBot: ConnectionStringFilterInput logRequests: ConnectionIntFilterInput platform: ConnectionStringFilterInput } type CrawlLogSummariesAiBotCountCalculation { logRequests: Int! } type CrawlLogSummariesAiBotEdge { """ A cursor to use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: CrawlLogSummariesAiBot! } type CrawlLogSummariesAiBotMaxCalculation { logRequests: Int } type CrawlLogSummariesAiBotMinCalculation { logRequests: Int } input CrawlLogSummariesAiBotOrder { """ The ordering direction. """ direction: OrderDirection! """ The field to order CrawlLogSummariesAiBots by. """ field: CrawlLogSummariesAiBotOrderField! } enum CrawlLogSummariesAiBotOrderField { aiBot logRequests platform } type CrawlLogSummariesAiBotSumCalculation { logRequests: BigInt } input CrawlOrder { """ The ordering direction. """ direction: OrderDirection! """ The field to order Crawls by. """ field: CrawlOrderField! } enum CrawlOrderField { archivedAt brokenAt @deprecated(reason: "Legacy timestamp. No longer in use.") canceledAt crawlLevels crawlUrlsTotal crawledAt crawlingAt createdAt errorMessage @deprecated(reason: "Legacy field. No longer in use.") erroredAt @deprecated(reason: "Legacy timestamp. No longer in use.") finishedAt fsmExtTransitionedAt fsmState fsmTransitionedAt id incomplete isContainer @deprecated(reason: "No longer in use.") isScheduled populatingAt priority processingAt @deprecated(reason: "Legacy timestamp. No longer in use. Use Crawl.crawledAt instead.") readyAt reportGenerationRequestedAt scheduleRunningEmailSentAt startedByApi @deprecated(reason: "Legacy setting. No longer in use.") status statusEnum totalStepLinks totalSteps transformedAt transformingAt updatedAt useRobotsOverwrite @deprecated(reason: "Legacy setting. No longer in use. Use CrawlSetting.useRobotsOverwrite instead.") } type CrawlOrigin { cruxCls: Float cruxClsGood: Float cruxClsModerate: Float cruxClsPoor: Float cruxFcp: Float cruxFcpGood: Float cruxFcpModerate: Float cruxFcpPoor: Float cruxItnp: Float cruxItnpGood: Float cruxItnpModerate: Float cruxItnpPoor: Float cruxLcp: Float cruxLcpGood: Float cruxLcpModerate: Float cruxLcpPoor: Float cruxMetricsWeight: Float cruxTtfb: Float cruxTtfbGood: Float cruxTtfbModerate: Float cruxTtfbPoor: Float origin: String! originDigest: String! urlsCount: Int! } type CrawlOriginConnection { """ A list of edges. """ edges: [CrawlOriginEdge!]! """ A list of nodes. """ nodes: [CrawlOrigin!]! """ Information to aid in pagination. """ pageInfo: PageInfo! """ Identifies the total count of CrawlOrigins in the connection. """ totalCount: Int! } input CrawlOriginConnectionFilterInput { """ Groups each filter object using AND """ _and: [CrawlOriginConnectionFilterInput!] """ Groups each filter object using AND, wrapped inside NOT """ _not: [CrawlOriginConnectionFilterInput!] """ Groups each filter object using OR """ _or: [CrawlOriginConnectionFilterInput!] cruxCls: ConnectionFloatFilterInput cruxClsGood: ConnectionFloatFilterInput cruxClsModerate: ConnectionFloatFilterInput cruxClsPoor: ConnectionFloatFilterInput cruxFcp: ConnectionFloatFilterInput cruxFcpGood: ConnectionFloatFilterInput cruxFcpModerate: ConnectionFloatFilterInput cruxFcpPoor: ConnectionFloatFilterInput cruxItnp: ConnectionFloatFilterInput cruxItnpGood: ConnectionFloatFilterInput cruxItnpModerate: ConnectionFloatFilterInput cruxItnpPoor: ConnectionFloatFilterInput cruxLcp: ConnectionFloatFilterInput cruxLcpGood: ConnectionFloatFilterInput cruxLcpModerate: ConnectionFloatFilterInput cruxLcpPoor: ConnectionFloatFilterInput cruxMetricsWeight: ConnectionFloatFilterInput cruxTtfb: ConnectionFloatFilterInput cruxTtfbGood: ConnectionFloatFilterInput cruxTtfbModerate: ConnectionFloatFilterInput cruxTtfbPoor: ConnectionFloatFilterInput origin: ConnectionStringFilterInput originDigest: ConnectionStringFilterInput urlsCount: ConnectionIntFilterInput } type CrawlOriginEdge { """ A cursor to use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: CrawlOrigin! } input CrawlOriginOrder { """ The ordering direction. """ direction: OrderDirection! """ The field to order CrawlOrigins by. """ field: CrawlOriginOrderField! } enum CrawlOriginOrderField { cruxCls cruxClsGood cruxClsModerate cruxClsPoor cruxFcp cruxFcpGood cruxFcpModerate cruxFcpPoor cruxItnp cruxItnpGood cruxItnpModerate cruxItnpPoor cruxLcp cruxLcpGood cruxLcpModerate cruxLcpPoor cruxTtfb cruxTtfbGood cruxTtfbModerate cruxTtfbPoor origin urlsCount } type CrawlParquetFile { datasourceName: String! expiresAt: DateTime @deprecated(reason: "File URLs have 1 week expiry and are available as long as Crawl is.") files: [String!]! } enum CrawlPriority { Default High } type CrawlProjectMetricsItem { containerExecutionFailures: [ContainerExecutionFailure!] containerExecutionFailuresCount: Int customMetrics: JSONObject itemKey: String! itemType: String! stepId: String! } type CrawlProjectMetricsItemConnection { """ A list of edges. """ edges: [CrawlProjectMetricsItemEdge!]! """ A list of nodes. """ nodes: [CrawlProjectMetricsItem!]! """ Information to aid in pagination. """ pageInfo: PageInfo! """ Identifies the total count of CrawlProjectMetricsItems in the connection. """ totalCount: Int! } input CrawlProjectMetricsItemConnectionFilterInput { """ Groups each filter object using AND """ _and: [CrawlProjectMetricsItemConnectionFilterInput!] """ Groups each filter object using AND, wrapped inside NOT """ _not: [CrawlProjectMetricsItemConnectionFilterInput!] """ Groups each filter object using OR """ _or: [CrawlProjectMetricsItemConnectionFilterInput!] containerExecutionFailures: ContainerExecutionFailureObjectArrayMemberConnectionFilterInput containerExecutionFailuresCount: ConnectionIntFilterInput customMetrics: JSONObject itemKey: ConnectionStringFilterInput itemType: ConnectionStringFilterInput stepId: ConnectionStringFilterInput } type CrawlProjectMetricsItemEdge { """ A cursor to use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: CrawlProjectMetricsItem! } input CrawlProjectMetricsItemOrder { """ The ordering direction. """ direction: OrderDirection! """ The field to order CrawlProjectMetricsItems by. """ field: CrawlProjectMetricsItemOrderField! } enum CrawlProjectMetricsItemOrderField { containerExecutionFailuresCount itemKey itemType stepId } type CrawlRate { aggregatedFailureRate: Float crawlingAt: DateTime! estimatedInternalRequestRate: Float rate: Float! requestStats: [RequestStatsItem!] } """ A single report category in the snapshot. """ type CrawlReportCategorySnapshotItem { abbreviation: String! code: String! description: String! healthScore: Boolean! name: String! parentCode: String position: Int! } type CrawlSearchQuery { clicks: Int ctr: Float hasPagesCompetingForRelevance: Boolean impressions: Int isAiFanOutQuery: Boolean isAiPrompt: Boolean isCrawled: Boolean isTargetSearchQuery: Boolean landingPagesCount: Int landingPagesSummary: [LandingPageSummary!] position: Float primaryLandingPageClicksShare: Float primaryLandingPageIsCrawled: Boolean primaryLandingPageUrl: String primaryLandingPageUrlDigest: String searchQuery: String! searchQueryDigest: String! searchQueryRelevance: Float searchVolume: Int searchVolumeTrend: [SearchVolumeTrend!] } type CrawlSearchQueryConnection { """ A list of edges. """ edges: [CrawlSearchQueryEdge!]! """ A list of nodes. """ nodes: [CrawlSearchQuery!]! """ Information to aid in pagination. """ pageInfo: PageInfo! """ Identifies the total count of CrawlSearchQueries in the connection. """ totalCount: Int! } input CrawlSearchQueryConnectionFilterInput { """ Groups each filter object using AND """ _and: [CrawlSearchQueryConnectionFilterInput!] """ Groups each filter object using AND, wrapped inside NOT """ _not: [CrawlSearchQueryConnectionFilterInput!] """ Groups each filter object using OR """ _or: [CrawlSearchQueryConnectionFilterInput!] clicks: ConnectionIntFilterInput ctr: ConnectionFloatFilterInput hasPagesCompetingForRelevance: ConnectionBooleanFilterInput impressions: ConnectionIntFilterInput isAiFanOutQuery: ConnectionBooleanFilterInput isAiPrompt: ConnectionBooleanFilterInput isCrawled: ConnectionBooleanFilterInput isTargetSearchQuery: ConnectionBooleanFilterInput landingPagesCount: ConnectionIntFilterInput position: ConnectionFloatFilterInput primaryLandingPageClicksShare: ConnectionFloatFilterInput primaryLandingPageIsCrawled: ConnectionBooleanFilterInput primaryLandingPageUrl: ConnectionStringFilterInput primaryLandingPageUrlDigest: ConnectionStringFilterInput searchQuery: ConnectionStringFilterInput searchQueryDigest: ConnectionStringFilterInput searchQueryRelevance: ConnectionFloatFilterInput searchVolume: ConnectionIntFilterInput } type CrawlSearchQueryEdge { """ A cursor to use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: CrawlSearchQuery! } input CrawlSearchQueryOrder { """ The ordering direction. """ direction: OrderDirection! """ The field to order CrawlSearchQueries by. """ field: CrawlSearchQueryOrderField! } enum CrawlSearchQueryOrderField { clicks ctr hasPagesCompetingForRelevance impressions isAiFanOutQuery isAiPrompt isCrawled isTargetSearchQuery landingPagesCount position primaryLandingPageClicksShare primaryLandingPageIsCrawled primaryLandingPageUrl primaryLandingPageUrlDigest searchQuery searchQueryRelevance searchVolume } type CrawlSearchQueryWithLandingPages { backlinkCount: Int clicks: Int ctr: Float descriptionRelevance: Float h1TagRelevance: Float impressions: Int isCrawled: Boolean isTargetSearchQuery: Boolean """ Whether this landing page came from the customer's target search query upload. False for a page discovered by vector search or reported by Search Console, null for crawls transformed before the metric was introduced. """ isUploadedLandingPage: Boolean mainContentRelevance: Float pageRelevance: Float pageTitleRelevance: Float position: Float searchQuery: String! searchQueryDigest: String! searchVolume: Int searchVolumeTrend: [SearchVolumeTrend!] url: String! urlDigest: String! } type CrawlSearchQueryWithLandingPagesConnection { """ A list of edges. """ edges: [CrawlSearchQueryWithLandingPagesEdge!]! """ A list of nodes. """ nodes: [CrawlSearchQueryWithLandingPages!]! """ Information to aid in pagination. """ pageInfo: PageInfo! """ Identifies the total count of CrawlSearchQueryWithLandingPages in the connection. """ totalCount: Int! } input CrawlSearchQueryWithLandingPagesConnectionFilterInput { """ Groups each filter object using AND """ _and: [CrawlSearchQueryWithLandingPagesConnectionFilterInput!] """ Groups each filter object using AND, wrapped inside NOT """ _not: [CrawlSearchQueryWithLandingPagesConnectionFilterInput!] """ Groups each filter object using OR """ _or: [CrawlSearchQueryWithLandingPagesConnectionFilterInput!] backlinkCount: ConnectionIntFilterInput clicks: ConnectionIntFilterInput ctr: ConnectionFloatFilterInput descriptionRelevance: ConnectionFloatFilterInput h1TagRelevance: ConnectionFloatFilterInput impressions: ConnectionIntFilterInput isCrawled: ConnectionBooleanFilterInput isTargetSearchQuery: ConnectionBooleanFilterInput isUploadedLandingPage: ConnectionBooleanFilterInput mainContentRelevance: ConnectionFloatFilterInput pageRelevance: ConnectionFloatFilterInput pageTitleRelevance: ConnectionFloatFilterInput position: ConnectionFloatFilterInput searchQuery: ConnectionStringFilterInput searchQueryDigest: ConnectionStringFilterInput searchVolume: ConnectionIntFilterInput url: ConnectionStringFilterInput urlDigest: ConnectionStringFilterInput } type CrawlSearchQueryWithLandingPagesEdge { """ A cursor to use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: CrawlSearchQueryWithLandingPages! } input CrawlSearchQueryWithLandingPagesOrder { """ The ordering direction. """ direction: OrderDirection! """ The field to order CrawlSearchQueryWithLandingPages by. """ field: CrawlSearchQueryWithLandingPagesOrderField! } enum CrawlSearchQueryWithLandingPagesOrderField { backlinkCount clicks ctr descriptionRelevance h1TagRelevance impressions isCrawled isTargetSearchQuery isUploadedLandingPage mainContentRelevance pageRelevance pageTitleRelevance position searchQuery searchVolume url } type CrawlSegment { crawl: Crawl! crawlId: Int! createdAt: DateTime! failedAt: DateTime failureReason: String generatedAt: DateTime generatingAt: DateTime reportStats(reportTemplateCodes: [String!]!): [ReportStat!]! segment: Segment! segmentId: Int! segmentVersion: Int! updatedAt: DateTime! } type CrawlSegmentConnection { """ A list of edges. """ edges: [CrawlSegmentEdge!]! """ A list of nodes. """ nodes: [CrawlSegment!]! """ Information to aid in pagination. """ pageInfo: PageInfo! """ Identifies the total count of CrawlSegments in the connection. """ totalCount: Int! } input CrawlSegmentConnectionFilterInput { """ Groups each filter object using AND """ _and: [CrawlSegmentConnectionFilterInput!] """ Groups each filter object using AND, wrapped inside NOT """ _not: [CrawlSegmentConnectionFilterInput!] """ Groups each filter object using OR """ _or: [CrawlSegmentConnectionFilterInput!] crawlId: ConnectionObjectIDFilterInput createdAt: ConnectionDateFilterInput failedAt: ConnectionDateFilterInput failureReason: ConnectionStringFilterInput generatedAt: ConnectionDateFilterInput generatingAt: ConnectionDateFilterInput segmentId: ConnectionObjectIDFilterInput segmentVersion: ConnectionIntFilterInput updatedAt: ConnectionDateFilterInput } type CrawlSegmentEdge { """ A cursor to use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: CrawlSegment! } type CrawlSegmentHealthScore { crawlId: ObjectID! healthScores: [CrawlHealthScoreItem!]! segment: Segment! segmentId: ObjectID } type CrawlSegmentHealthScoreConnection { edges: [CrawlSegmentHealthScoreEdge!]! nodes: [CrawlSegmentHealthScore!]! pageInfo: PageInfo! totalCount: Int! } type CrawlSegmentHealthScoreEdge { """ Used in `before` and `after` args """ cursor: String! node: CrawlSegmentHealthScore! } type CrawlSegmentHealthScoreTrend { crawlId: ObjectID! healthScores: [CrawlHealthScoreItem!]! reportCategoryCode: String! segment: Segment! segmentId: ObjectID } type CrawlSegmentHealthScoreTrendConnection { edges: [CrawlSegmentHealthScoreTrendEdge!]! nodes: [CrawlSegmentHealthScoreTrend!]! pageInfo: PageInfo! totalCount: Int! } type CrawlSegmentHealthScoreTrendEdge { """ Used in `before` and `after` args """ cursor: String! node: CrawlSegmentHealthScoreTrend! } input CrawlSegmentOrder { """ The ordering direction. """ direction: OrderDirection! """ The field to order CrawlSegments by. """ field: CrawlSegmentOrderField! } enum CrawlSegmentOrderField { createdAt failedAt failureReason generatedAt generatingAt segmentVersion updatedAt } type CrawlSetting { activeMaximumCrawlRateAdvanced: AdvancedCrawlRate aiFeaturesEnabled: Boolean! aiVisibilityAccountId: Int aiVisibilityProjectId: Int alertSetting: AlertSetting! applyCustomHeadersToNavigationRequestsOnly: Boolean! autoFinalizeOnCrawlLimits: Boolean! block3rdPartyCookies: Boolean! compareToCrawl: CompareToCrawl crawl4xxHreflangLinks: Boolean! crawl4xxLinks: Boolean! crawlDisallowedUrls1stLevel: Boolean! crawlHyperlinksExternal: Boolean! crawlHyperlinksInternal: Boolean! crawlImagesExternal: Boolean! crawlImagesInternal: Boolean! crawlNofollowHyperlinks: Boolean! crawlNonHtml: Boolean! crawlNotIncluded1stLevel: Boolean! crawlOtherRelExternal: Boolean! crawlOtherRelInternal: Boolean! crawlRedirectsExternal: Boolean! crawlRedirectsInternal: Boolean! crawlRelAmphtmlExternal: Boolean! crawlRelAmphtmlInternal: Boolean! crawlRelCanonicalsExternal: Boolean! crawlRelCanonicalsInternal: Boolean! crawlRelHreflangsExternal: Boolean! crawlRelHreflangsInternal: Boolean! crawlRelMobileExternal: Boolean! crawlRelMobileInternal: Boolean! crawlRelNextPrevExternal: Boolean! crawlRelNextPrevInternal: Boolean! crawlRobotsTxtNoindex: Boolean! crawlScriptsExternal: Boolean! crawlScriptsInternal: Boolean! crawlSitemapsExternal: Boolean! crawlSitemapsInternal: Boolean! crawlStylesheetsExternal: Boolean! crawlStylesheetsInternal: Boolean! crawlTestSite: Boolean! createdAt: DateTime! customDns: [CustomDnsSetting!] """ Use regular expressions to extract custom information from pages when they are crawled. """ customExtractions: [CustomExtractionSetting!] customRequestHeaders: JSONObject dataLayerName: String dataOnlyCrawlTypes: [CrawlType!] discoverSitemapsInRobotsTxt: Boolean! """ The project's `duplicatePagesIncludePaginatedPages` setting, as recorded for this crawl. """ duplicatePagesIncludePaginatedPages: Boolean! duplicatePrecision: Float! emptyPageThreshold: Int enableKeyValueStore: Boolean! excludeUrlPatterns: [String!] excludedDatasources: [DatasourceCode!] failureRateLimitEnabled: Boolean! failureRateLookbackWindow: Int! failureRateThreshold: Float! flattenIframes: Boolean! flattenShadowDom: Boolean! gaDateRange: Int! googleAnalytics4DisplayName: String googleAnalytics4LastNDays: Int googleAnalytics4MinimumSessions: Int googleAnalytics4MinimumViews: Int googleAnalytics4ProjectProperty: GoogleAnalytics4ProjectProperty @deprecated(reason: "GA4 settings flattened on CrawlSetting entity. Prefixed with `googleAnalytics4`") googleAnalytics4PropertyName: String googleAnalytics4Source: GoogleAnalytics4SourceType gscConfigurationCountry: String gscConfigurationExcludeQueries: [String!] gscConfigurationIncludeQueries: [String!] gscConfigurationLastNDays: Int gscConfigurationMinClicks: Int gscConfigurationQueryMaxLength: Int gscConfigurationQueryMinLength: Int gscConfigurationSearchQueriesMinClicks: Int gscConfigurationSearchType: GoogleSearchConsoleSearchType hasTestSitePassword: Boolean! id: ObjectID! ignoreRobotsForNavigationRequests: Boolean! ignoreXRobots: Boolean! includeBestPractices: Boolean! includeHttpAndHttps: Boolean! includeSubdomains: Boolean! includeUrlPatterns: [String!] limitLevelsMax: Int! limitPagesMax: Int! location: Location! logSummaryRequestsHigh: Int! logSummaryRequestsLow: Int! majesticConfigurationEnabled: Boolean! majesticConfigurationMaxRows: Int! majesticConfigurationUseHistoricData: Boolean! majesticConfigurationUseRootDomain: Boolean! maxBodyContentLength: Int maxDescriptionLength: Int maxFollowedExternalLinks: Int maxHtmlSize: Int maxLinks: Int maxLinksProcessed: Int! maxLoadTime: Float maxRedirections: Int! maxTitleWidth: Int! maxUrlLength: Int maximumCrawlRate: Float! maximumCrawlRateAdvanced: [AdvancedCrawlRate!] minContentRatio: Float minDescriptionLength: Int! minTitleLength: Int! minVisits: Int! mobileHomepageUrl: String mobileUrlPattern: String mobileUserAgent: UserAgent mobileViewportHeight: Int mobileViewportWidth: Int pageTypes: [PageTypeSnapshot!] primaryDomain: String! rawID: String! renderTimeout: Int! renderWithImages: Boolean! rendererBlockAds: Boolean! rendererBlockAnalytics: Boolean! rendererBlockCustom: [String!] rendererCookies: [RendererCookie!] renderingRobotsCheckMode: RenderingRobotsCheckMode reportTemplateOverrides: [ReportTemplateOverrideInfo!] robotsOverwrite: String secondaryDomains: [String!] selectedWcagLevel: WcagLevel! selectedWcagVersion: Float! siteSpeedScoring: JSONObject sitemapUrls: [String!] startUrls: [String!] storeLighthouseJSON: Boolean! targetMaxUncrawledUrlsCount: Int! testSiteDomain: String testSiteUsername: String thinPageThreshold: Int """ The project's `thinTopicThreshold` setting, as recorded for this crawl. """ thinTopicThreshold: Float! """ The project's `topicAmbiguityGapThreshold` setting, as recorded for this crawl. """ topicAmbiguityGapThreshold: Float! topics: [TopicConfigurationSnapshot!] updatedAt: DateTime! urlRewriteQueryParameters: [String!] urlRewriteRules: [UrlRewriteRule!] urlRewriteStripFragment: Boolean! urlSampling: [UrlSampling!] useMobileSettings: Boolean! useNewHeadlessMode: Boolean! useRenderer: Boolean! useRobotsOverwrite: Boolean! useStealthMode: Boolean useUrlRewriteRules: Boolean! userAgent: UserAgent userAgentIsMobile: Boolean userAgentMobileIsMobile: Boolean userAgentString: String userAgentStringMobile: String userAgentSuffix: String! userAgentToken: String userAgentTokenMobile: String viewportHeight: Int viewportWidth: Int } type CrawlSiteSpeedAudit { auditDigest: String! auditId: String auditResult: String description: String displayValue: String exampleItems: String gscClicks: Int guidanceLevel: Int itemsCount: Int metricSavingsCls: Float metricSavingsFcp: Float metricSavingsInp: Float metricSavingsLcp: Float metricSavingsTbt: Float numericUnit: String numericValue: Float pageviews: BigInt productOfSavingsKibAndPageviews: Float productOfSavingsSecsAndPageviews: Float redirectsChain: [SiteSpeedAuditRedirect!] redirectsChainCount: Int savingsKib: Float savingsScore: Float savingsSecs: Float score: Float scoreDisplayMode: String scoringOptionsMedian: Float scoringOptionsPercentile: Float segmentIds: [Int!] segmentIdsCount: Int segmentNames: [String!] segmentNamesCount: Int title: String totalSizeKib: Float url: String! urlDigest: String! warnings: String } type CrawlSiteSpeedAuditAggregate { auditId: String auditResult: String avg: CrawlSiteSpeedAuditAvgCalculation! count: CrawlSiteSpeedAuditCountCalculation! max: CrawlSiteSpeedAuditMaxCalculation! min: CrawlSiteSpeedAuditMinCalculation! sum: CrawlSiteSpeedAuditSumCalculation! title: String } type CrawlSiteSpeedAuditAggregateConnection { """ A list of nodes. """ nodes: [CrawlSiteSpeedAuditAggregate!]! """ Information to aid in pagination. """ pageInfo: PageInfo! """ Identifies the total count of CrawlSiteSpeedAuditAggregates in the connection. """ totalCount: Int! } """ Used for grouping the CrawlSiteSpeedAudit aggregates results. """ enum CrawlSiteSpeedAuditAggregateDimension { auditId auditResult title } input CrawlSiteSpeedAuditAggregateOrder { """ The ordering direction. """ direction: OrderDirection! """ The dimension or aggregation to order by. """ field: CrawlSiteSpeedAuditAggregateOrderField! } enum CrawlSiteSpeedAuditAggregateOrderField { auditId auditResult avgGscClicks avgItemsCount avgMetricSavingsCls avgMetricSavingsFcp avgMetricSavingsInp avgMetricSavingsLcp avgMetricSavingsTbt avgNumericValue avgPageviews avgProductOfSavingsKibAndPageviews avgProductOfSavingsSecsAndPageviews avgSavingsKib avgSavingsScore avgSavingsSecs avgScore avgTotalSizeKib countGscClicks countItemsCount countMetricSavingsCls countMetricSavingsFcp countMetricSavingsInp countMetricSavingsLcp countMetricSavingsTbt countNumericValue countPageviews countProductOfSavingsKibAndPageviews countProductOfSavingsSecsAndPageviews countSavingsKib countSavingsScore countSavingsSecs countScore countTotalSizeKib maxGscClicks maxItemsCount maxMetricSavingsCls maxMetricSavingsFcp maxMetricSavingsInp maxMetricSavingsLcp maxMetricSavingsTbt maxNumericValue maxPageviews maxProductOfSavingsKibAndPageviews maxProductOfSavingsSecsAndPageviews maxSavingsKib maxSavingsScore maxSavingsSecs maxScore maxTotalSizeKib minGscClicks minItemsCount minMetricSavingsCls minMetricSavingsFcp minMetricSavingsInp minMetricSavingsLcp minMetricSavingsTbt minNumericValue minPageviews minProductOfSavingsKibAndPageviews minProductOfSavingsSecsAndPageviews minSavingsKib minSavingsScore minSavingsSecs minScore minTotalSizeKib sumGscClicks sumItemsCount sumMetricSavingsCls sumMetricSavingsFcp sumMetricSavingsInp sumMetricSavingsLcp sumMetricSavingsTbt sumNumericValue sumPageviews sumProductOfSavingsKibAndPageviews sumProductOfSavingsSecsAndPageviews sumSavingsKib sumSavingsScore sumSavingsSecs sumScore sumTotalSizeKib title } type CrawlSiteSpeedAuditAvgCalculation { gscClicks: Float itemsCount: Float metricSavingsCls: Float metricSavingsFcp: Float metricSavingsInp: Float metricSavingsLcp: Float metricSavingsTbt: Float numericValue: Float pageviews: Float productOfSavingsKibAndPageviews: Float productOfSavingsSecsAndPageviews: Float savingsKib: Float savingsScore: Float savingsSecs: Float score: Float totalSizeKib: Float } type CrawlSiteSpeedAuditConnection { """ A list of edges. """ edges: [CrawlSiteSpeedAuditEdge!]! """ A list of nodes. """ nodes: [CrawlSiteSpeedAudit!]! """ Information to aid in pagination. """ pageInfo: PageInfo! """ Identifies the total count of CrawlSiteSpeedAudits in the connection. """ totalCount: Int! } input CrawlSiteSpeedAuditConnectionFilterInput { """ Groups each filter object using AND """ _and: [CrawlSiteSpeedAuditConnectionFilterInput!] """ Groups each filter object using AND, wrapped inside NOT """ _not: [CrawlSiteSpeedAuditConnectionFilterInput!] """ Groups each filter object using OR """ _or: [CrawlSiteSpeedAuditConnectionFilterInput!] auditDigest: ConnectionStringFilterInput auditId: ConnectionStringFilterInput auditResult: ConnectionStringFilterInput description: ConnectionStringFilterInput displayValue: ConnectionStringFilterInput exampleItems: ConnectionStringFilterInput gscClicks: ConnectionIntFilterInput guidanceLevel: ConnectionIntFilterInput itemsCount: ConnectionIntFilterInput metricSavingsCls: ConnectionFloatFilterInput metricSavingsFcp: ConnectionFloatFilterInput metricSavingsInp: ConnectionFloatFilterInput metricSavingsLcp: ConnectionFloatFilterInput metricSavingsTbt: ConnectionFloatFilterInput numericUnit: ConnectionStringFilterInput numericValue: ConnectionFloatFilterInput pageviews: ConnectionBigIntFilterInput productOfSavingsKibAndPageviews: ConnectionFloatFilterInput productOfSavingsSecsAndPageviews: ConnectionFloatFilterInput redirectsChainCount: ConnectionIntFilterInput savingsKib: ConnectionFloatFilterInput savingsScore: ConnectionFloatFilterInput savingsSecs: ConnectionFloatFilterInput score: ConnectionFloatFilterInput scoreDisplayMode: ConnectionStringFilterInput scoringOptionsMedian: ConnectionFloatFilterInput scoringOptionsPercentile: ConnectionFloatFilterInput segmentIds: ConnectionIntArrayFilterInput segmentIdsCount: ConnectionIntFilterInput segmentNames: ConnectionStringArrayFilterInput segmentNamesCount: ConnectionIntFilterInput title: ConnectionStringFilterInput totalSizeKib: ConnectionFloatFilterInput url: ConnectionStringFilterInput urlDigest: ConnectionStringFilterInput warnings: ConnectionStringFilterInput } type CrawlSiteSpeedAuditCountCalculation { gscClicks: Int! itemsCount: Int! metricSavingsCls: Int! metricSavingsFcp: Int! metricSavingsInp: Int! metricSavingsLcp: Int! metricSavingsTbt: Int! numericValue: Int! pageviews: Int! productOfSavingsKibAndPageviews: Int! productOfSavingsSecsAndPageviews: Int! savingsKib: Int! savingsScore: Int! savingsSecs: Int! score: Int! totalSizeKib: Int! } type CrawlSiteSpeedAuditEdge { """ A cursor to use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: CrawlSiteSpeedAudit! } type CrawlSiteSpeedAuditItem { auditId: String auditItemDigest: String! auditResult: String auditScore: Float blockingTime: Float blockingTimeSecs: Float cacheHitProbability: Float cacheLifetimeMs: BigInt debugDataMaxAge: Int debugDataType: String description: String displayValue: String durationMs: Int element: String! entity: String failureType: String fromProtocol: Boolean gscClicks: Int hostname: String isCrossOrigin: Boolean itemIndex: Int layoutShiftImpact: Float nodeBoundingRect: String nodeNodeLabel: String nodePath: String nodeSelector: String nodeSnippet: String opportunityDigest: String! pageviews: BigInt productOfWastedKibAndPageviews: Float productOfWastedSecsAndPageviews: Float protocol: String protocolReason: String reason: String requestStartTime: Float resourceUrl: String savingsScore: Float scriptEvaluationTimeMs: Int scriptParseTimeMs: Int segmentIds: [Int!] segmentIdsCount: Int segmentNames: [String!] segmentNamesCount: Int sourceColumn: Int sourceLine: Int sourceUrl: String statistic: String statisticValue: Int subItems: String subItemsCount: Int tbtImpact: Float title: String totalBytes: BigInt totalCpuTimeMs: Int totalSizeKib: Float transferSize: BigInt url: String! urlDigest: String! wastedKib: Float wastedPercent: Float wastedSecs: Float wastedWebpBytes: BigInt } type CrawlSiteSpeedAuditItemConnection { """ A list of edges. """ edges: [CrawlSiteSpeedAuditItemEdge!]! """ A list of nodes. """ nodes: [CrawlSiteSpeedAuditItem!]! """ Information to aid in pagination. """ pageInfo: PageInfo! """ Identifies the total count of CrawlSiteSpeedAuditItems in the connection. """ totalCount: Int! } input CrawlSiteSpeedAuditItemConnectionFilterInput { """ Groups each filter object using AND """ _and: [CrawlSiteSpeedAuditItemConnectionFilterInput!] """ Groups each filter object using AND, wrapped inside NOT """ _not: [CrawlSiteSpeedAuditItemConnectionFilterInput!] """ Groups each filter object using OR """ _or: [CrawlSiteSpeedAuditItemConnectionFilterInput!] auditId: ConnectionStringFilterInput auditItemDigest: ConnectionStringFilterInput auditResult: ConnectionStringFilterInput auditScore: ConnectionFloatFilterInput blockingTime: ConnectionFloatFilterInput blockingTimeSecs: ConnectionFloatFilterInput cacheHitProbability: ConnectionFloatFilterInput cacheLifetimeMs: ConnectionBigIntFilterInput debugDataMaxAge: ConnectionIntFilterInput debugDataType: ConnectionStringFilterInput description: ConnectionStringFilterInput displayValue: ConnectionStringFilterInput durationMs: ConnectionIntFilterInput element: ConnectionStringFilterInput failureType: ConnectionStringFilterInput fromProtocol: ConnectionBooleanFilterInput gscClicks: ConnectionIntFilterInput hostname: ConnectionStringFilterInput isCrossOrigin: ConnectionBooleanFilterInput itemIndex: ConnectionIntFilterInput layoutShiftImpact: ConnectionFloatFilterInput nodeBoundingRect: ConnectionStringFilterInput nodeNodeLabel: ConnectionStringFilterInput nodePath: ConnectionStringFilterInput nodeSelector: ConnectionStringFilterInput nodeSnippet: ConnectionStringFilterInput opportunityDigest: ConnectionStringFilterInput pageviews: ConnectionBigIntFilterInput productOfWastedKibAndPageviews: ConnectionFloatFilterInput productOfWastedSecsAndPageviews: ConnectionFloatFilterInput protocol: ConnectionStringFilterInput protocolReason: ConnectionStringFilterInput reason: ConnectionStringFilterInput requestStartTime: ConnectionFloatFilterInput resourceUrl: ConnectionStringFilterInput savingsScore: ConnectionFloatFilterInput scriptEvaluationTimeMs: ConnectionIntFilterInput scriptParseTimeMs: ConnectionIntFilterInput segmentIds: ConnectionIntArrayFilterInput segmentIdsCount: ConnectionIntFilterInput segmentNames: ConnectionStringArrayFilterInput segmentNamesCount: ConnectionIntFilterInput sourceColumn: ConnectionIntFilterInput sourceLine: ConnectionIntFilterInput sourceUrl: ConnectionStringFilterInput statistic: ConnectionStringFilterInput statisticValue: ConnectionIntFilterInput subItems: ConnectionStringFilterInput subItemsCount: ConnectionIntFilterInput tbtImpact: ConnectionFloatFilterInput title: ConnectionStringFilterInput totalBytes: ConnectionBigIntFilterInput totalCpuTimeMs: ConnectionIntFilterInput totalSizeKib: ConnectionFloatFilterInput transferSize: ConnectionBigIntFilterInput url: ConnectionStringFilterInput urlDigest: ConnectionStringFilterInput wastedKib: ConnectionFloatFilterInput wastedPercent: ConnectionFloatFilterInput wastedSecs: ConnectionFloatFilterInput wastedWebpBytes: ConnectionBigIntFilterInput } type CrawlSiteSpeedAuditItemEdge { """ A cursor to use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: CrawlSiteSpeedAuditItem! } input CrawlSiteSpeedAuditItemOrder { """ The ordering direction. """ direction: OrderDirection! """ The field to order CrawlSiteSpeedAuditItems by. """ field: CrawlSiteSpeedAuditItemOrderField! } enum CrawlSiteSpeedAuditItemOrderField { auditId auditItemDigest auditResult auditScore blockingTime blockingTimeSecs cacheHitProbability cacheLifetimeMs debugDataMaxAge debugDataType description displayValue durationMs element failureType fromProtocol gscClicks hostname isCrossOrigin itemIndex layoutShiftImpact nodeNodeLabel nodePath nodeSelector nodeSnippet opportunityDigest pageviews productOfWastedKibAndPageviews productOfWastedSecsAndPageviews protocol protocolReason reason requestStartTime resourceUrl savingsScore scriptEvaluationTimeMs scriptParseTimeMs segmentIdsCount segmentNamesCount sourceColumn sourceLine sourceUrl statisticValue subItemsCount tbtImpact title totalBytes totalCpuTimeMs totalSizeKib transferSize url urlDigest wastedKib wastedPercent wastedSecs wastedWebpBytes } type CrawlSiteSpeedAuditMaxCalculation { gscClicks: Int itemsCount: Int metricSavingsCls: Float metricSavingsFcp: Float metricSavingsInp: Float metricSavingsLcp: Float metricSavingsTbt: Float numericValue: Float pageviews: BigInt productOfSavingsKibAndPageviews: Float productOfSavingsSecsAndPageviews: Float savingsKib: Float savingsScore: Float savingsSecs: Float score: Float totalSizeKib: Float } type CrawlSiteSpeedAuditMinCalculation { gscClicks: Int itemsCount: Int metricSavingsCls: Float metricSavingsFcp: Float metricSavingsInp: Float metricSavingsLcp: Float metricSavingsTbt: Float numericValue: Float pageviews: BigInt productOfSavingsKibAndPageviews: Float productOfSavingsSecsAndPageviews: Float savingsKib: Float savingsScore: Float savingsSecs: Float score: Float totalSizeKib: Float } type CrawlSiteSpeedAuditOpportunity { auditId: String auditScoreAvg: Float blockingTimeSecsAvg: Float blockingTimeSecsSum: Float blockingTimeSum: Float cacheHitProbabilityAvg: Float cacheLifetimeMsSum: BigInt debugDataMaxAge: Int debugDataType: String description: String element: String! exampleUrl: String! exampleUrlDigest: String! failedAuditsCount: BigInt failureType: String fromProtocol: Boolean gaPageviewsSum: BigInt gscClicksSum: BigInt hostname: String infoAuditsCount: BigInt instanceCount: BigInt isCrossOrigin: Boolean layoutShiftImpactAvg: Float layoutShiftImpactSum: Float nodeBoundingRect: String nodeNodeLabel: String nodePath: String nodeSelector: String nodeSnippet: String opportunityDigest: String! passedAuditsCount: BigInt productOfWastedKibAndPageviewsSum: Float productOfWastedSecsAndPageviewsSum: Float protocol: String protocolReason: String reason: String requestStartTime: Float savingsScoreSum: Float segmentIds: [Int!] segmentIdsCount: Int segmentNames: [String!] segmentNamesCount: Int sourceColumn: Int sourceLine: Int sourceUrl: String subItems: String subItemsCount: Float title: String totalBytesAvg: Float totalBytesSum: BigInt totalSizeKibAvg: Float totalSizeKibSum: Float transferSizeSum: BigInt urlCount: BigInt warningAuditsCount: BigInt wastedKibAvg: Float wastedKibSum: Float wastedPercentAvg: Float wastedSecsAvg: Float wastedSecsSum: Float wastedWebpBytesSum: BigInt weightedScore: Float } type CrawlSiteSpeedAuditOpportunityAggregate { auditId: String avg: CrawlSiteSpeedAuditOpportunityAvgCalculation! count: CrawlSiteSpeedAuditOpportunityCountCalculation! max: CrawlSiteSpeedAuditOpportunityMaxCalculation! min: CrawlSiteSpeedAuditOpportunityMinCalculation! sum: CrawlSiteSpeedAuditOpportunitySumCalculation! title: String } type CrawlSiteSpeedAuditOpportunityAggregateConnection { """ A list of nodes. """ nodes: [CrawlSiteSpeedAuditOpportunityAggregate!]! """ Information to aid in pagination. """ pageInfo: PageInfo! """ Identifies the total count of CrawlSiteSpeedAuditOpportunityAggregates in the connection. """ totalCount: Int! } """ Used for grouping the CrawlSiteSpeedAuditOpportunity aggregates results. """ enum CrawlSiteSpeedAuditOpportunityAggregateDimension { auditId title } input CrawlSiteSpeedAuditOpportunityAggregateOrder { """ The ordering direction. """ direction: OrderDirection! """ The dimension or aggregation to order by. """ field: CrawlSiteSpeedAuditOpportunityAggregateOrderField! } enum CrawlSiteSpeedAuditOpportunityAggregateOrderField { auditId avgAuditScoreAvg avgBlockingTimeSecsAvg avgBlockingTimeSecsSum avgBlockingTimeSum avgCacheHitProbabilityAvg avgCacheLifetimeMsSum avgDebugDataMaxAge avgFailedAuditsCount avgGaPageviewsSum avgGscClicksSum avgInfoAuditsCount avgInstanceCount avgLayoutShiftImpactAvg avgLayoutShiftImpactSum avgPassedAuditsCount avgProductOfWastedKibAndPageviewsSum avgProductOfWastedSecsAndPageviewsSum avgSavingsScoreSum avgSubItemsCount avgTotalBytesAvg avgTotalBytesSum avgTotalSizeKibAvg avgTotalSizeKibSum avgTransferSizeSum avgUrlCount avgWarningAuditsCount avgWastedKibAvg avgWastedKibSum avgWastedPercentAvg avgWastedSecsAvg avgWastedSecsSum avgWastedWebpBytesSum avgWeightedScore countAuditScoreAvg countBlockingTimeSecsAvg countBlockingTimeSecsSum countBlockingTimeSum countCacheHitProbabilityAvg countCacheLifetimeMsSum countDebugDataMaxAge countFailedAuditsCount countGaPageviewsSum countGscClicksSum countInfoAuditsCount countInstanceCount countLayoutShiftImpactAvg countLayoutShiftImpactSum countPassedAuditsCount countProductOfWastedKibAndPageviewsSum countProductOfWastedSecsAndPageviewsSum countSavingsScoreSum countSubItemsCount countTotalBytesAvg countTotalBytesSum countTotalSizeKibAvg countTotalSizeKibSum countTransferSizeSum countUrlCount countWarningAuditsCount countWastedKibAvg countWastedKibSum countWastedPercentAvg countWastedSecsAvg countWastedSecsSum countWastedWebpBytesSum countWeightedScore maxAuditScoreAvg maxBlockingTimeSecsAvg maxBlockingTimeSecsSum maxBlockingTimeSum maxCacheHitProbabilityAvg maxCacheLifetimeMsSum maxDebugDataMaxAge maxFailedAuditsCount maxGaPageviewsSum maxGscClicksSum maxInfoAuditsCount maxInstanceCount maxLayoutShiftImpactAvg maxLayoutShiftImpactSum maxPassedAuditsCount maxProductOfWastedKibAndPageviewsSum maxProductOfWastedSecsAndPageviewsSum maxSavingsScoreSum maxSubItemsCount maxTotalBytesAvg maxTotalBytesSum maxTotalSizeKibAvg maxTotalSizeKibSum maxTransferSizeSum maxUrlCount maxWarningAuditsCount maxWastedKibAvg maxWastedKibSum maxWastedPercentAvg maxWastedSecsAvg maxWastedSecsSum maxWastedWebpBytesSum maxWeightedScore minAuditScoreAvg minBlockingTimeSecsAvg minBlockingTimeSecsSum minBlockingTimeSum minCacheHitProbabilityAvg minCacheLifetimeMsSum minDebugDataMaxAge minFailedAuditsCount minGaPageviewsSum minGscClicksSum minInfoAuditsCount minInstanceCount minLayoutShiftImpactAvg minLayoutShiftImpactSum minPassedAuditsCount minProductOfWastedKibAndPageviewsSum minProductOfWastedSecsAndPageviewsSum minSavingsScoreSum minSubItemsCount minTotalBytesAvg minTotalBytesSum minTotalSizeKibAvg minTotalSizeKibSum minTransferSizeSum minUrlCount minWarningAuditsCount minWastedKibAvg minWastedKibSum minWastedPercentAvg minWastedSecsAvg minWastedSecsSum minWastedWebpBytesSum minWeightedScore sumAuditScoreAvg sumBlockingTimeSecsAvg sumBlockingTimeSecsSum sumBlockingTimeSum sumCacheHitProbabilityAvg sumCacheLifetimeMsSum sumDebugDataMaxAge sumFailedAuditsCount sumGaPageviewsSum sumGscClicksSum sumInfoAuditsCount sumInstanceCount sumLayoutShiftImpactAvg sumLayoutShiftImpactSum sumPassedAuditsCount sumProductOfWastedKibAndPageviewsSum sumProductOfWastedSecsAndPageviewsSum sumSavingsScoreSum sumSubItemsCount sumTotalBytesAvg sumTotalBytesSum sumTotalSizeKibAvg sumTotalSizeKibSum sumTransferSizeSum sumUrlCount sumWarningAuditsCount sumWastedKibAvg sumWastedKibSum sumWastedPercentAvg sumWastedSecsAvg sumWastedSecsSum sumWastedWebpBytesSum sumWeightedScore title } type CrawlSiteSpeedAuditOpportunityAvgCalculation { auditScoreAvg: Float blockingTimeSecsAvg: Float blockingTimeSecsSum: Float blockingTimeSum: Float cacheHitProbabilityAvg: Float cacheLifetimeMsSum: Float debugDataMaxAge: Float failedAuditsCount: Float gaPageviewsSum: Float gscClicksSum: Float infoAuditsCount: Float instanceCount: Float layoutShiftImpactAvg: Float layoutShiftImpactSum: Float passedAuditsCount: Float productOfWastedKibAndPageviewsSum: Float productOfWastedSecsAndPageviewsSum: Float savingsScoreSum: Float subItemsCount: Float totalBytesAvg: Float totalBytesSum: Float totalSizeKibAvg: Float totalSizeKibSum: Float transferSizeSum: Float urlCount: Float warningAuditsCount: Float wastedKibAvg: Float wastedKibSum: Float wastedPercentAvg: Float wastedSecsAvg: Float wastedSecsSum: Float wastedWebpBytesSum: Float weightedScore: Float } type CrawlSiteSpeedAuditOpportunityConnection { """ A list of edges. """ edges: [CrawlSiteSpeedAuditOpportunityEdge!]! """ A list of nodes. """ nodes: [CrawlSiteSpeedAuditOpportunity!]! """ Information to aid in pagination. """ pageInfo: PageInfo! """ Identifies the total count of CrawlSiteSpeedAuditOpportunities in the connection. """ totalCount: Int! } input CrawlSiteSpeedAuditOpportunityConnectionFilterInput { """ Groups each filter object using AND """ _and: [CrawlSiteSpeedAuditOpportunityConnectionFilterInput!] """ Groups each filter object using AND, wrapped inside NOT """ _not: [CrawlSiteSpeedAuditOpportunityConnectionFilterInput!] """ Groups each filter object using OR """ _or: [CrawlSiteSpeedAuditOpportunityConnectionFilterInput!] auditId: ConnectionStringFilterInput auditScoreAvg: ConnectionFloatFilterInput blockingTimeSecsAvg: ConnectionFloatFilterInput blockingTimeSecsSum: ConnectionFloatFilterInput blockingTimeSum: ConnectionFloatFilterInput cacheHitProbabilityAvg: ConnectionFloatFilterInput cacheLifetimeMsSum: ConnectionBigIntFilterInput debugDataMaxAge: ConnectionIntFilterInput debugDataType: ConnectionStringFilterInput description: ConnectionStringFilterInput element: ConnectionStringFilterInput exampleUrl: ConnectionStringFilterInput exampleUrlDigest: ConnectionStringFilterInput failedAuditsCount: ConnectionBigIntFilterInput failureType: ConnectionStringFilterInput fromProtocol: ConnectionBooleanFilterInput gaPageviewsSum: ConnectionBigIntFilterInput gscClicksSum: ConnectionBigIntFilterInput hostname: ConnectionStringFilterInput infoAuditsCount: ConnectionBigIntFilterInput instanceCount: ConnectionBigIntFilterInput isCrossOrigin: ConnectionBooleanFilterInput layoutShiftImpactAvg: ConnectionFloatFilterInput layoutShiftImpactSum: ConnectionFloatFilterInput nodeBoundingRect: ConnectionStringFilterInput nodeNodeLabel: ConnectionStringFilterInput nodePath: ConnectionStringFilterInput nodeSelector: ConnectionStringFilterInput nodeSnippet: ConnectionStringFilterInput opportunityDigest: ConnectionStringFilterInput passedAuditsCount: ConnectionBigIntFilterInput productOfWastedKibAndPageviewsSum: ConnectionFloatFilterInput productOfWastedSecsAndPageviewsSum: ConnectionFloatFilterInput protocol: ConnectionStringFilterInput protocolReason: ConnectionStringFilterInput reason: ConnectionStringFilterInput requestStartTime: ConnectionFloatFilterInput savingsScoreSum: ConnectionFloatFilterInput segmentIds: ConnectionIntArrayFilterInput segmentIdsCount: ConnectionIntFilterInput segmentNames: ConnectionStringArrayFilterInput segmentNamesCount: ConnectionIntFilterInput sourceColumn: ConnectionIntFilterInput sourceLine: ConnectionIntFilterInput sourceUrl: ConnectionStringFilterInput subItems: ConnectionStringFilterInput subItemsCount: ConnectionFloatFilterInput title: ConnectionStringFilterInput totalBytesAvg: ConnectionFloatFilterInput totalBytesSum: ConnectionBigIntFilterInput totalSizeKibAvg: ConnectionFloatFilterInput totalSizeKibSum: ConnectionFloatFilterInput transferSizeSum: ConnectionBigIntFilterInput urlCount: ConnectionBigIntFilterInput warningAuditsCount: ConnectionBigIntFilterInput wastedKibAvg: ConnectionFloatFilterInput wastedKibSum: ConnectionFloatFilterInput wastedPercentAvg: ConnectionFloatFilterInput wastedSecsAvg: ConnectionFloatFilterInput wastedSecsSum: ConnectionFloatFilterInput wastedWebpBytesSum: ConnectionBigIntFilterInput weightedScore: ConnectionFloatFilterInput } type CrawlSiteSpeedAuditOpportunityCountCalculation { auditScoreAvg: Int! blockingTimeSecsAvg: Int! blockingTimeSecsSum: Int! blockingTimeSum: Int! cacheHitProbabilityAvg: Int! cacheLifetimeMsSum: Int! debugDataMaxAge: Int! failedAuditsCount: Int! gaPageviewsSum: Int! gscClicksSum: Int! infoAuditsCount: Int! instanceCount: Int! layoutShiftImpactAvg: Int! layoutShiftImpactSum: Int! passedAuditsCount: Int! productOfWastedKibAndPageviewsSum: Int! productOfWastedSecsAndPageviewsSum: Int! savingsScoreSum: Int! subItemsCount: Int! totalBytesAvg: Int! totalBytesSum: Int! totalSizeKibAvg: Int! totalSizeKibSum: Int! transferSizeSum: Int! urlCount: Int! warningAuditsCount: Int! wastedKibAvg: Int! wastedKibSum: Int! wastedPercentAvg: Int! wastedSecsAvg: Int! wastedSecsSum: Int! wastedWebpBytesSum: Int! weightedScore: Int! } type CrawlSiteSpeedAuditOpportunityEdge { """ A cursor to use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: CrawlSiteSpeedAuditOpportunity! } type CrawlSiteSpeedAuditOpportunityMaxCalculation { auditScoreAvg: Float blockingTimeSecsAvg: Float blockingTimeSecsSum: Float blockingTimeSum: Float cacheHitProbabilityAvg: Float cacheLifetimeMsSum: BigInt debugDataMaxAge: Int failedAuditsCount: BigInt gaPageviewsSum: BigInt gscClicksSum: BigInt infoAuditsCount: BigInt instanceCount: BigInt layoutShiftImpactAvg: Float layoutShiftImpactSum: Float passedAuditsCount: BigInt productOfWastedKibAndPageviewsSum: Float productOfWastedSecsAndPageviewsSum: Float savingsScoreSum: Float subItemsCount: Float totalBytesAvg: Float totalBytesSum: BigInt totalSizeKibAvg: Float totalSizeKibSum: Float transferSizeSum: BigInt urlCount: BigInt warningAuditsCount: BigInt wastedKibAvg: Float wastedKibSum: Float wastedPercentAvg: Float wastedSecsAvg: Float wastedSecsSum: Float wastedWebpBytesSum: BigInt weightedScore: Float } type CrawlSiteSpeedAuditOpportunityMinCalculation { auditScoreAvg: Float blockingTimeSecsAvg: Float blockingTimeSecsSum: Float blockingTimeSum: Float cacheHitProbabilityAvg: Float cacheLifetimeMsSum: BigInt debugDataMaxAge: Int failedAuditsCount: BigInt gaPageviewsSum: BigInt gscClicksSum: BigInt infoAuditsCount: BigInt instanceCount: BigInt layoutShiftImpactAvg: Float layoutShiftImpactSum: Float passedAuditsCount: BigInt productOfWastedKibAndPageviewsSum: Float productOfWastedSecsAndPageviewsSum: Float savingsScoreSum: Float subItemsCount: Float totalBytesAvg: Float totalBytesSum: BigInt totalSizeKibAvg: Float totalSizeKibSum: Float transferSizeSum: BigInt urlCount: BigInt warningAuditsCount: BigInt wastedKibAvg: Float wastedKibSum: Float wastedPercentAvg: Float wastedSecsAvg: Float wastedSecsSum: Float wastedWebpBytesSum: BigInt weightedScore: Float } input CrawlSiteSpeedAuditOpportunityOrder { """ The ordering direction. """ direction: OrderDirection! """ The field to order CrawlSiteSpeedAuditOpportunities by. """ field: CrawlSiteSpeedAuditOpportunityOrderField! } enum CrawlSiteSpeedAuditOpportunityOrderField { auditId auditScoreAvg blockingTimeSecsAvg blockingTimeSecsSum blockingTimeSum cacheHitProbabilityAvg cacheLifetimeMsSum debugDataMaxAge debugDataType description element exampleUrl exampleUrlDigest failedAuditsCount failureType fromProtocol gaPageviewsSum gscClicksSum hostname infoAuditsCount instanceCount isCrossOrigin layoutShiftImpactAvg layoutShiftImpactSum nodeNodeLabel nodePath nodeSelector nodeSnippet opportunityDigest passedAuditsCount productOfWastedKibAndPageviewsSum productOfWastedSecsAndPageviewsSum protocol protocolReason reason requestStartTime savingsScoreSum segmentIdsCount segmentNamesCount sourceColumn sourceLine sourceUrl subItemsCount title totalBytesAvg totalBytesSum totalSizeKibAvg totalSizeKibSum transferSizeSum urlCount warningAuditsCount wastedKibAvg wastedKibSum wastedPercentAvg wastedSecsAvg wastedSecsSum wastedWebpBytesSum weightedScore } type CrawlSiteSpeedAuditOpportunitySumCalculation { auditScoreAvg: Float blockingTimeSecsAvg: Float blockingTimeSecsSum: Float blockingTimeSum: Float cacheHitProbabilityAvg: Float cacheLifetimeMsSum: BigInt debugDataMaxAge: BigInt failedAuditsCount: BigInt gaPageviewsSum: BigInt gscClicksSum: BigInt infoAuditsCount: BigInt instanceCount: BigInt layoutShiftImpactAvg: Float layoutShiftImpactSum: Float passedAuditsCount: BigInt productOfWastedKibAndPageviewsSum: Float productOfWastedSecsAndPageviewsSum: Float savingsScoreSum: Float subItemsCount: Float totalBytesAvg: Float totalBytesSum: BigInt totalSizeKibAvg: Float totalSizeKibSum: Float transferSizeSum: BigInt urlCount: BigInt warningAuditsCount: BigInt wastedKibAvg: Float wastedKibSum: Float wastedPercentAvg: Float wastedSecsAvg: Float wastedSecsSum: Float wastedWebpBytesSum: BigInt weightedScore: Float } input CrawlSiteSpeedAuditOrder { """ The ordering direction. """ direction: OrderDirection! """ The field to order CrawlSiteSpeedAudits by. """ field: CrawlSiteSpeedAuditOrderField! } enum CrawlSiteSpeedAuditOrderField { auditDigest auditId auditResult description displayValue gscClicks guidanceLevel itemsCount metricSavingsCls metricSavingsFcp metricSavingsInp metricSavingsLcp metricSavingsTbt numericUnit numericValue pageviews productOfSavingsKibAndPageviews productOfSavingsSecsAndPageviews redirectsChainCount savingsKib savingsScore savingsSecs score scoreDisplayMode scoringOptionsMedian scoringOptionsPercentile segmentIdsCount segmentNamesCount title totalSizeKib url urlDigest warnings } type CrawlSiteSpeedAuditSumCalculation { gscClicks: BigInt itemsCount: BigInt metricSavingsCls: Float metricSavingsFcp: Float metricSavingsInp: Float metricSavingsLcp: Float metricSavingsTbt: Float numericValue: Float pageviews: BigInt productOfSavingsKibAndPageviews: Float productOfSavingsSecsAndPageviews: Float savingsKib: Float savingsScore: Float savingsSecs: Float score: Float totalSizeKib: Float } type CrawlSitemap { contentEncoding: String contentLength: Int encoding: String extension: String fetchError: String foundAt: String foundAtSource: String fullyQualifiedLocsCount: Int httpStatusCode: Int linksCount: Int logRequestsTotal: Int nonFullyQualifiedUrlsCount: Int outsidePathLocsCount: Int parseError: String restrictedReason: String sitemapType: String url: String urlAlias: String urlAliasDigest: String urlCount: Int urlDigest: String! } type CrawlSitemapConnection { """ A list of edges. """ edges: [CrawlSitemapEdge!]! """ A list of nodes. """ nodes: [CrawlSitemap!]! """ Information to aid in pagination. """ pageInfo: PageInfo! """ Identifies the total count of CrawlSitemaps in the connection. """ totalCount: Int! } input CrawlSitemapConnectionFilterInput { """ Groups each filter object using AND """ _and: [CrawlSitemapConnectionFilterInput!] """ Groups each filter object using AND, wrapped inside NOT """ _not: [CrawlSitemapConnectionFilterInput!] """ Groups each filter object using OR """ _or: [CrawlSitemapConnectionFilterInput!] contentEncoding: ConnectionStringFilterInput contentLength: ConnectionIntFilterInput encoding: ConnectionStringFilterInput extension: ConnectionStringFilterInput fetchError: ConnectionStringFilterInput foundAt: ConnectionStringFilterInput foundAtSource: ConnectionStringFilterInput fullyQualifiedLocsCount: ConnectionIntFilterInput httpStatusCode: ConnectionIntFilterInput linksCount: ConnectionIntFilterInput logRequestsTotal: ConnectionIntFilterInput nonFullyQualifiedUrlsCount: ConnectionIntFilterInput outsidePathLocsCount: ConnectionIntFilterInput parseError: ConnectionStringFilterInput restrictedReason: ConnectionStringFilterInput sitemapType: ConnectionStringFilterInput url: ConnectionStringFilterInput urlAlias: ConnectionStringFilterInput urlAliasDigest: ConnectionStringFilterInput urlCount: ConnectionIntFilterInput urlDigest: ConnectionStringFilterInput } type CrawlSitemapEdge { """ A cursor to use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: CrawlSitemap! } input CrawlSitemapOrder { """ The ordering direction. """ direction: OrderDirection! """ The field to order CrawlSitemaps by. """ field: CrawlSitemapOrderField! } enum CrawlSitemapOrderField { contentEncoding contentLength encoding extension fetchError foundAt foundAtSource fullyQualifiedLocsCount httpStatusCode linksCount logRequestsTotal nonFullyQualifiedUrlsCount outsidePathLocsCount parseError restrictedReason sitemapType url urlAlias urlCount } type CrawlStat { crawlLevels: [CrawlLevel!]! crawlRates: [CrawlRate!]! } enum CrawlStatus { Archived Archiving @deprecated(reason: "Legacy status. No longer in use.") Crawling Discovering @deprecated(reason: "Legacy status. No longer in use.") Draft @deprecated(reason: "Legacy status. No longer in use.") Errored @deprecated(reason: "Legacy status. No longer in use.") Finalizing Finished Paused Queued Queuing @deprecated(reason: "Legacy status. No longer in use.") } type CrawlStructuredDataBlock { blockCount: Int! blocks: [CrawlStructuredDataBlockBlock!] errorCount: Int! issues: [CrawlStructuredDataBlockIssue!] issuesSummary: String! schemaType: String! segmentIds: [Int!] segmentIdsCount: Int segmentNames: [String!] segmentNamesCount: Int url: String! urlDigest: String! validationResult: String! warningCount: Int! } type CrawlStructuredDataBlockAggregate { avg: CrawlStructuredDataBlockAvgCalculation! count: CrawlStructuredDataBlockCountCalculation! max: CrawlStructuredDataBlockMaxCalculation! min: CrawlStructuredDataBlockMinCalculation! schemaType: String sum: CrawlStructuredDataBlockSumCalculation! validationResult: String } type CrawlStructuredDataBlockAggregateConnection { """ A list of nodes. """ nodes: [CrawlStructuredDataBlockAggregate!]! """ Information to aid in pagination. """ pageInfo: PageInfo! """ Identifies the total count of CrawlStructuredDataBlockAggregates in the connection. """ totalCount: Int! } """ Used for grouping the CrawlStructuredDataBlock aggregates results. """ enum CrawlStructuredDataBlockAggregateDimension { schemaType validationResult } input CrawlStructuredDataBlockAggregateOrder { """ The ordering direction. """ direction: OrderDirection! """ The dimension or aggregation to order by. """ field: CrawlStructuredDataBlockAggregateOrderField! } enum CrawlStructuredDataBlockAggregateOrderField { avgBlockCount avgErrorCount avgWarningCount countBlockCount countErrorCount countUrl countWarningCount maxBlockCount maxErrorCount maxWarningCount minBlockCount minErrorCount minWarningCount schemaType sumBlockCount sumErrorCount sumWarningCount validationResult } type CrawlStructuredDataBlockAvgCalculation { blockCount: Float errorCount: Float warningCount: Float } type CrawlStructuredDataBlockBlock { errorCount: Int! extractedJson: String! schemaBlockDigest: String! schemaType: String! tagFormat: String! tagIndex: Int! validationResult: String! warningCount: Int! } type CrawlStructuredDataBlockConnection { """ A list of edges. """ edges: [CrawlStructuredDataBlockEdge!]! """ A list of nodes. """ nodes: [CrawlStructuredDataBlock!]! """ Information to aid in pagination. """ pageInfo: PageInfo! """ Identifies the total count of CrawlStructuredDataBlocks in the connection. """ totalCount: Int! } input CrawlStructuredDataBlockConnectionFilterInput { """ Groups each filter object using AND """ _and: [CrawlStructuredDataBlockConnectionFilterInput!] """ Groups each filter object using AND, wrapped inside NOT """ _not: [CrawlStructuredDataBlockConnectionFilterInput!] """ Groups each filter object using OR """ _or: [CrawlStructuredDataBlockConnectionFilterInput!] blockCount: ConnectionIntFilterInput errorCount: ConnectionIntFilterInput issues: CrawlStructuredDataBlockIssueObjectArrayMemberConnectionFilterInput issuesSummary: ConnectionStringFilterInput schemaType: ConnectionStringFilterInput segmentIds: ConnectionIntArrayFilterInput segmentIdsCount: ConnectionIntFilterInput segmentNames: ConnectionStringArrayFilterInput segmentNamesCount: ConnectionIntFilterInput url: ConnectionStringFilterInput urlDigest: ConnectionStringFilterInput validationResult: ConnectionStringFilterInput warningCount: ConnectionIntFilterInput } type CrawlStructuredDataBlockCountCalculation { blockCount: Int! errorCount: Int! url: Int! warningCount: Int! } type CrawlStructuredDataBlockEdge { """ A cursor to use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: CrawlStructuredDataBlock! } type CrawlStructuredDataBlockIssue { issueCode: String! issueDescription: String! issueIndex: Int! issueSeverity: String! schemaBlockDigest: String! schemaIssueDigest: String! schemaProperty: String! schemaType: String! tagFormat: String! tagIndex: Int! } input CrawlStructuredDataBlockIssueObjectArrayMemberConnectionFilterInput { issueCode: ConnectionStringObjectArrayMemberFilterInput issueDescription: ConnectionStringObjectArrayMemberFilterInput issueIndex: ConnectionIntObjectArrayMemberFilterInput issueSeverity: ConnectionStringObjectArrayMemberFilterInput schemaBlockDigest: ConnectionStringObjectArrayMemberFilterInput schemaIssueDigest: ConnectionStringObjectArrayMemberFilterInput schemaProperty: ConnectionStringObjectArrayMemberFilterInput schemaType: ConnectionStringObjectArrayMemberFilterInput tagFormat: ConnectionStringObjectArrayMemberFilterInput tagIndex: ConnectionIntObjectArrayMemberFilterInput } type CrawlStructuredDataBlockMaxCalculation { blockCount: Int errorCount: Int warningCount: Int } type CrawlStructuredDataBlockMinCalculation { blockCount: Int errorCount: Int warningCount: Int } input CrawlStructuredDataBlockOrder { """ The ordering direction. """ direction: OrderDirection! """ The field to order CrawlStructuredDataBlocks by. """ field: CrawlStructuredDataBlockOrderField! } enum CrawlStructuredDataBlockOrderField { blockCount errorCount issuesSummary schemaType segmentIdsCount segmentNamesCount url urlDigest validationResult warningCount } type CrawlStructuredDataBlockSumCalculation { blockCount: BigInt errorCount: BigInt warningCount: BigInt } type CrawlStructuredDataBreakdown { """ The `conditionId` in the crawl's `schemaTemplateSet`, unique within its rule. Set on `condition` and `reason` rows. """ conditionId: String """ Conditions in scope that failed on at least one page. A condition that never failed leaves no trace in the crawl, so take the number of conditions from the crawl's `schemaTemplateSet`. """ failedConditionCount: Int! """ Pages with at least one failed condition in scope. A page counts once however many conditions it fails, so the counts of the rows beneath do not add up to it. """ failedUrlCount: Int! """ Pages with two or more failed conditions in scope. """ multiGapUrlCount: Int! """ Pages with a 200 response in a page type that no schema template uses. Set on the `crawl` row only. """ noTemplateUrlCount: Int """ Pages schema templates were never checked against, such as redirects and non-200 pages. Set on the `crawl` row only. """ notEvaluatedUrlCount: Int """ The raw id of the page type the row counts. Absent on the `crawl` row and on the `parse_failure` rows that count the whole crawl. """ pageTypeId: Int """ Pages whose structured data could not be read. Absent on `template`, `rule`, `condition` and `reason` rows, because an unreadable page names no template. """ parseFailedUrlCount: Int """ Why structured data could not be read, such as "Malformed markup". Set on `parse_failure` rows, one per value. """ parseFailure: String """ Why the condition failed: `cardinality_unmet`, `property_missing`, `property_present`, `value_mismatch`, `value_matched`, `value_not_in_set`, `value_in_set` or `comparison_failed`. Set on `reason` rows. """ reason: String """ The `ruleId` in the crawl's `schemaTemplateSet`. Set on `rule`, `condition` and `reason` rows. """ ruleId: String """ What the row counts: `crawl`, `page_type`, `template`, `rule`, `condition`, `reason` or `parse_failure`. Below `page_type`, a row exists only where a condition failed or structured data could not be read. """ scope: String! """ The `templateId` in the crawl's `schemaTemplateSet`. Set on `template`, `rule`, `condition` and `reason` rows. """ templateId: String """ Pages with a 200 response that matched no page type. Set on the `crawl` row only. """ uncoveredUrlCount: Int """ Pages checked against schema templates in scope, not counting pages whose structured data could not be read. On a row with a `pageTypeId` it is every checked page of that page type. On the `crawl` row, `urlCount`, `parseFailedUrlCount`, `uncoveredUrlCount`, `noTemplateUrlCount` and `notEvaluatedUrlCount` add up to the pages crawled. """ urlCount: Int! } type CrawlStructuredDataBreakdownConnection { """ A list of edges. """ edges: [CrawlStructuredDataBreakdownEdge!]! """ A list of nodes. """ nodes: [CrawlStructuredDataBreakdown!]! """ Information to aid in pagination. """ pageInfo: PageInfo! """ Identifies the total count of CrawlStructuredDataBreakdowns in the connection. """ totalCount: Int! } input CrawlStructuredDataBreakdownConnectionFilterInput { """ Groups each filter object using AND """ _and: [CrawlStructuredDataBreakdownConnectionFilterInput!] """ Groups each filter object using AND, wrapped inside NOT """ _not: [CrawlStructuredDataBreakdownConnectionFilterInput!] """ Groups each filter object using OR """ _or: [CrawlStructuredDataBreakdownConnectionFilterInput!] conditionId: ConnectionStringFilterInput failedConditionCount: ConnectionIntFilterInput failedUrlCount: ConnectionIntFilterInput multiGapUrlCount: ConnectionIntFilterInput noTemplateUrlCount: ConnectionIntFilterInput notEvaluatedUrlCount: ConnectionIntFilterInput pageTypeId: ConnectionIntFilterInput parseFailedUrlCount: ConnectionIntFilterInput parseFailure: ConnectionStringFilterInput reason: ConnectionStringFilterInput ruleId: ConnectionStringFilterInput scope: ConnectionStringFilterInput templateId: ConnectionStringFilterInput uncoveredUrlCount: ConnectionIntFilterInput urlCount: ConnectionIntFilterInput } type CrawlStructuredDataBreakdownEdge { """ A cursor to use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: CrawlStructuredDataBreakdown! } input CrawlStructuredDataBreakdownOrder { """ The ordering direction. """ direction: OrderDirection! """ The field to order CrawlStructuredDataBreakdowns by. """ field: CrawlStructuredDataBreakdownOrderField! } enum CrawlStructuredDataBreakdownOrderField { conditionId failedConditionCount failedUrlCount multiGapUrlCount noTemplateUrlCount notEvaluatedUrlCount pageTypeId parseFailedUrlCount parseFailure reason ruleId scope templateId uncoveredUrlCount urlCount } type CrawlStructuredDataIssue { issueCode: String! issueDescription: String! issueIndex: Int! issueSeverity: String! schemaBlockDigest: String! schemaIssueDigest: String! schemaProperty: String! schemaType: String! segmentIds: [Int!] segmentIdsCount: Int segmentNames: [String!] segmentNamesCount: Int tagFormat: String! tagIndex: Int! url: String! urlDigest: String! } type CrawlStructuredDataIssueAggregate { avg: CrawlStructuredDataIssueAvgCalculation! count: CrawlStructuredDataIssueCountCalculation! issueCode: String issueSeverity: String max: CrawlStructuredDataIssueMaxCalculation! min: CrawlStructuredDataIssueMinCalculation! schemaType: String sum: CrawlStructuredDataIssueSumCalculation! tagFormat: String } type CrawlStructuredDataIssueAggregateConnection { """ A list of nodes. """ nodes: [CrawlStructuredDataIssueAggregate!]! """ Information to aid in pagination. """ pageInfo: PageInfo! """ Identifies the total count of CrawlStructuredDataIssueAggregates in the connection. """ totalCount: Int! } """ Used for grouping the CrawlStructuredDataIssue aggregates results. """ enum CrawlStructuredDataIssueAggregateDimension { issueCode issueSeverity schemaType tagFormat } input CrawlStructuredDataIssueAggregateOrder { """ The ordering direction. """ direction: OrderDirection! """ The dimension or aggregation to order by. """ field: CrawlStructuredDataIssueAggregateOrderField! } enum CrawlStructuredDataIssueAggregateOrderField { avgIssueIndex avgTagIndex countIssueIndex countTagIndex countUrl issueCode issueSeverity maxIssueIndex maxTagIndex minIssueIndex minTagIndex schemaType sumIssueIndex sumTagIndex tagFormat } type CrawlStructuredDataIssueAvgCalculation { issueIndex: Float tagIndex: Float } type CrawlStructuredDataIssueConnection { """ A list of edges. """ edges: [CrawlStructuredDataIssueEdge!]! """ A list of nodes. """ nodes: [CrawlStructuredDataIssue!]! """ Information to aid in pagination. """ pageInfo: PageInfo! """ Identifies the total count of CrawlStructuredDataIssues in the connection. """ totalCount: Int! } input CrawlStructuredDataIssueConnectionFilterInput { """ Groups each filter object using AND """ _and: [CrawlStructuredDataIssueConnectionFilterInput!] """ Groups each filter object using AND, wrapped inside NOT """ _not: [CrawlStructuredDataIssueConnectionFilterInput!] """ Groups each filter object using OR """ _or: [CrawlStructuredDataIssueConnectionFilterInput!] issueCode: ConnectionStringFilterInput issueDescription: ConnectionStringFilterInput issueIndex: ConnectionIntFilterInput issueSeverity: ConnectionStringFilterInput schemaBlockDigest: ConnectionStringFilterInput schemaIssueDigest: ConnectionStringFilterInput schemaProperty: ConnectionStringFilterInput schemaType: ConnectionStringFilterInput segmentIds: ConnectionIntArrayFilterInput segmentIdsCount: ConnectionIntFilterInput segmentNames: ConnectionStringArrayFilterInput segmentNamesCount: ConnectionIntFilterInput tagFormat: ConnectionStringFilterInput tagIndex: ConnectionIntFilterInput url: ConnectionStringFilterInput urlDigest: ConnectionStringFilterInput } type CrawlStructuredDataIssueCountCalculation { issueIndex: Int! tagIndex: Int! url: Int! } type CrawlStructuredDataIssueEdge { """ A cursor to use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: CrawlStructuredDataIssue! } type CrawlStructuredDataIssueMaxCalculation { issueIndex: Int tagIndex: Int } type CrawlStructuredDataIssueMinCalculation { issueIndex: Int tagIndex: Int } input CrawlStructuredDataIssueOrder { """ The ordering direction. """ direction: OrderDirection! """ The field to order CrawlStructuredDataIssues by. """ field: CrawlStructuredDataIssueOrderField! } enum CrawlStructuredDataIssueOrderField { issueCode issueDescription issueIndex issueSeverity schemaBlockDigest schemaIssueDigest schemaProperty schemaType segmentIdsCount segmentNamesCount tagFormat tagIndex url urlDigest } type CrawlStructuredDataIssueSumCalculation { issueIndex: BigInt tagIndex: BigInt } type CrawlTopic { avgCosineSimilarity: Float! brandMentionScore: Float brandMentions: BigInt citationScore: Float citations: BigInt """ The compare crawl's `urlCount` for this topic, when this crawl's topic threshold and scores drew on the compare crawl. Absent when they did not: on a first crawl, when the compare crawl predates topic scores, or when the topic was edited since. """ compareCrawlUrlCount: BigInt cvCosineSimilarity: Float dynamicMinSimilarityThreshold: Float """ The highest cosine similarity of any URL matching this topic. Absent when no URL matches it. """ maxCosineSimilarity: Float minSimilarityThreshold: Float """ The number of indexable URLs whose primary topic is this one. """ primaryIndexableUrlCount: BigInt """ `primaryIndexableUrlCount` divided by the median of that count across all of the crawl's topics. Below 1, the topic has fewer indexable primary URLs than a typical topic. Absent when the median is 0. """ primaryIndexableUrlCountVsMedian: Float """ Total Google Search Console clicks on the URLs whose primary topic is this one. Absent when the crawl has no Search Console data. """ primarySearchConsoleTotalClicks: BigInt """ Total Google Search Console impressions of the URLs whose primary topic is this one. Absent when the crawl has no Search Console data. """ primarySearchConsoleTotalImpressions: BigInt primaryTopicUrlCount: BigInt slotNo: Int! stddevCosineSimilarity: Float topUrls: [CrawlTopicTopUrl!] topicDescription: String topicKeywords: [String!] topicName: String! topicType: String! urlCount: BigInt! visibilityIndex: Float } type CrawlTopicAggregate { avg: CrawlTopicAvgCalculation! count: CrawlTopicCountCalculation! max: CrawlTopicMaxCalculation! min: CrawlTopicMinCalculation! sum: CrawlTopicSumCalculation! topicName: String topicType: String } type CrawlTopicAggregateConnection { """ A list of nodes. """ nodes: [CrawlTopicAggregate!]! """ Information to aid in pagination. """ pageInfo: PageInfo! """ Identifies the total count of CrawlTopicAggregates in the connection. """ totalCount: Int! } """ Used for grouping the CrawlTopic aggregates results. """ enum CrawlTopicAggregateDimension { topicName topicType } input CrawlTopicAggregateOrder { """ The ordering direction. """ direction: OrderDirection! """ The dimension or aggregation to order by. """ field: CrawlTopicAggregateOrderField! } enum CrawlTopicAggregateOrderField { avgAvgCosineSimilarity avgBrandMentionScore avgBrandMentions avgCitationScore avgCitations avgCompareCrawlUrlCount avgMaxCosineSimilarity avgPrimaryIndexableUrlCount avgPrimaryIndexableUrlCountVsMedian avgPrimarySearchConsoleTotalClicks avgPrimarySearchConsoleTotalImpressions avgPrimaryTopicUrlCount avgSlotNo avgUrlCount avgVisibilityIndex countAvgCosineSimilarity countBrandMentionScore countBrandMentions countCitationScore countCitations countCompareCrawlUrlCount countMaxCosineSimilarity countPrimaryIndexableUrlCount countPrimaryIndexableUrlCountVsMedian countPrimarySearchConsoleTotalClicks countPrimarySearchConsoleTotalImpressions countPrimaryTopicUrlCount countSlotNo countUrlCount countVisibilityIndex maxAvgCosineSimilarity maxBrandMentionScore maxBrandMentions maxCitationScore maxCitations maxCompareCrawlUrlCount maxMaxCosineSimilarity maxPrimaryIndexableUrlCount maxPrimaryIndexableUrlCountVsMedian maxPrimarySearchConsoleTotalClicks maxPrimarySearchConsoleTotalImpressions maxPrimaryTopicUrlCount maxSlotNo maxUrlCount maxVisibilityIndex minAvgCosineSimilarity minBrandMentionScore minBrandMentions minCitationScore minCitations minCompareCrawlUrlCount minMaxCosineSimilarity minPrimaryIndexableUrlCount minPrimaryIndexableUrlCountVsMedian minPrimarySearchConsoleTotalClicks minPrimarySearchConsoleTotalImpressions minPrimaryTopicUrlCount minSlotNo minUrlCount minVisibilityIndex sumAvgCosineSimilarity sumBrandMentionScore sumBrandMentions sumCitationScore sumCitations sumCompareCrawlUrlCount sumMaxCosineSimilarity sumPrimaryIndexableUrlCount sumPrimaryIndexableUrlCountVsMedian sumPrimarySearchConsoleTotalClicks sumPrimarySearchConsoleTotalImpressions sumPrimaryTopicUrlCount sumSlotNo sumUrlCount sumVisibilityIndex topicName topicType } type CrawlTopicAvgCalculation { avgCosineSimilarity: Float brandMentionScore: Float brandMentions: Float citationScore: Float citations: Float compareCrawlUrlCount: Float maxCosineSimilarity: Float primaryIndexableUrlCount: Float primaryIndexableUrlCountVsMedian: Float primarySearchConsoleTotalClicks: Float primarySearchConsoleTotalImpressions: Float primaryTopicUrlCount: Float slotNo: Float urlCount: Float visibilityIndex: Float } type CrawlTopicConnection { """ A list of edges. """ edges: [CrawlTopicEdge!]! """ A list of nodes. """ nodes: [CrawlTopic!]! """ Information to aid in pagination. """ pageInfo: PageInfo! """ Identifies the total count of CrawlTopics in the connection. """ totalCount: Int! } input CrawlTopicConnectionFilterInput { """ Groups each filter object using AND """ _and: [CrawlTopicConnectionFilterInput!] """ Groups each filter object using AND, wrapped inside NOT """ _not: [CrawlTopicConnectionFilterInput!] """ Groups each filter object using OR """ _or: [CrawlTopicConnectionFilterInput!] avgCosineSimilarity: ConnectionFloatFilterInput brandMentionScore: ConnectionFloatFilterInput brandMentions: ConnectionBigIntFilterInput citationScore: ConnectionFloatFilterInput citations: ConnectionBigIntFilterInput compareCrawlUrlCount: ConnectionBigIntFilterInput cvCosineSimilarity: ConnectionFloatFilterInput dynamicMinSimilarityThreshold: ConnectionFloatFilterInput maxCosineSimilarity: ConnectionFloatFilterInput minSimilarityThreshold: ConnectionFloatFilterInput primaryIndexableUrlCount: ConnectionBigIntFilterInput primaryIndexableUrlCountVsMedian: ConnectionFloatFilterInput primarySearchConsoleTotalClicks: ConnectionBigIntFilterInput primarySearchConsoleTotalImpressions: ConnectionBigIntFilterInput primaryTopicUrlCount: ConnectionBigIntFilterInput slotNo: ConnectionIntFilterInput stddevCosineSimilarity: ConnectionFloatFilterInput topUrls: CrawlTopicTopUrlObjectArrayMemberConnectionFilterInput topicDescription: ConnectionStringFilterInput topicKeywords: ConnectionStringArrayFilterInput topicName: ConnectionStringFilterInput topicType: ConnectionStringFilterInput urlCount: ConnectionBigIntFilterInput visibilityIndex: ConnectionFloatFilterInput } type CrawlTopicCountCalculation { avgCosineSimilarity: Int! brandMentionScore: Int! brandMentions: Int! citationScore: Int! citations: Int! compareCrawlUrlCount: Int! maxCosineSimilarity: Int! primaryIndexableUrlCount: Int! primaryIndexableUrlCountVsMedian: Int! primarySearchConsoleTotalClicks: Int! primarySearchConsoleTotalImpressions: Int! primaryTopicUrlCount: Int! slotNo: Int! urlCount: Int! visibilityIndex: Int! } type CrawlTopicEdge { """ A cursor to use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: CrawlTopic! } type CrawlTopicMaxCalculation { avgCosineSimilarity: Float brandMentionScore: Float brandMentions: BigInt citationScore: Float citations: BigInt compareCrawlUrlCount: BigInt maxCosineSimilarity: Float primaryIndexableUrlCount: BigInt primaryIndexableUrlCountVsMedian: Float primarySearchConsoleTotalClicks: BigInt primarySearchConsoleTotalImpressions: BigInt primaryTopicUrlCount: BigInt slotNo: Int urlCount: BigInt visibilityIndex: Float } type CrawlTopicMinCalculation { avgCosineSimilarity: Float brandMentionScore: Float brandMentions: BigInt citationScore: Float citations: BigInt compareCrawlUrlCount: BigInt maxCosineSimilarity: Float primaryIndexableUrlCount: BigInt primaryIndexableUrlCountVsMedian: Float primarySearchConsoleTotalClicks: BigInt primarySearchConsoleTotalImpressions: BigInt primaryTopicUrlCount: BigInt slotNo: Int urlCount: BigInt visibilityIndex: Float } input CrawlTopicOrder { """ The ordering direction. """ direction: OrderDirection! """ The field to order CrawlTopics by. """ field: CrawlTopicOrderField! } enum CrawlTopicOrderField { avgCosineSimilarity brandMentionScore brandMentions citationScore citations compareCrawlUrlCount cvCosineSimilarity dynamicMinSimilarityThreshold maxCosineSimilarity minSimilarityThreshold primaryIndexableUrlCount primaryIndexableUrlCountVsMedian primarySearchConsoleTotalClicks primarySearchConsoleTotalImpressions primaryTopicUrlCount slotNo stddevCosineSimilarity topicDescription topicName topicType urlCount visibilityIndex } type CrawlTopicSumCalculation { avgCosineSimilarity: Float brandMentionScore: Float brandMentions: BigInt citationScore: Float citations: BigInt compareCrawlUrlCount: BigInt maxCosineSimilarity: Float primaryIndexableUrlCount: BigInt primaryIndexableUrlCountVsMedian: Float primarySearchConsoleTotalClicks: BigInt primarySearchConsoleTotalImpressions: BigInt primaryTopicUrlCount: BigInt slotNo: BigInt urlCount: BigInt visibilityIndex: Float } type CrawlTopicTopUrl { cosineSimilarity: Float! url: String! urlDigest: String! } input CrawlTopicTopUrlObjectArrayMemberConnectionFilterInput { cosineSimilarity: ConnectionFloatObjectArrayMemberFilterInput url: ConnectionStringObjectArrayMemberFilterInput urlDigest: ConnectionStringObjectArrayMemberFilterInput } enum CrawlType { AiVisibility Backlinks CustomMetricsUpload GoogleAnalytics GoogleSearchConsole GoogleSearchConsoleSearchQueries List LogSummary Sitemap TargetSearchQueries Task Web } type CrawlTypeCount { count: Int! crawlTypes: [CrawlType!]! } input CrawlTypeCountsInput { crawlTypes: [CrawlType!]! reportTemplateCode: String! = "all_pages" segmentId: ObjectID } type CrawlTypeMetadata { code: CrawlType! datasourceCodes: [DatasourceCode!] datasources: [Datasource!] """ Crawl types this crawl type depends on: all of them must be enabled for this one to provide data. """ dependsOnCrawlTypes: [CrawlType!] id: ObjectID! name: String! phase: Int! rawID: String! } type CrawlUncrawledUrl { fileExtension: String foundAtSitemap: String foundAtUrl: String foundInAiVisibility: Boolean foundInBacklinks: Boolean foundInCustomMetricsUpload: Boolean foundInGoogleAnalytics: Boolean foundInGoogleSearchConsole: Boolean foundInList: Boolean foundInLogSummary: Boolean foundInSitemap: Boolean foundInWebCrawl: Boolean level: Int restrictedReason: String rewriteChain: JSONObject rewriteChainCount: Int robotsTxtRuleMatch: String tag: String url: String urlAlias: String urlAliasDigest: String urlDigest: String! } type CrawlUncrawledUrlConnection { """ A list of edges. """ edges: [CrawlUncrawledUrlEdge!]! """ A list of nodes. """ nodes: [CrawlUncrawledUrl!]! """ Information to aid in pagination. """ pageInfo: PageInfo! """ Identifies the total count of CrawlUncrawledUrls in the connection. """ totalCount: Int! } input CrawlUncrawledUrlConnectionFilterInput { """ Groups each filter object using AND """ _and: [CrawlUncrawledUrlConnectionFilterInput!] """ Groups each filter object using AND, wrapped inside NOT """ _not: [CrawlUncrawledUrlConnectionFilterInput!] """ Groups each filter object using OR """ _or: [CrawlUncrawledUrlConnectionFilterInput!] fileExtension: ConnectionStringFilterInput foundAtSitemap: ConnectionStringFilterInput foundAtUrl: ConnectionStringFilterInput foundInAiVisibility: ConnectionBooleanFilterInput foundInBacklinks: ConnectionBooleanFilterInput foundInCustomMetricsUpload: ConnectionBooleanFilterInput foundInGoogleAnalytics: ConnectionBooleanFilterInput foundInGoogleSearchConsole: ConnectionBooleanFilterInput foundInList: ConnectionBooleanFilterInput foundInLogSummary: ConnectionBooleanFilterInput foundInSitemap: ConnectionBooleanFilterInput foundInWebCrawl: ConnectionBooleanFilterInput level: ConnectionIntFilterInput restrictedReason: ConnectionStringFilterInput rewriteChainCount: ConnectionIntFilterInput robotsTxtRuleMatch: ConnectionStringFilterInput tag: ConnectionStringFilterInput url: ConnectionStringFilterInput urlAlias: ConnectionStringFilterInput urlAliasDigest: ConnectionStringFilterInput urlDigest: ConnectionStringFilterInput } type CrawlUncrawledUrlEdge { """ A cursor to use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: CrawlUncrawledUrl! } input CrawlUncrawledUrlOrder { """ The ordering direction. """ direction: OrderDirection! """ The field to order CrawlUncrawledUrls by. """ field: CrawlUncrawledUrlOrderField! } enum CrawlUncrawledUrlOrderField { fileExtension foundAtSitemap foundAtUrl foundInAiVisibility foundInBacklinks foundInCustomMetricsUpload foundInGoogleAnalytics foundInGoogleSearchConsole foundInList foundInLogSummary foundInSitemap foundInWebCrawl level restrictedReason rewriteChainCount robotsTxtRuleMatch tag url urlAlias } type CrawlUniqueLink { anchorText: String attrRel: String hasImageAltText: Boolean hasImageLink: Boolean hreflang: String instanceCount: Int internal: Boolean isHreflang: Boolean isImageAltTextEmpty: Boolean isRedirect: Boolean isRestricted: Boolean linkType: String nofollow: Boolean primaryUrlFrom: String primaryUrlFromAlias: String primaryUrlFromAliasDigest: String primaryUrlFromDeeprank: Float primaryUrlFromDigest: String primaryUrlFromHttps: Boolean primaryUrlFromStatusCode: Int primaryUrlFromStatusCodeId: Int primaryUrlFromTitle: String tag: String uniqueLinkDigest: String! urlTo: String urlToAlias: String urlToAliasDigest: String urlToDeeprank: Float urlToDigest: String urlToHttps: Boolean urlToStatusCode: Int urlToStatusCodeId: Int urlToTitle: String } type CrawlUniqueLinkConnection { """ A list of edges. """ edges: [CrawlUniqueLinkEdge!]! """ A list of nodes. """ nodes: [CrawlUniqueLink!]! """ Information to aid in pagination. """ pageInfo: PageInfo! """ Identifies the total count of CrawlUniqueLinks in the connection. """ totalCount: Int! } input CrawlUniqueLinkConnectionFilterInput { """ Groups each filter object using AND """ _and: [CrawlUniqueLinkConnectionFilterInput!] """ Groups each filter object using AND, wrapped inside NOT """ _not: [CrawlUniqueLinkConnectionFilterInput!] """ Groups each filter object using OR """ _or: [CrawlUniqueLinkConnectionFilterInput!] anchorText: ConnectionStringFilterInput attrRel: ConnectionStringFilterInput hasImageAltText: ConnectionBooleanFilterInput hasImageLink: ConnectionBooleanFilterInput hreflang: ConnectionStringFilterInput instanceCount: ConnectionIntFilterInput internal: ConnectionBooleanFilterInput isHreflang: ConnectionBooleanFilterInput isImageAltTextEmpty: ConnectionBooleanFilterInput isRedirect: ConnectionBooleanFilterInput isRestricted: ConnectionBooleanFilterInput linkType: ConnectionStringFilterInput nofollow: ConnectionBooleanFilterInput primaryUrlFrom: ConnectionStringFilterInput primaryUrlFromAlias: ConnectionStringFilterInput primaryUrlFromAliasDigest: ConnectionStringFilterInput primaryUrlFromDeeprank: ConnectionFloatFilterInput primaryUrlFromDigest: ConnectionStringFilterInput primaryUrlFromHttps: ConnectionBooleanFilterInput primaryUrlFromStatusCode: ConnectionIntFilterInput primaryUrlFromTitle: ConnectionStringFilterInput tag: ConnectionStringFilterInput uniqueLinkDigest: ConnectionStringFilterInput urlTo: ConnectionStringFilterInput urlToAlias: ConnectionStringFilterInput urlToAliasDigest: ConnectionStringFilterInput urlToDeeprank: ConnectionFloatFilterInput urlToDigest: ConnectionStringFilterInput urlToHttps: ConnectionBooleanFilterInput urlToStatusCode: ConnectionIntFilterInput urlToTitle: ConnectionStringFilterInput } type CrawlUniqueLinkEdge { """ A cursor to use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: CrawlUniqueLink! } input CrawlUniqueLinkOrder { """ The ordering direction. """ direction: OrderDirection! """ The field to order CrawlUniqueLinks by. """ field: CrawlUniqueLinkOrderField! } enum CrawlUniqueLinkOrderField { anchorText attrRel hasImageAltText hasImageLink hreflang instanceCount internal isHreflang isImageAltTextEmpty isRedirect isRestricted linkType nofollow primaryUrlFrom primaryUrlFromAlias primaryUrlFromDeeprank primaryUrlFromHttps primaryUrlFromStatusCode primaryUrlFromTitle tag urlTo urlToAlias urlToDeeprank urlToHttps urlToStatusCode urlToTitle } type CrawlUrl { accessibilityAIssuesCount: Int accessibilityAaIssuesCount: Int accessibilityAaaIssuesCount: Int accessibilityBpIssuesCount: Int accessibilityCriticalIssuesCount: Int accessibilityEnabled: Boolean accessibilityIncompleteIssuesCount: Int accessibilityIssuesCount: Int accessibilityIssuesCountByRuleId: [JSONObject!] accessibilityIssuesCountByRuleIdCount: Int accessibilityMinorIssuesCount: Int accessibilityModerateIssuesCount: Int accessibilitySeriousIssuesCount: Int adultRating: Boolean aiBotBlocked: [String!] aiBotBlockedCount: Int aiBounceRate: Float aiPageviews: Int aiSessions: Int aiSourceBreakdown: [AiSourceBreakdown!] aiUsers: Int amphtml: Boolean amphtmlReciprocate: Boolean amphtmlValid: Boolean attachmentNames: [String!] attachments: [CrawlUrlAttachment!] avgCitationPosition: Float avgCitationScore: Float backlinkCount: Int backlinkDomainCount: Int bodyTagsInHeadCount: Int breadcrumb01: String breadcrumb02: String breadcrumb03: String breadcrumb04: String breadcrumb05: String breadcrumb06: String breadcrumb07: String breadcrumb08: String breadcrumbCount: Int breadcrumbSchemaCount: Int cacheControl: String canonicalHeaderUrl: String canonicalHtmlUrl: String canonicalLinksInCount: Int canonicalUrl: String canonicalUrlChangedFrom: String canonicalUrlDigest: String canonicalUrlIsConsistent: Boolean canonicalizedPage: Boolean changes: [String!] changesCount: Int citationsCount: Int containerExecutionFailures: [ContainerExecutionFailure!] containerExecutionFailuresCount: Int contentHtmlRatio: Float contentSize: Int conversionsDetails: [ConversionDetail!] crawlDatetime: DateTime css: Boolean cssLinksInCount: Int cumulativeLayoutShift: Float cumulativeLayoutShiftMainFrame: Float cumulativeLayoutShiftScore: Float customExtraction1: [String!] customExtraction1Count: Int customExtraction2: [String!] customExtraction2Count: Int customExtraction3: [String!] customExtraction3Count: Int customExtraction4: [String!] customExtraction4Count: Int customExtraction5: [String!] customExtraction5Count: Int customExtraction6: [String!] customExtraction6Count: Int customExtraction7: [String!] customExtraction7Count: Int customExtraction8: [String!] customExtraction8Count: Int customExtraction9: [String!] customExtraction9Count: Int customExtraction10: [String!] customExtraction10Count: Int customExtraction11: [String!] customExtraction11Count: Int customExtraction12: [String!] customExtraction12Count: Int customExtraction13: [String!] customExtraction13Count: Int customExtraction14: [String!] customExtraction14Count: Int customExtraction15: [String!] customExtraction15Count: Int customExtraction16: [String!] customExtraction16Count: Int customExtraction17: [String!] customExtraction17Count: Int customExtraction18: [String!] customExtraction18Count: Int customExtraction19: [String!] customExtraction19Count: Int customExtraction20: [String!] customExtraction20Count: Int customExtraction21: [String!] customExtraction21Count: Int customExtraction22: [String!] customExtraction22Count: Int customExtraction23: [String!] customExtraction23Count: Int customExtraction24: [String!] customExtraction24Count: Int customExtraction25: [String!] customExtraction25Count: Int customExtraction26: [String!] customExtraction26Count: Int customExtraction27: [String!] customExtraction27Count: Int customExtraction28: [String!] customExtraction28Count: Int customExtraction29: [String!] customExtraction29Count: Int customExtraction30: [String!] customExtraction30Count: Int customExtractionMatch: Boolean customMetrics: JSONObject deeprank: Float description: String descriptionChangedFrom: String descriptionLength: Int descriptionLengthPx: Int descriptionRelevance: Float desktopUrl: String desktopUrlDigest: String disallowedPage: Boolean dominantLanguages: [String!] duplicateBody: Boolean duplicateBodyCount: Int duplicateBodyCountIsApproximation: Boolean duplicateBodyNonIndexable: Boolean duplicateBodyPrimaryUrl: String duplicateBodyPrimaryUrlDigest: String duplicateDescription: Boolean duplicateDescriptionCount: Int duplicateDescriptionCountIsApproximation: Boolean duplicateDescriptionNonIndexable: Boolean duplicateDescriptionPrimaryUrl: String duplicateDescriptionPrimaryUrlDigest: String duplicatePage: Boolean duplicatePageCount: Int duplicatePageCountIsApproximation: Boolean duplicatePageNonIndexable: Boolean duplicateTitle: Boolean duplicateTitleCount: Int duplicateTitleCountIsApproximation: Boolean duplicateTitleNonIndexable: Boolean duplicateTitlePrimaryUrl: String duplicateTitlePrimaryUrlDigest: String duplicateUrl: Boolean duplicateUrlCount: Int duplicateUrlCountIsApproximation: Boolean duplicateUrlNonIndexable: Boolean duplicateUrlPrimaryUrl: String duplicateUrlPrimaryUrlDigest: String elementOptimisationRequests( after: String before: String """ Filtering options for ElementOptimisationRequests returned from the connection. """ filter: ElementOptimisationRequestConnectionFilterInput first: Int = 15 last: Int """ Ordering options for ElementOptimisationRequests returned from the connection. """ orderBy: [ElementOptimisationRequestOrder!] ): ElementOptimisationRequestConnection! encodingHeader: String eventSchemaCount: Int externalLinksCount: Int failedAudits: [String!] failedAuditsCount: Int failedReason: String faqpageSchemaCount: Int fbAdmins: String fbAppId: String fetchTime: Float fileExtension: String firstContentfulPaint: Int firstContentfulPaintScore: Float firstMeaningfulPaint: Int folderCount: Int followedExternalLinksOutCount: Int followedLinksInCount: Int foundAtSitemap: String foundAtUrl: String foundAtUrlDigest: String foundInAiVisibility: Boolean foundInBacklinks: Boolean foundInCustomMetricsUpload: Boolean foundInGoogleAnalytics: Boolean foundInGoogleSearchConsole: Boolean foundInList: Boolean foundInLogSummary: Boolean foundInSitemap: Boolean foundInTask: Boolean foundInWebCrawl: Boolean gaAvgPageLoadTime: Float gaAvgTimeOnPage: Float gaPageviews: Int gaPageviewsPerVisits: Float gaVisitBounceRate: Float gaVisits: Int h1Count: Int h1Length: Int h1Tag: [String!] h1TagChangedFrom: [String!] h1TagChangedFromCount: Int h1TagCount: Int h1TagRelevance: Float h2Tag: [String!] h2TagCount: Int h3Tag: [String!] h3TagCount: Int hasStructuredData: Boolean headTagsInBodyCount: Int headerContentType: String headerContentTypeChangedFrom: String headerNoarchive: Boolean headerNofollow: Boolean headerNoindex: Boolean headerNoodp: Boolean headerNosnippet: Boolean headerNoydir: Boolean howtoSchemaCount: Int hreflangCombination: [String!] hreflangCombinationChangedFrom: [String!] hreflangCombinationChangedFromCount: Int hreflangCombinationCount: Int hreflangLanguagesIn: [String!] hreflangLanguagesInCount: Int hreflangLanguagesInMetaCount: Int hreflangLinksInCount: Int hreflangLinksOutCount: Int hreflangOnHeader: Boolean hreflangOnPage: Boolean hreflangOnSitemap: Boolean hreflangUrlCount: Int hsts: String htmlSize: Int httpStatusCode: Int httpStatusCodeChangedFrom: Int https: Boolean id: ObjectID! identifiedLanguage: String imgLinksInCount: Int inconsistentHreflangsInCount: Int indexable: Boolean infoAudits: [String!] infoAuditsCount: Int interactive: Int internal: Boolean internalLinksCount: Int isImage: Boolean isRedirect: Boolean isRedirectLoop: Boolean isSelfCanonical: Boolean isWebLinked: Boolean issueReportCodes: [String!] js: Boolean jsLinksInCount: Int languagesSummary: [LanguageSummary!] largestContentfulPaint: Int largestContentfulPaintScore: Float lcpLoadEnd: Int lcpLoadStart: Int level: Int levelChangedFrom: Int linksInCount: Int linksOutCount: Int logRequestsAiBot: Int logRequestsAiBotSummary: [LogRequestAiBotSummary!] logRequestsDesktop: Int logRequestsMobile: Int logRequestsTotal: Int mainContent: String mainContentRelevance: Float maxPotentialFid: Int metaCharset: String metaContentType: String metaDisabledSitelinks: Boolean metaNoarchive: Boolean metaNofollow: Boolean metaNoindex: Boolean metaNoodp: Boolean metaNosnippet: Boolean metaNoydir: Boolean metaRedirect: Boolean mixedContentWarnings: [String!] mixedContentWarningsCount: Int mobileDesktopContentDifference: Int mobileDesktopContentMismatch: Boolean mobileDesktopLinksInDifference: Int mobileDesktopLinksOutDifference: Int mobileLinksInCount: Int mobileReciprocate: Boolean mobileRelAlternate: Boolean mobileRelAlternateHeaderUrl: String mobileRelAlternateHeaderUrlDigest: String mobileRelAlternateHtmlUrl: String mobileRelAlternateHtmlUrlDigest: String mobileRelAlternateUrl: String mobileRelAlternateUrlDigest: String mobileRelAlternateUrlIsConsistent: Boolean mobileRelAmphtml: Boolean mobileRelAmphtmlUrl: String mobileRelAmphtmlUrlDigest: String """ The cosine similarity between the page and its nearest topic. """ nearestTopicCosineSimilarity: Float """ The topic with the highest cosine similarity to the page, whether or not the page matches it. """ nearestTopicName: String newsarticleAuthorSchemaValue: String newsarticleSchemaCount: Int newsarticleSchemaValid: Boolean noarchive: Boolean nofollowedPage: Boolean noindex: Boolean nonReciprocateHreflangOutCount: Int noodp: Boolean nosnippet: Boolean noydir: Boolean ogDescription: String ogImage: String ogLocale: String ogSiteName: String ogTitle: String ogType: String ogUrl: String page1: Boolean pageGroup: String pageRelevance: Float pageTitle: String pageTitleChangedFrom: String pageTitleLength: Int pageTitleLengthPx: Int pageTitleRelevance: Float """ The ids of the project's page types this page matched, in the same order as `pageTypeNames`. """ pageTypeIds: [Int!] """ The number of entries in `pageTypeIds`. """ pageTypeIdsCount: Int """ The names of the project's page types this page matched. """ pageTypeNames: [String!] """ The number of entries in `pageTypeNames`. """ pageTypeNamesCount: Int paginatedLinksInCount: Int paginatedPage: Boolean paramCount: Int passedAudits: [String!] passedAuditsCount: Int path0: String path1: String path2: String path3: String path4: String path5: String path6: String path7: String path8: String path9: String pathCount: Int performanceCls: Float performanceDcl: Float performanceFcp: Float performanceLcp: Float performanceTtfb: Float performanceTti: Float previousPath: String previousPathDigest: String primaryConversionsCount: Int primaryConversionsPerSession: Float primaryConversionsValue: Float primaryPage: Boolean """ The cosine similarity between the page and its primary topic. """ primaryTopicCosineSimilarity: Float """ The page's primary topic: the matched topic with the highest score. Absent when the page matches no topic. """ primaryTopicName: String """ The page's score for its primary topic: how many standard deviations its cosine similarity sits above the topic's mean. The mean and spread come from this crawl, blended with the compare crawl's when it had the same topic. """ primaryTopicScore: Float primaryUrl: String primaryUrlDigest: String primaryUrlNonIndexable: String productAvailabilitySchemaValue: String productBrandSchemaValue: String productOfSavingsKibAndPageviews: Float productOfSavingsSecsAndPageviews: Float productPriceSchemaValue: Float productRatingSchemaValue: Float productSchemaCount: Int productSchemaValid: Boolean productSkuSchemaValue: String promptCount: Int qapageSchemaCount: Int rawHeader: JSONObject rawID: String! recipeSchemaCount: Int reciprocateHreflangOutCount: Int redirectChain: [Redirect!] redirectChainCount: Int redirectCount: Int redirectExclusionReason: RedirectExclusionReason redirectedToStatusCode: Int redirectedToUrl: String redirectedToUrlChangedFrom: String redirectedToUrlDigest: String redirectsInCount: Int relLinksInCount: Int relNextHeaderUrl: String relNextHtmlUrl: String relNextUrl: String relNextUrlIsConsistent: Boolean relPrevHeaderUrl: String relPrevHtmlUrl: String relPrevUrl: String relPrevUrlIsConsistent: Boolean renderedCanonicalLinkMatch: Boolean renderedLinkCountDifference: Int renderedWordCountDifference: Int resolvedHttpStatusCode: ResolvedHttpStatusCode resourceLinksInCount: Int responsive: Boolean reviewSchemaCount: Int robotsNoindex: Boolean robotsTxtRuleMatch: String savingsKib: Float savingsScore: Float savingsSecs: Float schemaBlocksCount: Int schemaErrorsCount: Int """ The schema template conditions this page failed. A condition that is not listed held, or had nothing to check on the page. Absent when no schema template applies to the page. """ schemaFailedConditions: [SchemaFailedCondition!] """ The number of entries in `schemaFailedConditions`. """ schemaFailedConditionsCount: Int schemaIssuesCount: Int schemaIssuesCountByType: [SchemaIssuesCountByType!] schemaIssuesCountByTypeCount: Int """ Set to "Malformed markup" when structured data on the page could not be read. Absent when every block was read, or when no schema template applies to the page. """ schemaParseFailure: String """ The `version` of the crawl's `schemaTemplateSet` that checked this page. Absent when no schema template applies to the page. """ schemaTemplateSetVersion: Int schemaTypesPresent: [String!] schemaTypesPresentCount: Int schemaWarningsCount: Int searchConsoleDesktopClicks: Int searchConsoleDesktopCtr: Float searchConsoleDesktopImpressions: Int searchConsoleDesktopPosition: Float searchConsoleMobileClicks: Int searchConsoleMobileCtr: Float searchConsoleMobileImpressions: Int searchConsoleMobilePosition: Float searchConsoleTabletClicks: Int searchConsoleTabletCtr: Float searchConsoleTabletImpressions: Int searchConsoleTabletPosition: Float searchConsoleTotalClicks: Int searchConsoleTotalCtr: Float searchConsoleTotalImpressions: Int searchConsoleTotalPosition: Float searchQueriesCount: Int searchQueriesSummary: [SearchQuerySummary!] searchVolume: Int searchVolumeTrend: [SearchVolumeTrend!] secondaryConversionsCount: Int secondaryConversionsPerSession: Float secondaryConversionsValue: Float """ The cosine similarity between the page and its secondary topic. """ secondaryTopicCosineSimilarity: Float """ The matched topic with the second-highest score. Absent when the page matches fewer than two topics. """ secondaryTopicName: String """ The page's score for its secondary topic. """ secondaryTopicScore: Float secureFormInputField: Boolean separateDesktop: Boolean separateMobile: Boolean sitemapsInCount: Int sitespeedAuditResults: [SitespeedAuditResult!] sitespeedAuditResultsCount: Int sitespeedCls: Float sitespeedClsAuditResults: [SitespeedAuditResult!] sitespeedClsAuditResultsCount: Int sitespeedClsMainFrame: Float sitespeedClsScore: Float sitespeedFcp: Float sitespeedFcpAuditResults: [SitespeedAuditResult!] sitespeedFcpAuditResultsCount: Int sitespeedFcpScore: Float sitespeedFmp: Float sitespeedLcp: Float sitespeedLcpAuditResults: [SitespeedAuditResult!] sitespeedLcpAuditResultsCount: Int sitespeedLcpScore: Float sitespeedMaxPotentialFid: Float sitespeedScore: Float sitespeedSpeedIndex: Float sitespeedSpeedIndexScore: Float sitespeedTbt: Float sitespeedTbtAuditResults: [SitespeedAuditResult!] sitespeedTbtAuditResultsCount: Int sitespeedTbtScore: Float sitespeedTtfb: Float sitespeedTti: Float speedIndex: Int speedIndexScore: Float taskIds: [Int!] taskIdsCount: Int thirdPartyCookieOrigins: [String!] timeToFirstByte: Int """ The number of topics the page matches. 0 when the page was scored against the crawl's topics and matched none; absent when it was not scored, for example because it has no main content. """ topicMatchCount: Int """ `primaryTopicScore` minus `secondaryTopicScore`. A small gap means the page is ambiguous between its two best topics. Absent when the page matches fewer than two topics. """ topicScoreGap: Float topicSimilarities: [TopicSimilarity!] totalBlockingTime: Int totalBlockingTimeScore: Float transferSize: Int twitterCard: String twitterDescription: String twitterDescriptionLength: Int twitterImage: String twitterSite: String twitterTitle: String unavailableAfter: String unavailableAfterDays: Int uniqueLinksInCount: Int url: String urlAlias: String urlAliasDigest: String urlContainsRepeatedPaths: Boolean urlContainsUnderscores: Boolean urlDigest: String! urlDoubleEncoded: Boolean urlLength: Int urlNormalized: String urlPathContainsDoubleSlashes: Boolean validTwitterCard: Boolean varyUserAgent: Boolean videoobjectSchemaCount: Int viewport: String visibleIn: [String!] warningAudits: [String!] warningAuditsCount: Int wordCount: Int } type CrawlUrlAggregate { adultRating: Boolean amphtml: Boolean amphtmlReciprocate: Boolean avg: CrawlUrlAvgCalculation! breadcrumb01: String breadcrumb02: String breadcrumb03: String breadcrumb04: String breadcrumb05: String breadcrumb06: String breadcrumb07: String breadcrumb08: String cacheControl: String canonicalUrlIsConsistent: Boolean canonicalizedPage: Boolean count: CrawlUrlCountCalculation! css: Boolean customExtractionMatch: Boolean disallowedPage: Boolean duplicateBody: Boolean duplicateBodyNonIndexable: Boolean duplicateDescription: Boolean duplicateDescriptionNonIndexable: Boolean duplicatePage: Boolean duplicatePageNonIndexable: Boolean duplicateTitle: Boolean duplicateTitleNonIndexable: Boolean duplicateUrl: Boolean duplicateUrlNonIndexable: Boolean failedReason: String fileExtension: String foundInAiVisibility: Boolean foundInBacklinks: Boolean foundInGoogleAnalytics: Boolean foundInGoogleSearchConsole: Boolean foundInList: Boolean foundInLogSummary: Boolean foundInSitemap: Boolean foundInWebCrawl: Boolean headerContentType: String headerNofollow: Boolean headerNoindex: Boolean httpStatusCode: Int httpStatusCodeChangedFrom: Int https: Boolean indexable: Boolean isImage: Boolean isSelfCanonical: Boolean isWebLinked: Boolean js: Boolean level: Int max: CrawlUrlMaxCalculation! metaContentType: String metaNofollow: Boolean metaNoindex: Boolean metaRedirect: Boolean min: CrawlUrlMinCalculation! nofollowedPage: Boolean noindex: Boolean nosnippet: Boolean ogLocale: String ogType: String pageGroup: String path0: String path1: String path2: String path3: String path4: String path5: String path6: String path7: String path8: String path9: String primaryPage: Boolean primaryTopicName: String redirectedToStatusCode: Int separateMobile: Boolean sum: CrawlUrlSumCalculation! urlContainsRepeatedPaths: Boolean urlContainsUnderscores: Boolean urlDoubleEncoded: Boolean urlPathContainsDoubleSlashes: Boolean viewport: String } type CrawlUrlAggregateConnection { """ A list of nodes. """ nodes: [CrawlUrlAggregate!]! """ Information to aid in pagination. """ pageInfo: PageInfo! """ Identifies the total count of CrawlUrlAggregates in the connection. """ totalCount: Int! } """ Used for grouping the CrawlUrl aggregates results. """ enum CrawlUrlAggregateDimension { adultRating amphtml amphtmlReciprocate breadcrumb01 breadcrumb02 breadcrumb03 breadcrumb04 breadcrumb05 breadcrumb06 breadcrumb07 breadcrumb08 cacheControl canonicalUrlIsConsistent canonicalizedPage css customExtractionMatch disallowedPage duplicateBody duplicateBodyNonIndexable duplicateDescription duplicateDescriptionNonIndexable duplicatePage duplicatePageNonIndexable duplicateTitle duplicateTitleNonIndexable duplicateUrl duplicateUrlNonIndexable failedReason fileExtension foundInAiVisibility foundInBacklinks foundInGoogleAnalytics foundInGoogleSearchConsole foundInList foundInLogSummary foundInSitemap foundInWebCrawl headerContentType headerNofollow headerNoindex httpStatusCode httpStatusCodeChangedFrom https indexable isImage isSelfCanonical isWebLinked js level metaContentType metaNofollow metaNoindex metaRedirect nofollowedPage noindex nosnippet ogLocale ogType pageGroup path0 path1 path2 path3 path4 path5 path6 path7 path8 path9 primaryPage primaryTopicName redirectedToStatusCode separateMobile urlContainsRepeatedPaths urlContainsUnderscores urlDoubleEncoded urlPathContainsDoubleSlashes viewport } input CrawlUrlAggregateOrder { """ The ordering direction. """ direction: OrderDirection! """ The dimension or aggregation to order by. """ field: CrawlUrlAggregateOrderField! } enum CrawlUrlAggregateOrderField { adultRating amphtml amphtmlReciprocate avgAccessibilityAIssuesCount avgAccessibilityAaIssuesCount avgAccessibilityAaaIssuesCount avgAccessibilityBpIssuesCount avgAccessibilityCriticalIssuesCount avgAccessibilityIncompleteIssuesCount avgAccessibilityIssuesCount avgAccessibilityMinorIssuesCount avgAccessibilityModerateIssuesCount avgAccessibilitySeriousIssuesCount avgAiBounceRate avgAiPageviews avgAiSessions avgAiUsers avgAvgCitationPosition avgAvgCitationScore avgBacklinkCount avgBacklinkDomainCount avgBodyTagsInHeadCount avgBreadcrumbCount avgBreadcrumbSchemaCount avgCanonicalLinksInCount avgCitationsCount avgContentHtmlRatio avgContentSize avgCumulativeLayoutShift avgCumulativeLayoutShiftMainFrame avgCumulativeLayoutShiftScore avgDeeprank avgDescriptionLength avgDescriptionLengthPx avgDescriptionRelevance avgDuplicateBodyCount avgDuplicateDescriptionCount avgDuplicatePageCount avgDuplicateTitleCount avgDuplicateUrlCount avgEventSchemaCount avgExternalLinksCount avgFailedAuditsCount avgFaqpageSchemaCount avgFetchTime avgFirstContentfulPaint avgFirstContentfulPaintScore avgFirstMeaningfulPaint avgFolderCount avgFollowedExternalLinksOutCount avgFollowedLinksInCount avgGaAvgPageLoadTime avgGaAvgTimeOnPage avgGaPageviewsPerVisits avgGaVisitBounceRate avgGaVisits avgH1Count avgH1Length avgH1TagRelevance avgHeadTagsInBodyCount avgHowtoSchemaCount avgHreflangLinksInCount avgHtmlSize avgInfoAuditsCount avgInteractive avgInternalLinksCount avgLargestContentfulPaint avgLargestContentfulPaintScore avgLcpLoadEnd avgLcpLoadStart avgLinksInCount avgLinksOutCount avgLogRequestsAiBot avgLogRequestsDesktop avgLogRequestsMobile avgLogRequestsTotal avgMainContentRelevance avgMaxPotentialFid avgMobileDesktopContentDifference avgMobileDesktopLinksInDifference avgMobileDesktopLinksOutDifference avgMobileLinksInCount avgNearestTopicCosineSimilarity avgNewsarticleSchemaCount avgNonReciprocateHreflangOutCount avgPageRelevance avgPageTitleLength avgPageTitleLengthPx avgPageTitleRelevance avgPaginatedLinksInCount avgParamCount avgPassedAuditsCount avgPerformanceCls avgPerformanceDcl avgPerformanceFcp avgPerformanceLcp avgPerformanceTtfb avgPerformanceTti avgPrimaryConversionsCount avgPrimaryConversionsPerSession avgPrimaryConversionsValue avgPrimaryTopicCosineSimilarity avgPrimaryTopicScore avgProductOfSavingsKibAndPageviews avgProductOfSavingsSecsAndPageviews avgProductPriceSchemaValue avgProductRatingSchemaValue avgProductSchemaCount avgPromptCount avgQapageSchemaCount avgRecipeSchemaCount avgReciprocateHreflangOutCount avgRedirectCount avgRedirectsInCount avgRelLinksInCount avgRenderedLinkCountDifference avgRenderedWordCountDifference avgResourceLinksInCount avgReviewSchemaCount avgSavingsKib avgSavingsScore avgSavingsSecs avgSchemaBlocksCount avgSchemaErrorsCount avgSchemaIssuesCount avgSchemaWarningsCount avgSearchConsoleDesktopClicks avgSearchConsoleDesktopCtr avgSearchConsoleDesktopImpressions avgSearchConsoleDesktopPosition avgSearchConsoleMobileClicks avgSearchConsoleMobileCtr avgSearchConsoleMobileImpressions avgSearchConsoleMobilePosition avgSearchConsoleTabletClicks avgSearchConsoleTabletCtr avgSearchConsoleTabletImpressions avgSearchConsoleTabletPosition avgSearchConsoleTotalClicks avgSearchConsoleTotalCtr avgSearchConsoleTotalImpressions avgSearchConsoleTotalPosition avgSearchQueriesCount avgSecondaryConversionsCount avgSecondaryConversionsPerSession avgSecondaryConversionsValue avgSecondaryTopicCosineSimilarity avgSecondaryTopicScore avgSitemapsInCount avgSitespeedCls avgSitespeedClsMainFrame avgSitespeedClsScore avgSitespeedFcp avgSitespeedFcpScore avgSitespeedFmp avgSitespeedLcp avgSitespeedLcpScore avgSitespeedMaxPotentialFid avgSitespeedScore avgSitespeedSpeedIndex avgSitespeedSpeedIndexScore avgSitespeedTbt avgSitespeedTbtScore avgSitespeedTtfb avgSitespeedTti avgSpeedIndex avgSpeedIndexScore avgTimeToFirstByte avgTopicMatchCount avgTopicScoreGap avgTotalBlockingTime avgTotalBlockingTimeScore avgUniqueLinksInCount avgVideoobjectSchemaCount avgWarningAuditsCount avgWordCount breadcrumb01 breadcrumb02 breadcrumb03 breadcrumb04 breadcrumb05 breadcrumb06 breadcrumb07 breadcrumb08 cacheControl canonicalUrlIsConsistent canonicalizedPage countAccessibilityAIssuesCount countAccessibilityAaIssuesCount countAccessibilityAaaIssuesCount countAccessibilityBpIssuesCount countAccessibilityCriticalIssuesCount countAccessibilityIncompleteIssuesCount countAccessibilityIssuesCount countAccessibilityMinorIssuesCount countAccessibilityModerateIssuesCount countAccessibilitySeriousIssuesCount countAiBounceRate countAiPageviews countAiSessions countAiUsers countAvgCitationPosition countAvgCitationScore countBacklinkCount countBacklinkDomainCount countBodyTagsInHeadCount countBreadcrumbCount countBreadcrumbSchemaCount countCanonicalLinksInCount countCitationsCount countContentHtmlRatio countContentSize countCumulativeLayoutShift countCumulativeLayoutShiftMainFrame countCumulativeLayoutShiftScore countDeeprank countDescriptionLength countDescriptionLengthPx countDescriptionRelevance countDuplicateBodyCount countDuplicateDescriptionCount countDuplicatePageCount countDuplicateTitleCount countDuplicateUrlCount countEventSchemaCount countExternalLinksCount countFailedAuditsCount countFaqpageSchemaCount countFetchTime countFirstContentfulPaint countFirstContentfulPaintScore countFirstMeaningfulPaint countFolderCount countFollowedExternalLinksOutCount countFollowedLinksInCount countFoundAtSitemap countGaAvgPageLoadTime countGaAvgTimeOnPage countGaPageviewsPerVisits countGaVisitBounceRate countGaVisits countH1Count countH1Length countH1TagRelevance countHeadTagsInBodyCount countHowtoSchemaCount countHreflangLinksInCount countHtmlSize countInfoAuditsCount countInteractive countInternalLinksCount countLargestContentfulPaint countLargestContentfulPaintScore countLcpLoadEnd countLcpLoadStart countLinksInCount countLinksOutCount countLogRequestsAiBot countLogRequestsDesktop countLogRequestsMobile countLogRequestsTotal countMainContentRelevance countMaxPotentialFid countMobileDesktopContentDifference countMobileDesktopLinksInDifference countMobileDesktopLinksOutDifference countMobileLinksInCount countNearestTopicCosineSimilarity countNewsarticleSchemaCount countNonReciprocateHreflangOutCount countPageRelevance countPageTitleLength countPageTitleLengthPx countPageTitleRelevance countPaginatedLinksInCount countParamCount countPassedAuditsCount countPerformanceCls countPerformanceDcl countPerformanceFcp countPerformanceLcp countPerformanceTtfb countPerformanceTti countPrimaryConversionsCount countPrimaryConversionsPerSession countPrimaryConversionsValue countPrimaryTopicCosineSimilarity countPrimaryTopicScore countProductOfSavingsKibAndPageviews countProductOfSavingsSecsAndPageviews countProductPriceSchemaValue countProductRatingSchemaValue countProductSchemaCount countPromptCount countQapageSchemaCount countRecipeSchemaCount countReciprocateHreflangOutCount countRedirectCount countRedirectsInCount countRelLinksInCount countRenderedLinkCountDifference countRenderedWordCountDifference countResourceLinksInCount countReviewSchemaCount countSavingsKib countSavingsScore countSavingsSecs countSchemaBlocksCount countSchemaErrorsCount countSchemaIssuesCount countSchemaWarningsCount countSearchConsoleDesktopClicks countSearchConsoleDesktopCtr countSearchConsoleDesktopImpressions countSearchConsoleDesktopPosition countSearchConsoleMobileClicks countSearchConsoleMobileCtr countSearchConsoleMobileImpressions countSearchConsoleMobilePosition countSearchConsoleTabletClicks countSearchConsoleTabletCtr countSearchConsoleTabletImpressions countSearchConsoleTabletPosition countSearchConsoleTotalClicks countSearchConsoleTotalCtr countSearchConsoleTotalImpressions countSearchConsoleTotalPosition countSearchQueriesCount countSecondaryConversionsCount countSecondaryConversionsPerSession countSecondaryConversionsValue countSecondaryTopicCosineSimilarity countSecondaryTopicScore countSitemapsInCount countSitespeedCls countSitespeedClsMainFrame countSitespeedClsScore countSitespeedFcp countSitespeedFcpScore countSitespeedFmp countSitespeedLcp countSitespeedLcpScore countSitespeedMaxPotentialFid countSitespeedScore countSitespeedSpeedIndex countSitespeedSpeedIndexScore countSitespeedTbt countSitespeedTbtScore countSitespeedTtfb countSitespeedTti countSpeedIndex countSpeedIndexScore countTimeToFirstByte countTopicMatchCount countTopicScoreGap countTotalBlockingTime countTotalBlockingTimeScore countUniqueLinksInCount countUrl countVideoobjectSchemaCount countWarningAuditsCount countWordCount css customExtractionMatch disallowedPage duplicateBody duplicateBodyNonIndexable duplicateDescription duplicateDescriptionNonIndexable duplicatePage duplicatePageNonIndexable duplicateTitle duplicateTitleNonIndexable duplicateUrl duplicateUrlNonIndexable failedReason fileExtension foundInAiVisibility foundInBacklinks foundInGoogleAnalytics foundInGoogleSearchConsole foundInList foundInLogSummary foundInSitemap foundInWebCrawl headerContentType headerNofollow headerNoindex httpStatusCode httpStatusCodeChangedFrom https indexable isImage isSelfCanonical isWebLinked js level maxAccessibilityAIssuesCount maxAccessibilityAaIssuesCount maxAccessibilityAaaIssuesCount maxAccessibilityBpIssuesCount maxAccessibilityCriticalIssuesCount maxAccessibilityIncompleteIssuesCount maxAccessibilityIssuesCount maxAccessibilityMinorIssuesCount maxAccessibilityModerateIssuesCount maxAccessibilitySeriousIssuesCount maxAiBounceRate maxAiPageviews maxAiSessions maxAiUsers maxAvgCitationPosition maxAvgCitationScore maxBacklinkCount maxBacklinkDomainCount maxBodyTagsInHeadCount maxBreadcrumbCount maxBreadcrumbSchemaCount maxCanonicalLinksInCount maxCitationsCount maxContentHtmlRatio maxContentSize maxCumulativeLayoutShift maxCumulativeLayoutShiftMainFrame maxCumulativeLayoutShiftScore maxDeeprank maxDescriptionLength maxDescriptionLengthPx maxDescriptionRelevance maxDuplicateBodyCount maxDuplicateDescriptionCount maxDuplicatePageCount maxDuplicateTitleCount maxDuplicateUrlCount maxEventSchemaCount maxExternalLinksCount maxFailedAuditsCount maxFaqpageSchemaCount maxFetchTime maxFirstContentfulPaint maxFirstContentfulPaintScore maxFirstMeaningfulPaint maxFolderCount maxFollowedExternalLinksOutCount maxFollowedLinksInCount maxGaAvgPageLoadTime maxGaAvgTimeOnPage maxGaPageviewsPerVisits maxGaVisitBounceRate maxGaVisits maxH1Count maxH1Length maxH1TagRelevance maxHeadTagsInBodyCount maxHowtoSchemaCount maxHreflangLinksInCount maxHtmlSize maxInfoAuditsCount maxInteractive maxInternalLinksCount maxLargestContentfulPaint maxLargestContentfulPaintScore maxLcpLoadEnd maxLcpLoadStart maxLinksInCount maxLinksOutCount maxLogRequestsAiBot maxLogRequestsDesktop maxLogRequestsMobile maxLogRequestsTotal maxMainContentRelevance maxMaxPotentialFid maxMobileDesktopContentDifference maxMobileDesktopLinksInDifference maxMobileDesktopLinksOutDifference maxMobileLinksInCount maxNearestTopicCosineSimilarity maxNewsarticleSchemaCount maxNonReciprocateHreflangOutCount maxPageRelevance maxPageTitleLength maxPageTitleLengthPx maxPageTitleRelevance maxPaginatedLinksInCount maxParamCount maxPassedAuditsCount maxPerformanceCls maxPerformanceDcl maxPerformanceFcp maxPerformanceLcp maxPerformanceTtfb maxPerformanceTti maxPrimaryConversionsCount maxPrimaryConversionsPerSession maxPrimaryConversionsValue maxPrimaryTopicCosineSimilarity maxPrimaryTopicScore maxProductOfSavingsKibAndPageviews maxProductOfSavingsSecsAndPageviews maxProductPriceSchemaValue maxProductRatingSchemaValue maxProductSchemaCount maxPromptCount maxQapageSchemaCount maxRecipeSchemaCount maxReciprocateHreflangOutCount maxRedirectCount maxRedirectsInCount maxRelLinksInCount maxRenderedLinkCountDifference maxRenderedWordCountDifference maxResourceLinksInCount maxReviewSchemaCount maxSavingsKib maxSavingsScore maxSavingsSecs maxSchemaBlocksCount maxSchemaErrorsCount maxSchemaIssuesCount maxSchemaWarningsCount maxSearchConsoleDesktopClicks maxSearchConsoleDesktopCtr maxSearchConsoleDesktopImpressions maxSearchConsoleDesktopPosition maxSearchConsoleMobileClicks maxSearchConsoleMobileCtr maxSearchConsoleMobileImpressions maxSearchConsoleMobilePosition maxSearchConsoleTabletClicks maxSearchConsoleTabletCtr maxSearchConsoleTabletImpressions maxSearchConsoleTabletPosition maxSearchConsoleTotalClicks maxSearchConsoleTotalCtr maxSearchConsoleTotalImpressions maxSearchConsoleTotalPosition maxSearchQueriesCount maxSecondaryConversionsCount maxSecondaryConversionsPerSession maxSecondaryConversionsValue maxSecondaryTopicCosineSimilarity maxSecondaryTopicScore maxSitemapsInCount maxSitespeedCls maxSitespeedClsMainFrame maxSitespeedClsScore maxSitespeedFcp maxSitespeedFcpScore maxSitespeedFmp maxSitespeedLcp maxSitespeedLcpScore maxSitespeedMaxPotentialFid maxSitespeedScore maxSitespeedSpeedIndex maxSitespeedSpeedIndexScore maxSitespeedTbt maxSitespeedTbtScore maxSitespeedTtfb maxSitespeedTti maxSpeedIndex maxSpeedIndexScore maxTimeToFirstByte maxTopicMatchCount maxTopicScoreGap maxTotalBlockingTime maxTotalBlockingTimeScore maxUniqueLinksInCount maxVideoobjectSchemaCount maxWarningAuditsCount maxWordCount metaContentType metaNofollow metaNoindex metaRedirect minAccessibilityAIssuesCount minAccessibilityAaIssuesCount minAccessibilityAaaIssuesCount minAccessibilityBpIssuesCount minAccessibilityCriticalIssuesCount minAccessibilityIncompleteIssuesCount minAccessibilityIssuesCount minAccessibilityMinorIssuesCount minAccessibilityModerateIssuesCount minAccessibilitySeriousIssuesCount minAiBounceRate minAiPageviews minAiSessions minAiUsers minAvgCitationPosition minAvgCitationScore minBacklinkCount minBacklinkDomainCount minBodyTagsInHeadCount minBreadcrumbCount minBreadcrumbSchemaCount minCanonicalLinksInCount minCitationsCount minContentHtmlRatio minContentSize minCumulativeLayoutShift minCumulativeLayoutShiftMainFrame minCumulativeLayoutShiftScore minDeeprank minDescriptionLength minDescriptionLengthPx minDescriptionRelevance minDuplicateBodyCount minDuplicateDescriptionCount minDuplicatePageCount minDuplicateTitleCount minDuplicateUrlCount minEventSchemaCount minExternalLinksCount minFailedAuditsCount minFaqpageSchemaCount minFetchTime minFirstContentfulPaint minFirstContentfulPaintScore minFirstMeaningfulPaint minFolderCount minFollowedExternalLinksOutCount minFollowedLinksInCount minGaAvgPageLoadTime minGaAvgTimeOnPage minGaPageviewsPerVisits minGaVisitBounceRate minGaVisits minH1Count minH1Length minH1TagRelevance minHeadTagsInBodyCount minHowtoSchemaCount minHreflangLinksInCount minHtmlSize minInfoAuditsCount minInteractive minInternalLinksCount minLargestContentfulPaint minLargestContentfulPaintScore minLcpLoadEnd minLcpLoadStart minLinksInCount minLinksOutCount minLogRequestsAiBot minLogRequestsDesktop minLogRequestsMobile minLogRequestsTotal minMainContentRelevance minMaxPotentialFid minMobileDesktopContentDifference minMobileDesktopLinksInDifference minMobileDesktopLinksOutDifference minMobileLinksInCount minNearestTopicCosineSimilarity minNewsarticleSchemaCount minNonReciprocateHreflangOutCount minPageRelevance minPageTitleLength minPageTitleLengthPx minPageTitleRelevance minPaginatedLinksInCount minParamCount minPassedAuditsCount minPerformanceCls minPerformanceDcl minPerformanceFcp minPerformanceLcp minPerformanceTtfb minPerformanceTti minPrimaryConversionsCount minPrimaryConversionsPerSession minPrimaryConversionsValue minPrimaryTopicCosineSimilarity minPrimaryTopicScore minProductOfSavingsKibAndPageviews minProductOfSavingsSecsAndPageviews minProductPriceSchemaValue minProductRatingSchemaValue minProductSchemaCount minPromptCount minQapageSchemaCount minRecipeSchemaCount minReciprocateHreflangOutCount minRedirectCount minRedirectsInCount minRelLinksInCount minRenderedLinkCountDifference minRenderedWordCountDifference minResourceLinksInCount minReviewSchemaCount minSavingsKib minSavingsScore minSavingsSecs minSchemaBlocksCount minSchemaErrorsCount minSchemaIssuesCount minSchemaWarningsCount minSearchConsoleDesktopClicks minSearchConsoleDesktopCtr minSearchConsoleDesktopImpressions minSearchConsoleDesktopPosition minSearchConsoleMobileClicks minSearchConsoleMobileCtr minSearchConsoleMobileImpressions minSearchConsoleMobilePosition minSearchConsoleTabletClicks minSearchConsoleTabletCtr minSearchConsoleTabletImpressions minSearchConsoleTabletPosition minSearchConsoleTotalClicks minSearchConsoleTotalCtr minSearchConsoleTotalImpressions minSearchConsoleTotalPosition minSearchQueriesCount minSecondaryConversionsCount minSecondaryConversionsPerSession minSecondaryConversionsValue minSecondaryTopicCosineSimilarity minSecondaryTopicScore minSitemapsInCount minSitespeedCls minSitespeedClsMainFrame minSitespeedClsScore minSitespeedFcp minSitespeedFcpScore minSitespeedFmp minSitespeedLcp minSitespeedLcpScore minSitespeedMaxPotentialFid minSitespeedScore minSitespeedSpeedIndex minSitespeedSpeedIndexScore minSitespeedTbt minSitespeedTbtScore minSitespeedTtfb minSitespeedTti minSpeedIndex minSpeedIndexScore minTimeToFirstByte minTopicMatchCount minTopicScoreGap minTotalBlockingTime minTotalBlockingTimeScore minUniqueLinksInCount minVideoobjectSchemaCount minWarningAuditsCount minWordCount nofollowedPage noindex nosnippet ogLocale ogType pageGroup path0 path1 path2 path3 path4 path5 path6 path7 path8 path9 primaryPage primaryTopicName redirectedToStatusCode separateMobile sumAccessibilityAIssuesCount sumAccessibilityAaIssuesCount sumAccessibilityAaaIssuesCount sumAccessibilityBpIssuesCount sumAccessibilityCriticalIssuesCount sumAccessibilityIncompleteIssuesCount sumAccessibilityIssuesCount sumAccessibilityMinorIssuesCount sumAccessibilityModerateIssuesCount sumAccessibilitySeriousIssuesCount sumAiBounceRate sumAiPageviews sumAiSessions sumAiUsers sumAvgCitationPosition sumAvgCitationScore sumBacklinkCount sumBacklinkDomainCount sumBodyTagsInHeadCount sumBreadcrumbCount sumBreadcrumbSchemaCount sumCanonicalLinksInCount sumCitationsCount sumContentHtmlRatio sumContentSize sumCumulativeLayoutShift sumCumulativeLayoutShiftMainFrame sumCumulativeLayoutShiftScore sumDeeprank sumDescriptionLength sumDescriptionLengthPx sumDescriptionRelevance sumDuplicateBodyCount sumDuplicateDescriptionCount sumDuplicatePageCount sumDuplicateTitleCount sumDuplicateUrlCount sumEventSchemaCount sumExternalLinksCount sumFailedAuditsCount sumFaqpageSchemaCount sumFetchTime sumFirstContentfulPaint sumFirstContentfulPaintScore sumFirstMeaningfulPaint sumFolderCount sumFollowedExternalLinksOutCount sumFollowedLinksInCount sumGaAvgPageLoadTime sumGaAvgTimeOnPage sumGaPageviewsPerVisits sumGaVisitBounceRate sumGaVisits sumH1Count sumH1Length sumH1TagRelevance sumHeadTagsInBodyCount sumHowtoSchemaCount sumHreflangLinksInCount sumHtmlSize sumInfoAuditsCount sumInteractive sumInternalLinksCount sumLargestContentfulPaint sumLargestContentfulPaintScore sumLcpLoadEnd sumLcpLoadStart sumLinksInCount sumLinksOutCount sumLogRequestsAiBot sumLogRequestsDesktop sumLogRequestsMobile sumLogRequestsTotal sumMainContentRelevance sumMaxPotentialFid sumMobileDesktopContentDifference sumMobileDesktopLinksInDifference sumMobileDesktopLinksOutDifference sumMobileLinksInCount sumNearestTopicCosineSimilarity sumNewsarticleSchemaCount sumNonReciprocateHreflangOutCount sumPageRelevance sumPageTitleLength sumPageTitleLengthPx sumPageTitleRelevance sumPaginatedLinksInCount sumParamCount sumPassedAuditsCount sumPerformanceCls sumPerformanceDcl sumPerformanceFcp sumPerformanceLcp sumPerformanceTtfb sumPerformanceTti sumPrimaryConversionsCount sumPrimaryConversionsPerSession sumPrimaryConversionsValue sumPrimaryTopicCosineSimilarity sumPrimaryTopicScore sumProductOfSavingsKibAndPageviews sumProductOfSavingsSecsAndPageviews sumProductPriceSchemaValue sumProductRatingSchemaValue sumProductSchemaCount sumPromptCount sumQapageSchemaCount sumRecipeSchemaCount sumReciprocateHreflangOutCount sumRedirectCount sumRedirectsInCount sumRelLinksInCount sumRenderedLinkCountDifference sumRenderedWordCountDifference sumResourceLinksInCount sumReviewSchemaCount sumSavingsKib sumSavingsScore sumSavingsSecs sumSchemaBlocksCount sumSchemaErrorsCount sumSchemaIssuesCount sumSchemaWarningsCount sumSearchConsoleDesktopClicks sumSearchConsoleDesktopCtr sumSearchConsoleDesktopImpressions sumSearchConsoleDesktopPosition sumSearchConsoleMobileClicks sumSearchConsoleMobileCtr sumSearchConsoleMobileImpressions sumSearchConsoleMobilePosition sumSearchConsoleTabletClicks sumSearchConsoleTabletCtr sumSearchConsoleTabletImpressions sumSearchConsoleTabletPosition sumSearchConsoleTotalClicks sumSearchConsoleTotalCtr sumSearchConsoleTotalImpressions sumSearchConsoleTotalPosition sumSearchQueriesCount sumSecondaryConversionsCount sumSecondaryConversionsPerSession sumSecondaryConversionsValue sumSecondaryTopicCosineSimilarity sumSecondaryTopicScore sumSitemapsInCount sumSitespeedCls sumSitespeedClsMainFrame sumSitespeedClsScore sumSitespeedFcp sumSitespeedFcpScore sumSitespeedFmp sumSitespeedLcp sumSitespeedLcpScore sumSitespeedMaxPotentialFid sumSitespeedScore sumSitespeedSpeedIndex sumSitespeedSpeedIndexScore sumSitespeedTbt sumSitespeedTbtScore sumSitespeedTtfb sumSitespeedTti sumSpeedIndex sumSpeedIndexScore sumTimeToFirstByte sumTopicMatchCount sumTopicScoreGap sumTotalBlockingTime sumTotalBlockingTimeScore sumUniqueLinksInCount sumVideoobjectSchemaCount sumWarningAuditsCount sumWordCount urlContainsRepeatedPaths urlContainsUnderscores urlDoubleEncoded urlPathContainsDoubleSlashes viewport } type CrawlUrlAttachment { contentType: String! expiresAt: DateTime! name: String! signedLocation: String! sizeBytes: Int! } type CrawlUrlAvgCalculation { accessibilityAIssuesCount: Float accessibilityAaIssuesCount: Float accessibilityAaaIssuesCount: Float accessibilityBpIssuesCount: Float accessibilityCriticalIssuesCount: Float accessibilityIncompleteIssuesCount: Float accessibilityIssuesCount: Float accessibilityMinorIssuesCount: Float accessibilityModerateIssuesCount: Float accessibilitySeriousIssuesCount: Float aiBounceRate: Float aiPageviews: Float aiSessions: Float aiUsers: Float avgCitationPosition: Float avgCitationScore: Float backlinkCount: Float backlinkDomainCount: Float bodyTagsInHeadCount: Float breadcrumbCount: Float breadcrumbSchemaCount: Float canonicalLinksInCount: Float citationsCount: Float contentHtmlRatio: Float contentSize: Float cumulativeLayoutShift: Float cumulativeLayoutShiftMainFrame: Float cumulativeLayoutShiftScore: Float deeprank: Float descriptionLength: Float descriptionLengthPx: Float descriptionRelevance: Float duplicateBodyCount: Float duplicateDescriptionCount: Float duplicatePageCount: Float duplicateTitleCount: Float duplicateUrlCount: Float eventSchemaCount: Float externalLinksCount: Float failedAuditsCount: Float faqpageSchemaCount: Float fetchTime: Float firstContentfulPaint: Float firstContentfulPaintScore: Float firstMeaningfulPaint: Float folderCount: Float followedExternalLinksOutCount: Float followedLinksInCount: Float gaAvgPageLoadTime: Float gaAvgTimeOnPage: Float gaPageviewsPerVisits: Float gaVisitBounceRate: Float gaVisits: Float h1Count: Float h1Length: Float h1TagRelevance: Float headTagsInBodyCount: Float howtoSchemaCount: Float hreflangLinksInCount: Float htmlSize: Float infoAuditsCount: Float interactive: Float internalLinksCount: Float largestContentfulPaint: Float largestContentfulPaintScore: Float lcpLoadEnd: Float lcpLoadStart: Float linksInCount: Float linksOutCount: Float logRequestsAiBot: Float logRequestsDesktop: Float logRequestsMobile: Float logRequestsTotal: Float mainContentRelevance: Float maxPotentialFid: Float mobileDesktopContentDifference: Float mobileDesktopLinksInDifference: Float mobileDesktopLinksOutDifference: Float mobileLinksInCount: Float nearestTopicCosineSimilarity: Float newsarticleSchemaCount: Float nonReciprocateHreflangOutCount: Float pageRelevance: Float pageTitleLength: Float pageTitleLengthPx: Float pageTitleRelevance: Float paginatedLinksInCount: Float paramCount: Float passedAuditsCount: Float performanceCls: Float performanceDcl: Float performanceFcp: Float performanceLcp: Float performanceTtfb: Float performanceTti: Float primaryConversionsCount: Float primaryConversionsPerSession: Float primaryConversionsValue: Float primaryTopicCosineSimilarity: Float primaryTopicScore: Float productOfSavingsKibAndPageviews: Float productOfSavingsSecsAndPageviews: Float productPriceSchemaValue: Float productRatingSchemaValue: Float productSchemaCount: Float promptCount: Float qapageSchemaCount: Float recipeSchemaCount: Float reciprocateHreflangOutCount: Float redirectCount: Float redirectsInCount: Float relLinksInCount: Float renderedLinkCountDifference: Float renderedWordCountDifference: Float resourceLinksInCount: Float reviewSchemaCount: Float savingsKib: Float savingsScore: Float savingsSecs: Float schemaBlocksCount: Float schemaErrorsCount: Float schemaIssuesCount: Float schemaWarningsCount: Float searchConsoleDesktopClicks: Float searchConsoleDesktopCtr: Float searchConsoleDesktopImpressions: Float searchConsoleDesktopPosition: Float searchConsoleMobileClicks: Float searchConsoleMobileCtr: Float searchConsoleMobileImpressions: Float searchConsoleMobilePosition: Float searchConsoleTabletClicks: Float searchConsoleTabletCtr: Float searchConsoleTabletImpressions: Float searchConsoleTabletPosition: Float searchConsoleTotalClicks: Float searchConsoleTotalCtr: Float searchConsoleTotalImpressions: Float searchConsoleTotalPosition: Float searchQueriesCount: Float secondaryConversionsCount: Float secondaryConversionsPerSession: Float secondaryConversionsValue: Float secondaryTopicCosineSimilarity: Float secondaryTopicScore: Float sitemapsInCount: Float sitespeedCls: Float sitespeedClsMainFrame: Float sitespeedClsScore: Float sitespeedFcp: Float sitespeedFcpScore: Float sitespeedFmp: Float sitespeedLcp: Float sitespeedLcpScore: Float sitespeedMaxPotentialFid: Float sitespeedScore: Float sitespeedSpeedIndex: Float sitespeedSpeedIndexScore: Float sitespeedTbt: Float sitespeedTbtScore: Float sitespeedTtfb: Float sitespeedTti: Float speedIndex: Float speedIndexScore: Float timeToFirstByte: Float topicMatchCount: Float topicScoreGap: Float totalBlockingTime: Float totalBlockingTimeScore: Float uniqueLinksInCount: Float videoobjectSchemaCount: Float warningAuditsCount: Float wordCount: Float } type CrawlUrlConnection { """ A list of edges. """ edges: [CrawlUrlEdge!]! """ A list of nodes. """ nodes: [CrawlUrl!]! """ Information to aid in pagination. """ pageInfo: PageInfo! """ Identifies the total count of CrawlUrls in the connection. """ totalCount: Int! } input CrawlUrlConnectionFilterInput { """ Groups each filter object using AND """ _and: [CrawlUrlConnectionFilterInput!] """ Groups each filter object using AND, wrapped inside NOT """ _not: [CrawlUrlConnectionFilterInput!] """ Groups each filter object using OR """ _or: [CrawlUrlConnectionFilterInput!] accessibilityAIssuesCount: ConnectionIntFilterInput accessibilityAaIssuesCount: ConnectionIntFilterInput accessibilityAaaIssuesCount: ConnectionIntFilterInput accessibilityBpIssuesCount: ConnectionIntFilterInput accessibilityCriticalIssuesCount: ConnectionIntFilterInput accessibilityEnabled: ConnectionBooleanFilterInput accessibilityIncompleteIssuesCount: ConnectionIntFilterInput accessibilityIssuesCount: ConnectionIntFilterInput accessibilityIssuesCountByRuleIdCount: ConnectionIntFilterInput accessibilityMinorIssuesCount: ConnectionIntFilterInput accessibilityModerateIssuesCount: ConnectionIntFilterInput accessibilitySeriousIssuesCount: ConnectionIntFilterInput adultRating: ConnectionBooleanFilterInput aiBotBlocked: ConnectionStringArrayFilterInput aiBotBlockedCount: ConnectionIntFilterInput aiBounceRate: ConnectionFloatFilterInput aiPageviews: ConnectionIntFilterInput aiSessions: ConnectionIntFilterInput aiSourceBreakdown: AiSourceBreakdownObjectArrayMemberConnectionFilterInput aiUsers: ConnectionIntFilterInput amphtml: ConnectionBooleanFilterInput amphtmlReciprocate: ConnectionBooleanFilterInput amphtmlValid: ConnectionBooleanFilterInput attachmentNames: ConnectionStringArrayFilterInput avgCitationPosition: ConnectionFloatFilterInput avgCitationScore: ConnectionFloatFilterInput backlinkCount: ConnectionIntFilterInput backlinkDomainCount: ConnectionIntFilterInput bodyTagsInHeadCount: ConnectionIntFilterInput breadcrumb01: ConnectionStringFilterInput breadcrumb02: ConnectionStringFilterInput breadcrumb03: ConnectionStringFilterInput breadcrumb04: ConnectionStringFilterInput breadcrumb05: ConnectionStringFilterInput breadcrumb06: ConnectionStringFilterInput breadcrumb07: ConnectionStringFilterInput breadcrumb08: ConnectionStringFilterInput breadcrumbCount: ConnectionIntFilterInput breadcrumbSchemaCount: ConnectionIntFilterInput cacheControl: ConnectionStringFilterInput canonicalHeaderUrl: ConnectionStringFilterInput canonicalHtmlUrl: ConnectionStringFilterInput canonicalLinksInCount: ConnectionIntFilterInput canonicalUrl: ConnectionStringFilterInput canonicalUrlChangedFrom: ConnectionStringFilterInput canonicalUrlDigest: ConnectionStringFilterInput canonicalUrlIsConsistent: ConnectionBooleanFilterInput canonicalizedPage: ConnectionBooleanFilterInput changes: ConnectionStringArrayFilterInput changesCount: ConnectionIntFilterInput citationsCount: ConnectionIntFilterInput containerExecutionFailures: ContainerExecutionFailureObjectArrayMemberConnectionFilterInput containerExecutionFailuresCount: ConnectionIntFilterInput contentHtmlRatio: ConnectionFloatFilterInput contentSize: ConnectionIntFilterInput crawlDatetime: ConnectionDateFilterInput css: ConnectionBooleanFilterInput cssLinksInCount: ConnectionIntFilterInput cumulativeLayoutShift: ConnectionFloatFilterInput cumulativeLayoutShiftMainFrame: ConnectionFloatFilterInput cumulativeLayoutShiftScore: ConnectionFloatFilterInput customExtraction1: ConnectionStringArrayFilterInput customExtraction1Count: ConnectionIntFilterInput customExtraction2: ConnectionStringArrayFilterInput customExtraction2Count: ConnectionIntFilterInput customExtraction3: ConnectionStringArrayFilterInput customExtraction3Count: ConnectionIntFilterInput customExtraction4: ConnectionStringArrayFilterInput customExtraction4Count: ConnectionIntFilterInput customExtraction5: ConnectionStringArrayFilterInput customExtraction5Count: ConnectionIntFilterInput customExtraction6: ConnectionStringArrayFilterInput customExtraction6Count: ConnectionIntFilterInput customExtraction7: ConnectionStringArrayFilterInput customExtraction7Count: ConnectionIntFilterInput customExtraction8: ConnectionStringArrayFilterInput customExtraction8Count: ConnectionIntFilterInput customExtraction9: ConnectionStringArrayFilterInput customExtraction9Count: ConnectionIntFilterInput customExtraction10: ConnectionStringArrayFilterInput customExtraction10Count: ConnectionIntFilterInput customExtraction11: ConnectionStringArrayFilterInput customExtraction11Count: ConnectionIntFilterInput customExtraction12: ConnectionStringArrayFilterInput customExtraction12Count: ConnectionIntFilterInput customExtraction13: ConnectionStringArrayFilterInput customExtraction13Count: ConnectionIntFilterInput customExtraction14: ConnectionStringArrayFilterInput customExtraction14Count: ConnectionIntFilterInput customExtraction15: ConnectionStringArrayFilterInput customExtraction15Count: ConnectionIntFilterInput customExtraction16: ConnectionStringArrayFilterInput customExtraction16Count: ConnectionIntFilterInput customExtraction17: ConnectionStringArrayFilterInput customExtraction17Count: ConnectionIntFilterInput customExtraction18: ConnectionStringArrayFilterInput customExtraction18Count: ConnectionIntFilterInput customExtraction19: ConnectionStringArrayFilterInput customExtraction19Count: ConnectionIntFilterInput customExtraction20: ConnectionStringArrayFilterInput customExtraction20Count: ConnectionIntFilterInput customExtraction21: ConnectionStringArrayFilterInput customExtraction21Count: ConnectionIntFilterInput customExtraction22: ConnectionStringArrayFilterInput customExtraction22Count: ConnectionIntFilterInput customExtraction23: ConnectionStringArrayFilterInput customExtraction23Count: ConnectionIntFilterInput customExtraction24: ConnectionStringArrayFilterInput customExtraction24Count: ConnectionIntFilterInput customExtraction25: ConnectionStringArrayFilterInput customExtraction25Count: ConnectionIntFilterInput customExtraction26: ConnectionStringArrayFilterInput customExtraction26Count: ConnectionIntFilterInput customExtraction27: ConnectionStringArrayFilterInput customExtraction27Count: ConnectionIntFilterInput customExtraction28: ConnectionStringArrayFilterInput customExtraction28Count: ConnectionIntFilterInput customExtraction29: ConnectionStringArrayFilterInput customExtraction29Count: ConnectionIntFilterInput customExtraction30: ConnectionStringArrayFilterInput customExtraction30Count: ConnectionIntFilterInput customExtractionMatch: ConnectionBooleanFilterInput customMetrics: JSONObject deeprank: ConnectionFloatFilterInput description: ConnectionStringFilterInput descriptionChangedFrom: ConnectionStringFilterInput descriptionLength: ConnectionIntFilterInput descriptionLengthPx: ConnectionIntFilterInput descriptionRelevance: ConnectionFloatFilterInput desktopUrl: ConnectionStringFilterInput desktopUrlDigest: ConnectionStringFilterInput disallowedPage: ConnectionBooleanFilterInput dominantLanguages: ConnectionStringArrayFilterInput duplicateBody: ConnectionBooleanFilterInput duplicateBodyCount: ConnectionIntFilterInput duplicateBodyCountIsApproximation: ConnectionBooleanFilterInput duplicateBodyNonIndexable: ConnectionBooleanFilterInput duplicateBodyPrimaryUrl: ConnectionStringFilterInput duplicateBodyPrimaryUrlDigest: ConnectionStringFilterInput duplicateDescription: ConnectionBooleanFilterInput duplicateDescriptionCount: ConnectionIntFilterInput duplicateDescriptionCountIsApproximation: ConnectionBooleanFilterInput duplicateDescriptionNonIndexable: ConnectionBooleanFilterInput duplicateDescriptionPrimaryUrl: ConnectionStringFilterInput duplicateDescriptionPrimaryUrlDigest: ConnectionStringFilterInput duplicatePage: ConnectionBooleanFilterInput duplicatePageCount: ConnectionIntFilterInput duplicatePageCountIsApproximation: ConnectionBooleanFilterInput duplicatePageNonIndexable: ConnectionBooleanFilterInput duplicateTitle: ConnectionBooleanFilterInput duplicateTitleCount: ConnectionIntFilterInput duplicateTitleCountIsApproximation: ConnectionBooleanFilterInput duplicateTitleNonIndexable: ConnectionBooleanFilterInput duplicateTitlePrimaryUrl: ConnectionStringFilterInput duplicateTitlePrimaryUrlDigest: ConnectionStringFilterInput duplicateUrl: ConnectionBooleanFilterInput duplicateUrlCount: ConnectionIntFilterInput duplicateUrlCountIsApproximation: ConnectionBooleanFilterInput duplicateUrlNonIndexable: ConnectionBooleanFilterInput duplicateUrlPrimaryUrl: ConnectionStringFilterInput duplicateUrlPrimaryUrlDigest: ConnectionStringFilterInput encodingHeader: ConnectionStringFilterInput eventSchemaCount: ConnectionIntFilterInput externalLinksCount: ConnectionIntFilterInput failedAudits: ConnectionStringArrayFilterInput failedAuditsCount: ConnectionIntFilterInput failedReason: ConnectionStringFilterInput faqpageSchemaCount: ConnectionIntFilterInput fbAdmins: ConnectionStringFilterInput fbAppId: ConnectionStringFilterInput fetchTime: ConnectionFloatFilterInput fileExtension: ConnectionStringFilterInput firstContentfulPaint: ConnectionIntFilterInput firstContentfulPaintScore: ConnectionFloatFilterInput firstMeaningfulPaint: ConnectionIntFilterInput folderCount: ConnectionIntFilterInput followedExternalLinksOutCount: ConnectionIntFilterInput followedLinksInCount: ConnectionIntFilterInput foundAtSitemap: ConnectionStringFilterInput foundAtUrl: ConnectionStringFilterInput foundAtUrlDigest: ConnectionStringFilterInput foundInAiVisibility: ConnectionBooleanFilterInput foundInBacklinks: ConnectionBooleanFilterInput foundInCustomMetricsUpload: ConnectionBooleanFilterInput foundInGoogleAnalytics: ConnectionBooleanFilterInput foundInGoogleSearchConsole: ConnectionBooleanFilterInput foundInList: ConnectionBooleanFilterInput foundInLogSummary: ConnectionBooleanFilterInput foundInSitemap: ConnectionBooleanFilterInput foundInTask: ConnectionBooleanFilterInput foundInWebCrawl: ConnectionBooleanFilterInput gaAvgPageLoadTime: ConnectionFloatFilterInput gaAvgTimeOnPage: ConnectionFloatFilterInput gaPageviews: ConnectionIntFilterInput gaPageviewsPerVisits: ConnectionFloatFilterInput gaVisitBounceRate: ConnectionFloatFilterInput gaVisits: ConnectionIntFilterInput h1Count: ConnectionIntFilterInput h1Length: ConnectionIntFilterInput h1Tag: ConnectionStringArrayFilterInput h1TagChangedFrom: ConnectionStringArrayFilterInput h1TagChangedFromCount: ConnectionIntFilterInput h1TagCount: ConnectionIntFilterInput h1TagRelevance: ConnectionFloatFilterInput h2Tag: ConnectionStringArrayFilterInput h2TagCount: ConnectionIntFilterInput h3Tag: ConnectionStringArrayFilterInput h3TagCount: ConnectionIntFilterInput hasStructuredData: ConnectionBooleanFilterInput headTagsInBodyCount: ConnectionIntFilterInput headerContentType: ConnectionStringFilterInput headerContentTypeChangedFrom: ConnectionStringFilterInput headerNoarchive: ConnectionBooleanFilterInput headerNofollow: ConnectionBooleanFilterInput headerNoindex: ConnectionBooleanFilterInput headerNoodp: ConnectionBooleanFilterInput headerNosnippet: ConnectionBooleanFilterInput headerNoydir: ConnectionBooleanFilterInput howtoSchemaCount: ConnectionIntFilterInput hreflangCombination: ConnectionStringArrayFilterInput hreflangCombinationChangedFrom: ConnectionStringArrayFilterInput hreflangCombinationChangedFromCount: ConnectionIntFilterInput hreflangCombinationCount: ConnectionIntFilterInput hreflangLanguagesInCount: ConnectionIntFilterInput hreflangLanguagesInMetaCount: ConnectionIntFilterInput hreflangLinksInCount: ConnectionIntFilterInput hreflangLinksOutCount: ConnectionIntFilterInput hreflangOnHeader: ConnectionBooleanFilterInput hreflangOnPage: ConnectionBooleanFilterInput hreflangOnSitemap: ConnectionBooleanFilterInput hreflangUrlCount: ConnectionIntFilterInput hsts: ConnectionStringFilterInput htmlSize: ConnectionIntFilterInput httpStatusCode: ConnectionIntFilterInput httpStatusCodeChangedFrom: ConnectionIntFilterInput https: ConnectionBooleanFilterInput identifiedLanguage: ConnectionStringFilterInput imgLinksInCount: ConnectionIntFilterInput inconsistentHreflangsInCount: ConnectionIntFilterInput indexable: ConnectionBooleanFilterInput infoAudits: ConnectionStringArrayFilterInput infoAuditsCount: ConnectionIntFilterInput interactive: ConnectionIntFilterInput internal: ConnectionBooleanFilterInput internalLinksCount: ConnectionIntFilterInput isImage: ConnectionBooleanFilterInput isRedirect: ConnectionBooleanFilterInput isRedirectLoop: ConnectionBooleanFilterInput isSelfCanonical: ConnectionBooleanFilterInput isWebLinked: ConnectionBooleanFilterInput issueReportCodes: ConnectionStringArrayFilterInput js: ConnectionBooleanFilterInput jsLinksInCount: ConnectionIntFilterInput largestContentfulPaint: ConnectionIntFilterInput largestContentfulPaintScore: ConnectionFloatFilterInput lcpLoadEnd: ConnectionIntFilterInput lcpLoadStart: ConnectionIntFilterInput level: ConnectionIntFilterInput levelChangedFrom: ConnectionIntFilterInput linksInCount: ConnectionIntFilterInput linksOutCount: ConnectionIntFilterInput logRequestsAiBot: ConnectionIntFilterInput logRequestsAiBotSummary: LogRequestAiBotSummaryObjectArrayMemberConnectionFilterInput logRequestsDesktop: ConnectionIntFilterInput logRequestsMobile: ConnectionIntFilterInput logRequestsTotal: ConnectionIntFilterInput mainContentRelevance: ConnectionFloatFilterInput maxPotentialFid: ConnectionIntFilterInput metaCharset: ConnectionStringFilterInput metaContentType: ConnectionStringFilterInput metaDisabledSitelinks: ConnectionBooleanFilterInput metaNoarchive: ConnectionBooleanFilterInput metaNofollow: ConnectionBooleanFilterInput metaNoindex: ConnectionBooleanFilterInput metaNoodp: ConnectionBooleanFilterInput metaNosnippet: ConnectionBooleanFilterInput metaNoydir: ConnectionBooleanFilterInput metaRedirect: ConnectionBooleanFilterInput mixedContentWarnings: ConnectionStringArrayFilterInput mixedContentWarningsCount: ConnectionIntFilterInput mobileDesktopContentDifference: ConnectionIntFilterInput mobileDesktopContentMismatch: ConnectionBooleanFilterInput mobileDesktopLinksInDifference: ConnectionIntFilterInput mobileDesktopLinksOutDifference: ConnectionIntFilterInput mobileLinksInCount: ConnectionIntFilterInput mobileReciprocate: ConnectionBooleanFilterInput mobileRelAlternate: ConnectionBooleanFilterInput mobileRelAlternateHeaderUrl: ConnectionStringFilterInput mobileRelAlternateHeaderUrlDigest: ConnectionStringFilterInput mobileRelAlternateHtmlUrl: ConnectionStringFilterInput mobileRelAlternateHtmlUrlDigest: ConnectionStringFilterInput mobileRelAlternateUrl: ConnectionStringFilterInput mobileRelAlternateUrlDigest: ConnectionStringFilterInput mobileRelAlternateUrlIsConsistent: ConnectionBooleanFilterInput mobileRelAmphtml: ConnectionBooleanFilterInput mobileRelAmphtmlUrl: ConnectionStringFilterInput mobileRelAmphtmlUrlDigest: ConnectionStringFilterInput nearestTopicCosineSimilarity: ConnectionFloatFilterInput nearestTopicName: ConnectionStringFilterInput newsarticleAuthorSchemaValue: ConnectionStringFilterInput newsarticleSchemaCount: ConnectionIntFilterInput newsarticleSchemaValid: ConnectionBooleanFilterInput noarchive: ConnectionBooleanFilterInput nofollowedPage: ConnectionBooleanFilterInput noindex: ConnectionBooleanFilterInput nonReciprocateHreflangOutCount: ConnectionIntFilterInput noodp: ConnectionBooleanFilterInput nosnippet: ConnectionBooleanFilterInput noydir: ConnectionBooleanFilterInput ogDescription: ConnectionStringFilterInput ogImage: ConnectionStringFilterInput ogLocale: ConnectionStringFilterInput ogSiteName: ConnectionStringFilterInput ogTitle: ConnectionStringFilterInput ogType: ConnectionStringFilterInput ogUrl: ConnectionStringFilterInput page1: ConnectionBooleanFilterInput pageGroup: ConnectionStringFilterInput pageRelevance: ConnectionFloatFilterInput pageTitle: ConnectionStringFilterInput pageTitleChangedFrom: ConnectionStringFilterInput pageTitleLength: ConnectionIntFilterInput pageTitleLengthPx: ConnectionIntFilterInput pageTitleRelevance: ConnectionFloatFilterInput pageTypeIds: ConnectionIntArrayFilterInput pageTypeIdsCount: ConnectionIntFilterInput pageTypeNames: ConnectionStringArrayFilterInput pageTypeNamesCount: ConnectionIntFilterInput paginatedLinksInCount: ConnectionIntFilterInput paginatedPage: ConnectionBooleanFilterInput paramCount: ConnectionIntFilterInput passedAudits: ConnectionStringArrayFilterInput passedAuditsCount: ConnectionIntFilterInput path0: ConnectionStringFilterInput path1: ConnectionStringFilterInput path2: ConnectionStringFilterInput path3: ConnectionStringFilterInput path4: ConnectionStringFilterInput path5: ConnectionStringFilterInput path6: ConnectionStringFilterInput path7: ConnectionStringFilterInput path8: ConnectionStringFilterInput path9: ConnectionStringFilterInput pathCount: ConnectionIntFilterInput performanceCls: ConnectionFloatFilterInput performanceDcl: ConnectionFloatFilterInput performanceFcp: ConnectionFloatFilterInput performanceLcp: ConnectionFloatFilterInput performanceTtfb: ConnectionFloatFilterInput performanceTti: ConnectionFloatFilterInput previousPath: ConnectionStringFilterInput previousPathDigest: ConnectionStringFilterInput primaryConversionsCount: ConnectionIntFilterInput primaryConversionsPerSession: ConnectionFloatFilterInput primaryConversionsValue: ConnectionFloatFilterInput primaryPage: ConnectionBooleanFilterInput primaryTopicCosineSimilarity: ConnectionFloatFilterInput primaryTopicName: ConnectionStringFilterInput primaryTopicScore: ConnectionFloatFilterInput primaryUrl: ConnectionStringFilterInput primaryUrlDigest: ConnectionStringFilterInput primaryUrlNonIndexable: ConnectionStringFilterInput productAvailabilitySchemaValue: ConnectionStringFilterInput productBrandSchemaValue: ConnectionStringFilterInput productOfSavingsKibAndPageviews: ConnectionFloatFilterInput productOfSavingsSecsAndPageviews: ConnectionFloatFilterInput productPriceSchemaValue: ConnectionFloatFilterInput productRatingSchemaValue: ConnectionFloatFilterInput productSchemaCount: ConnectionIntFilterInput productSchemaValid: ConnectionBooleanFilterInput productSkuSchemaValue: ConnectionStringFilterInput promptCount: ConnectionIntFilterInput qapageSchemaCount: ConnectionIntFilterInput recipeSchemaCount: ConnectionIntFilterInput reciprocateHreflangOutCount: ConnectionIntFilterInput redirectChain: RedirectObjectArrayMemberConnectionFilterInput redirectChainCount: ConnectionIntFilterInput redirectCount: ConnectionIntFilterInput redirectExclusionReason: ConnectionRedirectExclusionReasonFilterInput redirectedToStatusCode: ConnectionIntFilterInput redirectedToUrl: ConnectionStringFilterInput redirectedToUrlChangedFrom: ConnectionStringFilterInput redirectedToUrlDigest: ConnectionStringFilterInput redirectsInCount: ConnectionIntFilterInput relLinksInCount: ConnectionIntFilterInput relNextHeaderUrl: ConnectionStringFilterInput relNextHtmlUrl: ConnectionStringFilterInput relNextUrl: ConnectionStringFilterInput relNextUrlIsConsistent: ConnectionBooleanFilterInput relPrevHeaderUrl: ConnectionStringFilterInput relPrevHtmlUrl: ConnectionStringFilterInput relPrevUrl: ConnectionStringFilterInput relPrevUrlIsConsistent: ConnectionBooleanFilterInput renderedCanonicalLinkMatch: ConnectionBooleanFilterInput renderedLinkCountDifference: ConnectionIntFilterInput renderedWordCountDifference: ConnectionIntFilterInput resolvedHttpStatusCode: ConnectionResolvedHttpStatusCodeFilterInput resourceLinksInCount: ConnectionIntFilterInput responsive: ConnectionBooleanFilterInput reviewSchemaCount: ConnectionIntFilterInput robotsNoindex: ConnectionBooleanFilterInput robotsTxtRuleMatch: ConnectionStringFilterInput savingsKib: ConnectionFloatFilterInput savingsScore: ConnectionFloatFilterInput savingsSecs: ConnectionFloatFilterInput schemaBlocksCount: ConnectionIntFilterInput schemaErrorsCount: ConnectionIntFilterInput schemaFailedConditions: SchemaFailedConditionObjectArrayMemberConnectionFilterInput schemaFailedConditionsCount: ConnectionIntFilterInput schemaIssuesCount: ConnectionIntFilterInput schemaIssuesCountByType: SchemaIssuesCountByTypeObjectArrayMemberConnectionFilterInput schemaIssuesCountByTypeCount: ConnectionIntFilterInput schemaParseFailure: ConnectionStringFilterInput schemaTemplateSetVersion: ConnectionIntFilterInput schemaTypesPresent: ConnectionStringArrayFilterInput schemaTypesPresentCount: ConnectionIntFilterInput schemaWarningsCount: ConnectionIntFilterInput searchConsoleDesktopClicks: ConnectionIntFilterInput searchConsoleDesktopCtr: ConnectionFloatFilterInput searchConsoleDesktopImpressions: ConnectionIntFilterInput searchConsoleDesktopPosition: ConnectionFloatFilterInput searchConsoleMobileClicks: ConnectionIntFilterInput searchConsoleMobileCtr: ConnectionFloatFilterInput searchConsoleMobileImpressions: ConnectionIntFilterInput searchConsoleMobilePosition: ConnectionFloatFilterInput searchConsoleTabletClicks: ConnectionIntFilterInput searchConsoleTabletCtr: ConnectionFloatFilterInput searchConsoleTabletImpressions: ConnectionIntFilterInput searchConsoleTabletPosition: ConnectionFloatFilterInput searchConsoleTotalClicks: ConnectionIntFilterInput searchConsoleTotalCtr: ConnectionFloatFilterInput searchConsoleTotalImpressions: ConnectionIntFilterInput searchConsoleTotalPosition: ConnectionFloatFilterInput searchQueriesCount: ConnectionIntFilterInput searchVolume: ConnectionIntFilterInput secondaryConversionsCount: ConnectionIntFilterInput secondaryConversionsPerSession: ConnectionFloatFilterInput secondaryConversionsValue: ConnectionFloatFilterInput secondaryTopicCosineSimilarity: ConnectionFloatFilterInput secondaryTopicName: ConnectionStringFilterInput secondaryTopicScore: ConnectionFloatFilterInput secureFormInputField: ConnectionBooleanFilterInput separateDesktop: ConnectionBooleanFilterInput separateMobile: ConnectionBooleanFilterInput sitemapsInCount: ConnectionIntFilterInput sitespeedAuditResultsCount: ConnectionIntFilterInput sitespeedCls: ConnectionFloatFilterInput sitespeedClsAuditResultsCount: ConnectionIntFilterInput sitespeedClsMainFrame: ConnectionFloatFilterInput sitespeedClsScore: ConnectionFloatFilterInput sitespeedFcp: ConnectionFloatFilterInput sitespeedFcpAuditResultsCount: ConnectionIntFilterInput sitespeedFcpScore: ConnectionFloatFilterInput sitespeedFmp: ConnectionFloatFilterInput sitespeedLcp: ConnectionFloatFilterInput sitespeedLcpAuditResultsCount: ConnectionIntFilterInput sitespeedLcpScore: ConnectionFloatFilterInput sitespeedMaxPotentialFid: ConnectionFloatFilterInput sitespeedScore: ConnectionFloatFilterInput sitespeedSpeedIndex: ConnectionFloatFilterInput sitespeedSpeedIndexScore: ConnectionFloatFilterInput sitespeedTbt: ConnectionFloatFilterInput sitespeedTbtAuditResultsCount: ConnectionIntFilterInput sitespeedTbtScore: ConnectionFloatFilterInput sitespeedTtfb: ConnectionFloatFilterInput sitespeedTti: ConnectionFloatFilterInput speedIndex: ConnectionIntFilterInput speedIndexScore: ConnectionFloatFilterInput taskIds: ConnectionIntArrayFilterInput taskIdsCount: ConnectionIntFilterInput thirdPartyCookieOrigins: ConnectionStringArrayFilterInput timeToFirstByte: ConnectionIntFilterInput topicMatchCount: ConnectionIntFilterInput topicScoreGap: ConnectionFloatFilterInput topicSimilarities: TopicSimilarityObjectArrayMemberConnectionFilterInput totalBlockingTime: ConnectionIntFilterInput totalBlockingTimeScore: ConnectionFloatFilterInput transferSize: ConnectionIntFilterInput twitterCard: ConnectionStringFilterInput twitterDescription: ConnectionStringFilterInput twitterDescriptionLength: ConnectionIntFilterInput twitterImage: ConnectionStringFilterInput twitterSite: ConnectionStringFilterInput twitterTitle: ConnectionStringFilterInput unavailableAfter: ConnectionStringFilterInput unavailableAfterDays: ConnectionIntFilterInput uniqueLinksInCount: ConnectionIntFilterInput url: ConnectionStringFilterInput urlAlias: ConnectionStringFilterInput urlAliasDigest: ConnectionStringFilterInput urlContainsRepeatedPaths: ConnectionBooleanFilterInput urlContainsUnderscores: ConnectionBooleanFilterInput urlDigest: ConnectionStringFilterInput urlDoubleEncoded: ConnectionBooleanFilterInput urlLength: ConnectionIntFilterInput urlNormalized: ConnectionStringFilterInput urlPathContainsDoubleSlashes: ConnectionBooleanFilterInput validTwitterCard: ConnectionBooleanFilterInput varyUserAgent: ConnectionBooleanFilterInput videoobjectSchemaCount: ConnectionIntFilterInput viewport: ConnectionStringFilterInput visibleIn: ConnectionStringArrayFilterInput warningAudits: ConnectionStringArrayFilterInput warningAuditsCount: ConnectionIntFilterInput wordCount: ConnectionIntFilterInput } type CrawlUrlCountCalculation { accessibilityAIssuesCount: Int! accessibilityAaIssuesCount: Int! accessibilityAaaIssuesCount: Int! accessibilityBpIssuesCount: Int! accessibilityCriticalIssuesCount: Int! accessibilityIncompleteIssuesCount: Int! accessibilityIssuesCount: Int! accessibilityMinorIssuesCount: Int! accessibilityModerateIssuesCount: Int! accessibilitySeriousIssuesCount: Int! aiBounceRate: Int! aiPageviews: Int! aiSessions: Int! aiUsers: Int! avgCitationPosition: Int! avgCitationScore: Int! backlinkCount: Int! backlinkDomainCount: Int! bodyTagsInHeadCount: Int! breadcrumbCount: Int! breadcrumbSchemaCount: Int! canonicalLinksInCount: Int! citationsCount: Int! contentHtmlRatio: Int! contentSize: Int! cumulativeLayoutShift: Int! cumulativeLayoutShiftMainFrame: Int! cumulativeLayoutShiftScore: Int! deeprank: Int! descriptionLength: Int! descriptionLengthPx: Int! descriptionRelevance: Int! duplicateBodyCount: Int! duplicateDescriptionCount: Int! duplicatePageCount: Int! duplicateTitleCount: Int! duplicateUrlCount: Int! eventSchemaCount: Int! externalLinksCount: Int! failedAuditsCount: Int! faqpageSchemaCount: Int! fetchTime: Int! firstContentfulPaint: Int! firstContentfulPaintScore: Int! firstMeaningfulPaint: Int! folderCount: Int! followedExternalLinksOutCount: Int! followedLinksInCount: Int! foundAtSitemap: Int! gaAvgPageLoadTime: Int! gaAvgTimeOnPage: Int! gaPageviewsPerVisits: Int! gaVisitBounceRate: Int! gaVisits: Int! h1Count: Int! h1Length: Int! h1TagRelevance: Int! headTagsInBodyCount: Int! howtoSchemaCount: Int! hreflangLinksInCount: Int! htmlSize: Int! infoAuditsCount: Int! interactive: Int! internalLinksCount: Int! largestContentfulPaint: Int! largestContentfulPaintScore: Int! lcpLoadEnd: Int! lcpLoadStart: Int! linksInCount: Int! linksOutCount: Int! logRequestsAiBot: Int! logRequestsDesktop: Int! logRequestsMobile: Int! logRequestsTotal: Int! mainContentRelevance: Int! maxPotentialFid: Int! mobileDesktopContentDifference: Int! mobileDesktopLinksInDifference: Int! mobileDesktopLinksOutDifference: Int! mobileLinksInCount: Int! nearestTopicCosineSimilarity: Int! newsarticleSchemaCount: Int! nonReciprocateHreflangOutCount: Int! pageRelevance: Int! pageTitleLength: Int! pageTitleLengthPx: Int! pageTitleRelevance: Int! paginatedLinksInCount: Int! paramCount: Int! passedAuditsCount: Int! performanceCls: Int! performanceDcl: Int! performanceFcp: Int! performanceLcp: Int! performanceTtfb: Int! performanceTti: Int! primaryConversionsCount: Int! primaryConversionsPerSession: Int! primaryConversionsValue: Int! primaryTopicCosineSimilarity: Int! primaryTopicScore: Int! productOfSavingsKibAndPageviews: Int! productOfSavingsSecsAndPageviews: Int! productPriceSchemaValue: Int! productRatingSchemaValue: Int! productSchemaCount: Int! promptCount: Int! qapageSchemaCount: Int! recipeSchemaCount: Int! reciprocateHreflangOutCount: Int! redirectCount: Int! redirectsInCount: Int! relLinksInCount: Int! renderedLinkCountDifference: Int! renderedWordCountDifference: Int! resourceLinksInCount: Int! reviewSchemaCount: Int! savingsKib: Int! savingsScore: Int! savingsSecs: Int! schemaBlocksCount: Int! schemaErrorsCount: Int! schemaIssuesCount: Int! schemaWarningsCount: Int! searchConsoleDesktopClicks: Int! searchConsoleDesktopCtr: Int! searchConsoleDesktopImpressions: Int! searchConsoleDesktopPosition: Int! searchConsoleMobileClicks: Int! searchConsoleMobileCtr: Int! searchConsoleMobileImpressions: Int! searchConsoleMobilePosition: Int! searchConsoleTabletClicks: Int! searchConsoleTabletCtr: Int! searchConsoleTabletImpressions: Int! searchConsoleTabletPosition: Int! searchConsoleTotalClicks: Int! searchConsoleTotalCtr: Int! searchConsoleTotalImpressions: Int! searchConsoleTotalPosition: Int! searchQueriesCount: Int! secondaryConversionsCount: Int! secondaryConversionsPerSession: Int! secondaryConversionsValue: Int! secondaryTopicCosineSimilarity: Int! secondaryTopicScore: Int! sitemapsInCount: Int! sitespeedCls: Int! sitespeedClsMainFrame: Int! sitespeedClsScore: Int! sitespeedFcp: Int! sitespeedFcpScore: Int! sitespeedFmp: Int! sitespeedLcp: Int! sitespeedLcpScore: Int! sitespeedMaxPotentialFid: Int! sitespeedScore: Int! sitespeedSpeedIndex: Int! sitespeedSpeedIndexScore: Int! sitespeedTbt: Int! sitespeedTbtScore: Int! sitespeedTtfb: Int! sitespeedTti: Int! speedIndex: Int! speedIndexScore: Int! timeToFirstByte: Int! topicMatchCount: Int! topicScoreGap: Int! totalBlockingTime: Int! totalBlockingTimeScore: Int! uniqueLinksInCount: Int! url: Int! videoobjectSchemaCount: Int! warningAuditsCount: Int! wordCount: Int! } type CrawlUrlEdge { """ A cursor to use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: CrawlUrl! } type CrawlUrlMaxCalculation { accessibilityAIssuesCount: Int accessibilityAaIssuesCount: Int accessibilityAaaIssuesCount: Int accessibilityBpIssuesCount: Int accessibilityCriticalIssuesCount: Int accessibilityIncompleteIssuesCount: Int accessibilityIssuesCount: Int accessibilityMinorIssuesCount: Int accessibilityModerateIssuesCount: Int accessibilitySeriousIssuesCount: Int aiBounceRate: Float aiPageviews: Int aiSessions: Int aiUsers: Int avgCitationPosition: Float avgCitationScore: Float backlinkCount: Int backlinkDomainCount: Int bodyTagsInHeadCount: Int breadcrumbCount: Int breadcrumbSchemaCount: Int canonicalLinksInCount: Int citationsCount: Int contentHtmlRatio: Float contentSize: Int cumulativeLayoutShift: Float cumulativeLayoutShiftMainFrame: Float cumulativeLayoutShiftScore: Float deeprank: Float descriptionLength: Int descriptionLengthPx: Int descriptionRelevance: Float duplicateBodyCount: Int duplicateDescriptionCount: Int duplicatePageCount: Int duplicateTitleCount: Int duplicateUrlCount: Int eventSchemaCount: Int externalLinksCount: Int failedAuditsCount: Int faqpageSchemaCount: Int fetchTime: Float firstContentfulPaint: Int firstContentfulPaintScore: Float firstMeaningfulPaint: Int folderCount: Int followedExternalLinksOutCount: Int followedLinksInCount: Int gaAvgPageLoadTime: Float gaAvgTimeOnPage: Float gaPageviewsPerVisits: Float gaVisitBounceRate: Float gaVisits: Int h1Count: Int h1Length: Int h1TagRelevance: Float headTagsInBodyCount: Int howtoSchemaCount: Int hreflangLinksInCount: Int htmlSize: Int infoAuditsCount: Int interactive: Int internalLinksCount: Int largestContentfulPaint: Int largestContentfulPaintScore: Float lcpLoadEnd: Int lcpLoadStart: Int linksInCount: Int linksOutCount: Int logRequestsAiBot: Int logRequestsDesktop: Int logRequestsMobile: Int logRequestsTotal: Int mainContentRelevance: Float maxPotentialFid: Int mobileDesktopContentDifference: Int mobileDesktopLinksInDifference: Int mobileDesktopLinksOutDifference: Int mobileLinksInCount: Int nearestTopicCosineSimilarity: Float newsarticleSchemaCount: Int nonReciprocateHreflangOutCount: Int pageRelevance: Float pageTitleLength: Int pageTitleLengthPx: Int pageTitleRelevance: Float paginatedLinksInCount: Int paramCount: Int passedAuditsCount: Int performanceCls: Float performanceDcl: Float performanceFcp: Float performanceLcp: Float performanceTtfb: Float performanceTti: Float primaryConversionsCount: Int primaryConversionsPerSession: Float primaryConversionsValue: Float primaryTopicCosineSimilarity: Float primaryTopicScore: Float productOfSavingsKibAndPageviews: Float productOfSavingsSecsAndPageviews: Float productPriceSchemaValue: Float productRatingSchemaValue: Float productSchemaCount: Int promptCount: Int qapageSchemaCount: Int recipeSchemaCount: Int reciprocateHreflangOutCount: Int redirectCount: Int redirectsInCount: Int relLinksInCount: Int renderedLinkCountDifference: Int renderedWordCountDifference: Int resourceLinksInCount: Int reviewSchemaCount: Int savingsKib: Float savingsScore: Float savingsSecs: Float schemaBlocksCount: Int schemaErrorsCount: Int schemaIssuesCount: Int schemaWarningsCount: Int searchConsoleDesktopClicks: Int searchConsoleDesktopCtr: Float searchConsoleDesktopImpressions: Int searchConsoleDesktopPosition: Float searchConsoleMobileClicks: Int searchConsoleMobileCtr: Float searchConsoleMobileImpressions: Int searchConsoleMobilePosition: Float searchConsoleTabletClicks: Int searchConsoleTabletCtr: Float searchConsoleTabletImpressions: Int searchConsoleTabletPosition: Float searchConsoleTotalClicks: Int searchConsoleTotalCtr: Float searchConsoleTotalImpressions: Int searchConsoleTotalPosition: Float searchQueriesCount: Int secondaryConversionsCount: Int secondaryConversionsPerSession: Float secondaryConversionsValue: Float secondaryTopicCosineSimilarity: Float secondaryTopicScore: Float sitemapsInCount: Int sitespeedCls: Float sitespeedClsMainFrame: Float sitespeedClsScore: Float sitespeedFcp: Float sitespeedFcpScore: Float sitespeedFmp: Float sitespeedLcp: Float sitespeedLcpScore: Float sitespeedMaxPotentialFid: Float sitespeedScore: Float sitespeedSpeedIndex: Float sitespeedSpeedIndexScore: Float sitespeedTbt: Float sitespeedTbtScore: Float sitespeedTtfb: Float sitespeedTti: Float speedIndex: Int speedIndexScore: Float timeToFirstByte: Int topicMatchCount: Int topicScoreGap: Float totalBlockingTime: Int totalBlockingTimeScore: Float uniqueLinksInCount: Int videoobjectSchemaCount: Int warningAuditsCount: Int wordCount: Int } type CrawlUrlMinCalculation { accessibilityAIssuesCount: Int accessibilityAaIssuesCount: Int accessibilityAaaIssuesCount: Int accessibilityBpIssuesCount: Int accessibilityCriticalIssuesCount: Int accessibilityIncompleteIssuesCount: Int accessibilityIssuesCount: Int accessibilityMinorIssuesCount: Int accessibilityModerateIssuesCount: Int accessibilitySeriousIssuesCount: Int aiBounceRate: Float aiPageviews: Int aiSessions: Int aiUsers: Int avgCitationPosition: Float avgCitationScore: Float backlinkCount: Int backlinkDomainCount: Int bodyTagsInHeadCount: Int breadcrumbCount: Int breadcrumbSchemaCount: Int canonicalLinksInCount: Int citationsCount: Int contentHtmlRatio: Float contentSize: Int cumulativeLayoutShift: Float cumulativeLayoutShiftMainFrame: Float cumulativeLayoutShiftScore: Float deeprank: Float descriptionLength: Int descriptionLengthPx: Int descriptionRelevance: Float duplicateBodyCount: Int duplicateDescriptionCount: Int duplicatePageCount: Int duplicateTitleCount: Int duplicateUrlCount: Int eventSchemaCount: Int externalLinksCount: Int failedAuditsCount: Int faqpageSchemaCount: Int fetchTime: Float firstContentfulPaint: Int firstContentfulPaintScore: Float firstMeaningfulPaint: Int folderCount: Int followedExternalLinksOutCount: Int followedLinksInCount: Int gaAvgPageLoadTime: Float gaAvgTimeOnPage: Float gaPageviewsPerVisits: Float gaVisitBounceRate: Float gaVisits: Int h1Count: Int h1Length: Int h1TagRelevance: Float headTagsInBodyCount: Int howtoSchemaCount: Int hreflangLinksInCount: Int htmlSize: Int infoAuditsCount: Int interactive: Int internalLinksCount: Int largestContentfulPaint: Int largestContentfulPaintScore: Float lcpLoadEnd: Int lcpLoadStart: Int linksInCount: Int linksOutCount: Int logRequestsAiBot: Int logRequestsDesktop: Int logRequestsMobile: Int logRequestsTotal: Int mainContentRelevance: Float maxPotentialFid: Int mobileDesktopContentDifference: Int mobileDesktopLinksInDifference: Int mobileDesktopLinksOutDifference: Int mobileLinksInCount: Int nearestTopicCosineSimilarity: Float newsarticleSchemaCount: Int nonReciprocateHreflangOutCount: Int pageRelevance: Float pageTitleLength: Int pageTitleLengthPx: Int pageTitleRelevance: Float paginatedLinksInCount: Int paramCount: Int passedAuditsCount: Int performanceCls: Float performanceDcl: Float performanceFcp: Float performanceLcp: Float performanceTtfb: Float performanceTti: Float primaryConversionsCount: Int primaryConversionsPerSession: Float primaryConversionsValue: Float primaryTopicCosineSimilarity: Float primaryTopicScore: Float productOfSavingsKibAndPageviews: Float productOfSavingsSecsAndPageviews: Float productPriceSchemaValue: Float productRatingSchemaValue: Float productSchemaCount: Int promptCount: Int qapageSchemaCount: Int recipeSchemaCount: Int reciprocateHreflangOutCount: Int redirectCount: Int redirectsInCount: Int relLinksInCount: Int renderedLinkCountDifference: Int renderedWordCountDifference: Int resourceLinksInCount: Int reviewSchemaCount: Int savingsKib: Float savingsScore: Float savingsSecs: Float schemaBlocksCount: Int schemaErrorsCount: Int schemaIssuesCount: Int schemaWarningsCount: Int searchConsoleDesktopClicks: Int searchConsoleDesktopCtr: Float searchConsoleDesktopImpressions: Int searchConsoleDesktopPosition: Float searchConsoleMobileClicks: Int searchConsoleMobileCtr: Float searchConsoleMobileImpressions: Int searchConsoleMobilePosition: Float searchConsoleTabletClicks: Int searchConsoleTabletCtr: Float searchConsoleTabletImpressions: Int searchConsoleTabletPosition: Float searchConsoleTotalClicks: Int searchConsoleTotalCtr: Float searchConsoleTotalImpressions: Int searchConsoleTotalPosition: Float searchQueriesCount: Int secondaryConversionsCount: Int secondaryConversionsPerSession: Float secondaryConversionsValue: Float secondaryTopicCosineSimilarity: Float secondaryTopicScore: Float sitemapsInCount: Int sitespeedCls: Float sitespeedClsMainFrame: Float sitespeedClsScore: Float sitespeedFcp: Float sitespeedFcpScore: Float sitespeedFmp: Float sitespeedLcp: Float sitespeedLcpScore: Float sitespeedMaxPotentialFid: Float sitespeedScore: Float sitespeedSpeedIndex: Float sitespeedSpeedIndexScore: Float sitespeedTbt: Float sitespeedTbtScore: Float sitespeedTtfb: Float sitespeedTti: Float speedIndex: Int speedIndexScore: Float timeToFirstByte: Int topicMatchCount: Int topicScoreGap: Float totalBlockingTime: Int totalBlockingTimeScore: Float uniqueLinksInCount: Int videoobjectSchemaCount: Int warningAuditsCount: Int wordCount: Int } input CrawlUrlOrder { """ The ordering direction. """ direction: OrderDirection! """ The field to order CrawlUrls by. """ field: CrawlUrlOrderField! } enum CrawlUrlOrderField { accessibilityAIssuesCount accessibilityAaIssuesCount accessibilityAaaIssuesCount accessibilityBpIssuesCount accessibilityCriticalIssuesCount accessibilityEnabled accessibilityIncompleteIssuesCount accessibilityIssuesCount accessibilityIssuesCountByRuleIdCount accessibilityMinorIssuesCount accessibilityModerateIssuesCount accessibilitySeriousIssuesCount adultRating aiBotBlockedCount aiBounceRate aiPageviews aiSessions aiUsers amphtml amphtmlReciprocate amphtmlValid avgCitationPosition avgCitationScore backlinkCount backlinkDomainCount bodyTagsInHeadCount breadcrumb01 breadcrumb02 breadcrumb03 breadcrumb04 breadcrumb05 breadcrumb06 breadcrumb07 breadcrumb08 breadcrumbCount breadcrumbSchemaCount canonicalHeaderUrl canonicalHtmlUrl canonicalLinksInCount canonicalUrl canonicalUrlChangedFrom canonicalUrlIsConsistent canonicalizedPage changesCount citationsCount containerExecutionFailuresCount contentHtmlRatio contentSize crawlDatetime css cssLinksInCount cumulativeLayoutShift cumulativeLayoutShiftMainFrame cumulativeLayoutShiftScore customExtraction1Count customExtraction2Count customExtraction3Count customExtraction4Count customExtraction5Count customExtraction6Count customExtraction7Count customExtraction8Count customExtraction9Count customExtraction10Count customExtraction11Count customExtraction12Count customExtraction13Count customExtraction14Count customExtraction15Count customExtraction16Count customExtraction17Count customExtraction18Count customExtraction19Count customExtraction20Count customExtraction21Count customExtraction22Count customExtraction23Count customExtraction24Count customExtraction25Count customExtraction26Count customExtraction27Count customExtraction28Count customExtraction29Count customExtraction30Count customExtractionMatch deeprank description descriptionChangedFrom descriptionLength descriptionLengthPx descriptionRelevance desktopUrl disallowedPage duplicateBody duplicateBodyCount duplicateBodyCountIsApproximation duplicateBodyNonIndexable duplicateBodyPrimaryUrl duplicateDescription duplicateDescriptionCount duplicateDescriptionCountIsApproximation duplicateDescriptionNonIndexable duplicateDescriptionPrimaryUrl duplicatePage duplicatePageCount duplicatePageCountIsApproximation duplicatePageNonIndexable duplicateTitle duplicateTitleCount duplicateTitleCountIsApproximation duplicateTitleNonIndexable duplicateTitlePrimaryUrl duplicateUrl duplicateUrlCount duplicateUrlCountIsApproximation duplicateUrlNonIndexable duplicateUrlPrimaryUrl encodingHeader eventSchemaCount externalLinksCount failedAuditsCount failedReason faqpageSchemaCount fbAdmins fbAppId fetchTime fileExtension firstContentfulPaint firstContentfulPaintScore firstMeaningfulPaint folderCount followedExternalLinksOutCount followedLinksInCount foundAtSitemap foundAtUrl foundInAiVisibility foundInBacklinks foundInCustomMetricsUpload foundInGoogleAnalytics foundInGoogleSearchConsole foundInList foundInLogSummary foundInSitemap foundInTask foundInWebCrawl gaAvgPageLoadTime gaAvgTimeOnPage gaPageviews gaPageviewsPerVisits gaVisitBounceRate gaVisits h1Count h1Length h1TagChangedFromCount h1TagCount h1TagRelevance h2TagCount h3TagCount hasStructuredData headTagsInBodyCount headerContentType headerContentTypeChangedFrom headerNoarchive headerNofollow headerNoindex headerNoodp headerNosnippet headerNoydir howtoSchemaCount hreflangCombinationChangedFromCount hreflangCombinationCount hreflangLanguagesInCount hreflangLanguagesInMetaCount hreflangLinksInCount hreflangLinksOutCount hreflangOnHeader hreflangOnPage hreflangOnSitemap hreflangUrlCount hsts htmlSize httpStatusCode httpStatusCodeChangedFrom https identifiedLanguage imgLinksInCount inconsistentHreflangsInCount indexable infoAuditsCount interactive internal internalLinksCount isImage isRedirect isRedirectLoop isSelfCanonical isWebLinked js jsLinksInCount largestContentfulPaint largestContentfulPaintScore lcpLoadEnd lcpLoadStart level levelChangedFrom linksInCount linksOutCount logRequestsAiBot logRequestsDesktop logRequestsMobile logRequestsTotal mainContentRelevance maxPotentialFid metaCharset metaContentType metaDisabledSitelinks metaNoarchive metaNofollow metaNoindex metaNoodp metaNosnippet metaNoydir metaRedirect mixedContentWarningsCount mobileDesktopContentDifference mobileDesktopContentMismatch mobileDesktopLinksInDifference mobileDesktopLinksOutDifference mobileLinksInCount mobileReciprocate mobileRelAlternate mobileRelAlternateHeaderUrl mobileRelAlternateHtmlUrl mobileRelAlternateUrl mobileRelAlternateUrlIsConsistent mobileRelAmphtml mobileRelAmphtmlUrl nearestTopicCosineSimilarity nearestTopicName newsarticleAuthorSchemaValue newsarticleSchemaCount newsarticleSchemaValid noarchive nofollowedPage noindex nonReciprocateHreflangOutCount noodp nosnippet noydir ogDescription ogImage ogLocale ogSiteName ogTitle ogType ogUrl page1 pageGroup pageRelevance pageTitle pageTitleChangedFrom pageTitleLength pageTitleLengthPx pageTitleRelevance pageTypeIdsCount pageTypeNamesCount paginatedLinksInCount paginatedPage paramCount passedAuditsCount path0 path1 path2 path3 path4 path5 path6 path7 path8 path9 pathCount performanceCls performanceDcl performanceFcp performanceLcp performanceTtfb performanceTti previousPath primaryConversionsCount primaryConversionsPerSession primaryConversionsValue primaryPage primaryTopicCosineSimilarity primaryTopicName primaryTopicScore primaryUrl primaryUrlNonIndexable productAvailabilitySchemaValue productBrandSchemaValue productOfSavingsKibAndPageviews productOfSavingsSecsAndPageviews productPriceSchemaValue productRatingSchemaValue productSchemaCount productSchemaValid productSkuSchemaValue promptCount qapageSchemaCount recipeSchemaCount reciprocateHreflangOutCount redirectChainCount redirectCount redirectedToStatusCode redirectedToUrl redirectedToUrlChangedFrom redirectsInCount relLinksInCount relNextHeaderUrl relNextHtmlUrl relNextUrl relNextUrlIsConsistent relPrevHeaderUrl relPrevHtmlUrl relPrevUrl relPrevUrlIsConsistent renderedCanonicalLinkMatch renderedLinkCountDifference renderedWordCountDifference resourceLinksInCount responsive reviewSchemaCount robotsNoindex robotsTxtRuleMatch savingsKib savingsScore savingsSecs schemaBlocksCount schemaErrorsCount schemaFailedConditionsCount schemaIssuesCount schemaIssuesCountByTypeCount schemaParseFailure schemaTemplateSetVersion schemaTypesPresentCount schemaWarningsCount searchConsoleDesktopClicks searchConsoleDesktopCtr searchConsoleDesktopImpressions searchConsoleDesktopPosition searchConsoleMobileClicks searchConsoleMobileCtr searchConsoleMobileImpressions searchConsoleMobilePosition searchConsoleTabletClicks searchConsoleTabletCtr searchConsoleTabletImpressions searchConsoleTabletPosition searchConsoleTotalClicks searchConsoleTotalCtr searchConsoleTotalImpressions searchConsoleTotalPosition searchQueriesCount searchVolume secondaryConversionsCount secondaryConversionsPerSession secondaryConversionsValue secondaryTopicCosineSimilarity secondaryTopicName secondaryTopicScore secureFormInputField separateDesktop separateMobile sitemapsInCount sitespeedAuditResultsCount sitespeedCls sitespeedClsAuditResultsCount sitespeedClsMainFrame sitespeedClsScore sitespeedFcp sitespeedFcpAuditResultsCount sitespeedFcpScore sitespeedFmp sitespeedLcp sitespeedLcpAuditResultsCount sitespeedLcpScore sitespeedMaxPotentialFid sitespeedScore sitespeedSpeedIndex sitespeedSpeedIndexScore sitespeedTbt sitespeedTbtAuditResultsCount sitespeedTbtScore sitespeedTtfb sitespeedTti speedIndex speedIndexScore taskIdsCount timeToFirstByte topicMatchCount topicScoreGap totalBlockingTime totalBlockingTimeScore transferSize twitterCard twitterDescription twitterDescriptionLength twitterImage twitterSite twitterTitle unavailableAfter unavailableAfterDays uniqueLinksInCount url urlAlias urlContainsRepeatedPaths urlContainsUnderscores urlDoubleEncoded urlLength urlNormalized urlPathContainsDoubleSlashes validTwitterCard varyUserAgent videoobjectSchemaCount viewport warningAuditsCount wordCount } type CrawlUrlSumCalculation { accessibilityAIssuesCount: BigInt accessibilityAaIssuesCount: BigInt accessibilityAaaIssuesCount: BigInt accessibilityBpIssuesCount: BigInt accessibilityCriticalIssuesCount: BigInt accessibilityIncompleteIssuesCount: BigInt accessibilityIssuesCount: BigInt accessibilityMinorIssuesCount: BigInt accessibilityModerateIssuesCount: BigInt accessibilitySeriousIssuesCount: BigInt aiBounceRate: Float aiPageviews: BigInt aiSessions: BigInt aiUsers: BigInt avgCitationPosition: Float avgCitationScore: Float backlinkCount: BigInt backlinkDomainCount: BigInt bodyTagsInHeadCount: BigInt breadcrumbCount: BigInt breadcrumbSchemaCount: BigInt canonicalLinksInCount: BigInt citationsCount: BigInt contentHtmlRatio: Float contentSize: BigInt cumulativeLayoutShift: Float cumulativeLayoutShiftMainFrame: Float cumulativeLayoutShiftScore: Float deeprank: Float descriptionLength: BigInt descriptionLengthPx: BigInt descriptionRelevance: Float duplicateBodyCount: BigInt duplicateDescriptionCount: BigInt duplicatePageCount: BigInt duplicateTitleCount: BigInt duplicateUrlCount: BigInt eventSchemaCount: BigInt externalLinksCount: BigInt failedAuditsCount: BigInt faqpageSchemaCount: BigInt fetchTime: Float firstContentfulPaint: BigInt firstContentfulPaintScore: Float firstMeaningfulPaint: BigInt folderCount: BigInt followedExternalLinksOutCount: BigInt followedLinksInCount: BigInt gaAvgPageLoadTime: Float gaAvgTimeOnPage: Float gaPageviewsPerVisits: Float gaVisitBounceRate: Float gaVisits: BigInt h1Count: BigInt h1Length: BigInt h1TagRelevance: Float headTagsInBodyCount: BigInt howtoSchemaCount: BigInt hreflangLinksInCount: BigInt htmlSize: BigInt infoAuditsCount: BigInt interactive: BigInt internalLinksCount: BigInt largestContentfulPaint: BigInt largestContentfulPaintScore: Float lcpLoadEnd: BigInt lcpLoadStart: BigInt linksInCount: BigInt linksOutCount: BigInt logRequestsAiBot: BigInt logRequestsDesktop: BigInt logRequestsMobile: BigInt logRequestsTotal: BigInt mainContentRelevance: Float maxPotentialFid: BigInt mobileDesktopContentDifference: BigInt mobileDesktopLinksInDifference: BigInt mobileDesktopLinksOutDifference: BigInt mobileLinksInCount: BigInt nearestTopicCosineSimilarity: Float newsarticleSchemaCount: BigInt nonReciprocateHreflangOutCount: BigInt pageRelevance: Float pageTitleLength: BigInt pageTitleLengthPx: BigInt pageTitleRelevance: Float paginatedLinksInCount: BigInt paramCount: BigInt passedAuditsCount: BigInt performanceCls: Float performanceDcl: Float performanceFcp: Float performanceLcp: Float performanceTtfb: Float performanceTti: Float primaryConversionsCount: BigInt primaryConversionsPerSession: Float primaryConversionsValue: Float primaryTopicCosineSimilarity: Float primaryTopicScore: Float productOfSavingsKibAndPageviews: Float productOfSavingsSecsAndPageviews: Float productPriceSchemaValue: Float productRatingSchemaValue: Float productSchemaCount: BigInt promptCount: BigInt qapageSchemaCount: BigInt recipeSchemaCount: BigInt reciprocateHreflangOutCount: BigInt redirectCount: BigInt redirectsInCount: BigInt relLinksInCount: BigInt renderedLinkCountDifference: BigInt renderedWordCountDifference: BigInt resourceLinksInCount: BigInt reviewSchemaCount: BigInt savingsKib: Float savingsScore: Float savingsSecs: Float schemaBlocksCount: BigInt schemaErrorsCount: BigInt schemaIssuesCount: BigInt schemaWarningsCount: BigInt searchConsoleDesktopClicks: BigInt searchConsoleDesktopCtr: Float searchConsoleDesktopImpressions: BigInt searchConsoleDesktopPosition: Float searchConsoleMobileClicks: BigInt searchConsoleMobileCtr: Float searchConsoleMobileImpressions: BigInt searchConsoleMobilePosition: Float searchConsoleTabletClicks: BigInt searchConsoleTabletCtr: Float searchConsoleTabletImpressions: BigInt searchConsoleTabletPosition: Float searchConsoleTotalClicks: BigInt searchConsoleTotalCtr: Float searchConsoleTotalImpressions: BigInt searchConsoleTotalPosition: Float searchQueriesCount: BigInt secondaryConversionsCount: BigInt secondaryConversionsPerSession: Float secondaryConversionsValue: Float secondaryTopicCosineSimilarity: Float secondaryTopicScore: Float sitemapsInCount: BigInt sitespeedCls: Float sitespeedClsMainFrame: Float sitespeedClsScore: Float sitespeedFcp: Float sitespeedFcpScore: Float sitespeedFmp: Float sitespeedLcp: Float sitespeedLcpScore: Float sitespeedMaxPotentialFid: Float sitespeedScore: Float sitespeedSpeedIndex: Float sitespeedSpeedIndexScore: Float sitespeedTbt: Float sitespeedTbtScore: Float sitespeedTtfb: Float sitespeedTti: Float speedIndex: BigInt speedIndexScore: Float timeToFirstByte: BigInt topicMatchCount: BigInt topicScoreGap: Float totalBlockingTime: BigInt totalBlockingTimeScore: Float uniqueLinksInCount: BigInt videoobjectSchemaCount: BigInt warningAuditsCount: BigInt wordCount: BigInt } type CrawlWebCrawlDepth { duplicatePages: Int failedUrls: Int level: Int! non200StatusCodePages: Int nonIndexablePages: Int paginatedPages: Int uniquePages: Int } type CrawlWebCrawlDepthConnection { """ A list of edges. """ edges: [CrawlWebCrawlDepthEdge!]! """ A list of nodes. """ nodes: [CrawlWebCrawlDepth!]! """ Information to aid in pagination. """ pageInfo: PageInfo! """ Identifies the total count of CrawlWebCrawlDepths in the connection. """ totalCount: Int! } input CrawlWebCrawlDepthConnectionFilterInput { """ Groups each filter object using AND """ _and: [CrawlWebCrawlDepthConnectionFilterInput!] """ Groups each filter object using AND, wrapped inside NOT """ _not: [CrawlWebCrawlDepthConnectionFilterInput!] """ Groups each filter object using OR """ _or: [CrawlWebCrawlDepthConnectionFilterInput!] duplicatePages: ConnectionIntFilterInput failedUrls: ConnectionIntFilterInput level: ConnectionIntFilterInput non200StatusCodePages: ConnectionIntFilterInput nonIndexablePages: ConnectionIntFilterInput paginatedPages: ConnectionIntFilterInput uniquePages: ConnectionIntFilterInput } type CrawlWebCrawlDepthEdge { """ A cursor to use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: CrawlWebCrawlDepth! } input CrawlWebCrawlDepthOrder { """ The ordering direction. """ direction: OrderDirection! """ The field to order CrawlWebCrawlDepths by. """ field: CrawlWebCrawlDepthOrderField! } enum CrawlWebCrawlDepthOrderField { duplicatePages failedUrls level non200StatusCodePages nonIndexablePages paginatedPages uniquePages } enum CrawlerType { Legacy SerpentBasic SerpentMapped SerpentModular } input CreateAccessibilityIssueSolutionSuggestionInput { crawlId: ObjectID! issueDigest: String! } type CreateAccessibilityIssueSolutionSuggestionPayload { accessibilityIssueSolutionSuggestion: AccessibilityIssueSolutionSuggestion! } input CreateAccessibilityProjectInput { accountId: ObjectID! """ Account tags to apply to the new project. Requires the admin role, the same as tagging an existing project. """ accountTagIds: [ObjectID!] alertEmails: [String!] alertSettingCode: AlertSettingCode! = Always apiCallbackHeaders: [APICallbackHeaderInput!]! = [] apiCallbackUrl: String = null applyCustomHeadersToNavigationRequestsOnly: Boolean! = false autoFinalizeOnCrawlLimits: Boolean! = true block3rdPartyCookies: Boolean! = false compareToCrawl: CompareToCrawlType! = LastCrawl crawl4xxHreflangLinks: Boolean! = false crawl4xxLinks: Boolean! = false crawlDisallowedUrls1stLevel: Boolean! = false crawlHyperlinksExternal: Boolean! = false crawlHyperlinksInternal: Boolean! = true crawlImagesExternal: Boolean! = false crawlImagesInternal: Boolean! = false crawlNofollowHyperlinks: Boolean! = true crawlNonHtml: Boolean! = false crawlNotIncluded1stLevel: Boolean! = false crawlRedirectsExternal: Boolean! = true crawlRedirectsInternal: Boolean! = true crawlRelAmphtmlExternal: Boolean! = false crawlRelAmphtmlInternal: Boolean! = true crawlRelCanonicalsExternal: Boolean! = false crawlRelCanonicalsInternal: Boolean! = true crawlRelHreflangsExternal: Boolean! = false crawlRelHreflangsInternal: Boolean! = true crawlRelMobileExternal: Boolean! = false crawlRelMobileInternal: Boolean! = true crawlRelNextPrevExternal: Boolean! = false crawlRelNextPrevInternal: Boolean! = true crawlRobotsTxtNoindex: Boolean! = true crawlScriptsExternal: Boolean! = false crawlScriptsInternal: Boolean! = false crawlStylesheetsExternal: Boolean! = false crawlStylesheetsInternal: Boolean! = false crawlTestSite: Boolean! = false crawlTypes: [CrawlType!]! = [Web] customDns: [CustomDnsSettingInput!]! = [] customExtractions: [CustomExtractionSettingInput!]! = [] customRequestHeaders: [CustomRequestHeaderInput!]! = [] dataLayerName: String = null dataOnlyCrawlTypes: [CrawlType!] discoverSitemapsInRobotsTxt: Boolean! = true """ Includes paginated pages, those with a `rel=next` or `rel=prev` link, in the duplicate checks for titles, descriptions, body content and pages. Defaults to false, which leaves them out. """ duplicatePagesIncludePaginatedPages: Boolean! = false duplicatePrecision: Float! = 3 emptyPageThreshold: Int! = 512 enableKeyValueStore: Boolean! = false excludeUrlPatterns: [String!]! = [] excludedDatasources: [DatasourceCode!] failureRateLimitEnabled: Boolean! = false failureRateLookbackWindow: Int! = 300 failureRateThreshold: Float! = 50 flattenIframes: Boolean! = true flattenShadowDom: Boolean! = true gaDateRange: Int! = 30 ignoreInvalidSSLCertificate: Boolean! = false ignoreRobotsForNavigationRequests: Boolean! = true ignoreXRobots: Boolean! = false includeBestPractices: Boolean! = true includeHttpAndHttps: Boolean! = false includeSubdomains: Boolean! = false includeUrlPatterns: [String!]! = [] industryCode: String limitLevelsMax: Int limitPagesMax: Int limitUrlsMax: Int @deprecated(reason: "Use limitLevelsMax instead") locationCode: LocationCode! = Default logSummaryRequestsHigh: Int! = 100 logSummaryRequestsLow: Int! = 10 maxBodyContentLength: Int! = 51200 maxDescriptionLength: Int! = 230 maxFollowedExternalLinks: Int! = 10 maxHtmlSize: Int! = 204800 maxLinks: Int! = 250 maxLoadTime: Float! = 3 maxRedirections: Int! = 4 maxTitleWidth: Int! = 600 maxUrlLength: Int! = 1024 maximumCrawlRate: Float! = 3 maximumCrawlRateAdvanced: [AdvancedCrawlRateInput!]! = [] minDescriptionLength: Int! = 50 minTitleLength: Int! = 10 minVisits: Int! = 2 mobileHomepageUrl: String = null mobileUrlPattern: String = null mobileUserAgentCode: String! = "chrome-a11y-mobile" mobileViewportHeight: Int mobileViewportWidth: Int name: String! primaryDomain: String! renderTimeout: Int renderWithImages: Boolean! = false rendererBlockAds: Boolean! = false rendererBlockAnalytics: Boolean! = true rendererBlockCustom: [String!]! = [] rendererCookies: [RendererCookieInput!]! = [] rendererJsString: String = null rendererJsUrls: [String!]! = [] renderingRobotsCheckMode: RenderingRobotsCheckMode! = RequestDisallowed robotsOverwrite: String = null secondaryDomains: [String!]! = [] selectedWcagLevel: WcagLevel! = AAA selectedWcagVersion: Float! = 2.2 startUrls: [String!]! = [] storeLighthouseJSON: Boolean! = false targetMaxUncrawledUrlsCount: Int! = 500000 testSiteDomain: String = null testSitePassword: String = null testSiteUsername: String = null thinPageThreshold: Int! = 3072 """ Report setting for the topic clustering reports: a topic counts as thin when its `primaryIndexableUrlCountVsMedian` is below this value, that is, when it has fewer indexable primary URLs than this share of the median topic. Defaults to 0.5. """ thinTopicThreshold: Float! = 0.5 """ Report setting for the topic clustering reports: a page counts as ambiguous between its two best topics when its `topicScoreGap` is below this value. The gap is in standard deviations, not raw cosine similarity. Defaults to 0.15. """ topicAmbiguityGapThreshold: Float! = 0.15 urlRewriteQueryParameters: [String!]! = [] urlRewriteRules: [UrlRewriteRuleInput!]! = [] urlRewriteStripFragment: Boolean! = true urlSampling: [UrlSamplingInput!]! = [] useMobileSettings: Boolean! = false useNewHeadlessMode: Boolean! = false useRenderer: Boolean! = true useRobotsOverwrite: Boolean! = false useStealthMode: Boolean! = false useUrlRewriteRules: Boolean! = false userAgentCode: String! = "googlebot-smartphone" userAgentIsMobile: Boolean = null userAgentMobileIsMobile: Boolean = null userAgentString: String = null userAgentStringMobile: String = null userAgentToken: String = null userAgentTokenMobile: String = null viewportHeight: Int viewportWidth: Int } input CreateAccessibilityTestSuiteInput { accountId: ObjectID! """ Account tags to apply to the new test suite. Requires the admin role, the same as tagging an existing project. """ accountTagIds: [ObjectID!] alertEmails: [String!] applyCustomHeadersToNavigationRequestsOnly: Boolean! = false automaticThreshold: Boolean! = false automaticThresholdEnabledForAll: Boolean! = false block3rdPartyCookies: Boolean! = false crawl4xxHreflangLinks: Boolean! = false crawl4xxLinks: Boolean! = false crawlImagesInternal: Boolean! = false crawlRate: Float! = 3 crawlScriptsExternal: Boolean! = false crawlScriptsInternal: Boolean! = false crawlStylesheetsExternal: Boolean! = false crawlStylesheetsInternal: Boolean! = false crawlTypes: [TestSuiteCrawlType!]! = [List] customDns: [CustomDnsSettingInput!] customExtractions: [CustomExtractionSettingInput!] customHeaderUserAgent: String customHeaderUserAgentShort: String """ Includes paginated pages, those with a `rel=next` or `rel=prev` link, in the duplicate checks for titles, descriptions, body content and pages. Defaults to false, which leaves them out. """ duplicatePagesIncludePaginatedPages: Boolean! = false duplicatePrecision: Int! = 3 emptyPageThreshold: Int! = 512 flattenIframes: Boolean! = true flattenShadowDom: Boolean! = true healthScoreAutomaticThreshold: Boolean! = false healthScoreAutomaticThresholdEnabledForAll: Boolean! = false highLogSummaryRequests: Int! = 100 ignoreRobotsForNavigationRequests: Boolean! = true ignoreXRobots: Boolean! = false includeBestPractices: Boolean! = true limitPagesMax: Int! = 500 location: TestSuiteLocationCode! = Default lowLogSummaryRequests: Int! = 10 maxContentSize: Int! = 51200 maxDescriptionLength: Int! = 230 maxExternalLinks: Int! = 10 maxHtmlSize: Int! = 204800 maxLinks: Int! = 250 maxLoadTime: Float! = 3 maxRedirections: Int! = 4 maxTitleWidth: Int! = 600 maxUrlLength: Int! = 1024 minContentRatio: Float! = 0.1 minDescriptionLength: Int! = 50 minTitleLength: Int! = 10 mobileUserAgentCode: String mobileViewportHeight: Int mobileViewportWidth: Int name: String! rendererBlockAds: Boolean! = false rendererBlockAnalytics: Boolean! = false rendererBlockCustom: [String!] rendererCookies: [RendererCookieInput!]! = [] rendererJsString: String rendererJsUrls: [String!] renderingRobotsCheckMode: RenderingRobotsCheckMode! = RequestDisallowed robotsOverwrite: String selectedWcagLevel: WcagLevel! = AAA selectedWcagVersion: Float! = 2.2 sitePrimary: String! siteTest: String siteTestPass: String siteTestUser: String startUrls: [String!] thinPageThreshold: Int! = 3072 """ Report setting for the topic clustering reports: a topic counts as thin when its `primaryIndexableUrlCountVsMedian` is below this value, that is, when it has fewer indexable primary URLs than this share of the median topic. Defaults to 0.5. """ thinTopicThreshold: Float! = 0.5 """ Report setting for the topic clustering reports: a page counts as ambiguous between its two best topics when its `topicScoreGap` is below this value. The gap is in standard deviations, not raw cosine similarity. Defaults to 0.15. """ topicAmbiguityGapThreshold: Float! = 0.15 urlsExcluded: [String!] urlsIncluded: [String!] useNewHeadlessMode: Boolean! = false useRenderer: Boolean! = true useRobotsOverwrite: Boolean! = false userAgentCode: String userAgentIsMobile: Boolean = null userAgentMobileIsMobile: Boolean = null userAgentString: String = null userAgentStringMobile: String = null userAgentToken: String = null userAgentTokenMobile: String = null viewportHeight: Int viewportWidth: Int } input CreateAccountSsoGroupRoleMappingInput { accountId: ObjectID! roleCode: RoleCode! ssoGroupName: String! } type CreateAccountSsoGroupRoleMappingPayload { accountSsoGroupRoleMapping: AccountSsoGroupRoleMapping! } input CreateAccountTagAiVisibilityProjectsInput { """ The account owning both the tags and the projects. Required because AI Visibility Project ids are only unique within their own account. """ accountId: ObjectID! """ The tags to apply. Every tag must belong to `accountId`; a tag from another account is rejected and nothing is linked. """ accountTagIds: [ObjectID!]! """ The AI Visibility Projects to tag. Every tag is applied to every project, so two tags and three projects create six links. Projects that already carry a tag are left as they are. """ aiVisibilityProjectIds: [ObjectID!]! } type CreateAccountTagAiVisibilityProjectsPayload { """ The tags that were applied. """ accountTags: [AccountTag!]! """ The projects the tags were applied to. Read `tags` on them to see each project's resulting set, which includes tags it already carried. """ aiVisibilityProjects: [AiVisibilityProject!]! } input CreateAccountTagInput { accountId: ObjectID! color: String! name: String! } type CreateAccountTagPayload { accountTag: AccountTag! } input CreateAccountTagProjectsInput { accountTagIds: [ObjectID!]! projectIds: [ObjectID!]! } type CreateAccountTagProjectsPayload { accountTags: [AccountTag!]! projects: [Project!]! } input CreateAdobeAnalyticsProjectReportSuiteInput { adobeOauthServerToServerConnectionId: ObjectID! maxRows: Int minimumVisits: Int! = 0 numberOfDays: Int! = 90 perPage: Int projectId: ObjectID! reportSuiteId: String! suiteName: String! """ The Adobe Analytics dimension ID used to identify the page URL, without the `variables/` prefix (e.g. `pageurl` instead of `variables/pageurl`). """ urlDimensionId: String! } type CreateAdobeAnalyticsProjectReportSuitePayload { adobeAnalyticsProjectReportSuite: AdobeAnalyticsProjectReportSuite! } input CreateAdobeOauthServerToServerConnectionInput { clientId: String! clientSecret: String! } type CreateAdobeOauthServerToServerConnectionPayload { adobeOauthServerToServerConnection: AdobeOauthServerToServerConnection! } input CreateAiVisibilityBrandDomainInput { """ The account ID """ accountId: ObjectID! """ The brand ID to attach the domain to """ aiVisibilityBrandId: ObjectID! """ The domain to attach (hostname only, no protocol or path). For example: "lumar.io" or "www.lumar.io". """ domain: String! """ Whether subdomains of this domain should also count as the brand. Defaults to false. """ includeSubdomains: Boolean! = false } type CreateAiVisibilityBrandDomainPayload { aiVisibilityBrandDomain: AiVisibilityBrandDomain! } input CreateAiVisibilityOnboardingInput { """ User-confirmed brand name. If omitted, confirm it in the generation input before generating a free-scan setup. """ brandName: String """ Target country as an ISO 3166-1 alpha-2 code, e.g. GB. Null means worldwide; omitted country may be inferred from clear website evidence. """ country: String domain: String! """ Work email address. A new signup from a free or disposable email provider, or with a + alias, is refused with USER_EMAIL_NOT_BUSINESS_ADDRESS. """ email: String! """ Output language as an ISO 639-1 code, e.g. en. Explicit selection wins; omitted language defaults to English unless website evidence unambiguously supports another language. """ language: String recaptchaToken: String! termsAgreed: Boolean! } type CreateAiVisibilityOnboardingPayload { onboardingToken: String """ The email is already registered; no account was created and no email was sent. Offer sign-in or an explicit setup-link request. No existing account data is returned. """ recoveryRequired: Boolean! } input CreateAiVisibilityProjectAiProviderInput { accountId: ObjectID! aiVisibilityAiProviderId: ObjectID! aiVisibilityProjectId: ObjectID! } type CreateAiVisibilityProjectAiProviderPayload { aiVisibilityProjectAiProvider: AiVisibilityProjectAiProvider! } input CreateAiVisibilityProjectInput { accountId: ObjectID! """ Account tags to apply to the new project. Applying tags requires the account's Admin role, which is stricter than creating a project, so a non-admin passing tags creates nothing. """ accountTagIds: [ObjectID!] """ AI provider IDs to link. If not provided, all providers are linked. """ aiVisibilityAiProviderIds: [ObjectID!] """ Whether to automatically crawl cited pages for content evaluations. """ autoCrawlEnabled: Boolean! = false """ Top N SERP results to auto-trigger page runs for (1-30). """ autoDiscoveryThreshold: Int! = 5 """ Brand domain (hostname only, no protocol or path). For example: "lumar.io" or "www.lumar.io". """ brandDomain: String! brandIncludeSubdomains: Boolean = false brandName: String! """ Request per-theme brand sentiment capture on this project's prompt runs. Off by default because capture makes brand detection substantially more expensive. The request is passed on to the prompt tracker, which may not honour it, so theme sentiments can stay empty even while this is enabled. """ brandThemeSentimentCaptureEnabled: Boolean! = false """ Market as an ISO 3166-1 alpha-2 country code (e.g. 'US'). Omit to inherit the account's `defaultCountry`; pass null for worldwide even when the account has a default. Prompts created without a `country` inherit this value. """ country: String """ Days before content evaluation data is considered stale (1-90). """ freshnessThresholdDays: Int! = 7 """ Generation language as an ISO 639-1 code (lower-case, e.g. 'en'). Omit to inherit the account's `defaultLanguage`, or, when the account has no default, to have the language detected from the brand domain and stored on the project (best-effort: a site that establishes no clear language leaves this null, and detection is skipped entirely for service-account credentials, so pass a language explicitly if you need one). Pass null for unspecified even when the account has a default — an explicit null is never detected over. Read the value back rather than assuming what you sent. """ language: String name: String! """ How often scheduled prompt runs should occur. Defaults to daily. """ scheduleCadence: AiVisibilityScheduleCadence = Daily """ Whether SERP discovery is enabled for this project. """ serpDiscoveryEnabled: Boolean! = false } type CreateAiVisibilityProjectPayload { aiVisibilityProject: AiVisibilityProject! } input CreateAiVisibilityPromptInput { accountId: ObjectID! """ If provided, deletes the suggested prompt after creating the real prompt """ aiVisibilitySuggestedPromptId: ObjectID aiVisibilityTopicId: ObjectID! """ True when the prompt names the project's own (primary) brand. Branded prompts measure how AI answers describe that brand when asked about it directly; unbranded prompts ask the category question and measure whether it surfaces at all. The tag is always about the project's own brand, never about a competitor named in the prompt, so it means the same thing whichever brand a query is scoped to. Prompts created before this field existed are all stored as unbranded, whatever their text says, so one that names your brand reads the wrong way until it is corrected with `setAiVisibilityPromptBranded`. Omit (or pass null) to inherit the tag of the suggested prompt named by `aiVisibilitySuggestedPromptId` when that suggestion is for this topic and its content is unchanged, and to default to unbranded otherwise. """ branded: Boolean """ Prompt content (max 2500 characters) """ content: String! """ ISO 3166-1 alpha-2 country code. Omit to inherit the project's `country` (null when the project has none); pass null explicitly for worldwide even when the project has a country. """ country: String } type CreateAiVisibilityPromptPayload { aiVisibilityPrompt: AiVisibilityPrompt! } input CreateAiVisibilityTopicInput { accountId: ObjectID! aiVisibilityProjectId: ObjectID! """ If provided, deletes the suggested topic and transfers its prompt suggestions to the newly created topic """ aiVisibilitySuggestedTopicId: ObjectID """ User-visible topic description. Can be auto-generated and edited. """ description: String """ Keywords that identify content related to this topic. """ keywords: [String!] name: String! } type CreateAiVisibilityTopicPayload { aiVisibilityTopic: AiVisibilityTopic! } input CreateAiVisibilityTopicsBulkInput { accountId: ObjectID! aiVisibilityProjectId: ObjectID! """ Send an email to account users once the initial processing pipeline (prompt runs, discovery, page evaluations) finishes. Only takes effect when prompt runs are actually created. """ notifyWhenAccountReady: Boolean topics: [BulkAiVisibilityTopicInput!]! } type CreateAiVisibilityTopicsBulkPayload { aiVisibilityPrompts: [AiVisibilityPrompt!]! aiVisibilityTopics: [AiVisibilityTopic!]! } input CreateAndRunBuildInput { ciBuildId: String testSuiteId: ObjectID! } type CreateAndRunBuildPayload { build: Build! } input CreateBillingPortalSessionForPaymentMethodUpdateInput { accountId: ObjectID! """ The default URL to redirect customers to when they click on the portal's link to return to the app. """ returnUrl: String! } input CreateBillingPortalSessionForSubscriptionUpdateInput { accountId: ObjectID! """ The default URL to redirect customers to when they click on the portal's link to return to the app. """ returnUrl: String! } input CreateBillingPortalSessionInput { accountId: ObjectID! """ The default URL to redirect customers to when they click on the portal's link to return to the app. """ returnUrl: String! } input CreateBuildScheduleInput { accountId: ObjectID! name: String! repetitionRate: BuildScheduleRepetitionRate startAt: DateTime! } type CreateBuildSchedulePayload { buildSchedule: BuildSchedule! } input CreateCheckoutSessionInput { accountId: ObjectID! """ Checkout displays a back button and customers will be directed to this URL if they decide to cancel payment and return to the app. """ cancelUrl: String! optionalAddons: [SelfServeOptionalAddonInput!]! = [] """ One of: geo-growth, geo-starter. """ planCode: String! planInterval: SelfServePlanInterval! = Month """ The URL to which Stripe should send customers when payment or setup is complete. May contain {CHECKOUT_SESSION_ID} placeholder. """ successUrl: String! } type CreateCheckoutSessionPayload { checkoutSession: CheckoutSession! } input CreateCrawlUrlSegmentInput { crawlUrlFilter: CrawlUrlConnectionFilterInput! group: String = null name: String! projectId: ObjectID! skipReportsGeneration: Boolean = false } type CreateCrawlUrlSegmentPayload { segment: Segment! } input CreateCreditAllocationForSsoAccountInput { accountId: ObjectID! creditsAllocated: Int! endDate: DateTime! startDate: DateTime! } type CreateCreditAllocationForSsoAccountPayload { creditAllocation: CreditAllocation! } input CreateCreditReportExportInput { accountId: ObjectID! filter: CreditReportConnectionFilterInput } type CreateCreditReportExportPayload { creditReportExport: CreditReportExport! } input CreateCustomChartForCustomDashboardInput { customViewIds: [ObjectID!] metadata: JSONObject metric: String! type: CustomChartType! } input CreateCustomChartInput { customDashboardId: ObjectID! customViewIds: [ObjectID!] metadata: JSONObject metric: String! type: CustomChartType! } type CreateCustomChartPayload { customChart: CustomChart! } input CreateCustomDashboardCollectionInput { accountId: ObjectID! customDashboardIds: [ObjectID!] customViewIds: [ObjectID!] initCustomDashboards: [CustomDashboardType!] name: String! } type CreateCustomDashboardCollectionPayload { customDashboardCollection: CustomDashboardCollection! } input CreateCustomDashboardInput { accountId: ObjectID! customCharts: [CreateCustomChartForCustomDashboardInput!] customDashboardCollectionId: ObjectID customTables: [CreateCustomTableForCustomDashboardInput!] customViewIds: [ObjectID!] name: String! type: CustomDashboardType! } type CreateCustomDashboardPayload { customDashboard: CustomDashboard! } input CreateCustomMetricContainerGenerationInput { accountId: ObjectID! description: String """ If not provided, LLM will be used to judge if html is needed. """ htmlNeeded: Boolean metrics: [CustomMetricContainerGenerationMetricInput!] name: String testUrls: [CustomMetricContainerGenerationTestUrlInput!] } type CreateCustomMetricContainerGenerationPayload { customMetricContainerGeneration: CustomMetricContainerGeneration! } input CreateCustomMetricContainerInput { """ The id of the account that the custom metric container belongs to. """ accountId: ObjectID! containerParams: JSONObject description: String """ The display name of the custom metric container. It will be used to generate unique name for your container """ displayName: String inputType: CustomMetricContainerInputType! = DOM """ Unique name for the custom metric container. """ name: String requiresAiFeatures: Boolean """ Which resource types the container extracts metrics from. """ resourceTypes: [CustomMetricContainerResourceType!] runFirst: Boolean } type CreateCustomMetricContainerPayload { customMetricContainer: CustomMetricContainer! } input CreateCustomMetricContainerVersionInlineInput { allowedRenderingResources: [CustomMetricContainerRenderingResource!] """ The id of the CustomMetricContainer to create a new version for. """ customMetricContainerId: ObjectID! """ Name of the exported handler function in the source. Defaults to `myHandler` if not provided. """ handlerName: String """ JavaScript source for the handler function. Max 256 KiB. """ handlerSource: String! navigationTimeoutMs: Int """ JSON Schema 7 describing the metrics produced by the handler. """ outputSchema: JSONObject! """ Table type the metrics are written to. Defaults to the container's table type or `dc:crawler:step` if not set. """ tableType: CustomMetricContainerTableType } type CreateCustomMetricContainerVersionInlinePayload { customMetricContainerVersion: CustomMetricContainerVersion! } input CreateCustomMetricContainerVersionInput { allowedRenderingResources: [CustomMetricContainerRenderingResource!] customMetricContainerId: ObjectID! navigationTimeoutMs: Int } type CreateCustomMetricContainerVersionPayload { customMetricContainerVersion: CustomMetricContainerVersion! } input CreateCustomMetricUploadContainerInput { """ The id of the account that the custom metric upload container belongs to. """ accountId: ObjectID! description: String """ Unique name for the custom metric upload container. """ name: String! uploadTemplate: JSONObject! } type CreateCustomMetricUploadContainerPayload { customMetricUploadContainer: CustomMetricUploadContainer! } input CreateCustomReportTemplateInput { defaultView: CustomReportTemplateView description: String filter: JSONObject! metricsGroupings: [CustomReportTemplateMetricsGroupingInput!] = null name: String! orderBy: [JSONObject!] = null projectId: ObjectID! reportTemplateCode: String! = "all_pages" """ When true, this report is still segmentable but no per-Segment trend is generated for it. Defaults to false. """ skipSegmentGeneration: Boolean """ Inherited from the ReportTemplate if not provided. """ totalSign: Int """ Inherited from the ReportTemplate if not provided. """ totalWeight: Float } type CreateCustomReportTemplatePayload { customReportTemplate: CustomReportTemplate! } input CreateCustomTableForCustomDashboardInput { columns: [String!]! filter: JSONObject orderBy: [JSONObject!] type: CustomTableType! } input CreateCustomTableInput { columns: [String!]! customDashboardId: ObjectID! filter: JSONObject orderBy: [JSONObject!] type: CustomTableType! } type CreateCustomTablePayload { customTable: CustomTable! } input CreateCustomViewsInput { customViews: [CustomViewInput!]! = [] } type CreateCustomViewsPayload { customViews: [CustomView!]! } input CreateElementOptimisationRequestInput { """ Crawl.id for which you want to request elements optimisation. """ crawlId: ObjectID! """ CrawlSearchQuery.searchQueryDigest values which you want to use for the element optimisation. By default, it's the top 5 search queries ordered by clicks. """ searchQueryDigests: [String!] """ CrawlUrl.urlDigest for which you want to request elements optimisation. """ urlDigest: String! } type CreateElementOptimisationRequestPayload { elementOptimisationRequest: ElementOptimisationRequest! } input CreateGoogleAnalytics4ProjectPropertyInput { conversionEvents: [GoogleAnalytics4ConversionEventInput!] googleConnectionId: ObjectID! lastNDays: Int! = 90 minimumSessions: Int! = 0 minimumViews: Int! = 1 projectId: ObjectID! propertyName: String! source: GoogleAnalytics4SourceType! = GoogleOrganicSearchLandingPages } type CreateGoogleAnalytics4ProjectPropertyPayload { googleAnalytics4ProjectProperty: GoogleAnalytics4ProjectProperty! } input CreateGoogleConnectionInput { """ Where the browser returns after Google consent. When the user cancels or Google reports an error, a Lumar app URL gets `googleConnectionError=cancelled` or `googleConnectionError=failed` appended and no connection is made. Any other URL shows an error page instead. """ redirectUrl: String! } type CreateGoogleConnectionPayload { """ URL to consent page landing. """ authUrl: String! } input CreateGoogleSearchConsoleAiVisibilityPropertyInput { accountId: ObjectID! aiVisibilityProjectId: ObjectID! country: String excludeQueries: [String!] googleConnectionId: ObjectID! includeQueries: [String!] lastNDays: Int minClicks: Int permissionLevel: String searchType: GoogleSearchConsoleSearchType siteUrl: String! } type CreateGoogleSearchConsoleAiVisibilityPropertyPayload { googleSearchConsoleAiVisibilityProperty: GoogleSearchConsoleAiVisibilityProperty! } input CreateGoogleSearchConsoleConfigurationInput { country: String = null excludeQueries: [String!] = [] includeQueries: [String!] = [] lastNDays: Int! = 30 minClicks: Int! = 0 projectId: ObjectID! queryMaxLength: Int queryMinLength: Int searchQueriesLimitPerProperty: Int! = 50000 searchQueriesMinClicks: Int! = 1 searchType: GoogleSearchConsoleSearchType! = Web useSearchConsolePropertyDomainsAsStartUrls: Boolean! = false } type CreateGoogleSearchConsoleConfigurationPayload { googleSearchConsoleConfiguration: GoogleSearchConsoleConfiguration! } input CreateGoogleSearchConsolePropertyInput { googleConnectionId: ObjectID! permissionLevel: String projectId: ObjectID! siteUrl: String! } type CreateGoogleSearchConsolePropertyPayload { googleSearchConsoleProperty: GoogleSearchConsoleProperty! } input CreateHealthScoreTestInput { absoluteThreshold: Float! = 0.5 automaticThresholdAcceptanceWhenTestResultIsBetter: TestAutoThresholdAcceptance automaticThresholdAcceptanceWhenTestResultIsWorse: TestAutoThresholdAcceptance automaticThresholdEnabled: Boolean! = false createJiraTicketOnFailure: Boolean! = false jiraTicketCustomNote: String relativeThreshold: Int = 10 reportCategoryCode: String! segmentId: ObjectID severity: Severity! = Fail testSuiteId: ObjectID! thresholdPredicate: ThresholdPredicate! = GreaterThanOrEqual thresholdType: ThresholdType! = Relative } type CreateHealthScoreTestPayload { healthScoreTest: HealthScoreTest! } type CreateHealthScoreTestsPayload { healthScoreTests: [HealthScoreTest!]! } input CreateJiraIntegrationInput { jiraAuthenticationId: ObjectID! jiraIssueTypeId: String! jiraProjectId: String! name: String! } type CreateJiraIntegrationPayload { jiraIntegration: JiraIntegration! } input CreateLegacyTaskExternalLinkInput { """ Additional Jira fields to set when creating the issue. Keys are Jira field IDs (e.g. 'priority', 'components', 'customfield_10100'). Values must match the Jira field format (e.g. { id: '1' } for priority, ['label1'] for labels). """ additionalFields: JSONObject jiraAuthenticationId: ObjectID! """ The issue ID or key of the Jira issue to link to """ jiraIssueIdOrKey: String """ The summary of the Jira issue that will be used to create the issue """ jiraIssueSummary: String """ The field ID of the Jira issue type description field. If not provided, the default 'description' field will be used. """ jiraIssueTypeDescriptionField: String """ The issue type ID of the Jira issue that will be used to create the issue """ jiraIssueTypeId: String """ The project ID of the Jira project that will be used to create the issue """ jiraProjectId: String legacyTaskId: ObjectID! """ Whether to use the AI ticket details to create the issue. Only existings will be used, we won't generate new ones. """ useAiTicketDetails: Boolean } type CreateLegacyTaskExternalLinkPayload { legacyTaskExternalLink: LegacyTaskExternalLink! } type CreateLegacyTaskPayload { legacyTask: LegacyTask! } """ Registers a log source on an account. No credentials are collected: Lumar support builds the delivery pipeline after the connection is created and then sets its status. """ input CreateLogManagerConnectionInput { accountId: ObjectID! """ Name to identify the log source by, e.g. `Acme Corp — CDN production`. """ name: String! """ The CDN or web host the logs come from. Cannot be changed afterwards. """ provider: LogManagerProvider! } type CreateLogManagerConnectionPayload { logManagerConnection: LogManagerConnection! } """ Attaches an account's log source to a project and sets how its logs are queried. """ input CreateLogManagerProjectSettingsInput { aiUaNotRegexp: String = null aiUaRegexp: String! = ".*(GPTBot|ClaudeBot|PerplexityBot|Google-Extended|ChatGPT-User|Meta-ExternalAgent|Applebot-Extended|OAI-SearchBot|Google-CloudVertexBot|Claude-Web|PerplexityUser|GrokBot|Grok-DeepSearch|DeepSeekBot).*" baseUrl: String @deprecated(reason: "Log paths will always resolve against the project's primary domain. Scheduled for removal.") dateRange: Int! = 30 desktopUaNotRegexp: String = ".*Mobile.*" desktopUaRegexp: String! = ".*Googlebot.*http://www.google.com/bot.html.*" enabled: Boolean! = true logManagerConnectionId: ObjectID! maxRows: Int! = 10000000 @deprecated(reason: "Log extraction never applied this cap and never will. Scheduled for removal.") mobileUaNotRegexp: String = null mobileUaRegexp: String! = ".*Mobile.*Googlebot.*http://www.google.com/bot.html.*" projectId: ObjectID! useLastCrawlDate: Boolean! = false @deprecated(reason: "No longer used: logs are always read for the last `dateRange` complete days. Scheduled for removal.") } type CreateLogManagerProjectSettingsPayload { logManagerConnection: LogManagerConnection! logManagerProjectSettings: LogManagerProjectSettings! project: Project! } input CreateLogzioConnectionInput { label: String! token: String! } type CreateLogzioConnectionPayload { logzioConnection: LogzioConnection! } input CreateLogzioProjectQueryInput { aiUaNotRegexp: String = null aiUaRegexp: String! = ".*(GPTBot|ClaudeBot|PerplexityBot|Google-Extended|ChatGPT-User|Meta-ExternalAgent|Applebot-Extended|OAI-SearchBot|Google-CloudVertexBot|Claude-Web|PerplexityUser|GrokBot|Grok-DeepSearch|DeepSeekBot).*" baseUrl: String dateRange: Int! = 30 desktopUaNotRegexp: String = ".*Mobile.*" desktopUaRegexp: String! = ".*Googlebot.*http://www.google.com/bot.html.*" domainFieldName: String = null enabled: Boolean! = true logzioConnectionId: ObjectID! maxRows: Int! = 10000000 mobileUaNotRegexp: String = null mobileUaRegexp: String! = ".*Mobile.*Googlebot.*http://www.google.com/bot.html.*" pathFieldName: String! = "request" projectId: ObjectID! queryFilter: JSONObject useLastCrawlDate: Boolean! = false userAgentFieldName: String! = "agent" } type CreateLogzioProjectQueryPayload { logzioProjectQuery: LogzioProjectQuery! } input CreateMajesticConfigurationInput { enabled: Boolean! = false maxRows: Int! projectId: ObjectID! useHistoricData: Boolean! = false useRootDomain: Boolean! = false } type CreateMajesticConfigurationPayload { majesticConfiguration: MajesticConfiguration! } input CreatePageTypeInput { description: String name: String! projectId: ObjectID! rules: [PageTypeRuleInput!]! } type CreatePageTypePayload { pageType: PageType! } input CreateProjectAiVisibilitySettingsInput { aiVisibilityProjectId: ObjectID! projectId: ObjectID! } type CreateProjectAiVisibilitySettingsPayload { projectAiVisibilitySettings: ProjectAiVisibilitySettings! } input CreateProjectInput { accountId: ObjectID! """ Account tags to apply to the new project. Requires the admin role, the same as tagging an existing project. """ accountTagIds: [ObjectID!] alertEmails: [String!] alertSettingCode: AlertSettingCode! = Always apiCallbackHeaders: [APICallbackHeaderInput!]! = [] apiCallbackUrl: String = null applyCustomHeadersToNavigationRequestsOnly: Boolean! = false autoFinalizeOnCrawlLimits: Boolean! = true block3rdPartyCookies: Boolean! = false compareToCrawl: CompareToCrawlType! = LastCrawl crawl4xxHreflangLinks: Boolean! = false crawl4xxLinks: Boolean! = false crawlDisallowedUrls1stLevel: Boolean! = false crawlHyperlinksExternal: Boolean! = false crawlHyperlinksInternal: Boolean! = true crawlImagesExternal: Boolean! = false crawlImagesInternal: Boolean! = false crawlNofollowHyperlinks: Boolean! = true crawlNonHtml: Boolean! = false crawlNotIncluded1stLevel: Boolean! = false crawlRedirectsExternal: Boolean! = true crawlRedirectsInternal: Boolean! = true crawlRelAmphtmlExternal: Boolean! = false crawlRelAmphtmlInternal: Boolean! = true crawlRelCanonicalsExternal: Boolean! = false crawlRelCanonicalsInternal: Boolean! = true crawlRelHreflangsExternal: Boolean! = false crawlRelHreflangsInternal: Boolean! = true crawlRelMobileExternal: Boolean! = false crawlRelMobileInternal: Boolean! = true crawlRelNextPrevExternal: Boolean! = false crawlRelNextPrevInternal: Boolean! = true crawlRobotsTxtNoindex: Boolean! = true crawlScriptsExternal: Boolean! = false crawlScriptsInternal: Boolean! = false crawlStylesheetsExternal: Boolean! = false crawlStylesheetsInternal: Boolean! = false crawlTestSite: Boolean! = false crawlTypes: [CrawlType!]! = [Web] customDns: [CustomDnsSettingInput!]! = [] customExtractions: [CustomExtractionSettingInput!]! = [] customRequestHeaders: [CustomRequestHeaderInput!]! = [] dataLayerName: String = null dataOnlyCrawlTypes: [CrawlType!] discoverSitemapsInRobotsTxt: Boolean! = true """ Includes paginated pages, those with a `rel=next` or `rel=prev` link, in the duplicate checks for titles, descriptions, body content and pages. Defaults to false, which leaves them out. """ duplicatePagesIncludePaginatedPages: Boolean! = false duplicatePrecision: Float! = 3 emptyPageThreshold: Int! = 512 enableKeyValueStore: Boolean! = false excludeUrlPatterns: [String!]! = [] excludedDatasources: [DatasourceCode!] failureRateLimitEnabled: Boolean! = false failureRateLookbackWindow: Int! = 300 failureRateThreshold: Float! = 50 flattenIframes: Boolean! = true flattenShadowDom: Boolean! = true gaDateRange: Int! = 30 ignoreInvalidSSLCertificate: Boolean! = false ignoreRobotsForNavigationRequests: Boolean! = false ignoreXRobots: Boolean! = false includeBestPractices: Boolean! = true includeHttpAndHttps: Boolean! = false includeSubdomains: Boolean! = false includeUrlPatterns: [String!]! = [] industryCode: String limitLevelsMax: Int limitPagesMax: Int limitUrlsMax: Int @deprecated(reason: "Use limitLevelsMax instead") locationCode: LocationCode! = Default logSummaryRequestsHigh: Int! = 100 logSummaryRequestsLow: Int! = 10 maxBodyContentLength: Int! = 51200 maxDescriptionLength: Int! = 230 maxFollowedExternalLinks: Int! = 10 maxHtmlSize: Int! = 204800 maxLinks: Int! = 250 maxLoadTime: Float! = 3 maxRedirections: Int! = 4 maxTitleWidth: Int! = 600 maxUrlLength: Int! = 1024 maximumCrawlRate: Float! = 3 maximumCrawlRateAdvanced: [AdvancedCrawlRateInput!]! = [] minDescriptionLength: Int! = 50 minTitleLength: Int! = 10 minVisits: Int! = 2 mobileHomepageUrl: String = null mobileUrlPattern: String = null mobileUserAgentCode: String! = "googlebot-smartphone" mobileViewportHeight: Int mobileViewportWidth: Int name: String! primaryDomain: String! renderTimeout: Int renderWithImages: Boolean! = false rendererBlockAds: Boolean! = true rendererBlockAnalytics: Boolean! = true rendererBlockCustom: [String!]! = [] rendererCookies: [RendererCookieInput!]! = [] rendererJsString: String = null rendererJsUrls: [String!]! = [] renderingRobotsCheckMode: RenderingRobotsCheckMode! = BlockDisallowed robotsOverwrite: String = null secondaryDomains: [String!]! = [] selectedWcagLevel: WcagLevel! = AAA selectedWcagVersion: Float! = 2.2 startUrls: [String!]! = [] storeLighthouseJSON: Boolean! = false targetMaxUncrawledUrlsCount: Int! = 500000 testSiteDomain: String = null testSitePassword: String = null testSiteUsername: String = null thinPageThreshold: Int! = 3072 """ Report setting for the topic clustering reports: a topic counts as thin when its `primaryIndexableUrlCountVsMedian` is below this value, that is, when it has fewer indexable primary URLs than this share of the median topic. Defaults to 0.5. """ thinTopicThreshold: Float! = 0.5 """ Report setting for the topic clustering reports: a page counts as ambiguous between its two best topics when its `topicScoreGap` is below this value. The gap is in standard deviations, not raw cosine similarity. Defaults to 0.15. """ topicAmbiguityGapThreshold: Float! = 0.15 urlRewriteQueryParameters: [String!]! = [] urlRewriteRules: [UrlRewriteRuleInput!]! = [] urlRewriteStripFragment: Boolean! = true urlSampling: [UrlSamplingInput!]! = [] useMobileSettings: Boolean! = false useNewHeadlessMode: Boolean! = false useRenderer: Boolean! = false useRobotsOverwrite: Boolean! = false useStealthMode: Boolean! = false useUrlRewriteRules: Boolean! = false userAgentCode: String! = "googlebot-smartphone" userAgentIsMobile: Boolean = null userAgentMobileIsMobile: Boolean = null userAgentString: String = null userAgentStringMobile: String = null userAgentToken: String = null userAgentTokenMobile: String = null viewportHeight: Int viewportWidth: Int } type CreateProjectPayload { project: Project! } input CreateReportDownloadForCustomReportInput { crawlAccessibilityIssueFilter: CrawlAccessibilityIssueConnectionFilterInput crawlAccessibilityIssueInstanceFilter: CrawlAccessibilityIssueInstanceConnectionFilterInput crawlAiVisibilityPromptFilter: CrawlAiVisibilityPromptConnectionFilterInput crawlAnalyticsAiReferralFilter: CrawlAnalyticsAiReferralConnectionFilterInput crawlDuplicateUrlFilter: CrawlDuplicateUrlConnectionFilterInput crawlHreflangsFilter: CrawlHreflangsConnectionFilterInput crawlId: ObjectID! crawlLinkFilter: CrawlLinkConnectionFilterInput crawlLinkedDomainFilter: CrawlLinkedDomainConnectionFilterInput crawlLogSummariesAiBotFilter: CrawlLogSummariesAiBotConnectionFilterInput crawlOriginFilter: CrawlOriginConnectionFilterInput crawlSearchQueryFilter: CrawlSearchQueryConnectionFilterInput crawlSearchQueryWithLandingPagesFilter: CrawlSearchQueryWithLandingPagesConnectionFilterInput crawlSiteSpeedAuditFilter: CrawlSiteSpeedAuditConnectionFilterInput crawlSiteSpeedAuditItemFilter: CrawlSiteSpeedAuditItemConnectionFilterInput crawlSiteSpeedAuditOpportunityFilter: CrawlSiteSpeedAuditOpportunityConnectionFilterInput crawlSitemapFilter: CrawlSitemapConnectionFilterInput crawlStructuredDataBlockFilter: CrawlStructuredDataBlockConnectionFilterInput crawlStructuredDataBreakdownFilter: CrawlStructuredDataBreakdownConnectionFilterInput crawlStructuredDataIssueFilter: CrawlStructuredDataIssueConnectionFilterInput crawlTopicFilter: CrawlTopicConnectionFilterInput crawlUncrawledUrlFilter: CrawlUncrawledUrlConnectionFilterInput crawlUniqueLinkFilter: CrawlUniqueLinkConnectionFilterInput crawlUrlFilter: CrawlUrlConnectionFilterInput crawlWebCrawlDepthFilter: CrawlWebCrawlDepthConnectionFilterInput customReportTemplateId: ObjectID! fileName: String filter: JSONObject outputType: ReportDownloadOutputType! = CsvZip reportTypeCode: ReportTypeCode! segmentId: ObjectID """ If selectedMetrics are specified, generated download will only include those metrics. """ selectedMetrics: [String!] """ If unwindMetrics are specified, generated download will create a separate row for each array value, with object array items also expanded into separate columns. """ unwindMetrics: [String!] } type CreateReportDownloadForCustomReportPayload { reportDownload: ReportDownload! } input CreateReportDownloadInput { aggregateCode: String crawlAccessibilityIssueFilter: CrawlAccessibilityIssueConnectionFilterInput crawlAccessibilityIssueInstanceFilter: CrawlAccessibilityIssueInstanceConnectionFilterInput crawlAiVisibilityPromptFilter: CrawlAiVisibilityPromptConnectionFilterInput crawlAnalyticsAiReferralFilter: CrawlAnalyticsAiReferralConnectionFilterInput crawlDuplicateUrlFilter: CrawlDuplicateUrlConnectionFilterInput crawlHreflangsFilter: CrawlHreflangsConnectionFilterInput crawlId: ObjectID! crawlLinkFilter: CrawlLinkConnectionFilterInput crawlLinkedDomainFilter: CrawlLinkedDomainConnectionFilterInput crawlLogSummariesAiBotFilter: CrawlLogSummariesAiBotConnectionFilterInput crawlOriginFilter: CrawlOriginConnectionFilterInput crawlSearchQueryFilter: CrawlSearchQueryConnectionFilterInput crawlSearchQueryWithLandingPagesFilter: CrawlSearchQueryWithLandingPagesConnectionFilterInput crawlSiteSpeedAuditFilter: CrawlSiteSpeedAuditConnectionFilterInput crawlSiteSpeedAuditItemFilter: CrawlSiteSpeedAuditItemConnectionFilterInput crawlSiteSpeedAuditOpportunityFilter: CrawlSiteSpeedAuditOpportunityConnectionFilterInput crawlSitemapFilter: CrawlSitemapConnectionFilterInput crawlStructuredDataBlockFilter: CrawlStructuredDataBlockConnectionFilterInput crawlStructuredDataBreakdownFilter: CrawlStructuredDataBreakdownConnectionFilterInput crawlStructuredDataIssueFilter: CrawlStructuredDataIssueConnectionFilterInput crawlTopicFilter: CrawlTopicConnectionFilterInput crawlUncrawledUrlFilter: CrawlUncrawledUrlConnectionFilterInput crawlUniqueLinkFilter: CrawlUniqueLinkConnectionFilterInput crawlUrlFilter: CrawlUrlConnectionFilterInput crawlWebCrawlDepthFilter: CrawlWebCrawlDepthConnectionFilterInput fileName: String filter: JSONObject outputType: ReportDownloadOutputType! = CsvZip reportTemplateCode: String! reportTypeCode: ReportTypeCode! segmentId: ObjectID """ If selectedMetrics are specified, generated download will only include those metrics. """ selectedMetrics: [String!] """ If unwindMetrics are specified, generated download will create a separate row for each array value, with object array items also expanded into separate columns. """ unwindMetrics: [String!] } type CreateReportDownloadPayload { reportDownload: ReportDownload! } input CreateReportStatLegacyTaskInput { actions: String aggregateCode: String assignedTo: [String!] crawlId: ObjectID! deadlineAt: DateTime description: String discoveredAt: DateTime dismissed: Boolean! = false filters: JSONObject fixedAt: DateTime howToFix: String identified: Int notifyAssignees: Boolean! = false """ By default, position will be equal to the count of tasks with position plus 1. Higher values are ignored and replaced with the default value. """ position: Int priority: LegacyTaskPriority! = Low reportTemplateCode: String! reportTypeCode: ReportTypeCode! segmentId: ObjectID status: LegacyTaskStatus = null title: String! type: LegacyTaskType } input CreateReportTemplateOverrideInput { aggregateCode: String projectId: ObjectID! reportTemplateCode: String! totalSign: Int! totalWeight: Float! } type CreateReportTemplateOverridePayload { reportTemplateOverride: ReportTemplateOverride! } input CreateScheduleInput { nextRunTime: DateTime! projectId: ObjectID! scheduleFrequency: ScheduleFrequencyCode! = OneTime } type CreateSchedulePayload { schedule: Schedule! } """ A new schema template, added to the project's template set. """ input CreateSchemaTemplateInput { """ The name shown to customers, such as `Product and variants`. """ name: String! """ The page type whose pages the template applies to. """ pageTypeId: ObjectID! """ The project the template belongs to. Its template set is created on the first template. """ projectId: ObjectID! """ The template's rules, all new. """ rules: [SchemaTemplateRuleInput!]! } """ The result of creating a schema template. """ type CreateSchemaTemplatePayload { """ The template as saved, with its minted ids. """ schemaTemplate: SchemaTemplate! schemaTemplateSet: SchemaTemplateSet! """ Problems that did not stop the save, such as a schema.org type the validator does not know. """ warnings: [SchemaTemplateDiagnostic!]! } """ A project's first schema template set. """ input CreateSchemaTemplateSetInput { """ The project the template set belongs to. """ projectId: ObjectID! """ The templates, all new, so none carries a `templateId`. """ templates: [SchemaTemplateInput!]! } """ The result of creating a project's schema template set. """ type CreateSchemaTemplateSetPayload { schemaTemplateSet: SchemaTemplateSet! """ Problems that did not stop the save, such as a schema.org type the validator does not know. """ warnings: [SchemaTemplateDiagnostic!]! } input CreateSelfServeAccountInput { """ Checkout displays a back button and customers will be directed to this URL if they decide to cancel payment and return to the app. """ cancelUrl: String! """ One of: geo-growth, geo-starter. """ planCode: String! planInterval: SelfServePlanInterval! = Month recaptchaToken: String! """ The URL to which Stripe should send customers when payment or setup is complete. May contain {CHECKOUT_SESSION_ID} placeholder. """ successUrl: String! """ Work email address. An address from a free or disposable email provider, or with a + alias, is refused with USER_EMAIL_NOT_BUSINESS_ADDRESS. """ userEmail: String! """ If provided, the value will be split into User firstName and lastName. """ userName: String userPassword: String! userTermsAgreed: Boolean! } type CreateSelfServeAccountPayload { checkoutSession: CheckoutSession! """ Restricted setup credential. Cannot authenticate normal API requests or read scan results. """ onboardingToken: String } input CreateServiceAccountInput { accountId: ObjectID! description: String name: String! roleCode: RoleCode! } input CreateServiceAccountIpRangeInput { cidr: String! label: String serviceAccountId: ObjectID! } type CreateServiceAccountIpRangePayload { serviceAccountIpRange: ServiceAccountIpRange! } input CreateServiceAccountKeyInput { expiresAt: DateTime name: String serviceAccountId: ObjectID! } type CreateServiceAccountPayload { serviceAccount: ServiceAccount! } input CreateSessionUsingUserKeyInputType { name: String secret: String! userKeyId: ObjectID! } input CreateSessionUsingUsernameInputType { name: String password: String! """ Email. """ username: String! } input CreateSignedUrlFileUploadInput { crawlTypeCode: CrawlType! """ Required for the CustomMetricsCsv type, ignored otherwise. """ customMetricUploadContainerId: ObjectID enabled: Boolean! = true fileName: String! projectId: ObjectID! projectUploadType: ProjectUploadType! uploadBaseDomain: String uploadTemplate: JSONObject } type CreateSignedUrlFileUploadPayload { signedS3UploadUrl: String! urlFileUpload: UrlFileUpload! } input CreateSinglePageRequesterRequestInput { accountId: ObjectID = null """ AI Visibility project whose attached Google Search Console properties should be forwarded to the requested custom metric containers. Must belong to the same account as the request. """ aiVisibilityProjectId: ObjectID crawlSettings: SinglePageRequesterCrawlSettingsInput """ Custom HTML to use instead of the live page content. The page will still navigate to the URL for correct origin context. """ customHtml: String customMetricContainerGenerationId: ObjectID """ List of CustomMetricContainers to include in the execution """ customMetricContainerIds: [ObjectID!] """ List of CustomMetricContainers to include with optional request-scoped parameter overrides. """ customMetricContainers: [SinglePageRequesterCustomMetricContainerInput!] """ Module to use as a base when project is not specified. """ moduleCode: ModuleCode """ If true, the request runs only the explicitly-requested custom metric containers — module/project containers are not auto-attached — and fails if any requested container cannot be included (e.g. AI features disabled). Used by AI Visibility ContentEvals page runs. """ onlyRequestedContainers: Boolean projectId: ObjectID = null """ If true, metrics won't be extracted. Only the screenshot will be taken. """ skipContainers: Boolean skipLinks: Boolean! = true """ If true, the screenshot will not be taken. """ skipScreenshots: Boolean url: String! } type CreateSinglePageRequesterRequestPayload { singlePageRequesterRequest: SinglePageRequesterRequest! } input CreateSiteSpeedProjectInput { accountId: ObjectID! """ Account tags to apply to the new project. Requires the admin role, the same as tagging an existing project. """ accountTagIds: [ObjectID!] alertEmails: [String!] alertSettingCode: AlertSettingCode! = Always apiCallbackHeaders: [APICallbackHeaderInput!]! = [] apiCallbackUrl: String = null applyCustomHeadersToNavigationRequestsOnly: Boolean! = false autoFinalizeOnCrawlLimits: Boolean! = true block3rdPartyCookies: Boolean! = false compareToCrawl: CompareToCrawlType! = LastCrawl crawl4xxHreflangLinks: Boolean! = false crawl4xxLinks: Boolean! = false crawlDisallowedUrls1stLevel: Boolean! = false crawlHyperlinksExternal: Boolean! = false crawlHyperlinksInternal: Boolean! = true crawlImagesExternal: Boolean! = false crawlImagesInternal: Boolean! = false crawlNofollowHyperlinks: Boolean! = true crawlNonHtml: Boolean! = false crawlNotIncluded1stLevel: Boolean! = false crawlRedirectsExternal: Boolean! = true crawlRedirectsInternal: Boolean! = true crawlRelAmphtmlExternal: Boolean! = false crawlRelAmphtmlInternal: Boolean! = true crawlRelCanonicalsExternal: Boolean! = false crawlRelCanonicalsInternal: Boolean! = true crawlRelHreflangsExternal: Boolean! = false crawlRelHreflangsInternal: Boolean! = true crawlRelMobileExternal: Boolean! = false crawlRelMobileInternal: Boolean! = true crawlRelNextPrevExternal: Boolean! = false crawlRelNextPrevInternal: Boolean! = true crawlRobotsTxtNoindex: Boolean! = true crawlScriptsExternal: Boolean! = false crawlScriptsInternal: Boolean! = false crawlStylesheetsExternal: Boolean! = false crawlStylesheetsInternal: Boolean! = false crawlTestSite: Boolean! = false crawlTypes: [CrawlType!]! = [Web] customDns: [CustomDnsSettingInput!]! = [] customExtractions: [CustomExtractionSettingInput!]! = [] customRequestHeaders: [CustomRequestHeaderInput!]! = [] dataLayerName: String = null dataOnlyCrawlTypes: [CrawlType!] discoverSitemapsInRobotsTxt: Boolean! = true """ Includes paginated pages, those with a `rel=next` or `rel=prev` link, in the duplicate checks for titles, descriptions, body content and pages. Defaults to false, which leaves them out. """ duplicatePagesIncludePaginatedPages: Boolean! = false duplicatePrecision: Float! = 3 emptyPageThreshold: Int! = 512 enableKeyValueStore: Boolean! = false excludeUrlPatterns: [String!]! = [] excludedDatasources: [DatasourceCode!] failureRateLimitEnabled: Boolean! = false failureRateLookbackWindow: Int! = 300 failureRateThreshold: Float! = 50 flattenIframes: Boolean! = true flattenShadowDom: Boolean! = true gaDateRange: Int! = 30 ignoreInvalidSSLCertificate: Boolean! = false ignoreRobotsForNavigationRequests: Boolean! = true ignoreXRobots: Boolean! = false includeBestPractices: Boolean! = true includeHttpAndHttps: Boolean! = false includeSubdomains: Boolean! = false includeUrlPatterns: [String!]! = [] industryCode: String limitLevelsMax: Int limitPagesMax: Int limitUrlsMax: Int @deprecated(reason: "Use limitLevelsMax instead") locationCode: LocationCode! = Default logSummaryRequestsHigh: Int! = 100 logSummaryRequestsLow: Int! = 10 maxBodyContentLength: Int! = 51200 maxDescriptionLength: Int! = 230 maxFollowedExternalLinks: Int! = 10 maxHtmlSize: Int! = 204800 maxLinks: Int! = 250 maxLoadTime: Float! = 3 maxRedirections: Int! = 4 maxTitleWidth: Int! = 600 maxUrlLength: Int! = 1024 maximumCrawlRate: Float! = 3 maximumCrawlRateAdvanced: [AdvancedCrawlRateInput!]! = [] minDescriptionLength: Int! = 50 minTitleLength: Int! = 10 minVisits: Int! = 2 mobileHomepageUrl: String = null mobileUrlPattern: String = null mobileUserAgentCode: String! = "lighthouse-mobile" mobileViewportHeight: Int mobileViewportWidth: Int name: String! primaryDomain: String! renderTimeout: Int renderWithImages: Boolean! = false rendererBlockAds: Boolean! = false rendererBlockAnalytics: Boolean! = true rendererBlockCustom: [String!]! = [] rendererCookies: [RendererCookieInput!]! = [] rendererJsString: String = null rendererJsUrls: [String!]! = [] renderingRobotsCheckMode: RenderingRobotsCheckMode! = RequestDisallowed robotsOverwrite: String = null secondaryDomains: [String!]! = [] selectedWcagLevel: WcagLevel! = AAA selectedWcagVersion: Float! = 2.2 startUrls: [String!]! = [] storeLighthouseJSON: Boolean! = false targetMaxUncrawledUrlsCount: Int! = 500000 testSiteDomain: String = null testSitePassword: String = null testSiteUsername: String = null thinPageThreshold: Int! = 3072 """ Report setting for the topic clustering reports: a topic counts as thin when its `primaryIndexableUrlCountVsMedian` is below this value, that is, when it has fewer indexable primary URLs than this share of the median topic. Defaults to 0.5. """ thinTopicThreshold: Float! = 0.5 """ Report setting for the topic clustering reports: a page counts as ambiguous between its two best topics when its `topicScoreGap` is below this value. The gap is in standard deviations, not raw cosine similarity. Defaults to 0.15. """ topicAmbiguityGapThreshold: Float! = 0.15 urlRewriteQueryParameters: [String!]! = [] urlRewriteRules: [UrlRewriteRuleInput!]! = [] urlRewriteStripFragment: Boolean! = true urlSampling: [UrlSamplingInput!]! = [] useMobileSettings: Boolean! = false useNewHeadlessMode: Boolean! = false useRenderer: Boolean! = true useRobotsOverwrite: Boolean! = false useStealthMode: Boolean! = false useUrlRewriteRules: Boolean! = false userAgentCode: String! = "lighthouse-mobile" userAgentIsMobile: Boolean = null userAgentMobileIsMobile: Boolean = null userAgentString: String = null userAgentStringMobile: String = null userAgentToken: String = null userAgentTokenMobile: String = null viewportHeight: Int viewportWidth: Int } input CreateSiteSpeedTestSuiteInput { accountId: ObjectID! """ Account tags to apply to the new test suite. Requires the admin role, the same as tagging an existing project. """ accountTagIds: [ObjectID!] alertEmails: [String!] applyCustomHeadersToNavigationRequestsOnly: Boolean! = false automaticThreshold: Boolean! = false automaticThresholdEnabledForAll: Boolean! = false block3rdPartyCookies: Boolean! = false crawl4xxHreflangLinks: Boolean! = false crawl4xxLinks: Boolean! = false crawlImagesInternal: Boolean! = false crawlRate: Float! = 3 crawlScriptsExternal: Boolean! = false crawlScriptsInternal: Boolean! = false crawlStylesheetsExternal: Boolean! = false crawlStylesheetsInternal: Boolean! = false crawlTypes: [TestSuiteCrawlType!]! = [List] customDns: [CustomDnsSettingInput!] customExtractions: [CustomExtractionSettingInput!] customHeaderUserAgent: String customHeaderUserAgentShort: String """ Includes paginated pages, those with a `rel=next` or `rel=prev` link, in the duplicate checks for titles, descriptions, body content and pages. Defaults to false, which leaves them out. """ duplicatePagesIncludePaginatedPages: Boolean! = false duplicatePrecision: Int! = 3 emptyPageThreshold: Int! = 512 flattenIframes: Boolean! = true flattenShadowDom: Boolean! = true healthScoreAutomaticThreshold: Boolean! = false healthScoreAutomaticThresholdEnabledForAll: Boolean! = false highLogSummaryRequests: Int! = 100 ignoreRobotsForNavigationRequests: Boolean! = true ignoreXRobots: Boolean! = false includeBestPractices: Boolean! = true limitPagesMax: Int! = 500 location: TestSuiteLocationCode! = Default lowLogSummaryRequests: Int! = 10 maxContentSize: Int! = 51200 maxDescriptionLength: Int! = 230 maxExternalLinks: Int! = 10 maxHtmlSize: Int! = 204800 maxLinks: Int! = 250 maxLoadTime: Float! = 3 maxRedirections: Int! = 4 maxTitleWidth: Int! = 600 maxUrlLength: Int! = 1024 minContentRatio: Float! = 0.1 minDescriptionLength: Int! = 50 minTitleLength: Int! = 10 mobileUserAgentCode: String mobileViewportHeight: Int mobileViewportWidth: Int name: String! rendererBlockAds: Boolean! = false rendererBlockAnalytics: Boolean! = false rendererBlockCustom: [String!] rendererCookies: [RendererCookieInput!]! = [] rendererJsString: String rendererJsUrls: [String!] renderingRobotsCheckMode: RenderingRobotsCheckMode! = RequestDisallowed robotsOverwrite: String selectedWcagLevel: WcagLevel! = AAA selectedWcagVersion: Float! = 2.2 sitePrimary: String! siteTest: String siteTestPass: String siteTestUser: String startUrls: [String!] thinPageThreshold: Int! = 3072 """ Report setting for the topic clustering reports: a topic counts as thin when its `primaryIndexableUrlCountVsMedian` is below this value, that is, when it has fewer indexable primary URLs than this share of the median topic. Defaults to 0.5. """ thinTopicThreshold: Float! = 0.5 """ Report setting for the topic clustering reports: a page counts as ambiguous between its two best topics when its `topicScoreGap` is below this value. The gap is in standard deviations, not raw cosine similarity. Defaults to 0.15. """ topicAmbiguityGapThreshold: Float! = 0.15 urlsExcluded: [String!] urlsIncluded: [String!] useNewHeadlessMode: Boolean! = false useRenderer: Boolean! = true useRobotsOverwrite: Boolean! = false userAgentCode: String = "lighthouse-mobile" userAgentIsMobile: Boolean = null userAgentMobileIsMobile: Boolean = null userAgentString: String = null userAgentStringMobile: String = null userAgentToken: String = null userAgentTokenMobile: String = null viewportHeight: Int viewportWidth: Int } input CreateSlackWebhookInput { alertTypes: [SlackAlertType!]! = [Pass, Warning, Fail] testSuiteId: ObjectID! url: String! } type CreateSlackWebhookPayload { slackWebhook: SlackWebhook! } input CreateSplunkConnectionInput { customProxy: String password: String! proxyCode: SplunkProxyCode url: String! username: String! } type CreateSplunkConnectionPayload { splunkConnection: SplunkConnection! } input CreateSplunkProjectQueryInput { baseUrl: String dateRange: Int! = 30 enabled: Boolean! = true projectId: ObjectID! query: String! splunkConnectionId: ObjectID! useLastCrawlDate: Boolean! = false } type CreateSplunkProjectQueryPayload { splunkProjectQuery: SplunkProjectQuery! } input CreateSsoAccountInput { active: Boolean! = true country: String = null customLogo: Upload = null name: String! ssoClientAccountId: Int! } type CreateSsoAccountPayload { account: Account! } input CreateSsoAccountSubscriptionInput { accountId: ObjectID! currency: Currency! planCode: String! """ Full list of settings to be included with the account subscription plan. """ planSettings: [AccountSubscriptionPlanSettingInput!] } type CreateSsoAccountSubscriptionPayload { accountSubscription: AccountSubscription! } input CreateSsoConnectionInput { accountId: ObjectID! connectionName: String! """ Apps a user provisioned through this connection starts with, copied onto the membership when it is created. Omit to leave new users unrestricted. """ defaultApps: [LumarApp!] defaultRoleCode: RoleCode domainAliases: [String!] fieldsMap: JSON """ Name of the SAML attribute carrying the user's group list (split on `;`). Defaults to `groups` (Okta convention) when omitted or `null`. Group-driven roles activate once the account has at least one group→role mapping; there is no separate opt-out — remove the mappings to disable. """ groupAttributeName: String idpinitiatedClientAuthorizequery: String idpinitiatedProtocol: String signInEndpoint: String! signOutEndpoint: String signingCert: String! userIdAttribute: String } type CreateSsoConnectionPayload { ssoConnection: SSOConnection! } input CreateTestInput { absoluteThreshold: Int! = 1 aggregateCode: String automaticThresholdAcceptanceWhenTestResultIsBetter: TestAutoThresholdAcceptance automaticThresholdAcceptanceWhenTestResultIsWorse: TestAutoThresholdAcceptance automaticThresholdEnabled: Boolean! = false createJiraTicketOnFailure: Boolean! = false customReportTemplateId: ObjectID jiraTicketCustomNote: String relativeThreshold: Int = 10 reportTemplateCode: String segmentId: ObjectID severity: Severity! = Fail testSuiteId: ObjectID! thresholdPredicate: ThresholdPredicate! = GreaterThanOrEqual thresholdType: ThresholdType! = Relative } type CreateTestPayload { test: Test! } input CreateTestSuiteEmailAlertInput { alertTypes: [EmailAlertType!]! = [Pass, Warning, Fail] email: String! testSuiteId: ObjectID! } type CreateTestSuiteEmailAlertPayload { testSuiteEmailAlert: TestSuiteEmailAlert! } input CreateTestSuiteInput { accountId: ObjectID! """ Account tags to apply to the new test suite. Requires the admin role, the same as tagging an existing project. """ accountTagIds: [ObjectID!] alertEmails: [String!] applyCustomHeadersToNavigationRequestsOnly: Boolean! = false automaticThreshold: Boolean! = false automaticThresholdEnabledForAll: Boolean! = false block3rdPartyCookies: Boolean! = false crawl4xxHreflangLinks: Boolean! = false crawl4xxLinks: Boolean! = false crawlRate: Float! = 3 crawlTypes: [TestSuiteCrawlType!]! = [List] customDns: [CustomDnsSettingInput!] customExtractions: [CustomExtractionSettingInput!] customHeaderUserAgent: String customHeaderUserAgentShort: String """ Includes paginated pages, those with a `rel=next` or `rel=prev` link, in the duplicate checks for titles, descriptions, body content and pages. Defaults to false, which leaves them out. """ duplicatePagesIncludePaginatedPages: Boolean! = false duplicatePrecision: Int! = 3 emptyPageThreshold: Int! = 512 flattenIframes: Boolean! = true flattenShadowDom: Boolean! = true healthScoreAutomaticThreshold: Boolean! = false healthScoreAutomaticThresholdEnabledForAll: Boolean! = false highLogSummaryRequests: Int! = 100 ignoreRobotsForNavigationRequests: Boolean! = false ignoreXRobots: Boolean! = false includeBestPractices: Boolean! = true limitPagesMax: Int! = 500 location: TestSuiteLocationCode! = Default lowLogSummaryRequests: Int! = 10 maxContentSize: Int! = 51200 maxDescriptionLength: Int! = 230 maxExternalLinks: Int! = 10 maxHtmlSize: Int! = 204800 maxLinks: Int! = 250 maxLoadTime: Float! = 3 maxRedirections: Int! = 4 maxTitleWidth: Int! = 600 maxUrlLength: Int! = 1024 minContentRatio: Float! = 0.1 minDescriptionLength: Int! = 50 minTitleLength: Int! = 10 mobileUserAgentCode: String mobileViewportHeight: Int mobileViewportWidth: Int name: String! rendererBlockAds: Boolean! = false rendererBlockAnalytics: Boolean! = false rendererBlockCustom: [String!] rendererCookies: [RendererCookieInput!]! = [] rendererJsString: String rendererJsUrls: [String!] renderingRobotsCheckMode: RenderingRobotsCheckMode! = BlockDisallowed robotsOverwrite: String selectedWcagLevel: WcagLevel! = AAA selectedWcagVersion: Float! = 2.2 sitePrimary: String! siteTest: String siteTestPass: String siteTestUser: String startUrls: [String!] thinPageThreshold: Int! = 3072 """ Report setting for the topic clustering reports: a topic counts as thin when its `primaryIndexableUrlCountVsMedian` is below this value, that is, when it has fewer indexable primary URLs than this share of the median topic. Defaults to 0.5. """ thinTopicThreshold: Float! = 0.5 """ Report setting for the topic clustering reports: a page counts as ambiguous between its two best topics when its `topicScoreGap` is below this value. The gap is in standard deviations, not raw cosine similarity. Defaults to 0.15. """ topicAmbiguityGapThreshold: Float! = 0.15 urlsExcluded: [String!] urlsIncluded: [String!] useNewHeadlessMode: Boolean! = false useRenderer: Boolean! = true useRobotsOverwrite: Boolean! = false userAgentCode: String userAgentIsMobile: Boolean = null userAgentMobileIsMobile: Boolean = null userAgentString: String = null userAgentStringMobile: String = null userAgentToken: String = null userAgentTokenMobile: String = null viewportHeight: Int viewportWidth: Int } type CreateTestSuitePayload { testSuite: TestSuite! } type CreateTestsPayload { tests: [Test!]! } input CreateTopicConfigurationInput { description: String! enabled: Boolean keywords: [String!]! minSimilarityThreshold: Float name: String! projectId: ObjectID! } type CreateTopicConfigurationPayload { topicConfiguration: TopicConfiguration! } input CreateUserInviteInput { accountId: ObjectID! ssoClientId: String userEmail: String! } type CreateUserInvitePayload { userInvite: UserInvite! } input CreateUserKeyInput { name: String } input CreateWebBotAuthSignatureInput { accountId: ObjectID! """ Domain the signature is for: a hostname only, no protocol or path (e.g. "example.com"). """ domain: String! """ Raw `Signature` HTTP header value, copied from the signer (e.g. the Shopify admin). """ signature: String! """ Raw `Signature-Agent` HTTP header value. """ signatureAgent: String! """ Raw `Signature-Input` HTTP header value. """ signatureInput: String! } type CreateWebBotAuthSignaturePayload { webBotAuthSignature: WebBotAuthSignature! } input CreateWebhookInput { alertTypes: [AlertType!]! = [Pass, Warning, Fail] testSuiteId: ObjectID! url: String! webhookTemplateType: WebhookTemplateType! } type CreateWebhookPayload { webhook: Webhook! } type CreditAllocation { active: Boolean! creditsAllocated: Int! creditsUsed: Float! endDate: DateTime! id: ObjectID! rawID: String! startDate: DateTime! type: CreditAllocationType! } type CreditAllocationConnection { """ A list of edges. """ edges: [CreditAllocationEdge!]! """ A list of nodes. """ nodes: [CreditAllocation!]! """ Information to aid in pagination. """ pageInfo: PageInfo! """ Identifies the total count of CreditAllocations in the connection. """ totalCount: Int! } input CreditAllocationConnectionFilterInput { """ Groups each filter object using AND """ _and: [CreditAllocationConnectionFilterInput!] """ Groups each filter object using AND, wrapped inside NOT """ _not: [CreditAllocationConnectionFilterInput!] """ Groups each filter object using OR """ _or: [CreditAllocationConnectionFilterInput!] creditsAllocated: ConnectionIntFilterInput creditsUsed: ConnectionFloatFilterInput endDate: ConnectionDateFilterInput startDate: ConnectionDateFilterInput type: ConnectionCreditAllocationTypeFilterInput } type CreditAllocationEdge { """ A cursor to use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: CreditAllocation! } input CreditAllocationOrder { """ The ordering direction. """ direction: OrderDirection! """ The field to order CreditAllocations by. """ field: CreditAllocationOrderField! } enum CreditAllocationOrderField { endDate startDate type } enum CreditAllocationType { AIVisibility AIVisibilityAnthropic AIVisibilityChatgptUi AIVisibilityCopilotUi AIVisibilityGeminiUi AIVisibilityGoogle AIVisibilityGoogleAiModeSerp AIVisibilityGoogleAiOverviewSerp AIVisibilityGrokUi AIVisibilityOpenAI AIVisibilityPerplexity AIVisibilityPerplexityUi AIVisibilityUi AIVisibilityXai Accessibility ContentEvals Custom SEO SiteSpeed Typeless } type CreditReport { crawl: Crawl crawlId: ObjectID crawlingAt: DateTime createdAt: DateTime! creditAllocationType: CreditAllocationType! creditsUsed: Float customMetricContainerCosts: [CreditReportCustomMetricContainerCost!] featureCosts: [CreditReportFeatureCost!] finishedAt: DateTime id: ObjectID! project: Project projectId: ObjectID rawID: String! type: CreditReportType! updatedAt: DateTime! urlsCrawled: Int } type CreditReportConnection { """ A list of edges. """ edges: [CreditReportEdge!]! """ A list of nodes. """ nodes: [CreditReport!]! """ Information to aid in pagination. """ pageInfo: PageInfo! """ Identifies the total count of CreditReports in the connection. """ totalCount: Int! } input CreditReportConnectionFilterInput { """ Groups each filter object using AND """ _and: [CreditReportConnectionFilterInput!] """ Groups each filter object using AND, wrapped inside NOT """ _not: [CreditReportConnectionFilterInput!] """ Groups each filter object using OR """ _or: [CreditReportConnectionFilterInput!] crawlId: ConnectionObjectIDFilterInput crawlingAt: ConnectionDateFilterInput createdAt: ConnectionDateFilterInput creditAllocationType: ConnectionCreditAllocationTypeFilterInput creditsUsed: ConnectionFloatFilterInput finishedAt: ConnectionDateFilterInput projectId: ConnectionObjectIDFilterInput type: ConnectionCreditReportTypeFilterInput updatedAt: ConnectionDateFilterInput urlsCrawled: ConnectionIntFilterInput } type CreditReportCustomMetricContainerCost { cost: Float! customMetricContainerName: String! urlsTotal: Int } type CreditReportEdge { """ A cursor to use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: CreditReport! } type CreditReportExport { createdAt: DateTime! exportedAt: DateTime exportingAt: DateTime fileURL: String filter: JSONObject id: ObjectID! rawID: String! updatedAt: DateTime! } type CreditReportExportConnection { """ A list of edges. """ edges: [CreditReportExportEdge!]! """ A list of nodes. """ nodes: [CreditReportExport!]! """ Information to aid in pagination. """ pageInfo: PageInfo! """ Identifies the total count of CreditReportExports in the connection. """ totalCount: Int! } input CreditReportExportConnectionFilterInput { """ Groups each filter object using AND """ _and: [CreditReportExportConnectionFilterInput!] """ Groups each filter object using AND, wrapped inside NOT """ _not: [CreditReportExportConnectionFilterInput!] """ Groups each filter object using OR """ _or: [CreditReportExportConnectionFilterInput!] createdAt: ConnectionDateFilterInput exportedAt: ConnectionDateFilterInput exportingAt: ConnectionDateFilterInput updatedAt: ConnectionDateFilterInput } type CreditReportExportEdge { """ A cursor to use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: CreditReportExport! } input CreditReportExportOrder { """ The ordering direction. """ direction: OrderDirection! """ The field to order CreditReportExports by. """ field: CreditReportExportOrderField! } enum CreditReportExportOrderField { createdAt exportedAt exportingAt updatedAt } type CreditReportFeatureCost { cost: Float! featureCode: String! urlsTotal: Int } input CreditReportOrder { """ The ordering direction. """ direction: OrderDirection! """ The field to order CreditReports by. """ field: CreditReportOrderField! } enum CreditReportOrderField { crawlingAt createdAt creditAllocationType creditsUsed finishedAt type updatedAt urlsCrawled } enum CreditReportType { AIVisibility Crawl SinglePageRequester } enum Currency { EUR GBP JPY USD } type CustomChart { createdAt: DateTime! """ The dashboard the chart belongs to. Use it to reach the owning board and account. """ customDashboard: CustomDashboard! customViews( after: String before: String """ Filtering options for CustomViews returned from the connection. """ filter: CustomViewConnectionFilterInput first: Int = 15 last: Int """ Ordering options for CustomViews returned from the connection. """ orderBy: [CustomViewOrder!] ): CustomViewConnection! id: ObjectID! metadata: JSONObject metric: String! rawID: String! trends(after: String, before: String, customViewIds: [ObjectID!], first: Int = 15, last: Int, metric: String): CustomChartTrendsConnection! type: CustomChartType! updatedAt: DateTime! } type CustomChartConnection { """ A list of edges. """ edges: [CustomChartEdge!]! """ A list of nodes. """ nodes: [CustomChart!]! """ Information to aid in pagination. """ pageInfo: PageInfo! """ Identifies the total count of CustomCharts in the connection. """ totalCount: Int! } input CustomChartConnectionFilterInput { """ Groups each filter object using AND """ _and: [CustomChartConnectionFilterInput!] """ Groups each filter object using AND, wrapped inside NOT """ _not: [CustomChartConnectionFilterInput!] """ Groups each filter object using OR """ _or: [CustomChartConnectionFilterInput!] createdAt: ConnectionDateFilterInput metric: ConnectionStringFilterInput type: ConnectionCustomChartTypeFilterInput updatedAt: ConnectionDateFilterInput } type CustomChartEdge { """ A cursor to use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: CustomChart! } input CustomChartOrder { """ The ordering direction. """ direction: OrderDirection! """ The field to order CustomCharts by. """ field: CustomChartOrderField! } enum CustomChartOrderField { createdAt metric type updatedAt } type CustomChartTrendsConnection { nodes: [TrendsTableRow!]! pageInfo: PageInfo! totalCount: Int! } enum CustomChartType { HealthScoreCrawlCompare MonitorCrawlCompare } type CustomDashboard { """ ObjectID of the Account the dashboard belongs to. """ accountId: ObjectID! collection: CustomDashboardCollection collectionPosition: Int createdAt: DateTime! customCharts( after: String before: String """ Filtering options for CustomCharts returned from the connection. """ filter: CustomChartConnectionFilterInput first: Int = 15 last: Int """ Ordering options for CustomCharts returned from the connection. """ orderBy: [CustomChartOrder!] ): CustomChartConnection customDashboardCollectionId: Int customDashboardViews( after: String before: String """ Filtering options for CustomDashboardViews returned from the connection. """ filter: CustomDashboardViewConnectionFilterInput first: Int = 15 last: Int """ Ordering options for CustomDashboardViews returned from the connection. """ orderBy: [CustomDashboardViewOrder!] ): CustomDashboardViewConnection customTables( after: String before: String """ Filtering options for CustomTables returned from the connection. """ filter: CustomTableConnectionFilterInput first: Int = 15 last: Int """ Ordering options for CustomTables returned from the connection. """ orderBy: [CustomTableOrder!] ): CustomTableConnection customViews( after: String before: String """ Filtering options for CustomViews returned from the connection. """ filter: CustomViewConnectionFilterInput first: Int = 15 last: Int """ Ordering options for CustomViews returned from the connection. """ orderBy: [CustomViewOrder!] ): CustomViewConnection! id: ObjectID! name: String! rawID: String! type: CustomDashboardType! updatedAt: DateTime! } type CustomDashboardCollection { accountId: ObjectID! createdAt: DateTime! customDashboards( after: String before: String """ Filtering options for CustomDashboards returned from the connection. """ filter: CustomDashboardConnectionFilterInput first: Int = 15 last: Int """ Ordering options for CustomDashboards returned from the connection. """ orderBy: [CustomDashboardOrder!] ): CustomDashboardConnection customViews( after: String before: String """ Filtering options for CustomViews returned from the connection. """ filter: CustomViewConnectionFilterInput first: Int = 15 last: Int """ Ordering options for CustomViews returned from the connection. """ orderBy: [CustomViewOrder!] ): CustomViewConnection! id: ObjectID! name: String! position: Int! projects( after: String before: String """ Filtering options for Projects returned from the connection. """ filter: ProjectConnectionFilterInput first: Int = 15 last: Int """ Ordering options for Projects returned from the connection. """ orderBy: [ProjectOrder!] ): ProjectConnection! rawID: String! segments( after: String before: String """ Filtering options for Segments returned from the connection. """ filter: SegmentConnectionFilterInput first: Int = 15 last: Int """ Ordering options for Segments returned from the connection. """ orderBy: [SegmentOrder!] ): SegmentConnection! updatedAt: DateTime! } type CustomDashboardCollectionConnection { """ A list of edges. """ edges: [CustomDashboardCollectionEdge!]! """ A list of nodes. """ nodes: [CustomDashboardCollection!]! """ Information to aid in pagination. """ pageInfo: PageInfo! """ Identifies the total count of CustomDashboardCollections in the connection. """ totalCount: Int! } input CustomDashboardCollectionConnectionFilterInput { """ Groups each filter object using AND """ _and: [CustomDashboardCollectionConnectionFilterInput!] """ Groups each filter object using AND, wrapped inside NOT """ _not: [CustomDashboardCollectionConnectionFilterInput!] """ Groups each filter object using OR """ _or: [CustomDashboardCollectionConnectionFilterInput!] accountId: ConnectionObjectIDFilterInput createdAt: ConnectionDateFilterInput name: ConnectionStringFilterInput position: ConnectionIntFilterInput updatedAt: ConnectionDateFilterInput } type CustomDashboardCollectionEdge { """ A cursor to use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: CustomDashboardCollection! } input CustomDashboardCollectionOrder { """ The ordering direction. """ direction: OrderDirection! """ The field to order CustomDashboardCollections by. """ field: CustomDashboardCollectionOrderField! } enum CustomDashboardCollectionOrderField { createdAt name position updatedAt } type CustomDashboardConnection { """ A list of edges. """ edges: [CustomDashboardEdge!]! """ A list of nodes. """ nodes: [CustomDashboard!]! """ Information to aid in pagination. """ pageInfo: PageInfo! """ Identifies the total count of CustomDashboards in the connection. """ totalCount: Int! } input CustomDashboardConnectionFilterInput { """ Groups each filter object using AND """ _and: [CustomDashboardConnectionFilterInput!] """ Groups each filter object using AND, wrapped inside NOT """ _not: [CustomDashboardConnectionFilterInput!] """ Groups each filter object using OR """ _or: [CustomDashboardConnectionFilterInput!] accountId: ConnectionObjectIDFilterInput collectionPosition: ConnectionIntFilterInput createdAt: ConnectionDateFilterInput customDashboardCollectionId: ConnectionIntFilterInput name: ConnectionStringFilterInput type: ConnectionCustomDashboardTypeFilterInput updatedAt: ConnectionDateFilterInput } type CustomDashboardEdge { """ A cursor to use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: CustomDashboard! } input CustomDashboardOrder { """ The ordering direction. """ direction: OrderDirection! """ The field to order CustomDashboards by. """ field: CustomDashboardOrderField! } enum CustomDashboardOrderField { collectionPosition createdAt customDashboardCollectionId name type updatedAt } enum CustomDashboardType { HealthScores Monitor } type CustomDashboardView { customView: CustomView project: Project projectAllPagesTotal: Int projectCreatedAt: DateTime projectFinishedAt: DateTime projectLastCrawlCrawlingAt: DateTime projectLastCrawlStatus: CrawlStatus projectName: String! projectPrimaryDomain: String! segment: Segment segmentName: String } type CustomDashboardViewConnection { """ A list of edges. """ edges: [CustomDashboardViewEdge!]! """ A list of nodes. """ nodes: [CustomDashboardView!]! """ Information to aid in pagination. """ pageInfo: PageInfo! """ Identifies the total count of CustomDashboardViews in the connection. """ totalCount: Int! } input CustomDashboardViewConnectionFilterInput { """ Groups each filter object using AND """ _and: [CustomDashboardViewConnectionFilterInput!] """ Groups each filter object using AND, wrapped inside NOT """ _not: [CustomDashboardViewConnectionFilterInput!] """ Groups each filter object using OR """ _or: [CustomDashboardViewConnectionFilterInput!] projectAllPagesTotal: ConnectionIntFilterInput projectCreatedAt: ConnectionDateFilterInput projectFinishedAt: ConnectionDateFilterInput projectLastCrawlCrawlingAt: ConnectionDateFilterInput projectLastCrawlStatus: ConnectionCrawlStatusFilterInput projectName: ConnectionStringFilterInput projectPrimaryDomain: ConnectionStringFilterInput segmentName: ConnectionStringFilterInput } type CustomDashboardViewEdge { """ A cursor to use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: CustomDashboardView! } input CustomDashboardViewOrder { """ The ordering direction. """ direction: OrderDirection! """ The field to order CustomDashboardViews by. """ field: CustomDashboardViewOrderField! } enum CustomDashboardViewOrderField { projectAllPagesTotal projectCreatedAt projectFinishedAt projectLastCrawlCrawlingAt projectLastCrawlStatus projectName projectPrimaryDomain segmentName } type CustomDnsSetting { hostname: String! ipAddress: String! } input CustomDnsSettingInput { hostname: String! ipAddress: String! } type CustomExtractionSetting { cleanHtmlTags: Boolean label: String! matchNumberFrom: Int! matchNumberTo: Int! regex: String! regexFilter: String reportTemplateCode: String! } input CustomExtractionSettingInput { cleanHtmlTags: Boolean! = false label: String! matchNumberFrom: Int! = 0 matchNumberTo: Int! = 1 regex: String! regexFilter: String reportTemplateCode: String } type CustomMetric { code: String! connectionPredicates: [ConnectionPredicateMetadata!] containerDescription: String containerName: String! containerType: String! datasourceCode: DatasourceCode description: String jsonSchema: JSONObject name: String! tableType: CustomMetricContainerTableType type: CustomMetricType } type CustomMetricContainer { account: Account! containerParams: JSONObject costs: [CustomMetricContainerCost!] createdAt: DateTime! creditAllocationTypeOverride: CreditAllocationType customMetricContainerGeneration: CustomMetricContainerGeneration description: String displayName: String! executable: Boolean! id: ObjectID! includedDatasourceCodes: [DatasourceCode!] inputType: CustomMetricContainerInputType! isEssential: Boolean isGlobal: Boolean! isolate: Boolean! keyFeatures: String! """ Latest successfully processed version. """ latestVersion: CustomMetricContainerVersion linksProducer: Boolean @deprecated(reason: "Moved to CustomMetricContainerVersion handlers options.") linksProducers: [CustomMetricContainerKeyLinkProducer!] @deprecated(reason: "Moved to CustomMetricContainerVersion handlers options.") minRequiredCpu: Int name: String! obeyCSP: Boolean outputType: CustomMetricContainerOutputType @deprecated(reason: "Moved to CustomMetricContainerVersion handlers options.") """ paramsSchema of the latest version """ paramsSchema: JSONObject projects( after: String before: String """ Filtering options for Projects returned from the connection. """ filter: ProjectConnectionFilterInput first: Int = 15 last: Int """ Ordering options for Projects returned from the connection. """ orderBy: [ProjectOrder!] ): ProjectConnection! rawID: String! relatedContainerNames: [String!] requiredAddons: [String!] """ Crawl types the container needs as input: at least one must be configured on the Project. """ requiredCrawlTypes: [CrawlType!] requiredFeatureFlags: [String!] requiresAiFeatures: Boolean! requiresResponseBuffer: Boolean """ Which resource types the container extracts metrics from. """ resourceTypes: [CustomMetricContainerResourceType!] runFirst: Boolean scope: CustomMetricContainerScope! """ secretsSchema of the latest version """ secretsSchema: JSONObject supportedCrawlTypes: [CrawlType!] supportedUploadTypes: [ProjectUploadType!] tableType: CustomMetricContainerTableType @deprecated(reason: "Moved to CustomMetricContainerVersion handlers options.") tableTypes: [CustomMetricContainerKeyTableType!] @deprecated(reason: "Moved to CustomMetricContainerVersion handlers options.") timeoutMs: Int @deprecated(reason: "Moved to CustomMetricContainerVersion handlers options.") updatedAt: DateTime! versions( after: String before: String """ Filtering options for CustomMetricContainerVersions returned from the connection. """ filter: CustomMetricContainerVersionConnectionFilterInput first: Int = 15 last: Int """ Ordering options for CustomMetricContainerVersions returned from the connection. """ orderBy: [CustomMetricContainerVersionOrder!] ): CustomMetricContainerVersionConnection } type CustomMetricContainerConnection { """ A list of edges. """ edges: [CustomMetricContainerEdge!]! """ A list of nodes. """ nodes: [CustomMetricContainer!]! """ Information to aid in pagination. """ pageInfo: PageInfo! """ Identifies the total count of CustomMetricContainers in the connection. """ totalCount: Int! } input CustomMetricContainerConnectionFilterInput { """ Groups each filter object using AND """ _and: [CustomMetricContainerConnectionFilterInput!] """ Groups each filter object using AND, wrapped inside NOT """ _not: [CustomMetricContainerConnectionFilterInput!] """ Groups each filter object using OR """ _or: [CustomMetricContainerConnectionFilterInput!] customMetricContainerGenerationId: ConnectionObjectIDFilterInput displayName: ConnectionStringFilterInput inputType: ConnectionCustomMetricContainerInputTypeFilterInput isGlobal: ConnectionBooleanFilterInput name: ConnectionStringFilterInput scope: ConnectionCustomMetricContainerScopeFilterInput } type CustomMetricContainerCost { cost: Float! moduleCode: ModuleCode! } type CustomMetricContainerEdge { """ A cursor to use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: CustomMetricContainer! } type CustomMetricContainerGeneration { createdAt: DateTime! createdByUser: UserInfo customMetricContainer: CustomMetricContainer deletedAt: DateTime description: String failedAt: DateTime failureReason: String generatedAt: DateTime """ If not set, LLM will be used to judge if HTML is needed for generation. """ htmlNeeded: Boolean id: ObjectID! metrics: [CustomMetricContainerGenerationMetric!] name: String! rawID: String! """ Recent HTML request. This is used to avoid re-crawling the same URL. """ recentHtmlRequest(maxAgeInHours: Int! = 3): SinglePageRequesterRequest requestedAt: DateTime startedAt: DateTime status: CustomMetricContainerGenerationStatus! """ First URL is the primary URL, which will be used for fetchin HTML for LLM. """ testUrls: [CustomMetricContainerGenerationTestUrl!] testedAt: DateTime testingAt: DateTime tests( after: String before: String """ Filtering options for SinglePageRequesterRequests returned from the connection. """ filter: SinglePageRequesterRequestConnectionFilterInput first: Int = 15 last: Int """ Ordering options for SinglePageRequesterRequests returned from the connection. """ orderBy: [SinglePageRequesterRequestOrder!] ): SinglePageRequesterRequestConnection! updatedAt: DateTime! updatedByUser: UserInfo } type CustomMetricContainerGenerationConnection { """ A list of edges. """ edges: [CustomMetricContainerGenerationEdge!]! """ A list of nodes. """ nodes: [CustomMetricContainerGeneration!]! """ Information to aid in pagination. """ pageInfo: PageInfo! """ Identifies the total count of CustomMetricContainerGenerations in the connection. """ totalCount: Int! } input CustomMetricContainerGenerationConnectionFilterInput { """ Groups each filter object using AND """ _and: [CustomMetricContainerGenerationConnectionFilterInput!] """ Groups each filter object using AND, wrapped inside NOT """ _not: [CustomMetricContainerGenerationConnectionFilterInput!] """ Groups each filter object using OR """ _or: [CustomMetricContainerGenerationConnectionFilterInput!] createdAt: ConnectionDateFilterInput deletedAt: ConnectionDateFilterInput description: ConnectionStringFilterInput failedAt: ConnectionDateFilterInput failureReason: ConnectionStringFilterInput generatedAt: ConnectionDateFilterInput name: ConnectionStringFilterInput requestedAt: ConnectionDateFilterInput startedAt: ConnectionDateFilterInput status: ConnectionCustomMetricContainerGenerationStatusFilterInput testedAt: ConnectionDateFilterInput testingAt: ConnectionDateFilterInput updatedAt: ConnectionDateFilterInput } type CustomMetricContainerGenerationEdge { """ A cursor to use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: CustomMetricContainerGeneration! } type CustomMetricContainerGenerationMetric { description: String isList: Boolean! name: String! prompt: String! type: String! } input CustomMetricContainerGenerationMetricInput { description: String isList: Boolean! name: String! prompt: String! type: String! } input CustomMetricContainerGenerationOrder { """ The ordering direction. """ direction: OrderDirection! """ The field to order CustomMetricContainerGenerations by. """ field: CustomMetricContainerGenerationOrderField! } enum CustomMetricContainerGenerationOrderField { createdAt deletedAt description failedAt failureReason generatedAt id name requestedAt startedAt status testedAt testingAt updatedAt } enum CustomMetricContainerGenerationStatus { Created Failed Generated GeneratedWaitingForTests Generating GenerationRequested Tested Testing } type CustomMetricContainerGenerationTestUrl { project: Project projectId: ObjectID! url: String! } input CustomMetricContainerGenerationTestUrlInput { projectId: ObjectID! url: String! } enum CustomMetricContainerInputType { DOM Puppeteer } type CustomMetricContainerKeyLinkProducer { key: String! linkProducer: Boolean! } type CustomMetricContainerKeyTableType { key: String! tableType: CustomMetricContainerTableType! } input CustomMetricContainerOrder { """ The ordering direction. """ direction: OrderDirection! """ The field to order CustomMetricContainers by. """ field: CustomMetricContainerOrderField! } enum CustomMetricContainerOrderField { accountId displayName id inputType isGlobal name scope } enum CustomMetricContainerOutputType { MultiOutput SingleOutput } type CustomMetricContainerProject { """ Parameters that will be passed as part of the context when a container gets executed. """ containerParams: JSONObject customJsResources: [String!] customJsScripts: [String!] customMetricContainer: CustomMetricContainer! customMetricContainerProjectSecrets( after: String before: String """ Filtering options for CustomMetricContainerProjectSecrets returned from the connection. """ filter: CustomMetricContainerProjectSecretConnectionFilterInput first: Int = 15 last: Int """ Ordering options for CustomMetricContainerProjectSecrets returned from the connection. """ orderBy: [CustomMetricContainerProjectSecretOrder!] ): CustomMetricContainerProjectSecretConnection! enabled: Boolean! """ The configured enabled value regardless of whether requirements are met. Use `enabled` field to check if the extension is actually enabled. """ enabledSetting: Boolean! paramsValid: Boolean! project: Project! """ Required crawl types of the extension that are not configured on the project. Empty when no crawl types are required or at least one of them is configured. """ unmetRequiredCrawlTypes: [CrawlType!]! } type CustomMetricContainerProjectConnection { """ A list of edges. """ edges: [CustomMetricContainerProjectEdge!]! """ A list of nodes. """ nodes: [CustomMetricContainerProject!]! """ Information to aid in pagination. """ pageInfo: PageInfo! """ Identifies the total count of CustomMetricContainerProjects in the connection. """ totalCount: Int! } input CustomMetricContainerProjectConnectionFilterInput { """ Groups each filter object using AND """ _and: [CustomMetricContainerProjectConnectionFilterInput!] """ Groups each filter object using AND, wrapped inside NOT """ _not: [CustomMetricContainerProjectConnectionFilterInput!] """ Groups each filter object using OR """ _or: [CustomMetricContainerProjectConnectionFilterInput!] enabled: ConnectionBooleanFilterInput } type CustomMetricContainerProjectEdge { """ A cursor to use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: CustomMetricContainerProject! } input CustomMetricContainerProjectOrder { """ The ordering direction. """ direction: OrderDirection! """ The field to order CustomMetricContainerProjects by. """ field: CustomMetricContainerProjectOrderField! } enum CustomMetricContainerProjectOrderField { customMetricContainerId enabled projectId } type CustomMetricContainerProjectSecret { createdAt: DateTime! name: String! updatedAt: DateTime! } type CustomMetricContainerProjectSecretConnection { """ A list of edges. """ edges: [CustomMetricContainerProjectSecretEdge!]! """ A list of nodes. """ nodes: [CustomMetricContainerProjectSecret!]! """ Information to aid in pagination. """ pageInfo: PageInfo! """ Identifies the total count of CustomMetricContainerProjectSecrets in the connection. """ totalCount: Int! } input CustomMetricContainerProjectSecretConnectionFilterInput { """ Groups each filter object using AND """ _and: [CustomMetricContainerProjectSecretConnectionFilterInput!] """ Groups each filter object using AND, wrapped inside NOT """ _not: [CustomMetricContainerProjectSecretConnectionFilterInput!] """ Groups each filter object using OR """ _or: [CustomMetricContainerProjectSecretConnectionFilterInput!] name: ConnectionStringFilterInput } type CustomMetricContainerProjectSecretEdge { """ A cursor to use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: CustomMetricContainerProjectSecret! } input CustomMetricContainerProjectSecretOrder { """ The ordering direction. """ direction: OrderDirection! """ The field to order CustomMetricContainerProjectSecrets by. """ field: CustomMetricContainerProjectSecretOrderField! } enum CustomMetricContainerProjectSecretOrderField { customMetricContainerId name projectId } enum CustomMetricContainerRenderingResource { Font Image TextTrack } """ The type of source that the custom metric container is based on. """ enum CustomMetricContainerResourceType { Document Image Script Stylesheet } enum CustomMetricContainerScope { Container System } type CustomMetricContainerSecret { createdAt: DateTime! name: String! updatedAt: DateTime! } enum CustomMetricContainerTableType { Accessibility AccessibilityOld Document DocumentOld ExternalCustom Origin ProjectMetricsItem SemanticRelevance SeoDocument SeoLink SiteSpeedAudit SiteSpeedAuditItem SiteSpeedDocument SiteSpeedOrigin StructuredDataBlock StructuredDataIssue } type CustomMetricContainerVersion { allowedRenderingResources: [CustomMetricContainerRenderingResource!] avroSchema: JSONObject @deprecated(reason: "Moved to CustomMetricContainerVersion handlers options.") avroSchemas: JSONObject @deprecated(reason: "Moved to CustomMetricContainerVersion handlers options.") createdAt: DateTime! customMetricContainer: CustomMetricContainer! customMetrics: [CustomMetric!] """ Presigned S3 download URL """ downloadUrl: String entrypoint: String @deprecated(reason: "Moved to CustomMetricContainerVersion handlers options.") executable: Boolean! failedAt: DateTime failureReason: String fieldsMapping: JSONObject @deprecated(reason: "Moved to CustomMetricContainerVersion handlers options.") fieldsMappings: JSONObject @deprecated(reason: "Moved to CustomMetricContainerVersion handlers options.") handler: String @deprecated(reason: "Moved to CustomMetricContainerVersion handlers options.") handlers: JSONObject id: ObjectID! includedDatasourceCodes: [DatasourceCode!] inputType: CustomMetricContainerInputType! isolate: Boolean! metricsMetadata: JSONObject @deprecated(reason: "Moved to CustomMetricContainerVersion handlers options.") minRequiredCpu: Int navigationTimeoutMs: Int outputSchema: JSONObject @deprecated(reason: "Moved to CustomMetricContainerVersion handlers options.") outputSchemaPath: String @deprecated(reason: "Moved to CustomMetricContainerVersion handlers options.") outputSchemaPaths: JSONObject @deprecated(reason: "Moved to CustomMetricContainerVersion handlers options.") outputSchemas: JSONObject @deprecated(reason: "Moved to CustomMetricContainerVersion handlers options.") paramsSchema: JSONObject processedAt: DateTime processingAt: DateTime rawID: String! requiredAddons: [String!] requiredFeatureFlags: [String!] requiresAiFeatures: Boolean! resourceTypes: [CustomMetricContainerResourceType!] runFirst: Boolean scope: CustomMetricContainerScope! secretsSchema: JSONObject status: CustomMetricContainerVersionStatus! timeoutMs: Int @deprecated(reason: "Moved to CustomMetricContainerVersion handlers options.") updatedAt: DateTime! """ Presigned S3 upload URL """ uploadUrl: String version: Int! } type CustomMetricContainerVersionConnection { """ A list of edges. """ edges: [CustomMetricContainerVersionEdge!]! """ A list of nodes. """ nodes: [CustomMetricContainerVersion!]! """ Information to aid in pagination. """ pageInfo: PageInfo! """ Identifies the total count of CustomMetricContainerVersions in the connection. """ totalCount: Int! } input CustomMetricContainerVersionConnectionFilterInput { """ Groups each filter object using AND """ _and: [CustomMetricContainerVersionConnectionFilterInput!] """ Groups each filter object using AND, wrapped inside NOT """ _not: [CustomMetricContainerVersionConnectionFilterInput!] """ Groups each filter object using OR """ _or: [CustomMetricContainerVersionConnectionFilterInput!] failedAt: ConnectionDateFilterInput inputType: ConnectionCustomMetricContainerInputTypeFilterInput processedAt: ConnectionDateFilterInput processingAt: ConnectionDateFilterInput scope: ConnectionCustomMetricContainerScopeFilterInput status: ConnectionCustomMetricContainerVersionStatusFilterInput } type CustomMetricContainerVersionCrawl { containerParams: JSONObject customJsResources: [String!] customJsScripts: [String!] customMetricContainer: CustomMetricContainer! customMetricContainerVersion: CustomMetricContainerVersion! } type CustomMetricContainerVersionCrawlConnection { """ A list of edges. """ edges: [CustomMetricContainerVersionCrawlEdge!]! """ A list of nodes. """ nodes: [CustomMetricContainerVersionCrawl!]! """ Information to aid in pagination. """ pageInfo: PageInfo! """ Identifies the total count of CustomMetricContainerVersionCrawls in the connection. """ totalCount: Int! } type CustomMetricContainerVersionCrawlEdge { """ A cursor to use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: CustomMetricContainerVersionCrawl! } type CustomMetricContainerVersionEdge { """ A cursor to use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: CustomMetricContainerVersion! } input CustomMetricContainerVersionOrder { """ The ordering direction. """ direction: OrderDirection! """ The field to order CustomMetricContainerVersions by. """ field: CustomMetricContainerVersionOrderField! } enum CustomMetricContainerVersionOrderField { failedAt id inputType processedAt processingAt scope } enum CustomMetricContainerVersionStatus { Draft Errored Processed Processing } enum CustomMetricType { Boolean Integer IntegerArray Number NumberArray String StringArray StringifiedJson } type CustomMetricUploadContainer { createdAt: DateTime! description: String id: ObjectID! name: String! rawID: String! updatedAt: DateTime! uploadTemplate: JSONObject! urlFileUploads( after: String before: String """ Filtering options for UrlFileUploads returned from the connection. """ filter: UrlFileUploadConnectionFilterInput first: Int = 15 last: Int ): UrlFileUploadConnection! } type CustomMetricUploadContainerConnection { """ A list of edges. """ edges: [CustomMetricUploadContainerEdge!]! """ A list of nodes. """ nodes: [CustomMetricUploadContainer!]! """ Information to aid in pagination. """ pageInfo: PageInfo! """ Identifies the total count of CustomMetricUploadContainers in the connection. """ totalCount: Int! } input CustomMetricUploadContainerConnectionFilterInput { """ Groups each filter object using AND """ _and: [CustomMetricUploadContainerConnectionFilterInput!] """ Groups each filter object using AND, wrapped inside NOT """ _not: [CustomMetricUploadContainerConnectionFilterInput!] """ Groups each filter object using OR """ _or: [CustomMetricUploadContainerConnectionFilterInput!] name: ConnectionStringFilterInput } type CustomMetricUploadContainerCrawl { createdAt: DateTime! customMetricUploadContainer: CustomMetricUploadContainer! updatedAt: DateTime! uploadTemplate: JSONObject! } type CustomMetricUploadContainerCrawlConnection { """ A list of edges. """ edges: [CustomMetricUploadContainerCrawlEdge!]! """ A list of nodes. """ nodes: [CustomMetricUploadContainerCrawl!]! """ Information to aid in pagination. """ pageInfo: PageInfo! """ Identifies the total count of CustomMetricUploadContainerCrawls in the connection. """ totalCount: Int! } type CustomMetricUploadContainerCrawlEdge { """ A cursor to use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: CustomMetricUploadContainerCrawl! } type CustomMetricUploadContainerEdge { """ A cursor to use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: CustomMetricUploadContainer! } input CustomMetricUploadContainerOrder { """ The ordering direction. """ direction: OrderDirection! """ The field to order CustomMetricUploadContainers by. """ field: CustomMetricUploadContainerOrderField! } enum CustomMetricUploadContainerOrderField { id name } type CustomReport implements ReportStatBase { added: Float basic: Float crawl: Crawl! crawlAccessibilityIssueInstances( after: String before: String """ Filtering options for CrawlAccessibilityIssueInstances returned from the connection. """ filter: CrawlAccessibilityIssueInstanceConnectionFilterInput first: Int = 15 last: Int """ Ordering options for CrawlAccessibilityIssueInstances returned from the connection. """ orderBy: [CrawlAccessibilityIssueInstanceOrder!] reportType: ReportTypeCode! = Basic ): CrawlAccessibilityIssueInstanceConnection crawlAccessibilityIssues( after: String before: String """ Filtering options for CrawlAccessibilityIssues returned from the connection. """ filter: CrawlAccessibilityIssueConnectionFilterInput first: Int = 15 last: Int """ Ordering options for CrawlAccessibilityIssues returned from the connection. """ orderBy: [CrawlAccessibilityIssueOrder!] reportType: ReportTypeCode! = Basic ): CrawlAccessibilityIssueConnection crawlAccessibilityIssuesAggregates( after: String dimensions: [CrawlAccessibilityIssueAggregateDimension!]! = [] filter: CrawlAccessibilityIssueConnectionFilterInput first: Int = 100 """ Ordering options for CrawlAccessibilityIssueAggregates returned from the connection. """ orderBy: [CrawlAccessibilityIssueAggregateOrder!]! = [] reportType: ReportTypeCode! = Basic ): CrawlAccessibilityIssueAggregateConnection crawlAiVisibilityPrompts( after: String before: String """ Filtering options for CrawlAiVisibilityPrompts returned from the connection. """ filter: CrawlAiVisibilityPromptConnectionFilterInput first: Int = 15 last: Int """ Ordering options for CrawlAiVisibilityPrompts returned from the connection. """ orderBy: [CrawlAiVisibilityPromptOrder!] reportType: ReportTypeCode! = Basic ): CrawlAiVisibilityPromptConnection crawlAnalyticsAiReferrals( after: String before: String """ Filtering options for CrawlAnalyticsAiReferrals returned from the connection. """ filter: CrawlAnalyticsAiReferralConnectionFilterInput first: Int = 15 last: Int """ Ordering options for CrawlAnalyticsAiReferrals returned from the connection. """ orderBy: [CrawlAnalyticsAiReferralOrder!] reportType: ReportTypeCode! = Basic ): CrawlAnalyticsAiReferralConnection crawlAnalyticsAiReferralsAggregates( dimensions: [CrawlAnalyticsAiReferralAggregateDimension!]! = [] filter: CrawlAnalyticsAiReferralConnectionFilterInput """ Ordering options for CrawlAnalyticsAiReferralAggregates returned from the connection. """ orderBy: [CrawlAnalyticsAiReferralAggregateOrder!]! = [] reportType: ReportTypeCode! = Basic ): CrawlAnalyticsAiReferralAggregateConnection crawlDuplicateUrls( after: String before: String """ Filtering options for CrawlDuplicateUrls returned from the connection. """ filter: CrawlDuplicateUrlConnectionFilterInput first: Int = 15 last: Int """ Ordering options for CrawlDuplicateUrls returned from the connection. """ orderBy: [CrawlDuplicateUrlOrder!] reportType: ReportTypeCode! = Basic ): CrawlDuplicateUrlConnection crawlDuplicateUrlsBuckets(filter: CrawlDuplicateUrlConnectionFilterInput, floatRangeAggs: [FloatRangeAggInput!]! = [], intRangeAggs: [IntRangeAggInput!]! = [], reportType: ReportTypeCode! = Basic, termsAggs: [TermsAggInput!]! = []): BucketsPayload crawlHreflangs( after: String before: String """ Filtering options for CrawlHreflangs returned from the connection. """ filter: CrawlHreflangsConnectionFilterInput first: Int = 15 last: Int """ Ordering options for CrawlHreflangs returned from the connection. """ orderBy: [CrawlHreflangsOrder!] reportType: ReportTypeCode! = Basic ): CrawlHreflangsConnection crawlId: ObjectID! crawlLinkedDomains( after: String before: String """ Filtering options for CrawlLinkedDomains returned from the connection. """ filter: CrawlLinkedDomainConnectionFilterInput first: Int = 15 last: Int """ Ordering options for CrawlLinkedDomains returned from the connection. """ orderBy: [CrawlLinkedDomainOrder!] reportType: ReportTypeCode! = Basic ): CrawlLinkedDomainConnection crawlLinkedDomainsBuckets(filter: CrawlLinkedDomainConnectionFilterInput, floatRangeAggs: [FloatRangeAggInput!]! = [], intRangeAggs: [IntRangeAggInput!]! = [], reportType: ReportTypeCode! = Basic, termsAggs: [TermsAggInput!]! = []): BucketsPayload crawlLinks( after: String before: String """ Filtering options for CrawlLinks returned from the connection. """ filter: CrawlLinkConnectionFilterInput first: Int = 15 last: Int """ Ordering options for CrawlLinks returned from the connection. """ orderBy: [CrawlLinkOrder!] reportType: ReportTypeCode! = Basic ): CrawlLinkConnection crawlLinksBuckets(filter: CrawlLinkConnectionFilterInput, floatRangeAggs: [FloatRangeAggInput!]! = [], intRangeAggs: [IntRangeAggInput!]! = [], reportType: ReportTypeCode! = Basic, termsAggs: [TermsAggInput!]! = []): BucketsPayload crawlLogSummariesAiBots( after: String before: String """ Filtering options for CrawlLogSummariesAiBots returned from the connection. """ filter: CrawlLogSummariesAiBotConnectionFilterInput first: Int = 15 last: Int """ Ordering options for CrawlLogSummariesAiBots returned from the connection. """ orderBy: [CrawlLogSummariesAiBotOrder!] reportType: ReportTypeCode! = Basic ): CrawlLogSummariesAiBotConnection crawlLogSummariesAiBotsAggregates( after: String dimensions: [CrawlLogSummariesAiBotAggregateDimension!]! = [] filter: CrawlLogSummariesAiBotConnectionFilterInput first: Int = 100 """ Ordering options for CrawlLogSummariesAiBotAggregates returned from the connection. """ orderBy: [CrawlLogSummariesAiBotAggregateOrder!]! = [] reportType: ReportTypeCode! = Basic ): CrawlLogSummariesAiBotAggregateConnection crawlOrigins( after: String before: String """ Filtering options for CrawlOrigins returned from the connection. """ filter: CrawlOriginConnectionFilterInput first: Int = 15 last: Int """ Ordering options for CrawlOrigins returned from the connection. """ orderBy: [CrawlOriginOrder!] reportType: ReportTypeCode! = Basic ): CrawlOriginConnection crawlProjectMetricsItems( after: String before: String """ Filtering options for CrawlProjectMetricsItems returned from the connection. """ filter: CrawlProjectMetricsItemConnectionFilterInput first: Int = 15 last: Int """ Ordering options for CrawlProjectMetricsItems returned from the connection. """ orderBy: [CrawlProjectMetricsItemOrder!] reportType: ReportTypeCode! = Basic ): CrawlProjectMetricsItemConnection crawlSearchQueries( after: String before: String """ Filtering options for CrawlSearchQueries returned from the connection. """ filter: CrawlSearchQueryConnectionFilterInput first: Int = 15 last: Int """ Ordering options for CrawlSearchQueries returned from the connection. """ orderBy: [CrawlSearchQueryOrder!] reportType: ReportTypeCode! = Basic ): CrawlSearchQueryConnection crawlSearchQueriesWithLandingPages( after: String before: String """ Filtering options for CrawlSearchQueryWithLandingPages returned from the connection. """ filter: CrawlSearchQueryWithLandingPagesConnectionFilterInput first: Int = 15 last: Int """ Ordering options for CrawlSearchQueryWithLandingPages returned from the connection. """ orderBy: [CrawlSearchQueryWithLandingPagesOrder!] reportType: ReportTypeCode! = Basic ): CrawlSearchQueryWithLandingPagesConnection crawlSiteSpeedAuditItems( after: String before: String """ Filtering options for CrawlSiteSpeedAuditItems returned from the connection. """ filter: CrawlSiteSpeedAuditItemConnectionFilterInput first: Int = 15 last: Int """ Ordering options for CrawlSiteSpeedAuditItems returned from the connection. """ orderBy: [CrawlSiteSpeedAuditItemOrder!] reportType: ReportTypeCode! = Basic ): CrawlSiteSpeedAuditItemConnection crawlSiteSpeedAuditOpportunities( after: String before: String """ Filtering options for CrawlSiteSpeedAuditOpportunities returned from the connection. """ filter: CrawlSiteSpeedAuditOpportunityConnectionFilterInput first: Int = 15 last: Int """ Ordering options for CrawlSiteSpeedAuditOpportunities returned from the connection. """ orderBy: [CrawlSiteSpeedAuditOpportunityOrder!] reportType: ReportTypeCode! = Basic ): CrawlSiteSpeedAuditOpportunityConnection crawlSiteSpeedAuditOpportunitiesAggregates( after: String dimensions: [CrawlSiteSpeedAuditOpportunityAggregateDimension!]! = [] filter: CrawlSiteSpeedAuditOpportunityConnectionFilterInput first: Int = 100 """ Ordering options for CrawlSiteSpeedAuditOpportunityAggregates returned from the connection. """ orderBy: [CrawlSiteSpeedAuditOpportunityAggregateOrder!]! = [] reportType: ReportTypeCode! = Basic ): CrawlSiteSpeedAuditOpportunityAggregateConnection crawlSiteSpeedAuditOpportunitiesBuckets(filter: CrawlSiteSpeedAuditOpportunityConnectionFilterInput, floatRangeAggs: [FloatRangeAggInput!]! = [], intRangeAggs: [IntRangeAggInput!]! = [], reportType: ReportTypeCode! = Basic, termsAggs: [TermsAggInput!]! = []): BucketsPayload crawlSiteSpeedAudits( after: String before: String """ Filtering options for CrawlSiteSpeedAudits returned from the connection. """ filter: CrawlSiteSpeedAuditConnectionFilterInput first: Int = 15 last: Int """ Ordering options for CrawlSiteSpeedAudits returned from the connection. """ orderBy: [CrawlSiteSpeedAuditOrder!] reportType: ReportTypeCode! = Basic ): CrawlSiteSpeedAuditConnection crawlSiteSpeedAuditsAggregates( after: String dimensions: [CrawlSiteSpeedAuditAggregateDimension!]! = [] filter: CrawlSiteSpeedAuditConnectionFilterInput first: Int = 100 """ Ordering options for CrawlSiteSpeedAuditAggregates returned from the connection. """ orderBy: [CrawlSiteSpeedAuditAggregateOrder!]! = [] reportType: ReportTypeCode! = Basic ): CrawlSiteSpeedAuditAggregateConnection crawlSiteSpeedAuditsBuckets(filter: CrawlSiteSpeedAuditConnectionFilterInput, floatRangeAggs: [FloatRangeAggInput!]! = [], intRangeAggs: [IntRangeAggInput!]! = [], reportType: ReportTypeCode! = Basic, termsAggs: [TermsAggInput!]! = []): BucketsPayload crawlSitemaps( after: String before: String """ Filtering options for CrawlSitemaps returned from the connection. """ filter: CrawlSitemapConnectionFilterInput first: Int = 15 last: Int """ Ordering options for CrawlSitemaps returned from the connection. """ orderBy: [CrawlSitemapOrder!] reportType: ReportTypeCode! = Basic ): CrawlSitemapConnection crawlSitemapsBuckets(filter: CrawlSitemapConnectionFilterInput, floatRangeAggs: [FloatRangeAggInput!]! = [], intRangeAggs: [IntRangeAggInput!]! = [], reportType: ReportTypeCode! = Basic, termsAggs: [TermsAggInput!]! = []): BucketsPayload crawlStructuredDataBlocks( after: String before: String """ Filtering options for CrawlStructuredDataBlocks returned from the connection. """ filter: CrawlStructuredDataBlockConnectionFilterInput first: Int = 15 last: Int """ Ordering options for CrawlStructuredDataBlocks returned from the connection. """ orderBy: [CrawlStructuredDataBlockOrder!] reportType: ReportTypeCode! = Basic ): CrawlStructuredDataBlockConnection crawlStructuredDataBlocksAggregates( after: String dimensions: [CrawlStructuredDataBlockAggregateDimension!]! = [] filter: CrawlStructuredDataBlockConnectionFilterInput first: Int = 100 """ Ordering options for CrawlStructuredDataBlockAggregates returned from the connection. """ orderBy: [CrawlStructuredDataBlockAggregateOrder!]! = [] reportType: ReportTypeCode! = Basic ): CrawlStructuredDataBlockAggregateConnection crawlStructuredDataBlocksBuckets(filter: CrawlStructuredDataBlockConnectionFilterInput, floatRangeAggs: [FloatRangeAggInput!]! = [], intRangeAggs: [IntRangeAggInput!]! = [], reportType: ReportTypeCode! = Basic, termsAggs: [TermsAggInput!]! = []): BucketsPayload crawlStructuredDataBlocksPatterns(filter: CrawlStructuredDataBlockConnectionFilterInput, reportType: ReportTypeCode! = Basic): PatternsPayload """ Schema template results counted per crawl, page type, template, rule, condition, failure reason and parse failure. """ crawlStructuredDataBreakdowns( after: String before: String """ Filtering options for CrawlStructuredDataBreakdowns returned from the connection. """ filter: CrawlStructuredDataBreakdownConnectionFilterInput first: Int = 15 last: Int """ Ordering options for CrawlStructuredDataBreakdowns returned from the connection. """ orderBy: [CrawlStructuredDataBreakdownOrder!] reportType: ReportTypeCode! = Basic ): CrawlStructuredDataBreakdownConnection crawlStructuredDataIssues( after: String before: String """ Filtering options for CrawlStructuredDataIssues returned from the connection. """ filter: CrawlStructuredDataIssueConnectionFilterInput first: Int = 15 last: Int """ Ordering options for CrawlStructuredDataIssues returned from the connection. """ orderBy: [CrawlStructuredDataIssueOrder!] reportType: ReportTypeCode! = Basic ): CrawlStructuredDataIssueConnection crawlStructuredDataIssuesAggregates( after: String dimensions: [CrawlStructuredDataIssueAggregateDimension!]! = [] filter: CrawlStructuredDataIssueConnectionFilterInput first: Int = 100 """ Ordering options for CrawlStructuredDataIssueAggregates returned from the connection. """ orderBy: [CrawlStructuredDataIssueAggregateOrder!]! = [] reportType: ReportTypeCode! = Basic ): CrawlStructuredDataIssueAggregateConnection crawlStructuredDataIssuesBuckets(filter: CrawlStructuredDataIssueConnectionFilterInput, floatRangeAggs: [FloatRangeAggInput!]! = [], intRangeAggs: [IntRangeAggInput!]! = [], reportType: ReportTypeCode! = Basic, termsAggs: [TermsAggInput!]! = []): BucketsPayload crawlStructuredDataIssuesPatterns(filter: CrawlStructuredDataIssueConnectionFilterInput, reportType: ReportTypeCode! = Basic): PatternsPayload crawlTopics( after: String before: String """ Filtering options for CrawlTopics returned from the connection. """ filter: CrawlTopicConnectionFilterInput first: Int = 15 last: Int """ Ordering options for CrawlTopics returned from the connection. """ orderBy: [CrawlTopicOrder!] reportType: ReportTypeCode! = Basic ): CrawlTopicConnection crawlTopicsAggregates( after: String dimensions: [CrawlTopicAggregateDimension!]! = [] filter: CrawlTopicConnectionFilterInput first: Int = 100 """ Ordering options for CrawlTopicAggregates returned from the connection. """ orderBy: [CrawlTopicAggregateOrder!]! = [] reportType: ReportTypeCode! = Basic ): CrawlTopicAggregateConnection crawlUncrawledUrls( after: String before: String """ Filtering options for CrawlUncrawledUrls returned from the connection. """ filter: CrawlUncrawledUrlConnectionFilterInput first: Int = 15 last: Int """ Ordering options for CrawlUncrawledUrls returned from the connection. """ orderBy: [CrawlUncrawledUrlOrder!] reportType: ReportTypeCode! = Basic ): CrawlUncrawledUrlConnection crawlUncrawledUrlsBuckets(filter: CrawlUncrawledUrlConnectionFilterInput, floatRangeAggs: [FloatRangeAggInput!]! = [], intRangeAggs: [IntRangeAggInput!]! = [], reportType: ReportTypeCode! = Basic, termsAggs: [TermsAggInput!]! = []): BucketsPayload crawlUniqueLinks( after: String before: String """ Filtering options for CrawlUniqueLinks returned from the connection. """ filter: CrawlUniqueLinkConnectionFilterInput first: Int = 15 last: Int """ Ordering options for CrawlUniqueLinks returned from the connection. """ orderBy: [CrawlUniqueLinkOrder!] reportType: ReportTypeCode! = Basic ): CrawlUniqueLinkConnection crawlUniqueLinksBuckets(filter: CrawlUniqueLinkConnectionFilterInput, floatRangeAggs: [FloatRangeAggInput!]! = [], intRangeAggs: [IntRangeAggInput!]! = [], reportType: ReportTypeCode! = Basic, termsAggs: [TermsAggInput!]! = []): BucketsPayload crawlUrls( after: String before: String """ Filtering options for CrawlUrls returned from the connection. """ filter: CrawlUrlConnectionFilterInput first: Int = 15 last: Int """ Ordering options for CrawlUrls returned from the connection. """ orderBy: [CrawlUrlOrder!] reportType: ReportTypeCode! = Basic ): CrawlUrlConnection crawlUrlsAggregates( after: String dimensions: [CrawlUrlAggregateDimension!]! = [] filter: CrawlUrlConnectionFilterInput first: Int = 100 """ Ordering options for CrawlUrlAggregates returned from the connection. """ orderBy: [CrawlUrlAggregateOrder!]! = [] reportType: ReportTypeCode! = Basic ): CrawlUrlAggregateConnection crawlUrlsBuckets(filter: CrawlUrlConnectionFilterInput, floatRangeAggs: [FloatRangeAggInput!]! = [], intRangeAggs: [IntRangeAggInput!]! = [], reportType: ReportTypeCode! = Basic, termsAggs: [TermsAggInput!]! = []): BucketsPayload crawlUrlsPatterns(filter: CrawlUrlConnectionFilterInput, reportType: ReportTypeCode! = Basic): PatternsPayload crawlWebCrawlDepths( after: String before: String """ Filtering options for CrawlWebCrawlDepths returned from the connection. """ filter: CrawlWebCrawlDepthConnectionFilterInput first: Int = 15 last: Int """ Ordering options for CrawlWebCrawlDepths returned from the connection. """ orderBy: [CrawlWebCrawlDepthOrder!] reportType: ReportTypeCode! = Basic ): CrawlWebCrawlDepthConnection createdAt: DateTime customReportTemplate: CustomReportTemplate! customReportTemplateTotalSign: Int customReportTemplateTotalWeight: Float getResource(input: CustomReportGetResourceInputType!): JSONObject missing: Float project: Project! projectId: ObjectID! removed: Float reportDownloads( after: String before: String """ Filtering options for ReportDownloads returned from the connection. """ filter: ReportDownloadConnectionFilterInput first: Int = 15 last: Int """ Ordering options for ReportDownloads returned from the connection. """ orderBy: [ReportDownloadOrder!] reportType: ReportTypeCode! = Basic ): ReportDownloadConnection reportTemplate: ReportTemplate! rows(after: String, before: String, filter: JSONObject, first: Int = 15, last: Int, orderBy: [JSONObject!], reportType: ReportTypeCode! = Basic): CustomReportRowConnection rowsWithAllMetrics(after: String, before: String, filter: JSONObject, first: Int = 15, last: Int, orderBy: [JSONObject!], reportType: ReportTypeCode! = Basic): AllMetricsCustomReportRowConnection segment: Segment segmentId: ObjectID segmentVersion: Int testResults( after: String before: String """ Filtering options for TestResults returned from the connection. """ filter: TestResultConnectionFilterInput first: Int = 15 last: Int """ Ordering options for TestResults returned from the connection. """ orderBy: [TestResultOrder!] ): TestResultConnection! totalWeight: Float! trend: [CustomReportTrendItem!]! version: Int! } type CustomReportCategory { code: String! icon: String name: String parentCode: CustomReportCategory } input CustomReportGetResourceInputType { reportTypeCode: ReportTypeCode! = Basic resourceId: String! } type CustomReportRowConnection { edges: [CustomReportRowEdge!]! nodes: [ReportRow!]! pageInfo: PageInfo! totalCount: Int! } type CustomReportRowEdge { """ Used in `before` and `after` args """ cursor: String! node: ReportRow! } type CustomReportTemplate { code: String! createdAt: DateTime! customMetricContainer: CustomMetricContainer customMetricContainerId: ObjectID customReportTemplateVersions( after: String before: String """ Filtering options for CustomReportTemplateVersions returned from the connection. """ filter: CustomReportTemplateVersionConnectionFilterInput first: Int = 15 last: Int """ Ordering options for CustomReportTemplateVersions returned from the connection. """ orderBy: [CustomReportTemplateVersionOrder!] ): CustomReportTemplateVersionConnection! defaultView: CustomReportTemplateView description: String filter: JSONObject! id: ObjectID! """ The metrics groupings value stored as string[][]. """ metricsGroupings: JSON name: String! orderBy: [JSONObject!] rawID: String! reportCategories: [CustomReportCategory!] reportTemplate: ReportTemplate! reportTemplateCode: String! reportTemplateQueryVersion: Int! skipSegmentGeneration: Boolean! task: LegacyTask totalSign: Int! totalWeight: Float! updatedAt: DateTime! version: Int! } type CustomReportTemplateConnection { """ A list of edges. """ edges: [CustomReportTemplateEdge!]! """ A list of nodes. """ nodes: [CustomReportTemplate!]! """ Information to aid in pagination. """ pageInfo: PageInfo! """ Identifies the total count of CustomReportTemplates in the connection. """ totalCount: Int! } input CustomReportTemplateConnectionFilterInput { """ Groups each filter object using AND """ _and: [CustomReportTemplateConnectionFilterInput!] """ Groups each filter object using AND, wrapped inside NOT """ _not: [CustomReportTemplateConnectionFilterInput!] """ Groups each filter object using OR """ _or: [CustomReportTemplateConnectionFilterInput!] code: ConnectionStringFilterInput createdAt: ConnectionDateFilterInput customMetricContainerId: ConnectionObjectIDFilterInput name: ConnectionStringFilterInput reportTemplateCode: ConnectionStringFilterInput reportTemplateQueryVersion: ConnectionIntFilterInput taskId: ConnectionObjectIDFilterInput totalSign: ConnectionIntFilterInput totalWeight: ConnectionFloatFilterInput updatedAt: ConnectionDateFilterInput version: ConnectionIntFilterInput } type CustomReportTemplateEdge { """ A cursor to use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: CustomReportTemplate! } input CustomReportTemplateMetricsGroupingInput { """ An array of Metric.code or CustomMetric.name values. """ metrics: [String!]! } input CustomReportTemplateOrder { """ The ordering direction. """ direction: OrderDirection! """ The field to order CustomReportTemplates by. """ field: CustomReportTemplateOrderField! } enum CustomReportTemplateOrderField { code createdAt name reportTemplateCode reportTemplateQueryVersion totalSign totalWeight updatedAt version } type CustomReportTemplateVersion { createdAt: DateTime! filter: JSONObject! """ The metrics groupings value stored as string[][]. """ metricsGroupings: JSON orderBy: [JSONObject!] reportCategories: [CustomReportCategory!] reportTemplateQueryVersion: Int! skipSegmentGeneration: Boolean! totalSign: Int! totalWeight: Float! updatedAt: DateTime! version: Int! } type CustomReportTemplateVersionConnection { """ A list of edges. """ edges: [CustomReportTemplateVersionEdge!]! """ A list of nodes. """ nodes: [CustomReportTemplateVersion!]! """ Information to aid in pagination. """ pageInfo: PageInfo! """ Identifies the total count of CustomReportTemplateVersions in the connection. """ totalCount: Int! } input CustomReportTemplateVersionConnectionFilterInput { """ Groups each filter object using AND """ _and: [CustomReportTemplateVersionConnectionFilterInput!] """ Groups each filter object using AND, wrapped inside NOT """ _not: [CustomReportTemplateVersionConnectionFilterInput!] """ Groups each filter object using OR """ _or: [CustomReportTemplateVersionConnectionFilterInput!] createdAt: ConnectionDateFilterInput reportTemplateQueryVersion: ConnectionIntFilterInput totalSign: ConnectionIntFilterInput totalWeight: ConnectionFloatFilterInput updatedAt: ConnectionDateFilterInput version: ConnectionIntFilterInput } type CustomReportTemplateVersionEdge { """ A cursor to use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: CustomReportTemplateVersion! } input CustomReportTemplateVersionOrder { """ The ordering direction. """ direction: OrderDirection! """ The field to order CustomReportTemplateVersions by. """ field: CustomReportTemplateVersionOrderField! } enum CustomReportTemplateVersionOrderField { createdAt reportTemplateQueryVersion totalSign totalWeight updatedAt version } enum CustomReportTemplateView { Grid Table } type CustomReportTrendItem implements ReportStatBase { added: Float basic: Float crawlId: Int! createdAt: DateTime customReportTemplateTotalSign: Int customReportTemplateTotalWeight: Float missing: Float removed: Float segmentVersion: Int totalWeight: Float! version: Int! } input CustomRequestHeaderInput { key: String! value: String! } type CustomTable { columns: [String!]! createdAt: DateTime! """ The dashboard the table belongs to. Use it to reach the owning board and account. """ customDashboard: CustomDashboard! filter: JSONObject id: ObjectID! orderBy: [JSONObject!] rawID: String! table( after: String before: String filter: CustomDashboardViewConnectionFilterInput first: Int = 15 last: Int """ The reportTemplateCode or reportCategoryCode of the column to sort the table by. """ orderBy: TrendsTableOrderBy ): CustomTableTrendsRowConnection! type: CustomTableType! updatedAt: DateTime! } type CustomTableConnection { """ A list of edges. """ edges: [CustomTableEdge!]! """ A list of nodes. """ nodes: [CustomTable!]! """ Information to aid in pagination. """ pageInfo: PageInfo! """ Identifies the total count of CustomTables in the connection. """ totalCount: Int! } input CustomTableConnectionFilterInput { """ Groups each filter object using AND """ _and: [CustomTableConnectionFilterInput!] """ Groups each filter object using AND, wrapped inside NOT """ _not: [CustomTableConnectionFilterInput!] """ Groups each filter object using OR """ _or: [CustomTableConnectionFilterInput!] createdAt: ConnectionDateFilterInput type: ConnectionCustomTableTypeFilterInput updatedAt: ConnectionDateFilterInput } type CustomTableEdge { """ A cursor to use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: CustomTable! } input CustomTableOrder { """ The ordering direction. """ direction: OrderDirection! """ The field to order CustomTables by. """ field: CustomTableOrderField! } enum CustomTableOrderField { createdAt type updatedAt } type CustomTableTrendsNode { customDashboardView: CustomDashboardView! row: TrendsTableRow! } type CustomTableTrendsRowConnection { nodes: [CustomTableTrendsNode!]! pageInfo: PageInfo! totalCount: Int! } enum CustomTableType { HealthScores MonitorProjects } type CustomView { account: Account! accountId: Int! id: ObjectID! project: Project! projectId: Int! rawID: String! segment: Segment segmentId: Int } type CustomViewConnection { """ A list of edges. """ edges: [CustomViewEdge!]! """ A list of nodes. """ nodes: [CustomView!]! """ Information to aid in pagination. """ pageInfo: PageInfo! """ Identifies the total count of CustomViews in the connection. """ totalCount: Int! } input CustomViewConnectionFilterInput { """ Groups each filter object using AND """ _and: [CustomViewConnectionFilterInput!] """ Groups each filter object using AND, wrapped inside NOT """ _not: [CustomViewConnectionFilterInput!] """ Groups each filter object using OR """ _or: [CustomViewConnectionFilterInput!] accountId: ConnectionObjectIDFilterInput projectId: ConnectionObjectIDFilterInput segmentId: ConnectionObjectIDFilterInput } type CustomViewEdge { """ A cursor to use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: CustomView! } input CustomViewInput { accountId: ObjectID! projectId: ObjectID! segmentId: ObjectID } input CustomViewOrder { """ The ordering direction. """ direction: OrderDirection! """ The field to order CustomViews by. """ field: CustomViewOrderField! } enum CustomViewOrderField { accountId id projectId segmentId } type Datasource { code: String! @deprecated(reason: "Use datasourceCode instead.") datasourceCode: DatasourceCode! metadata: DatasourceMetadata metrics: [Metric!]! segmentable: Boolean! } enum DatasourceCode { CrawlAccessibilityIssueInstances CrawlAccessibilityIssues CrawlAiVisibilityPrompts CrawlAnalyticsAiReferrals CrawlDuplicateUrls CrawlHreflangs CrawlLinkedDomains CrawlLinks CrawlLogSummariesAiBots CrawlOrigins CrawlProjectMetricsItems CrawlSearchQueries CrawlSearchQueriesWithLandingPages CrawlSiteSpeedAuditItems CrawlSiteSpeedAuditOpportunities CrawlSiteSpeedAudits CrawlSitemapDiscoveries @deprecated(reason: "No longer in use.") CrawlSitemaps CrawlStructuredDataBlocks CrawlStructuredDataBreakdowns CrawlStructuredDataIssues CrawlTopics CrawlUncrawledUrls CrawlUniqueLinks CrawlUrls CrawlWebCrawlDepths } type DatasourceMetadata { resourceIdMetric: String } """ The javascript `Date` as string. Type represents date and time as the ISO Date string. """ scalar DateTime type DateTimeRange { end: DateTime! start: DateTime! } input DeleteAccountSsoGroupRoleMappingInput { id: ObjectID! } type DeleteAccountSsoGroupRoleMappingPayload { accountSsoGroupRoleMapping: AccountSsoGroupRoleMapping! } input DeleteAccountTagAiVisibilityProjectsInput { """ The account owning both the tags and the projects. Required because AI Visibility Project ids are only unique within their own account. """ accountId: ObjectID! """ The tags to detach. The tags themselves are not deleted — use `deleteAccountTag` to remove one entirely, which also detaches it everywhere. """ accountTagIds: [ObjectID!]! """ The AI Visibility Projects to detach the tags from. Every tag is detached from every project; a tag a project does not carry is ignored. """ aiVisibilityProjectIds: [ObjectID!]! } type DeleteAccountTagAiVisibilityProjectsPayload { """ The tags that were detached. """ accountTags: [AccountTag!]! """ The projects the tags were detached from. Read `tags` on them to see each project's remaining set. """ aiVisibilityProjects: [AiVisibilityProject!]! } input DeleteAccountTagInput { accountTagId: ObjectID! } type DeleteAccountTagPayload { accountTag: AccountTag! } input DeleteAccountTagProjectsInput { accountTagIds: [ObjectID!]! projectIds: [ObjectID!]! } type DeleteAccountTagProjectsPayload { accountTags: [AccountTag!]! projects: [Project!]! } input DeleteAccountUserInput { accountId: ObjectID! userId: ObjectID! } type DeleteAccountUserPayload { account: Account! deleted: Boolean! } input DeleteAdobeAnalyticsProjectReportSuiteInput { adobeAnalyticsProjectReportSuiteId: ObjectID! } type DeleteAdobeAnalyticsProjectReportSuitePayload { adobeAnalyticsProjectReportSuite: AdobeAnalyticsProjectReportSuite! } input DeleteAdobeOauthServerToServerConnectionInput { adobeOauthServerToServerConnectionId: ObjectID! deleteProjectReportSuites: Boolean! = false } type DeleteAdobeOauthServerToServerConnectionPayload { adobeOauthServerToServerConnection: AdobeOauthServerToServerConnection! } input DeleteAiVisibilityBrandDomainInput { """ The account ID """ accountId: ObjectID! """ The brand-domain row to delete """ aiVisibilityBrandDomainId: ObjectID! } type DeleteAiVisibilityBrandDomainPayload { """ The brand the domain was detached from """ aiVisibilityBrandId: ObjectID! """ The domain that was detached """ deletedDomain: String! } input DeleteAiVisibilityProjectAiProviderInput { accountId: ObjectID! aiVisibilityAiProviderId: ObjectID! aiVisibilityProjectId: ObjectID! } type DeleteAiVisibilityProjectAiProviderPayload { aiVisibilityProjectAiProvider: AiVisibilityProjectAiProvider! } input DeleteAiVisibilityProjectInput { accountId: ObjectID! aiVisibilityProjectId: ObjectID! } type DeleteAiVisibilityProjectPayload { aiVisibilityProject: AiVisibilityProject! } input DeleteAiVisibilityPromptInput { accountId: ObjectID! aiVisibilityPromptId: ObjectID! } type DeleteAiVisibilityPromptPayload { aiVisibilityPrompt: AiVisibilityPrompt! } input DeleteAiVisibilitySuggestedPromptInput { accountId: ObjectID! aiVisibilityProjectId: ObjectID! aiVisibilitySuggestedPromptId: ObjectID! } type DeleteAiVisibilitySuggestedPromptPayload { aiVisibilitySuggestedPrompt: AiVisibilitySuggestedPrompt! } input DeleteAiVisibilitySuggestedTopicInput { accountId: ObjectID! aiVisibilityProjectId: ObjectID! aiVisibilitySuggestedTopicId: ObjectID! } type DeleteAiVisibilitySuggestedTopicPayload { aiVisibilitySuggestedTopic: AiVisibilitySuggestedTopic! } input DeleteAiVisibilityTopicInput { accountId: ObjectID! aiVisibilityTopicId: ObjectID! } type DeleteAiVisibilityTopicPayload { aiVisibilityTopic: AiVisibilityTopic! } input DeleteBuildScheduleInput { buildScheduleId: ObjectID! } type DeleteBuildSchedulePayload { buildSchedule: BuildSchedule! } input DeleteCrawlInput { crawlId: ObjectID! } type DeleteCrawlPayload { crawl: Crawl! } type DeleteCustomChartPayload { customChart: CustomChart! } input DeleteCustomDashboardCollectionInput { customDashboardCollectionId: ObjectID! } type DeleteCustomDashboardCollectionPayload { customDashboardCollection: CustomDashboardCollection! } type DeleteCustomDashboardPayload { customDashboard: CustomDashboard! } input DeleteCustomMetricContainerGenerationInput { customMetricContainerGenerationId: ObjectID! } type DeleteCustomMetricContainerGenerationPayload { customMetricContainerGeneration: CustomMetricContainerGeneration! } input DeleteCustomMetricContainerInput { customMetricContainerId: ObjectID! } type DeleteCustomMetricContainerPayload { customMetricContainer: CustomMetricContainer! } input DeleteCustomMetricContainerProjectSecretInput { customMetricContainerId: ObjectID! name: String! projectId: ObjectID! } type DeleteCustomMetricContainerProjectSecretPayload { customMetricContainerProjectSecret: CustomMetricContainerProjectSecret! } input DeleteCustomMetricContainerSecretInput { customMetricContainerId: ObjectID! name: String! } type DeleteCustomMetricContainerSecretPayload { customMetricContainerSecret: CustomMetricContainerSecret! } input DeleteCustomReportTemplateInput { customReportTemplateId: ObjectID! } type DeleteCustomReportTemplatePayload { customReportTemplate: CustomReportTemplate! } type DeleteCustomTablePayload { customTable: CustomTable! } input DeleteCustomViewsInput { customViewIds: [ObjectID!]! } type DeleteCustomViewsPayload { customViews: [CustomView!]! } input DeleteElementOptimisationRequestInput { elementOptimisationRequestId: ObjectID! } type DeleteElementOptimisationRequestPayload { elementOptimisationRequest: ElementOptimisationRequest! } input DeleteGoogleAnalytics4ProjectPropertyInput { projectId: ObjectID! } type DeleteGoogleAnalytics4ProjectPropertyPayload { googleAnalytics4ProjectProperty: GoogleAnalytics4ProjectProperty! } input DeleteGoogleConnectionInput { googleConnectionId: ObjectID! } type DeleteGoogleConnectionPayload { googleConnection: GoogleConnection! } input DeleteGoogleSearchConsoleAiVisibilityPropertyInput { googleSearchConsoleAiVisibilityPropertyId: ObjectID! } type DeleteGoogleSearchConsoleAiVisibilityPropertyPayload { googleSearchConsoleAiVisibilityProperty: GoogleSearchConsoleAiVisibilityProperty! } input DeleteGoogleSearchConsoleConfigurationInput { projectId: ObjectID! } type DeleteGoogleSearchConsoleConfigurationPayload { googleSearchConsoleConfiguration: GoogleSearchConsoleConfiguration! } input DeleteGoogleSearchConsolePropertyInput { googleSearchConsolePropertyId: ObjectID! } type DeleteGoogleSearchConsolePropertyPayload { googleSearchConsoleProperty: GoogleSearchConsoleProperty! } input DeleteHealthScoreTestInput { healthScoreTestId: ObjectID! } type DeleteHealthScoreTestPayload { healthScoreTest: HealthScoreTest! } input DeleteHealthScoreTestsInput { healthScoreTestIds: [ObjectID!]! } type DeleteHealthScoreTestsPayload { healthScoreTests: [HealthScoreTest!]! } input DeleteJiraAuthenticationInput { jiraAuthenticationId: ObjectID! } type DeleteJiraAuthenticationPayload { jiraAuthentication: JiraAuthentication! } input DeleteJiraIntegrationInput { jiraIntegrationId: ObjectID! } type DeleteJiraIntegrationPayload { jiraIntegration: JiraIntegration! } input DeleteLegacyTaskExternalLinkInput { legacyTaskExternalLinkId: ObjectID! } type DeleteLegacyTaskExternalLinkPayload { legacyTaskExternalLink: LegacyTaskExternalLink! } input DeleteLegacyTaskInput { legacyTaskId: ObjectID! } type DeleteLegacyTaskPayload { legacyTask: LegacyTask! } """ Deletes a log source and detaches it from every project using it. Per-project settings are removed with it. """ input DeleteLogManagerConnectionInput { logManagerConnectionId: ObjectID! } type DeleteLogManagerConnectionPayload { logManagerConnection: LogManagerConnection! } """ Detaches a log source from a project, discarding its per-project settings. To stop it feeding crawls while keeping the settings, set `enabled` to false instead. """ input DeleteLogManagerProjectSettingsInput { logManagerProjectSettingsId: ObjectID! } type DeleteLogManagerProjectSettingsPayload { logManagerProjectSettings: LogManagerProjectSettings! project: Project! } input DeleteLogzioConnectionInput { logzioConnectionId: ObjectID! } type DeleteLogzioConnectionPayload { logzioConnection: LogzioConnection! } input DeleteLogzioProjectQueryInput { logzioProjectQueryId: ObjectID! } type DeleteLogzioProjectQueryPayload { logzioProjectQuery: LogzioProjectQuery! } input DeletePageTypeInput { pageTypeId: ObjectID! } type DeletePageTypePayload { pageType: PageType! } input DeleteProjectAiVisibilitySettingsInput { projectAiVisibilitySettingsId: ObjectID! } type DeleteProjectAiVisibilitySettingsPayload { projectAiVisibilitySettings: ProjectAiVisibilitySettings! } type DeleteProjectPayload { project: Project! } input DeleteReportDownloadInput { reportDownloadId: ObjectID! } type DeleteReportDownloadPayload { reportDownload: ReportDownload! } input DeleteReportTemplateOverrideInput { aggregateCode: String projectId: ObjectID! reportTemplateCode: String! } type DeleteReportTemplateOverridePayload { reportTemplateOverride: ReportTemplateOverride! } input DeleteScheduleInput { scheduleId: ObjectID! } type DeleteSchedulePayload { schedule: Schedule! } """ A schema template to remove from its template set. Its ids are never reused. """ input DeleteSchemaTemplateInput { """ The set `version` the change is based on. When given, the delete is rejected if the set has been saved since. """ expectedVersion: Int """ The template set holding the template. """ schemaTemplateSetId: ObjectID! """ The template to delete. """ templateId: String! } """ The result of deleting a schema template. """ type DeleteSchemaTemplatePayload { schemaTemplateSet: SchemaTemplateSet! """ Problems that did not stop the save, such as a schema.org type the validator does not know. """ warnings: [SchemaTemplateDiagnostic!]! } input DeleteSegmentInput { segmentId: ObjectID! } type DeleteSegmentPayload { segment: Segment! } input DeleteServiceAccountInput { id: ObjectID! } input DeleteServiceAccountIpRangeInput { serviceAccountIpRangeId: ObjectID! } type DeleteServiceAccountIpRangePayload { serviceAccountIpRange: ServiceAccountIpRange! } type DeleteServiceAccountPayload { serviceAccount: ServiceAccount! } input DeleteSitemapInput { projectId: ObjectID! urlDigest: String! } type DeleteSitemapPayload { sitemaps: [Sitemap!]! } input DeleteSlackWebhookInput { slackWebhookId: ObjectID! } type DeleteSlackWebhookPayload { slackWebhook: SlackWebhook! } input DeleteSplunkConnectionInput { splunkConnectionId: ObjectID! } type DeleteSplunkConnectionPayload { splunkConnection: SplunkConnection! } input DeleteSplunkProjectQueryInput { splunkProjectQueryId: ObjectID! } type DeleteSplunkProjectQueryPayload { splunkProjectQuery: SplunkProjectQuery! } input DeleteSsoConnectionInput { accountId: ObjectID! } type DeleteSsoConnectionPayload { ssoConnection: SSOConnection! } input DeleteTestInput { testId: ObjectID! } type DeleteTestPayload { test: Test! } input DeleteTestSuiteEmailAlertInput { testSuiteEmailAlertId: ObjectID! } type DeleteTestSuiteEmailAlertPayload { testSuiteEmailAlert: TestSuiteEmailAlert! } input DeleteTestSuiteInput { testSuiteId: ObjectID! } type DeleteTestSuitePayload { testSuite: TestSuite! } input DeleteTestsInput { testIds: [ObjectID!]! } type DeleteTestsPayload { tests: [Test!]! } input DeleteTopicConfigurationInput { topicConfigurationId: ObjectID! } type DeleteTopicConfigurationPayload { topicConfiguration: TopicConfiguration! } input DeleteUrlFileUploadInput { urlFileUploadId: ObjectID! } type DeleteUrlFileUploadPayload { urlFileUpload: UrlFileUpload! } input DeleteUserKeyInput { userKeyId: ObjectID! } type DeleteUserKeyPayload { userKey: UserKey! } input DeleteWebBotAuthSignatureInput { webBotAuthSignatureId: ObjectID! } type DeleteWebBotAuthSignaturePayload { webBotAuthSignature: WebBotAuthSignature! } input DeleteWebhookInput { webhookId: ObjectID! } type DeleteWebhookPayload { webhook: Webhook! } input DisableSitemapInput { projectId: ObjectID! urlDigest: String! } type DisableSitemapPayload { sitemaps: [Sitemap!]! } input DisableSitemapsInput { projectId: ObjectID! """ When no value is provided, all sitemaps get disabled. """ urlDigests: [String!] } type DisableSitemapsPayload { sitemaps: [Sitemap!]! } type DomainCheckVariant { domain: String! redirectsTo: String redirectsToStatusCode: Int statusCode: Int } type ElementOptimisationRequest { createdAt: DateTime! failedAt: DateTime failureReason: String generatedAt: DateTime generatingAt: DateTime id: ObjectID! rawID: String! result: ElementOptimisationRequestResult searchQueryDigests: [String!]! status: ElementOptimisationRequestStatus! updatedAt: DateTime! url: String! urlDigest: String! } type ElementOptimisationRequestConnection { """ A list of edges. """ edges: [ElementOptimisationRequestEdge!]! """ A list of nodes. """ nodes: [ElementOptimisationRequest!]! """ Information to aid in pagination. """ pageInfo: PageInfo! """ Identifies the total count of ElementOptimisationRequests in the connection. """ totalCount: Int! } input ElementOptimisationRequestConnectionFilterInput { """ Groups each filter object using AND """ _and: [ElementOptimisationRequestConnectionFilterInput!] """ Groups each filter object using AND, wrapped inside NOT """ _not: [ElementOptimisationRequestConnectionFilterInput!] """ Groups each filter object using OR """ _or: [ElementOptimisationRequestConnectionFilterInput!] createdAt: ConnectionDateFilterInput failedAt: ConnectionDateFilterInput generatedAt: ConnectionDateFilterInput generatingAt: ConnectionDateFilterInput id: ConnectionObjectIDFilterInput status: ConnectionElementOptimisationRequestStatusFilterInput updatedAt: ConnectionDateFilterInput url: ConnectionStringFilterInput urlDigest: ConnectionStringFilterInput } type ElementOptimisationRequestEdge { """ A cursor to use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: ElementOptimisationRequest! } input ElementOptimisationRequestOrder { """ The ordering direction. """ direction: OrderDirection! """ The field to order ElementOptimisationRequests by. """ field: ElementOptimisationRequestOrderField! } enum ElementOptimisationRequestOrderField { createdAt failedAt generatedAt generatingAt id status updatedAt url urlDigest } type ElementOptimisationRequestResult { alternativePageTitles: [OptimisedPageTitle!] descriptionRelevance: Float h1TagRelevance: Float optimisedDescription: String optimisedDescriptionRelevance: Float optimisedH1Tag: String optimisedH1TagRelevance: Float optimisedPageTitle: String optimisedPageTitleRelevance: Float pageTitleRelevance: Float } enum ElementOptimisationRequestStatus { Created Failed Generated Generating } enum EmailAlertType { Fail Pass Warning } input EnableSitemapInput { projectId: ObjectID! urlDigest: String! } type EnableSitemapPayload { sitemaps: [Sitemap!]! } input EnableSitemapsInput { projectId: ObjectID! """ When no value is provided, all sitemaps get enabled. """ urlDigests: [String!] } type EnableSitemapsPayload { sitemaps: [Sitemap!]! } union Entity = | AccessibilityIssueSolutionSuggestion | Account | AccountTag | AdobeAnalyticsProjectReportSuite | AdobeOauthServerToServerConnection | Build | BuildSchedule | BuildScheduleRun | BuildScheduleTestSuite | Crawl | CrawlSetting | CrawlTypeMetadata | CrawlUrl | CreditReportExport | CustomChart | CustomDashboard | CustomDashboardCollection | CustomMetricContainer | CustomMetricContainerGeneration | CustomMetricContainerVersion | CustomMetricUploadContainer | CustomReportTemplate | CustomTable | CustomView | ElementOptimisationRequest | GoogleAnalytics4ProjectProperty | GoogleConnection | GoogleSearchConsoleAiVisibilityProperty | GoogleSearchConsoleProperty | HealthScoreTest | HealthScoreTestResult | JiraAuthentication | JiraIntegration | LegacyTask | LegacyTaskExternalLink | Location | LogManagerConnection | LogManagerProjectSettings | LogzioConnection | LogzioProjectQuery | PageType | Project | ProjectAiVisibilitySettings | ReportDownload | ReportTemplate | Schedule | ScheduleLog | SchemaTemplateSet | Segment | ServiceAccount | ServiceAccountKey | SinglePageRequesterRequest | SlackWebhook | SplunkConnection | SplunkProjectQuery | Test | TestResult | TestSuite | TestSuiteEmailAlert | TestSuiteJiraIntegration | TopicConfiguration | UrlFileUpload | UrlFileUploadType | User | UserInvite | WebBotAuthSignature | Webhook type ExternalSourceExtraction { error: String externalSourceType: ExternalSourceType! progressCompleted: Int progressTotal: Int requestedBy: String sentAt: DateTime! status: ExternalSourceExtractionStatus! terminationReason: ExternalSourceTerminationReason } type ExternalSourceExtractionConnection { """ A list of edges. """ edges: [ExternalSourceExtractionEdge!]! """ A list of nodes. """ nodes: [ExternalSourceExtraction!]! """ Information to aid in pagination. """ pageInfo: PageInfo! """ Identifies the total count of ExternalSourceExtractions in the connection. """ totalCount: Int! } input ExternalSourceExtractionConnectionFilterInput { """ Groups each filter object using AND """ _and: [ExternalSourceExtractionConnectionFilterInput!] """ Groups each filter object using AND, wrapped inside NOT """ _not: [ExternalSourceExtractionConnectionFilterInput!] """ Groups each filter object using OR """ _or: [ExternalSourceExtractionConnectionFilterInput!] externalSourceType: ConnectionExternalSourceTypeFilterInput status: ConnectionExternalSourceExtractionStatusFilterInput terminationReason: ConnectionExternalSourceTerminationReasonFilterInput } type ExternalSourceExtractionEdge { """ A cursor to use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: ExternalSourceExtraction! } input ExternalSourceExtractionOrder { """ The ordering direction. """ direction: OrderDirection! """ The field to order ExternalSourceExtractions by. """ field: ExternalSourceExtractionOrderField! } enum ExternalSourceExtractionOrderField { externalSourceType status terminationReason } enum ExternalSourceExtractionStatus { Running Succeeded Terminated } enum ExternalSourceTerminationReason { ManualStop SystemStop } enum ExternalSourceType { AdobeAnalytics AiVisibility GoogleAnalytics4 GoogleSearchConsole LogManager Logzio Majestic Sitemaps Splunk Tasks UrlFileUploads } type FeatureCost { costs: [FeatureCostCost!]! description: String! name: String! projectSetting: String! } type FeatureCostCost { cost: Float! moduleCode: ModuleCode! } type FeatureFlag { enabled: Boolean! name: String! } type FloatRangeAgg { buckets: [FloatRangeAggBucket!]! """ A name of the metric. Matches the input. """ metric: String! """ A name of the bucket. Matches the input. """ name: String! } type FloatRangeAggBucket { """ A count of rows having the metric value within the specified range. """ count: Int! from: Float to: Float } input FloatRangeAggInput { """ A name of the metric, for example in case of CrawlUrl it can be "fetchTime". Only Float metrics are allowed. """ metric: String! """ A name of your bucket. Can contains only letters, numbers, underscore or dash characters. """ name: String! """ A list of ranges for which to retrieve rows count. """ ranges: [FloatRangeAggRangeInput!]! } input FloatRangeAggRangeInput { from: Float to: Float } input GenerateAiVisibilityOnboardingInput { brandName: String """ Whether the generated prompts name the brand. True asks for every prompt to be branded, false for none to be. Omitted or null keeps the default mix, where about three in ten prompts are branded and a `topicName` request has none. Generation is asked for this mix, not held to it, so read each prompt's tag from `taggedPrompts` in the returned suggestions. """ branded: Boolean """ Target country as an ISO 3166-1 alpha-2 code, e.g. GB. Null means worldwide; omitted country may be inferred from clear website evidence. """ country: String domain: String """ Output language as an ISO 639-1 code, e.g. en. Explicit selection wins; omitted language defaults to English unless website evidence unambiguously supports another language. """ language: String onboardingToken: String! """ How many prompts to generate for each topic, from 1 to 5. Defaults to 2. A generation produces at most 10 prompts: the number of topics (`topicCount`, 5 when omitted, or 1 when `topicName` is set) times `promptsPerTopic`. A request above that is refused with ARGUMENT_VALIDATION_ERROR. """ promptsPerTopic: Int """ How many topics to generate, from 1 to 5. Defaults to 5. Ignored when `topicName` is set, which generates that one topic. """ topicCount: Int """ Generate prompts for this topic only. Omit to generate a complete setup. """ topicName: String } input GenerateAiVisibilitySuggestedPromptsInput { accountId: ObjectID! aiVisibilityBrandId: ObjectID! aiVisibilityProjectId: ObjectID! aiVisibilityTopicId: ObjectID! """ Number of suggestions to generate (default: 5, max: 20) """ count: Int } type GenerateAiVisibilitySuggestedPromptsPayload { suggestions: [AiVisibilitySuggestedPrompt!]! } input GenerateAiVisibilitySuggestedTopicsInput { accountId: ObjectID! aiVisibilityBrandId: ObjectID! aiVisibilityProjectId: ObjectID! """ Number of suggestions to generate (default: 5, max: 20) """ count: Int """ Number of prompts per topic (default: 3, max: 10) """ promptsPerTopic: Int } type GenerateAiVisibilitySuggestedTopicsPayload { suggestions: [AiVisibilitySuggestedTopic!]! } input GenerateAiVisibilityTopicMetadataInput { accountId: ObjectID! """ Project for an unsaved topic. Required when aiVisibilityTopicId is omitted. """ aiVisibilityProjectId: ObjectID """ Existing topic to generate for (pulls its name + prompts). Provide this, OR aiVisibilityProjectId + topicName for an unsaved topic (e.g. the creation form). """ aiVisibilityTopicId: ObjectID """ Prompts the user has entered for an unsaved topic, used to ground generation. Ignored when aiVisibilityTopicId is given (the topic's stored prompts are used). """ prompts: [String!] """ Topic name for an unsaved topic. Required when aiVisibilityTopicId is omitted. """ topicName: String } type GenerateAiVisibilityTopicMetadataPayload { """ Suggested topic description. """ description: String! """ Suggested keywords for the topic. """ keywords: [String!]! } input GenerateLegacyTaskTicketDetailsInput { crawlId: ObjectID legacyTaskId: ObjectID! } type GenerateLegacyTaskTicketDetailsPayload { legacyTask: LegacyTask! } input GetCustomReportInput { crawlId: ObjectID! customReportTemplateId: ObjectID! segmentId: ObjectID = null } input GetHealthScoreInput { crawlId: ObjectID! reportCategoryCode: String! segmentId: ObjectID } input GetJiraCreateFieldMetadataForProjectAndIssueTypeInput { jiraAuthenticationId: ObjectID! jiraIssueTypeId: String! jiraProjectId: String! maxResults: Int startAt: Int } input GetJiraFieldAutocompleteSuggestionsInput { autoCompleteUrl: String! jiraAuthenticationId: ObjectID! query: String } input GetJiraIssuePickerSuggestionsInput { jiraAuthenticationId: ObjectID! query: String! } type GetJiraIssuePickerSuggestionsPayload { sections: [JiraIssuePickerSuggestionSection!] } input GetJiraIssueTypesInput { jiraAuthenticationId: ObjectID! jiraProjectId: String! } input GetJiraProjectsInput { jiraAuthenticationId: ObjectID! nameContains: String } input GetReportStatInput { crawlId: ObjectID! reportTemplateCode: String! segmentId: ObjectID } input GetSsoConnectionInput { accountId: ObjectID! } type GoogleAnalytics4ConversionEvent { eventName: String! eventType: GoogleAnalytics4ConversionEventType! } input GoogleAnalytics4ConversionEventInput { eventName: String! eventType: GoogleAnalytics4ConversionEventType! } enum GoogleAnalytics4ConversionEventType { Additional Primary } type GoogleAnalytics4ProjectProperty { conversionEventNames: [String!] conversionEvents: [GoogleAnalytics4ConversionEvent!] createdAt: DateTime! displayName: String! googleConnection: GoogleConnection! id: ObjectID! lastNDays: Int! minimumSessions: Int! minimumViews: Int! project: Project! propertyName: String! rawID: String! source: GoogleAnalytics4SourceType! updatedAt: DateTime! } type GoogleAnalytics4Property { displayName: String! propertyName: String } enum GoogleAnalytics4SourceType { All BingOrganicSearchLandingPages GoogleOrganicSearchLandingPages OrganicSearchLandingPages } type GoogleAnalyticsView { accountName: String viewId: String viewName: String webPropertyId: String websiteUrl: String } type GoogleConnection { analytics4Properties: [GoogleAnalytics4Property!] analyticsViews: [GoogleAnalyticsView!] connectionType: GoogleConnectionType! conversionEventNames(propertyName: String!): [String!] createdAt: DateTime! id: ObjectID! isWorking: Boolean name: String! rawID: String! scopes: [GoogleScope!]! searchConsoleSites: [GoogleSearchConsoleSite!] updatedAt: DateTime! } type GoogleConnectionConnection { """ A list of edges. """ edges: [GoogleConnectionEdge!]! """ A list of nodes. """ nodes: [GoogleConnection!]! """ Information to aid in pagination. """ pageInfo: PageInfo! """ Identifies the total count of GoogleConnections in the connection. """ totalCount: Int! } type GoogleConnectionEdge { """ A cursor to use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: GoogleConnection! } enum GoogleConnectionType { ServiceAccount Web } type GoogleScope { name: String! } type GoogleSearchConsoleAiVisibilityProperty { aiVisibilityProject: AiVisibilityProject country: String createdAt: DateTime! excludeQueries: [String!] googleConnection: GoogleConnection! id: ObjectID! includeQueries: [String!] lastNDays: Int! minClicks: Int! permissionLevel: String rawID: String! searchType: GoogleSearchConsoleSearchType! siteUrl: String! updatedAt: DateTime! } type GoogleSearchConsoleAiVisibilityPropertyConnection { """ A list of edges. """ edges: [GoogleSearchConsoleAiVisibilityPropertyEdge!]! """ A list of nodes. """ nodes: [GoogleSearchConsoleAiVisibilityProperty!]! """ Information to aid in pagination. """ pageInfo: PageInfo! """ Identifies the total count of GoogleSearchConsoleAiVisibilityProperties in the connection. """ totalCount: Int! } type GoogleSearchConsoleAiVisibilityPropertyEdge { """ A cursor to use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: GoogleSearchConsoleAiVisibilityProperty! } input GoogleSearchConsoleAiVisibilityPropertyOrder { """ The ordering direction. """ direction: OrderDirection! """ The field to order GoogleSearchConsoleAiVisibilityProperties by. """ field: GoogleSearchConsoleAiVisibilityPropertyOrderField! } enum GoogleSearchConsoleAiVisibilityPropertyOrderField { createdAt siteUrl updatedAt } type GoogleSearchConsoleConfiguration { country: String createdAt: DateTime! excludeQueries: [String!] includeQueries: [String!] lastNDays: Int! minClicks: Int! queryMaxLength: Int queryMinLength: Int searchQueriesLimitPerProperty: Int! searchQueriesMinClicks: Int! searchType: GoogleSearchConsoleSearchType! updatedAt: DateTime! useSearchConsolePropertyDomainsAsStartUrls: Boolean! } type GoogleSearchConsoleProperty { country: String createdAt: DateTime! excludeQueries: [String!] googleConnection: GoogleConnection! id: ObjectID! includeQueries: [String!] lastNDays: Int! minClicks: Int! permissionLevel: String project: Project! rawID: String! searchType: GoogleSearchConsoleSearchType! siteUrl: String! updatedAt: DateTime! } type GoogleSearchConsolePropertyConnection { """ A list of edges. """ edges: [GoogleSearchConsolePropertyEdge!]! """ A list of nodes. """ nodes: [GoogleSearchConsoleProperty!]! """ Information to aid in pagination. """ pageInfo: PageInfo! """ Identifies the total count of GoogleSearchConsoleProperties in the connection. """ totalCount: Int! } type GoogleSearchConsolePropertyEdge { """ A cursor to use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: GoogleSearchConsoleProperty! } input GoogleSearchConsolePropertyOrder { """ The ordering direction. """ direction: OrderDirection! """ The field to order GoogleSearchConsoleProperties by. """ field: GoogleSearchConsolePropertyOrderField! } enum GoogleSearchConsolePropertyOrderField { createdAt siteUrl updatedAt } enum GoogleSearchConsoleSearchType { Image Video Web } type GoogleSearchConsoleSite { permissionLevel: String siteUrl: String } type HealthScore { categoryWeight: Float crawl: Crawl! crawlId: ObjectID! createdAt: DateTime healthScore: Float healthScoreTestResults( after: String before: String """ Filtering options for HealthScoreTestResults returned from the connection. """ filter: HealthScoreTestResultConnectionFilterInput first: Int = 15 last: Int """ Ordering options for HealthScoreTestResults returned from the connection. """ orderBy: [HealthScoreTestResultOrder!] ): HealthScoreTestResultConnection! project: Project! projectId: ObjectID! reportCategory: ReportCategory! reportCategoryCode: String! segment: Segment segmentId: ObjectID segmentVersion: Int trend: [HealthScoreTrendItem!]! } type HealthScoreTest { """ The absolute number of pages in the report that will fail the test. """ absoluteThreshold: Float! """ Acceptance mode for automatic threshold, when test results get better """ automaticThresholdAcceptanceWhenTestResultIsBetter: TestAutoThresholdAcceptance """ Acceptance mode for automatic threshold, when test results get worse """ automaticThresholdAcceptanceWhenTestResultIsWorse: TestAutoThresholdAcceptance """ Whether the test's threshold should be adjusted by the automatic threshold algorithm or not. """ automaticThresholdEnabled: Boolean! createJiraTicketOnFailure: Boolean! createdAt: DateTime! healthScoreTestResults( after: String before: String """ Filtering options for HealthScoreTestResults returned from the connection. """ filter: HealthScoreTestResultConnectionFilterInput first: Int = 15 last: Int """ Ordering options for HealthScoreTestResults returned from the connection. """ orderBy: [HealthScoreTestResultOrder!] ): HealthScoreTestResultConnection! id: ObjectID! jiraTicketCustomNote: String """ ObjectID of the Project or TestSuite the health score test belongs to. """ projectId: ObjectID! rawID: String! """ Percentage of pages in the report (relative to all crawled pages) that will fail the test. """ relativeThreshold: Int! reportCategory: ReportCategory! reportCategoryCode: String! segment: Segment severity: Severity! """ The Project or TestSuite the health score test belongs to. Read `isTestSuite` on it to tell a CI/CD test suite apart from a regular crawl project. """ testSuite: TestSuite! """ Relational operator for threshold used to calculate test results. """ thresholdPredicate: ThresholdPredicate! """ Type of threshold used to calculate test results. """ thresholdType: ThresholdType! updatedAt: DateTime! } type HealthScoreTestConnection { """ A list of edges. """ edges: [HealthScoreTestEdge!]! """ A list of nodes. """ nodes: [HealthScoreTest!]! """ Information to aid in pagination. """ pageInfo: PageInfo! """ Identifies the total count of HealthScoreTests in the connection. """ totalCount: Int! } input HealthScoreTestConnectionFilterInput { """ Groups each filter object using AND """ _and: [HealthScoreTestConnectionFilterInput!] """ Groups each filter object using AND, wrapped inside NOT """ _not: [HealthScoreTestConnectionFilterInput!] """ Groups each filter object using OR """ _or: [HealthScoreTestConnectionFilterInput!] absoluteThreshold: ConnectionFloatFilterInput automaticThresholdAcceptanceWhenTestResultIsBetter: ConnectionTestAutoThresholdAcceptanceFilterInput automaticThresholdAcceptanceWhenTestResultIsWorse: ConnectionTestAutoThresholdAcceptanceFilterInput automaticThresholdEnabled: ConnectionBooleanFilterInput createJiraTicketOnFailure: ConnectionBooleanFilterInput createdAt: ConnectionDateFilterInput id: ConnectionObjectIDFilterInput relativeThreshold: ConnectionIntFilterInput severity: ConnectionStringFilterInput updatedAt: ConnectionDateFilterInput } type HealthScoreTestEdge { """ A cursor to use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: HealthScoreTest! } input HealthScoreTestOrder { """ The ordering direction. """ direction: OrderDirection! """ The field to order HealthScoreTests by. """ field: HealthScoreTestOrderField! } enum HealthScoreTestOrderField { absoluteThreshold automaticThresholdAcceptanceWhenTestResultIsBetter automaticThresholdAcceptanceWhenTestResultIsWorse createdAt relativeThreshold severity thresholdType updatedAt } type HealthScoreTestResult { absoluteThreshold: Float """ HealthScoreTest's value for automatic threshold acceptance when test results get better, at the time of testing """ automaticThresholdAcceptanceWhenTestResultIsBetter: TestAutoThresholdAcceptance """ HealthScoreTest's value for automatic threshold acceptance when test results get worse, at the time of testing """ automaticThresholdAcceptanceWhenTestResultIsWorse: TestAutoThresholdAcceptance crawlId: Int createdAt: DateTime! healthScore: HealthScore healthScorePercentage: Float healthScoreTest: HealthScoreTest healthScoreValue: Float id: ObjectID! passed: Boolean! rawID: String! relativeThreshold: Int reportCategory: ReportCategory! reportCategoryCode: String! segment: Segment severity: Severity! status: TestResultStatus! suggestedAbsoluteThreshold: Float suggestedAbsoluteThresholdAcceptedAt: DateTime suggestedAbsoluteThresholdRejectedAt: DateTime thresholdChangeType: ThresholdChangeType thresholdPredicate: ThresholdPredicate thresholdType: ThresholdType } type HealthScoreTestResultConnection { """ A list of edges. """ edges: [HealthScoreTestResultEdge!]! """ A list of nodes. """ nodes: [HealthScoreTestResult!]! """ Information to aid in pagination. """ pageInfo: PageInfo! """ Identifies the total count of HealthScoreTestResults in the connection. """ totalCount: Int! } input HealthScoreTestResultConnectionFilterInput { """ Groups each filter object using AND """ _and: [HealthScoreTestResultConnectionFilterInput!] """ Groups each filter object using AND, wrapped inside NOT """ _not: [HealthScoreTestResultConnectionFilterInput!] """ Groups each filter object using OR """ _or: [HealthScoreTestResultConnectionFilterInput!] automaticThresholdAcceptanceWhenTestResultIsBetter: ConnectionTestAutoThresholdAcceptanceFilterInput automaticThresholdAcceptanceWhenTestResultIsWorse: ConnectionTestAutoThresholdAcceptanceFilterInput crawlId: ConnectionIntFilterInput createdAt: ConnectionDateFilterInput passed: ConnectionBooleanFilterInput reportCategoryCode: ConnectionStringFilterInput severity: ConnectionStringFilterInput status: ConnectionTestResultStatusFilterInput suggestedAbsoluteThreshold: ConnectionFloatFilterInput suggestedAbsoluteThresholdAcceptedAt: ConnectionDateFilterInput suggestedAbsoluteThresholdRejectedAt: ConnectionDateFilterInput thresholdChangeType: ConnectionThresholdChangeTypeFilterInput } type HealthScoreTestResultEdge { """ A cursor to use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: HealthScoreTestResult! } input HealthScoreTestResultOrder { """ The ordering direction. """ direction: OrderDirection! """ The field to order HealthScoreTestResults by. """ field: HealthScoreTestResultOrderField! } enum HealthScoreTestResultOrderField { automaticThresholdAcceptanceWhenTestResultIsBetter automaticThresholdAcceptanceWhenTestResultIsWorse crawlId createdAt id passed reportCategoryCode severity status suggestedAbsoluteThresholdAcceptedAt suggestedAbsoluteThresholdRejectedAt } type HealthScoreTrendComputed { absDiff: HealthScoreTrendItem diff: HealthScoreTrendItem last: HealthScoreTrendItem } type HealthScoreTrendData { computed: HealthScoreTrendComputed! points: [HealthScoreTrendItem!]! reportCategoryCode: String! } type HealthScoreTrendItem { categoryWeight: Float crawlId: Int! createdAt: DateTime healthScore: Float segmentVersion: Int } type HealthScoreTrendsTableRow { columns: [HealthScoreTrendData!]! projectId: Int! segmentId: Int! } type Industry { code: String! label: String! } type IndustryBenchmark { healthScore: Float! industryCode: String! reportCategoryCode: String! } type IndustryBenchmarkConnection { """ A list of edges. """ edges: [IndustryBenchmarkEdge!]! """ A list of nodes. """ nodes: [IndustryBenchmark!]! """ Information to aid in pagination. """ pageInfo: PageInfo! """ Identifies the total count of IndustryBenchmarks in the connection. """ totalCount: Int! } input IndustryBenchmarkConnectionFilterInput { """ Groups each filter object using AND """ _and: [IndustryBenchmarkConnectionFilterInput!] """ Groups each filter object using AND, wrapped inside NOT """ _not: [IndustryBenchmarkConnectionFilterInput!] """ Groups each filter object using OR """ _or: [IndustryBenchmarkConnectionFilterInput!] healthScore: ConnectionFloatFilterInput industryCode: ConnectionStringFilterInput reportCategoryCode: ConnectionStringFilterInput } type IndustryBenchmarkEdge { """ A cursor to use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: IndustryBenchmark! } input IndustryBenchmarkOrder { """ The ordering direction. """ direction: OrderDirection! """ The field to order IndustryBenchmarks by. """ field: IndustryBenchmarkOrderField! } enum IndustryBenchmarkOrderField { healthScore industryCode reportCategoryCode } type IndustryConnection { """ A list of edges. """ edges: [IndustryEdge!]! """ A list of nodes. """ nodes: [Industry!]! """ Information to aid in pagination. """ pageInfo: PageInfo! """ Identifies the total count of Industries in the connection. """ totalCount: Int! } input IndustryConnectionFilterInput { """ Groups each filter object using AND """ _and: [IndustryConnectionFilterInput!] """ Groups each filter object using AND, wrapped inside NOT """ _not: [IndustryConnectionFilterInput!] """ Groups each filter object using OR """ _or: [IndustryConnectionFilterInput!] code: ConnectionStringFilterInput } type IndustryEdge { """ A cursor to use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: Industry! } input IndustryOrder { """ The ordering direction. """ direction: OrderDirection! """ The field to order Industries by. """ field: IndustryOrderField! } enum IndustryOrderField { code } type IntRangeAgg { buckets: [IntRangeAggBucket!]! """ A name of the metric. Matches the input. """ metric: String! """ A name of the bucket. Matches the input. """ name: String! } type IntRangeAggBucket { """ A count of rows having the metric value within the specified range. """ count: Int! from: Float to: Float } input IntRangeAggInput { """ A name of the metric, for example in case of CrawlUrl it can be "wordCount". Only Int metrics are allowed. """ metric: String! """ A name of your bucket. Can contains only letters, numbers, underscore or dash characters. """ name: String! """ A list of ranges for which to retrieve rows count. """ ranges: [IntRangeAggRangeInput!]! } input IntRangeAggRangeInput { from: Int to: Int } """ The `JSON` scalar type represents JSON values as specified by [ECMA-404](http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-404.pdf). """ scalar JSON @specifiedBy(url: "http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-404.pdf") """ The `JSONObject` scalar type represents JSON objects as specified by [ECMA-404](http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-404.pdf). """ scalar JSONObject @specifiedBy(url: "http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-404.pdf") type JiraAuthentication { cloudId: String! createdAt: DateTime! id: ObjectID! isWorking: Boolean! jiraIntegrations(after: String, before: String, first: Int = 15, last: Int): JiraIntegrationConnection! jiraUrl: String! name: String! rawID: String! updatedAt: DateTime! } type JiraAuthenticationConnection { """ A list of edges. """ edges: [JiraAuthenticationEdge!]! """ A list of nodes. """ nodes: [JiraAuthentication!]! """ Information to aid in pagination. """ pageInfo: PageInfo! """ Identifies the total count of JiraAuthentications in the connection. """ totalCount: Int! } type JiraAuthenticationEdge { """ A cursor to use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: JiraAuthentication! } type JiraField { allowedValues: [JiraFieldAllowedValue!] autoCompleteUrl: String hasDefaultValue: Boolean! id: String! key: String! name: String! required: Boolean! schema: JiraFieldSchema! } type JiraFieldAllowedValue { id: String name: String value: String } type JiraFieldAutocompleteSuggestion { label: String value: String! } type JiraFieldSchema { custom: String items: String system: String type: String! } type JiraIntegration { createdAt: DateTime! id: ObjectID! jiraIssueTypeId: String! jiraIssueTypeName: String! jiraProjectId: String! jiraProjectName: String! jiraUrl: String! name: String! rawID: String! testSuiteJiraIntegrations(after: String, before: String, first: Int = 15, last: Int): TestSuiteJiraIntegrationConnection! updatedAt: DateTime! } type JiraIntegrationConnection { """ A list of edges. """ edges: [JiraIntegrationEdge!]! """ A list of nodes. """ nodes: [JiraIntegration!]! """ Information to aid in pagination. """ pageInfo: PageInfo! """ Identifies the total count of JiraIntegrations in the connection. """ totalCount: Int! } type JiraIntegrationEdge { """ A cursor to use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: JiraIntegration! } type JiraIssuePickerSuggestion { id: Int img: String key: String keyHtml: String summary: String summaryText: String } type JiraIssuePickerSuggestionSection { id: String issues: [JiraIssuePickerSuggestion!] label: String msg: String sub: String } type JiraIssueType { id: String! name: String! } type JiraProject { id: String! key: String! name: String! } type JiraSettings { """ Authentication callback URL set up on Atlassian developer console for the current environment. """ authCallbackUrl: String! """ Client ID set up on Atlassian developer console for the current environment. """ clientId: String! """ Scopes set up on Atlassian developer console for the current environment. """ scopes: [String!]! } type LandingPageSummary { clicks: Int! ctr: Float! impressions: Int! isCrawled: Boolean """ Whether this landing page came from the customer's target search query upload. False for a page discovered by vector search or reported by Search Console, null for crawls transformed before the metric was introduced. """ isUploadedLandingPage: Boolean pageRelevance: Float position: Float! url: String! urlDigest: String! } type LanguageSummary { language: String! percentage: Float! } type LegacyTask { actions: String aggregateCode: String assignedTo: [String!] connectionFilter: JSONObject crawlId: ObjectID createdAt: DateTime! customReportTemplates( after: String before: String """ Filtering options for CustomReportTemplates returned from the connection. """ filter: CustomReportTemplateConnectionFilterInput first: Int = 15 last: Int """ Ordering options for CustomReportTemplates returned from the connection. """ orderBy: [CustomReportTemplateOrder!] ): CustomReportTemplateConnection! """ Custom reports for the last finished Crawl, available only for tagged URL tasks. """ customReports: [CustomReport!] deadlineAt: DateTime description: String discoveredAt: DateTime dismissed: Boolean! """ External links for the legacy task """ externalLinks: [LegacyTaskExternalLink!] filters: JSONObject fixedAt: DateTime howToFix: String id: ObjectID! identified: Int position: Int priority: LegacyTaskPriority! project: Project! rawID: String! remaining: Int reportTemplate: ReportTemplate reportTemplateId: Int reportType: ReportType reportTypeId: Int segment: Segment status: LegacyTaskStatus ticketCrawlId: Int ticketDetails: JSONObject ticketGenerationFinishedAt: DateTime ticketGenerationRequestedAt: DateTime title: String! trend: [LegacyTaskTrendEntry!] type: LegacyTaskType! updatedAt: DateTime! } type LegacyTaskConnection { """ A list of edges. """ edges: [LegacyTaskEdge!]! """ A list of nodes. """ nodes: [LegacyTask!]! """ Information to aid in pagination. """ pageInfo: PageInfo! """ Identifies the total count of LegacyTasks in the connection. """ totalCount: Int! } input LegacyTaskConnectionFilterInput { """ Groups each filter object using AND """ _and: [LegacyTaskConnectionFilterInput!] """ Groups each filter object using AND, wrapped inside NOT """ _not: [LegacyTaskConnectionFilterInput!] """ Groups each filter object using OR """ _or: [LegacyTaskConnectionFilterInput!] aggregateCode: ConnectionStringFilterInput createdAt: ConnectionDateFilterInput deadlineAt: ConnectionDateFilterInput description: ConnectionStringFilterInput discoveredAt: ConnectionDateFilterInput dismissed: ConnectionBooleanFilterInput fixedAt: ConnectionDateFilterInput identified: ConnectionIntFilterInput position: ConnectionIntFilterInput priority: ConnectionLegacyTaskPriorityFilterInput remaining: ConnectionIntFilterInput segmentId: ConnectionObjectIDFilterInput status: ConnectionLegacyTaskStatusFilterInput title: ConnectionStringFilterInput type: ConnectionLegacyTaskTypeFilterInput updatedAt: ConnectionDateFilterInput } type LegacyTaskEdge { """ A cursor to use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: LegacyTask! } type LegacyTaskExternalLink { createdAt: DateTime! """ The external URL of the issue in Jira """ externalUrl: String! id: ObjectID! jiraIssueDeleted: Boolean jiraIssueId: String jiraIssueKey: String jiraIssueResolutionDate: String jiraIssueStatus: String jiraIssueStatusCategoryKey: String jiraIssueSummary: String rawID: String! updatedAt: DateTime! } input LegacyTaskOrder { """ The ordering direction. """ direction: OrderDirection! """ The field to order LegacyTasks by. """ field: LegacyTaskOrderField! } enum LegacyTaskOrderField { createdAt deadlineAt description discoveredAt fixedAt id identified position priority remaining status title updatedAt } enum LegacyTaskPriority { Critical High Low Medium Note } enum LegacyTaskStatus { Backlog Done InProgress Testing ToDo } type LegacyTaskTrendEntry { crawlCreatedAt: DateTime! crawlId: ObjectID identified: Int } enum LegacyTaskType { Default TaggedURLs } input LinkChildTestSuiteToParentTestSuiteInput { childTestSuiteId: ObjectID! parentTestSuiteId: ObjectID! } type LinkChildTestSuiteToParentTestSuitePayload { childTestSuite: TestSuite! parentTestSuite: TestSuite! } input LinkCustomMetricContainerToProjectInput { """ Parameters that will be passed as part of the context when a container gets executed. """ containerParams: JSONObject customJsResources: [String!] customJsScripts: [String!] customMetricContainerId: ObjectID! enabled: Boolean! = true projectId: ObjectID! } type LinkCustomMetricContainerToProjectPayload { customMetricContainer: CustomMetricContainer! customMetricContainerProject: CustomMetricContainerProject! project: Project! } input LinkJiraIntegrationToTestSuiteInput { jiraIntegrationId: ObjectID! testSuiteId: ObjectID! } type LinkJiraIntegrationToTestSuitePayload { testSuiteJiraIntegration: TestSuiteJiraIntegration! } input LinkTestSuiteToBuildScheduleInput { buildScheduleId: ObjectID! testSuiteId: ObjectID! } type LinkTestSuiteToBuildSchedulePayload { buildScheduleTestSuite: BuildScheduleTestSuite! } type Location { code: LocationCode! enabled: Boolean! id: ObjectID! name: String! rawID: String! type: LocationType! } enum LocationCode { Australia Austria Belgium Brazil Canada China Custom Default Egypt France Germany Global GreatBritain India Italy Japan Mexico Netherlands Pakistan Poland Singapore SouthKorea Spain Switzerland Turkey UnitedStates Uzbekistan } enum LocationType { Country CustomIP DynamicIP Global StaticIP } type LogManagerConnection { createdAt: DateTime! id: ObjectID! """ Customer-chosen name for the log source, e.g. `Acme Corp — CDN production`. """ name: String! projects( after: String before: String """ Filtering options for Projects returned from the connection. """ filter: ProjectConnectionFilterInput first: Int = 15 last: Int """ Ordering options for Projects returned from the connection. """ orderBy: [ProjectOrder!] ): ProjectConnection! """ The CDN or web host the logs come from. Immutable once the connection exists. """ provider: LogManagerProvider! rawID: String! """ Whether the log pipeline is delivering. Set by Lumar support as they configure the connection, not by a live credential check. """ status: LogManagerConnectionStatus! """ Explanation to show alongside a `connection_error` status, written by Lumar support. `null` when there is nothing to explain. """ statusMessage: String """ Handle for this log source, generated by Lumar or matched by support to an existing pipeline, e.g. `lm_9f3a4b7c1d2e5f60`. Quote it when contacting Lumar support: it is what identifies the source's log pipeline. An identifier, not a secret — credentials are exchanged separately. """ tenantId: String! updatedAt: DateTime! } type LogManagerConnectionConnection { """ A list of edges. """ edges: [LogManagerConnectionEdge!]! """ A list of nodes. """ nodes: [LogManagerConnection!]! """ Information to aid in pagination. """ pageInfo: PageInfo! """ Identifies the total count of LogManagerConnections in the connection. """ totalCount: Int! } input LogManagerConnectionConnectionFilterInput { """ Groups each filter object using AND """ _and: [LogManagerConnectionConnectionFilterInput!] """ Groups each filter object using AND, wrapped inside NOT """ _not: [LogManagerConnectionConnectionFilterInput!] """ Groups each filter object using OR """ _or: [LogManagerConnectionConnectionFilterInput!] createdAt: ConnectionDateFilterInput name: ConnectionStringFilterInput provider: ConnectionLogManagerProviderFilterInput status: ConnectionLogManagerConnectionStatusFilterInput tenantId: ConnectionStringFilterInput updatedAt: ConnectionDateFilterInput } type LogManagerConnectionEdge { """ A cursor to use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: LogManagerConnection! } input LogManagerConnectionOrder { """ The ordering direction. """ direction: OrderDirection! """ The field to order LogManagerConnections by. """ field: LogManagerConnectionOrderField! } enum LogManagerConnectionOrderField { createdAt id name provider status tenantId updatedAt } """ Whether a log manager connection's log pipeline is delivering. """ enum LogManagerConnectionStatus { BeingConfigured Connected ConnectionError } type LogManagerProjectSettings { """ User agents matching this regex are excluded from the AI bot bucket. """ aiUaNotRegexp: String """ User agents matching this regex count as AI bot requests. """ aiUaRegexp: String! """ Base URL log paths are resolved against. Falls back to the project's primary domain. """ baseUrl: String @deprecated(reason: "Log paths will always resolve against the project's primary domain. Scheduled for removal.") createdAt: DateTime! """ How many days of logs to fetch: the most recent complete days in the log store. A day counts as complete once the following day's logs have arrived, so the window usually ends the day before the crawl. """ dateRange: Int! """ User agents matching this regex are excluded from the desktop bucket. """ desktopUaNotRegexp: String """ User agents matching this regex count as desktop bot requests. """ desktopUaRegexp: String! """ Whether this log source feeds the project's crawls. """ enabled: Boolean! id: ObjectID! logManagerConnection: LogManagerConnection! """ Ignored. Log extraction does not cap the number of log rows it reads. """ maxRows: Int! @deprecated(reason: "Log extraction never applied this cap and never will. Scheduled for removal.") """ User agents matching this regex are excluded from the mobile bucket. """ mobileUaNotRegexp: String """ User agents matching this regex count as mobile bot requests. """ mobileUaRegexp: String! project: Project! rawID: String! updatedAt: DateTime! """ Ignored. Previously fetched logs since the last finished crawl instead of using `dateRange`. """ useLastCrawlDate: Boolean! @deprecated(reason: "No longer used: logs are always read for the last `dateRange` complete days. Scheduled for removal.") } type LogManagerProjectSettingsConnection { """ A list of edges. """ edges: [LogManagerProjectSettingsEdge!]! """ A list of nodes. """ nodes: [LogManagerProjectSettings!]! """ Information to aid in pagination. """ pageInfo: PageInfo! """ Identifies the total count of LogManagerProjectSettings in the connection. """ totalCount: Int! } input LogManagerProjectSettingsConnectionFilterInput { """ Groups each filter object using AND """ _and: [LogManagerProjectSettingsConnectionFilterInput!] """ Groups each filter object using AND, wrapped inside NOT """ _not: [LogManagerProjectSettingsConnectionFilterInput!] """ Groups each filter object using OR """ _or: [LogManagerProjectSettingsConnectionFilterInput!] createdAt: ConnectionDateFilterInput dateRange: ConnectionIntFilterInput enabled: ConnectionBooleanFilterInput maxRows: ConnectionIntFilterInput @deprecated(reason: "Log extraction never applied this cap and never will. Scheduled for removal.") updatedAt: ConnectionDateFilterInput useLastCrawlDate: ConnectionBooleanFilterInput @deprecated(reason: "No longer used: logs are always read for the last `dateRange` complete days. Scheduled for removal.") } type LogManagerProjectSettingsEdge { """ A cursor to use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: LogManagerProjectSettings! } input LogManagerProjectSettingsOrder { """ The ordering direction. """ direction: OrderDirection! """ The field to order LogManagerProjectSettings by. """ field: LogManagerProjectSettingsOrderField! } enum LogManagerProjectSettingsOrderField { createdAt dateRange enabled maxRows @deprecated(reason: "Log extraction never applied this cap and never will. Scheduled for removal.") updatedAt useLastCrawlDate @deprecated(reason: "No longer used: logs are always read for the last `dateRange` complete days. Scheduled for removal.") } """ The CDN or web host a log manager connection ingests access logs from. """ enum LogManagerProvider { Akamai AmazonCloudfront Cloudflare Fastly GoogleCloudCdn Other Shopify Squarespace Wix Wordpress } """ The group a log manager provider is presented under. """ enum LogManagerProviderCategory { Cdn Other WebHost } type LogManagerProviderInfo { category: LogManagerProviderCategory! """ Order the provider should be presented in within its category. """ displayOrder: Int! """ English display name of the provider, e.g. `Amazon CloudFront`. """ name: String! provider: LogManagerProvider! } type LogRequestAiBotSummary { aiBot: String! logRequests: Int! platform: String } input LogRequestAiBotSummaryObjectArrayMemberConnectionFilterInput { aiBot: ConnectionStringObjectArrayMemberFilterInput platform: ConnectionStringObjectArrayMemberFilterInput } enum LogzioAPIRegion { AsiaPacificSydney CanadaCentral EuropeFrankfurt EuropeLondon USEastNorthernVirginia WestEuropeNetherlands WestUS2Washington } type LogzioConnection { createdAt: DateTime! """ Basic information about the User who created the LogzioConnection. """ createdByUser: UserInfo! id: ObjectID! isWorking: Boolean! label: String logzioProjectQueries( after: String before: String """ Filtering options for LogzioProjectQueries returned from the connection. """ filter: LogzioProjectQueryConnectionFilterInput first: Int = 15 last: Int """ Ordering options for LogzioProjectQueries returned from the connection. """ orderBy: [LogzioProjectQueryOrder!] ): LogzioProjectQueryConnection! rawID: String! region: LogzioAPIRegion! token: String! @deprecated(reason: "Use `tokenLastFour` instead.") """ The last four characters of the connection token. """ tokenLastFour: String! updatedAt: DateTime! } type LogzioConnectionConnection { """ A list of edges. """ edges: [LogzioConnectionEdge!]! """ A list of nodes. """ nodes: [LogzioConnection!]! """ Information to aid in pagination. """ pageInfo: PageInfo! """ Identifies the total count of LogzioConnections in the connection. """ totalCount: Int! } input LogzioConnectionConnectionFilterInput { """ Groups each filter object using AND """ _and: [LogzioConnectionConnectionFilterInput!] """ Groups each filter object using AND, wrapped inside NOT """ _not: [LogzioConnectionConnectionFilterInput!] """ Groups each filter object using OR """ _or: [LogzioConnectionConnectionFilterInput!] createdAt: ConnectionDateFilterInput label: ConnectionStringFilterInput updatedAt: ConnectionDateFilterInput } type LogzioConnectionEdge { """ A cursor to use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: LogzioConnection! } input LogzioConnectionOrder { """ The ordering direction. """ direction: OrderDirection! """ The field to order LogzioConnections by. """ field: LogzioConnectionOrderField! } enum LogzioConnectionOrderField { createdAt label updatedAt } type LogzioProjectQuery { aiUaNotRegexp: String aiUaRegexp: String! baseUrl: String createdAt: DateTime! dateRange: Int! desktopUaNotRegexp: String desktopUaRegexp: String! domainFieldName: String enabled: Boolean! id: ObjectID! logzioConnection: LogzioConnection logzioSearchResponse( """ The request to https://api.logz.io/v1/search to be made using related LogzioConnection. See https://api-docs.logz.io/docs/logz/search/ for details. """ request: JSONObject! ): JSONObject maxRows: Int! mobileUaNotRegexp: String mobileUaRegexp: String! pathFieldName: String! project: Project! queryFilter: JSONObject rawID: String! updatedAt: DateTime! useLastCrawlDate: Boolean! userAgentFieldName: String! } type LogzioProjectQueryConnection { """ A list of edges. """ edges: [LogzioProjectQueryEdge!]! """ A list of nodes. """ nodes: [LogzioProjectQuery!]! """ Information to aid in pagination. """ pageInfo: PageInfo! """ Identifies the total count of LogzioProjectQueries in the connection. """ totalCount: Int! } input LogzioProjectQueryConnectionFilterInput { """ Groups each filter object using AND """ _and: [LogzioProjectQueryConnectionFilterInput!] """ Groups each filter object using AND, wrapped inside NOT """ _not: [LogzioProjectQueryConnectionFilterInput!] """ Groups each filter object using OR """ _or: [LogzioProjectQueryConnectionFilterInput!] createdAt: ConnectionDateFilterInput dateRange: ConnectionIntFilterInput enabled: ConnectionBooleanFilterInput maxRows: ConnectionIntFilterInput updatedAt: ConnectionDateFilterInput useLastCrawlDate: ConnectionBooleanFilterInput } type LogzioProjectQueryEdge { """ A cursor to use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: LogzioProjectQuery! } input LogzioProjectQueryOrder { """ The ordering direction. """ direction: OrderDirection! """ The field to order LogzioProjectQueries by. """ field: LogzioProjectQueryOrderField! } enum LogzioProjectQueryOrderField { createdAt dateRange enabled maxRows updatedAt useLastCrawlDate } """ A Lumar app a user can open. """ enum LumarApp { AiVisibility Analyze GeoStudio Impact Monitor Protect } type MajesticConfiguration { createdAt: DateTime! enabled: Boolean! maxRows: Int! updatedAt: DateTime! useHistoricData: Boolean! useRootDomain: Boolean! } input MergeAiVisibilityBrandsInput { """ The account ID """ accountId: ObjectID! """ The brand IDs that will be marked as merged (source brands) """ aiVisibilitySourceBrandIds: [ObjectID!]! """ The brand ID that will receive the combined data (target brand) """ aiVisibilityTargetBrandId: ObjectID! } type MergeAiVisibilityBrandsPayload { """ The source brands that were merged """ sourceBrands: [AiVisibilityBrand!]! """ The target brand that received the merged data """ targetBrand: AiVisibilityBrand! } input MergeAiVisibilityThemesInput { """ The account ID """ accountId: ObjectID! """ The AI Visibility project ID the themes belong to """ aiVisibilityProjectId: ObjectID! """ Theme IDs to merge (minimum two, distinct). There is no caller-designated source/target — the resulting theme may be one of the ones given or a new theme covering all of them. """ aiVisibilityThemeIds: [ObjectID!]! } type MergeAiVisibilityThemesPayload { """ Whether a new merge was queued. False when every requested theme already resolved to the same canonical theme (idempotent no-op) — nothing was queued. """ queued: Boolean! """ The requested themes as they stood at merge-request time. The merge is asynchronous, so the result is not reflected here and is not knowable at call time. There is currently no reliable way to detect when it has taken effect — getAiVisibilityThemeSentiments may not reflect it for some time. """ themes: [AiVisibilityMergeThemeResult!]! } type Metric { changedMetricCode: String code: String! connectionPredicates: [ConnectionPredicateMetadata!]! datasourceCode: DatasourceCode! description: String! metadata: MetricMetadata name: String! supportedModules: [ModuleCode!] type: MetricType! } type MetricMetadata { abbreviation: String availableFromTableTypeVersion: Int crawlType: CrawlType digestMetric: String """ The Datasource that can be queried by using the digestMetric (through CrawlDatasource.resource field). """ digestMetricDatasourceCode: DatasourceCode isCrawledMetric: String items: MetricMetadataItems jsonSchema: JSONObject newThresholds: MetricMetadataNewThresholds rendererOnly: Boolean reportTemplateCode: String siteSpeedScoring: MetricMetadataSiteSpeedScoring stringType: String thresholds: MetricMetadataThresholds unit: String } type MetricMetadataItems { properties: [MetricMetadataItemsProperty!] type: String } type MetricMetadataItemsProperty { connectionPredicates: [ConnectionPredicateMetadata!] maxDisplayLength: Int name: String! unit: String } type MetricMetadataNewThresholds { negative: String! neutral: String! positive: String! } type MetricMetadataSiteSpeedScoring { desktop: MetricMetadataSiteSpeedScoringDetails! mobile: MetricMetadataSiteSpeedScoringDetails! } type MetricMetadataSiteSpeedScoringDetails { median: Float! p10: Float! } type MetricMetadataThresholds { fast: String! medium: String! slow: String! } enum MetricType { Array Bit Boolean Date Decimal Integer JSON String StringifiedJSON } type MetricsGrouping { metrics: [Metric!]! } enum MetricsServerId { ElasticSearch7Cluster1 } type Module { code: ModuleCode! customMetricContainers: [CustomMetricContainer!] datasourceCodes: [DatasourceCode!] datasources: [Datasource!] reportTemplates: [ReportTemplate!] serpentCrawlerQueryGraphType: SerpentCrawlerQueryGraphType! userAgentSuffixEnabled: Boolean! viewportHeightDesktop: Int! viewportHeightMobile: Int! viewportWidthDesktop: Int! viewportWidthMobile: Int! } enum ModuleCode { Accessibility Basic SEO SiteSpeed } input MoveCustomDashboardCollectionInput { customDashboardCollectionId: ObjectID! toPosition: Int! } type MoveCustomDashboardCollectionPayload { customDashboardCollection: CustomDashboardCollection! } type Mutation { abortBuild(input: AbortBuildInput!): AbortBuildPayload! acceptHealthScoreTestResultsSuggestedThreshold(input: AcceptHealthScoreTestResultsSuggestedThresholdInput!): AcceptHealthScoreTestResultsSuggestedThresholdPayload! acceptSuggestedThreshold(input: AcceptSuggestedThresholdInput!): [UpdateTestResultPayload!]! acceptTermsAndConditions: User! """ Start monitoring the existing free-scan project with the selected subscription's providers. Requires a provisioned trial or paid plan. """ activateAiVisibilityMonitoring(accountId: ObjectID!): Boolean! """ Adds email+password user to account. """ addAccountUser(input: AddAccountUserInput!): AddAccountUserPayload! addCustomDashboardsToCollection(input: AddCustomDashboardToCollectionInput!): UpdateCustomDashboardCollectionPayload! addCustomSitemaps(input: AddCustomSitemapsInput!): AddCustomSitemapsPayload! addCustomViewsToCustomDashboard(input: AddCustomViewsToCustomDashboardInput!): AddCustomViewsToCustomDashboardPayload! addCustomViewsToCustomDashboardCollection(input: AddCustomViewsToCollectionInput!): AddCustomViewsToCustomDashboardCollectionPayload! addSsoClientIpRange(input: AddSsoClientIpRangeInput!): AddSsoClientIpRangePayload! bulkAcceptHealthScoreTestResultSuggestedThresholds(input: SelectHealthScoreTestResultSuggestedThresholdsInput!): BulkProcessHealthScoreTestResultSuggestedThresholdsPayload! bulkAcceptSuggestedThresholds(input: SelectMonitorNotificationsStatusInput!): BulkProcessSuggestedThresholdsPayload! bulkRejectHealthScoreTestResultSuggestedThresholds(input: SelectHealthScoreTestResultSuggestedThresholdsInput!): BulkProcessHealthScoreTestResultSuggestedThresholdsPayload! bulkRejectSuggestedThresholds(input: SelectMonitorNotificationsStatusInput!): BulkProcessSuggestedThresholdsPayload! cancelBuild(input: CancelBuildInput!): CancelBuildPayload! """ Cancels crawling. """ cancelCrawling(input: CancelCrawlingInput!): CancelCrawlingPayload! """ Updates self-serve Account subscription to cancel at period end. """ cancelSelfServeAccountSubscription(input: CancelSelfServeAccountSubscriptionInput!): CancelSelfServeAccountSubscriptionPayload! checkDomain(input: CheckDomainInput!): CheckDomainPayload! cloneProject(projectId: ObjectID!): CloneProjectPayload! cloneTestSuite(input: CloneTestSuiteInput!): CloneTestSuitePayload! confirmEmail(input: ConfirmEmailInput!): ConfirmEmailPayload! convertAccountSubscriptionToChargebee(input: ConvertAccountSubscriptionToChargebeeInput!): ConvertAccountSubscriptionToChargebeePayload! copyCustomDashboard(input: CopyCustomDashboardInput!): CreateCustomDashboardPayload! copyCustomDashboardCollection(input: CopyCustomDashboardCollectionInput!): CreateCustomDashboardCollectionPayload! """ Copies non-segmented HealthScoreTests from one Project or TestSuite to another. Existing HealthScoreTest with the same reportCategoryCode will be overwritten """ copyHealthScoreTests(input: CopyHealthScoreTestsInput!): CopyHealthScoreTestsPayload! """ Copies non-CustomReport non-segmented and non-custom-extraction Tests from one Project or TestSuite to another. Existing tests with the same reportTemplateCode will be overwritten. """ copyTests(input: CopyTestsInput!): CopyTestsPayload! createAccessibilityIssueSolutionSuggestion(input: CreateAccessibilityIssueSolutionSuggestionInput!): CreateAccessibilityIssueSolutionSuggestionPayload createAccessibilityProject(input: CreateAccessibilityProjectInput!): CreateProjectPayload! createAccessibilityTestSuite(input: CreateAccessibilityTestSuiteInput!): CreateTestSuitePayload! createAccountSsoGroupRoleMapping(input: CreateAccountSsoGroupRoleMappingInput!): CreateAccountSsoGroupRoleMappingPayload! createAccountTag(input: CreateAccountTagInput!): CreateAccountTagPayload! """ Links account tags to AI Visibility Projects """ createAccountTagAiVisibilityProjects(input: CreateAccountTagAiVisibilityProjectsInput!): CreateAccountTagAiVisibilityProjectsPayload! """ Links account tags to projects """ createAccountTagProjects(input: CreateAccountTagProjectsInput!): CreateAccountTagProjectsPayload! createAdobeAnalyticsProjectReportSuite(input: CreateAdobeAnalyticsProjectReportSuiteInput!): CreateAdobeAnalyticsProjectReportSuitePayload! createAdobeOauthServerToServerConnection(input: CreateAdobeOauthServerToServerConnectionInput!): CreateAdobeOauthServerToServerConnectionPayload! createAiVisibilityBrandDomain(input: CreateAiVisibilityBrandDomainInput!): CreateAiVisibilityBrandDomainPayload! createAiVisibilityOnboarding(input: CreateAiVisibilityOnboardingInput!): CreateAiVisibilityOnboardingPayload! @rateLimit(limit: 3, duration: 60) createAiVisibilityProject(input: CreateAiVisibilityProjectInput!): CreateAiVisibilityProjectPayload! createAiVisibilityProjectAiProvider(input: CreateAiVisibilityProjectAiProviderInput!): CreateAiVisibilityProjectAiProviderPayload! createAiVisibilityPrompt(input: CreateAiVisibilityPromptInput!): CreateAiVisibilityPromptPayload! createAiVisibilityTopic(input: CreateAiVisibilityTopicInput!): CreateAiVisibilityTopicPayload! createAiVisibilityTopicsBulk(input: CreateAiVisibilityTopicsBulkInput!): CreateAiVisibilityTopicsBulkPayload! """ Creates a build and immediately runs a crawl for it. """ createAndRunBuild(input: CreateAndRunBuildInput!): CreateAndRunBuildPayload! """ Creates a build of trigger type Manual and immediately runs a crawl for it. """ createAndRunManualBuild(input: CreateAndRunBuildInput!): CreateAndRunBuildPayload! """ Generates auth token, that has 120 days expiration time. """ createAutomatorAuthToken: AuthToken! createAutomatorSlackWebhook(input: CreateSlackWebhookInput!): CreateSlackWebhookPayload! createBasicProject(input: CreateProjectInput!): CreateProjectPayload! createBillingPortalSession(input: CreateBillingPortalSessionInput!): BillingPortalSession! createBillingPortalSessionForPaymentMethodUpdate(input: CreateBillingPortalSessionForPaymentMethodUpdateInput!): BillingPortalSession! createBillingPortalSessionForSubscriptionUpdate(input: CreateBillingPortalSessionForSubscriptionUpdateInput!): BillingPortalSession! createBuildSchedule(input: CreateBuildScheduleInput!): CreateBuildSchedulePayload! """ Creates a Stripe Checkout Session, and invalidates any earlier one for this account. Refused while the account holds a subscription that has not ended for good, so check `selfServeSubscriptionState` before offering it. A Conflict means another change to this account was in flight - most often one of its own checkouts completing - so re-query rather than retrying blind. """ createCheckoutSession(input: CreateCheckoutSessionInput!): CreateCheckoutSessionPayload! @rateLimit(limit: 3, duration: 60) createCrawlUrlSegment(input: CreateCrawlUrlSegmentInput!): CreateCrawlUrlSegmentPayload! createCreditAllocationForSsoAccount(input: CreateCreditAllocationForSsoAccountInput!): CreateCreditAllocationForSsoAccountPayload! createCreditReportExport(input: CreateCreditReportExportInput!): CreateCreditReportExportPayload! createCustomChart(input: CreateCustomChartInput!): CreateCustomChartPayload! createCustomDashboard(input: CreateCustomDashboardInput!): CreateCustomDashboardPayload! createCustomDashboardCollection(input: CreateCustomDashboardCollectionInput!): CreateCustomDashboardCollectionPayload! createCustomMetricContainer(input: CreateCustomMetricContainerInput!): CreateCustomMetricContainerPayload! createCustomMetricContainerGeneration(input: CreateCustomMetricContainerGenerationInput!): CreateCustomMetricContainerGenerationPayload! createCustomMetricContainerVersion(input: CreateCustomMetricContainerVersionInput!): CreateCustomMetricContainerVersionPayload! """ Creates a CustomMetricContainerVersion in Processed state from an inline JavaScript handler and a JSON Schema 7 output schema. Supports a single request handler producing single-output metrics. """ createCustomMetricContainerVersionInline(input: CreateCustomMetricContainerVersionInlineInput!): CreateCustomMetricContainerVersionInlinePayload! createCustomMetricUploadContainer(input: CreateCustomMetricUploadContainerInput!): CreateCustomMetricUploadContainerPayload! createCustomReportTemplate(input: CreateCustomReportTemplateInput!): CreateCustomReportTemplatePayload! createCustomTable(input: CreateCustomTableInput!): CreateCustomTablePayload! createCustomView(input: CreateCustomViewsInput!): CreateCustomViewsPayload! createElementOptimisationRequest(input: CreateElementOptimisationRequestInput!): CreateElementOptimisationRequestPayload! createGoogleAnalytics4ProjectProperty(input: CreateGoogleAnalytics4ProjectPropertyInput!): CreateGoogleAnalytics4ProjectPropertyPayload! """ Creates a Google Analytics connection. """ createGoogleConnection(input: CreateGoogleConnectionInput!): CreateGoogleConnectionPayload! createGoogleSearchConsoleAiVisibilityProperty(input: CreateGoogleSearchConsoleAiVisibilityPropertyInput!): CreateGoogleSearchConsoleAiVisibilityPropertyPayload! createGoogleSearchConsoleConfiguration(input: CreateGoogleSearchConsoleConfigurationInput!): CreateGoogleSearchConsoleConfigurationPayload! createGoogleSearchConsoleProperty(input: CreateGoogleSearchConsolePropertyInput!): CreateGoogleSearchConsolePropertyPayload! createHealthScoreTest(input: CreateHealthScoreTestInput!): CreateHealthScoreTestPayload! createHealthScoreTests(inputs: [CreateHealthScoreTestInput!]!): CreateHealthScoreTestsPayload! createJiraIntegration(input: CreateJiraIntegrationInput!): CreateJiraIntegrationPayload! createLegacyTaskExternalLink(input: CreateLegacyTaskExternalLinkInput!): CreateLegacyTaskExternalLinkPayload! """ Registers a CDN or web host as a log source for the account and asks Lumar support to set its log delivery up. The source is created with status `BeingConfigured` and a Lumar-generated `tenantId` to quote when contacting support; credentials are exchanged separately, never through this mutation. """ createLogManagerConnection(input: CreateLogManagerConnectionInput!): CreateLogManagerConnectionPayload! """ Attaches a log source to a project and sets how its logs are ingested for that project. The log source and the project must belong to the same account, a project may have at most 30 log sources attached, and test suites cannot have log sources. """ createLogManagerProjectSettings(input: CreateLogManagerProjectSettingsInput!): CreateLogManagerProjectSettingsPayload! createLogzioConnection(input: CreateLogzioConnectionInput!): CreateLogzioConnectionPayload! createLogzioProjectQuery(input: CreateLogzioProjectQueryInput!): CreateLogzioProjectQueryPayload! createMajesticConfiguration(input: CreateMajesticConfigurationInput!): CreateMajesticConfigurationPayload! createPageType(input: CreatePageTypeInput!): CreatePageTypePayload! createProject(input: CreateProjectInput!): CreateProjectPayload! @deprecated(reason: "Use createSEOProject instead") createProjectAiVisibilitySettings(input: CreateProjectAiVisibilitySettingsInput!): CreateProjectAiVisibilitySettingsPayload! createReportDownload(input: CreateReportDownloadInput!): CreateReportDownloadPayload! createReportDownloadForCustomReport(input: CreateReportDownloadForCustomReportInput!): CreateReportDownloadForCustomReportPayload! createReportStatLegacyTask(input: CreateReportStatLegacyTaskInput!): CreateLegacyTaskPayload! createReportTemplateOverride(input: CreateReportTemplateOverrideInput!): CreateReportTemplateOverridePayload! createSEOProject(input: CreateProjectInput!): CreateProjectPayload! createSchedule(input: CreateScheduleInput!): CreateSchedulePayload! """ Adds a schema template to a project, creating its template set on the first one. """ createSchemaTemplate(input: CreateSchemaTemplateInput!): CreateSchemaTemplatePayload! """ Creates a project's schema template set. Fails if the project already has one. """ createSchemaTemplateSet(input: CreateSchemaTemplateSetInput!): CreateSchemaTemplateSetPayload! createSelfServeAccount(input: CreateSelfServeAccountInput!): CreateSelfServeAccountPayload! @rateLimit(limit: 3, duration: 60) createServiceAccount(input: CreateServiceAccountInput!): CreateServiceAccountPayload! createServiceAccountIpRange(input: CreateServiceAccountIpRangeInput!): CreateServiceAccountIpRangePayload! """ Creates a new API key for a service account. The full key is only visible once after creation. """ createServiceAccountKey(input: CreateServiceAccountKeyInput!): ServiceAccountKey! """ Creates new session using UserKey's id and secret. """ createSessionUsingUserKey(input: CreateSessionUsingUserKeyInputType!): Session! """ Creates new session using username (email) and password. """ createSessionUsingUsername(input: CreateSessionUsingUsernameInputType!): Session! @deprecated(reason: "To authenticate with API use `createSessionUsingUserKey` mutation instead.") createSignedUrlFileUpload(input: CreateSignedUrlFileUploadInput!): CreateSignedUrlFileUploadPayload! createSinglePageRequesterRequest(input: CreateSinglePageRequesterRequestInput!): CreateSinglePageRequesterRequestPayload createSiteSpeedProject(input: CreateSiteSpeedProjectInput!): CreateProjectPayload! createSiteSpeedTestSuite(input: CreateSiteSpeedTestSuiteInput!): CreateTestSuitePayload! createSplunkConnection(input: CreateSplunkConnectionInput!): CreateSplunkConnectionPayload! createSplunkProjectQuery(input: CreateSplunkProjectQueryInput!): CreateSplunkProjectQueryPayload! createSsoAccount(input: CreateSsoAccountInput!): CreateSsoAccountPayload! createSsoAccountSubscription(input: CreateSsoAccountSubscriptionInput!): CreateSsoAccountSubscriptionPayload! createSsoConnection(input: CreateSsoConnectionInput!): CreateSsoConnectionPayload! createTest(input: CreateTestInput!): CreateTestPayload! createTestSuite(input: CreateTestSuiteInput!): CreateTestSuitePayload! createTestSuiteEmailAlert(input: CreateTestSuiteEmailAlertInput!): CreateTestSuiteEmailAlertPayload! createTests(inputs: [CreateTestInput!]!): CreateTestsPayload! createTopicConfiguration(input: CreateTopicConfigurationInput!): CreateTopicConfigurationPayload! """ Invites a user via email to create SSO user on Lumar platform. """ createUserInvite(input: CreateUserInviteInput!): CreateUserInvitePayload! """ Generates a new personal API key for authentication. """ createUserKey(input: CreateUserKeyInput): UserKey! createWebBotAuthSignature(input: CreateWebBotAuthSignatureInput!): CreateWebBotAuthSignaturePayload! createWebhook(input: CreateWebhookInput!): CreateWebhookPayload! deleteAccountSsoGroupRoleMapping(input: DeleteAccountSsoGroupRoleMappingInput!): DeleteAccountSsoGroupRoleMappingPayload! deleteAccountTag(input: DeleteAccountTagInput!): DeleteAccountTagPayload! """ Unlinks account tags from AI Visibility Projects """ deleteAccountTagAiVisibilityProjects(input: DeleteAccountTagAiVisibilityProjectsInput!): DeleteAccountTagAiVisibilityProjectsPayload! """ Unlinks account tags from a projects """ deleteAccountTagProjects(input: DeleteAccountTagProjectsInput!): DeleteAccountTagProjectsPayload! deleteAccountUser(input: DeleteAccountUserInput!): DeleteAccountUserPayload! deleteAdobeAnalyticsProjectReportSuite(input: DeleteAdobeAnalyticsProjectReportSuiteInput!): DeleteAdobeAnalyticsProjectReportSuitePayload! deleteAdobeOauthServerToServerConnection(input: DeleteAdobeOauthServerToServerConnectionInput!): DeleteAdobeOauthServerToServerConnectionPayload! deleteAiVisibilityBrandDomain(input: DeleteAiVisibilityBrandDomainInput!): DeleteAiVisibilityBrandDomainPayload! deleteAiVisibilityProject(input: DeleteAiVisibilityProjectInput!): DeleteAiVisibilityProjectPayload! deleteAiVisibilityProjectAiProvider(input: DeleteAiVisibilityProjectAiProviderInput!): DeleteAiVisibilityProjectAiProviderPayload! deleteAiVisibilityPrompt(input: DeleteAiVisibilityPromptInput!): DeleteAiVisibilityPromptPayload! deleteAiVisibilitySuggestedPrompt(input: DeleteAiVisibilitySuggestedPromptInput!): DeleteAiVisibilitySuggestedPromptPayload! deleteAiVisibilitySuggestedTopic(input: DeleteAiVisibilitySuggestedTopicInput!): DeleteAiVisibilitySuggestedTopicPayload! deleteAiVisibilityTopic(input: DeleteAiVisibilityTopicInput!): DeleteAiVisibilityTopicPayload! deleteAutomatorSlackWebhook(input: DeleteSlackWebhookInput!): DeleteSlackWebhookPayload! deleteBuildSchedule(input: DeleteBuildScheduleInput!): DeleteBuildSchedulePayload! deleteCrawl(input: DeleteCrawlInput!): DeleteCrawlPayload! deleteCustomChart(customChartId: ObjectID!): DeleteCustomChartPayload! deleteCustomDashboard(customDashboardId: ObjectID!): DeleteCustomDashboardPayload! deleteCustomDashboardCollection(input: DeleteCustomDashboardCollectionInput!): DeleteCustomDashboardCollectionPayload! deleteCustomMetricContainer(input: DeleteCustomMetricContainerInput!): DeleteCustomMetricContainerPayload! deleteCustomMetricContainerGeneration(input: DeleteCustomMetricContainerGenerationInput!): DeleteCustomMetricContainerGenerationPayload! deleteCustomMetricContainerProjectSecret(input: DeleteCustomMetricContainerProjectSecretInput!): DeleteCustomMetricContainerProjectSecretPayload! deleteCustomMetricContainerSecret(input: DeleteCustomMetricContainerSecretInput!): DeleteCustomMetricContainerSecretPayload! deleteCustomReportTemplate(input: DeleteCustomReportTemplateInput!): DeleteCustomReportTemplatePayload! deleteCustomTable(customTableId: ObjectID!): DeleteCustomTablePayload! deleteCustomViews(input: DeleteCustomViewsInput!): DeleteCustomViewsPayload! deleteElementOptimisationRequest(input: DeleteElementOptimisationRequestInput!): DeleteElementOptimisationRequestPayload! deleteGoogleAnalytics4ProjectProperty(input: DeleteGoogleAnalytics4ProjectPropertyInput!): DeleteGoogleAnalytics4ProjectPropertyPayload! deleteGoogleConnection(input: DeleteGoogleConnectionInput!): DeleteGoogleConnectionPayload! deleteGoogleSearchConsoleAiVisibilityProperty(input: DeleteGoogleSearchConsoleAiVisibilityPropertyInput!): DeleteGoogleSearchConsoleAiVisibilityPropertyPayload! deleteGoogleSearchConsoleConfiguration(input: DeleteGoogleSearchConsoleConfigurationInput!): DeleteGoogleSearchConsoleConfigurationPayload! deleteGoogleSearchConsoleProperty(input: DeleteGoogleSearchConsolePropertyInput!): DeleteGoogleSearchConsolePropertyPayload! deleteHealthScoreTest(input: DeleteHealthScoreTestInput!): DeleteHealthScoreTestPayload! deleteHealthScoreTests(input: DeleteHealthScoreTestsInput!): DeleteHealthScoreTestsPayload! deleteJiraAuthentication(input: DeleteJiraAuthenticationInput!): DeleteJiraAuthenticationPayload! deleteJiraIntegration(input: DeleteJiraIntegrationInput!): DeleteJiraIntegrationPayload! deleteLegacyTask(input: DeleteLegacyTaskInput!): DeleteLegacyTaskPayload! deleteLegacyTaskExternalLink(input: DeleteLegacyTaskExternalLinkInput!): DeleteLegacyTaskExternalLinkPayload! """ Deletes a log source and detaches it from every project it was attached to. Lumar support is notified so the delivery pipeline can be decommissioned. """ deleteLogManagerConnection(input: DeleteLogManagerConnectionInput!): DeleteLogManagerConnectionPayload! """ Detaches a log source from one project, leaving the log source and its other projects untouched. """ deleteLogManagerProjectSettings(input: DeleteLogManagerProjectSettingsInput!): DeleteLogManagerProjectSettingsPayload! deleteLogzioConnection(input: DeleteLogzioConnectionInput!): DeleteLogzioConnectionPayload! deleteLogzioProjectQuery(input: DeleteLogzioProjectQueryInput!): DeleteLogzioProjectQueryPayload! deletePageType(input: DeletePageTypeInput!): DeletePageTypePayload! deleteProject(projectId: ObjectID!): DeleteProjectPayload! deleteProjectAiVisibilitySettings(input: DeleteProjectAiVisibilitySettingsInput!): DeleteProjectAiVisibilitySettingsPayload! deleteReportDownload(input: DeleteReportDownloadInput!): DeleteReportDownloadPayload! deleteReportTemplateOverride(input: DeleteReportTemplateOverrideInput!): DeleteReportTemplateOverridePayload! deleteSchedule(input: DeleteScheduleInput!): DeleteSchedulePayload! """ Deletes a schema template. Its ids are retired and never reused. """ deleteSchemaTemplate(input: DeleteSchemaTemplateInput!): DeleteSchemaTemplatePayload! deleteSegment(input: DeleteSegmentInput!): DeleteSegmentPayload! deleteServiceAccount(input: DeleteServiceAccountInput!): DeleteServiceAccountPayload! deleteServiceAccountIpRange(input: DeleteServiceAccountIpRangeInput!): DeleteServiceAccountIpRangePayload! """ Destroys current session. """ deleteSession: Session! deleteSitemap(input: DeleteSitemapInput!): DeleteSitemapPayload! deleteSplunkConnection(input: DeleteSplunkConnectionInput!): DeleteSplunkConnectionPayload! deleteSplunkProjectQuery(input: DeleteSplunkProjectQueryInput!): DeleteSplunkProjectQueryPayload! deleteSsoConnection(input: DeleteSsoConnectionInput!): DeleteSsoConnectionPayload! deleteTest(input: DeleteTestInput!): DeleteTestPayload! deleteTestSuite(input: DeleteTestSuiteInput!): DeleteTestSuitePayload! deleteTestSuiteEmailAlert(input: DeleteTestSuiteEmailAlertInput!): DeleteTestSuiteEmailAlertPayload! deleteTests(input: DeleteTestsInput!): DeleteTestsPayload! deleteTopicConfiguration(input: DeleteTopicConfigurationInput!): DeleteTopicConfigurationPayload! deleteUrlFileUpload(input: DeleteUrlFileUploadInput!): DeleteUrlFileUploadPayload! deleteUserKey(input: DeleteUserKeyInput!): DeleteUserKeyPayload! deleteWebBotAuthSignature(input: DeleteWebBotAuthSignatureInput!): DeleteWebBotAuthSignaturePayload! deleteWebhook(input: DeleteWebhookInput!): DeleteWebhookPayload! disableSitemap(input: DisableSitemapInput!): DisableSitemapPayload! disableSitemaps(input: DisableSitemapsInput!): DisableSitemapsPayload! enableSitemap(input: EnableSitemapInput!): EnableSitemapPayload! enableSitemaps(input: EnableSitemapsInput!): EnableSitemapsPayload! findOrCreateCustomView(input: CreateCustomViewsInput!): CreateCustomViewsPayload! generateAiVisibilityOnboarding(input: GenerateAiVisibilityOnboardingInput!): Boolean! @rateLimit(limit: 10, duration: 60) generateAiVisibilitySuggestedPrompts(input: GenerateAiVisibilitySuggestedPromptsInput!): GenerateAiVisibilitySuggestedPromptsPayload! @deprecated(reason: "Holds the request open while the suggestions are generated. Use `requestAiVisibilitySuggestedPromptsGeneration` and poll `getAiVisibilitySuggestedPromptGeneration` instead. Scheduled for removal.") generateAiVisibilitySuggestedTopics(input: GenerateAiVisibilitySuggestedTopicsInput!): GenerateAiVisibilitySuggestedTopicsPayload! generateAiVisibilityTopicMetadata(input: GenerateAiVisibilityTopicMetadataInput!): GenerateAiVisibilityTopicMetadataPayload! generateLegacyTaskTicketDetails(input: GenerateLegacyTaskTicketDetailsInput!): GenerateLegacyTaskTicketDetailsPayload! linkChildTestSuiteToParentTestSuite(input: LinkChildTestSuiteToParentTestSuiteInput!): LinkChildTestSuiteToParentTestSuitePayload! linkCustomMetricContainerToProject(input: LinkCustomMetricContainerToProjectInput!): LinkCustomMetricContainerToProjectPayload! linkJiraIntegrationToTestSuite(input: LinkJiraIntegrationToTestSuiteInput!): LinkJiraIntegrationToTestSuitePayload! linkTestSuiteToBuildSchedule(input: LinkTestSuiteToBuildScheduleInput!): LinkTestSuiteToBuildSchedulePayload! mergeAiVisibilityBrands(input: MergeAiVisibilityBrandsInput!): MergeAiVisibilityBrandsPayload! mergeAiVisibilityThemes(input: MergeAiVisibilityThemesInput!): MergeAiVisibilityThemesPayload! moveCustomDashboardCollection(input: MoveCustomDashboardCollectionInput!): MoveCustomDashboardCollectionPayload! """ Pauses crawling. """ pauseCrawling(input: PauseCrawlingInput!): PauseCrawlingPayload! """ Prices a proposed plan, interval and add-on set before it is committed, so a client never has to estimate proration itself. Creates and charges nothing. A change does not necessarily land in one piece - read `effect`, `appliesNow` and `scheduledChange` rather than assuming it all takes effect at once - and an immediate change is not billed the moment it is made: `chargedAt` says when it is. """ previewSelfServeAccountSubscriptionChange(input: PreviewSelfServeAccountSubscriptionChangeInput!): PreviewSelfServeAccountSubscriptionChangePayload! @rateLimit(limit: 10, duration: 60) promoteAiVisibilityBrand(input: PromoteAiVisibilityBrandInput!): PromoteAiVisibilityBrandPayload! """ Reactivates fully cancelled self-serve Account subscription with the provided plan and add-ons. The full sync process is asynchronous and not all changes are visible immediately. """ reactivateCancelledSelfServeAccountSubscription(input: ReactivateCancelledSelfServeAccountSubscriptionInput!): ReactivateCancelledSelfServeAccountSubscriptionPayload! """ Updates self-serve Account subscription not to cancel at period end. """ reactivateCancellingSelfServeAccountSubscription(input: ReactivateCancellingSelfServeAccountSubscriptionInput!): ReactivateCancellingSelfServeAccountSubscriptionPayload! """ Research the brand's profile now: the first research, or a fresh one. The current profile stays readable until the new one replaces it. Does nothing while research is already running. Returns null for a brand that is not researched (see getAiVisibilityBrandProfile). """ refreshAiVisibilityBrandProfile(input: RefreshAiVisibilityBrandProfileInput!): RefreshAiVisibilityBrandProfilePayload! @rateLimit(limit: 10, duration: 60) """ Refresh background generation state. Returns setup drafts and progress only, never scan results. """ refreshAiVisibilityOnboarding(input: AiVisibilityOnboardingTokenInput!): AiVisibilityOnboardingStatus! @rateLimit(limit: 60, duration: 60) rejectHealthScoreTestResultsSuggestedThreshold(input: RejectHealthScoreTestResultsSuggestedThresholdInput!): RejectHealthScoreTestResultsSuggestedThresholdPayload! rejectSuggestedThreshold(input: RejectSuggestedThresholdInput!): [UpdateTestResultPayload!]! removeCustomViewsFromCustomDashboard(input: AddCustomViewsToCustomDashboardInput!): UpdateCustomDashboardPayload! removeCustomViewsFromCustomDashboardCollection(input: RemoveCustomDashboardFromCollectionInput!): RemoveCustomViewsFromCustomDashboardCollectionPayload! removeSsoClientIpRange(input: RemoveSsoClientIpRangeInput!): RemoveSsoClientIpRangePayload! """ Sets the order an account's tags are displayed in. The whole set is reordered at once. """ reorderAccountTags(input: ReorderAccountTagsInput!): ReorderAccountTagsPayload! requestAccountsExportForSsoAccount: RequestSSOAccountsExportPayload! """ Starts generating suggested prompts for a brand and topic, and returns straight away with a `Pending` generation. Poll `getAiVisibilitySuggestedPromptGeneration` until it is `Completed`, then read the suggestions with `getAiVisibilitySuggestedPrompts`. They replace the topic's previous suggestions for that brand. Requesting again while a generation is pending supersedes it. """ requestAiVisibilitySuggestedPromptsGeneration(input: RequestAiVisibilitySuggestedPromptsGenerationInput!): RequestAiVisibilitySuggestedPromptsGenerationPayload! @rateLimit(limit: 30, duration: 60) requestCrawlExternalSourcesExtractionTermination(input: RequestCrawlExternalSourcesExtractionTerminationInput!): RequestCrawlExternalSourcesExtractionTerminationPayload! requestCustomMetricContainerGeneration(input: RequestCustomMetricContainerGenerationInput!): RequestCustomMetricContainerGenerationPayload! requestMonthlyCreditReportExportForSsoAccount: RequestMonthlyCreditReportExportPayload! requestPasswordReset(input: RequestPasswordResetInput!): Boolean! requestProjectsExportForSsoAccount: RequestSSOProjectsExportPayload! resendAccountUserInvite(input: ResendAccountUserInviteInput!): ResendAccountUserPayload! resetPassword(input: ResetPasswordInput!): ResetPasswordPayload! resumeAiVisibilityOnboarding(accountId: ObjectID!): CreateAiVisibilityOnboardingPayload! @rateLimit(limit: 5, duration: 60) """ Resumes crawling. """ resumeCrawling(input: ResumeCrawlingInput!): ResumeCrawlingPayload! revokeServiceAccountKey(input: RevokeServiceAccountKeyInput!): RevokeServiceAccountKeyPayload! """ Run a detached ContentEvals evaluation for a copywriting-agent article draft. """ runCopywritingArticleEval(accountId: ObjectID!, aiVisibilityProjectId: ObjectID!, input: CopywritingArticleEvalInput!): AiVisibilityPageRun! """ Creates a crawl and immediately runs it. """ runCrawlForProject(input: RunCrawlForProjectInput!): RunCrawlForProjectPayload! runTestsForCustomMetricContainerGeneration(input: RunTestsForCustomMetricContainerGenerationInput!): RunTestsForCustomMetricContainerGenerationPayload! saveAiVisibilityOnboarding(input: SaveAiVisibilityOnboardingInput!): Boolean! @rateLimit(limit: 20, duration: 60) """ Correct an existing prompt's `branded` tag. This changes the tag and nothing else: the prompt keeps its text, its country, its paused state, its schedule and its whole run history, and no run is triggered, so the metrics already collected for it simply move to the other side of the branded filters. Every prompt created before the tag existed is stored as unbranded whatever its wording, so one that does name the project's own brand has to be corrected here to be returned by `branded: true`. A prompt's text cannot be edited — to reword one, delete it and create a replacement — so this is the only part of a saved prompt that can be changed in place. """ setAiVisibilityPromptBranded(input: SetAiVisibilityPromptBrandedInput!): SetAiVisibilityPromptBrandedPayload! setAiVisibilityPromptPaused(input: SetAiVisibilityPromptPausedInput!): SetAiVisibilityPromptPausedPayload! setBuildScheduleTestSuites(input: SetBuildScheduleTestSuitesInput!): SetBuildScheduleTestSuitesPayload! setCustomMetricContainerProjectSecret(input: SetCustomMetricContainerProjectSecretInput!): SetCustomMetricContainerProjectSecretPayload! setCustomMetricContainerSecret(input: SetCustomMetricContainerSecretInput!): SetCustomMetricContainerSecretPayload! setUserData(input: SetUserDataInput!): JSON """ Generates a shareable token to give viewer access to specific project """ shareProject(input: ShareProjectInput!): ShareProjectPayload! sortCustomDashboardCollections(input: SortCustomDashboardCollectionsInput!): SortCustomDashboardCollectionsPayload! sortCustomDashboardsInCollection(input: SortCustomDashboardsInput!): SortCustomDashboardsPayload! """ Accept the saved draft (or latest generated suggestions) and launch the first scan. Repeated calls resume the same scan. """ startAiVisibilityOnboardingScan(input: AiVisibilityOnboardingTokenInput!): Boolean! @rateLimit(limit: 5, duration: 60) """ Creates a new version of the generation's CustomMetricContainer from caller-supplied JavaScript instead of requesting LLM generation, consuming no AI credits. The output schema is derived from the generation's metrics, and the generation continues through the same test-run flow. """ submitSourceForCustomMetricContainerGeneration(input: SubmitSourceForCustomMetricContainerGenerationInput!): SubmitSourceForCustomMetricContainerGenerationPayload! triggerAiVisibilityPageRun(input: TriggerAiVisibilityPageRunInput!): TriggerAiVisibilityPageRunPayload! """ Unarchives crawl. """ unarchiveCrawl(input: UnarchiveCrawlInput!): RunCrawlForProjectPayload! unlinkChildTestSuiteFromParentTestSuite(input: UnlinkChildTestSuiteFromParentTestSuiteInput!): UnlinkChildTestSuiteFromParentTestSuitePayload! unlinkCustomMetricContainerFromProject(input: UnlinkCustomMetricContainerFromProjectInput!): UnlinkCustomMetricContainerFromProjectPayload! unlinkJiraIntegrationFromTestSuite(input: UnlinkJiraIntegrationFromTestSuiteInput!): UnlinkJiraIntegrationFromTestSuitePayload! unlinkTestSuiteFromBuildSchedule(input: UnlinkTestSuiteFromBuildScheduleInput!): UnlinkTestSuiteFromBuildSchedulePayload! unmergeAiVisibilityBrand(input: UnmergeAiVisibilityBrandInput!): UnmergeAiVisibilityBrandPayload! updateAccount(input: UpdateAccountInput!): UpdateAccountPayload! """ Subscribe to or unsubscribe from an account-level notification type for the requesting user. """ updateAccountNotificationSubscription(input: UpdateAccountNotificationSubscriptionInput!): AccountNotificationSubscription! updateAccountSsoGroupRoleMapping(input: UpdateAccountSsoGroupRoleMappingInput!): UpdateAccountSsoGroupRoleMappingPayload! updateAccountTag(input: UpdateAccountTagInput!): UpdateAccountTagPayload! updateAccountUser(input: UpdateAccountUserInput!): UpdateAccountUserPayload! """ Replaces a user's project visibility tags in an account. Removing all tags grants account-wide project access. """ updateAccountUserTags(input: UpdateAccountUserTagsInput!): UpdateAccountUserPayload! updateAdobeAnalyticsProjectReportSuite(input: UpdateAdobeAnalyticsProjectReportSuiteInput!): UpdateAdobeAnalyticsProjectReportSuitePayload! updateAdobeOauthServerToServerConnection(input: UpdateAdobeOauthServerToServerConnectionInput!): UpdateAdobeOauthServerToServerConnectionPayload! updateAiVisibilityAccountSettings(input: UpdateAiVisibilityAccountSettingsInput!): UpdateAiVisibilityAccountSettingsPayload! updateAiVisibilityBrand(input: UpdateAiVisibilityBrandInput!): UpdateAiVisibilityBrandPayload! updateAiVisibilityBrandDomain(input: UpdateAiVisibilityBrandDomainInput!): UpdateAiVisibilityBrandDomainPayload! updateAiVisibilityProject(input: UpdateAiVisibilityProjectInput!): UpdateAiVisibilityProjectPayload! updateAiVisibilityTopic(input: UpdateAiVisibilityTopicInput!): UpdateAiVisibilityTopicPayload! updateAutomatorSlackWebhook(input: UpdateSlackWebhookInput!): CreateSlackWebhookPayload! updateBuildSchedule(input: UpdateBuildScheduleInput!): UpdateBuildSchedulePayload! updateCreditAllocationForSsoAccount(input: UpdateCreditAllocationForSsoAccountInput!): UpdateCreditAllocationForSsoAccountPayload! updateCurrentUser(input: UpdateCurrentUserInput!): UpdateCurrentUserPayload! updateCustomChart(input: UpdateCustomChartInput!): UpdateCustomChartPayload! updateCustomDashboard(input: UpdateCustomDashboardInput!): UpdateCustomDashboardPayload! updateCustomDashboardCollection(input: UpdateCustomDashboardCollectionInput!): UpdateCustomDashboardCollectionPayload! updateCustomMetricContainer(input: UpdateCustomMetricContainerInput!): UpdateCustomMetricContainerPayload! updateCustomMetricContainerGeneration(input: UpdateCustomMetricContainerGenerationInput!): UpdateCustomMetricContainerGenerationPayload! updateCustomMetricContainerProject(input: UpdateCustomMetricContainerProjectInput!): UpdateCustomMetricContainerProjectPayload! updateCustomMetricUploadContainer(input: UpdateCustomMetricUploadContainerInput!): UpdateCustomMetricUploadContainerPayload! updateCustomReportTemplate(input: UpdateCustomReportTemplateInput!): UpdateCustomReportTemplatePayload! updateCustomTable(input: UpdateCustomTableInput!): UpdateCustomTablePayload! updateGoogleAnalytics4ProjectProperty(input: UpdateGoogleAnalytics4ProjectPropertyInput!): UpdateGoogleAnalytics4ProjectPropertyPayload! updateGoogleSearchConsoleAiVisibilityProperty(input: UpdateGoogleSearchConsoleAiVisibilityPropertyInput!): UpdateGoogleSearchConsoleAiVisibilityPropertyPayload! updateGoogleSearchConsoleConfiguration(input: UpdateGoogleSearchConsoleConfigurationInput!): UpdateGoogleSearchConsoleConfigurationPayload! updateGoogleSearchConsoleProperty(input: UpdateGoogleSearchConsolePropertyInput!): UpdateGoogleSearchConsolePropertyPayload! updateHealthScoreTest(input: UpdateHealthScoreTestInput!): UpdateHealthScoreTestPayload! updateHealthScoreTestResult(input: UpdateHealthScoreTestResultInput!): UpdateHealthScoreTestResultPayload! updateHealthScoreTests(inputs: [UpdateHealthScoreTestInput!]!): UpdateHealthScoreTestsPayload! updateJiraAuthentication(input: UpdateJiraAuthenticationInput!): UpdateJiraAuthenticationPayload! updateJiraIntegration(input: UpdateJiraIntegrationInput!): UpdateJiraIntegrationPayload! updateLegacyTask(input: UpdateLegacyTaskInput!): UpdateLegacyTaskPayload! """ Renames a log source. `status` and `statusMessage` are set by Lumar support as they configure the log delivery; customer API clients cannot set them, and they are not present on the schema a customer receives. """ updateLogManagerConnection(input: UpdateLogManagerConnectionInput!): UpdateLogManagerConnectionPayload! """ Changes how a project ingests logs from an attached log source. Omitted fields are left unchanged; `baseUrl` and the `...NotRegexp` fields accept an explicit null to clear them. """ updateLogManagerProjectSettings(input: UpdateLogManagerProjectSettingsInput!): UpdateLogManagerProjectSettingsPayload! updateLogzioConnection(input: UpdateLogzioConnectionInput!): UpdateLogzioConnectionPayload! updateLogzioProjectQuery(input: UpdateLogzioProjectQueryInput!): UpdateLogzioProjectQueryPayload! updateMajesticConfiguration(input: UpdateMajesticConfigurationInput!): UpdateMajesticConfigurationPayload! updateMonitorHealthScoreNotificationsStatus(input: UpdateMonitorHealthScoreNotificationsStatusInput!): UpdateMonitorHealthScoreNotificationsStatusPayload! updateMonitorNotificationsStatus(input: UpdateMonitorNotificationsStatusInput!): UpdateMonitorNotificationsStatusPayload! updatePageType(input: UpdatePageTypeInput!): UpdatePageTypePayload! updatePassword(input: UpdatePasswordInput!): UpdatePasswordPayload! updateProject(input: UpdateProjectInput!): UpdateProjectPayload! updateReportTemplateOverride(input: UpdateReportTemplateOverrideInput!): UpdateReportTemplateOverridePayload! updateSchedule(input: UpdateScheduleInput!): UpdateSchedulePayload! """ Changes one schema template, leaving the rest of the set as it stands. """ updateSchemaTemplate(input: UpdateSchemaTemplateInput!): UpdateSchemaTemplatePayload! """ Replaces a project's whole schema template set. Rejected if the set was saved after `expectedVersion`. """ updateSchemaTemplateSet(input: UpdateSchemaTemplateSetInput!): UpdateSchemaTemplateSetPayload! updateSegment(input: UpdateSegmentInput!): UpdateSegmentPayload! updateSegments(inputs: [UpdateSegmentInput!]!): UpdateSegmentsPayload! """ Updates self-serve Account subscription. The full sync process is asynchronous and not all changes are visible immediately. """ updateSelfServeAccountSubscription(input: UpdateSelfServeAccountSubscriptionInput!): UpdateSelfServeAccountSubscriptionPayload! updateServiceAccount(input: UpdateServiceAccountInput!): UpdateServiceAccountPayload! updateSplunkConnection(input: UpdateSplunkConnectionInput!): UpdateSplunkConnectionPayload! updateSplunkProjectQuery(input: UpdateSplunkProjectQueryInput!): UpdateSplunkProjectQueryPayload! updateSsoAccount(input: UpdateSsoAccountInput!): UpdateSsoAccountPayload! updateSsoAccountSubscription(input: UpdateSsoAccountSubscriptionInput!): UpdateSsoAccountSubscriptionPayload! updateSsoConnection(input: UpdateSsoConnectionInput!): UpdateSsoConnectionPayload! updateTest(input: UpdateTestInput!): UpdateTestPayload! updateTestResult(input: UpdateTestResultInput!): UpdateTestResultPayload! updateTestSuite(input: UpdateTestSuiteInput!): UpdateTestSuitePayload! updateTestSuiteEmailAlert(input: UpdateTestSuiteEmailAlertInput!): CreateTestSuiteEmailAlertPayload! updateTests(inputs: [UpdateTestInput!]!): UpdateTestsPayload! updateTopicConfiguration(input: UpdateTopicConfigurationInput!): UpdateTopicConfigurationPayload! updateUrlFileUpload(input: UpdateUrlFileUploadInput!): UpdateUrlFileUploadPayload! updateWebBotAuthSignature(input: UpdateWebBotAuthSignatureInput!): UpdateWebBotAuthSignaturePayload! updateWebhook(input: UpdateWebhookInput!): CreateWebhookPayload! } """ The ObjectID scalar type represents a unique identifier, often used to refetch an object or as key for a cache. The ObjectID type appears in a JSON response as a String; however, it is not intended to be human-readable. """ scalar ObjectID type OptimisedPageTitle { pageTitle: String! pageTitleRelevance: Float! } """ Possible directions in which to order a list of items when provided an `orderBy` argument. """ enum OrderDirection { ASC DESC } type PackageAccount { chargebee: Boolean! } type PageInfo { endCursor: String hasNextPage: Boolean! hasPreviousPage: Boolean! startCursor: String } type PageType { createdAt: DateTime! description: String id: ObjectID! name: String! rawID: String! rules: [PageTypeRule!]! updatedAt: DateTime! } type PageTypeRule { operator: PageTypeRuleOperator! value: String } input PageTypeRuleInput { operator: PageTypeRuleOperator! value: String } enum PageTypeRuleOperator { AllPages UrlContains UrlPrefix } type PageTypeSnapshot { description: String id: Int! name: String! rules: [PageTypeRule!]! } type PatternItem { minCount: Int! minCountRatio: Float patternString: String! regExpString: String! } type PatternsPayload { items: [PatternItem!]! } input PauseCrawlingInput { crawlId: ObjectID! } type PauseCrawlingPayload { crawl: Crawl! } enum PauseReason { AgeLimit BotCredential CreditLimit CustomExtractionTimeout FailureRate LevelLimit Manual PageGroupingTimeout UrlLimit UrlsExcludedTimeout UrlsIncludedTimeout } type Permission { code: PermissionCode! } enum PermissionCode { Admin AdminGrant @deprecated(reason: "No longer in use.") Beta @deprecated(reason: "No longer in use.") Dev @deprecated(reason: "No longer in use.") SsoClient } input PreviewProjectLinkTagsInput { """ Account owning both projects and all supplied tags. """ accountId: ObjectID! """ AI Visibility project to link or whose existing links should be checked. """ aiVisibilityProjectId: ObjectID """ Proposed complete AI Visibility tag set. Omit to use current tags; [] means untagged. """ aiVisibilityProjectTagIds: [ObjectID!] """ Crawl project to link or whose existing links should be checked. """ projectId: ObjectID """ Proposed complete crawl-project tag set. Omit to use current tags; [] means untagged. """ projectTagIds: [ObjectID!] } input PreviewSelfServeAccountSubscriptionChangeInput { accountId: ObjectID! optionalAddons: [SelfServeOptionalAddonInput!]! = [] """ One of: geo-growth, geo-starter. """ planCode: String! planInterval: SelfServePlanInterval! = Month } """ What a proposed subscription change would cost and when it would land, priced by the payment provider rather than estimated. Nothing is created or charged by asking. """ type PreviewSelfServeAccountSubscriptionChangePayload { """ What the next invoice comes to, tax included. For a change that applies now it is that invoice net of any credit balance on the customer, as Stripe would apply it. For a deferred change it is what its boundary will bill, net of that balance as it stands today: the recurring amount the subscription holds by then, plus anything one-off already waiting on that invoice - proration an earlier change left pending is billed whatever else changes. Null in the two cases that cannot be priced before the change exists: a `Split` change, whose immediate and deferred parts settle on one invoice in a combination the payment provider will only price once the immediate part exists; and an `Immediate` change made while another change is already scheduled, which discards that schedule and prorates, proration that likewise exists only once the change is made. `recurringTotal` is exact in both. """ amountDue: SelfServePlanPrice """ The state the subscription reaches straight away, or null when the whole change is deferred. On a paying subscription an upgrade or an add-on addition lands here, while a downgrade, an add-on removal and an interval change do not. A trial reverses that: a plan-only change waits for the trial to end, however it is priced, and any add-on change at all - adding or removing - converts the subscription to paying there and then, applying the whole requested state with it. """ appliesNow: SelfServeSubscriptionChangeState """ Whether confirming would discard a change already scheduled against the subscription, leaving nothing in its place. An upgrade calls a pending change off outright, and a change made alongside one rewrites it, so a customer can lose a downgrade they had scheduled without `effect` alone saying so. Read `selfServeAccountSubscription.scheduledChange` to show them what they would be giving up. """ cancelsScheduledChange: Boolean! """ When that invoice is raised. Note that an immediate change is not billed at the moment it is made: its proration rides the next invoice, so this is usually the end of the current period rather than today. Ending a trial is the exception and is invoiced on the spot. """ chargedAt: DateTime! """ Which parts of the change land when, as one value to branch on. """ effect: SelfServeSubscriptionChangeEffect! """ What the subscription bills per interval once the whole change has landed, tax included. """ recurringTotal: SelfServePlanPrice! """ The state the subscription reaches at a later boundary, or null when nothing is deferred. """ scheduledChange: SelfServeSubscriptionScheduledChangePreview } type Project implements BaseProject { account: Account! adobeAnalyticsProjectReportSuite: AdobeAnalyticsProjectReportSuite aiVisibilitySettings: ProjectAiVisibilitySettings alertEmails: [String!] alertSetting: AlertSetting! allPagesTotal: Int apiCallbackHeaders: [APICallbackHeader!] apiCallbackUrl: String applyCustomHeadersToNavigationRequestsOnly: Boolean! autoFinalizeOnCrawlLimits: Boolean! """ Flags if threshold on all tests is calculated automatically, based on previous test results. """ automaticThreshold: Boolean! """ Flags if automatic thresholds are calculated for all (true) or some (false) tests. """ automaticThresholdEnabledForAll: Boolean! availableGlobalCustomMetricContainers( after: String before: String """ Filtering options for CustomMetricContainers returned from the connection. """ filter: CustomMetricContainerConnectionFilterInput first: Int = 15 last: Int """ Ordering options for CustomMetricContainers returned from the connection. """ orderBy: [CustomMetricContainerOrder!] ): CustomMetricContainerConnection! """ Blocks third-party cookies. """ block3rdPartyCookies: Boolean! clonedAt: DateTime compareToCrawl: CompareToCrawl coreUIUrl: String! """ Credits a single URL costs to crawl for this project — the baseline plus per-URL increases from enabled custom metric containers and chargeable crawl feature settings, a breakdown explaining each increase, and which credit pool(s) the crawl draws from. """ costPerUrl: ProjectCostPerUrl! crawl4xxHreflangLinks: Boolean! crawl4xxLinks: Boolean! crawlDisallowedUrls1stLevel: Boolean! crawlHyperlinksExternal: Boolean! crawlHyperlinksInternal: Boolean! crawlImagesExternal: Boolean! crawlImagesInternal: Boolean! crawlNofollowHyperlinks: Boolean! crawlNonHtml: Boolean! crawlNotIncluded1stLevel: Boolean! crawlOtherRelExternal: Boolean! crawlOtherRelInternal: Boolean! crawlRedirectsExternal: Boolean! crawlRedirectsInternal: Boolean! crawlRelAmphtmlExternal: Boolean! crawlRelAmphtmlInternal: Boolean! crawlRelCanonicalsExternal: Boolean! crawlRelCanonicalsInternal: Boolean! crawlRelHreflangsExternal: Boolean! crawlRelHreflangsInternal: Boolean! crawlRelMobileExternal: Boolean! crawlRelMobileInternal: Boolean! crawlRelNextPrevExternal: Boolean! crawlRelNextPrevInternal: Boolean! crawlRobotsTxtNoindex: Boolean! crawlScriptsExternal: Boolean! crawlScriptsInternal: Boolean! crawlSitemapsExternal: Boolean! crawlSitemapsInternal: Boolean! crawlStylesheetsExternal: Boolean! crawlStylesheetsInternal: Boolean! crawlTestSite: Boolean! crawlTypes: [CrawlType!]! crawlUrlsTotal: Int crawlingAt: DateTime crawls( after: String before: String """ Filtering options for Crawls returned from the connection. """ filter: CrawlConnectionFilterInput first: Int = 15 last: Int """ Ordering options for Crawls returned from the connection. """ orderBy: [CrawlOrder!] ): CrawlConnection! crawlsTotalCount: Int! createdAt: DateTime! customDns: [CustomDnsSetting!] """ Use regular expressions to extract custom information from pages when they are crawled. """ customExtractions: [CustomExtractionSetting!] customMetricContainerProjects( after: String before: String """ Filtering options for CustomMetricContainerProjects returned from the connection. """ filter: CustomMetricContainerProjectConnectionFilterInput first: Int = 15 last: Int """ Ordering options for CustomMetricContainerProjects returned from the connection. """ orderBy: [CustomMetricContainerProjectOrder!] ): CustomMetricContainerProjectConnection! customMetricContainers( after: String before: String """ Filtering options for CustomMetricContainers returned from the connection. """ filter: CustomMetricContainerConnectionFilterInput first: Int = 15 last: Int """ Ordering options for CustomMetricContainers returned from the connection. """ orderBy: [CustomMetricContainerOrder!] ): CustomMetricContainerConnection! customMetrics: [CustomMetric!]! customReportTemplates( after: String before: String """ Filtering options for CustomReportTemplates returned from the connection. """ filter: CustomReportTemplateConnectionFilterInput first: Int = 15 last: Int """ Ordering options for CustomReportTemplates returned from the connection. """ orderBy: [CustomReportTemplateOrder!] ): CustomReportTemplateConnection! customRequestHeaders: JSONObject customViews( after: String before: String """ Filtering options for CustomViews returned from the connection. """ filter: CustomViewConnectionFilterInput first: Int = 15 last: Int """ Ordering options for CustomViews returned from the connection. """ orderBy: [CustomViewOrder!] ): CustomViewConnection! dataLayerName: String dataOnlyCrawlTypes: [CrawlType!] discoverSitemapsInRobotsTxt: Boolean! """ Includes paginated pages, those with a `rel=next` or `rel=prev` link, in the duplicate checks for titles, descriptions, body content and pages. When false, the default, paginated pages are left out of them. """ duplicatePagesIncludePaginatedPages: Boolean! duplicatePrecision: Float! """ Effective cap on how many pages this project can crawl, combining the account's limitPagesMax with any lower caps from enabled custom metric containers (e.g. SemanticRelevance), plus the reason for the cap. """ effectiveLimitPagesMax: ProjectEffectiveLimitPagesMax! emptyPageThreshold: Int enableKeyValueStore: Boolean! excludeUrlPatterns: [String!] excludedDatasources: [DatasourceCode!] failureRateLimitEnabled: Boolean! failureRateLookbackWindow: Int! failureRateThreshold: Float! finishedAt: DateTime flattenIframes: Boolean! flattenShadowDom: Boolean! gaDateRange: Int! googleAnalytics4ProjectProperty: GoogleAnalytics4ProjectProperty googleSearchConsoleConfiguration: GoogleSearchConsoleConfiguration googleSearchConsoleProperties( after: String before: String first: Int = 15 last: Int """ Ordering options for GoogleSearchConsoleProperties returned from the connection. """ orderBy: [GoogleSearchConsolePropertyOrder!] ): GoogleSearchConsolePropertyConnection hasAccessibility: Boolean! @deprecated(reason: "Use moduleCode") hasTestSitePassword: Boolean! healthScore(reportCategoryCode: String!, segmentId: ObjectID, trendLimit: Int! = 30): [ProjectHealthScoreItem!]! """ Flags if threshold on all health score tests is calculated automatically, based on previous health score test results. """ healthScoreAutomaticThreshold: Boolean! """ Flags if automatic thresholds are calculated for all (true) or some (false) health score tests. """ healthScoreAutomaticThresholdEnabledForAll: Boolean! healthScoreTests( after: String before: String """ Filtering options for HealthScoreTests returned from the connection. """ filter: HealthScoreTestConnectionFilterInput first: Int = 15 last: Int """ Ordering options for HealthScoreTests returned from the connection. """ orderBy: [HealthScoreTestOrder!] ): HealthScoreTestConnection! healthScoreTestsTotalCount: Int! id: ObjectID! ignoreInvalidSSLCertificate: Boolean ignoreRobotsForNavigationRequests: Boolean! ignoreXRobots: Boolean! includeBestPractices: Boolean! includeHttpAndHttps: Boolean! includeSubdomains: Boolean! includeUrlPatterns: [String!] industryCode: String isTestSuite: Boolean! """ Same as crawlingAt, but includes dates of deleted crawls. """ lastCrawlCrawlingAt: DateTime lastCrawlStatus: CrawlStatus lastFinishedCrawl: Crawl legacyTasks( after: String before: String """ Filtering options for LegacyTasks returned from the connection. """ filter: LegacyTaskConnectionFilterInput first: Int = 15 last: Int """ Ordering options for LegacyTasks returned from the connection. """ orderBy: [LegacyTaskOrder!] ): LegacyTaskConnection! legacyTasksTotalCount: Int! limitLevelsMax: Int! limitPagesMax: Int! limitUrlsMax: Int! @deprecated(reason: "Renamed to limitPagesMax.") location: Location! logManagerProjectSettings( after: String before: String """ Filtering options for LogManagerProjectSettings returned from the connection. """ filter: LogManagerProjectSettingsConnectionFilterInput first: Int = 15 last: Int """ Ordering options for LogManagerProjectSettings returned from the connection. """ orderBy: [LogManagerProjectSettingsOrder!] ): LogManagerProjectSettingsConnection! logSummaryRequestsHigh: Int! logSummaryRequestsLow: Int! logzioProjectQueries( after: String before: String """ Filtering options for LogzioProjectQueries returned from the connection. """ filter: LogzioProjectQueryConnectionFilterInput first: Int = 15 last: Int """ Ordering options for LogzioProjectQueries returned from the connection. """ orderBy: [LogzioProjectQueryOrder!] ): LogzioProjectQueryConnection! majesticConfiguration: MajesticConfiguration maxBodyContentLength: Int maxContentSize: Int! @deprecated(reason: "Renamed to maxBodyContentLength.") maxDescriptionLength: Int maxExternalLinks: Int maxHtmlSize: Int maxLinks: Int maxLinksProcessed: Int! maxLoadTime: Float maxRedirections: Int! maxTitleWidth: Int! maxUrlLength: Int maximumCrawlRate: Float! maximumCrawlRateAdvanced: [AdvancedCrawlRate!] minContentRatio: Float minDescriptionLength: Int! minTitleLength: Int! minVisits: Int! mobileHomepageUrl: String mobileUrlPattern: String mobileUserAgent: UserAgent """ Overrides the viewport height during crawling of the mobile site. """ mobileViewportHeight: Int """ Overrides the vieport width during crawling of the mobile site. """ mobileViewportWidth: Int module: Module! moduleCode: ModuleCode! name: String! pageTypes: [PageType!]! primaryDomain: String! rawID: String! renderTimeout: Int! renderWithImages: Boolean! rendererBlockAds: Boolean! rendererBlockAnalytics: Boolean! rendererBlockCustom: [String!] rendererCookies: [RendererCookie!] rendererJsString: String rendererJsUrls: [String!] renderingRobotsCheckMode: RenderingRobotsCheckMode reportTemplateOverrides( after: String before: String """ Filtering options for ReportTemplateOverrides returned from the connection. """ filter: ReportTemplateOverrideConnectionFilterInput first: Int = 15 last: Int """ Ordering options for ReportTemplateOverrides returned from the connection. """ orderBy: [ReportTemplateOverrideOrder!] ): ReportTemplateOverrideConnection! reportTrend(reportTemplateCode: String!, segmentId: ObjectID): [ProjectReportTrendItem!]! robotsOverwrite: String schedule: Schedule scheduleLogs( after: String before: String """ Filtering options for ScheduleLogs returned from the connection. """ filter: ScheduleLogConnectionFilterInput first: Int = 15 last: Int """ Ordering options for ScheduleLogs returned from the connection. """ orderBy: [ScheduleLogOrder!] ): ScheduleLogConnection! schedulesTotalCount: Int! """ The project's schema templates. Null until the first template is saved. """ schemaTemplateSet: SchemaTemplateSet secondaryDomains: [String!] segmentCountsByGroup: [SegmentCountByGroup!]! segments( after: String before: String """ Filtering options for Segments returned from the connection. """ filter: SegmentConnectionFilterInput first: Int = 15 last: Int """ Ordering options for Segments returned from the connection. """ orderBy: [SegmentOrder!] ): SegmentConnection segmentsTotalCount: Int! selectedWcagLevel: WcagLevel! selectedWcagVersion: Float! singlePageRequesterCrawlSettings: JSONObject! singlePageRequesterRequests( after: String before: String """ Filtering options for SinglePageRequesterRequests returned from the connection. """ filter: SinglePageRequesterRequestConnectionFilterInput first: Int = 15 last: Int """ Ordering options for SinglePageRequesterRequests returned from the connection. """ orderBy: [SinglePageRequesterRequestOrder!] ): SinglePageRequesterRequestConnection sitePrimary: String! @deprecated(reason: "Renamed to primaryDomain.") siteTest: String @deprecated(reason: "Renamed to testSiteDomain.") sitemapUrls: [String!] sitemaps: [Sitemap!]! splunkProjectQueries( after: String before: String """ Filtering options for SplunkProjectQueries returned from the connection. """ filter: SplunkProjectQueryConnectionFilterInput first: Int = 15 last: Int """ Ordering options for SplunkProjectQueries returned from the connection. """ orderBy: [SplunkProjectQueryOrder!] ): SplunkProjectQueryConnection! startUrls: [String!] storeLighthouseJSON: Boolean! tags: [AccountTag!]! targetMaxUncrawledUrlsCount: Int! testSiteDomain: String testSiteUsername: String tests( after: String before: String """ Filtering options for Tests returned from the connection. """ filter: TestConnectionFilterInput first: Int = 15 last: Int """ Ordering options for Tests returned from the connection. """ orderBy: [TestOrder!] ): TestConnection! testsTotalCount: Int! thinPageThreshold: Int """ Report setting for the topic clustering reports: a topic counts as thin when its `primaryIndexableUrlCountVsMedian` is below this value, that is, when it has fewer indexable primary URLs than this share of the median topic. """ thinTopicThreshold: Float! """ Report setting for the topic clustering reports: a page counts as ambiguous between its two best topics when its `topicScoreGap` is below this value. The gap is in standard deviations, not raw cosine similarity. """ topicAmbiguityGapThreshold: Float! topicConfigurations: [TopicConfiguration!]! totalSteps: Int updatedAt: DateTime! urlFileUploads( after: String before: String """ Filtering options for UrlFileUploads returned from the connection. """ filter: UrlFileUploadConnectionFilterInput first: Int = 15 last: Int ): UrlFileUploadConnection! urlRewriteQueryParameters: [String!] urlRewriteRules: [UrlRewriteRule!] urlRewriteStripFragment: Boolean! urlSampling: [UrlSampling!] urlsExcluded: [String!] @deprecated(reason: "Renamed to excludeUrlPatterns.") urlsIncluded: [String!] @deprecated(reason: "Renamed to includeUrlPatterns.") useMobileSettings: Boolean! """ Use new Chrome headless mode. """ useNewHeadlessMode: Boolean! useRenderer: Boolean! useRobotsOverwrite: Boolean! useStealthMode: Boolean! useUrlRewriteRules: Boolean! userAgent: UserAgent userAgentIsMobile: Boolean userAgentMobileIsMobile: Boolean userAgentString: String userAgentStringMobile: String userAgentToken: String userAgentTokenMobile: String """ Overrides the default viewport height during crawling, if present. """ viewportHeight: Int """ Overrides the default viewport width during crawling, if present. """ viewportWidth: Int } type ProjectAiVisibilitySettings { aiVisibilityProject: AiVisibilityProject aiVisibilityProjectId: Int! createdAt: DateTime! id: ObjectID! rawID: String! """ Current tag mismatches on this link. These warnings never prevent access to linked datasource content. """ tagWarningsForLink: [ProjectLinkTagWarning!]! updatedAt: DateTime! } type ProjectConnection { """ A list of edges. """ edges: [ProjectEdge!]! """ A list of nodes. """ nodes: [Project!]! """ Information to aid in pagination. """ pageInfo: PageInfo! """ Identifies the total count of Projects in the connection. """ totalCount: Int! } input ProjectConnectionFilterInput { """ Groups each filter object using AND """ _and: [ProjectConnectionFilterInput!] """ Groups each filter object using AND, wrapped inside NOT """ _not: [ProjectConnectionFilterInput!] """ Groups each filter object using OR """ _or: [ProjectConnectionFilterInput!] allPagesTotal: ConnectionIntFilterInput applyCustomHeadersToNavigationRequestsOnly: ConnectionBooleanFilterInput block3rdPartyCookies: ConnectionBooleanFilterInput clonedAt: ConnectionDateFilterInput crawl4xxHreflangLinks: ConnectionBooleanFilterInput crawl4xxLinks: ConnectionBooleanFilterInput crawlUrlsTotal: ConnectionIntFilterInput crawlingAt: ConnectionDateFilterInput crawlsTotalCount: ConnectionIntFilterInput createdAt: ConnectionDateFilterInput duplicatePagesIncludePaginatedPages: ConnectionBooleanFilterInput duplicatePrecision: ConnectionFloatFilterInput emptyPageThreshold: ConnectionIntFilterInput enableKeyValueStore: ConnectionBooleanFilterInput failureRateLimitEnabled: ConnectionBooleanFilterInput failureRateLookbackWindow: ConnectionIntFilterInput failureRateThreshold: ConnectionFloatFilterInput finishedAt: ConnectionDateFilterInput flattenIframes: ConnectionBooleanFilterInput flattenShadowDom: ConnectionBooleanFilterInput healthScoreTestsTotalCount: ConnectionIntFilterInput ignoreRobotsForNavigationRequests: ConnectionBooleanFilterInput ignoreXRobots: ConnectionBooleanFilterInput includeBestPractices: ConnectionBooleanFilterInput industryCode: ConnectionStringFilterInput isTestSuite: ConnectionBooleanFilterInput lastCrawlCrawlingAt: ConnectionDateFilterInput lastCrawlStatus: ConnectionCrawlStatusFilterInput legacyTasksTotalCount: ConnectionIntFilterInput limitPagesMax: ConnectionIntFilterInput limitUrlsMax: ConnectionIntFilterInput @deprecated(reason: "Renamed to limitPagesMax.") logSummaryRequestsHigh: ConnectionIntFilterInput logSummaryRequestsLow: ConnectionIntFilterInput maxBodyContentLength: ConnectionIntFilterInput maxContentSize: ConnectionIntFilterInput @deprecated(reason: "Renamed to maxBodyContentLength.") maxDescriptionLength: ConnectionIntFilterInput maxExternalLinks: ConnectionIntFilterInput maxHtmlSize: ConnectionIntFilterInput maxLinks: ConnectionIntFilterInput maxLoadTime: ConnectionFloatFilterInput maxRedirections: ConnectionIntFilterInput maxTitleWidth: ConnectionIntFilterInput maxUrlLength: ConnectionIntFilterInput maximumCrawlRate: ConnectionFloatFilterInput minContentRatio: ConnectionFloatFilterInput minDescriptionLength: ConnectionIntFilterInput minTitleLength: ConnectionIntFilterInput moduleCode: ConnectionModuleCodeFilterInput name: ConnectionStringFilterInput renderTimeout: ConnectionIntFilterInput renderWithImages: ConnectionBooleanFilterInput rendererBlockAds: ConnectionBooleanFilterInput rendererBlockAnalytics: ConnectionBooleanFilterInput rendererJsString: ConnectionStringFilterInput renderingRobotsCheckMode: ConnectionRenderingRobotsCheckModeFilterInput robotsOverwrite: ConnectionStringFilterInput schedulesTotalCount: ConnectionIntFilterInput segmentsTotalCount: ConnectionIntFilterInput selectedWcagLevel: ConnectionWcagLevelFilterInput selectedWcagVersion: ConnectionFloatFilterInput sitePrimary: ConnectionStringFilterInput @deprecated(reason: "Renamed to primaryDomain.") siteTest: ConnectionStringFilterInput @deprecated(reason: "Renamed to testSiteDomain.") targetMaxUncrawledUrlsCount: ConnectionIntFilterInput testSiteDomain: ConnectionStringFilterInput testsTotalCount: ConnectionIntFilterInput thinPageThreshold: ConnectionIntFilterInput thinTopicThreshold: ConnectionFloatFilterInput topicAmbiguityGapThreshold: ConnectionFloatFilterInput totalSteps: ConnectionIntFilterInput updatedAt: ConnectionDateFilterInput useNewHeadlessMode: ConnectionBooleanFilterInput useRenderer: ConnectionBooleanFilterInput useRobotsOverwrite: ConnectionBooleanFilterInput } """ How many credits crawling a single URL costs for this Project: the baseline plus any per-URL increases from enabled custom metric containers and chargeable crawl feature settings, with a breakdown explaining each. """ type ProjectCostPerUrl { """ Breakdown of what makes up the cost. Includes the base component plus an entry for each increase; empty when a URL is free to crawl (e.g. test-suite projects, which are not billed). """ components: [ProjectCostPerUrlComponent!]! """ Which credit pool(s) a crawl of this project draws from. A custom metric container credit-type override takes precedence when present; otherwise these are the module's default pools. Empty when the crawl is not billed (e.g. test-suite projects). """ creditAllocationTypes: [CreditAllocationType!]! """ Total credits a single URL costs to crawl (the sum of every component's costPerUrl). """ total: Float! } """ A single contributor to a Project's per-URL crawl cost — the baseline, an enabled custom metric container, or a chargeable crawl feature setting. """ type ProjectCostPerUrlComponent { """ Machine-readable identifier: "base", the custom metric container name, or the feature cost code. """ code: String! """ Credits this component adds per crawled URL. """ costPerUrl: Float! """ Human-readable label when known server-side (the custom metric container's display name). Null for the baseline and feature settings. """ name: String """ What kind of thing is adding this cost. """ type: ProjectCostPerUrlComponentType! } enum ProjectCostPerUrlComponentType { Base CustomMetricContainer Feature } type ProjectEdge { """ A cursor to use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: Project! } """ The effective cap on a Project's limitPagesMax, combining the account's limitPagesMax with any lower caps from enabled custom metric containers. """ type ProjectEffectiveLimitPagesMax { """ The maximum number of pages this project can be configured to crawl. """ max: Int! """ Which setting is currently binding. """ reason: ProjectLimitPagesMaxReason! } type ProjectHealthScoreItem { categoryWeight: Float crawlId: Int! createdAt: DateTime healthScore: Float } enum ProjectLimitPagesMaxReason { Account SemanticRelevance } type ProjectLinkTagWarning { """ The AI Visibility project that grants access to linked crawl data. """ aiVisibilityProjectId: ObjectID! """ Current or proposed tags on the AI Visibility project. """ aiVisibilityProjectTags: [AccountTag!]! """ Non-blocking warning naming both tag sets and explaining the linked-data access grant. """ message: String! """ The linked crawl project. """ projectId: ObjectID! """ Current or proposed tags on the crawl project. """ projectTags: [AccountTag!]! } input ProjectOrder { """ The ordering direction. """ direction: OrderDirection! """ The field to order Projects by. """ field: ProjectOrderField! } enum ProjectOrderField { allPagesTotal clonedAt crawlUrlsTotal crawlingAt crawlsTotalCount createdAt duplicatePrecision emptyPageThreshold enableKeyValueStore finishedAt flattenIframes flattenShadowDom healthScoreTestsTotalCount id includeBestPractices industryCode isTestSuite lastCrawlCrawlingAt lastCrawlStatus legacyTasksTotalCount limitPagesMax limitUrlsMax @deprecated(reason: "Renamed to limitPagesMax.") logSummaryRequestsHigh logSummaryRequestsLow maxBodyContentLength maxContentSize @deprecated(reason: "Renamed to maxBodyContentLength.") maxDescriptionLength maxExternalLinks maxHtmlSize maxLinks maxLoadTime maxRedirections maxTitleWidth maxUrlLength maximumCrawlRate minContentRatio minDescriptionLength minTitleLength name primaryDomain renderTimeout renderWithImages rendererBlockAds rendererBlockAnalytics rendererJsString renderingRobotsCheckMode robotsOverwrite schedulesTotalCount segmentsTotalCount selectedWcagLevel selectedWcagVersion sitePrimary @deprecated(reason: "Renamed to primaryDomain.") siteTest @deprecated(reason: "Renamed to testSiteDomain.") targetMaxUncrawledUrlsCount testSiteDomain testsTotalCount thinPageThreshold thinTopicThreshold topicAmbiguityGapThreshold totalSteps updatedAt useRenderer useRobotsOverwrite } type ProjectReportTrendItem { added: Float basic: Float crawlId: Int! createdAt: DateTime missing: Float removed: Float totalWeight: Float } enum ProjectUploadType { AIBotLogRequests AIReferralSources AdobeAnalyticsCSV AdwordsFinalUrlCSV AhrefsBacklinksCSV AhrefsBacklinksCSV2 AnalyticsCSV BacklinksCSV Custom CustomMetricsCsv GenericBacklinksCSV GenericLogfileCSV GoogleAnalyticsCSV ListTxt LogzioLogfileDesktopCSV LogzioLogfileMobileCSV MajesticBacklinksCSV MajesticBacklinksCSV2 OSEBacklinksCSV ReducedAdobeAnalyticsCSV ScreamingFrogLogfileBaiduCSV ScreamingFrogLogfileBingbotCSV ScreamingFrogLogfileGooglebotCSV ScreamingFrogLogfileGooglebotOnlyCSV ScreamingFrogLogfileGooglebotOnlyCSV2 ScreamingFrogLogfileYandexCSV Sitemap SplunkLogfileBingCSV SplunkLogfileDesktopCSV SplunkLogfileGoogleCSV SplunkLogfileMobileCSV TargetSearchQueries """ Target search queries, each with the landing page URL it should rank for. Requires a search_query and a url column. Relevance is scored against the uploaded landing pages instead of discovered ones. """ TargetSearchQueriesWithLandingPages } input PromoteAiVisibilityBrandInput { """ The account ID """ accountId: ObjectID! """ The brand ID to promote as the new main brand (must currently be merged) """ aiVisibilityBrandId: ObjectID! } type PromoteAiVisibilityBrandPayload { """ The brand that was previously the main brand and is now merged """ previousMainBrand: AiVisibilityBrand! """ The brand that was promoted to become the new main brand """ promotedBrand: AiVisibilityBrand! } type Query { accessToken: JSONObject """ The requesting user's subscription state for every account-level notification type. """ accountNotificationSubscriptions(accountId: ObjectID!): [AccountNotificationSubscription!]! agentsApiMetadata(longLived: Boolean = false): AgentsApiMetadata! """ Returns all supported AI Visibility country codes with English names. Does not require authentication. """ aiVisibilityCountries: [AiVisibilityCountry!]! """ Whether free-scan signup is open. While false, `createAiVisibilityOnboarding` is refused with a Forbidden, so the signup form should not be offered. Readable without signing in. """ aiVisibilityFreeScanEnabled: Boolean! @rateLimit(limit: 60, duration: 60) """ Read only the original free scan via its private onboarding credential, before or after the owner has verified their email by signing in. Never grants normal account access. """ aiVisibilityFreeScanPreview(input: AiVisibilityOnboardingTokenInput!): AiVisibilityFreeScanPreview! @rateLimit(limit: 60, duration: 60) """ Returns all supported AI Visibility language codes (ISO 639-1) with English names. Does not require authentication. """ aiVisibilityLanguages: [AiVisibilityLanguage!]! datasource(code: String @deprecated(reason: "Use datasourceCode instead."), datasourceCode: DatasourceCode): Datasource datasources: [Datasource!]! @deprecated(reason: "Use getDatasources instead.") getAccessibilityIssueSolutionSuggestion(crawlId: ObjectID!, issueDigest: String!): AccessibilityIssueSolutionSuggestion """ Look up account by ObjectID. """ getAccount(id: ObjectID!): Account getAccountSubscriptionPlan(planCode: String!): AccountSubscriptionPlan """ List of available plans. """ getAccountSubscriptionPlans( """ Plans are only returned for a currency they are priced in; omitting this returns no plans. """ currency: Currency """ Return only the plans with these codes. Codes that match no plan are ignored, and an empty list is no filter at all, the same as omitting it. """ planCodes: [String!] ): [AccountSubscriptionPlan!]! getAccounts( after: String before: String """ Filtering options for Accounts returned from the connection. """ filter: AccountConnectionFilterInput first: Int = 15 last: Int """ Ordering options for Accounts returned from the connection. """ orderBy: [AccountOrder!] ): AccountConnection! getAiVisibilityAccountSettings(accountId: ObjectID!): AiVisibilityAccountSettings! """ List AI providers that had at least one finished prompt run within the specified date range for a project. """ getAiVisibilityActiveAiProviders( """ The account ID for authorization. """ accountId: ObjectID! """ The project ID to scope the query to. """ aiVisibilityProjectId: ObjectID! """ Date range filter. Defaults to last 30 days when omitted. """ dateRange: AiVisibilityDateRangeInput ): [AiVisibilityAiProvider!]! """ List countries that had at least one finished prompt run within the specified date range for a project. """ getAiVisibilityActiveCountries( """ The account ID for authorization. """ accountId: ObjectID! """ The project ID to scope the query to. """ aiVisibilityProjectId: ObjectID! """ Date range filter. Defaults to last 30 days when omitted. """ dateRange: AiVisibilityDateRangeInput ): [AiVisibilityActiveCountry!]! """ List of available AI providers for AI Visibility. """ getAiVisibilityAiProviders( """ The account ID for authorization. """ accountId: ObjectID! """ Offset cursor for pagination. Returns items after this position. """ after: String """ Number of items to return. """ first: Int = 15 ): AiVisibilityAiProviderConnection! getAiVisibilityBrand(accountId: ObjectID!, aiVisibilityBrandId: ObjectID!): AiVisibilityBrand getAiVisibilityBrandCitations( accountId: ObjectID! """ Offset cursor for pagination. Returns items after this position. """ after: String """ Optional AI platform filter. When provided, only citations from prompt runs executed by these AI platforms are included. """ aiProviderTypes: [AiVisibilityAiProviderType!] """ Brand whose cited pages to return, including its merged variants. When omitted, cited pages are returned across every brand in the project, one row per page and publisher brand, with the brand on each row's `brand`; narrow them with `brandTypes`. """ aiVisibilityBrandId: ObjectID """ Filter by specific AI Visibility project ID. """ aiVisibilityProjectId: ObjectID! """ Filter by specific prompt ID. """ aiVisibilityPromptId: ObjectID """ Filter by specific topic ID. """ aiVisibilityTopicId: ObjectID """ Restricts an all-brands query (`aiVisibilityBrandId` omitted) to pages published by brands of these types, which also leaves out pages with no recognised publisher. When omitted, every brand's pages are returned, unattributed ones included. Not accepted together with `aiVisibilityBrandId`. """ brandTypes: [AiVisibilityBrandType!] """ Optional branded filter. When true, only prompts naming the project's own brand are included; when false, only prompts that do not name it — which includes a prompt naming only a competitor, since the tag is about the project's own brand alone. When omitted or null, both are included. """ branded: Boolean """ Optional comparison window. When provided alongside selections inside `previousPeriod`, each node's `previousPeriod` is populated with the same metrics (for the same page, and across all brands the same publisher brand) computed over this range. Validated like `dateRange` (max 730 days, start <= end). """ comparisonDateRange: AiVisibilityDateRangeInput """ Optional country filter using ISO 3166-1 alpha-2 code. When set to a country code, only citations from prompts targeting that country are included. When explicitly set to null, only citations from worldwide prompts are included. When omitted, citations from all prompts are returned regardless of country. """ country: String """ Date range for filtering citations. Maximum 730 days. Defaults to last 30 days when omitted. """ dateRange: AiVisibilityDateRangeInput """ Number of items to return. """ first: Int = 15 """ Ordering options for citations. Defaults to createdAt DESC. """ orderBy: [AiVisibilityCitationOrder!] """ Case-insensitive search over the cited page's canonical URL. The search text is canonicalised like the stored URL, so a pasted URL finds its page whatever its scheme, `www.`, default port, trailing slash, fragment or tracking parameters. Narrows which pages are returned without changing any page's metrics, and `totalCount` counts only the matching pages. """ search: String ): AiVisibilityCitationConnection! getAiVisibilityBrandMentions( accountId: ObjectID! """ Offset cursor for pagination. Returns items after this position. """ after: String """ Optional AI platform filter. When provided, only mentions from prompt runs executed by these AI platforms are included. """ aiProviderTypes: [AiVisibilityAiProviderType!] """ Brand ID to filter mentions. Mentions are returned for this specific brand (including its merged variants). """ aiVisibilityBrandId: ObjectID! """ Filter by specific AI Visibility project ID. """ aiVisibilityProjectId: ObjectID! """ Filter by specific prompt ID. """ aiVisibilityPromptId: ObjectID """ Filter by specific topic ID. """ aiVisibilityTopicId: ObjectID """ Optional filter on whether the same answer also mentions one of the project's own brands. Set to false to see answers that name this brand without naming yours. """ answerMentionsOwnBrand: Boolean """ Optional branded filter. When true, only prompts naming the project's own brand are included; when false, only prompts that do not name it — which includes a prompt naming only a competitor, since the tag is about the project's own brand alone. When omitted or null, both are included. """ branded: Boolean """ Optional filter: only mentions backed by at least one citation on one of these domains, such as `reddit.com`. Matches the domain and its subdomains, ignoring case, scheme and `www.`. """ citationDomains: [String!] """ Optional filter on the citations backing each mention. `NonOwnDomain` returns mentions sourced from pages outside the project's own domains; `ThirdPartyDomain` also leaves out competitor domains. Combined with `citationSourceTypes` and `citationDomains`, one backing citation must satisfy all of them, so `Uncited` combined with either returns no mentions. """ citationSource: AiVisibilityMentionCitationSource """ Optional filter: only mentions backed by at least one citation of these source types. Citations from runs processed before source types were graded have none and never match. """ citationSourceTypes: [AiVisibilityCitationSourceType!] """ Optional comparison window. When provided alongside selections inside `previousPeriod`, the returned connection's `previousPeriod` is populated with a paginated connection of mentions from that window. Inherits this query's `first` (and other args). Validated like `dateRange` (max 730 days, start <= end). """ comparisonDateRange: AiVisibilityDateRangeInput """ Optional country filter using ISO 3166-1 alpha-2 code. When set to a country code, only mentions from prompts targeting that country are included. When explicitly set to null, only mentions from worldwide prompts are included. When omitted, mentions from all prompts are returned regardless of country. """ country: String """ Date range for filtering mentions. Maximum 730 days. """ dateRange: AiVisibilityDateRangeInput """ Number of items to return. """ first: Int = 15 """ Ordering options for mentions. Defaults to brandMentionQualityScore DESC. """ orderBy: [AiVisibilityMentionOrder!] ): AiVisibilityMentionConnection! """ The brand's researched profile: what it does, who and where it sells to, what it is aiming for, what it owns and its competitors, for the brand's first domain and its project's market. Only the project's own brands (the primary brand and brands of type Own) with a domain added by a person are researched. Research starts with refreshAiVisibilityBrandProfile, on the brand's first topic or prompt suggestion generation, or from the free scan; this query never starts it. Null when the brand is not researched or has no profile for its current domain and market yet. Poll while status is Researching. """ getAiVisibilityBrandProfile( """ The account the brand belongs to. """ accountId: ObjectID! """ The brand, usually the project's primary brand. """ aiVisibilityBrandId: ObjectID! ): AiVisibilityBrandProfile getAiVisibilityBrands( accountId: ObjectID! """ Offset cursor for pagination. Returns items after this position. """ after: String """ Optional AI platform filter. When provided, only data from prompt runs executed by these AI platforms is included. """ aiProviderTypes: [AiVisibilityAiProviderType!] aiVisibilityProjectId: ObjectID! """ Optional topic ID to filter brand statistics. When provided, stats are calculated only from prompt runs belonging to prompts under this topic. """ aiVisibilityTopicId: ObjectID """ Optional branded filter. When true, only prompts naming the project's own brand are included; when false, only prompts that do not name it — which includes a prompt naming only a competitor, since the tag is about the project's own brand alone. When omitted or null, both are included. """ branded: Boolean """ Optional comparison window. When provided alongside selections inside `previousPeriod`, each node's `previousPeriod` is populated with the same metrics computed over this range. Validated like `dateRange` (max 730 days, start <= end). """ comparisonDateRange: AiVisibilityDateRangeInput """ Optional country filter using ISO 3166-1 alpha-2 code. When set to a country code, only data from prompts targeting that country is included. When explicitly set to null, only data from worldwide prompts is included. When omitted, data from all prompts is returned regardless of country. """ country: String """ Date range for metrics calculation. Maximum 730 days. When omitted, metric fields return default values and metric-based ordering is unavailable. """ dateRange: AiVisibilityDateRangeInput """ Number of items to return. """ first: Int = 15 """ Ordering options for AI Visibility Brands. Defaults to avgVisibilityScore DESC. """ orderBy: [AiVisibilityBrandOrder!] """ Search filter matching brand name. """ search: String """ Optional brand type filter. When provided, only brands of these types are returned — and the Share of Voice metric is computed over that same set: the denominators, `brandsInScope`, `others` and each node's share all follow it, so the returned shares sum to 100% of the requested types rather than to the requested types' slice of every brand. Pass `[Own, Competitor]` for a share-of-competitors view. `Context` brands (platforms and surfaces like Google or ChatGPT) never count towards a denominator, so requesting them alone yields zeroed totals and 0 shares next to real appearance counts. """ types: [AiVisibilityBrandType!] ): AiVisibilityBrandConnection! """ Lists the third-party pages cited in answers that named at least one of the given brands, usually competitors, and none of the project's own brands: pages where a rival is being recommended without you. One node per page, most-cited first. Select only `totalCount` to count them. """ getAiVisibilityCompetitorGapCitedPages( accountId: ObjectID! """ Offset cursor for pagination. Returns items after this position. """ after: String """ Optional AI platform filter. When provided, only answers from prompt runs executed by these AI platforms are included. List each platform at most once. """ aiProviderTypes: [AiVisibilityAiProviderType!] """ Brands whose mentions to count pages for, each including its merged variants; a merged variant counts as the brand it was merged into. Between 1 and 10. A page cited for more than one of them counts once. """ aiVisibilityBrandIds: [ObjectID!]! """ AI Visibility project the brands belong to. """ aiVisibilityProjectId: ObjectID! """ Filter by specific topic ID. """ aiVisibilityTopicId: ObjectID """ Optional branded filter. When true, only prompts naming the project's own brand are included; when false, only prompts that do not name it — which includes a prompt naming only a competitor, since the tag is about the project's own brand alone. When omitted or null, both are included. """ branded: Boolean """ Optional country filter using ISO 3166-1 alpha-2 code. When set to a country code, only answers to prompts targeting that country are included. When explicitly set to null, only answers to worldwide prompts are included. When omitted, answers to all prompts are included regardless of country. """ country: String """ Date range of the prompt runs to include. Maximum 730 days. Defaults to the last 30 days. """ dateRange: AiVisibilityDateRangeInput """ Number of pages to return, at most 100. """ first: Int = 15 """ Ordering options. Defaults to `answerCount` descending. The requested order is followed by the default one: most answers, then the best `sourceType`, then the most recent `latestCitedAt`, then `canonicalUrl`. """ orderBy: [AiVisibilityCompetitorGapCitedPageOrder!] ): AiVisibilityCompetitorGapCitedPageConnection! """ Paginated list of unique URLs discovered via SERP discovery for a project, aggregated to one node per URL across all prompt runs. Filterable by topic, prompt, AI provider, and date range. `totalCount` is the count of unique URLs. """ getAiVisibilityDiscoveredPages( accountId: ObjectID! """ Offset cursor for pagination. Returns items after this position. """ after: String """ Optional AI platform filter. When provided, only pages discovered via prompt runs executed by these AI platforms are included. """ aiProviderTypes: [AiVisibilityAiProviderType!] """ Filter by specific AI Visibility project ID. """ aiVisibilityProjectId: ObjectID! """ Restrict to pages discovered for a single prompt. """ aiVisibilityPromptId: ObjectID """ Restrict to pages discovered for prompts under a single topic. """ aiVisibilityTopicId: ObjectID """ Optional comparison window. When provided alongside selections inside `previousPeriod`, each node's `previousPeriod` is populated with the same metrics (for the same URL) computed over this range. Validated like `dateRange` (max 730 days, start <= end). """ comparisonDateRange: AiVisibilityDateRangeInput """ Filter by discovery time (serp_discovery_results.created_at). Maximum 730 days. Defaults to last 30 days when omitted. """ dateRange: AiVisibilityDateRangeInput """ Number of items to return. """ first: Int = 15 """ Ordering options for discovered pages. Defaults to bestPosition ASC. """ orderBy: [AiVisibilityDiscoveredPageOrder!] """ Case-insensitive search over the page's canonical URL. The search text is canonicalised like the stored URL, so a pasted URL finds its page whatever its scheme, `www.`, default port, trailing slash, fragment or tracking parameters. Narrows which pages are returned without changing any page's metrics, and `totalCount` counts only the matching pages. """ search: String """ Restrict to a single page. The URL is canonicalised before matching, so any spelling of the page — `http`/`https`, with or without `www.`, a trailing slash or tracking parameters — selects it. """ url: String ): AiVisibilityDiscoveredPageConnection! """ Paginated list of evaluated pages for a project: one node per page with its page scores over `dateRange`, aggregated from the page's completed page runs. Searchable, orderable and filterable by a set of URLs; `totalCount` is the number of evaluated pages matching the filters. """ getAiVisibilityEvaluatedPages( accountId: ObjectID! """ Offset cursor for pagination. Returns items after this position. """ after: String """ When provided, citation-based visibility metrics (avgCitationQualityScore, avgBrandPosition, totalBrandCitations, avgVisibilityIndex, topicNames, aiProviderTypes) are computed for this brand, including merged variants. """ aiVisibilityBrandId: ObjectID aiVisibilityProjectId: ObjectID! """ Optional comparison window. When provided alongside selections inside `previousPeriod`, each node's `previousPeriod` is populated with the same page's scores over this range. Validated like `dateRange` (max 730 days, start <= end). """ comparisonDateRange: AiVisibilityDateRangeInput """ Date range for page score calculation: only page runs completed in this window count. Maximum 730 days. Defaults to last 30 days when omitted. """ dateRange: AiVisibilityDateRangeInput """ Number of items to return. """ first: Int = 15 """ Ordering options for evaluated pages. Defaults to latestRunAt DESC. """ orderBy: [AiVisibilityPageScoreOrder!] """ Restrict to these pages by the `pageId` of pages returned by this API, up to 100 ids. Combines with `urls` when both are given. A value that is not a page id is rejected rather than silently matching nothing. An empty list matches no pages. """ pageIds: [String!] """ Case-insensitive search over the page's canonical URL. The search text is canonicalised like the stored URL, so a pasted URL finds its page whatever its scheme, `www.`, default port, trailing slash, fragment or tracking parameters. Narrows which pages are returned without changing any page's scores, and `totalCount` counts only the matching pages. """ search: String """ Restrict to these pages, up to 100 URLs. Each URL is canonicalised before matching, so any spelling of a page selects it. URLs with no completed page run in the window are absent from the result. An empty list matches no pages. """ urls: [String!] ): AiVisibilityPageScoreConnection! """ Get a single AI Visibility Page Run by ID. """ getAiVisibilityPageRun(accountId: ObjectID!, aiVisibilityPageRunId: ObjectID!, aiVisibilityProjectId: ObjectID!): AiVisibilityPageRun getAiVisibilityPageRuns( accountId: ObjectID! """ Offset cursor for pagination. Returns items after this position. """ after: String aiVisibilityProjectId: ObjectID! """ Return only page runs whose `createdAt` falls inside this range (both ends inclusive). Maximum 730 days, start <= end. Combine with `statuses: [Completed]` and `first: 1` to fetch the latest completed run in a period. """ createdAt: AiVisibilityDateRangeInput """ Number of items to return. """ first: Int = 15 """ Ordering options for AI Visibility Page Runs. Defaults to createdAt DESC. """ orderBy: [AiVisibilityPageRunOrder!] """ Case-insensitive search over the page's canonical URL. The search text is canonicalised like the stored URL, so a pasted URL finds its page whatever its scheme, `www.`, default port, trailing slash, fragment or tracking parameters. Combines with `url` and `sources`, and `totalCount` counts only the matching runs. """ search: String """ Filter by page run sources. Defaults to excluding copywriting-agent preview evaluations. """ sources: [AiVisibilityPageRunSource!] """ Filter by page run statuses, for example only `Completed` runs. An empty list matches no runs. Defaults to every status. """ statuses: [AiVisibilityPageRunStatus!] """ Filter page runs for a single page. The URL is canonicalised before matching, so any spelling of the page — `http`/`https`, with or without `www.`, a trailing slash or tracking parameters — returns every run of that page, whichever spelling each run was requested with. """ url: String ): AiVisibilityPageRunConnection! getAiVisibilityPageScores( accountId: ObjectID! """ When provided, citation-based visibility metrics (avgCitationQualityScore, avgBrandPosition, totalBrandCitations) are computed for this brand, including merged variants. """ aiVisibilityBrandId: ObjectID aiVisibilityProjectId: ObjectID! """ Optional comparison window. When provided alongside selections inside `previousPeriod`, each result's `previousPeriod` is populated with the same URL's page scores over this range. Validated like `dateRange` (max 730 days, start <= end). """ comparisonDateRange: AiVisibilityDateRangeInput """ Date range for page score calculation. Maximum 730 days. Defaults to last 30 days when omitted. """ dateRange: AiVisibilityDateRangeInput """ Optional page filter by the `pageId` of a page returned by this API. Takes precedence over `url`. A value that is not a page id at all is rejected rather than silently matching nothing; one that decodes to a URL is canonicalised before matching, so it resolves to the page it names. """ pageId: String """ Optional single-URL filter. The URL is canonicalised before matching, so it selects the whole page rather than one spelling of it. Prefer `pageId` when routing from a page returned by this API. """ url: String """ Optional multi-URL filter, up to 100 URLs, so a set of pages is fetched in one request. Each URL is canonicalised before matching, like `url`, and combines with `url` when both are given. URLs with no completed page run in the window are absent from the result. An empty list matches no pages, even alongside `url`. Ignored when `pageId` is given. """ urls: [String!] ): [AiVisibilityPageScore!]! @deprecated(reason: "Use `getAiVisibilityEvaluatedPages`, which is paginated, searchable and sortable. Pass `urls: [url]` or `pageIds: [pageId]` there to fetch a single page.") getAiVisibilityProject(accountId: ObjectID!, aiVisibilityProjectId: ObjectID!): AiVisibilityProject getAiVisibilityProjects( accountId: ObjectID! """ Offset cursor for pagination. Returns items after this position. """ after: String """ When true, excludes AI Visibility Projects already linked to a crawl project. Used by the crawl project settings page to only offer projects that are still available to link. """ excludeLinked: Boolean """ Number of items to return. At most 100 when `periodStats` is selected. """ first: Int = 15 """ Ordering options for AI Visibility Projects returned from the connection. """ orderBy: [AiVisibilityProjectOrder!] """ Search filter matching project name or oldest domain of the primary brand. """ search: String """ Restricts the list to AI Visibility Projects carrying at least one of these account tags. Omit for no tag filter; an empty list is rejected. An empty result is returned when no project carries any of them. """ tagIds: [ObjectID!] ): AiVisibilityProjectConnection! """ Get a single AI Visibility Prompt by ID. """ getAiVisibilityPrompt(accountId: ObjectID!, aiVisibilityPromptId: ObjectID!): AiVisibilityPromptDetails """ Get detailed information about a single AI Visibility Prompt Run. """ getAiVisibilityPromptRunDetails( accountId: ObjectID! """ Brand ID to calculate metrics for. Stats are calculated for this specific brand (including its merged variants). """ aiVisibilityBrandId: ObjectID! aiVisibilityPromptRunId: ObjectID! ): AiVisibilityPromptRunDetails """ Get a paginated list of AI Visibility Prompt Runs for a prompt with brand metrics. """ getAiVisibilityPromptRuns( accountId: ObjectID! """ Offset cursor for pagination. Returns items after this position. """ after: String """ Optional AI platform filter. When provided, only prompt runs executed by these AI platforms are returned. """ aiProviderTypes: [AiVisibilityAiProviderType!] """ Brand ID to filter prompt run metrics. Stats are calculated for this specific brand (including its merged variants). """ aiVisibilityBrandId: ObjectID! aiVisibilityPromptId: ObjectID! """ Filter to prompt runs that have at least one citation matching this exact URL for the specified brand. Only finished runs are returned while this filter is set, since a citation on an unfinished run is provisional; runs are already limited to `dateRange`. Exact match only — no URL normalization. """ citedUrl: String """ Optional comparison window. When provided alongside selections inside `previousPeriod`, the returned connection's `previousPeriod` is populated with a paginated connection of prompt runs from that window. Inherits this query's `first` (and other args). Validated like `dateRange` (max 730 days, start <= end). """ comparisonDateRange: AiVisibilityDateRangeInput """ Date range filter for prompt runs by createdAt. Maximum 730 days. """ dateRange: AiVisibilityDateRangeInput """ Number of items to return. """ first: Int = 15 """ Ordering options for AI Visibility Prompt Runs. Defaults to createdAt DESC. """ orderBy: [AiVisibilityPromptRunOrder!] ): AiVisibilityPromptRunConnection! getAiVisibilityPrompts( accountId: ObjectID! """ Offset cursor for pagination. Returns items after this position. """ after: String """ Optional AI platform filter. When provided, only data from prompt runs executed by these AI platforms is included. """ aiProviderTypes: [AiVisibilityAiProviderType!] """ Brand ID to filter prompt statistics. Stats are calculated for this specific brand (including its merged variants). """ aiVisibilityBrandId: ObjectID! aiVisibilityProjectId: ObjectID! """ Optional topic ID to filter prompts to a specific topic. """ aiVisibilityTopicId: ObjectID """ Restricts which brands may appear in each prompt's `topBrands` ranking. Pass `[Own, Competitor, Other]` to keep `Context` brands (platforms and surfaces like Google or ChatGPT) out of the top 4 so the next ranked brands take their slots, matching `getAiVisibilityTopBrands` scoped the same way. Does not change which prompts are returned or the specified brand's own metrics. Defaults to every type. """ brandTypes: [AiVisibilityBrandType!] """ Optional branded filter. When true, only prompts that name the project's own brand are returned; when false, only prompts that do not name it — a prompt naming only a competitor is one of those, since the tag is about the project's own brand alone. When omitted or null, both are returned. """ branded: Boolean """ Filter to prompts that have at least one citation matching this exact URL for the specified brand. Only citations recorded by finished prompt runs count, and `dateRange` and `aiProviderTypes` also scope the match when supplied — so this agrees with how citations are counted elsewhere. When `dateRange` is omitted, a citation from a finished run in any period matches. Exact match only — no URL normalization. """ citedUrl: String """ Optional comparison window. When provided alongside selections inside `previousPeriod`, each node's `previousPeriod` is populated with the same metrics computed over this range. Validated like `dateRange` (max 730 days, start <= end). """ comparisonDateRange: AiVisibilityDateRangeInput """ Optional country filter using ISO 3166-1 alpha-2 code. When set to a country code, only prompts targeting that country are included. When explicitly set to null, only worldwide (no country) prompts are included. When omitted, all prompts are returned regardless of country. """ country: String """ Date range for metrics calculation. Maximum 730 days. When omitted, metric fields return default values and metric-based ordering is unavailable. """ dateRange: AiVisibilityDateRangeInput """ Number of items to return. """ first: Int = 15 """ Ordering options for AI Visibility Prompts. Defaults to avgVisibilityScore DESC. """ orderBy: [AiVisibilityPromptOrder!] """ Search filter matching prompt content or topic name. """ search: String ): AiVisibilityPromptConnection! getAiVisibilityRunUsage( accountId: ObjectID! """ Draft provider selection to model. Defaults to the providers currently linked to the project. Ignored when the account inherits all entitled providers from its subscription. """ aiProviderTypes: [AiVisibilityAiProviderType!] aiVisibilityProjectId: ObjectID! """ An entitled, currently unselected provider to preview, for example while its platform row is hovered. """ previewAiProviderType: AiVisibilityAiProviderType """ Draft number of active prompts to model. Defaults to the project's active, non-paused prompt count. """ promptCount: Int """ Draft cadence to model. Defaults to the project's saved cadence. """ scheduleCadence: AiVisibilityScheduleCadence ): AiVisibilityRunUsage! getAiVisibilitySearchQueries( accountId: ObjectID! """ Offset cursor for pagination. Returns items after this position. """ after: String """ Optional AI platform filter. When provided, only search queries from prompt runs executed by these AI platforms are included. """ aiProviderTypes: [AiVisibilityAiProviderType!] """ Filter by specific AI Visibility project ID. """ aiVisibilityProjectId: ObjectID! """ Filter by specific prompt ID. """ aiVisibilityPromptId: ObjectID """ Filter by specific topic ID. """ aiVisibilityTopicId: ObjectID """ Optional branded filter. When true, only prompts naming the project's own brand are included; when false, only prompts that do not name it — which includes a prompt naming only a competitor, since the tag is about the project's own brand alone. When omitted or null, both are included. """ branded: Boolean """ Optional comparison window. When provided alongside selections inside `previousPeriod`, each node's `previousPeriod` is populated with the same metrics (for the same query, case-insensitive) computed over this range. Validated like `dateRange` (max 730 days, start <= end). """ comparisonDateRange: AiVisibilityDateRangeInput """ Optional country filter using ISO 3166-1 alpha-2 code. When set to a country code, only search queries from prompts targeting that country are included. When explicitly set to null, only search queries from worldwide prompts are included. When omitted, search queries from all prompts are returned regardless of country. """ country: String """ Date range for filtering search queries. Maximum 730 days. Defaults to last 30 days when omitted. """ dateRange: AiVisibilityDateRangeInput """ Number of items to return. """ first: Int = 15 """ Ordering options for search queries. Defaults to totalSearchQueries DESC. """ orderBy: [AiVisibilitySearchQueryOrder!] ): AiVisibilitySearchQueryConnection! """ Paginated list of URLs discovered via SERP discovery for a project. Returns discovered URLs regardless of page-run completion. Filterable by prompt, topic, prompt run, AI provider, status, domain, and date range. """ getAiVisibilitySerpDiscoveredUrls( accountId: ObjectID! """ Offset cursor for pagination. Returns items after this position. """ after: String """ Restrict to URLs discovered via prompt runs on the given AI provider types. """ aiProviderTypes: [AiVisibilityAiProviderType!] """ Restrict to URLs discovered via prompt runs on a single AI provider. """ aiVisibilityAiProviderId: ObjectID """ Restrict to URLs whose SERP discovery run targeted a domain belonging to this brand (incl. its merged variants). Resolves to the union of normalized hostnames from the brand's `brandDomains`; if the brand has no domains, the connection is empty. """ aiVisibilityBrandId: ObjectID aiVisibilityProjectId: ObjectID! """ Restrict to URLs discovered for a single prompt. """ aiVisibilityPromptId: ObjectID """ Restrict to URLs discovered for a single prompt run. """ aiVisibilityPromptRunId: ObjectID """ Restrict to URLs discovered for a single SERP discovery run. """ aiVisibilitySerpDiscoveryRunId: ObjectID """ Restrict to URLs discovered for prompts under a single topic. """ aiVisibilityTopicId: ObjectID """ Filter by discoveredAt (serp_discovery_results.created_at) date range. Maximum 730 days. """ dateRange: AiVisibilityDateRangeInput """ Filter by exact SERP domain (e.g. google.com). """ domain: String """ Number of items to return. """ first: Int = 15 """ When false (default) the same URL is returned at most once per (url, promptRunId) — keeping the first-position discovery. Set true to return every raw discovery row. """ includeDuplicates: Boolean = false """ Ordering options for AI Visibility SERP Discovered URLs. Defaults to discoveredAt DESC. """ orderBy: [AiVisibilitySerpDiscoveredUrlOrder!] """ Filter by prompt run status. Discovered URLs are returned regardless of page-run completion. """ promptRunStatus: AiVisibilityPromptRunStatus """ Filter by SERP discovery run status. """ serpDiscoveryRunStatus: AiVisibilitySerpDiscoveryRunStatus ): AiVisibilitySerpDiscoveredUrlConnection! getAiVisibilitySerpDiscoveryRuns( accountId: ObjectID! """ Offset cursor for pagination. Returns items after this position. """ after: String aiVisibilityProjectId: ObjectID! """ Filter SERP discovery runs by domain. """ domain: String """ Number of items to return. """ first: Int = 15 """ Ordering options for AI Visibility SERP Discovery Runs. Defaults to createdAt DESC. """ orderBy: [AiVisibilitySerpDiscoveryRunOrder!] """ Filter SERP discovery runs by status. """ status: AiVisibilitySerpDiscoveryRunStatus ): AiVisibilitySerpDiscoveryRunConnection! getAiVisibilityShareOfVoiceTrend( accountId: ObjectID! """ Optional AI platform filter. When provided, only data from prompt runs executed by these AI platforms is included. """ aiProviderTypes: [AiVisibilityAiProviderType!] """ The focus brand, always returned as the first series (`rank` 1) even when it had no appearances in the window. Accepts a merged brand ID and returns its merge target's rolled-up series. Defaults to the project's primary brand when omitted. """ aiVisibilityBrandId: ObjectID """ Filter by specific AI Visibility project ID. """ aiVisibilityProjectId: ObjectID! """ Optional prompt ID to scope the metric. When provided, only runs of this prompt contribute. """ aiVisibilityPromptId: ObjectID """ Optional topic ID to scope the metric. When provided, only prompt runs under this topic contribute — to the series and to the denominators. """ aiVisibilityTopicId: ObjectID """ How many brand series to return, including the focus brand's slot — so the default 6 is the focus brand plus the 5 next-highest by mention Share of Voice. Every remaining brand in scope is rolled into `others`. Raising this multiplies the response size by `buckets.length`, so prefer a coarser `timeBucket` on long windows. """ brandLimit: Int = 6 """ Restricts which brands the metric is computed over — series selection, `others`, `brandsInScope` and the per-bucket denominators together, so the returned shares always sum to 100% of the brands in scope. Defaults to every type except `Context`. Pass `[Own, Competitor]` for a share-of-competitors view, where shares are renormalized to that set. `Context` brands (platforms and surfaces — Google, ChatGPT) are always excluded, even when listed here. """ brandTypes: [AiVisibilityBrandType!] """ Optional branded filter. When true, only prompts naming the project's own brand are included; when false, only prompts that do not name it — which includes a prompt naming only a competitor, since the tag is about the project's own brand alone. When omitted or null, both are included. """ branded: Boolean """ Optional country filter using ISO 3166-1 alpha-2 code. When set to a country code, only data from prompts targeting that country is included. When explicitly set to null, only data from worldwide prompts is included. When omitted, data from all prompts is returned regardless of country. """ country: String """ Date range for the series. Maximum 730 days. Defaults to the last 30 days. """ dateRange: AiVisibilityDateRangeInput """ Time bucket granularity for grouping data points. Defaults to Day. """ timeBucket: AiVisibilityTimeBucket = Day ): AiVisibilityShareOfVoiceTrend! """ The latest suggested prompt generation for a brand and topic, or null if none was ever requested with `requestAiVisibilitySuggestedPromptsGeneration`. """ getAiVisibilitySuggestedPromptGeneration(accountId: ObjectID!, aiVisibilityBrandId: ObjectID!, aiVisibilityProjectId: ObjectID!, aiVisibilityTopicId: ObjectID!): AiVisibilitySuggestedPromptGeneration getAiVisibilitySuggestedPrompts(accountId: ObjectID!, aiVisibilityBrandId: ObjectID!, aiVisibilityProjectId: ObjectID!, aiVisibilityTopicId: ObjectID!): [AiVisibilitySuggestedPrompt!]! getAiVisibilitySuggestedTopics(accountId: ObjectID!, aiVisibilityBrandId: ObjectID!, aiVisibilityProjectId: ObjectID!): [AiVisibilitySuggestedTopic!]! """ Every quoted claim behind one theme's sentiment for a brand, as a flat paginated list. Use it for a claims table; `getAiVisibilityThemeSentimentDetails` groups the same claims under their scored answers. """ getAiVisibilityThemeSentimentClaims( accountId: ObjectID! """ Offset cursor for pagination. Returns items after this position. """ after: String """ Optional AI platform filter. When provided, only claims from answers produced by these AI platforms are included. """ aiProviderTypes: [AiVisibilityAiProviderType!] """ Brand ID to return claims for (including its merged variants). """ aiVisibilityBrandId: ObjectID! """ Filter by specific AI Visibility project ID. """ aiVisibilityProjectId: ObjectID! """ Filter by specific prompt ID. """ aiVisibilityPromptId: ObjectID """ Theme ID to list claims for. Returns every quoted claim behind that theme's sentiment. """ aiVisibilityThemeId: ObjectID! """ Filter by specific topic ID. """ aiVisibilityTopicId: ObjectID """ Optional branded filter. When true, only prompts naming the project's own brand are included; when false, only prompts that do not name it — which includes a prompt naming only a competitor, since the tag is about the project's own brand alone. When omitted or null, both are included. """ branded: Boolean """ Optional country filter using ISO 3166-1 alpha-2 code. When set to a country code, only claims from prompts targeting that country are included. When explicitly set to null, only claims from worldwide prompts are included. When omitted, claims from all prompts are returned regardless of country. """ country: String """ Date range for filtering claims by their prompt run's date. Maximum 730 days. Defaults to the last 30 days. """ dateRange: AiVisibilityDateRangeInput """ Number of items to return. """ first: Int = 15 """ Ordering options. Defaults to createdAt DESC (newest answers first), then claim order within an answer. """ orderBy: [AiVisibilityThemeSentimentClaimOrder!] """ Optional polarity filter. When provided, only claims with one of these polarities are included. """ polarities: [AiVisibilityThemeSentimentClaimPolarity!] ): AiVisibilityThemeSentimentClaimConnection! getAiVisibilityThemeSentimentDetails( accountId: ObjectID! """ Offset cursor for pagination. Returns items after this position. """ after: String """ Optional AI platform filter. When provided, only rows from prompt runs executed by these AI platforms are included. """ aiProviderTypes: [AiVisibilityAiProviderType!] """ Brand ID to return sentiment rows for (including its merged variants). """ aiVisibilityBrandId: ObjectID! """ Filter by specific AI Visibility project ID. """ aiVisibilityProjectId: ObjectID! """ Filter by specific prompt ID. """ aiVisibilityPromptId: ObjectID """ Theme ID to drill into. Returns the individual sentiment rows behind that theme. """ aiVisibilityThemeId: ObjectID! """ Filter by specific topic ID. """ aiVisibilityTopicId: ObjectID """ Optional branded filter. When true, only prompts naming the project's own brand are included; when false, only prompts that do not name it — which includes a prompt naming only a competitor, since the tag is about the project's own brand alone. When omitted or null, both are included. """ branded: Boolean """ Optional comparison window. When provided alongside selections inside `previousPeriod`, the returned connection's `previousPeriod` is populated with a paginated connection of sentiment rows from that window. Inherits this query's `first` (and other args). Validated like `dateRange` (max 730 days, start <= end). """ comparisonDateRange: AiVisibilityDateRangeInput """ Optional country filter using ISO 3166-1 alpha-2 code. When set to a country code, only rows from prompts targeting that country are included. When explicitly set to null, only rows from worldwide prompts are included. When omitted, rows from all prompts are returned regardless of country. """ country: String """ Date range for filtering sentiment rows. Maximum 730 days. Defaults to the last 30 days. """ dateRange: AiVisibilityDateRangeInput """ Number of items to return. """ first: Int = 15 """ Ordering options. Defaults to sentiment DESC. """ orderBy: [AiVisibilityThemeSentimentDetailOrder!] ): AiVisibilityThemeSentimentDetailConnection! getAiVisibilityThemeSentimentMatrix( accountId: ObjectID! """ Optional AI platform filter. When provided, only sentiment from prompt runs executed by these AI platforms is included. """ aiProviderTypes: [AiVisibilityAiProviderType!] """ Optional subset of brands to include as columns (each including its merged variants), maximum 100. When omitted, every brand with theme sentiment in scope is returned. """ aiVisibilityBrandIds: [ObjectID!] """ Filter by specific AI Visibility project ID. """ aiVisibilityProjectId: ObjectID! """ Filter by specific prompt ID. """ aiVisibilityPromptId: ObjectID """ Filter by specific topic ID. """ aiVisibilityTopicId: ObjectID """ Optional branded filter. When true, only prompts naming the project's own brand are included; when false, only prompts that do not name it — which includes a prompt naming only a competitor, since the tag is about the project's own brand alone. When omitted or null, both are included. """ branded: Boolean """ Optional country filter using ISO 3166-1 alpha-2 code. When set to a country code, only sentiment from prompts targeting that country is included. When explicitly set to null, only sentiment from worldwide prompts is included. When omitted, sentiment from all prompts is returned regardless of country. """ country: String """ Date range for the matrix. Maximum 730 days. Defaults to the last 30 days. """ dateRange: AiVisibilityDateRangeInput ): AiVisibilityThemeSentimentMatrix! getAiVisibilityThemeSentimentScores( accountId: ObjectID! """ Optional AI platform filter. When provided, only sentiment from prompt runs executed by these AI platforms is included. """ aiProviderTypes: [AiVisibilityAiProviderType!] """ Brand ID to aggregate sentiment for (including its merged variants). Returns one data point per time bucket. """ aiVisibilityBrandId: ObjectID! """ Filter by specific AI Visibility project ID. """ aiVisibilityProjectId: ObjectID! """ Filter by specific prompt ID. """ aiVisibilityPromptId: ObjectID """ Filter by specific topic ID. """ aiVisibilityTopicId: ObjectID """ Optional branded filter. When true, only prompts naming the project's own brand are included; when false, only prompts that do not name it — which includes a prompt naming only a competitor, since the tag is about the project's own brand alone. When omitted or null, both are included. """ branded: Boolean """ Optional comparison window. When provided alongside selections inside `previousPeriod`, the returned trend's `previousPeriod` is populated with dataPoints over this range (same timeBucket). Validated like `dateRange` (max 730 days, start <= end). """ comparisonDateRange: AiVisibilityDateRangeInput """ Optional country filter using ISO 3166-1 alpha-2 code. When set to a country code, only sentiment from prompts targeting that country is included. When explicitly set to null, only sentiment from worldwide prompts is included. When omitted, sentiment from all prompts is returned regardless of country. """ country: String """ Date range for the sentiment score series. Maximum 730 days. Defaults to the last 30 days. """ dateRange: AiVisibilityDateRangeInput """ Time bucket granularity for grouping data points. Defaults to Day. """ timeBucket: AiVisibilityTimeBucket = Day ): AiVisibilityThemeSentimentScoreTrend! getAiVisibilityThemeSentiments( accountId: ObjectID! """ Offset cursor for pagination. Returns items after this position. """ after: String """ Optional AI platform filter. When provided, only sentiment from prompt runs executed by these AI platforms is included. """ aiProviderTypes: [AiVisibilityAiProviderType!] """ Brand ID to aggregate theme sentiment for (including its merged variants). Returns one node per theme. """ aiVisibilityBrandId: ObjectID! """ Filter by specific AI Visibility project ID. """ aiVisibilityProjectId: ObjectID! """ Filter by specific prompt ID. """ aiVisibilityPromptId: ObjectID """ Filter by specific topic ID. """ aiVisibilityTopicId: ObjectID """ Optional branded filter. When true, only prompts naming the project's own brand are included; when false, only prompts that do not name it — which includes a prompt naming only a competitor, since the tag is about the project's own brand alone. When omitted or null, both are included. """ branded: Boolean """ Optional comparison window. When provided alongside selections inside `previousPeriod`, the returned connection's `previousPeriod` is populated with a paginated connection computed against that window. Inherits this query's `first` (and other args). Validated like `dateRange` (max 730 days, start <= end). """ comparisonDateRange: AiVisibilityDateRangeInput """ Optional country filter using ISO 3166-1 alpha-2 code. When set to a country code, only sentiment from prompts targeting that country is included. When explicitly set to null, only sentiment from worldwide prompts is included. When omitted, sentiment from all prompts is returned regardless of country. """ country: String """ Date range for filtering theme sentiment. Maximum 730 days. Defaults to the last 30 days. """ dateRange: AiVisibilityDateRangeInput """ Number of items to return. """ first: Int = 15 """ Ordering options. Defaults to avgSentiment DESC. """ orderBy: [AiVisibilityThemeSentimentOrder!] ): AiVisibilityThemeSentimentConnection! getAiVisibilityTopBrands( accountId: ObjectID! """ Optional AI platform filter. When provided, only data from prompt runs executed by these AI platforms is included. """ aiProviderTypes: [AiVisibilityAiProviderType!] """ The focus brand that is always included in results """ aiVisibilityBrandId: ObjectID! aiVisibilityProjectId: ObjectID! """ Optional prompt ID to scope metrics. When provided, metrics are calculated only from runs of this prompt. Overrides topicId if both are provided. """ aiVisibilityPromptId: ObjectID """ Optional topic ID to scope metrics. When provided, metrics are calculated only from prompt runs under this topic. """ aiVisibilityTopicId: ObjectID """ Restricts which brands the ranking and the Share of Voice metric are computed over — the returned `brands`, `others`, `brandsInScope` and the denominators together, so the returned shares always sum to 100% of the brands in scope. Pass `[Own, Competitor]` for a share-of-competitors view, where shares are renormalized to that set rather than merely filtered down to it. `totalRankedBrands` counts only these types. `Context` brands (platforms and surfaces like Google or ChatGPT) are returned when listed here, with real appearance counts and a null share, but never count towards a denominator. The focus brand is always returned even when its type is excluded, likewise with real counts and a null share; it is held out of the ranking in that case, so it neither takes a rank nor shifts the brands that hold one, and reads `rank` 0. When omitted, the ranking spans every brand in the project. """ brandTypes: [AiVisibilityBrandType!] """ Optional branded filter. When true, only prompts naming the project's own brand are included; when false, only prompts that do not name it — which includes a prompt naming only a competitor, since the tag is about the project's own brand alone. When omitted or null, both are included. """ branded: Boolean """ Optional comparison window. When provided and the caller selects fields under `previousPeriod` on each brand, those fields are populated with this brand's metrics and rank in the comparison window. The current period determines which brands appear; `previousPeriod` does not change the set, only re-computes metrics and rank for those brands using the same `orderBy` and scope filters. Validated like `dateRange` (max 730 days, start <= end). """ comparisonDateRange: AiVisibilityDateRangeInput """ Optional country filter using ISO 3166-1 alpha-2 code. When set to a country code, only data from prompts targeting that country is included. When explicitly set to null, only data from worldwide prompts is included. When omitted, data from all prompts is returned regardless of country. """ country: String """ Date range for metrics calculation. Maximum 730 days. Defaults to last 30 days when omitted. """ dateRange: AiVisibilityDateRangeInput """ Ordering options for Top Brands ranking. Defaults to avgVisibilityScore DESC. """ orderBy: [AiVisibilityTopBrandOrder!] ): AiVisibilityTopBrandsResult! getAiVisibilityTopic(accountId: ObjectID!, aiVisibilityProjectId: ObjectID!, aiVisibilityTopicId: ObjectID!): AiVisibilityTopicDetails """ Per-topic Visibility Index trends. Index-named successor of `getAiVisibilityTopicVisibilityScores` — identical arguments, data and semantics; only the type names changed with the visibility-score → visibility-index rename. """ getAiVisibilityTopicVisibilityIndexTrends( accountId: ObjectID! """ Optional AI platform filter. When provided, only data from prompt runs executed by these AI platforms is included. """ aiProviderTypes: [AiVisibilityAiProviderType!] """ Brand ID to filter scores. Stats are calculated for this specific brand (including its merged variants). """ aiVisibilityBrandId: ObjectID! aiVisibilityProjectId: ObjectID! """ Optional branded filter. When true, only prompts naming the project's own brand are included; when false, only prompts that do not name it — which includes a prompt naming only a competitor, since the tag is about the project's own brand alone. When omitted or null, both are included. """ branded: Boolean """ Optional comparison window. When provided alongside selections inside `previousPeriod` on each returned trend, previousPeriod is populated with that topic's trend over this range (same timeBucket). Validated like `dateRange` (max 730 days, start <= end). """ comparisonDateRange: AiVisibilityDateRangeInput """ Optional country filter using ISO 3166-1 alpha-2 code. When set to a country code, only data from prompts targeting that country is included. When explicitly set to null, only data from worldwide prompts is included. When omitted, data from all prompts is returned regardless of country. """ country: String """ Date range for visibility score calculation. Maximum 730 days. Defaults to last 30 days when omitted. """ dateRange: AiVisibilityDateRangeInput """ Time bucket granularity for grouping data points. Defaults to Day. """ timeBucket: AiVisibilityTimeBucket = Day ): [AiVisibilityTopicVisibilityIndexTrend!]! getAiVisibilityTopicVisibilityScores( accountId: ObjectID! """ Optional AI platform filter. When provided, only data from prompt runs executed by these AI platforms is included. """ aiProviderTypes: [AiVisibilityAiProviderType!] """ Brand ID to filter scores. Stats are calculated for this specific brand (including its merged variants). """ aiVisibilityBrandId: ObjectID! aiVisibilityProjectId: ObjectID! """ Optional branded filter. When true, only prompts naming the project's own brand are included; when false, only prompts that do not name it — which includes a prompt naming only a competitor, since the tag is about the project's own brand alone. When omitted or null, both are included. """ branded: Boolean """ Optional comparison window. When provided alongside selections inside `previousPeriod` on each returned trend, previousPeriod is populated with that topic's trend over this range (same timeBucket). Validated like `dateRange` (max 730 days, start <= end). """ comparisonDateRange: AiVisibilityDateRangeInput """ Optional country filter using ISO 3166-1 alpha-2 code. When set to a country code, only data from prompts targeting that country is included. When explicitly set to null, only data from worldwide prompts is included. When omitted, data from all prompts is returned regardless of country. """ country: String """ Date range for visibility score calculation. Maximum 730 days. Defaults to last 30 days when omitted. """ dateRange: AiVisibilityDateRangeInput """ Time bucket granularity for grouping data points. Defaults to Day. """ timeBucket: AiVisibilityTimeBucket = Day ): [AiVisibilityTopicVisibilityScoreTrend!]! @deprecated(reason: "Renamed to `getAiVisibilityTopicVisibilityIndexTrends` (identical arguments and data). Scheduled for removal.") getAiVisibilityTopics( accountId: ObjectID! """ Offset cursor for pagination. Returns items after this position. """ after: String """ Optional AI platform filter. When provided, only data from prompt runs executed by these AI platforms is included. """ aiProviderTypes: [AiVisibilityAiProviderType!] """ Brand ID to filter topic statistics. Stats are calculated for this specific brand (including its merged variants). """ aiVisibilityBrandId: ObjectID! aiVisibilityProjectId: ObjectID! """ Restricts which brands the per-topic Share of Voice metric is computed over: the denominators, `brandsInScope`, and which brand can be elected `mentionShareOfVoiceLeader` / `citationShareOfVoiceLeader` (and therefore the gap to it). Pass `[Own, Competitor]` to read each topic as a share-of-competitors standing, matching a Share of Voice chart scoped the same way. Also restricts which brands may appear in each topic's `topBrands` ranking — pass `[Own, Competitor, Other]` to keep `Context` brands out of the top 4 so the next ranked brands take their slots. Does not change which topics are returned. For Share of Voice, `Context` brands (platforms and surfaces like Google or ChatGPT) are always excluded from the denominators, even when listed here; for `topBrands` they are ranked unless the list leaves them out. Defaults to every type (every type except `Context` for Share of Voice). """ brandTypes: [AiVisibilityBrandType!] """ Optional branded filter. When true, only prompts naming the project's own brand are included; when false, only prompts that do not name it — which includes a prompt naming only a competitor, since the tag is about the project's own brand alone. When omitted or null, both are included. """ branded: Boolean """ Optional comparison window. When provided alongside selections inside `previousPeriod`, each node's `previousPeriod` is populated with the same metrics computed over this range. Validated like `dateRange` (max 730 days, start <= end). """ comparisonDateRange: AiVisibilityDateRangeInput """ Optional country filter using ISO 3166-1 alpha-2 code. When set to a country code, only data from prompts targeting that country is included. When explicitly set to null, only data from worldwide prompts is included. When omitted, data from all prompts is returned regardless of country. """ country: String """ Date range for metrics calculation. Maximum 730 days. When omitted, metric fields return default values and metric-based ordering is unavailable. """ dateRange: AiVisibilityDateRangeInput """ Number of items to return. """ first: Int = 15 """ Ordering options for AI Visibility Topics. Defaults to avgVisibilityScore DESC. """ orderBy: [AiVisibilityTopicOrder!] ): AiVisibilityTopicConnection! """ Aggregated Visibility Index trend with an optional comparison-window trend under `previousPeriod`. Index-named successor of `getAiVisibilityVisibilityScoreTrend` — identical arguments, data and semantics; only the type names changed with the visibility-score → visibility-index rename. """ getAiVisibilityVisibilityIndexTrend( accountId: ObjectID! """ Optional AI platform filter. When provided, only data from prompt runs executed by these AI platforms is included. """ aiProviderTypes: [AiVisibilityAiProviderType!] """ Brand ID to filter scores. Stats are calculated for this specific brand (including its merged variants). """ aiVisibilityBrandId: ObjectID! aiVisibilityProjectId: ObjectID! """ Optional prompt ID to scope metrics. When provided, metrics are calculated only from runs of this prompt. Overrides topicId if both are provided. """ aiVisibilityPromptId: ObjectID """ Optional topic ID to filter scores. When omitted, aggregates across all topics. When provided, filters to the specified topic. """ aiVisibilityTopicId: ObjectID """ Optional branded filter. When true, only prompts naming the project's own brand are included; when false, only prompts that do not name it — which includes a prompt naming only a competitor, since the tag is about the project's own brand alone. When omitted or null, both are included. """ branded: Boolean """ Optional comparison window. When provided alongside selections inside `previousPeriod`, the returned trend's previousPeriod is populated with dataPoints over this range (same timeBucket). Validated like `dateRange` (max 730 days, start <= end). """ comparisonDateRange: AiVisibilityDateRangeInput """ Optional country filter using ISO 3166-1 alpha-2 code. When set to a country code, only data from prompts targeting that country is included. When explicitly set to null, only data from worldwide prompts is included. When omitted, data from all prompts is returned regardless of country. """ country: String """ Date range for visibility score calculation. Maximum 730 days. Defaults to last 30 days when omitted. """ dateRange: AiVisibilityDateRangeInput """ Time bucket granularity for grouping data points. Defaults to Day. """ timeBucket: AiVisibilityTimeBucket = Day ): AiVisibilityVisibilityIndexTrend! """ Returns an aggregated visibility-score trend wrapper with an optional comparison-window trend under `previousPeriod`. Prefer this over `getAiVisibilityVisibilityScores` (flat array) when comparison is needed. """ getAiVisibilityVisibilityScoreTrend( accountId: ObjectID! """ Optional AI platform filter. When provided, only data from prompt runs executed by these AI platforms is included. """ aiProviderTypes: [AiVisibilityAiProviderType!] """ Brand ID to filter scores. Stats are calculated for this specific brand (including its merged variants). """ aiVisibilityBrandId: ObjectID! aiVisibilityProjectId: ObjectID! """ Optional prompt ID to scope metrics. When provided, metrics are calculated only from runs of this prompt. Overrides topicId if both are provided. """ aiVisibilityPromptId: ObjectID """ Optional topic ID to filter scores. When omitted, aggregates across all topics. When provided, filters to the specified topic. """ aiVisibilityTopicId: ObjectID """ Optional branded filter. When true, only prompts naming the project's own brand are included; when false, only prompts that do not name it — which includes a prompt naming only a competitor, since the tag is about the project's own brand alone. When omitted or null, both are included. """ branded: Boolean """ Optional comparison window. When provided alongside selections inside `previousPeriod`, the returned trend's previousPeriod is populated with dataPoints over this range (same timeBucket). Validated like `dateRange` (max 730 days, start <= end). """ comparisonDateRange: AiVisibilityDateRangeInput """ Optional country filter using ISO 3166-1 alpha-2 code. When set to a country code, only data from prompts targeting that country is included. When explicitly set to null, only data from worldwide prompts is included. When omitted, data from all prompts is returned regardless of country. """ country: String """ Date range for visibility score calculation. Maximum 730 days. Defaults to last 30 days when omitted. """ dateRange: AiVisibilityDateRangeInput """ Time bucket granularity for grouping data points. Defaults to Day. """ timeBucket: AiVisibilityTimeBucket = Day ): AiVisibilityVisibilityScoreTrend! @deprecated(reason: "Renamed to `getAiVisibilityVisibilityIndexTrend` (identical arguments and data). Scheduled for removal.") getAiVisibilityVisibilityScores( accountId: ObjectID! """ Optional AI platform filter. When provided, only data from prompt runs executed by these AI platforms is included. """ aiProviderTypes: [AiVisibilityAiProviderType!] """ Brand ID to filter scores. Stats are calculated for this specific brand (including its merged variants). """ aiVisibilityBrandId: ObjectID! aiVisibilityProjectId: ObjectID! """ Optional prompt ID to scope metrics. When provided, metrics are calculated only from runs of this prompt. Overrides topicId if both are provided. """ aiVisibilityPromptId: ObjectID """ Optional topic ID to filter scores. When omitted, aggregates across all topics. When provided, filters to the specified topic. """ aiVisibilityTopicId: ObjectID """ Optional branded filter. When true, only prompts naming the project's own brand are included; when false, only prompts that do not name it — which includes a prompt naming only a competitor, since the tag is about the project's own brand alone. When omitted or null, both are included. """ branded: Boolean """ Optional country filter using ISO 3166-1 alpha-2 code. When set to a country code, only data from prompts targeting that country is included. When explicitly set to null, only data from worldwide prompts is included. When omitted, data from all prompts is returned regardless of country. """ country: String """ Date range for visibility score calculation. Maximum 730 days. Defaults to last 30 days when omitted. """ dateRange: AiVisibilityDateRangeInput """ Time bucket granularity for grouping data points. Defaults to Day. """ timeBucket: AiVisibilityTimeBucket = Day ): [AiVisibilityVisibilityScoreDataPoint!]! @deprecated(reason: "Use getAiVisibilityVisibilityIndexTrend instead. It supports comparisonDateRange + previousPeriod and uses the index-named types.") """ List of available alert settings. """ getAlertSettings: [AlertSetting!]! """ Look up automator account statistics by account ObjectID. """ getAutomatorAccountStatistics(accountId: ObjectID!): AutomatorAccountStatistics! """ Find Automator Report Templates by connection arguments. """ getAutomatorReportTemplates( after: String before: String """ Filtering options for ReportTemplates returned from the connection. """ filter: ReportTemplateConnectionFilterInput first: Int = 15 last: Int """ Ordering options for ReportTemplates returned from the connection. """ orderBy: [ReportTemplateOrder!] ): ReportTemplateConnection! """ Look up build by ObjectID. """ getBuild(id: ObjectID!): Build """ Look up buildSchedule by ObjectID. """ getBuildSchedule(id: ObjectID!): BuildSchedule """ Look up crawl by ObjectID. """ getCrawl(id: ObjectID!): Crawl """ List of available CrawlTypes. """ getCrawlTypesMetadata: [CrawlTypeMetadata!]! """ Look up custom chart by ObjectID. """ getCustomChart(id: ObjectID!): CustomChart """ Look up custom dashboard by ObjectID. """ getCustomDashboard(id: ObjectID!): CustomDashboard """ Look up custom dashboard collection by ObjectID. """ getCustomDashboardCollection(id: ObjectID!): CustomDashboardCollection """ Look up CustomMetricContainer by ObjectID. """ getCustomMetricContainer(id: ObjectID!): CustomMetricContainer """ Look up CustomMetricContainerGeneration by ObjectID. """ getCustomMetricContainerGeneration(id: ObjectID!): CustomMetricContainerGeneration getCustomMetricContainerVersion(id: ObjectID!): CustomMetricContainerVersion getCustomMetricContainerVersionByVersion(customMetricContainerId: ObjectID!, version: Int!): CustomMetricContainerVersion getCustomMetricUploadContainer(id: ObjectID!): CustomMetricUploadContainer getCustomReport(input: GetCustomReportInput!): CustomReport """ Look up CustomReportTemplate by ObjectID. """ getCustomReportTemplate(id: ObjectID!): CustomReportTemplate getCustomReports(inputs: [GetCustomReportInput!]!): [CustomReport!] """ Look up custom table by ObjectID. """ getCustomTable(id: ObjectID!): CustomTable getDatasources: [Datasource!]! """ Look up ElementOptimisationRequest by ObjectID. """ getElementOptimisationRequest(id: ObjectID!): ElementOptimisationRequest getFeatureCosts: [FeatureCost!]! getGlobalCustomMetricContainers( after: String before: String """ Filtering options for CustomMetricContainers returned from the connection. """ filter: CustomMetricContainerConnectionFilterInput first: Int = 15 last: Int """ Ordering options for CustomMetricContainers returned from the connection. """ orderBy: [CustomMetricContainerOrder!] ): CustomMetricContainerConnection! @deprecated(reason: "Use Account.getGlobalCustomMetricContainers or Project.getGlobalCustomMetricContainers") getHealthScore(input: GetHealthScoreInput!): HealthScore """ Look up healthScoreTest by ObjectID. """ getHealthScoreTest(id: ObjectID!): HealthScoreTest """ Returns the health score trend for a given Crawl. """ getHealthScoreTrendForCrawl( after: String before: String crawlId: ObjectID! """ Filtering options for ReportCategories returned from the connection. """ filter: ReportCategoryConnectionFilterInput first: Int = 15 last: Int """ Ordering options for ReportCategories returned from the connection. """ orderBy: [ReportCategoryOrder!] ): CrawlHealthScoreTrendConnection! """ Returns the health score trend for a given CrawlSegment. """ getHealthScoreTrendForCrawlSegment( after: String before: String crawlId: ObjectID! """ Filtering options for ReportCategories returned from the connection. """ filter: ReportCategoryConnectionFilterInput first: Int = 15 last: Int """ Ordering options for ReportCategories returned from the connection. """ orderBy: [ReportCategoryOrder!] segmentId: ObjectID! ): CrawlSegmentHealthScoreTrendConnection! getHealthScores(inputs: [GetHealthScoreInput!]!): [HealthScore!] """ Returns Crawl health scores for a list of report category codes. """ getHealthScoresForCrawls( after: String before: String """ Filtering options for Crawls returned from the connection. """ filter: CrawlConnectionFilterInput first: Int = 15 last: Int """ Ordering options for Crawls returned from the connection. """ orderBy: [CrawlOrder!] reportCategoryCodes: [String!]! ): CrawlHealthScoreConnection! @deprecated(reason: "Use getHealthScores query instead.") getIndustries( after: String before: String """ Filtering options for Industries returned from the connection. """ filter: IndustryConnectionFilterInput first: Int = 15 last: Int """ Ordering options for Industries returned from the connection. """ orderBy: [IndustryOrder!] ): IndustryConnection! getIndustryBenchmarks( after: String before: String """ Filtering options for IndustryBenchmarks returned from the connection. """ filter: IndustryBenchmarkConnectionFilterInput first: Int = 15 last: Int """ Ordering options for IndustryBenchmarks returned from the connection. """ orderBy: [IndustryBenchmarkOrder!] ): IndustryBenchmarkConnection! getJiraCreateFieldMetadataForProjectAndIssueType(input: GetJiraCreateFieldMetadataForProjectAndIssueTypeInput!): [JiraField!]! getJiraFieldAutocompleteSuggestions(input: GetJiraFieldAutocompleteSuggestionsInput!): [JiraFieldAutocompleteSuggestion!]! getJiraIssuePickerSuggestions(input: GetJiraIssuePickerSuggestionsInput!): GetJiraIssuePickerSuggestionsPayload! getJiraIssueTypes(input: GetJiraIssueTypesInput!): [JiraIssueType!]! getJiraProjects(input: GetJiraProjectsInput!): [JiraProject!]! getJiraSettings: JiraSettings! getLegacyTask(id: ObjectID!): LegacyTask getLegacyTasksForProjects( after: String before: String """ Filtering options for LegacyTasks returned from the connection. """ filter: LegacyTaskConnectionFilterInput first: Int = 15 last: Int """ Ordering options for LegacyTasks returned from the connection. """ orderBy: [LegacyTaskOrder!] projectIds: [ObjectID!]! ): LegacyTaskConnection! """ The CDN and web host providers a log manager connection can be created for. """ getLogManagerProviders: [LogManagerProviderInfo!]! getModule(code: ModuleCode!): Module getModules: [Module!] """ Look up project by ObjectID. """ getProject(id: ObjectID!): Project getReportCategories( after: String before: String """ Filtering options for ReportCategories returned from the connection. """ filter: ReportCategoryConnectionFilterInput first: Int = 15 last: Int """ Ordering options for ReportCategories returned from the connection. """ orderBy: [ReportCategoryOrder!] ): ReportCategoryConnection! getReportStat(input: GetReportStatInput!): ReportStat getReportStats(inputs: [GetReportStatInput!]!): [ReportStat!] """ Find ReportTemplateVersions by connection arguments. """ getReportTemplateVersions( after: String before: String """ Filtering options for ReportTemplateVersions returned from the connection. """ filter: ReportTemplateVersionConnectionFilterInput first: Int = 15 last: Int """ Ordering options for ReportTemplateVersions returned from the connection. """ orderBy: [ReportTemplateVersionOrder!] ): ReportTemplateVersionConnection! """ Find Report Templates by connection arguments. """ getReportTemplates( after: String before: String """ Filtering options for ReportTemplates returned from the connection. """ filter: ReportTemplateConnectionFilterInput first: Int = 15 last: Int """ Ordering options for ReportTemplates returned from the connection. """ orderBy: [ReportTemplateOrder!] ): ReportTemplateConnection! """ List of available report types. """ getReportTypes: [ReportType!]! """ List of available roles. """ getRoles: [Role!]! getSSOClientForAccount(accountId: ObjectID!): SSOClient """ List of available schedule frequencies. """ getScheduleFrequencies: [ScheduleFrequency!]! """ Look up segment by ObjectID. """ getSegment(id: ObjectID!): Segment getSelfServePlans: [SelfServePlan!]! """ Look up SinglePageRequesterRequest by ObjectID. """ getSinglePageRequesterRequest(id: ObjectID!): SinglePageRequesterRequest """ Look up SinglePageRequesterRequest by request ID. """ getSinglePageRequesterRequestByRequestId(requestId: String!): SinglePageRequesterRequest """ List of available plans. """ getSsoAccountSubscriptionPlans: [AccountSubscriptionPlan!]! getSsoConnection(input: GetSsoConnectionInput!): SSOConnection """ Look up test by ObjectID. """ getTest(id: ObjectID!): Test """ Look up testSuite by ObjectID. """ getTestSuite(id: ObjectID!): TestSuite """ List of locations available for test suite. """ getTestSuiteLocations: [Location!]! """ List of available UrlFileUploadTypes. """ getUrlFileUploadTypes: [UrlFileUploadType!]! """ List of all available user agents. """ getUserAgents: [UserAgent!]! """ The currently authenticated user. """ me: User! """ Fetches an object given its ID. """ node(id: ObjectID!): Entity """ Lookup nodes by a list of IDs. """ nodes(ids: [ObjectID!]!): [Entity!]! """ Preview non-blocking tag mismatch warnings before linking projects or editing either tag set. Supply both project IDs for a proposed link, or one ID for its existing links. No data is changed. """ previewProjectLinkTags(input: PreviewProjectLinkTagsInput!): [ProjectLinkTagWarning!]! searchAiVisibilityBrands(input: SearchAiVisibilityBrandsInput!): [AiVisibilityBrandSearchResult!]! searchAiVisibilityTopics(input: SearchAiVisibilityTopicsInput!): [AiVisibilityTopicSearchResult!]! serviceAccount(id: ObjectID!): ServiceAccount sharelink: Sharelink version: String! } input ReactivateCancelledSelfServeAccountSubscriptionInput { accountId: ObjectID! optionalAddons: [SelfServeOptionalAddonInput!]! = [] """ One of: geo-growth, geo-starter. """ planCode: String! planInterval: SelfServePlanInterval! = Month } type ReactivateCancelledSelfServeAccountSubscriptionPayload { account: Account! } input ReactivateCancellingSelfServeAccountSubscriptionInput { accountId: ObjectID! } type ReactivateCancellingSelfServeAccountSubscriptionPayload { account: Account! } type Redirect { exclusionReason: RedirectExclusionReason isJSRedirect: Boolean isMetaRedirect: Boolean! redirectsTo: String result: String statusCode: Int url: String! } enum RedirectExclusionReason { Disallowed ExcludedUrl External Internal MalformedUrl NonHtmlFile NotIncludedUrl Other PageGroupingRestricted TooManyRedirects } input RedirectObjectArrayMemberConnectionFilterInput { redirectsTo: ConnectionStringObjectArrayMemberFilterInput result: ConnectionStringObjectArrayMemberFilterInput statusCode: ConnectionIntObjectArrayMemberFilterInput url: ConnectionStringObjectArrayMemberFilterInput } input RefreshAiVisibilityBrandProfileInput { """ The account the brand belongs to. """ accountId: ObjectID! """ The brand, usually the project's primary brand. """ aiVisibilityBrandId: ObjectID! } type RefreshAiVisibilityBrandProfilePayload { """ The profile, researching. Null when the brand is not researched or research is switched off. """ brandProfile: AiVisibilityBrandProfile } input RejectHealthScoreTestResultsSuggestedThresholdInput { healthScoreTestResultIds: [ObjectID!]! } type RejectHealthScoreTestResultsSuggestedThresholdPayload { healthScoreTestResults: [HealthScoreTestResult!]! } input RejectSuggestedThresholdInput { testResultIds: [ObjectID!]! } input RemoveCustomDashboardFromCollectionInput { customDashboardCollectionId: ObjectID! customViewIds: [ObjectID!]! } type RemoveCustomViewsFromCustomDashboardCollectionPayload { customViews: [CustomView!]! } input RemoveSsoClientIpRangeInput { id: Int! } type RemoveSsoClientIpRangePayload { ssoClientIpRange: SsoClientIpRange! } type RendererCookie { name: String! value: String! } input RendererCookieInput { name: String! value: String! } enum RenderingRobotsCheckMode { BlockDisallowed RequestDisallowed } input ReorderAccountTagsInput { accountId: ObjectID! """ Every tag belonging to the account, listed exactly once, in the order they should be displayed in. """ accountTagIds: [ObjectID!]! } type ReorderAccountTagsPayload { """ The account's tags, in their new order. """ accountTags: [AccountTag!]! } type ReportCategory { abbreviation: String! code: String! description: String! healthScore: Boolean! name: String! parentCode: String position: Int! } type ReportCategoryConnection { """ A list of edges. """ edges: [ReportCategoryEdge!]! """ A list of nodes. """ nodes: [ReportCategory!]! """ Information to aid in pagination. """ pageInfo: PageInfo! """ Identifies the total count of ReportCategories in the connection. """ totalCount: Int! } input ReportCategoryConnectionFilterInput { """ Groups each filter object using AND """ _and: [ReportCategoryConnectionFilterInput!] """ Groups each filter object using AND, wrapped inside NOT """ _not: [ReportCategoryConnectionFilterInput!] """ Groups each filter object using OR """ _or: [ReportCategoryConnectionFilterInput!] code: ConnectionStringFilterInput healthScore: ConnectionBooleanFilterInput parentCode: ConnectionStringFilterInput position: ConnectionIntFilterInput } type ReportCategoryEdge { """ A cursor to use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: ReportCategory! } input ReportCategoryOrder { """ The ordering direction. """ direction: OrderDirection! """ The field to order ReportCategories by. """ field: ReportCategoryOrderField! } enum ReportCategoryOrderField { code healthScore parentCode position } type ReportDownload { aggregateCode: String crawl: Crawl! createdAt: DateTime! customReportTemplate: CustomReportTemplate fileURL(fileName: String): String filter: String id: ObjectID! outputType: ReportDownloadOutputType! rawID: String! reportTemplate: ReportTemplate reportedAt: DateTime reportingAt: DateTime selectedMetrics: [String!] status: ReportDownloadStatus! task: LegacyTask totalRows: Float unwindMetrics: [String!] updatedAt: DateTime! } type ReportDownloadConnection { """ A list of edges. """ edges: [ReportDownloadEdge!]! """ A list of nodes. """ nodes: [ReportDownload!]! """ Information to aid in pagination. """ pageInfo: PageInfo! """ Identifies the total count of ReportDownloads in the connection. """ totalCount: Int! } input ReportDownloadConnectionFilterInput { """ Groups each filter object using AND """ _and: [ReportDownloadConnectionFilterInput!] """ Groups each filter object using AND, wrapped inside NOT """ _not: [ReportDownloadConnectionFilterInput!] """ Groups each filter object using OR """ _or: [ReportDownloadConnectionFilterInput!] aggregateCode: ConnectionStringFilterInput createdAt: ConnectionDateFilterInput segmentId: ConnectionObjectIDFilterInput taskId: ConnectionObjectIDFilterInput totalRows: ConnectionFloatFilterInput updatedAt: ConnectionDateFilterInput } type ReportDownloadEdge { """ A cursor to use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: ReportDownload! } input ReportDownloadOrder { """ The ordering direction. """ direction: OrderDirection! """ The field to order ReportDownloads by. """ field: ReportDownloadOrderField! } enum ReportDownloadOrderField { createdAt totalRows updatedAt } enum ReportDownloadOutputType { CompactCsvZip CsvGzip CsvTarGz CsvZip XmlZip } enum ReportDownloadStatus { Draft Generated Generating } union ReportRow = | CrawlAccessibilityIssue | CrawlAccessibilityIssueInstance | CrawlAiVisibilityPrompt | CrawlAnalyticsAiReferral | CrawlDuplicateUrl | CrawlHreflangs | CrawlLink | CrawlLinkedDomain | CrawlLogSummariesAiBot | CrawlOrigin | CrawlProjectMetricsItem | CrawlSearchQuery | CrawlSearchQueryWithLandingPages | CrawlSiteSpeedAudit | CrawlSiteSpeedAuditItem | CrawlSiteSpeedAuditOpportunity | CrawlSitemap | CrawlStructuredDataBlock | CrawlStructuredDataBreakdown | CrawlStructuredDataIssue | CrawlTopic | CrawlUncrawledUrl | CrawlUniqueLink | CrawlUrl | CrawlWebCrawlDepth type ReportStat implements ReportStatBase { added: Float basic: Float coreUIUrl(reportType: ReportTypeCode! = Basic): String! crawl: Crawl! crawlAccessibilityIssueInstances( after: String before: String """ Filtering options for CrawlAccessibilityIssueInstances returned from the connection. """ filter: CrawlAccessibilityIssueInstanceConnectionFilterInput first: Int = 15 last: Int """ Ordering options for CrawlAccessibilityIssueInstances returned from the connection. """ orderBy: [CrawlAccessibilityIssueInstanceOrder!] reportType: ReportTypeCode! = Basic ): CrawlAccessibilityIssueInstanceConnection crawlAccessibilityIssues( after: String before: String """ Filtering options for CrawlAccessibilityIssues returned from the connection. """ filter: CrawlAccessibilityIssueConnectionFilterInput first: Int = 15 last: Int """ Ordering options for CrawlAccessibilityIssues returned from the connection. """ orderBy: [CrawlAccessibilityIssueOrder!] reportType: ReportTypeCode! = Basic ): CrawlAccessibilityIssueConnection crawlAccessibilityIssuesAggregates( after: String dimensions: [CrawlAccessibilityIssueAggregateDimension!]! = [] filter: CrawlAccessibilityIssueConnectionFilterInput first: Int = 100 """ Ordering options for CrawlAccessibilityIssueAggregates returned from the connection. """ orderBy: [CrawlAccessibilityIssueAggregateOrder!]! = [] reportType: ReportTypeCode! = Basic ): CrawlAccessibilityIssueAggregateConnection crawlAiVisibilityPrompts( after: String before: String """ Filtering options for CrawlAiVisibilityPrompts returned from the connection. """ filter: CrawlAiVisibilityPromptConnectionFilterInput first: Int = 15 last: Int """ Ordering options for CrawlAiVisibilityPrompts returned from the connection. """ orderBy: [CrawlAiVisibilityPromptOrder!] reportType: ReportTypeCode! = Basic ): CrawlAiVisibilityPromptConnection crawlAnalyticsAiReferrals( after: String before: String """ Filtering options for CrawlAnalyticsAiReferrals returned from the connection. """ filter: CrawlAnalyticsAiReferralConnectionFilterInput first: Int = 15 last: Int """ Ordering options for CrawlAnalyticsAiReferrals returned from the connection. """ orderBy: [CrawlAnalyticsAiReferralOrder!] reportType: ReportTypeCode! = Basic ): CrawlAnalyticsAiReferralConnection crawlAnalyticsAiReferralsAggregates( dimensions: [CrawlAnalyticsAiReferralAggregateDimension!]! = [] filter: CrawlAnalyticsAiReferralConnectionFilterInput """ Ordering options for CrawlAnalyticsAiReferralAggregates returned from the connection. """ orderBy: [CrawlAnalyticsAiReferralAggregateOrder!]! = [] reportType: ReportTypeCode! = Basic ): CrawlAnalyticsAiReferralAggregateConnection crawlDuplicateUrls( after: String before: String """ Filtering options for CrawlDuplicateUrls returned from the connection. """ filter: CrawlDuplicateUrlConnectionFilterInput first: Int = 15 last: Int """ Ordering options for CrawlDuplicateUrls returned from the connection. """ orderBy: [CrawlDuplicateUrlOrder!] reportType: ReportTypeCode! = Basic ): CrawlDuplicateUrlConnection crawlDuplicateUrlsBuckets(filter: CrawlDuplicateUrlConnectionFilterInput, floatRangeAggs: [FloatRangeAggInput!]! = [], intRangeAggs: [IntRangeAggInput!]! = [], reportType: ReportTypeCode! = Basic, termsAggs: [TermsAggInput!]! = []): BucketsPayload crawlHreflangs( after: String before: String """ Filtering options for CrawlHreflangs returned from the connection. """ filter: CrawlHreflangsConnectionFilterInput first: Int = 15 last: Int """ Ordering options for CrawlHreflangs returned from the connection. """ orderBy: [CrawlHreflangsOrder!] reportType: ReportTypeCode! = Basic ): CrawlHreflangsConnection crawlId: ObjectID! crawlLinkedDomains( after: String before: String """ Filtering options for CrawlLinkedDomains returned from the connection. """ filter: CrawlLinkedDomainConnectionFilterInput first: Int = 15 last: Int """ Ordering options for CrawlLinkedDomains returned from the connection. """ orderBy: [CrawlLinkedDomainOrder!] reportType: ReportTypeCode! = Basic ): CrawlLinkedDomainConnection crawlLinkedDomainsBuckets(filter: CrawlLinkedDomainConnectionFilterInput, floatRangeAggs: [FloatRangeAggInput!]! = [], intRangeAggs: [IntRangeAggInput!]! = [], reportType: ReportTypeCode! = Basic, termsAggs: [TermsAggInput!]! = []): BucketsPayload crawlLinks( after: String before: String """ Filtering options for CrawlLinks returned from the connection. """ filter: CrawlLinkConnectionFilterInput first: Int = 15 last: Int """ Ordering options for CrawlLinks returned from the connection. """ orderBy: [CrawlLinkOrder!] reportType: ReportTypeCode! = Basic ): CrawlLinkConnection crawlLinksBuckets(filter: CrawlLinkConnectionFilterInput, floatRangeAggs: [FloatRangeAggInput!]! = [], intRangeAggs: [IntRangeAggInput!]! = [], reportType: ReportTypeCode! = Basic, termsAggs: [TermsAggInput!]! = []): BucketsPayload crawlLogSummariesAiBots( after: String before: String """ Filtering options for CrawlLogSummariesAiBots returned from the connection. """ filter: CrawlLogSummariesAiBotConnectionFilterInput first: Int = 15 last: Int """ Ordering options for CrawlLogSummariesAiBots returned from the connection. """ orderBy: [CrawlLogSummariesAiBotOrder!] reportType: ReportTypeCode! = Basic ): CrawlLogSummariesAiBotConnection crawlLogSummariesAiBotsAggregates( after: String dimensions: [CrawlLogSummariesAiBotAggregateDimension!]! = [] filter: CrawlLogSummariesAiBotConnectionFilterInput first: Int = 100 """ Ordering options for CrawlLogSummariesAiBotAggregates returned from the connection. """ orderBy: [CrawlLogSummariesAiBotAggregateOrder!]! = [] reportType: ReportTypeCode! = Basic ): CrawlLogSummariesAiBotAggregateConnection crawlOrigins( after: String before: String """ Filtering options for CrawlOrigins returned from the connection. """ filter: CrawlOriginConnectionFilterInput first: Int = 15 last: Int """ Ordering options for CrawlOrigins returned from the connection. """ orderBy: [CrawlOriginOrder!] reportType: ReportTypeCode! = Basic ): CrawlOriginConnection crawlProjectMetricsItems( after: String before: String """ Filtering options for CrawlProjectMetricsItems returned from the connection. """ filter: CrawlProjectMetricsItemConnectionFilterInput first: Int = 15 last: Int """ Ordering options for CrawlProjectMetricsItems returned from the connection. """ orderBy: [CrawlProjectMetricsItemOrder!] reportType: ReportTypeCode! = Basic ): CrawlProjectMetricsItemConnection crawlSearchQueries( after: String before: String """ Filtering options for CrawlSearchQueries returned from the connection. """ filter: CrawlSearchQueryConnectionFilterInput first: Int = 15 last: Int """ Ordering options for CrawlSearchQueries returned from the connection. """ orderBy: [CrawlSearchQueryOrder!] reportType: ReportTypeCode! = Basic ): CrawlSearchQueryConnection crawlSearchQueriesWithLandingPages( after: String before: String """ Filtering options for CrawlSearchQueryWithLandingPages returned from the connection. """ filter: CrawlSearchQueryWithLandingPagesConnectionFilterInput first: Int = 15 last: Int """ Ordering options for CrawlSearchQueryWithLandingPages returned from the connection. """ orderBy: [CrawlSearchQueryWithLandingPagesOrder!] reportType: ReportTypeCode! = Basic ): CrawlSearchQueryWithLandingPagesConnection crawlSiteSpeedAuditItems( after: String before: String """ Filtering options for CrawlSiteSpeedAuditItems returned from the connection. """ filter: CrawlSiteSpeedAuditItemConnectionFilterInput first: Int = 15 last: Int """ Ordering options for CrawlSiteSpeedAuditItems returned from the connection. """ orderBy: [CrawlSiteSpeedAuditItemOrder!] reportType: ReportTypeCode! = Basic ): CrawlSiteSpeedAuditItemConnection crawlSiteSpeedAuditOpportunities( after: String before: String """ Filtering options for CrawlSiteSpeedAuditOpportunities returned from the connection. """ filter: CrawlSiteSpeedAuditOpportunityConnectionFilterInput first: Int = 15 last: Int """ Ordering options for CrawlSiteSpeedAuditOpportunities returned from the connection. """ orderBy: [CrawlSiteSpeedAuditOpportunityOrder!] reportType: ReportTypeCode! = Basic ): CrawlSiteSpeedAuditOpportunityConnection crawlSiteSpeedAuditOpportunitiesAggregates( after: String dimensions: [CrawlSiteSpeedAuditOpportunityAggregateDimension!]! = [] filter: CrawlSiteSpeedAuditOpportunityConnectionFilterInput first: Int = 100 """ Ordering options for CrawlSiteSpeedAuditOpportunityAggregates returned from the connection. """ orderBy: [CrawlSiteSpeedAuditOpportunityAggregateOrder!]! = [] reportType: ReportTypeCode! = Basic ): CrawlSiteSpeedAuditOpportunityAggregateConnection crawlSiteSpeedAuditOpportunitiesBuckets(filter: CrawlSiteSpeedAuditOpportunityConnectionFilterInput, floatRangeAggs: [FloatRangeAggInput!]! = [], intRangeAggs: [IntRangeAggInput!]! = [], reportType: ReportTypeCode! = Basic, termsAggs: [TermsAggInput!]! = []): BucketsPayload crawlSiteSpeedAudits( after: String before: String """ Filtering options for CrawlSiteSpeedAudits returned from the connection. """ filter: CrawlSiteSpeedAuditConnectionFilterInput first: Int = 15 last: Int """ Ordering options for CrawlSiteSpeedAudits returned from the connection. """ orderBy: [CrawlSiteSpeedAuditOrder!] reportType: ReportTypeCode! = Basic ): CrawlSiteSpeedAuditConnection crawlSiteSpeedAuditsAggregates( after: String dimensions: [CrawlSiteSpeedAuditAggregateDimension!]! = [] filter: CrawlSiteSpeedAuditConnectionFilterInput first: Int = 100 """ Ordering options for CrawlSiteSpeedAuditAggregates returned from the connection. """ orderBy: [CrawlSiteSpeedAuditAggregateOrder!]! = [] reportType: ReportTypeCode! = Basic ): CrawlSiteSpeedAuditAggregateConnection crawlSiteSpeedAuditsBuckets(filter: CrawlSiteSpeedAuditConnectionFilterInput, floatRangeAggs: [FloatRangeAggInput!]! = [], intRangeAggs: [IntRangeAggInput!]! = [], reportType: ReportTypeCode! = Basic, termsAggs: [TermsAggInput!]! = []): BucketsPayload crawlSitemaps( after: String before: String """ Filtering options for CrawlSitemaps returned from the connection. """ filter: CrawlSitemapConnectionFilterInput first: Int = 15 last: Int """ Ordering options for CrawlSitemaps returned from the connection. """ orderBy: [CrawlSitemapOrder!] reportType: ReportTypeCode! = Basic ): CrawlSitemapConnection crawlSitemapsBuckets(filter: CrawlSitemapConnectionFilterInput, floatRangeAggs: [FloatRangeAggInput!]! = [], intRangeAggs: [IntRangeAggInput!]! = [], reportType: ReportTypeCode! = Basic, termsAggs: [TermsAggInput!]! = []): BucketsPayload crawlStructuredDataBlocks( after: String before: String """ Filtering options for CrawlStructuredDataBlocks returned from the connection. """ filter: CrawlStructuredDataBlockConnectionFilterInput first: Int = 15 last: Int """ Ordering options for CrawlStructuredDataBlocks returned from the connection. """ orderBy: [CrawlStructuredDataBlockOrder!] reportType: ReportTypeCode! = Basic ): CrawlStructuredDataBlockConnection crawlStructuredDataBlocksAggregates( after: String dimensions: [CrawlStructuredDataBlockAggregateDimension!]! = [] filter: CrawlStructuredDataBlockConnectionFilterInput first: Int = 100 """ Ordering options for CrawlStructuredDataBlockAggregates returned from the connection. """ orderBy: [CrawlStructuredDataBlockAggregateOrder!]! = [] reportType: ReportTypeCode! = Basic ): CrawlStructuredDataBlockAggregateConnection crawlStructuredDataBlocksBuckets(filter: CrawlStructuredDataBlockConnectionFilterInput, floatRangeAggs: [FloatRangeAggInput!]! = [], intRangeAggs: [IntRangeAggInput!]! = [], reportType: ReportTypeCode! = Basic, termsAggs: [TermsAggInput!]! = []): BucketsPayload crawlStructuredDataBlocksPatterns(filter: CrawlStructuredDataBlockConnectionFilterInput, reportType: ReportTypeCode! = Basic): PatternsPayload """ Schema template results counted per crawl, page type, template, rule, condition, failure reason and parse failure. """ crawlStructuredDataBreakdowns( after: String before: String """ Filtering options for CrawlStructuredDataBreakdowns returned from the connection. """ filter: CrawlStructuredDataBreakdownConnectionFilterInput first: Int = 15 last: Int """ Ordering options for CrawlStructuredDataBreakdowns returned from the connection. """ orderBy: [CrawlStructuredDataBreakdownOrder!] reportType: ReportTypeCode! = Basic ): CrawlStructuredDataBreakdownConnection crawlStructuredDataIssues( after: String before: String """ Filtering options for CrawlStructuredDataIssues returned from the connection. """ filter: CrawlStructuredDataIssueConnectionFilterInput first: Int = 15 last: Int """ Ordering options for CrawlStructuredDataIssues returned from the connection. """ orderBy: [CrawlStructuredDataIssueOrder!] reportType: ReportTypeCode! = Basic ): CrawlStructuredDataIssueConnection crawlStructuredDataIssuesAggregates( after: String dimensions: [CrawlStructuredDataIssueAggregateDimension!]! = [] filter: CrawlStructuredDataIssueConnectionFilterInput first: Int = 100 """ Ordering options for CrawlStructuredDataIssueAggregates returned from the connection. """ orderBy: [CrawlStructuredDataIssueAggregateOrder!]! = [] reportType: ReportTypeCode! = Basic ): CrawlStructuredDataIssueAggregateConnection crawlStructuredDataIssuesBuckets(filter: CrawlStructuredDataIssueConnectionFilterInput, floatRangeAggs: [FloatRangeAggInput!]! = [], intRangeAggs: [IntRangeAggInput!]! = [], reportType: ReportTypeCode! = Basic, termsAggs: [TermsAggInput!]! = []): BucketsPayload crawlStructuredDataIssuesPatterns(filter: CrawlStructuredDataIssueConnectionFilterInput, reportType: ReportTypeCode! = Basic): PatternsPayload crawlTopics( after: String before: String """ Filtering options for CrawlTopics returned from the connection. """ filter: CrawlTopicConnectionFilterInput first: Int = 15 last: Int """ Ordering options for CrawlTopics returned from the connection. """ orderBy: [CrawlTopicOrder!] reportType: ReportTypeCode! = Basic ): CrawlTopicConnection crawlTopicsAggregates( after: String dimensions: [CrawlTopicAggregateDimension!]! = [] filter: CrawlTopicConnectionFilterInput first: Int = 100 """ Ordering options for CrawlTopicAggregates returned from the connection. """ orderBy: [CrawlTopicAggregateOrder!]! = [] reportType: ReportTypeCode! = Basic ): CrawlTopicAggregateConnection crawlUncrawledUrls( after: String before: String """ Filtering options for CrawlUncrawledUrls returned from the connection. """ filter: CrawlUncrawledUrlConnectionFilterInput first: Int = 15 last: Int """ Ordering options for CrawlUncrawledUrls returned from the connection. """ orderBy: [CrawlUncrawledUrlOrder!] reportType: ReportTypeCode! = Basic ): CrawlUncrawledUrlConnection crawlUncrawledUrlsBuckets(filter: CrawlUncrawledUrlConnectionFilterInput, floatRangeAggs: [FloatRangeAggInput!]! = [], intRangeAggs: [IntRangeAggInput!]! = [], reportType: ReportTypeCode! = Basic, termsAggs: [TermsAggInput!]! = []): BucketsPayload crawlUniqueLinks( after: String before: String """ Filtering options for CrawlUniqueLinks returned from the connection. """ filter: CrawlUniqueLinkConnectionFilterInput first: Int = 15 last: Int """ Ordering options for CrawlUniqueLinks returned from the connection. """ orderBy: [CrawlUniqueLinkOrder!] reportType: ReportTypeCode! = Basic ): CrawlUniqueLinkConnection crawlUniqueLinksBuckets(filter: CrawlUniqueLinkConnectionFilterInput, floatRangeAggs: [FloatRangeAggInput!]! = [], intRangeAggs: [IntRangeAggInput!]! = [], reportType: ReportTypeCode! = Basic, termsAggs: [TermsAggInput!]! = []): BucketsPayload crawlUrls( after: String before: String """ Filtering options for CrawlUrls returned from the connection. """ filter: CrawlUrlConnectionFilterInput first: Int = 15 last: Int """ Ordering options for CrawlUrls returned from the connection. """ orderBy: [CrawlUrlOrder!] reportType: ReportTypeCode! = Basic ): CrawlUrlConnection crawlUrlsAggregates( after: String dimensions: [CrawlUrlAggregateDimension!]! = [] filter: CrawlUrlConnectionFilterInput first: Int = 100 """ Ordering options for CrawlUrlAggregates returned from the connection. """ orderBy: [CrawlUrlAggregateOrder!]! = [] reportType: ReportTypeCode! = Basic ): CrawlUrlAggregateConnection crawlUrlsBuckets(filter: CrawlUrlConnectionFilterInput, floatRangeAggs: [FloatRangeAggInput!]! = [], intRangeAggs: [IntRangeAggInput!]! = [], reportType: ReportTypeCode! = Basic, termsAggs: [TermsAggInput!]! = []): BucketsPayload crawlUrlsPatterns(filter: CrawlUrlConnectionFilterInput, reportType: ReportTypeCode! = Basic): PatternsPayload crawlWebCrawlDepths( after: String before: String """ Filtering options for CrawlWebCrawlDepths returned from the connection. """ filter: CrawlWebCrawlDepthConnectionFilterInput first: Int = 15 last: Int """ Ordering options for CrawlWebCrawlDepths returned from the connection. """ orderBy: [CrawlWebCrawlDepthOrder!] reportType: ReportTypeCode! = Basic ): CrawlWebCrawlDepthConnection createdAt: DateTime getResource(input: ReportStatGetResourceInputType!): JSONObject legacyTasks( after: String before: String """ Filtering options for LegacyTasks returned from the connection. """ filter: LegacyTaskConnectionFilterInput first: Int = 15 last: Int """ Ordering options for LegacyTasks returned from the connection. """ orderBy: [LegacyTaskOrder!] reportType: ReportTypeCode! = Basic ): LegacyTaskConnection! missing: Float project: Project! projectId: ObjectID! queryVersion: Int! removed: Float reportDownloads( after: String before: String """ Filtering options for ReportDownloads returned from the connection. """ filter: ReportDownloadConnectionFilterInput first: Int = 15 last: Int """ Ordering options for ReportDownloads returned from the connection. """ orderBy: [ReportDownloadOrder!] reportType: ReportTypeCode! = Basic ): ReportDownloadConnection reportTemplate: ReportTemplate! reportTemplateCode: String! reportTemplateDefinition: String! reportTemplateDescription: String reportTemplateEffect: String! reportTemplateImpact: String! reportTemplateName: String! reportTemplateSolutions: String! reportTemplateSummary: String reportTemplateTotalSign: Int reportTemplateTotalWeight: Float rows(after: String, before: String, filter: JSONObject, first: Int = 15, last: Int, orderBy: [JSONObject!], reportType: ReportTypeCode! = Basic): ReportStatRowConnection rowsWithAllMetrics(after: String, before: String, filter: JSONObject, first: Int = 15, last: Int, orderBy: [JSONObject!], reportType: ReportTypeCode! = Basic): AllMetricsReportStatRowConnection segment: Segment segmentId: ObjectID segmentVersion: Int testResults( after: String before: String """ Filtering options for TestResults returned from the connection. """ filter: TestResultConnectionFilterInput first: Int = 15 last: Int """ Ordering options for TestResults returned from the connection. """ orderBy: [TestResultOrder!] ): TestResultConnection! totalWeight: Float! trend: [ReportStatTrendItem!]! } """ Common set of fields shared across various report types and their trends. """ interface ReportStatBase { added: Float basic: Float createdAt: DateTime missing: Float removed: Float segmentVersion: Int totalWeight: Float! } input ReportStatGetResourceInputType { reportTypeCode: ReportTypeCode! = Basic resourceId: String! } type ReportStatRowConnection { edges: [ReportStatRowEdge!]! nodes: [ReportRow!]! pageInfo: PageInfo! totalCount: Int! } type ReportStatRowEdge { """ Used in `before` and `after` args """ cursor: String! node: ReportRow! } type ReportStatTrendItem implements ReportStatBase { added: Float basic: Float crawlId: Int! createdAt: DateTime missing: Float queryVersion: Int! removed: Float reportTemplateTotalSign: Int reportTemplateTotalWeight: Float segmentVersion: Int totalWeight: Float! } type ReportTemplate { aggregatesByCode: JSONObject aggregatesMetadata: [ReportTemplateAggregateMetadata!] """ A list of allowed output types when generating ReportDownloads. """ allowedOutputTypes: [ReportDownloadOutputType!]! bestPractice: Boolean! beta: Boolean! changeSign: Int changeWeight: Float code: String! contributesToHealthScores: Boolean! createdAt: DateTime! datasource: Datasource! datasourceCodeEnum: DatasourceCode! """ A list of metrics recommended for this report template. """ defaultMetrics: [String!]! defaultOrderBy: [JSONObject!]! definition: String! deletedAt: DateTime deprecatedAt: DateTime description: String effect: String! healthScoreParentReportTemplateCode: String id: ObjectID! impact: String! metadata: ReportTemplateMetadata metricsGroupings: [MetricsGrouping!]! name: String! position: Int primaryReportCategoryCode: String queryVersion: Int! queryVersionChanges: String! rawID: String! reportCategories: [ReportCategory!]! reportTemplateVersions( after: String before: String """ Filtering options for ReportTemplateVersions returned from the connection. """ filter: ReportTemplateVersionConnectionFilterInput first: Int = 15 last: Int """ Ordering options for ReportTemplateVersions returned from the connection. """ orderBy: [ReportTemplateVersionOrder!] ): ReportTemplateVersionConnection! reportTypes: [ReportTypeCode!] scopeReportTemplateCode: String skipSegmentGeneration: Boolean! solutions: String! summary: String supportedModules: [ModuleCode!]! tableTypeVersion: Int tags: [String!] totalSign: Int totalWeight: Float updatedAt: DateTime! wcagLevel: WcagLevel wcagVersion: Float } type ReportTemplateAggregateMetadata { aggregateCode: String! healthScoreReportCategoryCode: String name: String primaryReportCategoryCode: String requiredContainerNames: [String!] scopeReportTemplateCode: String summary: String totalSign: Int totalWeight: Float } type ReportTemplateConnection { """ A list of edges. """ edges: [ReportTemplateEdge!]! """ A list of nodes. """ nodes: [ReportTemplate!]! """ Information to aid in pagination. """ pageInfo: PageInfo! """ Identifies the total count of ReportTemplates in the connection. """ totalCount: Int! } input ReportTemplateConnectionFilterInput { """ Groups each filter object using AND """ _and: [ReportTemplateConnectionFilterInput!] """ Groups each filter object using AND, wrapped inside NOT """ _not: [ReportTemplateConnectionFilterInput!] """ Groups each filter object using OR """ _or: [ReportTemplateConnectionFilterInput!] bestPractice: ConnectionBooleanFilterInput beta: ConnectionBooleanFilterInput categoriesRaw: ConnectionStringFilterInput changeSign: ConnectionIntFilterInput changeWeight: ConnectionFloatFilterInput code: ConnectionStringFilterInput contributesToHealthScores: ConnectionBooleanFilterInput createdAt: ConnectionDateFilterInput datasourceCodeEnum: ConnectionDatasourceCodeFilterInput deletedAt: ConnectionDateFilterInput deprecatedAt: ConnectionDateFilterInput healthScoreParentReportTemplateCode: ConnectionStringFilterInput name: ConnectionStringFilterInput position: ConnectionIntFilterInput primaryReportCategoryCode: ConnectionStringFilterInput scopeReportTemplateCode: ConnectionStringFilterInput skipSegmentGeneration: ConnectionBooleanFilterInput tagsRaw: ConnectionStringFilterInput totalSign: ConnectionIntFilterInput totalWeight: ConnectionFloatFilterInput updatedAt: ConnectionDateFilterInput wcagLevel: ConnectionWcagLevelFilterInput wcagVersion: ConnectionFloatFilterInput } type ReportTemplateEdge { """ A cursor to use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: ReportTemplate! } type ReportTemplateMetadata { """ Container names that prevent the ReportTemplate from being used. """ bannedContainerNames: [String!] """ Container names that are required for the ReportTemplate to be used. """ requiredContainerNames: [String!] """ Container params that are required for the ReportTemplate to be used. """ requiredContainerParams: [ReportTemplateMetadataRequiredContainerParam!] requiredCrawlTypes: [CrawlType!] """ Datasources on which ReportTemplate depends, other than ReportTemplate.datasourceCode. """ requiredDatasources: [DatasourceCode!] unit: ReportTemplateUnit } type ReportTemplateMetadataRequiredContainerParam { containerName: String! paramPath: String! } input ReportTemplateOrder { """ The ordering direction. """ direction: OrderDirection! """ The field to order ReportTemplates by. """ field: ReportTemplateOrderField! } enum ReportTemplateOrderField { bestPractice beta changeSign changeWeight code contributesToHealthScores createdAt datasourceCodeEnum deletedAt deprecatedAt healthScoreParentReportTemplateCode id name position primaryReportCategoryCode scopeReportTemplateCode totalSign totalWeight updatedAt wcagLevel wcagVersion } type ReportTemplateOverride { aggregateCode: String createdAt: DateTime! reportTemplateCode: String! totalSign: Int! totalWeight: Float! updatedAt: DateTime! } type ReportTemplateOverrideConnection { """ A list of edges. """ edges: [ReportTemplateOverrideEdge!]! """ A list of nodes. """ nodes: [ReportTemplateOverride!]! """ Information to aid in pagination. """ pageInfo: PageInfo! """ Identifies the total count of ReportTemplateOverrides in the connection. """ totalCount: Int! } input ReportTemplateOverrideConnectionFilterInput { """ Groups each filter object using AND """ _and: [ReportTemplateOverrideConnectionFilterInput!] """ Groups each filter object using AND, wrapped inside NOT """ _not: [ReportTemplateOverrideConnectionFilterInput!] """ Groups each filter object using OR """ _or: [ReportTemplateOverrideConnectionFilterInput!] createdAt: ConnectionDateFilterInput reportTemplateCode: ConnectionStringFilterInput totalSign: ConnectionIntFilterInput totalWeight: ConnectionFloatFilterInput updatedAt: ConnectionDateFilterInput } type ReportTemplateOverrideEdge { """ A cursor to use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: ReportTemplateOverride! } type ReportTemplateOverrideInfo { aggregateCode: String reportTemplateCode: String! totalSign: Int! totalWeight: Float! } input ReportTemplateOverrideOrder { """ The ordering direction. """ direction: OrderDirection! """ The field to order ReportTemplateOverrides by. """ field: ReportTemplateOverrideOrderField! } enum ReportTemplateOverrideOrderField { createdAt reportTemplateCode totalSign totalWeight updatedAt } enum ReportTemplateUnit { Instances Issues Items Links Opportunities Queries Sets Sitemaps URLs } type ReportTemplateVersion { actor: String aggregatesByCode: JSONObject bestPractice: Boolean! beta: Boolean! changeSign: Int! changeWeight: Float! code: String! comments: String contributesToHealthScores: Boolean! createdAt: DateTime! datasourceCode: DatasourceCode! deprecatedAt: DateTime healthScoreParentReportTemplateCode: String metadata: ReportTemplateMetadata name: String! position: Int primaryReportCategoryCode: String query: JSONObject! queryVersion: Int! queryVersionChanges: String! reportTypes: [ReportTypeCode!] scopeReportTemplateCode: String skipSegmentGeneration: Boolean! supportedModules: [ModuleCode!] tableTypeVersion: Int totalSign: Int! totalWeight: Float! updatedAt: DateTime! versionedPropertiesChanged: Boolean! wcagLevel: WcagLevel wcagVersion: Float } type ReportTemplateVersionConnection { """ A list of edges. """ edges: [ReportTemplateVersionEdge!]! """ A list of nodes. """ nodes: [ReportTemplateVersion!]! """ Information to aid in pagination. """ pageInfo: PageInfo! """ Identifies the total count of ReportTemplateVersions in the connection. """ totalCount: Int! } input ReportTemplateVersionConnectionFilterInput { """ Groups each filter object using AND """ _and: [ReportTemplateVersionConnectionFilterInput!] """ Groups each filter object using AND, wrapped inside NOT """ _not: [ReportTemplateVersionConnectionFilterInput!] """ Groups each filter object using OR """ _or: [ReportTemplateVersionConnectionFilterInput!] code: ConnectionStringFilterInput contributesToHealthScores: ConnectionBooleanFilterInput createdAt: ConnectionDateFilterInput deprecatedAt: ConnectionDateFilterInput queryVersion: ConnectionIntFilterInput updatedAt: ConnectionDateFilterInput } type ReportTemplateVersionEdge { """ A cursor to use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: ReportTemplateVersion! } input ReportTemplateVersionOrder { """ The ordering direction. """ direction: OrderDirection! """ The field to order ReportTemplateVersions by. """ field: ReportTemplateVersionOrderField! } enum ReportTemplateVersionOrderField { code contributesToHealthScores createdAt deprecatedAt queryVersion updatedAt } type ReportTrendComputed { absDiff: ReportTrendItem diff: ReportTrendItem last: ReportTrendItem } type ReportTrendData { computed: ReportTrendComputed! points: [ReportTrendItem!]! reportTemplateCode: String! } type ReportTrendItem { added: Float basic: Float crawlId: Int! createdAt: DateTime missing: Float removed: Float totalWeight: Float } type ReportTrendsTableRow { columns: [ReportTrendData!]! projectId: Int! segmentId: Int! } type ReportType { code: ReportTypeCode! id: ObjectID! name: String! position: Int! rawID: String! } enum ReportTypeCode { Added Basic Missing Removed } """ The brand and topic to generate suggested prompts for. """ input RequestAiVisibilitySuggestedPromptsGenerationInput { """ The account that owns the project. """ accountId: ObjectID! """ The brand the suggestions are generated for. """ aiVisibilityBrandId: ObjectID! """ The project the brand and topic belong to. """ aiVisibilityProjectId: ObjectID! """ The topic the suggestions are for. """ aiVisibilityTopicId: ObjectID! """ Number of suggestions to generate (default: 5, max: 20) """ count: Int } """ The result of requesting suggested prompt generation. """ type RequestAiVisibilitySuggestedPromptsGenerationPayload { """ The generation just requested, `Pending`. """ generation: AiVisibilitySuggestedPromptGeneration! } input RequestCrawlExternalSourcesExtractionTerminationInput { crawlId: ObjectID! externalSourceTypes: [ExternalSourceType!]! } type RequestCrawlExternalSourcesExtractionTerminationPayload { crawl: Crawl! } input RequestCustomMetricContainerGenerationInput { customMetricContainerGenerationId: ObjectID! """ Run the generation's test URLs against the generated container once it is written. Defaults to true, in which case the generation must have test URLs. Pass false to mark the generation Generated without running it. """ runTestsAfterGeneration: Boolean """ If not provided, LLM will be used to judge if html is needed. """ skipHtml: Boolean @deprecated(reason: "Moved to CustomMetricContainerGeneration.htmlNeeded") } type RequestCustomMetricContainerGenerationPayload { customMetricContainerGeneration: CustomMetricContainerGeneration! } type RequestMonthlyCreditReportExportPayload { """ Signed URL to download the CSV file. The file will be available once the export is complete. The link will be valid for 24 hours. """ signedUrl: String! } input RequestPasswordResetInput { email: String! } type RequestSSOAccountsExportPayload { """ Signed URL to download the CSV file. The file will be available once the export is complete. The link will be valid for 24 hours. """ signedUrl: String! } type RequestSSOProjectsExportPayload { """ Signed URL to download the CSV file. The file will be available once the export is complete. The link will be valid for 24 hours. """ signedUrl: String! } type RequestStatsItem { count: Int! statusCode: Int } input ResendAccountUserInviteInput { accountId: ObjectID! userId: ObjectID! } type ResendAccountUserPayload { account: Account! } input ResetPasswordInput { newPassword: String! passwordResetToken: String! """ Skips leaked password validation using https://haveibeenpwned.com/ service. """ skipLeakedPasswordValidation: Boolean! = false } type ResetPasswordPayload { passwordUpdated: Boolean! passwordValidationErrors: [String!] } enum ResolvedHttpStatusCode { Permanent Temporary } input ResumeCrawlingInput { crawlId: ObjectID! } type ResumeCrawlingPayload { crawl: Crawl! } input RevokeServiceAccountKeyInput { id: ObjectID! } type RevokeServiceAccountKeyPayload { serviceAccountKey: ServiceAccountKey! } type Role { code: RoleCode! name: String! } enum RoleCode { Admin Editor Reporter Viewer } input RunCrawlForProjectInput { crawlPriority: CrawlPriority! = Default projectId: ObjectID! } type RunCrawlForProjectPayload { crawl: Crawl! } input RunTestsForCustomMetricContainerGenerationInput { customMetricContainerGenerationId: ObjectID! } type RunTestsForCustomMetricContainerGenerationPayload { customMetricContainerGeneration: CustomMetricContainerGeneration! } type SSOClient { automaticallyManaged: Boolean! id: String! ipRanges(after: String, before: String, first: Int = 15, last: Int): SsoClientIpRangeConnection! } type SSOConnection { connectionName: String! """ Apps a user provisioned through this connection starts with. Null means no default. """ defaultApps: [LumarApp!] defaultRoleCode: RoleCode domainAliases: [String!] expires: String fieldsMap: JSON """ Name of the SAML attribute carrying the user's group list. Used by SSO group-to-role mappings. The assertion value is split on `;`. """ groupAttributeName: String idpinitiatedClientAuthorizequery: String idpinitiatedProtocol: String signInEndpoint: String signOutEndpoint: String userIdAttribute: String } input SaveAiVisibilityOnboardingInput { draft: AiVisibilityOnboardingDraftInput! onboardingToken: String! } type Schedule { createdAt: DateTime! id: ObjectID! latestRunTime: DateTime! nextRunTime: DateTime! project: Project! rawID: String! scheduleFrequency: ScheduleFrequency! updatedAt: DateTime! } type ScheduleFrequency { code: ScheduleFrequencyCode! name: String! } enum ScheduleFrequencyCode { Annual Bimonthly Daily EverySixHours EveryTwelveHours Fortnightly Hourly MondayFriday Monthly OneTime Quarterly Weekly } type ScheduleLog { createdAt: DateTime! errorCode: String! errorMessage: String! id: ObjectID! project: Project! rawID: String! } type ScheduleLogConnection { """ A list of edges. """ edges: [ScheduleLogEdge!]! """ A list of nodes. """ nodes: [ScheduleLog!]! """ Information to aid in pagination. """ pageInfo: PageInfo! """ Identifies the total count of ScheduleLogs in the connection. """ totalCount: Int! } input ScheduleLogConnectionFilterInput { """ Groups each filter object using AND """ _and: [ScheduleLogConnectionFilterInput!] """ Groups each filter object using AND, wrapped inside NOT """ _not: [ScheduleLogConnectionFilterInput!] """ Groups each filter object using OR """ _or: [ScheduleLogConnectionFilterInput!] createdAt: ConnectionDateFilterInput errorCode: ConnectionStringFilterInput errorMessage: ConnectionStringFilterInput } type ScheduleLogEdge { """ A cursor to use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: ScheduleLog! } input ScheduleLogOrder { """ The ordering direction. """ direction: OrderDirection! """ The field to order ScheduleLogs by. """ field: ScheduleLogOrderField! } enum ScheduleLogOrderField { createdAt errorCode errorMessage id } """ A schema template condition the page failed. """ type SchemaFailedCondition { """ The value found on the page, up to 200 characters. Absent when there is no value to show, such as a missing property or the wrong number of targets. """ actual: String """ The `conditionId` of the failed condition in the crawl's `schemaTemplateSet`. Ids are unique within the template set. """ conditionId: String! """ Why the condition failed: `cardinality_unmet`, `property_missing`, `property_present`, `value_mismatch`, `value_matched`, `value_not_in_set`, `value_in_set` or `comparison_failed`. """ reason: String } input SchemaFailedConditionObjectArrayMemberConnectionFilterInput { actual: ConnectionStringObjectArrayMemberFilterInput conditionId: ConnectionStringObjectArrayMemberFilterInput reason: ConnectionStringObjectArrayMemberFilterInput } type SchemaIssuesCountByType { errorsCount: Int! schemaType: String! warningsCount: Int! } input SchemaIssuesCountByTypeObjectArrayMemberConnectionFilterInput { errorsCount: ConnectionIntObjectArrayMemberFilterInput schemaType: ConnectionStringObjectArrayMemberFilterInput warningsCount: ConnectionIntObjectArrayMemberFilterInput } """ A named set of rules that applies to the pages of one page type. """ type SchemaTemplate { """ The name shown to customers, such as `Product and variants`. """ name: String! """ The page type whose pages the template applies to. """ pageType: PageType! """ The id of `pageType`, as `pageTypeId` takes it on input. """ pageTypeId: ObjectID! """ The template's rules. """ rules: [SchemaTemplateRule!]! """ Minted by the API, unique within its template set, and never reused. """ templateId: String! } """ One check on one property of the targets a schema template condition finds. """ type SchemaTemplateAssertion { """ Minted by the API, unique within its rule, and never reused. """ assertionId: String! """ How the property is checked. """ op: SchemaTemplateAssertionOperator! """ The property checked, in lowercase, such as `pricecurrency`. """ property: String! """ The value compared against: a string or number, or an array of them for `IsOneOf`/`IsNoneOf`. Absent for `Exists` and `NotExists`. """ value: JSON } """ One check on one property of the targets a schema template condition finds. """ input SchemaTemplateAssertionInput { """ Keeps a stored assertion. Leave out to create one. """ assertionId: String """ How the property is checked. """ op: SchemaTemplateAssertionOperator! """ The property checked, in lowercase, such as `pricecurrency`. """ property: String! """ A string or number, or an array of them for `IsOneOf`/`IsNoneOf`. Leave out for `Exists` and `NotExists`. """ value: JSON } """ How an assertion checks one property of the things a schema template condition selects. """ enum SchemaTemplateAssertionOperator { """ The value equals the given string or number, ignoring case. """ Equals """ The property is present and not empty. """ Exists """ The value, read as a number, is greater than the given number. """ Gt """ The value, read as a number, is greater than or equal to the given number. """ Gte """ The value is none of the given values, ignoring case. """ IsNoneOf """ The value is one of the given values, ignoring case. """ IsOneOf """ The value, read as a number, is less than the given number. """ Lt """ The value, read as a number, is less than or equal to the given number. """ Lte """ The value does not equal the given string or number, ignoring case. """ NotEquals """ The property is absent or empty. """ NotExists } """ How many targets a schema template condition expects to find. """ type SchemaTemplateCardinality { """ How the count is compared with `value`. """ op: SchemaTemplateCardinalityOperator! """ The expected count. """ value: Int! } """ How many targets a schema template condition expects to find. """ input SchemaTemplateCardinalityInput { """ How the count is compared with `value`. """ op: SchemaTemplateCardinalityOperator! """ The expected count. """ value: Int! } """ How the number of targets a schema template condition finds is compared with its expected count. """ enum SchemaTemplateCardinalityOperator { """ Exactly the given count. """ Eq """ More than the given count. """ Gt """ At least the given count. """ Gte """ Fewer than the given count. """ Lt """ At most the given count. """ Lte } """ One claim about a page's structured data, true or false on each page. The unit that is reported. """ type SchemaTemplateCondition { """ Checks on the properties of each target. """ assertions: [SchemaTemplateAssertion!] """ How many targets each scope instance must have. """ cardinality: SchemaTemplateCardinality """ Minted by the API, unique within its rule, and never reused. """ conditionId: String! """ How the assertions combine across the targets. `All` when absent. """ quantifier: SchemaTemplateQuantifier """ The type the condition is checked against once per instance. Absent means the whole page. """ scope: SchemaTypeSelector """ The type the condition is about. """ target: SchemaTypeSelector! """ The property path from `scope` to the targets: an array of property names, or `"*"` for any depth. """ via: JSON } """ One claim about a page's structured data, true or false on each page. """ input SchemaTemplateConditionInput { """ Checks on the properties of each target. """ assertions: [SchemaTemplateAssertionInput!] """ How many targets each scope instance must have. """ cardinality: SchemaTemplateCardinalityInput """ Keeps a stored condition. Leave out to create one. """ conditionId: String """ How the assertions combine across the targets. `All` when left out. """ quantifier: SchemaTemplateQuantifier """ The type the condition is checked against once per instance. Leave out for the whole page. """ scope: SchemaTypeSelectorInput """ The type the condition is about. """ target: SchemaTypeSelectorInput! """ The property path from `scope` to the targets: an array of property names, or `"*"` for any depth. """ via: JSON } """ A problem `@deepcrawl/schema-templates` found in a schema template set. """ type SchemaTemplateDiagnostic { """ The assertion the diagnostic is about. """ assertionId: String """ What is wrong, as a code such as `unknown_type` or `duplicate_id`. """ code: String! """ The condition the diagnostic is about. """ conditionId: String """ An English explanation, for logs and debugging rather than display. """ message: String! """ A JSON Pointer into the submitted template set, such as `/templates/0/rules/1`. """ path: String! """ The rule the diagnostic is about. """ ruleId: String """ What the diagnostic is about. """ scope: SchemaTemplateDiagnosticScope! """ Whether the diagnostic stops the save. """ severity: SchemaTemplateDiagnosticSeverity! """ The template the diagnostic is about. """ templateId: String } """ What a schema template diagnostic is about, and so what an error in it stops from running. """ enum SchemaTemplateDiagnosticScope { """ One rule, including its conditions and assertions. """ Rule """ The template set as a whole. """ Set """ One template, including everything in it. """ Template } """ Whether a schema template diagnostic stops the save. """ enum SchemaTemplateDiagnosticSeverity { """ The template set cannot run as written, so the save is rejected. """ Error """ The template set is saved and runs, but part of it may never match anything. """ Warning } """ A schema template as part of a whole template set. """ input SchemaTemplateInput { """ The name shown to customers, such as `Product and variants`. """ name: String! """ The page type whose pages the template applies to. """ pageTypeId: ObjectID! """ The template's rules. """ rules: [SchemaTemplateRuleInput!]! """ Keeps a stored template. Leave out to create one. """ templateId: String } """ How a schema template condition's assertions combine across the targets it finds. """ enum SchemaTemplateQuantifier { """ Every target must pass the assertions. The default. """ All """ At least one target must pass the assertions. """ Any } """ A group of conditions inside a schema template. It has no pass or fail of its own. """ type SchemaTemplateRule { """ The conditions, each checked and reported on its own. """ conditions: [SchemaTemplateCondition!]! """ Minted by the API, unique within its template set, and never reused. """ ruleId: String! """ How much the rule matters. """ severity: SchemaTemplateRuleSeverity } """ A group of conditions inside a schema template. """ input SchemaTemplateRuleInput { """ The rule's conditions. """ conditions: [SchemaTemplateConditionInput!]! """ Keeps a stored rule. Leave out to create one. """ ruleId: String """ How much the rule matters. """ severity: SchemaTemplateRuleSeverity } """ How much a schema template rule matters. Passed to the crawler, not recorded per page. """ enum SchemaTemplateRuleSeverity { """ A gap worth knowing about. """ Informational """ A gap worth acting on. """ Notable } type SchemaTemplateSet { createdAt: DateTime! id: ObjectID! rawID: String! """ The project's schema templates. """ templates: [SchemaTemplate!]! updatedAt: DateTime! """ Goes up by one on every save. Each crawl runs with the version current when it was created, and crawled pages record it as `schemaTemplateSetVersion`. """ version: Int! } type SchemaTemplateSetVersion { """ When the version was saved. """ createdAt: DateTime! """ The templates as they were saved. """ templates: [SchemaTemplate!]! """ The set's `version` when these templates were saved. """ version: Int! } """ A schema.org type a schema template condition matches. """ type SchemaTypeSelector { """ Whether subtypes of `type` also match, such as `BlogPosting` for `Article`. """ includeSubtypes: Boolean """ A schema.org type name, such as `Product`. Compared case-insensitively. """ type: String! } """ A schema.org type a schema template condition matches. """ input SchemaTypeSelectorInput { """ Whether subtypes of `type` also match. """ includeSubtypes: Boolean """ A schema.org type name, such as `Product`. """ type: String! } input SearchAiVisibilityBrandsInput { accountId: ObjectID! """ The brand currently in focus. Only used alongside an empty `search`, with or without `dateRange`: the brand is listed immediately after the primary brand, so any `limit` of 2 or more returns it however it ranks, and with a `dateRange` it is also exempt from the mentioned-or-cited filter. Ignored when it does not belong to the project or has been merged away, leaving the order it would have had without it. """ aiVisibilityBrandId: ObjectID aiVisibilityProjectId: ObjectID! """ Optional metric window. Maximum 730 days. When provided, brands are ordered by Visibility Index descending and only brands mentioned or cited at least once in the window are returned. When `search` is empty the primary brand is listed first and is exempt from that filter, as is `aiVisibilityBrandId`. When omitted, every brand in the project is returned ordered by name. """ dateRange: AiVisibilityDateRangeInput """ Maximum number of results (default: 25, max: 100) """ limit: Int """ Search by name or domain (case-insensitive) """ search: String } input SearchAiVisibilityTopicsInput { accountId: ObjectID! aiVisibilityProjectId: ObjectID! """ Maximum number of results (default: 25, max: 100) """ limit: Int """ Search by name (case-insensitive) """ search: String } type SearchQuerySummary { clicks: BigInt ctr: Float impressions: BigInt pageRelevance: Float position: Float searchQuery: String! searchQueryDigest: String! searchVolume: Int } type SearchVolumeTrend { month: Int! searchVolume: Int! year: Int! } type Segment { crawlSegments( after: String before: String """ Filtering options for CrawlSegments returned from the connection. """ filter: CrawlSegmentConnectionFilterInput first: Int = 15 last: Int """ Ordering options for CrawlSegments returned from the connection. """ orderBy: [CrawlSegmentOrder!] ): CrawlSegmentConnection crawlUrlFilter: JSONObject! createdAt: DateTime! filter: JSONObject group: String id: ObjectID! lastFailedAt: DateTime lastGeneratedAt: DateTime name: String! project: Project! rawID: String! updatedAt: DateTime! version: Int! } type SegmentConnection { """ A list of edges. """ edges: [SegmentEdge!]! """ A list of nodes. """ nodes: [Segment!]! """ Information to aid in pagination. """ pageInfo: PageInfo! """ Identifies the total count of Segments in the connection. """ totalCount: Int! } input SegmentConnectionFilterInput { """ Groups each filter object using AND """ _and: [SegmentConnectionFilterInput!] """ Groups each filter object using AND, wrapped inside NOT """ _not: [SegmentConnectionFilterInput!] """ Groups each filter object using OR """ _or: [SegmentConnectionFilterInput!] createdAt: ConnectionDateFilterInput name: ConnectionStringFilterInput updatedAt: ConnectionDateFilterInput } type SegmentCountByGroup { group: String segmentCount: Int! } type SegmentEdge { """ A cursor to use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: Segment! } input SegmentOrder { """ The ordering direction. """ direction: OrderDirection! """ The field to order Segments by. """ field: SegmentOrderField! } enum SegmentOrderField { createdAt name updatedAt } input SelectHealthScoreTestResultSuggestedThresholdsInput { accountId: ObjectID! """ Filtering options for HealthScoreTestResults. """ filter: HealthScoreTestResultConnectionFilterInput healthScoreTestResultIds: [ObjectID!] healthScoreTestResultIdsBlacklist: Boolean projectIds: [ObjectID!] } input SelectMonitorNotificationsStatusInput { accountId: ObjectID! """ Filtering options for TestResults. """ filter: TestResultConnectionFilterInput projectIds: [ObjectID!] testResultIds: [ObjectID!] testResultIdsBlacklist: Boolean } type SelfServeAccountSubscription { """ The catalogue plan this subscription bills against, for its billing interval. Its `settings` are the plan's baseline, before any purchased add-on is applied - use `Account.subscription.plan` for the account's actual entitlements, and compare the two to tell what the plan includes from what the add-ons added. """ accountSubscriptionPlan: AccountSubscriptionPlan! cancelAtPeriodEnd: Boolean! """ Which subscription mutations this subscription's state currently allows, taken from the preconditions of the mutations themselves. Eligibility rather than a guarantee - see the type's own description. """ capabilities: SelfServeAccountSubscriptionCapabilities! """ Current usage against the limit on how many subscription changes with proration can be made in a given period. Lets consumers check ahead of time whether a change is likely to be rejected. """ changeRateLimitStatus: SelfServeAccountSubscriptionChangeRateLimitStatus! currentPeriodEnd: DateTime! currentPeriodStart: DateTime! optionalAddons: [SelfServeAccountSubscriptionAddon!]! planCode: String! planInterval: SelfServePlanInterval! planName: String! price: SelfServePlanPrice! """ The plan/add-on change scheduled to take effect next, if there is one pending. """ scheduledChange: SelfServeAccountSubscriptionScheduledChange """ Where this subscription stands, as one typed value. Prefer it to matching on `status`, whose values are Stripe's and are not enumerated in this schema. """ state: SelfServeAccountSubscriptionState! """ The raw Stripe subscription status. Prefer `state`, which is typed and carries the precedence between statuses; this stays for consumers that need Stripe's own vocabulary. """ status: String! trialEnd: DateTime trialStart: DateTime } type SelfServeAccountSubscriptionAddon { id: String! name: String! price: SelfServeAddonPrice! """ Number of units of this add-on the account has purchased. """ quantity: Int! } """ Which subscription mutations this subscription's current state allows. Each flag is the state precondition of the mutation named in its description, so a client can render permissions rather than infer them from a status string. Eligibility, not a promise the call will succeed: it can still fail on something unrelated to that state - notably `canResubscribe`, where an account with no default payment method is refused with `ACCOUNT_SUBSCRIPTION_PAYMENT_METHOD_MISSING` because a new subscription cannot inherit the cancelled one's card. """ type SelfServeAccountSubscriptionCapabilities { """ `cancelSelfServeAccountSubscription` - the subscription is live and not already set to cancel. """ canCancel: Boolean! """ `reactivateCancellingSelfServeAccountSubscription` - the subscription is still live but set to end, so the cancellation can be called off. Usually at period end, though the Stripe billing portal can set another date; `cancelAtPeriodEnd` is what distinguishes them. """ canReactivate: Boolean! """ `reactivateCancelledSelfServeAccountSubscription` - the subscription is fully cancelled and a new one can be created in its place. An initial payment Stripe expired is over just as surely but cannot be reactivated: that account starts a fresh checkout, which `Account.selfServeSubscriptionState` reports as `CheckoutRequired`. """ canResubscribe: Boolean! """ `updateSelfServeAccountSubscription` - the plan, the billing interval and the add-ons all move through that one mutation, so one flag covers them. False while the subscription is set to cancel, which must be undone first, and while it is not live. """ canUpdate: Boolean! } type SelfServeAccountSubscriptionChangeRateLimitStatus { """ Maximum number of subscription changes with proration allowed per day. """ dayLimit: Int! """ Remaining subscription changes with proration allowed in the current day. """ dayRemaining: Int! """ When `dayRemaining` next increases, if currently limited. """ dayResetsAt: DateTime """ Maximum number of subscription changes with proration allowed per minute. """ minuteLimit: Int! """ Remaining subscription changes with proration allowed in the current minute. """ minuteRemaining: Int! """ When `minuteRemaining` next increases, if currently limited. """ minuteResetsAt: DateTime } type SelfServeAccountSubscriptionScheduledChange { """ The catalogue plan this change will bill against once it takes effect. Its `settings` are that plan's baseline, before any add-on is applied; compare them with the current subscription's plan to see what the change gains or loses. """ accountSubscriptionPlan: AccountSubscriptionPlan! """ When this change takes effect. """ effectiveAt: DateTime! optionalAddons: [SelfServeAccountSubscriptionAddon!]! planCode: String! planInterval: SelfServePlanInterval! planName: String! price: SelfServePlanPrice! } """ Where a self-serve account's Stripe subscription stands. Use it instead of matching on `status`, whose values come straight from Stripe. For whether the account is provisioned at all, see `Account.selfServeSubscriptionState`; for what the customer may do next, see `capabilities`. """ enum SelfServeAccountSubscriptionState { Active Cancelling Ended Paused PaymentFailed PaymentIncomplete Trialing } type SelfServeAddon { id: String! name: String! prices: [SelfServeAddonPrice!]! } type SelfServeAddonPrice { """ A positive integer in the given currency, e.g. cents, representing how much will be charged. """ amount: Int! """ Three-letter ISO currency code, in lowercase. """ currency: String! """ `AccountSubscriptionAddon.integrationType` this add-on grants, added to the plan's addons if not already included. """ extraAddonIntegrationType: String """ Code of the `AccountSetting` on the account's subscription plan that this add-on increases. """ extraSettingCode: String """ Amount this add-on adds to the plan's `AccountSetting.limit` for `extraSettingCode`, per unit purchased. The applied increase is this value multiplied by the purchased quantity, added to the limit already on the plan. """ extraSettingLimit: Int metadata: JSONObject! @deprecated(reason: "Use extraAddonIntegrationType, extraSettingCode and extraSettingLimit instead.") } input SelfServeOptionalAddonInput { addonId: String! quantity: Int! = 1 } type SelfServePlan { """ The subscription plan this self-serve plan bills against, for this billing interval. Its `settings` and `addons` are what the plan includes; monthly and annual are separate plans, so read entitlements from here rather than assuming the two intervals grant the same. """ accountSubscriptionPlan: AccountSubscriptionPlan! code: String! interval: SelfServePlanInterval! name: String! optionalAddons: [SelfServeAddon!]! prices: [SelfServePlanPrice!]! """ Rank of this plan's tier, lowest first. Compare two plans' ranks to tell an upgrade from a downgrade; the values themselves carry no meaning and are not contiguous across releases. """ tier: Int! } enum SelfServePlanInterval { Month Year } type SelfServePlanPrice { """ A positive integer in the given currency, e.g. cents, representing how much will be charged. """ amount: Int! """ Three-letter ISO currency code, in lowercase. """ currency: String! } """ An add-on the subscription holds at one point in a change. Prices are on `SelfServePlan`. """ type SelfServeSubscriptionChangeAddon { id: String! name: String! quantity: Int! } """ When the parts of a requested subscription change take effect. A change does not always land in one piece. On a paying subscription an upgrade or an add-on addition applies straight away, while a downgrade, an add-on removal and a billing interval change wait for the period already paid for to run out; `Split` is one request containing both. A trial reverses it: a plan-only change waits for the trial to end, and any add-on change converts the subscription to paying immediately. `CancelsScheduledChange` is the case to watch: the requested state is the current one, so nothing new is applied, but a change already scheduled against the subscription would be called off. """ enum SelfServeSubscriptionChangeEffect { CancelsScheduledChange DeferredToPeriodEnd DeferredToTrialEnd Immediate NoChange Split } """ The plan, interval and add-ons the subscription holds at one point in a change. """ type SelfServeSubscriptionChangeState { optionalAddons: [SelfServeSubscriptionChangeAddon!]! planCode: String! planInterval: SelfServePlanInterval! planName: String! } """ The part of a change that would be deferred, and when it lands. Once the change is made, `SelfServeAccountSubscription.scheduledChange` reports the same thing. """ type SelfServeSubscriptionScheduledChangePreview { """ When this part of the change takes effect. """ effectiveAt: DateTime! optionalAddons: [SelfServeSubscriptionChangeAddon!]! planCode: String! planInterval: SelfServePlanInterval! planName: String! } """ Where an account's self-serve subscription stands. Billing lifecycle only - pair it with the entitlement flags on `AccountSubscription` to decide what the account can use. """ enum SelfServeSubscriptionState { Active CheckoutRequired NotSelfServe PaymentActionRequired Provisioning } enum SerpentCrawlerQueryGraphType { Basic Mapped Modular } type ServiceAccount { account: Account! accountId: ObjectID! createdAt: DateTime! createdByUser: UserInfo description: String enabled: Boolean! id: ObjectID! ipRanges(after: String, before: String, first: Int = 15, last: Int): ServiceAccountIpRangeConnection! keys: [ServiceAccountKey!]! name: String! rawID: String! role: Role! roleCode: RoleCode! updatedAt: DateTime! } type ServiceAccountIpRange { cidr: String! createdAt: DateTime! createdByUserId: Int id: ObjectID! label: String rawID: String! serviceAccountId: Int! } type ServiceAccountIpRangeConnection { """ A list of edges. """ edges: [ServiceAccountIpRangeEdge!]! """ A list of nodes. """ nodes: [ServiceAccountIpRange!]! """ Information to aid in pagination. """ pageInfo: PageInfo! """ Identifies the total count of ServiceAccountIpRanges in the connection. """ totalCount: Int! } type ServiceAccountIpRangeEdge { """ A cursor to use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: ServiceAccountIpRange! } type ServiceAccountKey { createdAt: DateTime! createdByUser: UserInfo expiresAt: DateTime id: ObjectID! lastUsedAt: DateTime name: String rawID: String! revokedAt: DateTime """ Full API key, only visible once after creation """ secret: String serviceAccount: ServiceAccount! serviceAccountId: ObjectID! } type Session { expiresAt: DateTime! token: String! } input SetAiVisibilityPromptBrandedInput { """ The account ID """ accountId: ObjectID! """ The prompt to retag. It keeps its text, country, paused state, schedule and run history — only the tag changes. """ aiVisibilityPromptId: ObjectID! """ True when the prompt names the project's own (primary) brand. Branded prompts measure how AI answers describe that brand when asked about it directly; unbranded prompts ask the category question and measure whether it surfaces at all. The tag is always about the project's own brand, never about a competitor named in the prompt, so it means the same thing whichever brand a query is scoped to. Prompts created before this field existed are all stored as unbranded, whatever their text says, so one that names your brand reads the wrong way until it is corrected with `setAiVisibilityPromptBranded`. Set it to correct a tag that does not match the prompt's text — every prompt written before the tag existed is stored as unbranded, so one that names your brand has to be retagged here. """ branded: Boolean! } type SetAiVisibilityPromptBrandedPayload { aiVisibilityPrompt: AiVisibilityPrompt! } input SetAiVisibilityPromptPausedInput { accountId: ObjectID! aiVisibilityPromptId: ObjectID! """ Pause (true) to exclude the prompt from scheduled runs, or resume (false) to include it again. """ paused: Boolean! } type SetAiVisibilityPromptPausedPayload { aiVisibilityPrompt: AiVisibilityPrompt! } input SetBuildScheduleTestSuitesInput { buildScheduleId: ObjectID! testSuiteIds: [ObjectID!]! } type SetBuildScheduleTestSuitesPayload { buildScheduleTestSuites: [BuildScheduleTestSuite!]! } input SetCustomMetricContainerProjectSecretInput { customMetricContainerId: ObjectID! name: String! projectId: ObjectID! value: String! } type SetCustomMetricContainerProjectSecretPayload { customMetricContainerProjectSecret: CustomMetricContainerProjectSecret! } input SetCustomMetricContainerSecretInput { customMetricContainerId: ObjectID! name: String! value: String! } type SetCustomMetricContainerSecretPayload { customMetricContainerSecret: CustomMetricContainerSecret! } input SetUserDataInput { key: String! value: JSON! } enum Severity { Fail Warning } input ShareProjectInput { expiresAt: DateTime! projectId: ObjectID! targetUrl: String } type ShareProjectPayload { authToken: AuthToken! sharelink: Sharelink! } type Sharelink { account: Account! createdAt: DateTime! id: ObjectID! rawID: String! sharelinkTemplate: SharelinkTemplate! targetUrl: String } type SharelinkTemplate { code: String! name: String } input SinglePageRequesterCrawlSettingsInput { applyCustomHeadersToNavigationRequestsOnly: Boolean block3rdPartyCookies: Boolean crawl4xxHreflangLinks: Boolean crawl4xxLinks: Boolean crawlRedirectsExternal: Boolean crawlRedirectsInternal: Boolean crawlTestSite: Boolean customDns: [CustomDnsSettingInput!] customExtractions: [CustomExtractionSettingInput!] customRequestHeaders: [CustomRequestHeaderInput!] dataLayerName: String excludeUrlPatterns: [String!] flattenIframes: Boolean flattenShadowDom: Boolean ignoreInvalidSSLCertificate: Boolean ignoreRobotsForNavigationRequests: Boolean ignoreXRobots: Boolean includeHttpAndHttps: Boolean includeSubdomains: Boolean includeUrlPatterns: [String!] locationCode: LocationCode mobileHomepageUrl: String mobileUrlPattern: String mobileUserAgentCode: String mobileViewportHeight: Int mobileViewportWidth: Int primaryDomain: String proxyUrl: String renderTimeout: Int renderWithImages: Boolean rendererBlockAds: Boolean rendererBlockAnalytics: Boolean rendererBlockCustom: [String!] rendererCookies: [RendererCookieInput!] rendererJsString: String rendererJsUrls: [String!] renderingRobotsCheckMode: RenderingRobotsCheckMode robotsOverwrite: String secondaryDomains: [String!] testSiteDomain: String testSitePassword: String testSiteUsername: String urlRewriteQueryParameters: [String!] urlRewriteRules: [UrlRewriteRuleInput!] urlRewriteStripFragment: Boolean urlSampling: [UrlSamplingInput!] useMobileSettings: Boolean useNewHeadlessMode: Boolean useRenderer: Boolean useStealthMode: Boolean useUrlRewriteRules: Boolean userAgentCode: String userAgentIsMobile: Boolean userAgentMobileIsMobile: Boolean userAgentString: String userAgentStringMobile: String userAgentToken: String userAgentTokenMobile: String viewportHeight: Int viewportWidth: Int } input SinglePageRequesterCustomMetricContainerInput { """ Parameters that will be passed as part of the context when a container gets executed. """ containerParams: JSONObject customMetricContainerId: ObjectID! } type SinglePageRequesterRequest { crawlSettings: JSONObject! createdAt: DateTime! customMetricContainerVersions: [JSONObject!] """ CustomMetric fields mapping. """ customMetricContainersFieldsMapping: JSONObject expiresAt: DateTime! failedAt: DateTime failureReason: String finishedAt: DateTime id: ObjectID! moduleCode: ModuleCode rawID: String! """ Requests expire after 90 days. """ renderedBodyDownloadUrl: String requestId: String! responseHeaders: JSONObject """ Requests expire after 90 days. """ screenshotDownloadUrl: String """ Requests expire after 90 days. """ signedOutputs: JSONObject """ Whether to skip containers. If containers are skipped it will not extract any metrics. Useful for getting HTML of the page faster. """ skipContainers: Boolean! startedAt: DateTime """ Requests expire after 90 days. """ staticBodyDownloadUrl: String status: SinglePageRequesterRequestStatus! """ Requests expire after 90 days. """ stepDownloadUrl: String updatedAt: DateTime! url: String! } type SinglePageRequesterRequestConnection { """ A list of edges. """ edges: [SinglePageRequesterRequestEdge!]! """ A list of nodes. """ nodes: [SinglePageRequesterRequest!]! """ Information to aid in pagination. """ pageInfo: PageInfo! """ Identifies the total count of SinglePageRequesterRequests in the connection. """ totalCount: Int! } input SinglePageRequesterRequestConnectionFilterInput { """ Groups each filter object using AND """ _and: [SinglePageRequesterRequestConnectionFilterInput!] """ Groups each filter object using AND, wrapped inside NOT """ _not: [SinglePageRequesterRequestConnectionFilterInput!] """ Groups each filter object using OR """ _or: [SinglePageRequesterRequestConnectionFilterInput!] createdAt: ConnectionDateFilterInput customMetricContainerGenerationId: ConnectionObjectIDFilterInput failedAt: ConnectionDateFilterInput failureReason: ConnectionStringFilterInput finishedAt: ConnectionDateFilterInput id: ConnectionObjectIDFilterInput moduleCode: ConnectionModuleCodeFilterInput requestId: ConnectionStringFilterInput startedAt: ConnectionDateFilterInput status: ConnectionSinglePageRequesterRequestStatusFilterInput updatedAt: ConnectionDateFilterInput url: ConnectionStringFilterInput } type SinglePageRequesterRequestEdge { """ A cursor to use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: SinglePageRequesterRequest! } input SinglePageRequesterRequestOrder { """ The ordering direction. """ direction: OrderDirection! """ The field to order SinglePageRequesterRequests by. """ field: SinglePageRequesterRequestOrderField! } enum SinglePageRequesterRequestOrderField { accountId createdAt failedAt failureReason finishedAt id requestId startedAt status updatedAt url } enum SinglePageRequesterRequestStatus { Failed Finished Queued Started } type SiteSpeedAuditRedirect { url: String! wastedMs: Int! } type Sitemap { enabled: Boolean! level: Int linksOut: Int parent: String status: SitemapStatus! type: SitemapType! url: String! urlDigest: String! } enum SitemapStatus { Malformed Valid } enum SitemapType { Custom Discovered } type SitespeedAuditResult { audits: String! count: Int! result: SitespeedAuditResultType! } enum SitespeedAuditResultType { Failed NeedsReview Passed Warning } enum SlackAlertType { Fail Pass Warning } type SlackWebhook { alertTypes: [SlackAlertType!]! createdAt: DateTime! id: ObjectID! rawID: String! testSuite: TestSuite! url: String! } type SlackWebhookConnection { """ A list of edges. """ edges: [SlackWebhookEdge!]! """ A list of nodes. """ nodes: [SlackWebhook!]! """ Information to aid in pagination. """ pageInfo: PageInfo! """ Identifies the total count of SlackWebhooks in the connection. """ totalCount: Int! } type SlackWebhookEdge { """ A cursor to use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: SlackWebhook! } input SlackWebhookOrder { """ The ordering direction. """ direction: OrderDirection! """ The field to order SlackWebhooks by. """ field: SlackWebhookOrderField! } enum SlackWebhookOrderField { createdAt url } input SortCustomDashboardCollectionsInput { accountId: ObjectID! customDashboardCollectionIds: [ObjectID!] } type SortCustomDashboardCollectionsPayload { customDashboardCollections: [CustomDashboardCollection!]! } input SortCustomDashboardsInput { customDashboardCollectionId: ObjectID! customDashboardIds: [ObjectID!] } type SortCustomDashboardsPayload { customDashboards: [CustomDashboard!]! } type SplunkConnection { createdAt: DateTime! customProxy: String id: ObjectID! isWorking: Boolean! proxyCode: SplunkProxyCode rawID: String! splunkProjectQueries( after: String before: String """ Filtering options for SplunkProjectQueries returned from the connection. """ filter: SplunkProjectQueryConnectionFilterInput first: Int = 15 last: Int """ Ordering options for SplunkProjectQueries returned from the connection. """ orderBy: [SplunkProjectQueryOrder!] ): SplunkProjectQueryConnection! updatedAt: DateTime! url: String! username: String! } type SplunkConnectionConnection { """ A list of edges. """ edges: [SplunkConnectionEdge!]! """ A list of nodes. """ nodes: [SplunkConnection!]! """ Information to aid in pagination. """ pageInfo: PageInfo! """ Identifies the total count of SplunkConnections in the connection. """ totalCount: Int! } input SplunkConnectionConnectionFilterInput { """ Groups each filter object using AND """ _and: [SplunkConnectionConnectionFilterInput!] """ Groups each filter object using AND, wrapped inside NOT """ _not: [SplunkConnectionConnectionFilterInput!] """ Groups each filter object using OR """ _or: [SplunkConnectionConnectionFilterInput!] createdAt: ConnectionDateFilterInput updatedAt: ConnectionDateFilterInput url: ConnectionStringFilterInput username: ConnectionStringFilterInput } type SplunkConnectionEdge { """ A cursor to use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: SplunkConnection! } input SplunkConnectionOrder { """ The ordering direction. """ direction: OrderDirection! """ The field to order SplunkConnections by. """ field: SplunkConnectionOrderField! } enum SplunkConnectionOrderField { createdAt updatedAt url username } type SplunkProjectQuery { baseUrl: String createdAt: DateTime! dateRange: Int! enabled: Boolean! id: ObjectID! project: Project! query: String! rawID: String! splunkConnection: SplunkConnection updatedAt: DateTime! useLastCrawlDate: Boolean! } type SplunkProjectQueryConnection { """ A list of edges. """ edges: [SplunkProjectQueryEdge!]! """ A list of nodes. """ nodes: [SplunkProjectQuery!]! """ Information to aid in pagination. """ pageInfo: PageInfo! """ Identifies the total count of SplunkProjectQueries in the connection. """ totalCount: Int! } input SplunkProjectQueryConnectionFilterInput { """ Groups each filter object using AND """ _and: [SplunkProjectQueryConnectionFilterInput!] """ Groups each filter object using AND, wrapped inside NOT """ _not: [SplunkProjectQueryConnectionFilterInput!] """ Groups each filter object using OR """ _or: [SplunkProjectQueryConnectionFilterInput!] createdAt: ConnectionDateFilterInput dateRange: ConnectionIntFilterInput enabled: ConnectionBooleanFilterInput query: ConnectionStringFilterInput updatedAt: ConnectionDateFilterInput useLastCrawlDate: ConnectionBooleanFilterInput } type SplunkProjectQueryEdge { """ A cursor to use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: SplunkProjectQuery! } input SplunkProjectQueryOrder { """ The ordering direction. """ direction: OrderDirection! """ The field to order SplunkProjectQueries by. """ field: SplunkProjectQueryOrderField! } enum SplunkProjectQueryOrderField { createdAt dateRange enabled updatedAt useLastCrawlDate } enum SplunkProxyCode { Custom } type SsoClientIpRange { cidr: String! createdAt: DateTime! createdByUserId: Int id: ObjectID! label: String rawID: String! ssoClientId: String! } type SsoClientIpRangeConnection { """ A list of edges. """ edges: [SsoClientIpRangeEdge!]! """ A list of nodes. """ nodes: [SsoClientIpRange!]! """ Information to aid in pagination. """ pageInfo: PageInfo! """ Identifies the total count of SsoClientIpRanges in the connection. """ totalCount: Int! } type SsoClientIpRangeEdge { """ A cursor to use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: SsoClientIpRange! } input SubmitSourceForCustomMetricContainerGenerationInput { """ Rendering resources the handler is allowed to load while the page is rendered. """ allowedRenderingResources: [CustomMetricContainerRenderingResource!] """ The CustomMetricContainerGeneration to create a version for. """ customMetricContainerGenerationId: ObjectID! """ Name of the exported handler function in the source. Defaults to `myHandler` if not provided. """ handlerName: String """ JavaScript source for the handler function. Max 256 KiB. The handler must return an object keyed on the camel-cased metric names derived from the generation's metrics. """ handlerSource: String! """ Navigation timeout applied when the handler runs. """ navigationTimeoutMs: Int """ Run the generation's test URLs against the new version once it is created. Defaults to true, in which case the generation must have test URLs. Pass false to mark the generation Generated without running it. """ runTestsAfterSubmission: Boolean """ Table type the metrics are written to. Defaults to the container's table type or `dc:crawler:step` if not set. """ tableType: CustomMetricContainerTableType } type SubmitSourceForCustomMetricContainerGenerationPayload { customMetricContainerGeneration: CustomMetricContainerGeneration! } type TermsAgg { buckets: [TermsAggBucket!]! countErrorUpperBound: Int """ A name of the metric. Matches the input. """ metric: String! """ A name of the bucket. Matches the input. """ name: String! """ The count of remaining rows with metric values other than the requested top N. """ otherCount: Int! } type TermsAggBucket { """ A count of rows having the metric with the specified value. """ count: Int! countErrorUpperBound: Int """ A stringified metric value. """ value: String } input TermsAggInput { """ A name of the metric, for example in case of CrawlUrl it can be "httpStatusCode". Only Boolean, Float, Int and String metrics are allowed. """ metric: String! """ When provided, rows without a value for the metric are treated as if they had the provided value. The value must be of the same type as the metric, e.g. stringified number for an Int metric. """ missing: String """ A name of your bucket. Can contains only letters, numbers, underscore or dash characters. """ name: String! size: Int! = 5 } type Test { """ The absolute number of pages in the report that will fail the test. """ absoluteThreshold: Int! aggregateCode: String """ Acceptance mode for automatic threshold, when test results get better """ automaticThresholdAcceptanceWhenTestResultIsBetter: TestAutoThresholdAcceptance """ Acceptance mode for automatic threshold, when test results get worse """ automaticThresholdAcceptanceWhenTestResultIsWorse: TestAutoThresholdAcceptance """ Whether the test's threshold should be adjusted by the automatic threshold algorithm or not. """ automaticThresholdEnabled: Boolean! createJiraTicketOnFailure: Boolean! createdAt: DateTime! customReportTemplate: CustomReportTemplate customReportTemplateId: ObjectID id: ObjectID! jiraTicketCustomNote: String """ ObjectID of the Project or TestSuite the test belongs to. """ projectId: ObjectID! rawID: String! """ Percentage of pages in the report (relative to all crawled pages) that will fail the test. """ relativeThreshold: Int! reportTemplate: ReportTemplate! reportTemplateCode: String! segment: Segment severity: Severity! testResults( after: String before: String """ Filtering options for TestResults returned from the connection. """ filter: TestResultConnectionFilterInput first: Int = 15 last: Int """ Ordering options for TestResults returned from the connection. """ orderBy: [TestResultOrder!] ): TestResultConnection! """ The Project or TestSuite the test belongs to. Read `isTestSuite` on it to tell a CI/CD test suite apart from a regular crawl project. """ testSuite: TestSuite! """ Relational operator for threshold used to calculate test results. """ thresholdPredicate: ThresholdPredicate! """ Type of threshold used to calculate test results. """ thresholdType: ThresholdType! updatedAt: DateTime! } enum TestAutoThresholdAcceptance { AutoAcceptAbsolute None Suggest } type TestConnection { """ A list of edges. """ edges: [TestEdge!]! """ A list of nodes. """ nodes: [Test!]! """ Information to aid in pagination. """ pageInfo: PageInfo! """ Identifies the total count of Tests in the connection. """ totalCount: Int! } input TestConnectionFilterInput { """ Groups each filter object using AND """ _and: [TestConnectionFilterInput!] """ Groups each filter object using AND, wrapped inside NOT """ _not: [TestConnectionFilterInput!] """ Groups each filter object using OR """ _or: [TestConnectionFilterInput!] absoluteThreshold: ConnectionIntFilterInput aggregateCode: ConnectionStringFilterInput automaticThresholdAcceptanceWhenTestResultIsBetter: ConnectionTestAutoThresholdAcceptanceFilterInput automaticThresholdAcceptanceWhenTestResultIsWorse: ConnectionTestAutoThresholdAcceptanceFilterInput automaticThresholdEnabled: ConnectionBooleanFilterInput createJiraTicketOnFailure: ConnectionBooleanFilterInput createdAt: ConnectionDateFilterInput customReportTemplateId: ConnectionObjectIDFilterInput id: ConnectionObjectIDFilterInput relativeThreshold: ConnectionIntFilterInput severity: ConnectionStringFilterInput updatedAt: ConnectionDateFilterInput } type TestEdge { """ A cursor to use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: Test! } input TestOrder { """ The ordering direction. """ direction: OrderDirection! """ The field to order Tests by. """ field: TestOrderField! } enum TestOrderField { absoluteThreshold automaticThresholdAcceptanceWhenTestResultIsBetter automaticThresholdAcceptanceWhenTestResultIsWorse createdAt relativeThreshold severity thresholdType updatedAt } type TestResult { absoluteThreshold: Int aggregateCode: String """ Test's value for automatic threshold acceptance when test results get better, at the time of testing """ automaticThresholdAcceptanceWhenTestResultIsBetter: TestAutoThresholdAcceptance """ Test's value for automatic threshold acceptance when test results get worse, at the time of testing """ automaticThresholdAcceptanceWhenTestResultIsWorse: TestAutoThresholdAcceptance crawlId: Int createdAt: DateTime! customReport: CustomReport customReportTemplate: CustomReportTemplate customReportTemplateId: ObjectID id: ObjectID! passed: Boolean rawID: String! relativeThreshold: Int reportPercentage: Float reportStat: ReportStat reportTemplate: ReportTemplate! reportTemplateCode: String! reportTotalRows: Int segment: Segment severity: Severity! status: TestResultStatus! suggestedAbsoluteThreshold: Int suggestedAbsoluteThresholdAcceptedAt: DateTime suggestedAbsoluteThresholdRejectedAt: DateTime test: Test thresholdChangeType: ThresholdChangeType thresholdPredicate: ThresholdPredicate thresholdType: ThresholdType } type TestResultConnection { """ A list of edges. """ edges: [TestResultEdge!]! """ A list of nodes. """ nodes: [TestResult!]! """ Information to aid in pagination. """ pageInfo: PageInfo! """ Identifies the total count of TestResults in the connection. """ totalCount: Int! } input TestResultConnectionFilterInput { """ Groups each filter object using AND """ _and: [TestResultConnectionFilterInput!] """ Groups each filter object using AND, wrapped inside NOT """ _not: [TestResultConnectionFilterInput!] """ Groups each filter object using OR """ _or: [TestResultConnectionFilterInput!] aggregateCode: ConnectionStringFilterInput automaticThresholdAcceptanceWhenTestResultIsBetter: ConnectionTestAutoThresholdAcceptanceFilterInput automaticThresholdAcceptanceWhenTestResultIsWorse: ConnectionTestAutoThresholdAcceptanceFilterInput crawlId: ConnectionIntFilterInput createdAt: ConnectionDateFilterInput customReportTemplateId: ConnectionObjectIDFilterInput passed: ConnectionBooleanFilterInput reportTemplateCode: ConnectionStringFilterInput severity: ConnectionStringFilterInput status: ConnectionTestResultStatusFilterInput suggestedAbsoluteThreshold: ConnectionIntFilterInput suggestedAbsoluteThresholdAcceptedAt: ConnectionDateFilterInput suggestedAbsoluteThresholdRejectedAt: ConnectionDateFilterInput thresholdChangeType: ConnectionThresholdChangeTypeFilterInput } type TestResultEdge { """ A cursor to use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: TestResult! } input TestResultOrder { """ The ordering direction. """ direction: OrderDirection! """ The field to order TestResults by. """ field: TestResultOrderField! } enum TestResultOrderField { automaticThresholdAcceptanceWhenTestResultIsBetter automaticThresholdAcceptanceWhenTestResultIsWorse crawlId createdAt id passed reportTemplateCode severity status suggestedAbsoluteThresholdAcceptedAt suggestedAbsoluteThresholdRejectedAt } enum TestResultStatus { Done Read Unresolved WorkingOnIt } type TestSuite implements BaseProject { account: Account! alertEmails: [String!] allPagesTotal: Int apiCallbackHeaders: [APICallbackHeader!] apiCallbackUrl: String applyCustomHeadersToNavigationRequestsOnly: Boolean! autoFinalizeOnCrawlLimits: Boolean! """ Flags if threshold on all tests is calculated automatically, based on previous test results. """ automaticThreshold: Boolean! """ Flags if automatic thresholds are calculated for all (true) or some (false) tests. """ automaticThresholdEnabledForAll: Boolean! """ Blocks third-party cookies. """ block3rdPartyCookies: Boolean! builds( after: String before: String """ Filtering options for Builds returned from the connection. """ filter: BuildConnectionFilterInput first: Int = 15 last: Int """ Ordering options for Builds returned from the connection. """ orderBy: [BuildOrder!] ): BuildConnection! children( after: String before: String """ Filtering options for TestSuites returned from the connection. """ filter: TestSuiteConnectionFilterInput first: Int = 15 last: Int """ Ordering options for TestSuites returned from the connection. """ orderBy: [TestSuiteOrder!] ): TestSuiteConnection clonedAt: DateTime compareToCrawl: CompareToCrawl coreUIUrl: String! crawl4xxHreflangLinks: Boolean! crawl4xxLinks: Boolean! crawlDisallowedUrls1stLevel: Boolean! crawlHyperlinksExternal: Boolean! crawlHyperlinksInternal: Boolean! crawlImagesExternal: Boolean! crawlImagesInternal: Boolean! crawlNofollowHyperlinks: Boolean! crawlNonHtml: Boolean! crawlNotIncluded1stLevel: Boolean! crawlOtherRelExternal: Boolean! crawlOtherRelInternal: Boolean! crawlRedirectsExternal: Boolean! crawlRedirectsInternal: Boolean! crawlRelAmphtmlExternal: Boolean! crawlRelAmphtmlInternal: Boolean! crawlRelCanonicalsExternal: Boolean! crawlRelCanonicalsInternal: Boolean! crawlRelHreflangsExternal: Boolean! crawlRelHreflangsInternal: Boolean! crawlRelMobileExternal: Boolean! crawlRelMobileInternal: Boolean! crawlRelNextPrevExternal: Boolean! crawlRelNextPrevInternal: Boolean! crawlRobotsTxtNoindex: Boolean! crawlScriptsExternal: Boolean! crawlScriptsInternal: Boolean! crawlSitemapsExternal: Boolean! crawlSitemapsInternal: Boolean! crawlStylesheetsExternal: Boolean! crawlStylesheetsInternal: Boolean! crawlTestSite: Boolean! crawlTypes: [TestSuiteCrawlType!]! crawlUrlsTotal: Int crawlingAt: DateTime crawlsTotalCount: Int! createdAt: DateTime! customDns: [CustomDnsSetting!] """ Use regular expressions to extract custom information from pages when they are crawled. """ customExtractions: [CustomExtractionSetting!] customMetricContainers( after: String before: String """ Filtering options for CustomMetricContainers returned from the connection. """ filter: CustomMetricContainerConnectionFilterInput first: Int = 15 last: Int """ Ordering options for CustomMetricContainers returned from the connection. """ orderBy: [CustomMetricContainerOrder!] ): CustomMetricContainerConnection! customRequestHeaders: JSONObject dataLayerName: String dataOnlyCrawlTypes: [CrawlType!] discoverSitemapsInRobotsTxt: Boolean! """ Includes paginated pages, those with a `rel=next` or `rel=prev` link, in the duplicate checks for titles, descriptions, body content and pages. When false, the default, paginated pages are left out of them. """ duplicatePagesIncludePaginatedPages: Boolean! duplicatePrecision: Float! emailAlerts( after: String before: String first: Int = 15 last: Int """ Ordering options for TestSuiteEmailAlerts returned from the connection. """ orderBy: [TestSuiteEmailAlertOrder!] ): TestSuiteEmailAlertConnection emptyPageThreshold: Int enableKeyValueStore: Boolean! excludeUrlPatterns: [String!] excludedDatasources: [DatasourceCode!] failureRateLimitEnabled: Boolean! failureRateLookbackWindow: Int! failureRateThreshold: Float! finishedAt: DateTime flattenIframes: Boolean! flattenShadowDom: Boolean! gaDateRange: Int! hasAccessibility: Boolean! hasTestSitePassword: Boolean! """ Flags if threshold on all health score tests is calculated automatically, based on previous health score test results. """ healthScoreAutomaticThreshold: Boolean! """ Flags if automatic thresholds are calculated for all (true) or some (false) health score tests. """ healthScoreAutomaticThresholdEnabledForAll: Boolean! healthScoreTests( after: String before: String """ Filtering options for HealthScoreTests returned from the connection. """ filter: HealthScoreTestConnectionFilterInput first: Int = 15 last: Int """ Ordering options for HealthScoreTests returned from the connection. """ orderBy: [HealthScoreTestOrder!] ): HealthScoreTestConnection! healthScoreTestsTotalCount: Int! id: ObjectID! ignoreInvalidSSLCertificate: Boolean ignoreRobotsForNavigationRequests: Boolean! ignoreXRobots: Boolean! includeBestPractices: Boolean! includeHttpAndHttps: Boolean! includeSubdomains: Boolean! includeUrlPatterns: [String!] industryCode: String isTestSuite: Boolean! """ Same as crawlingAt, but includes dates of deleted crawls. """ lastCrawlCrawlingAt: DateTime lastCrawlStatus: CrawlStatus legacyTasksTotalCount: Int! limitLevelsMax: Int! limitPagesMax: Int! limitUrlsMax: Int! @deprecated(reason: "Renamed to limitPagesMax.") location: Location! logSummaryRequestsHigh: Int! logSummaryRequestsLow: Int! maxBodyContentLength: Int maxContentSize: Int! @deprecated(reason: "Renamed to maxBodyContentLength.") maxDescriptionLength: Int maxExternalLinks: Int maxHtmlSize: Int maxLinks: Int maxLinksProcessed: Int! maxLoadTime: Float maxRedirections: Int! maxTitleWidth: Int! maxUrlLength: Int maximumCrawlRate: Float! maximumCrawlRateAdvanced: [AdvancedCrawlRate!] minContentRatio: Float minDescriptionLength: Int! minTitleLength: Int! minVisits: Int! mobileHomepageUrl: String mobileUrlPattern: String mobileUserAgent: UserAgent """ Overrides the viewport height during crawling of the mobile site. """ mobileViewportHeight: Int """ Overrides the vieport width during crawling of the mobile site. """ mobileViewportWidth: Int moduleCode: ModuleCode! name: String! parent: TestSuite parentLinkedAt: DateTime primaryDomain: String! rawID: String! renderTimeout: Int! renderWithImages: Boolean! rendererBlockAds: Boolean! rendererBlockAnalytics: Boolean! rendererBlockCustom: [String!] rendererCookies: [RendererCookie!] rendererJsString: String rendererJsUrls: [String!] renderingRobotsCheckMode: RenderingRobotsCheckMode robotsOverwrite: String schedulesTotalCount: Int! secondaryDomains: [String!] segmentsTotalCount: Int! selectedWcagLevel: WcagLevel! selectedWcagVersion: Float! sitePrimary: String! @deprecated(reason: "Renamed to primaryDomain.") siteTest: String @deprecated(reason: "Renamed to testSiteDomain.") sitemapUrls: [String!] slackWebhooks( after: String before: String first: Int = 15 last: Int """ Ordering options for SlackWebhooks returned from the connection. """ orderBy: [SlackWebhookOrder!] ): SlackWebhookConnection startUrls: [String!] storeLighthouseJSON: Boolean! tags: [AccountTag!]! targetMaxUncrawledUrlsCount: Int! testSiteDomain: String testSiteUsername: String testSuiteJiraIntegration: TestSuiteJiraIntegration tests( after: String before: String """ Filtering options for Tests returned from the connection. """ filter: TestConnectionFilterInput first: Int = 15 last: Int """ Ordering options for Tests returned from the connection. """ orderBy: [TestOrder!] ): TestConnection! testsTotalCount: Int! thinPageThreshold: Int """ Report setting for the topic clustering reports: a topic counts as thin when its `primaryIndexableUrlCountVsMedian` is below this value, that is, when it has fewer indexable primary URLs than this share of the median topic. """ thinTopicThreshold: Float! """ Report setting for the topic clustering reports: a page counts as ambiguous between its two best topics when its `topicScoreGap` is below this value. The gap is in standard deviations, not raw cosine similarity. """ topicAmbiguityGapThreshold: Float! totalSteps: Int updatedAt: DateTime! urlFileUploads( after: String before: String """ Filtering options for UrlFileUploads returned from the connection. """ filter: UrlFileUploadConnectionFilterInput first: Int = 15 last: Int ): UrlFileUploadConnection! urlRewriteQueryParameters: [String!] urlRewriteRules: [UrlRewriteRule!] urlRewriteStripFragment: Boolean! urlSampling: [UrlSampling!] urlsExcluded: [String!] @deprecated(reason: "Renamed to excludeUrlPatterns.") urlsIncluded: [String!] @deprecated(reason: "Renamed to includeUrlPatterns.") useMobileSettings: Boolean! """ Use new Chrome headless mode. """ useNewHeadlessMode: Boolean! useRenderer: Boolean! useRobotsOverwrite: Boolean! useStealthMode: Boolean! useUrlRewriteRules: Boolean! userAgent: UserAgent userAgentIsMobile: Boolean userAgentMobileIsMobile: Boolean userAgentString: String userAgentStringMobile: String userAgentToken: String userAgentTokenMobile: String """ Overrides the default viewport height during crawling, if present. """ viewportHeight: Int """ Overrides the default viewport width during crawling, if present. """ viewportWidth: Int webhooks( after: String before: String first: Int = 15 last: Int """ Ordering options for Webhooks returned from the connection. """ orderBy: [WebhookOrder!] ): WebhookConnection } type TestSuiteConnection { """ A list of edges. """ edges: [TestSuiteEdge!]! """ A list of nodes. """ nodes: [TestSuite!]! """ Information to aid in pagination. """ pageInfo: PageInfo! """ Identifies the total count of TestSuites in the connection. """ totalCount: Int! } input TestSuiteConnectionFilterInput { """ Groups each filter object using AND """ _and: [TestSuiteConnectionFilterInput!] """ Groups each filter object using AND, wrapped inside NOT """ _not: [TestSuiteConnectionFilterInput!] """ Groups each filter object using OR """ _or: [TestSuiteConnectionFilterInput!] allPagesTotal: ConnectionIntFilterInput applyCustomHeadersToNavigationRequestsOnly: ConnectionBooleanFilterInput block3rdPartyCookies: ConnectionBooleanFilterInput clonedAt: ConnectionDateFilterInput crawl4xxHreflangLinks: ConnectionBooleanFilterInput crawl4xxLinks: ConnectionBooleanFilterInput crawlUrlsTotal: ConnectionIntFilterInput crawlingAt: ConnectionDateFilterInput crawlsTotalCount: ConnectionIntFilterInput createdAt: ConnectionDateFilterInput duplicatePagesIncludePaginatedPages: ConnectionBooleanFilterInput duplicatePrecision: ConnectionFloatFilterInput emptyPageThreshold: ConnectionIntFilterInput enableKeyValueStore: ConnectionBooleanFilterInput failureRateLimitEnabled: ConnectionBooleanFilterInput failureRateLookbackWindow: ConnectionIntFilterInput failureRateThreshold: ConnectionFloatFilterInput finishedAt: ConnectionDateFilterInput flattenIframes: ConnectionBooleanFilterInput flattenShadowDom: ConnectionBooleanFilterInput healthScoreTestsTotalCount: ConnectionIntFilterInput ignoreRobotsForNavigationRequests: ConnectionBooleanFilterInput ignoreXRobots: ConnectionBooleanFilterInput includeBestPractices: ConnectionBooleanFilterInput industryCode: ConnectionStringFilterInput isTestSuite: ConnectionBooleanFilterInput lastCrawlCrawlingAt: ConnectionDateFilterInput lastCrawlStatus: ConnectionCrawlStatusFilterInput legacyTasksTotalCount: ConnectionIntFilterInput limitPagesMax: ConnectionIntFilterInput limitUrlsMax: ConnectionIntFilterInput @deprecated(reason: "Renamed to limitPagesMax.") logSummaryRequestsHigh: ConnectionIntFilterInput logSummaryRequestsLow: ConnectionIntFilterInput maxBodyContentLength: ConnectionIntFilterInput maxContentSize: ConnectionIntFilterInput @deprecated(reason: "Renamed to maxBodyContentLength.") maxDescriptionLength: ConnectionIntFilterInput maxExternalLinks: ConnectionIntFilterInput maxHtmlSize: ConnectionIntFilterInput maxLinks: ConnectionIntFilterInput maxLoadTime: ConnectionFloatFilterInput maxRedirections: ConnectionIntFilterInput maxTitleWidth: ConnectionIntFilterInput maxUrlLength: ConnectionIntFilterInput maximumCrawlRate: ConnectionFloatFilterInput minContentRatio: ConnectionFloatFilterInput minDescriptionLength: ConnectionIntFilterInput minTitleLength: ConnectionIntFilterInput moduleCode: ConnectionModuleCodeFilterInput name: ConnectionStringFilterInput parentLinkedAt: ConnectionDateFilterInput renderTimeout: ConnectionIntFilterInput renderWithImages: ConnectionBooleanFilterInput rendererBlockAds: ConnectionBooleanFilterInput rendererBlockAnalytics: ConnectionBooleanFilterInput rendererJsString: ConnectionStringFilterInput renderingRobotsCheckMode: ConnectionRenderingRobotsCheckModeFilterInput robotsOverwrite: ConnectionStringFilterInput schedulesTotalCount: ConnectionIntFilterInput segmentsTotalCount: ConnectionIntFilterInput selectedWcagLevel: ConnectionWcagLevelFilterInput selectedWcagVersion: ConnectionFloatFilterInput sitePrimary: ConnectionStringFilterInput @deprecated(reason: "Renamed to primaryDomain.") siteTest: ConnectionStringFilterInput @deprecated(reason: "Renamed to testSiteDomain.") targetMaxUncrawledUrlsCount: ConnectionIntFilterInput testSiteDomain: ConnectionStringFilterInput testsTotalCount: ConnectionIntFilterInput thinPageThreshold: ConnectionIntFilterInput thinTopicThreshold: ConnectionFloatFilterInput topicAmbiguityGapThreshold: ConnectionFloatFilterInput totalSteps: ConnectionIntFilterInput updatedAt: ConnectionDateFilterInput useNewHeadlessMode: ConnectionBooleanFilterInput useRenderer: ConnectionBooleanFilterInput useRobotsOverwrite: ConnectionBooleanFilterInput } enum TestSuiteCrawlType { AiVisibility Backlinks CustomMetricsUpload GoogleAnalytics GoogleSearchConsole GoogleSearchConsoleSearchQueries List LogSummary Sitemap TargetSearchQueries Task Web } type TestSuiteEdge { """ A cursor to use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: TestSuite! } type TestSuiteEmailAlert { alertTypes: [EmailAlertType!]! createdAt: DateTime! email: String! id: ObjectID! rawID: String! testSuite: TestSuite! } type TestSuiteEmailAlertConnection { """ A list of edges. """ edges: [TestSuiteEmailAlertEdge!]! """ A list of nodes. """ nodes: [TestSuiteEmailAlert!]! """ Information to aid in pagination. """ pageInfo: PageInfo! """ Identifies the total count of TestSuiteEmailAlerts in the connection. """ totalCount: Int! } type TestSuiteEmailAlertEdge { """ A cursor to use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: TestSuiteEmailAlert! } input TestSuiteEmailAlertOrder { """ The ordering direction. """ direction: OrderDirection! """ The field to order TestSuiteEmailAlerts by. """ field: TestSuiteEmailAlertOrderField! } enum TestSuiteEmailAlertOrderField { createdAt } type TestSuiteJiraIntegration { id: ObjectID! jiraIntegration: JiraIntegration! rawID: String! testSuite: TestSuite! } type TestSuiteJiraIntegrationConnection { """ A list of edges. """ edges: [TestSuiteJiraIntegrationEdge!]! """ A list of nodes. """ nodes: [TestSuiteJiraIntegration!]! """ Information to aid in pagination. """ pageInfo: PageInfo! """ Identifies the total count of TestSuiteJiraIntegrations in the connection. """ totalCount: Int! } type TestSuiteJiraIntegrationEdge { """ A cursor to use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: TestSuiteJiraIntegration! } enum TestSuiteLocationCode { Custom Default } input TestSuiteOrder { """ The ordering direction. """ direction: OrderDirection! """ The field to order TestSuites by. """ field: TestSuiteOrderField! } enum TestSuiteOrderField { allPagesTotal clonedAt crawlUrlsTotal crawlingAt crawlsTotalCount createdAt duplicatePrecision emptyPageThreshold enableKeyValueStore finishedAt flattenIframes flattenShadowDom healthScoreTestsTotalCount id includeBestPractices industryCode isTestSuite lastCrawlCrawlingAt lastCrawlStatus legacyTasksTotalCount limitPagesMax limitUrlsMax @deprecated(reason: "Renamed to limitPagesMax.") logSummaryRequestsHigh logSummaryRequestsLow maxBodyContentLength maxContentSize @deprecated(reason: "Renamed to maxBodyContentLength.") maxDescriptionLength maxExternalLinks maxHtmlSize maxLinks maxLoadTime maxRedirections maxTitleWidth maxUrlLength maximumCrawlRate minContentRatio minDescriptionLength minTitleLength name parentLinkedAt primaryDomain renderTimeout renderWithImages rendererBlockAds rendererBlockAnalytics rendererJsString renderingRobotsCheckMode robotsOverwrite schedulesTotalCount segmentsTotalCount selectedWcagLevel selectedWcagVersion sitePrimary @deprecated(reason: "Renamed to primaryDomain.") siteTest @deprecated(reason: "Renamed to testSiteDomain.") targetMaxUncrawledUrlsCount testSiteDomain testsTotalCount thinPageThreshold thinTopicThreshold topicAmbiguityGapThreshold totalSteps updatedAt useRenderer useRobotsOverwrite } enum ThresholdChangeType { Better Worse } enum ThresholdPredicate { GreaterThanOrEqual LessThan } enum ThresholdType { Absolute Relative } type TopicConfiguration { createdAt: DateTime! description: String! enabled: Boolean! id: ObjectID! keywords: [String!]! minSimilarityThreshold: Float name: String! rawID: String! slotNo: Int! updatedAt: DateTime! } type TopicConfigurationSnapshot { description: String! keywords: [String!]! minSimilarityThreshold: Float name: String! slotNo: Int! } type TopicSimilarity { cosineSimilarity: Float! """ How many standard deviations the page's cosine similarity sits above the topic's mean. The mean and spread come from this crawl, blended with the compare crawl's when it had the same topic. Unlike `cosineSimilarity`, scores are comparable between topics and sites. Entries are ordered by it, highest first. """ score: Float slotNo: Int! topicName: String! topicType: String! } input TopicSimilarityObjectArrayMemberConnectionFilterInput { cosineSimilarity: ConnectionFloatObjectArrayMemberFilterInput score: ConnectionFloatObjectArrayMemberFilterInput slotNo: ConnectionIntObjectArrayMemberFilterInput topicName: ConnectionStringObjectArrayMemberFilterInput topicType: ConnectionStringObjectArrayMemberFilterInput } enum TrendsComputedType { absDiff diff last } input TrendsSortOptions { """ The reportTemplateCode or reportCategoryCode of the column to sort the table by. """ code: String """ The computed trend type. """ computedType: TrendsComputedType """ The trend field to be sorted. """ field: String } input TrendsTableOrderBy { """ The ordering direction. """ direction: OrderDirection! field: TrendsTableSortableField! trendsSortOptions: TrendsSortOptions } """ Data types for trend items returned by trend-sdk TrendsHealthScores and TrendsReportStats services. """ union TrendsTableRow = HealthScoreTrendsTableRow | ReportTrendsTableRow enum TrendsTableSortableField { projectFinishedAt projectName segmentName trend } input TriggerAiVisibilityPageRunInput { accountId: ObjectID! aiVisibilityProjectId: ObjectID! """ The URL to crawl for content evaluation. """ url: String! } type TriggerAiVisibilityPageRunPayload { aiVisibilityPageRun: AiVisibilityPageRun! """ True when no run was started because one was already under way for this URL — `aiVisibilityPageRun` is that existing run and no further credit is committed. Treat it as success, not an error; it succeeds even with no credits left. The existing run is not necessarily one this user started: an automatic run from a citation or SERP discovery counts too, so report it as "already being evaluated" rather than as something started in another tab. """ alreadyInProgress: Boolean! } input UnarchiveCrawlInput { crawlId: ObjectID! } input UnlinkChildTestSuiteFromParentTestSuiteInput { childTestSuiteId: ObjectID! } type UnlinkChildTestSuiteFromParentTestSuitePayload { childTestSuite: TestSuite! parentTestSuite: TestSuite! } input UnlinkCustomMetricContainerFromProjectInput { customMetricContainerId: ObjectID! projectId: ObjectID! } type UnlinkCustomMetricContainerFromProjectPayload { customMetricContainer: CustomMetricContainer! project: Project! } input UnlinkJiraIntegrationFromTestSuiteInput { testSuiteJiraIntegrationId: ObjectID! } type UnlinkJiraIntegrationFromTestSuitePayload { testSuiteJiraIntegration: TestSuiteJiraIntegration! } input UnlinkTestSuiteFromBuildScheduleInput { buildScheduleTestSuiteId: ObjectID! } type UnlinkTestSuiteFromBuildSchedulePayload { buildScheduleTestSuite: BuildScheduleTestSuite! } input UnmergeAiVisibilityBrandInput { """ The account ID """ accountId: ObjectID! """ The brand ID to unmerge (must currently be merged) """ aiVisibilityBrandId: ObjectID! } type UnmergeAiVisibilityBrandPayload { aiVisibilityBrand: AiVisibilityBrand! } input UpdateAccountInput { accountId: ObjectID! apiCallbackHeaders: [APICallbackHeaderInput!] apiCallbackUrl: String country: String customLogo: Upload customProxy: String timezone: String } input UpdateAccountNotificationSubscriptionInput { accountId: ObjectID! notificationType: AccountNotificationType! """ Set to `false` to stop receiving the notification type, `true` to receive it again. """ subscribed: Boolean! } type UpdateAccountPayload { account: Account! } input UpdateAccountSsoGroupRoleMappingInput { id: ObjectID! roleCode: RoleCode ssoGroupName: String } type UpdateAccountSsoGroupRoleMappingPayload { accountSsoGroupRoleMapping: AccountSsoGroupRoleMapping! } input UpdateAccountTagInput { accountTagId: ObjectID! color: String name: String } type UpdateAccountTagPayload { accountTag: AccountTag! } input UpdateAccountUserInput { accountId: ObjectID! """ Apps this user may open in the account, which clients use to decide what to show them. Omit to leave the current list untouched; pass an empty list to lift every restriction, so the user can open any app the account is entitled to. """ apps: [LumarApp!] """ The user's new role in the account. Omit to leave the current role untouched, so a change to other fields cannot overwrite a role someone else has changed since it was last read. """ roleCode: RoleCode userId: ObjectID! } type UpdateAccountUserPayload { account: Account! } input UpdateAccountUserTagsInput { """ Account whose user's project visibility is being changed. """ accountId: ObjectID! """ Replaces the user's tags. Matching any tag grants project access. An empty list grants access to every project in the account. Admin users cannot hold tags. """ accountTagIds: [ObjectID!]! """ Existing member of the account. """ userId: ObjectID! } input UpdateAdobeAnalyticsProjectReportSuiteInput { adobeAnalyticsProjectReportSuiteId: ObjectID! adobeOauthServerToServerConnectionId: ObjectID maxRows: Int minimumVisits: Int numberOfDays: Int perPage: Int reportSuiteId: String suiteName: String """ The Adobe Analytics dimension ID used to identify the page URL, without the `variables/` prefix (e.g. `pageurl` instead of `variables/pageurl`). """ urlDimensionId: String } type UpdateAdobeAnalyticsProjectReportSuitePayload { adobeAnalyticsProjectReportSuite: AdobeAnalyticsProjectReportSuite! } input UpdateAdobeOauthServerToServerConnectionInput { adobeOauthServerToServerConnectionId: ObjectID! clientId: String! clientSecret: String! } type UpdateAdobeOauthServerToServerConnectionPayload { adobeOauthServerToServerConnection: AdobeOauthServerToServerConnection! } input UpdateAiVisibilityAccountSettingsInput { accountId: ObjectID! """ Default market for new projects (ISO 3166-1 alpha-2, e.g. 'US'). Omit to leave unchanged; pass null to clear so new projects target worldwide. Existing projects are never rewritten. """ defaultCountry: String """ Default generation language for new projects (ISO 639-1, lower-case, e.g. 'en'). Omit to leave unchanged; pass null to clear. Existing projects are never rewritten. """ defaultLanguage: String """ How scheduled prompt runs are executed: instant (real-time) or delayed (batch API). """ scheduleType: AiVisibilityScheduleType """ IANA timezone identifier (e.g. 'Europe/London'). Controls when midnight occurs for delayed scheduling. """ timezone: String } type UpdateAiVisibilityAccountSettingsPayload { aiVisibilityAccountSettings: AiVisibilityAccountSettings! } input UpdateAiVisibilityBrandDomainInput { """ The account ID """ accountId: ObjectID! """ The brand-domain row to update """ aiVisibilityBrandDomainId: ObjectID! """ Replace the domain (hostname only, no protocol or path). For example: "lumar.io" or "www.lumar.io". """ domain: String """ Whether subdomains of this domain should also count as the brand. """ includeSubdomains: Boolean } type UpdateAiVisibilityBrandDomainPayload { aiVisibilityBrandDomain: AiVisibilityBrandDomain! } input UpdateAiVisibilityBrandInput { accountId: ObjectID! aiVisibilityBrandId: ObjectID! """ The new brand type (own, competitor, other, or context — a platform/surface like Google or ChatGPT, excluded from Share of Voice denominators). """ type: AiVisibilityBrandType! } type UpdateAiVisibilityBrandPayload { aiVisibilityBrand: AiVisibilityBrand! } input UpdateAiVisibilityProjectInput { accountId: ObjectID! aiVisibilityProjectId: ObjectID! """ Whether to automatically crawl cited pages for content evaluations. """ autoCrawlEnabled: Boolean """ Top N SERP results to auto-trigger page runs for (1-30). """ autoDiscoveryThreshold: Int """ Request per-theme brand sentiment capture on this project's prompt runs. Off by default because capture makes brand detection substantially more expensive. The request is passed on to the prompt tracker, which may not honour it, so theme sentiments can stay empty even while this is enabled. """ brandThemeSentimentCaptureEnabled: Boolean """ Market as an ISO 3166-1 alpha-2 country code. Omit to leave unchanged; pass null for worldwide. Only prompts created afterwards inherit the new value; existing prompts and runs are not rewritten. """ country: String """ Days before content evaluation data is considered stale (1-90). """ freshnessThresholdDays: Int """ Generation language as an ISO 639-1 code (lower-case). Omit to leave unchanged; pass null for unspecified. Applies to future suggested topic / prompt / metadata generation only. """ language: String name: String """ How often scheduled prompt runs should occur. """ scheduleCadence: AiVisibilityScheduleCadence """ Whether SERP discovery is enabled for this project. """ serpDiscoveryEnabled: Boolean } type UpdateAiVisibilityProjectPayload { aiVisibilityProject: AiVisibilityProject! } input UpdateAiVisibilityTopicInput { accountId: ObjectID! aiVisibilityTopicId: ObjectID! """ New description. Omit to leave unchanged. Pass null or an empty string to clear it; a cleared description is regenerated asynchronously. """ description: String """ New keywords. Omit to leave unchanged. Pass null or an empty array to clear them; cleared keywords are regenerated asynchronously. """ keywords: [String!] """ New topic name. Omit to leave unchanged. """ name: String } type UpdateAiVisibilityTopicPayload { aiVisibilityTopic: AiVisibilityTopic! } input UpdateBuildScheduleInput { buildScheduleId: ObjectID! name: String repetitionRate: BuildScheduleRepetitionRate startAt: DateTime } type UpdateBuildSchedulePayload { buildSchedule: BuildSchedule! } input UpdateCreditAllocationForSsoAccountInput { creditAllocationId: ObjectID! creditsAllocated: Int endDate: DateTime } type UpdateCreditAllocationForSsoAccountPayload { creditAllocation: CreditAllocation! } input UpdateCurrentUserInput { email: String firstName: String jobTitle: String lastName: String } type UpdateCurrentUserPayload { user: User! } input UpdateCustomChartInput { customChartId: ObjectID! customViewIds: [ObjectID!] metadata: JSONObject metric: String } type UpdateCustomChartPayload { customChart: CustomChart! } input UpdateCustomDashboardCollectionInput { customDashboardCollectionId: ObjectID! name: String } type UpdateCustomDashboardCollectionPayload { customDashboardCollection: CustomDashboardCollection! } input UpdateCustomDashboardInput { customDashboardId: ObjectID! name: String! } type UpdateCustomDashboardPayload { customDashboard: CustomDashboard! } input UpdateCustomMetricContainerGenerationInput { customMetricContainerGenerationId: ObjectID! description: String htmlNeeded: Boolean metrics: [CustomMetricContainerGenerationMetricInput!] name: String testUrls: [CustomMetricContainerGenerationTestUrlInput!] } type UpdateCustomMetricContainerGenerationPayload { customMetricContainerGeneration: CustomMetricContainerGeneration! } input UpdateCustomMetricContainerInput { containerParams: JSONObject customMetricContainerId: ObjectID! description: String displayName: String inputType: CustomMetricContainerInputType requiresAiFeatures: Boolean """ Which resource types the container extracts metrics from. """ resourceTypes: [CustomMetricContainerResourceType!] runFirst: Boolean } type UpdateCustomMetricContainerPayload { customMetricContainer: CustomMetricContainer! } input UpdateCustomMetricContainerProjectInput { """ Parameters that will be passed as part of the context when a container gets executed. """ containerParams: JSONObject customJsResources: [String!] customJsScripts: [String!] customMetricContainerId: ObjectID! enabled: Boolean projectId: ObjectID! } type UpdateCustomMetricContainerProjectPayload { customMetricContainer: CustomMetricContainer! customMetricContainerProject: CustomMetricContainerProject! project: Project! } input UpdateCustomMetricUploadContainerInput { customMetricUploadContainerId: ObjectID! description: String uploadTemplate: JSONObject } type UpdateCustomMetricUploadContainerPayload { customMetricUploadContainer: CustomMetricUploadContainer! } input UpdateCustomReportTemplateInput { customReportTemplateId: ObjectID! defaultView: CustomReportTemplateView description: String filter: JSONObject metricsGroupings: [CustomReportTemplateMetricsGroupingInput!] name: String orderBy: [JSONObject!] """ When true, this report is still segmentable but no per-Segment trend is generated for it. """ skipSegmentGeneration: Boolean """ Inherited from the ReportTemplate if not provided. """ totalSign: Int """ Inherited from the ReportTemplate if not provided. """ totalWeight: Float """ Updates the reportTemplateQueryVersion to the latest one. """ updateReportTemplateQueryVersion: Boolean! = false } type UpdateCustomReportTemplatePayload { customReportTemplate: CustomReportTemplate! } input UpdateCustomTableInput { columns: [String!] customTableId: ObjectID! filter: JSONObject orderBy: [JSONObject!] } type UpdateCustomTablePayload { customTable: CustomTable! } input UpdateGoogleAnalytics4ProjectPropertyInput { conversionEvents: [GoogleAnalytics4ConversionEventInput!] googleConnectionId: ObjectID lastNDays: Int minimumSessions: Int minimumViews: Int projectId: ObjectID! propertyName: String source: GoogleAnalytics4SourceType } type UpdateGoogleAnalytics4ProjectPropertyPayload { googleAnalytics4ProjectProperty: GoogleAnalytics4ProjectProperty! } input UpdateGoogleSearchConsoleAiVisibilityPropertyInput { country: String excludeQueries: [String!] googleConnectionId: ObjectID googleSearchConsoleAiVisibilityPropertyId: ObjectID! includeQueries: [String!] lastNDays: Int minClicks: Int permissionLevel: String searchType: GoogleSearchConsoleSearchType siteUrl: String } type UpdateGoogleSearchConsoleAiVisibilityPropertyPayload { googleSearchConsoleAiVisibilityProperty: GoogleSearchConsoleAiVisibilityProperty! } input UpdateGoogleSearchConsoleConfigurationInput { country: String excludeQueries: [String!] includeQueries: [String!] lastNDays: Int minClicks: Int projectId: ObjectID! queryMaxLength: Int queryMinLength: Int searchQueriesLimitPerProperty: Int searchQueriesMinClicks: Int searchType: GoogleSearchConsoleSearchType useSearchConsolePropertyDomainsAsStartUrls: Boolean } type UpdateGoogleSearchConsoleConfigurationPayload { googleSearchConsoleConfiguration: GoogleSearchConsoleConfiguration! } input UpdateGoogleSearchConsolePropertyInput { googleConnectionId: ObjectID googleSearchConsolePropertyId: ObjectID! permissionLevel: String siteUrl: String } type UpdateGoogleSearchConsolePropertyPayload { googleSearchConsoleProperty: GoogleSearchConsoleProperty! } input UpdateHealthScoreTestInput { absoluteThreshold: Float automaticThresholdAcceptanceWhenTestResultIsBetter: TestAutoThresholdAcceptance automaticThresholdAcceptanceWhenTestResultIsWorse: TestAutoThresholdAcceptance automaticThresholdEnabled: Boolean createJiraTicketOnFailure: Boolean healthScoreTestId: ObjectID! jiraTicketCustomNote: String relativeThreshold: Int segmentId: ObjectID severity: Severity thresholdPredicate: ThresholdPredicate thresholdType: ThresholdType } type UpdateHealthScoreTestPayload { healthScoreTest: HealthScoreTest! } input UpdateHealthScoreTestResultInput { healthScoreTestResultId: ObjectID! status: TestResultStatus! } type UpdateHealthScoreTestResultPayload { healthScoreTestResult: HealthScoreTestResult! } type UpdateHealthScoreTestsPayload { healthScoreTests: [HealthScoreTest!]! } input UpdateJiraAuthenticationInput { jiraAuthenticationId: ObjectID! name: String! } type UpdateJiraAuthenticationPayload { jiraAuthentication: JiraAuthentication! } input UpdateJiraIntegrationInput { jiraIntegrationId: ObjectID! jiraIssueTypeId: String jiraProjectId: String name: String } type UpdateJiraIntegrationPayload { jiraIntegration: JiraIntegration! } input UpdateLegacyTaskInput { assignedTo: [String!] deadlineAt: DateTime description: String fixedAt: DateTime howToFix: String legacyTaskId: ObjectID! notifyAssignees: Boolean! = false position: Int priority: LegacyTaskPriority status: LegacyTaskStatus title: String } type UpdateLegacyTaskPayload { legacyTask: LegacyTask! } """ Updates a log source. `provider` is deliberately absent: it determines how the delivered logs are parsed, so changing it would invalidate the pipeline Lumar support has already built. `status` and `statusMessage` are Lumar-admin only — customers read the status but never write it. """ input UpdateLogManagerConnectionInput { logManagerConnectionId: ObjectID! name: String } type UpdateLogManagerConnectionPayload { logManagerConnection: LogManagerConnection! } """ Updates how a project queries an attached log source. Every setting is optional, so this serves both the enabled toggle and the settings form. """ input UpdateLogManagerProjectSettingsInput { aiUaNotRegexp: String aiUaRegexp: String baseUrl: String @deprecated(reason: "Log paths will always resolve against the project's primary domain. Scheduled for removal.") dateRange: Int desktopUaNotRegexp: String desktopUaRegexp: String enabled: Boolean logManagerProjectSettingsId: ObjectID! maxRows: Int @deprecated(reason: "Log extraction never applied this cap and never will. Scheduled for removal.") mobileUaNotRegexp: String mobileUaRegexp: String useLastCrawlDate: Boolean @deprecated(reason: "No longer used: logs are always read for the last `dateRange` complete days. Scheduled for removal.") } type UpdateLogManagerProjectSettingsPayload { logManagerProjectSettings: LogManagerProjectSettings! } input UpdateLogzioConnectionInput { label: String logzioConnectionId: ObjectID! token: String } type UpdateLogzioConnectionPayload { logzioConnection: LogzioConnection! } input UpdateLogzioProjectQueryInput { aiUaNotRegexp: String aiUaRegexp: String baseUrl: String dateRange: Int desktopUaNotRegexp: String desktopUaRegexp: String domainFieldName: String enabled: Boolean logzioConnectionId: ObjectID logzioProjectQueryId: ObjectID! maxRows: Int mobileUaNotRegexp: String mobileUaRegexp: String pathFieldName: String queryFilter: JSONObject useLastCrawlDate: Boolean userAgentFieldName: String } type UpdateLogzioProjectQueryPayload { logzioProjectQuery: LogzioProjectQuery! } input UpdateMajesticConfigurationInput { enabled: Boolean maxRows: Int projectId: ObjectID! useHistoricData: Boolean useRootDomain: Boolean } type UpdateMajesticConfigurationPayload { majesticConfiguration: MajesticConfiguration! } input UpdateMonitorHealthScoreNotificationsStatusInput { accountId: ObjectID! """ Filtering options for HealthScoreTestResults. """ filter: HealthScoreTestResultConnectionFilterInput healthScoreTestResultIds: [ObjectID!] healthScoreTestResultIdsBlacklist: Boolean projectIds: [ObjectID!] toStatus: TestResultStatus! } type UpdateMonitorHealthScoreNotificationsStatusPayload { updatedHealthScoreTestResultsCount: Int! } input UpdateMonitorNotificationsStatusInput { accountId: ObjectID! """ Filtering options for TestResults. """ filter: TestResultConnectionFilterInput projectIds: [ObjectID!] testResultIds: [ObjectID!] testResultIdsBlacklist: Boolean toStatus: TestResultStatus! } type UpdateMonitorNotificationsStatusPayload { updatedTestResultsCount: Int! } input UpdatePageTypeInput { description: String name: String pageTypeId: ObjectID! rules: [PageTypeRuleInput!] } type UpdatePageTypePayload { pageType: PageType! } input UpdatePasswordInput { newPassword: String! """ Skips leaked password validation using https://haveibeenpwned.com/ service. """ skipLeakedPasswordValidation: Boolean! = false } type UpdatePasswordPayload { passwordUpdated: Boolean! passwordValidationErrors: [String!] } input UpdateProjectInput { alertEmails: [String!] alertSettingCode: AlertSettingCode apiCallbackHeaders: [APICallbackHeaderInput!] apiCallbackUrl: String applyCustomHeadersToNavigationRequestsOnly: Boolean autoFinalizeOnCrawlLimits: Boolean block3rdPartyCookies: Boolean compareToCrawl: CompareToCrawl crawl4xxHreflangLinks: Boolean crawl4xxLinks: Boolean crawlDisallowedUrls1stLevel: Boolean crawlHyperlinksExternal: Boolean crawlHyperlinksInternal: Boolean crawlImagesExternal: Boolean crawlImagesInternal: Boolean crawlNofollowHyperlinks: Boolean crawlNonHtml: Boolean crawlNotIncluded1stLevel: Boolean crawlRedirectsExternal: Boolean crawlRedirectsInternal: Boolean crawlRelAmphtmlExternal: Boolean crawlRelAmphtmlInternal: Boolean crawlRelCanonicalsExternal: Boolean crawlRelCanonicalsInternal: Boolean crawlRelHreflangsExternal: Boolean crawlRelHreflangsInternal: Boolean crawlRelMobileExternal: Boolean crawlRelMobileInternal: Boolean crawlRelNextPrevExternal: Boolean crawlRelNextPrevInternal: Boolean crawlRobotsTxtNoindex: Boolean crawlScriptsExternal: Boolean crawlScriptsInternal: Boolean crawlStylesheetsExternal: Boolean crawlStylesheetsInternal: Boolean crawlTestSite: Boolean crawlTypes: [CrawlType!] customDns: [CustomDnsSettingInput!] customExtractions: [CustomExtractionSettingInput!] customRequestHeaders: [CustomRequestHeaderInput!] dataLayerName: String dataOnlyCrawlTypes: [CrawlType!] discoverSitemapsInRobotsTxt: Boolean """ Includes paginated pages, those with a `rel=next` or `rel=prev` link, in the duplicate checks for titles, descriptions, body content and pages. """ duplicatePagesIncludePaginatedPages: Boolean duplicatePrecision: Float emptyPageThreshold: Int enableKeyValueStore: Boolean excludeUrlPatterns: [String!] excludedDatasources: [DatasourceCode!] failureRateLimitEnabled: Boolean failureRateLookbackWindow: Int failureRateThreshold: Float flattenIframes: Boolean flattenShadowDom: Boolean gaDateRange: Int ignoreInvalidSSLCertificate: Boolean ignoreRobotsForNavigationRequests: Boolean ignoreXRobots: Boolean includeBestPractices: Boolean includeHttpAndHttps: Boolean includeSubdomains: Boolean includeUrlPatterns: [String!] industryCode: String limitLevelsMax: Int limitPagesMax: Int limitUrlsMax: Int @deprecated(reason: "Use limitPagesMax instead") locationCode: LocationCode logSummaryRequestsHigh: Int logSummaryRequestsLow: Int maxBodyContentLength: Int maxDescriptionLength: Int maxFollowedExternalLinks: Int maxHtmlSize: Int maxLinks: Int maxLoadTime: Float maxRedirections: Int maxTitleWidth: Int maxUrlLength: Int maximumCrawlRate: Float maximumCrawlRateAdvanced: [AdvancedCrawlRateInput!] minContentRatio: Float minDescriptionLength: Int minTitleLength: Int minVisits: Int mobileHomepageUrl: String mobileUrlPattern: String mobileUserAgentCode: String mobileViewportHeight: Int mobileViewportWidth: Int name: String primaryDomain: String projectId: ObjectID! renderTimeout: Int renderWithImages: Boolean rendererBlockAds: Boolean rendererBlockAnalytics: Boolean rendererBlockCustom: [String!] rendererCookies: [RendererCookieInput!] rendererJsString: String rendererJsUrls: [String!] renderingRobotsCheckMode: RenderingRobotsCheckMode robotsOverwrite: String secondaryDomains: [String!] selectedWcagLevel: WcagLevel selectedWcagVersion: Float startUrls: [String!] storeLighthouseJSON: Boolean targetMaxUncrawledUrlsCount: Int testSiteDomain: String testSitePassword: String testSiteUsername: String thinPageThreshold: Int """ Report setting for the topic clustering reports: a topic counts as thin when its `primaryIndexableUrlCountVsMedian` is below this value, that is, when it has fewer indexable primary URLs than this share of the median topic. """ thinTopicThreshold: Float """ Report setting for the topic clustering reports: a page counts as ambiguous between its two best topics when its `topicScoreGap` is below this value. The gap is in standard deviations, not raw cosine similarity. """ topicAmbiguityGapThreshold: Float urlRewriteQueryParameters: [String!] urlRewriteRules: [UrlRewriteRuleInput!] urlRewriteStripFragment: Boolean urlSampling: [UrlSamplingInput!] useMobileSettings: Boolean useNewHeadlessMode: Boolean useRenderer: Boolean useRobotsOverwrite: Boolean useStealthMode: Boolean useUrlRewriteRules: Boolean userAgentCode: String userAgentIsMobile: Boolean userAgentMobileIsMobile: Boolean userAgentString: String userAgentStringMobile: String userAgentToken: String userAgentTokenMobile: String viewportHeight: Int viewportWidth: Int } type UpdateProjectPayload { project: Project! } input UpdateReportTemplateOverrideInput { aggregateCode: String projectId: ObjectID! reportTemplateCode: String! totalSign: Int totalWeight: Float } type UpdateReportTemplateOverridePayload { reportTemplateOverride: ReportTemplateOverride! } input UpdateScheduleInput { nextRunTime: DateTime scheduleFrequency: ScheduleFrequencyCode scheduleId: ObjectID! } type UpdateSchedulePayload { schedule: Schedule! } """ Changes to one schema template. Fields left out keep their stored value. """ input UpdateSchemaTemplateInput { """ The set `version` the change is based on. When given, the save is rejected if the set has been saved since. When left out, the template is changed as it stands, and other templates are never affected. """ expectedVersion: Int """ The name shown to customers. """ name: String """ The page type whose pages the template applies to. """ pageTypeId: ObjectID """ Every rule to keep, replacing the stored ones. A stored rule left out is deleted. """ rules: [SchemaTemplateRuleInput!] """ The template set holding the template. """ schemaTemplateSetId: ObjectID! """ The template to change. """ templateId: String! } """ The result of changing a schema template. """ type UpdateSchemaTemplatePayload { """ The template as saved, with its minted ids. """ schemaTemplate: SchemaTemplate! schemaTemplateSet: SchemaTemplateSet! """ Problems that did not stop the save, such as a schema.org type the validator does not know. """ warnings: [SchemaTemplateDiagnostic!]! } """ A project's whole schema template set, replacing the stored one. """ input UpdateSchemaTemplateSetInput { """ The `version` the change is based on. The save is rejected if the set has been saved since. """ expectedVersion: Int! """ The template set to replace. """ schemaTemplateSetId: ObjectID! """ Every template to keep. A stored template left out is deleted; one without a `templateId` is new. """ templates: [SchemaTemplateInput!]! } """ The result of replacing a project's schema template set. """ type UpdateSchemaTemplateSetPayload { schemaTemplateSet: SchemaTemplateSet! """ Problems that did not stop the save, such as a schema.org type the validator does not know. """ warnings: [SchemaTemplateDiagnostic!]! } input UpdateSegmentInput { crawlUrlFilter: CrawlUrlConnectionFilterInput group: String name: String segmentId: ObjectID! } type UpdateSegmentPayload { segment: Segment! } type UpdateSegmentsPayload { segments: [Segment!]! } input UpdateSelfServeAccountSubscriptionInput { accountId: ObjectID! optionalAddons: [SelfServeOptionalAddonInput!]! = [] """ One of: geo-growth, geo-starter. """ planCode: String! planInterval: SelfServePlanInterval! = Month } type UpdateSelfServeAccountSubscriptionPayload { account: Account! } input UpdateServiceAccountInput { description: String enabled: Boolean id: ObjectID! name: String roleCode: RoleCode } type UpdateServiceAccountPayload { serviceAccount: ServiceAccount! } input UpdateSlackWebhookInput { alertTypes: [SlackAlertType!]! slackWebhookId: ObjectID! } input UpdateSplunkConnectionInput { customProxy: String password: String proxyCode: SplunkProxyCode splunkConnectionId: ObjectID! url: String username: String } type UpdateSplunkConnectionPayload { splunkConnection: SplunkConnection! } input UpdateSplunkProjectQueryInput { baseUrl: String dateRange: Int enabled: Boolean query: String splunkConnectionId: ObjectID splunkProjectQueryId: ObjectID! useLastCrawlDate: Boolean } type UpdateSplunkProjectQueryPayload { splunkProjectQuery: SplunkProjectQuery! } input UpdateSsoAccountInput { accountId: ObjectID! active: Boolean country: String customLogo: Upload name: String } type UpdateSsoAccountPayload { account: Account! } input UpdateSsoAccountSubscriptionInput { accountId: ObjectID! planCode: String """ Full list of settings to be included with the account subscription plan. """ planSettings: [AccountSubscriptionPlanSettingInput!] } type UpdateSsoAccountSubscriptionPayload { accountSubscription: AccountSubscription! } input UpdateSsoConnectionInput { accountId: ObjectID! """ Apps a user provisioned through this connection starts with. Applies to memberships created from now on; users who already have a membership are untouched. Pass an empty list to clear the default. """ defaultApps: [LumarApp!] defaultRoleCode: RoleCode domainAliases: [String!] fieldsMap: JSON """ Name of the SAML attribute carrying the user's group list (split on `;`). Pass `null` to reset to the `groups` default — this does not disable group-driven roles; remove the account's group→role mappings to do that. """ groupAttributeName: String idpinitiatedClientAuthorizequery: String idpinitiatedProtocol: String signInEndpoint: String signOutEndpoint: String signingCert: String userIdAttribute: String } type UpdateSsoConnectionPayload { ssoConnection: SSOConnection! } input UpdateTestInput { absoluteThreshold: Int automaticThresholdAcceptanceWhenTestResultIsBetter: TestAutoThresholdAcceptance automaticThresholdAcceptanceWhenTestResultIsWorse: TestAutoThresholdAcceptance automaticThresholdEnabled: Boolean createJiraTicketOnFailure: Boolean jiraTicketCustomNote: String relativeThreshold: Int segmentId: ObjectID severity: Severity testId: ObjectID! thresholdPredicate: ThresholdPredicate thresholdType: ThresholdType } type UpdateTestPayload { test: Test! } input UpdateTestResultInput { status: TestResultStatus! testResultId: ObjectID! } type UpdateTestResultPayload { testResult: TestResult! } input UpdateTestSuiteEmailAlertInput { alertTypes: [EmailAlertType!] email: String testSuiteEmailAlertId: ObjectID! } input UpdateTestSuiteInput { alertEmails: [String!] applyCustomHeadersToNavigationRequestsOnly: Boolean automaticThreshold: Boolean automaticThresholdEnabledForAll: Boolean block3rdPartyCookies: Boolean crawl4xxHreflangLinks: Boolean crawl4xxLinks: Boolean crawlRate: Float crawlTypes: [TestSuiteCrawlType!] customDns: [CustomDnsSettingInput!] customExtractions: [CustomExtractionSettingInput!] customHeaderUserAgent: String customHeaderUserAgentShort: String """ Includes paginated pages, those with a `rel=next` or `rel=prev` link, in the duplicate checks for titles, descriptions, body content and pages. """ duplicatePagesIncludePaginatedPages: Boolean duplicatePrecision: Int emptyPageThreshold: Int flattenIframes: Boolean flattenShadowDom: Boolean healthScoreAutomaticThreshold: Boolean healthScoreAutomaticThresholdEnabledForAll: Boolean highLogSummaryRequests: Int ignoreRobotsForNavigationRequests: Boolean ignoreXRobots: Boolean includeBestPractices: Boolean limitPagesMax: Int location: TestSuiteLocationCode lowLogSummaryRequests: Int maxContentSize: Int maxDescriptionLength: Int maxExternalLinks: Int maxHtmlSize: Int maxLinks: Int maxLoadTime: Float maxRedirections: Int maxTitleWidth: Int maxUrlLength: Int minContentRatio: Float minDescriptionLength: Int minTitleLength: Int mobileUserAgentCode: String mobileViewportHeight: Int mobileViewportWidth: Int name: String rendererBlockAds: Boolean rendererBlockAnalytics: Boolean rendererBlockCustom: [String!] rendererCookies: [RendererCookieInput!] rendererJsString: String rendererJsUrls: [String!] renderingRobotsCheckMode: RenderingRobotsCheckMode robotsOverwrite: String selectedWcagLevel: WcagLevel selectedWcagVersion: Float sitePrimary: String siteTest: String siteTestPass: String siteTestUser: String startUrls: [String!] testSuiteId: ObjectID! thinPageThreshold: Int """ Report setting for the topic clustering reports: a topic counts as thin when its `primaryIndexableUrlCountVsMedian` is below this value, that is, when it has fewer indexable primary URLs than this share of the median topic. """ thinTopicThreshold: Float """ Report setting for the topic clustering reports: a page counts as ambiguous between its two best topics when its `topicScoreGap` is below this value. The gap is in standard deviations, not raw cosine similarity. """ topicAmbiguityGapThreshold: Float urlsExcluded: [String!] urlsIncluded: [String!] useNewHeadlessMode: Boolean useRenderer: Boolean useRobotsOverwrite: Boolean userAgentCode: String userAgentIsMobile: Boolean userAgentMobileIsMobile: Boolean userAgentString: String userAgentStringMobile: String userAgentToken: String userAgentTokenMobile: String viewportHeight: Int viewportWidth: Int } type UpdateTestSuitePayload { testSuite: TestSuite! } type UpdateTestsPayload { tests: [Test!]! } input UpdateTopicConfigurationInput { description: String enabled: Boolean keywords: [String!] minSimilarityThreshold: Float name: String topicConfigurationId: ObjectID! } type UpdateTopicConfigurationPayload { topicConfiguration: TopicConfiguration! } input UpdateUrlFileUploadInput { customType: Boolean @deprecated(reason: "No longer used.") customUploadTemplate: JSONObject enabled: Boolean projectUploadType: ProjectUploadType uploadBaseDomain: String urlFileUploadId: ObjectID! } type UpdateUrlFileUploadPayload { urlFileUpload: UrlFileUpload! } """ Updates the stored credential for an existing (account, domain) signature. The domain is immutable (it keys the signature) — to change it, delete and re-create. Provide a new header value to rotate the signature; the new credential is re-validated before it is persisted. """ input UpdateWebBotAuthSignatureInput { """ New raw `Signature` HTTP header value. Omit to keep the current one. """ signature: String """ New raw `Signature-Agent` HTTP header value. Omit to keep the current one. """ signatureAgent: String """ New raw `Signature-Input` HTTP header value. Omit to keep the current one. """ signatureInput: String webBotAuthSignatureId: ObjectID! } type UpdateWebBotAuthSignaturePayload { webBotAuthSignature: WebBotAuthSignature! } input UpdateWebhookInput { alertTypes: [AlertType!]! webhookId: ObjectID! webhookTemplateType: WebhookTemplateType! } """ The `Upload` scalar type represents a file upload. """ scalar Upload type UrlFileUpload { crawlType: CrawlTypeMetadata! createdAt: DateTime! customMetricUploadContainer: CustomMetricUploadContainer customUploadTemplate: JSONObject @deprecated(reason: "Use UrlFileUploadType.uploadTemplate as a base for customization.") enabled: Boolean! errorMessage: String erroredAt: DateTime fileName: String! fileUrl: String! id: ObjectID! isCustomizable: Boolean! processingFeedback: String @deprecated(reason: "Legacy field. No longer in use.") rawID: String! sample: String! status: UrlFileUploadStatus! totalRows: Int updatedAt: DateTime! uploadBaseDomain: String urlFileUploadType: UrlFileUploadType } type UrlFileUploadConnection { """ A list of edges. """ edges: [UrlFileUploadEdge!]! """ A list of nodes. """ nodes: [UrlFileUpload!]! """ Information to aid in pagination. """ pageInfo: PageInfo! """ Identifies the total count of UrlFileUploads in the connection. """ totalCount: Int! } input UrlFileUploadConnectionFilterInput { """ Groups each filter object using AND """ _and: [UrlFileUploadConnectionFilterInput!] """ Groups each filter object using AND, wrapped inside NOT """ _not: [UrlFileUploadConnectionFilterInput!] """ Groups each filter object using OR """ _or: [UrlFileUploadConnectionFilterInput!] crawlTypeId: ConnectionObjectIDFilterInput fileName: ConnectionStringFilterInput } type UrlFileUploadEdge { """ A cursor to use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: UrlFileUpload! } enum UrlFileUploadStatus { Draft Errored Processed Processing } type UrlFileUploadType { code: ProjectUploadType! crawlType: CrawlTypeMetadata! id: ObjectID! isCustom: Boolean """ Flag indicates that the UrlFileUploadType is a variant of another UrlFileUploadType, with a minor difference, e.g. expecting a metric from a different CSV header. """ isVariant: Boolean! name: String! rawID: String! requiredContainerNames: [String!] uploadTemplate: JSONObject } enum UrlRewriteCaseOption { RewriteToLowercase RewriteToUppercase } type UrlRewriteRule { caseOption: UrlRewriteCaseOption matchFrom: String! rewriteTo: String! } input UrlRewriteRuleInput { caseOption: UrlRewriteCaseOption matchFrom: String! rewriteTo: String! } type UrlSampling { name: String! regexPattern: String! samplePercentage: Float! } input UrlSamplingInput { name: String! regexPattern: String! samplePercentage: Float! } type User { accounts( after: String before: String """ Filtering options for Accounts returned from the connection. """ filter: AccountConnectionFilterInput first: Int = 15 last: Int """ Ordering options for Accounts returned from the connection. """ orderBy: [AccountOrder!] ): AccountConnection! accountsUsers( after: String before: String """ Filtering options for AccountUsers returned from the connection. """ filter: AccountUserConnectionFilterInput first: Int = 15 last: Int ): AccountUserConnection! adobeOauthServerToServerConnections( after: String before: String """ Filtering options for AdobeOauthServerToServerConnections returned from the connection. """ filter: AdobeOauthServerToServerConnectionConnectionFilterInput first: Int = 15 last: Int """ Ordering options for AdobeOauthServerToServerConnections returned from the connection. """ orderBy: [AdobeOauthServerToServerConnectionOrder!] ): AdobeOauthServerToServerConnectionConnection! auth0UserId: String createdAt: DateTime! email: String firstName: String googleConnections(after: String, before: String, first: Int = 15, last: Int): GoogleConnectionConnection! id: ObjectID! jobTitle: String lastName: String logzioConnections( after: String before: String """ Filtering options for LogzioConnections returned from the connection. """ filter: LogzioConnectionConnectionFilterInput first: Int = 15 last: Int """ Ordering options for LogzioConnections returned from the connection. """ orderBy: [LogzioConnectionOrder!] ): LogzioConnectionConnection! overallLimitLevelsMax: Int! overallLimitPagesMax: Int! permissions: [Permission!]! rawID: String! splunkConnections( after: String before: String """ Filtering options for SplunkConnections returned from the connection. """ filter: SplunkConnectionConnectionFilterInput first: Int = 15 last: Int """ Ordering options for SplunkConnections returned from the connection. """ orderBy: [SplunkConnectionOrder!] ): SplunkConnectionConnection! ssoClientId: String termsAgreed: Boolean! termsAgreedAt: DateTime updatedAt: DateTime! userData(key: String): JSON userKeys( after: String before: String """ Filtering options for UserKeys returned from the connection. """ filter: UserKeyConnectionFilterInput first: Int = 15 last: Int """ Ordering options for UserKeys returned from the connection. """ orderBy: [UserKeyOrder!] ): UserKeyConnection! username: String @deprecated(reason: "Use User.email instead.") } type UserAgent { code: String! isDeprecated: Boolean! isMobile: Boolean! name: String! supportedModules: [ModuleCode!] userAgentStrings: [UserAgentStrings!]! } type UserAgentStrings { full: String! short: String! } type UserInfo { email: String firstName: String id: Int! lastName: String username: String @deprecated(reason: "Use UserInfo.email instead.") } type UserInvite { createdAt: DateTime! email: String! id: ObjectID! rawID: String! ssoClientId: String updatedAt: DateTime! } type UserInviteConnection { """ A list of edges. """ edges: [UserInviteEdge!]! """ A list of nodes. """ nodes: [UserInvite!]! """ Information to aid in pagination. """ pageInfo: PageInfo! """ Identifies the total count of UserInvites in the connection. """ totalCount: Int! } input UserInviteConnectionFilterInput { """ Groups each filter object using AND """ _and: [UserInviteConnectionFilterInput!] """ Groups each filter object using AND, wrapped inside NOT """ _not: [UserInviteConnectionFilterInput!] """ Groups each filter object using OR """ _or: [UserInviteConnectionFilterInput!] createdAt: ConnectionDateFilterInput email: ConnectionStringFilterInput ssoClientId: ConnectionStringFilterInput updatedAt: ConnectionDateFilterInput } type UserInviteEdge { """ A cursor to use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: UserInvite! } input UserInviteOrder { """ The ordering direction. """ direction: OrderDirection! """ The field to order UserInvites by. """ field: UserInviteOrderField! } enum UserInviteOrderField { createdAt email id updatedAt } type UserKey { createdAt: DateTime! id: ObjectID! name: String rawID: String! """ Plain text secret, only visible right after creation of UserKey via createUserKey. """ secret: String updatedAt: DateTime! user: User! } type UserKeyConnection { """ A list of edges. """ edges: [UserKeyEdge!]! """ A list of nodes. """ nodes: [UserKey!]! """ Information to aid in pagination. """ pageInfo: PageInfo! """ Identifies the total count of UserKeys in the connection. """ totalCount: Int! } input UserKeyConnectionFilterInput { """ Groups each filter object using AND """ _and: [UserKeyConnectionFilterInput!] """ Groups each filter object using AND, wrapped inside NOT """ _not: [UserKeyConnectionFilterInput!] """ Groups each filter object using OR """ _or: [UserKeyConnectionFilterInput!] createdAt: ConnectionDateFilterInput } type UserKeyEdge { """ A cursor to use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: UserKey! } input UserKeyOrder { """ The ordering direction. """ direction: OrderDirection! """ The field to order UserKeys by. """ field: UserKeyOrderField! } enum UserKeyOrderField { createdAt lastLoginAt } enum WcagLevel { A AA AAA } """ The reason a Web Bot Auth signature failed validation. """ enum WebBotAuthInvalidReason { BadSignature DirectoryFetchFailed KeyNotFound MissingAuthorityComponent MissingExpires MissingSignature MissingSignatureAgent MissingSignatureInput NoSignatureFound SignatureExpired } type WebBotAuthSignature { createdAt: DateTime! """ Bare hostname (no scheme/path) the signature is configured for, e.g. `example.com`. """ domain: String! """ When the stored signature expires, from the last validation. """ expiresAt: DateTime id: ObjectID! """ Whether the stored signature is currently usable (last validation passed and not expired). """ isValid: Boolean! """ JWK thumbprint of the signing key from the last validation. Surfaced for display. """ keyId: String """ Reason from the most recent validation, or `null` when the last validation passed. """ lastInvalidReason: WebBotAuthInvalidReason """ When the stored signature was last validated. """ lastValidatedAt: DateTime rawID: String! """ Resolved signer key-directory URL from the last validation. Surfaced for display. """ resolvedSignatureAgentUrl: String updatedAt: DateTime! } type WebBotAuthSignatureConnection { """ A list of edges. """ edges: [WebBotAuthSignatureEdge!]! """ A list of nodes. """ nodes: [WebBotAuthSignature!]! """ Information to aid in pagination. """ pageInfo: PageInfo! """ Identifies the total count of WebBotAuthSignatures in the connection. """ totalCount: Int! } type WebBotAuthSignatureEdge { """ A cursor to use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: WebBotAuthSignature! } type Webhook { alertTypes: [AlertType!]! createdAt: DateTime! id: ObjectID! rawID: String! testSuite: TestSuite! url: String! webhookTemplateType: WebhookTemplateType! } type WebhookConnection { """ A list of edges. """ edges: [WebhookEdge!]! """ A list of nodes. """ nodes: [Webhook!]! """ Information to aid in pagination. """ pageInfo: PageInfo! """ Identifies the total count of Webhooks in the connection. """ totalCount: Int! } type WebhookEdge { """ A cursor to use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: Webhook! } input WebhookOrder { """ The ordering direction. """ direction: OrderDirection! """ The field to order Webhooks by. """ field: WebhookOrderField! } enum WebhookOrderField { createdAt } enum WebhookTemplateType { MSTeams }