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:
- Query
- Variables
- cURL
query GetGlobalContainersFromAccount($accountId: ObjectID!, $globalContainersCursor: String) {
getAccount(id: $accountId) {
availableCustomMetricContainers(first: 100, after: $globalContainersCursor) {
pageInfo {
hasNextPage
endCursor
}
edges {
node {
id
name
displayName
description
requiredAddons
requiresAiFeatures
costs {
moduleCode
cost
}
keyFeatures
relatedContainerNames
}
}
}
}
}
{
"accountId": 123,
"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 GetGlobalContainersFromAccount($accountId: ObjectID!, $globalContainersCursor: String) { getAccount(id: $accountId) { availableCustomMetricContainers(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}}' https://api.lumar.io/graphql
- Query
- Variables
- cURL
query GetGlobalContainersFromProject($projectId: ObjectID!, $globalContainersCursor: String) {
getProject(id: $projectId) {
availableCustomMetricContainers(first: 100, after: $globalContainersCursor) {
pageInfo {
hasNextPage
endCursor
}
edges {
node {
id
name
displayName
description
requiredAddons
requiresAiFeatures
costs {
moduleCode
cost
}
keyFeatures
relatedContainerNames
}
}
}
}
}
{
"projectId": "725158",
"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 GetGlobalContainersFromProject($projectId: ObjectID!, $globalContainersCursor: String) { getProject(id: $projectId) { availableCustomMetricContainers(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}}' 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.
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.
- 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