Topical Cluster Url Mapper
Pricing
from $11.50 / 1,000 url analyzeds
Topical Cluster Url Mapper
Map URLs into topical clusters using page titles, headings, breadcrumbs, internal links, tags, and supplied taxonomy rules to reveal coverage gaps and...
Topical Cluster Url Mapper
Pricing
from $11.50 / 1,000 url analyzeds
Map URLs into topical clusters using page titles, headings, breadcrumbs, internal links, tags, and supplied taxonomy rules to reveal coverage gaps and...
You can access the Topical Cluster Url Mapper 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": "LudgReMgjmQDopXBE" }, "servers": [ { "url": "https://api.apify.com/v2" } ], "paths": { "/acts/junipr~topical-cluster-url-mapper/run-sync-get-dataset-items": { "post": { "operationId": "run-sync-get-dataset-items-junipr-topical-cluster-url-mapper", "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~topical-cluster-url-mapper/runs": { "post": { "operationId": "runs-sync-junipr-topical-cluster-url-mapper", "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~topical-cluster-url-mapper/run-sync": { "post": { "operationId": "run-sync-junipr-topical-cluster-url-mapper", "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": "Page URLs", "type": "array", "description": "Public page URLs to classify into topical clusters.", "items": { "type": "string" }, "default": [] }, "sitemapUrls": { "title": "Sitemap URLs", "type": "array", "description": "Optional public XML sitemap URLs. Accepted page URLs remain bounded by maxUrls.", "items": { "type": "string" }, "default": [] }, "htmlInputs": { "title": "Captured page HTML", "type": "array", "description": "Optional records with sourceUrl and html or currentHtml for deterministic analysis.", "items": { "type": "object" }, "default": [] }, "taxonomySeeds": { "title": "Taxonomy seeds", "type": "array", "description": "Explicit cluster labels whose words become transparent matching terms.", "items": { "type": "string" }, "default": [] }, "clusterRules": { "title": "Cluster rules", "type": "array", "description": "Rules with name plus optional terms and regular-expression patterns.", "items": { "type": "object", "properties": { "name": { "title": "Name", "type": "string", "description": "Human-readable cluster rule name." }, "terms": { "title": "Terms", "type": "array", "description": "Terms that indicate this topic cluster when found on a page.", "items": { "type": "string" } }, "patterns": { "title": "Patterns", "type": "array", "description": "Regular-expression patterns that indicate this topic cluster.", "items": { "type": "string" } } } }, "default": [] }, "includeInternalLinks": { "title": "Use internal-link anchors", "type": "boolean", "description": "Include visible internal links as clustering evidence.", "default": true }, "includeBreadcrumbs": { "title": "Use breadcrumbs", "type": "boolean", "description": "Include breadcrumb text as clustering evidence.", "default": true }, "minClusterConfidence": { "title": "Minimum cluster confidence", "minimum": 0, "maximum": 1, "type": "number", "description": "Scores below this threshold are labeled unclustered.", "default": 0.3 }, "dedupeNearDuplicates": { "title": "Deduplicate near-identical pages", "type": "boolean", "description": "Merge near-duplicate URLs before cluster assignment.", "default": true }, "maxUrls": { "title": "Maximum URLs", "minimum": 1, "maximum": 25, "type": "integer", "description": "Maximum URLs to map in one run.", "default": 25 }, "maxClusters": { "title": "Maximum cluster definitions", "minimum": 1, "maximum": 100, "type": "integer", "description": "Maximum topic clusters to emit in one run.", "default": 25 }, "allowedDomains": { "title": "Allowed domains", "type": "array", "description": "Optional hostname allowlist for fetched pages.", "items": { "type": "string" }, "default": [] }, "maxPages": { "title": "Maximum fetched pages", "minimum": 1, "maximum": 25, "type": "integer", "description": "Maximum pages to fetch in one run.", "default": 1 }, "maxDepth": { "title": "Link depth", "minimum": 0, "maximum": 0, "type": "integer", "description": "General link discovery is disabled.", "default": 0 }, "includeEvidence": { "title": "Include evidence", "type": "boolean", "description": "Include short source evidence snippets in output rows.", "default": true }, "includeRawSnapshots": { "title": "Store raw snapshots", "type": "boolean", "description": "Opt in to raw HTML artifacts in key-value storage.", "default": false }, "requestDelayMs": { "title": "Request delay in milliseconds", "minimum": 0, "maximum": 5000, "type": "integer", "description": "Delay in milliseconds between outbound page requests.", "default": 250 }, "timeoutMs": { "title": "Request timeout in milliseconds", "minimum": 1000, "maximum": 60000, "type": "integer", "description": "Maximum time in milliseconds to wait for a page request.", "default": 15000 }, "userAgentMode": { "title": "User-agent mode", "enum": [ "standard", "browser" ], "type": "string", "description": "User agent profile to use for public page requests.", "default": "standard" }, "maxChargeUsd": { "title": "Maximum charge", "minimum": 0, "maximum": 35, "type": "number", "description": "Maximum estimated PPE spend before the actor exits gracefully.", "default": 35 }, "includeReport": { "title": "Write reports", "type": "boolean", "description": "Write the markdown summary report to the run key-value store.", "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 Topical Cluster Url Mapper 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: