Local Schema Coverage Auditor
Pricing
from $6.50 / 1,000 local page scanneds
Local Schema Coverage Auditor
Audit LocalBusiness, Organization, PostalAddress, OpeningHours, Review, and service-area schema coverage against visible page content
Local Schema Coverage Auditor
Pricing
from $6.50 / 1,000 local page scanneds
Audit LocalBusiness, Organization, PostalAddress, OpeningHours, Review, and service-area schema coverage against visible page content
You can access the Local Schema Coverage Auditor programmatically from your own applications by using the Apify API. You can also choose the language preference from below. To use the Apify API, you’ll need an Apify account and your API token, found in API & Integrations in Apify Console.
{ "openapi": "3.0.1", "info": { "version": "1.0", "x-build-id": "8iI2fqz2YfOg97M2n" }, "servers": [ { "url": "https://api.apify.com/v2" } ], "paths": { "/acts/junipr~local-schema-coverage-auditor/run-sync-get-dataset-items": { "post": { "operationId": "run-sync-get-dataset-items-junipr-local-schema-coverage-auditor", "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/junipr~local-schema-coverage-auditor/runs": { "post": { "operationId": "runs-sync-junipr-local-schema-coverage-auditor", "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/junipr~local-schema-coverage-auditor/run-sync": { "post": { "operationId": "run-sync-junipr-local-schema-coverage-auditor", "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", "properties": { "startUrls": { "title": "Start URLs", "type": "array", "description": "Public pages to fetch when HTML snapshots are not supplied.", "items": { "type": "string" }, "default": [ "https://example.com/" ] }, "sitemapUrls": { "title": "Sitemap URLs", "type": "array", "description": "Optional public XML sitemaps used for same-domain discovery.", "items": { "type": "string" }, "default": [] }, "htmlInputs": { "title": "HTML snapshots", "type": "array", "description": "Optional source-backed HTML snapshots for deterministic extraction.", "items": { "type": "object", "required": [ "html" ], "properties": { "sourceId": { "type": "string", "title": "Source Id", "description": "Source Id value for htmlInputs.items." }, "sourceUrl": { "type": "string", "title": "Source Url", "description": "Source Url value for htmlInputs.items." }, "title": { "type": "string", "title": "Title", "description": "Title value for htmlInputs.items." }, "html": { "type": "string", "title": "Html", "description": "Html value for htmlInputs.items." }, "currentHtml": { "type": "string", "title": "Current Html", "description": "Current Html value for htmlInputs.items." }, "sourceType": { "type": "string", "title": "Source Type", "description": "Source Type value for htmlInputs.items." }, "httpStatus": { "type": "integer", "title": "Http Status", "description": "Http Status value for htmlInputs.items." } } }, "default": [] }, "allowedDomains": { "title": "Allowed domains", "type": "array", "description": "Optional domain allowlist applied to every fetched or discovered URL.", "items": { "type": "string" }, "default": [] }, "maxPages": { "title": "Maximum pages", "minimum": 1, "maximum": 25, "type": "integer", "description": "Maximum public pages fetched or analyzed.", "default": 1 }, "maxDepth": { "title": "Maximum crawl depth", "minimum": 0, "maximum": 3, "type": "integer", "description": "Same-domain internal-link discovery depth.", "default": 0 }, "includeEvidence": { "title": "Include evidence", "type": "boolean", "description": "Include source excerpts in dataset rows.", "default": true }, "includeRawSnapshots": { "title": "Include raw snapshots", "type": "boolean", "description": "Write capped raw HTML snapshots to key-value storage.", "default": false }, "requestDelayMs": { "title": "Request delay", "minimum": 0, "maximum": 5000, "type": "integer", "description": "Delay between public HTTP requests in milliseconds.", "default": 250 }, "timeoutMs": { "title": "Request timeout", "minimum": 1000, "maximum": 60000, "type": "integer", "description": "Per-request timeout in milliseconds.", "default": 15000 }, "userAgentMode": { "title": "User agent mode", "enum": [ "standard", "compatibility" ], "type": "string", "description": "HTTP user-agent profile.", "default": "standard" }, "schemaTypes": { "title": "Schema types", "type": "array", "description": "JSON-LD entity types included in the audit.", "items": { "type": "string" }, "default": [ "LocalBusiness", "Organization" ] }, "expectedBusinessInfo": { "title": "Expected business information", "type": "object", "description": "Optional expected name, address, and phone used for explicit mismatch checks.", "properties": { "name": { "type": "string", "title": "Name", "description": "Name value for expectedBusinessInfo." }, "address": { "type": "string", "title": "Address", "description": "Address value for expectedBusinessInfo." }, "phone": { "type": "string", "title": "Phone", "description": "Phone value for expectedBusinessInfo." } }, "default": {} }, "compareVisibleNap": { "title": "Compare visible NAP", "type": "boolean", "description": "Compare schema address and phone with visible page content.", "default": true }, "checkOpeningHours": { "title": "Check opening hours", "type": "boolean", "description": "Include openingHours or openingHoursSpecification in coverage scoring.", "default": true }, "checkServiceArea": { "title": "Check service area", "type": "boolean", "description": "Include areaServed or serviceArea in coverage scoring.", "default": true }, "includeRawJsonLd": { "title": "Include raw JSON-LD evidence", "type": "boolean", "description": "Include a capped serialized entity in the evidence excerpt.", "default": false }, "maxSchemaBlocksPerPage": { "title": "Maximum schema blocks per page", "minimum": 1, "maximum": 100, "type": "integer", "description": "Maximum JSON-LD entities evaluated per page.", "default": 20 }, "maxChargeUsd": { "title": "Maximum charge", "minimum": 0, "maximum": 100, "type": "number", "description": "Maximum estimated PPE spend before a graceful stop.", "default": 15 }, "includeReport": { "title": "Generate reports", "type": "boolean", "description": "Write Markdown, CSV, JSON evidence, and run metadata.", "default": true } } }, "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 } } } } } } } } }}OpenAPI is a standard for designing and describing RESTful APIs, allowing developers to define API structure, endpoints, and data formats in a machine-readable way. It simplifies API development, integration, and documentation.
OpenAPI is effective when used with AI agents and GPTs by standardizing how these systems interact with various APIs, for reliable integrations and efficient communication.
By defining machine-readable API specifications, OpenAPI allows AI models like GPTs to understand and use varied data sources, improving accuracy. This accelerates development, reduces errors, and provides context-aware responses, making OpenAPI a core component for AI applications.
You can download the OpenAPI definitions for Local Schema Coverage Auditor from the options below:
If you’d like to learn more about how OpenAPI powers GPTs, read our blog post.
You can also check out our other API clients: