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 using the following query:
- Query
- Variables
- cURL
query GetGlobalContainers($globalContainersCursor: String) {
getGlobalCustomMetricContainers(first: 100, after: $globalContainersCursor) {
pageInfo {
hasNextPage
endCursor
}
edges {
node {
id
name
displayName
description
requiredAddons
costs {
moduleCode
cost
}
keyFeatures
relatedContainerNames
}
}
}
}
{
"globalContainersCursor": null
}
curl -X POST -H "Content-Type: application/json" -H "apollographql-client-name: docs-example-client" -H "apollographql-client-version: 1.0.0" -H "x-auth-token: YOUR_API_SESSION_TOKEN" --data '{"query":"query GetGlobalContainers($globalContainersCursor: String) { getGlobalCustomMetricContainers(first: 100, after: $globalContainersCursor) { pageInfo { hasNextPage endCursor } edges { node { id name displayName description requiredAddons costs { moduleCode cost } keyFeatures relatedContainerNames } } } }","variables":{"globalContainersCursor":null}}' https://api.lumar.io/graphql
Costs and Availability
Extensions may have associated costs. The costs field in the query response provides this information:
- If
costsisnull, the extension is free and available for all project types. - If
costscontains specific module codes (e.g.,SEO), the price applies only to projects with those modules. - The
costfield 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.
Enabling an Extension
To use an extension on your project, you need to link the container to your project.
- Query
- Variables
- cURL
mutation LinkContainerToProject($input: LinkCustomMetricContainerToProjectInput!) {
linkCustomMetricContainerToProject(input: $input) {
customMetricContainerProject {
project {
id
}
customMetricContainer {
id
}
enabled
}
}
}
{
"input": {
"projectId": "725158",
"customMetricContainerId": "TjAyMUN1c3RvbU1ldHJpY0NvbnRhaW5lcjI3Ng"
}
}
curl -X POST -H "Content-Type: application/json" -H "apollographql-client-name: docs-example-client" -H "apollographql-client-version: 1.0.0" -H "x-auth-token: YOUR_API_SESSION_TOKEN" --data '{"query":"mutation LinkContainerToProject($input: LinkCustomMetricContainerToProjectInput!) { linkCustomMetricContainerToProject(input: $input) { customMetricContainerProject { project { id } customMetricContainer { id } enabled } } }","variables":{"input":{"projectId":"725158","customMetricContainerId":"TjAyMUN1c3RvbU1ldHJpY0NvbnRhaW5lcjI3Ng"}}}' https://api.lumar.io/graphql
Listing Linked Extensions
You can find which extensions are already linked to your project using the following query:
- Query
- Variables
- cURL
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
}
}
}
}
}
{
"projectId": "725158"
}
curl -X POST -H "Content-Type: application/json" -H "apollographql-client-name: docs-example-client" -H "apollographql-client-version: 1.0.0" -H "x-auth-token: YOUR_API_SESSION_TOKEN" --data '{"query":"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"}}' https://api.lumar.io/graphql
Managing Extensions
Once an extension is linked to a project, you can toggle its status (enable/disable) without removing the link.
- Query
- Variables
- cURL
mutation UpdateContainerProject($input: UpdateCustomMetricContainerProjectInput!) {
updateCustomMetricContainerProject(input: $input) {
customMetricContainerProject {
project {
id
}
customMetricContainer {
id
}
enabled
}
}
}
{
"input": {
"projectId": "725158",
"customMetricContainerId": "TjAyMUN1c3RvbU1ldHJpY0NvbnRhaW5lcjI3Ng",
"enabled": false
}
}
curl -X POST -H "Content-Type: application/json" -H "apollographql-client-name: docs-example-client" -H "apollographql-client-version: 1.0.0" -H "x-auth-token: YOUR_API_SESSION_TOKEN" --data '{"query":"mutation UpdateContainerProject($input: UpdateCustomMetricContainerProjectInput!) { updateCustomMetricContainerProject(input: $input) { customMetricContainerProject { project { id } customMetricContainer { id } enabled } } }","variables":{"input":{"projectId":"725158","customMetricContainerId":"TjAyMUN1c3RvbU1ldHJpY0NvbnRhaW5lcjI3Ng","enabled":false}}}' https://api.lumar.io/graphql