Skip to main content

Extensions

Extensions are pre-built Custom Metric Containers that you can easily enable on your projects to unlock additional capabilities.

Available Extensions

Some of the popular extensions include:

  • Store HTML: Stores the HTML of each page as it appeared at the time of crawling.
  • Store Screenshots: Stores a screenshot of each page as it appeared at the time of crawling.

You can discover all available global extensions by fetching them from either the Account or Project level:

Operation: query GetGlobalContainersFromAccount($accountId: ObjectID!, $globalContainersCursor: String) { getAccount(id: $accountId) { availableGlobalCustomMetricContainers(first: 100, after: $globalContainersCursor) { pageInfo { hasNextPage endCursor } edges { node { id name displayName description requiredAddons requiresAiFeatures costs { moduleCode cost } keyFeatures relatedContainerNames } } } } }Variables: { "accountId": 123, "globalContainersCursor": null }
List global containers (Account)Try in Explorer
GraphQL
query GetGlobalContainersFromAccount($accountId: ObjectID!, $globalContainersCursor: String) {
getAccount(id: $accountId) {
availableGlobalCustomMetricContainers(first: 100, after: $globalContainersCursor) {
pageInfo {
hasNextPage
endCursor
}
edges {
node {
id
name
displayName
description
requiredAddons
requiresAiFeatures
costs {
moduleCode
cost
}
keyFeatures
relatedContainerNames
}
}
}
}
}
Operation: query GetGlobalContainersFromProject($projectId: ObjectID!, $globalContainersCursor: String) { getProject(id: $projectId) { availableGlobalCustomMetricContainers(first: 100, after: $globalContainersCursor) { pageInfo { hasNextPage endCursor } edges { node { id name displayName description requiredAddons requiresAiFeatures costs { moduleCode cost } keyFeatures relatedContainerNames } } } } }Variables: { "projectId": "725158", "globalContainersCursor": null }
List global containers (Project)Try in Explorer
GraphQL
query GetGlobalContainersFromProject($projectId: ObjectID!, $globalContainersCursor: String) {
getProject(id: $projectId) {
availableGlobalCustomMetricContainers(first: 100, after: $globalContainersCursor) {
pageInfo {
hasNextPage
endCursor
}
edges {
node {
id
name
displayName
description
requiredAddons
requiresAiFeatures
costs {
moduleCode
cost
}
keyFeatures
relatedContainerNames
}
}
}
}
}

Costs and Availability

Extensions may have associated costs. The costs field in the query response provides this information:

  • If costs is null, the extension is free and available for all project types.
  • If costs contains specific module codes (e.g., SEO), the price applies only to projects with those modules.
  • The cost field indicates the price.

Required Add-ons

Some extensions rely on specific platform features. Check the requiredAddons field to see if an extension needs any additional add-ons enabled on your account.

Required AI Features

Some extensions require AI features to be enabled on the account. The requiresAiFeatures field indicates whether an extension depends on AI capabilities. If true, the extension will only function if AI features are active for the account.

Enabling an Extension

To use an extension on your project, you need to link the container to your project.

Operation: mutation LinkContainerToProject($input: LinkCustomMetricContainerToProjectInput!) { linkCustomMetricContainerToProject(input: $input) { customMetricContainerProject { project { id } customMetricContainer { id } enabled } } }Variables: { "input": { "projectId": "725158", "customMetricContainerId": "TjAyMUN1c3RvbU1ldHJpY0NvbnRhaW5lcjI3Ng" } }
Link container to projectTry in Explorer
GraphQL
mutation LinkContainerToProject($input: LinkCustomMetricContainerToProjectInput!) {
linkCustomMetricContainerToProject(input: $input) {
customMetricContainerProject {
project {
id
}
customMetricContainer {
id
}
enabled
}
}
}

Listing Linked Extensions

You can find which extensions are already linked to your project using the following query:

Operation: query GetCrawlSettingsForExtensions($projectId: ObjectID!, $projectContainersCursor: String) { getProject(id: $projectId) { id moduleCode customMetricContainerProjects(first: 100, after: $projectContainersCursor) { pageInfo { hasNextPage endCursor } edges { node { project { id } customMetricContainer { id } enabled } } } } }Variables: { "projectId": "725158" }
List linked containersTry in Explorer
GraphQL
query GetCrawlSettingsForExtensions($projectId: ObjectID!, $projectContainersCursor: String) {
getProject(id: $projectId) {
id
moduleCode
customMetricContainerProjects(first: 100, after: $projectContainersCursor) {
pageInfo {
hasNextPage
endCursor
}
edges {
node {
project {
id
}
customMetricContainer {
id
}
enabled
}
}
}
}
}

Managing Extensions

Once an extension is linked to a project, you can toggle its status (enable/disable) without removing the link.

Operation: mutation UpdateContainerProject($input: UpdateCustomMetricContainerProjectInput!) { updateCustomMetricContainerProject(input: $input) { customMetricContainerProject { project { id } customMetricContainer { id } enabled } } }Variables: { "input": { "projectId": "725158", "customMetricContainerId": "TjAyMUN1c3RvbU1ldHJpY0NvbnRhaW5lcjI3Ng", "enabled": false } }
Toggle extension statusTry in Explorer
GraphQL
mutation UpdateContainerProject($input: UpdateCustomMetricContainerProjectInput!) {
updateCustomMetricContainerProject(input: $input) {
customMetricContainerProject {
project {
id
}
customMetricContainer {
id
}
enabled
}
}
}