Syntalic — Pricing Intelligence API — MPP Grade A
On-chain Activity
Compliance Checks
1 issue
- OpenAPI doc exceeds 64KB limit (79542 bytes)
Paid Operations (13)
GET /v1/shopper/best-price 0.01 USDC.e
Find the lowest current price for a product across Amazon, Walmart, Costco, Home Depot, Nordstrom, and IKEA in US and Canada. Returns the cheapest option plus other retailer prices for comparison.
- Amount
- 0.01 (raw 10000)
- Currency
- USDC.e
- Method
- tempo
- Intent
- charge
- 402 Declared
- Yes
methods: [map[amount:10000 currency:0x20c000000000000000000000b9537d11c60e8b50 decimals:6 intent:charge method:tempo role:primary settlement:Tempo Allegro USDC.e]] price: map[amount:0.010000 currency:USD mode:fixed] protocols: [map[x402:map[]] map[mpp:map[amount:10000 currency:USDC intent:charge method:tempo recipient:0xe2e662cF219025AFC0C9Bf850b6a2B0a0b5517fe]]]
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| q | query | string | Yes | Search query (product name, keyword, or category term) |
| country | query | string | No | Country (us or ca) |
| retailer | query | string | No | Filter to a specific retailer |
| limit | query | integer | No | Max results to return (default 10, max 50) |
Input Schema
| Field | Type | Required | Description |
|---|---|---|---|
| country | string | No |
Country (us or ca)
enum: us, ca default: us
|
| limit | integer | No |
Max results to return (default 10, max 50)
default: 10
|
| q | string | Yes | Search query (product name, keyword, or category term) |
| retailer | string | No |
Filter to a specific retailer
enum: amazon, walmart, costco, homedepot, nordstrom, ikea |
Response Schema (200)
| Field | Type | Description |
|---|---|---|
| best_price | object | - |
| country | string | - |
| currency | string | - |
| other_prices | array[object] | - |
| query | string | - |
GET /v1/shopper/price-history 0.01 USDC.e
Get historical price observations for a product within a date range. Returns current price, period low/high/avg, trend (rising/falling/stable), good-deal flag, and an observation time-series for charting.
- Amount
- 0.01 (raw 10000)
- Currency
- USDC.e
- Method
- tempo
- Intent
- charge
- 402 Declared
- Yes
methods: [map[amount:10000 currency:0x20c000000000000000000000b9537d11c60e8b50 decimals:6 intent:charge method:tempo role:primary settlement:Tempo Allegro USDC.e]] price: map[amount:0.010000 currency:USD mode:fixed] protocols: [map[x402:map[]] map[mpp:map[amount:10000 currency:USDC intent:charge method:tempo recipient:0xe2e662cF219025AFC0C9Bf850b6a2B0a0b5517fe]]]
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| q | query | string | Yes | Search query (product name, keyword, or category term) |
| country | query | string | No | Country (us or ca) |
| retailer | query | string | No | Filter to a specific retailer |
| from | query | string | No | Start date (ISO 8601, defaults to 30 days ago) |
| to | query | string | No | End date (ISO 8601, defaults to now) |
Input Schema
| Field | Type | Required | Description |
|---|---|---|---|
| country | string | No |
Country (us or ca)
enum: us, ca default: us
|
| from | string (date) | No | Start date (ISO 8601, defaults to 30 days ago) |
| q | string | Yes | Search query (product name, keyword, or category term) |
| retailer | string | No |
Filter to a specific retailer
enum: amazon, walmart, costco, homedepot, nordstrom, ikea |
| to | string (date) | No | End date (ISO 8601, defaults to now) |
Response Schema (200)
| Field | Type | Description |
|---|---|---|
| history | array[object] | - |
| query | string | - |
GET /v1/shopper/deal-finder 0.01 USDC.e
Discover actively-promoted discounted products in a category above a minimum discount threshold. Returns deals ranked by discount depth with price, list price, and retailer.
- Amount
- 0.01 (raw 10000)
- Currency
- USDC.e
- Method
- tempo
- Intent
- charge
- 402 Declared
- Yes
methods: [map[amount:10000 currency:0x20c000000000000000000000b9537d11c60e8b50 decimals:6 intent:charge method:tempo role:primary settlement:Tempo Allegro USDC.e]] price: map[amount:0.010000 currency:USD mode:fixed] protocols: [map[x402:map[]] map[mpp:map[amount:10000 currency:USDC intent:charge method:tempo recipient:0xe2e662cF219025AFC0C9Bf850b6a2B0a0b5517fe]]]
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| category | query | string | Yes | Product category (e.g., electronics, grocery, beauty). Fuzzy human-readable input — the resolver maps it through tier 1-4 (id → exact name → trigram → embedding kNN) to a canonical category_id. Pair with `category_id` if you have a deterministic id from a prior call. |
| country | query | string | No | Country (us or ca) |
| retailer | query | string | No | Filter to a specific retailer |
| min_discount_pct | query | integer | No | Minimum discount percentage (default 10) |
| limit | query | integer | No | Max results to return (default 20, max 50) |
Input Schema
| Field | Type | Required | Description |
|---|---|---|---|
| category | string | Yes | Product category (e.g., electronics, grocery, beauty). Fuzzy human-readable input — the resolver maps it through tier 1-4 (id → exact name → trigram → embedding kNN) to a canonical category_id. Pair with `category_id` if you have a deterministic id from a prior call. |
| country | string | No |
Country (us or ca)
enum: us, ca default: us
|
| limit | integer | No |
Max results to return (default 20, max 50)
default: 20
|
| min_discount_pct | integer | No |
Minimum discount percentage (default 10)
default: 10
|
| retailer | string | No |
Filter to a specific retailer
enum: amazon, walmart, costco, homedepot, nordstrom, ikea |
Response Schema (200)
| Field | Type | Description |
|---|---|---|
| category | string | - |
| deals | array[object] | - |
GET /v1/shopper/price-drop-alert 0.01 USDC.e
Check whether a product's current price is below its rolling average within a configurable lookback window. Returns current price vs. the average across the window plus the lowest-seen price and date. Response field `avg_price_last_30d` is a fixed name for backwards compatibility; the value is always computed across the configured `lookback_days` window.
- Amount
- 0.01 (raw 10000)
- Currency
- USDC.e
- Method
- tempo
- Intent
- charge
- 402 Declared
- Yes
methods: [map[amount:10000 currency:0x20c000000000000000000000b9537d11c60e8b50 decimals:6 intent:charge method:tempo role:primary settlement:Tempo Allegro USDC.e]] price: map[amount:0.010000 currency:USD mode:fixed] protocols: [map[x402:map[]] map[mpp:map[amount:10000 currency:USDC intent:charge method:tempo recipient:0xe2e662cF219025AFC0C9Bf850b6a2B0a0b5517fe]]]
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| q | query | string | Yes | Search query (product name, keyword, or category term) |
| country | query | string | No | Country (us or ca) |
| retailer | query | string | No | Filter to a specific retailer |
| lookback_days | query | integer | No | Days to look back for price drops (default 30) |
Input Schema
| Field | Type | Required | Description |
|---|---|---|---|
| country | string | No |
Country (us or ca)
enum: us, ca default: us
|
| lookback_days | integer | No |
Days to look back for price drops (default 30)
default: 30
|
| q | string | Yes | Search query (product name, keyword, or category term) |
| retailer | string | No |
Filter to a specific retailer
enum: amazon, walmart, costco, homedepot, nordstrom, ikea |
Response Schema (200)
| Field | Type | Description |
|---|---|---|
| drops | array[object] | - |
| query | string | - |
GET /v1/marketing/competitive-landscape 0.01 USDC.e
View every product and its current pricing within a category across retailers. Sortable by price, rating, or review count for competitive benchmarking. Cursor-paginated.
- Amount
- 0.01 (raw 10000)
- Currency
- USDC.e
- Method
- tempo
- Intent
- charge
- 402 Declared
- Yes
methods: [map[amount:10000 currency:0x20c000000000000000000000b9537d11c60e8b50 decimals:6 intent:charge method:tempo role:primary settlement:Tempo Allegro USDC.e]] price: map[amount:0.010000 currency:USD mode:fixed] protocols: [map[x402:map[]] map[mpp:map[amount:10000 currency:USDC intent:charge method:tempo recipient:0xe2e662cF219025AFC0C9Bf850b6a2B0a0b5517fe]]]
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| category | query | string | Yes | Product category (e.g., electronics, grocery, beauty). Fuzzy human-readable input — the resolver maps it through tier 1-4 (id → exact name → trigram → embedding kNN) to a canonical category_id. Pair with `category_id` if you have a deterministic id from a prior call. |
| country | query | string | No | Country (us or ca) |
| retailer | query | string | No | Filter to a specific retailer |
| sort_by | query | string | No | Sort order |
| limit | query | integer | No | Max results to return (default 20, max 50) |
Input Schema
| Field | Type | Required | Description |
|---|---|---|---|
| category | string | Yes | Product category (e.g., electronics, grocery, beauty). Fuzzy human-readable input — the resolver maps it through tier 1-4 (id → exact name → trigram → embedding kNN) to a canonical category_id. Pair with `category_id` if you have a deterministic id from a prior call. |
| country | string | No |
Country (us or ca)
enum: us, ca default: us
|
| limit | integer | No |
Max results to return (default 20, max 50)
default: 20
|
| retailer | string | No |
Filter to a specific retailer
enum: amazon, walmart, costco, homedepot, nordstrom, ikea |
| sort_by | string | No |
Sort order
enum: price_asc, price_desc, rating, reviews default: price_asc
|
Response Schema (200)
{
"type": "object"
}
GET /v1/marketing/brand-tracker 0.01 USDC.e
Track a brand's average/min/max price, product count, in-stock count, and promo count day-by-day across a date range.
- Amount
- 0.01 (raw 10000)
- Currency
- USDC.e
- Method
- tempo
- Intent
- charge
- 402 Declared
- Yes
methods: [map[amount:10000 currency:0x20c000000000000000000000b9537d11c60e8b50 decimals:6 intent:charge method:tempo role:primary settlement:Tempo Allegro USDC.e]] price: map[amount:0.010000 currency:USD mode:fixed] protocols: [map[x402:map[]] map[mpp:map[amount:10000 currency:USDC intent:charge method:tempo recipient:0xe2e662cF219025AFC0C9Bf850b6a2B0a0b5517fe]]]
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| brand | query | string | Yes | Brand name (e.g., Sony, Samsung, Nike) |
| country | query | string | No | Country (us or ca) |
| from | query | string | No | Start date (ISO 8601, defaults to 30 days ago) |
| to | query | string | No | End date (ISO 8601, defaults to now) |
Input Schema
| Field | Type | Required | Description |
|---|---|---|---|
| brand | string | Yes | Brand name (e.g., Sony, Samsung, Nike) |
| country | string | No |
Country (us or ca)
enum: us, ca default: us
|
| from | string (date) | No | Start date (ISO 8601, defaults to 30 days ago) |
| to | string (date) | No | End date (ISO 8601, defaults to now) |
Response Schema (200)
{
"type": "object"
}
GET /v1/marketing/promo-intelligence 0.01 USDC.e
Analyze promotional activity within a category - promo frequency, average and max discount depth - over a date range. Pivot the breakdown with `aggregate_by`: default `brand` ranks brands within the category; `retailer` ranks retailers (use together with `brand=<name>` to answer 'which retailers run the deepest promos on Brand X in Category Y'). The response key mirrors the dimension: `brands: [...]` or `retailers: [...]`.
- Amount
- 0.01 (raw 10000)
- Currency
- USDC.e
- Method
- tempo
- Intent
- charge
- 402 Declared
- Yes
methods: [map[amount:10000 currency:0x20c000000000000000000000b9537d11c60e8b50 decimals:6 intent:charge method:tempo role:primary settlement:Tempo Allegro USDC.e]] price: map[amount:0.010000 currency:USD mode:fixed] protocols: [map[x402:map[]] map[mpp:map[amount:10000 currency:USDC intent:charge method:tempo recipient:0xe2e662cF219025AFC0C9Bf850b6a2B0a0b5517fe]]]
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| category | query | string | Yes | Product category (e.g., electronics, grocery, beauty). Fuzzy human-readable input — the resolver maps it through tier 1-4 (id → exact name → trigram → embedding kNN) to a canonical category_id. Pair with `category_id` if you have a deterministic id from a prior call. |
| country | query | string | No | Country (us or ca) |
| brand | query | string | No | Optional brand filter — limit aggregation to products of this brand (case-insensitive) |
| aggregate_by | query | string | No | Group-by dimension. `brand` (default) ranks brands within the category. `retailer` ranks retailers — pair with `brand` to answer 'which retailers run the deepest promos on Brand X'. |
| from | query | string | No | Start date (ISO 8601, defaults to 30 days ago) |
| to | query | string | No | End date (ISO 8601, defaults to now) |
Input Schema
| Field | Type | Required | Description |
|---|---|---|---|
| aggregate_by | string | No |
Group-by dimension. `brand` (default) ranks brands within the category. `retailer` ranks retailers — pair with `brand` to answer 'which retailers run the deepest promos on Brand X'.
enum: brand, retailer default: brand
|
| brand | string | No | Optional brand filter — limit aggregation to products of this brand (case-insensitive) |
| category | string | Yes | Product category (e.g., electronics, grocery, beauty). Fuzzy human-readable input — the resolver maps it through tier 1-4 (id → exact name → trigram → embedding kNN) to a canonical category_id. Pair with `category_id` if you have a deterministic id from a prior call. |
| country | string | No |
Country (us or ca)
enum: us, ca default: us
|
| from | string (date) | No | Start date (ISO 8601, defaults to 30 days ago) |
| to | string (date) | No | End date (ISO 8601, defaults to now) |
Response Schema (200)
{
"type": "object"
}
GET /v1/marketing/share-of-shelf 0.01 USDC.e
Measure each brand's market share within a category by product count. Shows digital shelf dominance.
- Amount
- 0.01 (raw 10000)
- Currency
- USDC.e
- Method
- tempo
- Intent
- charge
- 402 Declared
- Yes
methods: [map[amount:10000 currency:0x20c000000000000000000000b9537d11c60e8b50 decimals:6 intent:charge method:tempo role:primary settlement:Tempo Allegro USDC.e]] price: map[amount:0.010000 currency:USD mode:fixed] protocols: [map[x402:map[]] map[mpp:map[amount:10000 currency:USDC intent:charge method:tempo recipient:0xe2e662cF219025AFC0C9Bf850b6a2B0a0b5517fe]]]
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| category | query | string | Yes | Product category (e.g., electronics, grocery, beauty). Fuzzy human-readable input — the resolver maps it through tier 1-4 (id → exact name → trigram → embedding kNN) to a canonical category_id. Pair with `category_id` if you have a deterministic id from a prior call. |
| category_id | query | integer | No | Deterministic category id. When set, bypasses the fuzzy resolver cascade and uses tier 1 (id lookup) directly. Agents that learned a canonical id from a prior call's `resolved.category_id` should pin it here for round-trip stability. |
| country | query | string | No | Country (us or ca) |
Input Schema
| Field | Type | Required | Description |
|---|---|---|---|
| category | string | Yes | Product category (e.g., electronics, grocery, beauty). Fuzzy human-readable input — the resolver maps it through tier 1-4 (id → exact name → trigram → embedding kNN) to a canonical category_id. Pair with `category_id` if you have a deterministic id from a prior call. |
| category_id | integer | No | Deterministic category id. When set, bypasses the fuzzy resolver cascade and uses tier 1 (id lookup) directly. Agents that learned a canonical id from a prior call's `resolved.category_id` should pin it here for round-trip stability. |
| country | string | No |
Country (us or ca)
enum: us, ca default: us
|
Response Schema (200)
{
"type": "object"
}
GET /v1/marketing/price-positioning 0.01 USDC.e
Compare a brand's average price to the category average/median and classify positioning as premium, mid-range, or value.
- Amount
- 0.01 (raw 10000)
- Currency
- USDC.e
- Method
- tempo
- Intent
- charge
- 402 Declared
- Yes
methods: [map[amount:10000 currency:0x20c000000000000000000000b9537d11c60e8b50 decimals:6 intent:charge method:tempo role:primary settlement:Tempo Allegro USDC.e]] price: map[amount:0.010000 currency:USD mode:fixed] protocols: [map[x402:map[]] map[mpp:map[amount:10000 currency:USDC intent:charge method:tempo recipient:0xe2e662cF219025AFC0C9Bf850b6a2B0a0b5517fe]]]
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| brand | query | string | Yes | Brand name (e.g., Sony, Samsung, Nike) |
| country | query | string | No | Country (us or ca) |
| category | query | string | No | Product category (e.g., electronics, grocery, beauty). Fuzzy human-readable input — the resolver maps it through tier 1-4 (id → exact name → trigram → embedding kNN) to a canonical category_id. Pair with `category_id` if you have a deterministic id from a prior call. |
Input Schema
| Field | Type | Required | Description |
|---|---|---|---|
| brand | string | Yes | Brand name (e.g., Sony, Samsung, Nike) |
| category | string | No | Product category (e.g., electronics, grocery, beauty). Fuzzy human-readable input — the resolver maps it through tier 1-4 (id → exact name → trigram → embedding kNN) to a canonical category_id. Pair with `category_id` if you have a deterministic id from a prior call. |
| country | string | No |
Country (us or ca)
enum: us, ca default: us
|
Response Schema (200)
{
"type": "object"
}
GET /v1/analyst/inflation 0.02 USDC.e
Track category-level price inflation with configurable daily, weekly, or monthly granularity. Returns period-over-period change and overall change.
- Amount
- 0.02 (raw 20000)
- Currency
- USDC.e
- Method
- tempo
- Intent
- charge
- 402 Declared
- Yes
methods: [map[amount:20000 currency:0x20c000000000000000000000b9537d11c60e8b50 decimals:6 intent:charge method:tempo role:primary settlement:Tempo Allegro USDC.e]] price: map[amount:0.020000 currency:USD mode:fixed] protocols: [map[x402:map[]] map[mpp:map[amount:20000 currency:USDC intent:charge method:tempo recipient:0xe2e662cF219025AFC0C9Bf850b6a2B0a0b5517fe]]]
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| category | query | string | No | Product category (e.g., electronics, grocery, beauty). Fuzzy human-readable input — the resolver maps it through tier 1-4 (id → exact name → trigram → embedding kNN) to a canonical category_id. Pair with `category_id` if you have a deterministic id from a prior call. |
| category_id | query | integer | No | Deterministic category id. When set, bypasses the fuzzy resolver cascade and uses tier 1 (id lookup) directly. Agents that learned a canonical id from a prior call's `resolved.category_id` should pin it here for round-trip stability. |
| department | query | string | No | Coarse depth-1 BrowseNodes department label (e.g., 'Electronics', 'Grocery', 'Toys & Games'). Exact-match, case-sensitive Title Case. Optional alongside `category`; either parameter alone or both together are accepted. Use this for stable cross-agent queries where the leaf-level category is too noisy. |
| country | query | string | No | Country (us or ca) |
| from | query | string | No | Start date (ISO 8601, defaults to 30 days ago) |
| to | query | string | No | End date (ISO 8601, defaults to now) |
| granularity | query | string | No | Time granularity for the series |
Input Schema
| Field | Type | Required | Description |
|---|---|---|---|
| category | string | No | Product category (e.g., electronics, grocery, beauty). Fuzzy human-readable input — the resolver maps it through tier 1-4 (id → exact name → trigram → embedding kNN) to a canonical category_id. Pair with `category_id` if you have a deterministic id from a prior call. |
| category_id | integer | No | Deterministic category id. When set, bypasses the fuzzy resolver cascade and uses tier 1 (id lookup) directly. Agents that learned a canonical id from a prior call's `resolved.category_id` should pin it here for round-trip stability. |
| country | string | No |
Country (us or ca)
enum: us, ca default: us
|
| department | string | No | Coarse depth-1 BrowseNodes department label (e.g., 'Electronics', 'Grocery', 'Toys & Games'). Exact-match, case-sensitive Title Case. Optional alongside `category`; either parameter alone or both together are accepted. Use this for stable cross-agent queries where the leaf-level category is too noisy. |
| from | string (date) | No | Start date (ISO 8601, defaults to 30 days ago) |
| granularity | string | No |
Time granularity for the series
enum: daily, weekly, monthly default: weekly
|
| to | string (date) | No | End date (ISO 8601, defaults to now) |
Response Schema (200)
{
"type": "object"
}
GET /v1/analyst/price-dispersion 0.02 USDC.e
Analyze price spread within a category - mean, stddev, coefficient of variation, and percentiles (p10..p90) with IQR outlier exclusion.
- Amount
- 0.02 (raw 20000)
- Currency
- USDC.e
- Method
- tempo
- Intent
- charge
- 402 Declared
- Yes
methods: [map[amount:20000 currency:0x20c000000000000000000000b9537d11c60e8b50 decimals:6 intent:charge method:tempo role:primary settlement:Tempo Allegro USDC.e]] price: map[amount:0.020000 currency:USD mode:fixed] protocols: [map[x402:map[]] map[mpp:map[amount:20000 currency:USDC intent:charge method:tempo recipient:0xe2e662cF219025AFC0C9Bf850b6a2B0a0b5517fe]]]
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| category | query | string | No | Product category (e.g., electronics, grocery, beauty). Fuzzy human-readable input — the resolver maps it through tier 1-4 (id → exact name → trigram → embedding kNN) to a canonical category_id. Pair with `category_id` if you have a deterministic id from a prior call. |
| category_id | query | integer | No | Deterministic category id. When set, bypasses the fuzzy resolver cascade and uses tier 1 (id lookup) directly. Agents that learned a canonical id from a prior call's `resolved.category_id` should pin it here for round-trip stability. |
| department | query | string | No | Coarse depth-1 BrowseNodes department label (e.g., 'Electronics', 'Grocery', 'Toys & Games'). Exact-match, case-sensitive Title Case. Optional alongside `category`; either parameter alone or both together are accepted. Use this for stable cross-agent queries where the leaf-level category is too noisy. |
| country | query | string | No | Country (us or ca) |
Input Schema
| Field | Type | Required | Description |
|---|---|---|---|
| category | string | No | Product category (e.g., electronics, grocery, beauty). Fuzzy human-readable input — the resolver maps it through tier 1-4 (id → exact name → trigram → embedding kNN) to a canonical category_id. Pair with `category_id` if you have a deterministic id from a prior call. |
| category_id | integer | No | Deterministic category id. When set, bypasses the fuzzy resolver cascade and uses tier 1 (id lookup) directly. Agents that learned a canonical id from a prior call's `resolved.category_id` should pin it here for round-trip stability. |
| country | string | No |
Country (us or ca)
enum: us, ca default: us
|
| department | string | No | Coarse depth-1 BrowseNodes department label (e.g., 'Electronics', 'Grocery', 'Toys & Games'). Exact-match, case-sensitive Title Case. Optional alongside `category`; either parameter alone or both together are accepted. Use this for stable cross-agent queries where the leaf-level category is too noisy. |
Response Schema (200)
{
"type": "object"
}
GET /v1/analyst/retailer-index 0.02 USDC.e
Compute a normalized price index (retailer avg / category avg) for a specific retailer day-by-day versus its category baseline.
- Amount
- 0.02 (raw 20000)
- Currency
- USDC.e
- Method
- tempo
- Intent
- charge
- 402 Declared
- Yes
methods: [map[amount:20000 currency:0x20c000000000000000000000b9537d11c60e8b50 decimals:6 intent:charge method:tempo role:primary settlement:Tempo Allegro USDC.e]] price: map[amount:0.020000 currency:USD mode:fixed] protocols: [map[x402:map[]] map[mpp:map[amount:20000 currency:USDC intent:charge method:tempo recipient:0xe2e662cF219025AFC0C9Bf850b6a2B0a0b5517fe]]]
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| retailer | query | string | Yes | Retailer name (e.g., amazon, walmart) |
| country | query | string | No | Country (us or ca) |
| category | query | string | No | Product category (e.g., electronics, grocery, beauty). Fuzzy human-readable input — the resolver maps it through tier 1-4 (id → exact name → trigram → embedding kNN) to a canonical category_id. Pair with `category_id` if you have a deterministic id from a prior call. |
| category_id | query | integer | No | Deterministic category id. When set, bypasses the fuzzy resolver cascade and uses tier 1 (id lookup) directly. Agents that learned a canonical id from a prior call's `resolved.category_id` should pin it here for round-trip stability. |
| department | query | string | No | Coarse depth-1 BrowseNodes department label (e.g., 'Electronics', 'Grocery', 'Toys & Games'). Exact-match, case-sensitive Title Case. Optional alongside `category`; either parameter alone or both together are accepted. Use this for stable cross-agent queries where the leaf-level category is too noisy. |
| from | query | string | No | Start date (ISO 8601, defaults to 30 days ago) |
| to | query | string | No | End date (ISO 8601, defaults to now) |
Input Schema
| Field | Type | Required | Description |
|---|---|---|---|
| category | string | No | Product category (e.g., electronics, grocery, beauty). Fuzzy human-readable input — the resolver maps it through tier 1-4 (id → exact name → trigram → embedding kNN) to a canonical category_id. Pair with `category_id` if you have a deterministic id from a prior call. |
| category_id | integer | No | Deterministic category id. When set, bypasses the fuzzy resolver cascade and uses tier 1 (id lookup) directly. Agents that learned a canonical id from a prior call's `resolved.category_id` should pin it here for round-trip stability. |
| country | string | No |
Country (us or ca)
enum: us, ca default: us
|
| department | string | No | Coarse depth-1 BrowseNodes department label (e.g., 'Electronics', 'Grocery', 'Toys & Games'). Exact-match, case-sensitive Title Case. Optional alongside `category`; either parameter alone or both together are accepted. Use this for stable cross-agent queries where the leaf-level category is too noisy. |
| from | string (date) | No | Start date (ISO 8601, defaults to 30 days ago) |
| retailer | string | Yes | Retailer name (e.g., amazon, walmart) |
| to | string (date) | No | End date (ISO 8601, defaults to now) |
Response Schema (200)
{
"type": "object"
}
GET /v1/analyst/category-summary 0.02 USDC.e
High-level category statistics - product/brand/retailer counts, pricing (avg/min/max/median), avg rating, promo rate, in-stock rate, and top brands.
- Amount
- 0.02 (raw 20000)
- Currency
- USDC.e
- Method
- tempo
- Intent
- charge
- 402 Declared
- Yes
methods: [map[amount:20000 currency:0x20c000000000000000000000b9537d11c60e8b50 decimals:6 intent:charge method:tempo role:primary settlement:Tempo Allegro USDC.e]] price: map[amount:0.020000 currency:USD mode:fixed] protocols: [map[x402:map[]] map[mpp:map[amount:20000 currency:USDC intent:charge method:tempo recipient:0xe2e662cF219025AFC0C9Bf850b6a2B0a0b5517fe]]]
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| category | query | string | No | Product category (e.g., electronics, grocery, beauty). Fuzzy human-readable input — the resolver maps it through tier 1-4 (id → exact name → trigram → embedding kNN) to a canonical category_id. Pair with `category_id` if you have a deterministic id from a prior call. |
| category_id | query | integer | No | Deterministic category id. When set, bypasses the fuzzy resolver cascade and uses tier 1 (id lookup) directly. Agents that learned a canonical id from a prior call's `resolved.category_id` should pin it here for round-trip stability. |
| department | query | string | No | Coarse depth-1 BrowseNodes department label (e.g., 'Electronics', 'Grocery', 'Toys & Games'). Exact-match, case-sensitive Title Case. Optional alongside `category`; either parameter alone or both together are accepted. Use this for stable cross-agent queries where the leaf-level category is too noisy. |
| country | query | string | No | Country (us or ca) |
Input Schema
| Field | Type | Required | Description |
|---|---|---|---|
| category | string | No | Product category (e.g., electronics, grocery, beauty). Fuzzy human-readable input — the resolver maps it through tier 1-4 (id → exact name → trigram → embedding kNN) to a canonical category_id. Pair with `category_id` if you have a deterministic id from a prior call. |
| category_id | integer | No | Deterministic category id. When set, bypasses the fuzzy resolver cascade and uses tier 1 (id lookup) directly. Agents that learned a canonical id from a prior call's `resolved.category_id` should pin it here for round-trip stability. |
| country | string | No |
Country (us or ca)
enum: us, ca default: us
|
| department | string | No | Coarse depth-1 BrowseNodes department label (e.g., 'Electronics', 'Grocery', 'Toys & Games'). Exact-match, case-sensitive Title Case. Optional alongside `category`; either parameter alone or both together are accepted. Use this for stable cross-agent queries where the leaf-level category is too noisy. |
Response Schema (200)
{
"type": "object"
}
Payment Methods
- Methods
- tempo
- Intents
- charge
- Currencies (discovery)
- USDC.e
- Currency (challenge)
- USDC.e on Tempo Mainnet Presto (Tempo Mainnet Presto)
- Multiple Challenges
- No
Recipients
- 0xe2e662cF219025AFC0C9Bf850b6a2B0a0b5517fe
Per-endpoint breakdown
- GET /v1/marketing/brand-tracker
- 0xe2e662cF219025AFC0C9Bf850b6a2B0a0b5517fe
- GET /v1/marketing/competitive-landscape
- 0xe2e662cF219025AFC0C9Bf850b6a2B0a0b5517fe
- GET /v1/shopper/best-price
- 0xe2e662cF219025AFC0C9Bf850b6a2B0a0b5517fe
- GET /v1/shopper/deal-finder
- 0xe2e662cF219025AFC0C9Bf850b6a2B0a0b5517fe
- GET /v1/shopper/price-drop-alert
- 0xe2e662cF219025AFC0C9Bf850b6a2B0a0b5517fe
- GET /v1/shopper/price-history
- 0xe2e662cF219025AFC0C9Bf850b6a2B0a0b5517fe
Security
- TLS Version
- TLSv1.3
- Challenge ID Unique
- Yes
- Challenge ID Length
- 43
- Digest Binding
- -
Uptime
- Discovery
- Reachable (203ms)
- Challenge
- Reachable (667ms)
- Last Checked
Schema Completeness
- Paid Operations
- 13
- With Input Schema
- 13
- With Description
- 13
Documentation
- Homepage
- -
- API Reference
- -
- llms.txt
- -
Discovery
- OpenAPI URL
- https://api.crushrewards.dev/openapi.json
- OpenAPI Version
- 3.1.0
- Service Version
- 1.0.0
- Document Size
- 79542 bytes
- Document Hash
- 18e4418cebd9c5d72c0ae79f4b1d229ccc016177319a2fdf3684bd1b2915f326
Version History (51 snapshots)
- document hash changed (no semantic differences detected)
- document hash changed (no semantic differences detected)
- document hash changed (no semantic differences detected)
- document hash changed (no semantic differences detected)
- document hash changed (no semantic differences detected)
- document hash changed (no semantic differences detected)
- document hash changed (no semantic differences detected)
- price changed on GET /v1/analyst/category-summary: None → 20000
- payment method changed on GET /v1/analyst/category-summary: None → tempo
- price changed on GET /v1/analyst/inflation: None → 20000
- payment method changed on GET /v1/analyst/inflation: None → tempo
- price changed on GET /v1/analyst/price-dispersion: None → 20000
- payment method changed on GET /v1/analyst/price-dispersion: None → tempo
- price changed on GET /v1/analyst/retailer-index: None → 20000
- payment method changed on GET /v1/analyst/retailer-index: None → tempo
- price changed on GET /v1/marketing/brand-tracker: None → 10000
- payment method changed on GET /v1/marketing/brand-tracker: None → tempo
- price changed on GET /v1/marketing/competitive-landscape: None → 10000
- payment method changed on GET /v1/marketing/competitive-landscape: None → tempo
- price changed on GET /v1/marketing/price-positioning: None → 10000
- payment method changed on GET /v1/marketing/price-positioning: None → tempo
- price changed on GET /v1/marketing/promo-intelligence: None → 10000
- payment method changed on GET /v1/marketing/promo-intelligence: None → tempo
- price changed on GET /v1/marketing/share-of-shelf: None → 10000
- payment method changed on GET /v1/marketing/share-of-shelf: None → tempo
- price changed on GET /v1/shopper/best-price: None → 10000
- payment method changed on GET /v1/shopper/best-price: None → tempo
- price changed on GET /v1/shopper/deal-finder: None → 10000
- payment method changed on GET /v1/shopper/deal-finder: None → tempo
- price changed on GET /v1/shopper/price-drop-alert: None → 10000
- payment method changed on GET /v1/shopper/price-drop-alert: None → tempo
- price changed on GET /v1/shopper/price-history: None → 10000
- payment method changed on GET /v1/shopper/price-history: None → tempo
- document hash changed (no semantic differences detected)
- document hash changed (no semantic differences detected)
- document hash changed (no semantic differences detected)
- document hash changed (no semantic differences detected)
- price changed on GET /v1/analyst/category-summary: 20000 → None
- payment method changed on GET /v1/analyst/category-summary: tempo → None
- price changed on GET /v1/analyst/inflation: 20000 → None
- payment method changed on GET /v1/analyst/inflation: tempo → None
- price changed on GET /v1/analyst/price-dispersion: 20000 → None
- payment method changed on GET /v1/analyst/price-dispersion: tempo → None
- price changed on GET /v1/analyst/retailer-index: 20000 → None
- payment method changed on GET /v1/analyst/retailer-index: tempo → None
- price changed on GET /v1/marketing/brand-tracker: 10000 → None
- payment method changed on GET /v1/marketing/brand-tracker: tempo → None
- price changed on GET /v1/marketing/competitive-landscape: 10000 → None
- payment method changed on GET /v1/marketing/competitive-landscape: tempo → None
- price changed on GET /v1/marketing/price-positioning: 10000 → None
- payment method changed on GET /v1/marketing/price-positioning: tempo → None
- price changed on GET /v1/marketing/promo-intelligence: 10000 → None
- payment method changed on GET /v1/marketing/promo-intelligence: tempo → None
- price changed on GET /v1/marketing/share-of-shelf: 10000 → None
- payment method changed on GET /v1/marketing/share-of-shelf: tempo → None
- price changed on GET /v1/shopper/best-price: 10000 → None
- payment method changed on GET /v1/shopper/best-price: tempo → None
- price changed on GET /v1/shopper/deal-finder: 10000 → None
- payment method changed on GET /v1/shopper/deal-finder: tempo → None
- price changed on GET /v1/shopper/price-drop-alert: 10000 → None
- payment method changed on GET /v1/shopper/price-drop-alert: tempo → None
- price changed on GET /v1/shopper/price-history: 10000 → None
- payment method changed on GET /v1/shopper/price-history: tempo → None
Scan snapshots
| Date | Grade | Score | Response | Status |
|---|---|---|---|---|
| 2026-04-16 | B | 76% | 704ms | Up |
| 2026-04-17 | C | 66% | 290ms | Up |
| 2026-04-18 | C | 66% | 683ms | Up |
| 2026-04-19 | C | 66% | 255ms | Up |
| 2026-04-20 | C | 66% | 358ms | Up |
| 2026-04-21 | C | 66% | 266ms | Up |
| 2026-04-22 | C | 66% | 297ms | Up |
| 2026-04-23 | C | 66% | 252ms | Up |
| 2026-04-24 | C | 66% | 238ms | Up |
| 2026-04-25 | C | 66% | 265ms | Up |
| 2026-04-26 | C | 66% | 556ms | Up |
| 2026-04-27 | C | 66% | 747ms | Up |
| 2026-04-28 | C | 66% | 698ms | Up |
| 2026-04-29 | C | 66% | 231ms | Up |
| 2026-04-30 | C | 66% | 293ms | Up |
| 2026-05-01 | C | 66% | 239ms | Up |
| 2026-05-02 | C | 66% | 366ms | Up |
| 2026-05-03 | C | 66% | 194ms | Up |
| 2026-05-04 | C | 66% | 375ms | Up |
| 2026-05-05 | C | 66% | 205ms | Up |
| 2026-05-06 | C | 66% | 409ms | Up |
| 2026-05-07 | C | 66% | 275ms | Up |
| 2026-05-08 | A | 93% | 392ms | Up |
| 2026-05-09 | A | 93% | 214ms | Up |
| 2026-05-10 | A | 93% | 288ms | Up |
| 2026-05-11 | A | 93% | 202ms | Up |
| 2026-05-12 | A | 93% | 206ms | Up |
| 2026-05-13 | A | 93% | 155ms | Up |
| 2026-05-14 | A | 93% | 184ms | Up |
| 2026-05-15 | A | 93% | 387ms | Up |
| 2026-05-16 | A | 93% | 388ms | Up |
| 2026-05-17 | A | 93% | 199ms | Up |
| 2026-05-18 | A | 93% | 376ms | Up |
| 2026-05-19 | A | 93% | 342ms | Up |
| 2026-05-20 | A | 93% | 354ms | Up |
| 2026-05-21 | A | 93% | 324ms | Up |
| 2026-05-22 | A | 93% | 928ms | Up |
| 2026-05-23 | A | 93% | 367ms | Up |
| 2026-05-24 | A | 93% | 355ms | Up |
| 2026-05-25 | A | 93% | 158ms | Up |
| 2026-05-26 | A | 93% | 352ms | Up |
| 2026-05-27 | A | 93% | 193ms | Up |
| 2026-05-28 | A | 93% | 180ms | Up |
| 2026-05-29 | A | 93% | 348ms | Up |
| 2026-05-30 | A | 93% | 213ms | Up |
| 2026-05-31 | A | 93% | 184ms | Up |
| 2026-06-01 | A | 93% | 385ms | Up |
| 2026-06-02 | A | 93% | 356ms | Up |
| 2026-06-03 | A | 93% | 372ms | Up |
| 2026-06-04 | A | 93% | 372ms | Up |
| 2026-06-05 | A | 93% | 548ms | Up |