Certified end-to-end workflows
| Workflow | Outcome | Access and surfaces | Steps |
|---|---|---|---|
| Verify the staging price-search surface | Prove the authenticated catalog is reachable without mutation. | /dashboard/realtime · portal:read · catalog:read | Search the catalog |
| Search and inspect a current comparison | Resolve a canonical product and inspect its current delivered offers. | /dashboard/realtime · portal:read · catalog:read | Search products → Inspect current offers |
| Create, update, and delete a price watch | Manage the complete lifecycle of a synthetic price watch. | /dashboard/realtime · portal:read · watchlists:write | Create the watch → Pause the watch → Delete the watch |
| Diagnose a missing product | Return typed not-found evidence without creating a watch. | /dashboard/realtime · portal:read · catalog:read | Read the missing product |
| Verify connected.catalog | Verify the operation contract with deterministic synthetic data. | /dashboard/realtime · portal:read · catalog:read | Execute connected.catalog |
| Verify connected.product | Verify the operation contract with deterministic synthetic data. | /dashboard/realtime · portal:read · catalog:read | Execute connected.product |
| Verify connected.history | Verify the operation contract with deterministic synthetic data. | /dashboard/realtime · portal:read · catalog:read | Execute connected.history |
| Verify merchant.catalog.import | Verify the operation contract with deterministic synthetic data. | /dashboard/realtime · portal:read · merchant:write | Execute merchant.catalog.import |
| Verify merchant.coverage | Verify the operation contract with deterministic synthetic data. | /dashboard/realtime · portal:read · intelligence:read | Execute merchant.coverage |
| Verify products.resolve | Verify the operation contract with deterministic synthetic data. | /dashboard/realtime · portal:read · catalog:read | Execute products.resolve |
| Verify offers.batch | Verify the operation contract with deterministic synthetic data. | /dashboard/realtime · portal:read · catalog:read | Execute offers.batch |
| Verify watchlists.batch | Verify the operation contract with deterministic synthetic data. | /dashboard/realtime · portal:read · watchlists:write | Execute watchlists.batch |
| Verify webhooks.metrics | Verify the operation contract with deterministic synthetic data. | /dashboard/realtime · portal:read · webhooks:write | Execute webhooks.metrics |
| Verify webhooks.audit | Verify the operation contract with deterministic synthetic data. | /dashboard/realtime · portal:read · webhooks:write | Execute webhooks.audit |
| Verify webhooks.test | Verify the operation contract with deterministic synthetic data. | /dashboard/realtime · portal:read · webhooks:write | Execute webhooks.test |
| Verify webhooks.retry | Verify the operation contract with deterministic synthetic data. | /dashboard/realtime · portal:read · webhooks:write | Execute webhooks.retry |
| Verify webhooks.list | Verify the operation contract with deterministic synthetic data. | /dashboard/realtime · portal:read · webhooks:write | Execute webhooks.list |
| Verify webhooks.create | Verify the operation contract with deterministic synthetic data. | /dashboard/realtime · portal:read · webhooks:write | Execute webhooks.create |
| Verify webhooks.update | Verify the operation contract with deterministic synthetic data. | /dashboard/realtime · portal:read · webhooks:write | Execute webhooks.update |
| Verify webhooks.delete | Verify the operation contract with deterministic synthetic data. | /dashboard/realtime · portal:read · webhooks:write | Execute webhooks.delete |
| Verify webhooks.rotation.prepare | Verify the operation contract with deterministic synthetic data. | /dashboard/realtime · portal:read · webhooks:write | Execute webhooks.rotation.prepare |
| Verify webhooks.rotation.activate | Verify the operation contract with deterministic synthetic data. | /dashboard/realtime · portal:read · webhooks:write | Execute webhooks.rotation.activate |
| Verify webhooks.rotation.cancel | Verify the operation contract with deterministic synthetic data. | /dashboard/realtime · portal:read · webhooks:write | Execute webhooks.rotation.cancel |
| Verify webhooks.incident.acknowledge | Verify the operation contract with deterministic synthetic data. | /dashboard/realtime · portal:read · webhooks:write | Execute webhooks.incident.acknowledge |
| Verify webhooks.deliveries | Verify the operation contract with deterministic synthetic data. | /dashboard/realtime · portal:read · webhooks:write | Execute webhooks.deliveries |
| Verify sources.snapshot | Verify the operation contract with deterministic synthetic data. | /dashboard/realtime · portal:read · sources:write | Execute sources.snapshot |
| Verify pricing.recommendations | Verify the operation contract with deterministic synthetic data. | /dashboard/realtime · portal:read · intelligence:read | Execute pricing.recommendations |
| Verify assortment.opportunities | Verify the operation contract with deterministic synthetic data. | /dashboard/realtime · portal:read · intelligence:read | Execute assortment.opportunities |
| Verify sourcing.options | Verify the operation contract with deterministic synthetic data. | /dashboard/realtime · portal:read · intelligence:read | Execute sourcing.options |
| Verify campaigns.signals | Verify the operation contract with deterministic synthetic data. | /dashboard/realtime · portal:read · intelligence:read | Execute campaigns.signals |
| Verify comparisons.create | Verify the operation contract with deterministic synthetic data. | /dashboard/realtime · portal:read · compare:read | Execute comparisons.create |
| Verify products.history | Verify the operation contract with deterministic synthetic data. | /dashboard/realtime · portal:read · catalog:read | Execute products.history |
| Verify watchlists.list | Verify the operation contract with deterministic synthetic data. | /dashboard/realtime · portal:read · catalog:read | Execute watchlists.list |
Verify the staging price-search surface
- 1Search the catalog
Search and inspect a current comparison
- 1Search products
- 2Inspect current offers
Create, update, and delete a price watch
- 1Create the watch
- 2Pause the watch
- 3Delete the watch
Diagnose a missing product
- 1Read the missing product
Verify connected.catalog
- 1Execute connected.catalog
Verify connected.product
- 1Execute connected.product
Verify connected.history
- 1Execute connected.history
Verify merchant.catalog.import
- 1Execute merchant.catalog.import
Verify merchant.coverage
- 1Execute merchant.coverage
Verify products.resolve
- 1Execute products.resolve
Verify offers.batch
- 1Execute offers.batch
Verify watchlists.batch
- 1Execute watchlists.batch
Verify webhooks.metrics
- 1Execute webhooks.metrics
Verify webhooks.audit
- 1Execute webhooks.audit
Verify webhooks.test
- 1Execute webhooks.test
Verify webhooks.retry
- 1Execute webhooks.retry
Verify webhooks.list
- 1Execute webhooks.list
Verify webhooks.create
- 1Execute webhooks.create
Verify webhooks.update
- 1Execute webhooks.update
Verify webhooks.delete
- 1Execute webhooks.delete
Verify webhooks.rotation.prepare
- 1Execute webhooks.rotation.prepare
Verify webhooks.rotation.activate
- 1Execute webhooks.rotation.activate
Verify webhooks.rotation.cancel
- 1Execute webhooks.rotation.cancel
Verify webhooks.incident.acknowledge
- 1Execute webhooks.incident.acknowledge
Verify webhooks.deliveries
- 1Execute webhooks.deliveries
Verify sources.snapshot
- 1Execute sources.snapshot
Verify pricing.recommendations
- 1Execute pricing.recommendations
Verify assortment.opportunities
- 1Execute assortment.opportunities
Verify sourcing.options
- 1Execute sourcing.options
Verify campaigns.signals
- 1Execute campaigns.signals
Verify comparisons.create
- 1Execute comparisons.create
Verify products.history
- 1Execute products.history
Verify watchlists.list
- 1Execute watchlists.list
search-to-current-comparison · curltemplate
Example trust: templateContains generated placeholder values; replace them before sending.
#!/usr/bin/env bash
set -euo pipefail
: "${API_KEY:?API_KEY is required}"
API_BASE_URL="${API_BASE_URL:-https://api.example.com}"
# searchProducts
payload=$(curl --fail-with-body --retry 0 --retry-all-errors -sS -X GET "${API_BASE_URL}/v1/search" -H "Authorization: Bearer ${API_KEY}" -H 'Content-Type: application/json')
canonicalProductId=$(jq -r ".items.0.canonical_product_id" <<<"${payload}")
# getProductComparison
payload=$(curl --fail-with-body --retry 0 --retry-all-errors -sS -X GET "${API_BASE_URL}/v1/products/${canonicalProductId}" -H "Authorization: Bearer ${API_KEY}" -H 'Content-Type: application/json')create-update-delete-price-watch · curltemplate
Example trust: templateContains generated placeholder values; replace them before sending.
#!/usr/bin/env bash
set -euo pipefail
: "${API_KEY:?API_KEY is required}"
API_BASE_URL="${API_BASE_URL:-https://api.example.com}"
# createPriceWatch
payload=$(curl --fail-with-body --retry 0 --retry-all-errors -sS -X POST "${API_BASE_URL}/v1/watchlists" -H "Authorization: Bearer ${API_KEY}" -H 'Content-Type: application/json' --data '{"canonical_product_id":"headphones-docs-fixture","target_price":199,"channel":"email","destination":"docs-fixture@example.com"}')
watchId=$(jq -r ".id" <<<"${payload}")
# updatePriceWatch
payload=$(curl --fail-with-body --retry 0 --retry-all-errors -sS -X PATCH "${API_BASE_URL}/v1/watchlists/${watchId}" -H "Authorization: Bearer ${API_KEY}" -H 'Content-Type: application/json' --data '{"status":"paused"}')
# deletePriceWatch
payload=$(curl --fail-with-body --retry 0 --retry-all-errors -sS -X DELETE "${API_BASE_URL}/v1/watchlists/${watchId}" -H "Authorization: Bearer ${API_KEY}" -H 'Content-Type: application/json')