📉 SaaS Vendor Pricing Monitor
Pricing
from $10.00 / 1,000 results
📉 SaaS Vendor Pricing Monitor
Track hidden subscription cost hikes and plan changes across your software stack. Extract exact previous vs current prices for contract renewal leverage.
📉 SaaS Vendor Pricing Monitor
Pricing
from $10.00 / 1,000 results
Track hidden subscription cost hikes and plan changes across your software stack. Extract exact previous vs current prices for contract renewal leverage.
You can access the 📉 SaaS Vendor Pricing 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": "Rheb7nod7VrpaLssV" }, "servers": [ { "url": "https://api.apify.com/v2" } ], "paths": { "/acts/taroyamada~vendor-change-monitor/run-sync-get-dataset-items": { "post": { "operationId": "run-sync-get-dataset-items-taroyamada-vendor-change-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/taroyamada~vendor-change-monitor/runs": { "post": { "operationId": "runs-sync-taroyamada-vendor-change-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/taroyamada~vendor-change-monitor/run-sync": { "post": { "operationId": "run-sync-taroyamada-vendor-change-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": [ "vendors" ], "properties": { "vendors": { "title": "Vendors to watch (starter: 1 vendor, advanced: 2-3 vendors)", "type": "array", "description": "Starter / free path: begin with exactly 1 vendor and only pricing + terms pages. Advanced path: expand to 2-3 vendors and add privacy / DPA / security / status / changelog packs after the first recurring diff proves value." }, "requestTimeoutSeconds": { "title": "Request timeout (seconds)", "minimum": 5, "maximum": 120, "type": "integer", "description": "HTTP request timeout per monitored pricing, terms, policy, status, or changelog page.", "default": 30 }, "userAgent": { "title": "Custom User-Agent", "type": "string", "description": "Optional User-Agent header for monitored requests." }, "maxChars": { "title": "Global max chars per page", "minimum": 1000, "maximum": 200000, "type": "integer", "description": "Upper bound for extracted text length per monitored page.", "default": 30000 }, "delivery": { "title": "Delivery mode", "enum": [ "dataset", "webhook", "email" ], "type": "string", "description": "Starter / free path: use dataset delivery. Advanced path: move to webhook or email once the same vendor digests should reach a team automatically.", "default": "dataset" }, "datasetMode": { "title": "Dataset mode (baseline vs alerts)", "enum": [ "action_needed", "changes_only", "all" ], "type": "string", "description": "Use changes_only for the starter baseline and first recurring proof, action_needed for routed buyer alerts, or all for advanced portfolio review.", "default": "changes_only" }, "webhookUrl": { "title": "Webhook URL", "type": "string", "description": "Required when delivery is webhook. Best used after the actor proves value with a changed vendor digest." }, "notifyOnNoChange": { "title": "Notify even if no change", "type": "boolean", "description": "Advanced delivery noise control. When false, webhook delivery skips when there are no changed vendor digests and no action-needed alerts.", "default": false }, "snapshotKey": { "title": "Recurring monitor key", "type": "string", "description": "Keep this stable. The first run seeds the baseline; the second run proves recurring value. Advanced expansion usually keeps the same key while adding more vendors or delivery.", "default": "vendor-pricing-terms-watch" }, "diffMode": { "title": "Diff mode (pricing + policy detail)", "enum": [ "line_summary", "hash_only" ], "type": "string", "description": "Use line_summary for the starter readable proof, or hash_only when you only need lightweight alerting across broader coverage.", "default": "line_summary" }, "summaryMaxLines": { "title": "Max diff lines per page", "minimum": 5, "maximum": 50, "type": "integer", "description": "Maximum added and removed lines retained per page so pricing and policy diffs stay readable.", "default": 12 }, "concurrency": { "title": "Concurrency", "minimum": 1, "maximum": 10, "type": "integer", "description": "Starter runs usually stay at 1-2. Raise only after the recurring monitor is stable.", "default": 3 }, "batchDelayMs": { "title": "Inter-batch delay (ms)", "minimum": 0, "maximum": 10000, "type": "integer", "description": "Advanced tuning to reduce rate-limit pressure between page-processing batches.", "default": 500 }, "nowIso": { "title": "Override current time (ISO)", "type": "string", "description": "Optional deterministic timestamp override." }, "dryRun": { "title": "Dry run", "type": "boolean", "description": "Preview the pricing / terms / policy monitor without persisting snapshots or sending delivery alerts. Leave false when you want the first baseline to count.", "default": false } } }, "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 📉 SaaS Vendor Pricing 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: