Show JSON
{
"protocolVersion": "0.3.0",
"name": "Pricewick by CyberMax",
"description": "Competitor price and stock monitor API: track product pages on shops that publish their price in structured data (schema.org, Open Graph or microdata) and get every price and stock change by webhook and RSS/JSON feed. Free for 5 products; Seller $9.99/month for 50.",
"author": "CyberMax",
"wellKnownURI": "https://pricewick.cybermax-tools.workers.dev/.well-known/agent-card.json",
"url": "https://pricewick.cybermax-tools.workers.dev/a2a",
"version": "1.0.0",
"provider": {
"organization": "CyberMax",
"url": "https://cybermaxtools.com/"
},
"documentationUrl": "https://pricewick.cybermax-tools.workers.dev/llms.txt",
"iconUrl": "https://pricewick.cybermax-tools.workers.dev/icon.svg",
"supportsAuthenticatedExtendedCard": null,
"security": [
{},
{
"licenceKey": []
},
{
"licenceQuery": []
}
],
"securitySchemes": {
"licenceKey": {
"in": "header",
"name": "x-licence",
"type": "apiKey",
"description": "Pricewick key: a free key from POST /api/free (no sign-up) or a paid plan key (https://pricewick.cybermaxtools.com/#pricing). Optional for /api/check (5 checks a day without a key); required for watches, settings and feeds."
},
"licenceQuery": {
"in": "query",
"name": "key",
"type": "apiKey",
"description": "Same key as a query parameter."
}
},
"capabilities": {
"streaming": false,
"pushNotifications": false,
"stateTransitionHistory": false,
"extensions": null
},
"defaultInputModes": [
"application/json"
],
"defaultOutputModes": [
"application/json"
],
"skills": [
{
"id": "check_page",
"name": "Check a public product now",
"description": "GET /api/check?url=<public https page> fetches the page (robots.txt obeyed) and returns what Pricewick extracts from it, plus what changed since the last public check of that URL. 5 checks a day without a key, 20 with a free key, 1000 with a paid key.",
"tags": [
"price monitor",
"competitor prices",
"stock alerts",
"ecommerce",
"webhook"
],
"examples": [
"https://pricewick.cybermax-tools.workers.dev/api/check?url=https://www.example.com/"
],
"inputModes": [
"application/json"
],
"outputModes": [
"application/json"
]
},
{
"id": "free_key",
"name": "Get a free key",
"description": "POST /api/free returns a free key (no account, no sign-up) that can watch up to 5 products, checked every 24 hours.",
"tags": [
"price monitor",
"competitor prices",
"stock alerts",
"ecommerce",
"webhook"
],
"examples": [],
"inputModes": [
"application/json"
],
"outputModes": [
"application/json"
]
},
{
"id": "manage_watches",
"name": "Watch products for changes",
"description": "GET/POST /api/watches and DELETE /api/watches/<id> (key required): list, add or remove watched products within your plan's limit.",
"tags": [
"price monitor",
"competitor prices",
"stock alerts",
"ecommerce",
"webhook"
],
"examples": [],
"inputModes": [
"application/json"
],
"outputModes": [
"application/json"
]
},
{
"id": "change_feed",
"name": "Read your change feed or set a webhook",
"description": "GET /feed.json or /feed.rss?key=<key> returns the changes found on your watched pages; POST /api/settings {\"webhook\": url} sends each change to Slack, Discord, Zapier, Make or n8n.",
"tags": [
"price monitor",
"competitor prices",
"stock alerts",
"ecommerce",
"webhook"
],
"examples": [],
"inputModes": [
"application/json"
],
"outputModes": [
"application/json"
]
},
{
"id": "agent_check_page",
"name": "MCP/A2A: check a page now",
"description": "MCP tool check_page at /mcp (streamable HTTP) and A2A message/send at /a2a: send a public product page URL, get the price/stock read now and the change since the last public check. Same free limits as /api/check.",
"tags": [
"price monitor",
"competitor prices",
"stock alerts",
"ecommerce",
"webhook"
],
"examples": [],
"inputModes": [
"application/json"
],
"outputModes": [
"application/json"
]
}
],
"conformance": true,
"conformance_errors": null,
"homepage": null,
"repository": null,
"license": null,
"pricing": null,
"contact": null,
"id": "66ab42a8-585f-4bee-a7a9-89ab49b13687",
"category": "data-analytics",
"category_secondary": null
}