# Lumirex-Online Footprint, LLM Visibility & Citation Audit Tool (`netservices/lumirex-brand-audit`) Actor

Run AI brand audits, citation scans, and LLM visibility searches via the Lumirex platform. Outputs structured JSON for downstream analysis.

- **URL**: https://apify.com/netservices/lumirex-brand-audit.md
- **Developed by:** [Lumirex.ai App](https://apify.com/netservices) (community)
- **Categories:** AI, SEO tools, Lead generation
- **Stats:** 1 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per usage

This Actor is paid per platform usage. The Actor is free to use, and you only pay for the Apify platform usage, which gets cheaper the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-usage

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## Lumirex AI Brand Audit — Apify Actor

Run AI brand audits, citation scans, and LLM visibility searches programmatically via the [Lumirex](https://lumirex.ai) platform. Results are pushed to an Apify dataset as structured JSON for downstream analysis.

### Features

- **Citation Scan** — Find NAP (Name, Address, Phone) citations across the web (quick or full scan)
- **LLM Visibility** — Test how your brand appears in ChatGPT, Claude, Gemini, and Perplexity with up to 5 custom queries
- **Monitoring Setup** — Save recurring monitoring queries that run daily, weekly, or monthly

### Prerequisites

1. A [Lumirex account](https://lumirex.ai)
2. A Lumirex API key — generate one at **Settings → Developer / Integrations**
3. Sufficient credits in your Lumirex account

### Input

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `lumirexApiKey` | string | ✅ | Your Lumirex API key (starts with `lmx_`) |
| `mode` | string | ✅ | `citation-scan`, `llm-visibility`, or `monitoring-setup` |
| `brandName` | string | ✅ | Business or brand name |
| `websiteUrl` | string | ✅ | Business website URL |
| `citationScanType` | string | — | `quick` (1 credit) or `full` (3 credits). Default: `quick` |
| `aiVisibilityQueries` | array | — | Up to 5 custom questions for LLM visibility mode |
| `businessAddress` | string | — | Full address for NAP citation matching |
| `businessPhone` | string | — | Phone number for NAP citation matching |
| `icpDescription` | string | — | Ideal Customer Profile for targeted queries |
| `competitors` | array | — | Competitor names or URLs |
| `monitoringInterval` | string | — | `daily`, `weekly`, or `monthly`. Default: `weekly` |
| `monitoringQueries` | array | — | Up to 5 queries for monitoring-setup mode |
| `pollIntervalSeconds` | integer | — | Status poll interval (default: 10) |
| `maxPollAttempts` | integer | — | Max polls before timeout (default: 60 = 10 min) |

### Credit Costs

| Mode | Credits |
|------|---------|
| LLM Visibility only | 1 credit |
| Citation Scan (quick) | 1 credit |
| Citation Scan (full) | 3 credits |
| Full Audit + Quick Citation | 2 credits |
| Full Audit + Full Citation | 4 credits |
| Monitoring Setup | 0 credits (monitoring runs cost 0.10 credits/query) |

### Output

Results are pushed to the Apify dataset as structured JSON:

```json
{
  "mode": "citation-scan",
  "meta": {
    "auditId": 42,
    "auditType": "citation_only",
    "brandName": "Acme Corp",
    "websiteUrl": "https://acme.com",
    "overallScore": 78,
    "createdAt": "2025-01-15T10:00:00Z",
    "completedAt": "2025-01-15T10:01:23Z",
    "costCents": 0
  },
  "scores": {
    "overall": 78,
    "citationHealth": 72
  },
  "citations": {
    "healthScore": 72,
    "totalFound": 45,
    "indexed": [...],
    "nonIndexed": [...],
    "missing": [...],
    "napConsistency": {...}
  },
  "recommendations": [...]
}
````

### Example Input

#### Citation Scan

```json
{
  "lumirexApiKey": "lmx_your_key_here",
  "mode": "citation-scan",
  "brandName": "Acme Corp",
  "websiteUrl": "https://acme.com",
  "citationScanType": "quick",
  "businessAddress": "123 Main St, Tampa FL 33601",
  "businessPhone": "(813) 555-0100"
}
```

#### LLM Visibility

```json
{
  "lumirexApiKey": "lmx_your_key_here",
  "mode": "llm-visibility",
  "brandName": "Acme Corp",
  "websiteUrl": "https://acme.com",
  "aiVisibilityQueries": [
    "What is the best CRM for small businesses?",
    "Tell me about Acme Corp",
    "What are alternatives to Acme Corp?"
  ]
}
```

#### Monitoring Setup

```json
{
  "lumirexApiKey": "lmx_your_key_here",
  "mode": "monitoring-setup",
  "brandName": "Acme Corp",
  "websiteUrl": "https://acme.com",
  "monitoringQueries": [
    "What is the best CRM for small businesses?",
    "Top CRM tools recommended by AI"
  ],
  "monitoringInterval": "weekly"
}
```

### Pricing (Apify PPE)

This Actor uses Pay-Per-Event pricing on Apify:

| Event | Cost |
|-------|------|
| Citation Scan (quick) | $0.50 |
| Citation Scan (full) | $1.00 |
| LLM Visibility | $0.25/query |
| Monitoring Setup | $0.10 |

*Note: Apify PPE charges are separate from Lumirex credits. Both are required.*

### Support

- Documentation: [lumirex.ai/docs](https://lumirex.ai/docs)
- Support: [lumirex.ai](https://lumirex.ai)

# Actor input Schema

## `lumirexApiKey` (type: `string`):

Your Lumirex API key (starts with lmx\_). Generate one at https://lumirex.ai/settings under Developer / Integrations.

## `mode` (type: `string`):

What to run: citation-scan (find NAP citations), llm-visibility (test AI brand visibility), or monitoring-setup (save recurring monitoring queries).

## `brandName` (type: `string`):

The business or brand name to audit.

## `websiteUrl` (type: `string`):

The business website URL (e.g. https://acme.com).

## `citationScanType` (type: `string`):

quick = indexed citations only (1 credit). full = indexed + non-indexed (3 credits). Only used in citation-scan mode.

## `aiVisibilityQueries` (type: `array`):

Up to 5 custom questions to test brand visibility in ChatGPT, Claude, Gemini, and Perplexity. Only used in llm-visibility mode.

## `businessAddress` (type: `string`):

Full business address for NAP citation matching (e.g. 123 Main St, Tampa FL 33601).

## `businessPhone` (type: `string`):

Business phone number for NAP citation matching.

## `icpDescription` (type: `string`):

Describe your ideal customer to generate targeted AI visibility queries.

## `competitors` (type: `array`):

List of competitor names or URLs for competitive context.

## `monitoringInterval` (type: `string`):

How often to run monitoring queries. Only used in monitoring-setup mode.

## `monitoringQueries` (type: `array`):

Up to 5 queries to monitor for brand visibility changes. Only used in monitoring-setup mode.

## `pollIntervalSeconds` (type: `integer`):

How often to poll for audit completion (default: 10 seconds).

## `maxPollAttempts` (type: `integer`):

Maximum number of status polls before giving up (default: 60 = 10 minutes at 10s interval).

## `lumirexBaseUrl` (type: `string`):

Override the Lumirex API base URL (leave blank to use https://lumirex.ai).

## Actor input object example

```json
{
  "mode": "citation-scan",
  "citationScanType": "quick",
  "aiVisibilityQueries": [],
  "competitors": [],
  "monitoringInterval": "weekly",
  "monitoringQueries": [],
  "pollIntervalSeconds": 10,
  "maxPollAttempts": 60,
  "lumirexBaseUrl": "https://lumirex.ai"
}
```

# Actor output Schema

## `auditResults` (type: `string`):

Full structured JSON audit report including scores, citation data, LLM visibility findings, and recommendations. One item per Actor run.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {};

// Run the Actor and wait for it to finish
const run = await client.actor("netservices/lumirex-brand-audit").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {}

# Run the Actor and wait for it to finish
run = client.actor("netservices/lumirex-brand-audit").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{}' |
apify call netservices/lumirex-brand-audit --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=netservices/lumirex-brand-audit",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Lumirex-Online Footprint, LLM Visibility & Citation Audit Tool",
        "description": "Run AI brand audits, citation scans, and LLM visibility searches via the Lumirex platform. Outputs structured JSON for downstream analysis.",
        "version": "1.0",
        "x-build-id": "XYeAqn3XkWVHkFIzm"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/netservices~lumirex-brand-audit/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-netservices-lumirex-brand-audit",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/netservices~lumirex-brand-audit/runs": {
            "post": {
                "operationId": "runs-sync-netservices-lumirex-brand-audit",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/netservices~lumirex-brand-audit/run-sync": {
            "post": {
                "operationId": "run-sync-netservices-lumirex-brand-audit",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "lumirexApiKey",
                    "mode",
                    "brandName",
                    "websiteUrl"
                ],
                "properties": {
                    "lumirexApiKey": {
                        "title": "Lumirex API Key",
                        "type": "string",
                        "description": "Your Lumirex API key (starts with lmx_). Generate one at https://lumirex.ai/settings under Developer / Integrations."
                    },
                    "mode": {
                        "title": "Mode",
                        "enum": [
                            "citation-scan",
                            "llm-visibility",
                            "monitoring-setup"
                        ],
                        "type": "string",
                        "description": "What to run: citation-scan (find NAP citations), llm-visibility (test AI brand visibility), or monitoring-setup (save recurring monitoring queries).",
                        "default": "citation-scan"
                    },
                    "brandName": {
                        "title": "Brand Name",
                        "type": "string",
                        "description": "The business or brand name to audit."
                    },
                    "websiteUrl": {
                        "title": "Website URL",
                        "type": "string",
                        "description": "The business website URL (e.g. https://acme.com)."
                    },
                    "citationScanType": {
                        "title": "Citation Scan Type",
                        "enum": [
                            "quick",
                            "full"
                        ],
                        "type": "string",
                        "description": "quick = indexed citations only (1 credit). full = indexed + non-indexed (3 credits). Only used in citation-scan mode.",
                        "default": "quick"
                    },
                    "aiVisibilityQueries": {
                        "title": "AI Visibility Queries",
                        "type": "array",
                        "description": "Up to 5 custom questions to test brand visibility in ChatGPT, Claude, Gemini, and Perplexity. Only used in llm-visibility mode.",
                        "default": []
                    },
                    "businessAddress": {
                        "title": "Business Address",
                        "type": "string",
                        "description": "Full business address for NAP citation matching (e.g. 123 Main St, Tampa FL 33601)."
                    },
                    "businessPhone": {
                        "title": "Business Phone",
                        "type": "string",
                        "description": "Business phone number for NAP citation matching."
                    },
                    "icpDescription": {
                        "title": "Ideal Customer Profile",
                        "type": "string",
                        "description": "Describe your ideal customer to generate targeted AI visibility queries."
                    },
                    "competitors": {
                        "title": "Competitors",
                        "type": "array",
                        "description": "List of competitor names or URLs for competitive context.",
                        "default": []
                    },
                    "monitoringInterval": {
                        "title": "Monitoring Interval",
                        "enum": [
                            "daily",
                            "weekly",
                            "monthly"
                        ],
                        "type": "string",
                        "description": "How often to run monitoring queries. Only used in monitoring-setup mode.",
                        "default": "weekly"
                    },
                    "monitoringQueries": {
                        "title": "Monitoring Queries",
                        "type": "array",
                        "description": "Up to 5 queries to monitor for brand visibility changes. Only used in monitoring-setup mode.",
                        "default": []
                    },
                    "pollIntervalSeconds": {
                        "title": "Poll Interval (seconds)",
                        "minimum": 5,
                        "maximum": 60,
                        "type": "integer",
                        "description": "How often to poll for audit completion (default: 10 seconds).",
                        "default": 10
                    },
                    "maxPollAttempts": {
                        "title": "Max Poll Attempts",
                        "minimum": 10,
                        "maximum": 120,
                        "type": "integer",
                        "description": "Maximum number of status polls before giving up (default: 60 = 10 minutes at 10s interval).",
                        "default": 60
                    },
                    "lumirexBaseUrl": {
                        "title": "Lumirex API Base URL",
                        "type": "string",
                        "description": "Override the Lumirex API base URL (leave blank to use https://lumirex.ai).",
                        "default": "https://lumirex.ai"
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
