Affiliate Link Health Monitor
Pricing
Pay per usage
Go to Apify Store
Affiliate Link Health Monitor
Checks affiliate links, redirect chains, HTTP status, tracking signals, target domains, landing-page text, and changes since the previous run.
Affiliate Link Health Monitor
Pricing
Pay per usage
Checks affiliate links, redirect chains, HTTP status, tracking signals, target domains, landing-page text, and changes since the previous run.
You can access the Affiliate Link Health Monitor 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 Integrations settings in Apify Console.
{ "openapi": "3.0.1", "info": { "version": "0.1", "x-build-id": "ygcANXWd7W9xHSRnf" }, "servers": [ { "url": "https://api.apify.com/v2" } ], "paths": { "/acts/pebbly_thyme~affiliate-link-health-monitor/run-sync-get-dataset-items": { "post": { "operationId": "run-sync-get-dataset-items-pebbly_thyme-affiliate-link-health-monitor", "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/pebbly_thyme~affiliate-link-health-monitor/runs": { "post": { "operationId": "runs-sync-pebbly_thyme-affiliate-link-health-monitor", "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/pebbly_thyme~affiliate-link-health-monitor/run-sync": { "post": { "operationId": "run-sync-pebbly_thyme-affiliate-link-health-monitor", "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": [ "links" ], "properties": { "links": { "title": "Links to check", "minItems": 1, "maxItems": 1000, "type": "array", "description": "Each item must contain url. Optional fields: label, expectedAffiliateParams, expectedFinalDomains, requiredText, forbiddenText.", "items": { "type": "object", "properties": { "label": { "type": "string", "title": "Label", "description": "Optional name shown in results." }, "url": { "type": "string", "title": "Affiliate URL", "editor": "textfield", "description": "Affiliate URL to check." }, "expectedAffiliateParams": { "type": "array", "title": "Expected affiliate query parameters", "editor": "stringList", "items": { "type": "string" }, "description": "Affiliate query parameter names expected in the redirect chain." }, "expectedFinalDomains": { "type": "array", "title": "Allowed final domains", "editor": "stringList", "items": { "type": "string" }, "description": "Allowed destination domains after redirects." }, "requiredText": { "type": "array", "title": "Text that must exist on the landing page", "editor": "stringList", "items": { "type": "string" }, "description": "Text that must exist on the final landing page." }, "forbiddenText": { "type": "array", "title": "Text that must not exist on the landing page", "editor": "stringList", "items": { "type": "string" }, "description": "Text that must not exist on the final landing page." } }, "required": [ "url" ] } }, "globalAffiliateParams": { "title": "Global affiliate parameters", "type": "array", "description": "Applied to every link, for example aff_id, subid, click_id, utm_source.", "items": { "type": "string" }, "default": [] }, "concurrency": { "title": "Concurrency", "minimum": 1, "maximum": 25, "type": "integer", "description": "Number of links checked in parallel.", "default": 5 }, "maxRedirects": { "title": "Maximum redirects", "minimum": 0, "maximum": 30, "type": "integer", "description": "Maximum redirects", "default": 10 }, "timeoutSeconds": { "title": "Timeout per HTTP request", "minimum": 3, "maximum": 120, "type": "integer", "description": "Timeout per HTTP request", "default": 20 }, "maxBodyBytes": { "title": "Maximum landing-page bytes", "minimum": 10000, "maximum": 5000000, "type": "integer", "description": "Limits memory and bandwidth when checking landing-page text.", "default": 1000000 }, "inspectContent": { "title": "Inspect landing-page text", "type": "boolean", "description": "Inspect landing-page text", "default": true }, "warnWhenAffiliateParamsDisappear": { "title": "Warn when affiliate parameters disappear before the final URL", "type": "boolean", "description": "Many affiliate networks legitimately remove query parameters after recording a click, so this is disabled by default.", "default": false }, "persistState": { "title": "Remember previous results", "type": "boolean", "description": "Remember previous results", "default": true }, "stateStoreName": { "title": "State store name", "type": "string", "description": "State store name", "default": "affiliate-link-health-monitor-state" }, "onlyChanged": { "title": "Output only new or changed links", "type": "boolean", "description": "Useful for scheduled monitoring. The first run outputs every link.", "default": false }, "includeBodySnippet": { "title": "Include a short landing-page text snippet", "type": "boolean", "description": "Include a short landing-page text snippet", "default": false }, "userAgent": { "title": "User-Agent", "type": "string", "description": "User-Agent", "default": "AffiliateLinkHealthMonitor/0.1 (+https://apify.com/)" } } }, "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 Affiliate Link Health Monitor 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: