Generated quickstarts
| Operation | Method | Route | Example trust and verification |
|---|---|---|---|
| listConnectedProducts | GET | /v1/connected-catalog | template · docs-sandbox-ci |
| getConnectedProduct | GET | /v1/connected-catalog/{productId} | template · docs-sandbox-ci |
| getConnectedProductHistory | GET | /v1/connected-catalog/{productId}/history | template · docs-sandbox-ci |
| listWebhooks | GET | /v1/webhooks | template · docs-sandbox-ci |
| createWebhook | POST | /v1/webhooks | template · docs-sandbox-ci |
| updateWebhook | PATCH | /v1/webhooks/{webhook_id} | template · docs-sandbox-ci |
| deleteWebhook | DELETE | /v1/webhooks/{webhook_id} | template · docs-sandbox-ci |
| prepareWebhookSecretRotation | POST | /v1/webhooks/{webhook_id}/secret-rotation | template · docs-sandbox-ci |
| activateWebhookSecretRotation | POST | /v1/webhooks/{webhook_id}/secret-rotation/activate | template · docs-sandbox-ci |
| cancelWebhookSecretRotation | POST | /v1/webhooks/{webhook_id}/secret-rotation/cancel | template · docs-sandbox-ci |
| acknowledgeWebhookIncident | POST | /v1/webhooks/{webhook_id}/incidents/acknowledge | template · docs-sandbox-ci |
| listWebhookDeliveries | GET | /v1/webhook-deliveries | template · docs-sandbox-ci |
| searchProducts | GET | /v1/search | template · docs-sandbox-ci |
| compareProducts | GET | /v1/compare | template · docs-sandbox-ci |
| getProductComparison | GET | /v1/products/{canonical_product_id} | template · docs-sandbox-ci |
| getProductPriceHistory | GET | /v1/products/{canonical_product_id}/history | template · docs-sandbox-ci |
| listPriceWatches | GET | /v1/watchlists | template · docs-sandbox-ci |
| createPriceWatch | POST | /v1/watchlists | template · docs-sandbox-ci |
| updatePriceWatch | PATCH | /v1/watchlists/{watch_id} | template · docs-sandbox-ci |
| deletePriceWatch | DELETE | /v1/watchlists/{watch_id} | contract-derived · docs-sandbox-ci |
| listPricingRecommendations | GET | /v1/pricing/recommendations | template · docs-sandbox-ci |
| listAssortmentOpportunities | GET | /v1/assortment/opportunities | template · docs-sandbox-ci |
| listSourcingOptions | GET | /v1/sourcing/options | template · docs-sandbox-ci |
| listCampaignSignals | GET | /v1/campaigns/signals | template · docs-sandbox-ci |
| putSourceSnapshot | PUT | /v1/sources/{source_id}/snapshot | template · docs-sandbox-ci |
| getWebhookMetrics | GET | /v1/webhook-metrics | template · docs-sandbox-ci |
| listWebhookAudit | GET | /v1/webhook-audit | template · docs-sandbox-ci |
| testWebhook | POST | /v1/webhooks/{webhook_id}/test | template · docs-sandbox-ci |
| retryWebhookDelivery | POST | /v1/webhook-deliveries/{delivery_id}/retry | template · docs-sandbox-ci |
| importMerchantCatalog | PUT | /v1/merchant/catalog | template · docs-sandbox-ci |
| getMerchantCoverage | GET | /v1/merchant/coverage | template · docs-sandbox-ci |
| resolveProducts | POST | /v1/products/resolve | template · docs-sandbox-ci |
| getOffersBatch | POST | /v1/offers/batch | template · docs-sandbox-ci |
| managePriceWatchesBatch | POST | /v1/watchlists/batch | template · docs-sandbox-ci |
listConnectedProducts · curltemplate
Example trust: templateContains generated placeholder values; replace them before sending.
curl -X GET 'https://hintadata.fi/v1/connected-catalog' \
-H "Authorization: Bearer $API_KEY" \
-H 'Content-Type: application/json'GET
/v1/connected-catalogAuthentication required
listConnectedProducts
listConnectedProductsCode examples
cURLillustrative
Example trust: illustrativeShows the shape or idea; do not use it unchanged in production.
curl --fail-with-body -X GET "/v1/connected-catalog" \
-H "Authorization: Bearer $HINTADATA_API_KEY"Responses1
200Response
{
"items": [
{
"canonical_product_id": "example",
"title": "example",
"brand": "example",
"variant": "example",
"gtin": "example",
"match_status": "matched",
"match_method": "exact_gtin"
}
],
"total": 1,
"limit": 1,
"next_cursor": "example"
}getConnectedProduct · curltemplate
Example trust: templateContains generated placeholder values; replace them before sending.
curl -X GET 'https://hintadata.fi/v1/connected-catalog/a' \
-H "Authorization: Bearer $API_KEY" \
-H 'Content-Type: application/json'GET
/v1/connected-catalog/{productId}Authentication required
getConnectedProduct
getConnectedProductCode examples
cURLillustrative
Example trust: illustrativeShows the shape or idea; do not use it unchanged in production.
curl --fail-with-body -X GET "/v1/connected-catalog/{productId}" \
-H "Authorization: Bearer $HINTADATA_API_KEY"Responses1
200Response
{
"canonical_product_id": "example",
"title": "example",
"brand": "example",
"variant": "example",
"gtin": "example",
"match_status": "matched",
"match_method": "exact_gtin",
"offers": [
{
"connection_id": "example",
"external_id": "example",
"price": "example",
"delivery_cost": "example",
"delivered_price": "example",
"currency": "example",
"tax_included": true,
"source": {
"name": "example",
"provider": "example",
"source_kind": "own_store",
"environment": "test",
"data_mode": "live"
},
"observed_at": "2026-01-01T00:00:00Z",
"freshness": "fresh",
"availability": "in_stock",
"price_basis": "current",
"archived": true
}
],
"comparison_groups": [
{
"currency": "example",
"tax_included": true,
"environment": "test",
"data_mode": "live",
"offer_count": 1,
"lowest_item_price": "example",
"lowest_delivered_price": "example",
"known_delivery_count": 1
}
],
"freshness_max_hours": 1
}getConnectedProductHistory · curltemplate
Example trust: templateContains generated placeholder values; replace them before sending.
curl -X GET 'https://hintadata.fi/v1/connected-catalog/a/history' \
-H "Authorization: Bearer $API_KEY" \
-H 'Content-Type: application/json'GET
/v1/connected-catalog/{productId}/historyAuthentication required
getConnectedProductHistory
getConnectedProductHistoryCode examples
cURLillustrative
Example trust: illustrativeShows the shape or idea; do not use it unchanged in production.
curl --fail-with-body -X GET "/v1/connected-catalog/{productId}/history" \
-H "Authorization: Bearer $HINTADATA_API_KEY"Responses1
200Response
{
"items": [
{
"connection_id": "example",
"external_id": "example",
"product_id": "example",
"revision": 1,
"observed_at": "2026-01-01T00:00:00Z",
"received_at": "2026-01-01T00:00:00Z",
"kind": "observed",
"price": "example",
"delivered_price": "example",
"currency": "example",
"tax_included": true,
"environment": "test",
"data_mode": "live",
"source_kind": "own_store"
}
],
"next_cursor": "example",
"order": "observed",
"coverage": {
"event_count": 1,
"first_observed_at": "2026-01-01T00:00:00Z",
"last_observed_at": "2026-01-01T00:00:00Z"
},
"gaps": [
{
"connection_id": "example",
"status": "assessed",
"interpolated": false,
"events_truncated": true,
"event_count": 1
}
]
}listWebhooks · curltemplate
Example trust: templateContains generated placeholder values; replace them before sending.
curl -X GET 'https://hintadata.fi/v1/webhooks' \
-H "Authorization: Bearer $API_KEY" \
-H 'Content-Type: application/json'GET
/v1/webhooksAuthentication required
listWebhooks
listWebhooksCode examples
cURLillustrative
Example trust: illustrativeShows the shape or idea; do not use it unchanged in production.
curl --fail-with-body -X GET "/v1/webhooks" \
-H "Authorization: Bearer $HINTADATA_API_KEY"Responses1
200Response
{
"items": [
{
"rotation": {
"id": "example",
"prepared_at": 1,
"expires_at": 1
},
"breaker": {
"failures": 0,
"open_until": 1,
"probe_until": 1
},
"incident": {
"id": "example",
"status": "open",
"opened_at": 1,
"acknowledged_at": 1,
"resolved_at": 1,
"code": "example"
},
"id": "example",
"url": "https://example.com/resource",
"events": [
"watchlist.triggered"
],
"enabled": true,
"created_at": "2026-01-01T00:00:00Z"
}
]
}createWebhook · curltemplate
Example trust: templateContains generated placeholder values; replace them before sending.
curl -X POST 'https://hintadata.fi/v1/webhooks' \
-H "Authorization: Bearer $API_KEY" \
-H 'Content-Type: application/json' \
--data-binary @- <<'JSON'
{
"url": "https://example.com/resource",
"events": [
"watchlist.triggered"
],
"enabled": true
}
JSONPOST
/v1/webhooksAuthentication required
createWebhook
createWebhookRequest bodyRequired
application/jsonCode examples
cURLillustrative
Example trust: illustrativeShows the shape or idea; do not use it unchanged in production.
curl --fail-with-body -X POST "/v1/webhooks" \
-H "Authorization: Bearer $HINTADATA_API_KEY" \
-H "Content-Type: application/json" \
--data '{
"url": "https://example.com/resource",
"events": [
"watchlist.triggered"
],
"enabled": true
}'Responses1
201Response
{
"rotation": {
"id": "example",
"prepared_at": 1,
"expires_at": 1
},
"breaker": {
"failures": 0,
"open_until": 1,
"probe_until": 1
},
"incident": {
"id": "example",
"status": "open",
"opened_at": 1,
"acknowledged_at": 1,
"resolved_at": 1,
"code": "example"
},
"id": "example",
"url": "https://example.com/resource",
"events": [
"watchlist.triggered"
],
"enabled": true,
"created_at": "2026-01-01T00:00:00Z",
"secret": "example"
}updateWebhook · curltemplate
Example trust: templateContains generated placeholder values; replace them before sending.
curl -X PATCH 'https://hintadata.fi/v1/webhooks/example' \
-H "Authorization: Bearer $API_KEY" \
-H 'Content-Type: application/json' \
--data-binary @- <<'JSON'
{
"url": "https://example.com/resource",
"events": [
"watchlist.triggered"
],
"enabled": true
}
JSONPATCH
/v1/webhooks/{webhook_id}Authentication required
updateWebhook
updateWebhookRequest bodyRequired
application/jsonCode examples
cURLillustrative
Example trust: illustrativeShows the shape or idea; do not use it unchanged in production.
curl --fail-with-body -X PATCH "/v1/webhooks/{webhook_id}" \
-H "Authorization: Bearer $HINTADATA_API_KEY" \
-H "Content-Type: application/json" \
--data '{
"url": "https://example.com/resource",
"events": [
"watchlist.triggered"
],
"enabled": true
}'Responses1
200Response
{
"rotation": {
"id": "example",
"prepared_at": 1,
"expires_at": 1
},
"breaker": {
"failures": 0,
"open_until": 1,
"probe_until": 1
},
"incident": {
"id": "example",
"status": "open",
"opened_at": 1,
"acknowledged_at": 1,
"resolved_at": 1,
"code": "example"
},
"id": "example",
"url": "https://example.com/resource",
"events": [
"watchlist.triggered"
],
"enabled": true,
"created_at": "2026-01-01T00:00:00Z"
}deleteWebhook · curltemplate
Example trust: templateContains generated placeholder values; replace them before sending.
curl -X DELETE 'https://hintadata.fi/v1/webhooks/example' \
-H "Authorization: Bearer $API_KEY" \
-H 'Content-Type: application/json'DELETE
/v1/webhooks/{webhook_id}Authentication required
deleteWebhook
deleteWebhookCode examples
cURLillustrative
Example trust: illustrativeShows the shape or idea; do not use it unchanged in production.
curl --fail-with-body -X DELETE "/v1/webhooks/{webhook_id}" \
-H "Authorization: Bearer $HINTADATA_API_KEY"Responses1
200Response
{
"deleted": true
}prepareWebhookSecretRotation · curltemplate
Example trust: templateContains generated placeholder values; replace them before sending.
curl -X POST 'https://hintadata.fi/v1/webhooks/example/secret-rotation' \
-H "Authorization: Bearer $API_KEY" \
-H 'Content-Type: application/json'POST
/v1/webhooks/{webhook_id}/secret-rotationAuthentication required
prepareWebhookSecretRotation
prepareWebhookSecretRotationCode examples
cURLillustrative
Example trust: illustrativeShows the shape or idea; do not use it unchanged in production.
curl --fail-with-body -X POST "/v1/webhooks/{webhook_id}/secret-rotation" \
-H "Authorization: Bearer $HINTADATA_API_KEY"Responses1
200Response
{
"rotation": {
"id": "example",
"prepared_at": 1,
"expires_at": 1
},
"breaker": {
"failures": 0,
"open_until": 1,
"probe_until": 1
},
"incident": {
"id": "example",
"status": "open",
"opened_at": 1,
"acknowledged_at": 1,
"resolved_at": 1,
"code": "example"
},
"id": "example",
"url": "https://example.com/resource",
"events": [
"watchlist.triggered"
],
"enabled": true,
"created_at": "2026-01-01T00:00:00Z",
"secret": "example"
}activateWebhookSecretRotation · curltemplate
Example trust: templateContains generated placeholder values; replace them before sending.
curl -X POST 'https://hintadata.fi/v1/webhooks/example/secret-rotation/activate' \
-H "Authorization: Bearer $API_KEY" \
-H 'Content-Type: application/json' \
--data-binary @- <<'JSON'
{
"rotation_id": "example",
"confirm": true
}
JSONPOST
/v1/webhooks/{webhook_id}/secret-rotation/activateAuthentication required
activateWebhookSecretRotation
activateWebhookSecretRotationRequest bodyRequired
application/jsonCode examples
cURLillustrative
Example trust: illustrativeShows the shape or idea; do not use it unchanged in production.
curl --fail-with-body -X POST "/v1/webhooks/{webhook_id}/secret-rotation/activate" \
-H "Authorization: Bearer $HINTADATA_API_KEY" \
-H "Content-Type: application/json" \
--data '{
"rotation_id": "example",
"confirm": true
}'Responses1
200Response
{
"rotation": {
"id": "example",
"prepared_at": 1,
"expires_at": 1
},
"breaker": {
"failures": 0,
"open_until": 1,
"probe_until": 1
},
"incident": {
"id": "example",
"status": "open",
"opened_at": 1,
"acknowledged_at": 1,
"resolved_at": 1,
"code": "example"
},
"id": "example",
"url": "https://example.com/resource",
"events": [
"watchlist.triggered"
],
"enabled": true,
"created_at": "2026-01-01T00:00:00Z"
}cancelWebhookSecretRotation · curltemplate
Example trust: templateContains generated placeholder values; replace them before sending.
curl -X POST 'https://hintadata.fi/v1/webhooks/example/secret-rotation/cancel' \
-H "Authorization: Bearer $API_KEY" \
-H 'Content-Type: application/json' \
--data-binary @- <<'JSON'
{
"rotation_id": "example"
}
JSONPOST
/v1/webhooks/{webhook_id}/secret-rotation/cancelAuthentication required
cancelWebhookSecretRotation
cancelWebhookSecretRotationRequest bodyRequired
application/jsonCode examples
cURLillustrative
Example trust: illustrativeShows the shape or idea; do not use it unchanged in production.
curl --fail-with-body -X POST "/v1/webhooks/{webhook_id}/secret-rotation/cancel" \
-H "Authorization: Bearer $HINTADATA_API_KEY" \
-H "Content-Type: application/json" \
--data '{
"rotation_id": "example"
}'Responses1
200Response
{
"rotation": {
"id": "example",
"prepared_at": 1,
"expires_at": 1
},
"breaker": {
"failures": 0,
"open_until": 1,
"probe_until": 1
},
"incident": {
"id": "example",
"status": "open",
"opened_at": 1,
"acknowledged_at": 1,
"resolved_at": 1,
"code": "example"
},
"id": "example",
"url": "https://example.com/resource",
"events": [
"watchlist.triggered"
],
"enabled": true,
"created_at": "2026-01-01T00:00:00Z"
}acknowledgeWebhookIncident · curltemplate
Example trust: templateContains generated placeholder values; replace them before sending.
curl -X POST 'https://hintadata.fi/v1/webhooks/example/incidents/acknowledge' \
-H "Authorization: Bearer $API_KEY" \
-H 'Content-Type: application/json' \
--data-binary @- <<'JSON'
{
"incident_id": "example"
}
JSONPOST
/v1/webhooks/{webhook_id}/incidents/acknowledgeAuthentication required
acknowledgeWebhookIncident
acknowledgeWebhookIncidentRequest bodyRequired
application/jsonCode examples
cURLillustrative
Example trust: illustrativeShows the shape or idea; do not use it unchanged in production.
curl --fail-with-body -X POST "/v1/webhooks/{webhook_id}/incidents/acknowledge" \
-H "Authorization: Bearer $HINTADATA_API_KEY" \
-H "Content-Type: application/json" \
--data '{
"incident_id": "example"
}'Responses1
200Response
{
"rotation": {
"id": "example",
"prepared_at": 1,
"expires_at": 1
},
"breaker": {
"failures": 0,
"open_until": 1,
"probe_until": 1
},
"incident": {
"id": "example",
"status": "open",
"opened_at": 1,
"acknowledged_at": 1,
"resolved_at": 1,
"code": "example"
},
"id": "example",
"url": "https://example.com/resource",
"events": [
"watchlist.triggered"
],
"enabled": true,
"created_at": "2026-01-01T00:00:00Z"
}listWebhookDeliveries · curltemplate
Example trust: templateContains generated placeholder values; replace them before sending.
curl -X GET 'https://hintadata.fi/v1/webhook-deliveries' \
-H "Authorization: Bearer $API_KEY" \
-H 'Content-Type: application/json'GET
/v1/webhook-deliveriesAuthentication required
listWebhookDeliveries
listWebhookDeliveriesCode examples
cURLillustrative
Example trust: illustrativeShows the shape or idea; do not use it unchanged in production.
curl --fail-with-body -X GET "/v1/webhook-deliveries" \
-H "Authorization: Bearer $HINTADATA_API_KEY"Responses1
200Response
{
"items": [
{
"attempt_history": [
{
"number": 1,
"started_at": 1,
"finished_at": 1,
"duration_ms": 0,
"http_status": "example",
"error_code": "example",
"outcome": "sending",
"next_at": "example"
}
],
"id": "example",
"event_id": "example",
"event_type": "example",
"subscription_id": "example",
"created_at": "2026-01-01T00:00:00Z",
"status": "pending",
"attempts": 0,
"next_at": 1,
"http_status": "example",
"completed_at": 1,
"cycle_attempts": 0,
"replays": 0,
"last_error_code": "example"
}
],
"total": 1,
"next_offset": "example"
}searchProducts · curltemplate
Example trust: templateContains generated placeholder values; replace them before sending.
curl -X GET 'https://hintadata.fi/v1/search?q=sony%20xm5' \
-H "Authorization: Bearer $API_KEY" \
-H 'Content-Type: application/json'GET
/v1/searchAuthentication required
searchProducts
searchProductsCode examples
cURLillustrative
Example trust: illustrativeShows the shape or idea; do not use it unchanged in production.
curl --fail-with-body -X GET "/v1/search" \
-H "Authorization: Bearer $HINTADATA_API_KEY"Responses1
200Response
{
"query": "example",
"total": 0,
"items": [
{
"canonical_product_id": "example",
"product_name": "example",
"brand": "example",
"model": "example",
"variant": "example",
"image_path": "example",
"match_confidence": 0,
"min_price": "example",
"store_count": 0,
"relevance_score": 0
}
],
"next_offset": "example",
"evidence": {
"source_id": "example",
"source_ref": "example",
"observed_at": "2026-01-01T00:00:00Z",
"expires_at": "2026-01-01T00:00:00Z",
"market": "AA",
"currency": "AAA",
"tax_basis": "inclusive"
}
}compareProducts · curltemplate
Example trust: templateContains generated placeholder values; replace them before sending.
curl -X GET 'https://hintadata.fi/v1/compare' \
-H "Authorization: Bearer $API_KEY" \
-H 'Content-Type: application/json'GET
/v1/compareAuthentication required
compareProducts
compareProductsCode examples
cURLillustrative
Example trust: illustrativeShows the shape or idea; do not use it unchanged in production.
curl --fail-with-body -X GET "/v1/compare" \
-H "Authorization: Bearer $HINTADATA_API_KEY"Responses1
200Response
{
"products": [
{
"canonical_product_id": "example",
"comparison_name": "example",
"brand": "example",
"model": "example",
"best_offer": {
"store": "example",
"price": 1,
"item_price": 1,
"delivery_cost": 1,
"delivered_price": 1,
"url": "https://example.com/resource",
"updated_at": "2026-01-01T00:00:00Z",
"availability": "example",
"availability_label": "example",
"stock_quantity": "example",
"delivery_estimate": "2026-01-01",
"delivery_label": "example",
"seller_score": "example",
"return_days": "example",
"warranty_months": "example",
"data_quality": 1,
"decision_score": 1,
"badge": "example",
"is_recommended": true,
"is_lowest_item_price": true
}
}
],
"evidence": {
"source_id": "example",
"source_ref": "example",
"observed_at": "2026-01-01T00:00:00Z",
"expires_at": "2026-01-01T00:00:00Z",
"market": "AA",
"currency": "AAA",
"tax_basis": "inclusive"
}
}getProductComparison · curltemplate
Example trust: templateContains generated placeholder values; replace them before sending.
curl -X GET 'https://hintadata.fi/v1/products/sony_wh1000xm5_black' \
-H "Authorization: Bearer $API_KEY" \
-H 'Content-Type: application/json'GET
/v1/products/{canonical_product_id}Authentication required
getProductComparison
getProductComparisonCode examples
cURLillustrative
Example trust: illustrativeShows the shape or idea; do not use it unchanged in production.
curl --fail-with-body -X GET "/v1/products/{canonical_product_id}" \
-H "Authorization: Bearer $HINTADATA_API_KEY"Responses1
200Response
{
"canonical_product_id": "example",
"product_name": "example",
"product": {
"canonical_product_id": "example",
"product_name": "example",
"brand": "example",
"model": "example",
"variant": "example",
"category": "example",
"ean": "example",
"match_confidence": 0,
"match_status": "example",
"image_path": "example",
"specs": [
{
"label": "example",
"value": "example",
"icon": "example"
}
],
"comparison_name": "example",
"comparison_score": 1,
"comparison_badge": "example",
"comparison_summary": "example"
},
"offers": [
{
"store": "example",
"price": 1,
"item_price": 1,
"delivery_cost": 1,
"delivered_price": 1,
"url": "https://example.com/resource",
"updated_at": "2026-01-01T00:00:00Z",
"availability": "example",
"availability_label": "example",
"stock_quantity": "example",
"delivery_estimate": "2026-01-01",
"delivery_label": "example",
"seller_score": "example",
"return_days": "example",
"warranty_months": "example",
"data_quality": 1,
"decision_score": 1,
"badge": "example",
"is_recommended": true,
"is_lowest_item_price": true
}
],
"decision": {
"label": "example",
"store": "example",
"score": 1,
"delivered_price": 1,
"url": "https://example.com/resource",
"rationale": "example",
"lowest_item_price": 1,
"lowest_item_store": "example",
"evaluated_offer_count": 1,
"updated_at": "2026-01-01T00:00:00Z"
},
"evidence": {
"source_id": "example",
"source_ref": "example",
"observed_at": "2026-01-01T00:00:00Z",
"expires_at": "2026-01-01T00:00:00Z",
"market": "AA",
"currency": "AAA",
"tax_basis": "inclusive"
}
}getProductPriceHistory · curltemplate
Example trust: templateContains generated placeholder values; replace them before sending.
curl -X GET 'https://hintadata.fi/v1/products/sony_wh1000xm5_black/history' \
-H "Authorization: Bearer $API_KEY" \
-H 'Content-Type: application/json'GET
/v1/products/{canonical_product_id}/historyAuthentication required
getProductPriceHistory
getProductPriceHistoryCode examples
cURLillustrative
Example trust: illustrativeShows the shape or idea; do not use it unchanged in production.
curl --fail-with-body -X GET "/v1/products/{canonical_product_id}/history" \
-H "Authorization: Bearer $HINTADATA_API_KEY"Responses1
200Response
{
"canonical_product_id": "example",
"range": "7d",
"series": [
{
"store": "example",
"points": [
{
"updated_at": "2026-01-01T00:00:00Z",
"item_price": 0,
"delivery_cost": 0,
"delivered_price": 0,
"url": "https://example.com/resource"
}
]
}
],
"summary": {
"current_price": "example",
"observation_count": 0
},
"evidence": {
"source_id": "example",
"source_ref": "example",
"observed_at": "2026-01-01T00:00:00Z",
"expires_at": "2026-01-01T00:00:00Z",
"market": "AA",
"currency": "AAA",
"tax_basis": "inclusive"
}
}listPriceWatches · curltemplate
Example trust: templateContains generated placeholder values; replace them before sending.
curl -X GET 'https://hintadata.fi/v1/watchlists' \
-H "Authorization: Bearer $API_KEY" \
-H 'Content-Type: application/json'GET
/v1/watchlistsAuthentication required
listPriceWatches
listPriceWatchesCode examples
cURLillustrative
Example trust: illustrativeShows the shape or idea; do not use it unchanged in production.
curl --fail-with-body -X GET "/v1/watchlists" \
-H "Authorization: Bearer $HINTADATA_API_KEY"Responses1
200Response
{
"total": 0,
"items": [
{
"id": "00000000-0000-4000-8000-000000000001",
"canonical_product_id": "example",
"target_price": 1,
"channel": "email",
"destination": "example",
"status": "active",
"created_at": "2026-01-01T00:00:00Z",
"updated_at": "2026-01-01T00:00:00Z",
"product": {
"canonical_product_id": "example",
"product_name": "example",
"brand": "example",
"model": "example",
"variant": "example",
"image_path": "example",
"match_confidence": 0,
"min_price": "example",
"store_count": 0,
"relevance_score": 0
},
"current_price": "example",
"target_reached": true,
"revision": 1,
"condition": "target_price",
"change_percent": 1,
"merchant_sku": "example",
"availability": "available"
}
],
"next_offset": "example"
}createPriceWatch · curltemplate
Example trust: templateContains generated placeholder values; replace them before sending.
curl -X POST 'https://hintadata.fi/v1/watchlists' \
-H "Authorization: Bearer $API_KEY" \
-H 'Content-Type: application/json' \
--data-binary @- <<'JSON'
{
"canonical_product_id": "sony_wh1000xm5_black",
"condition": "target_price",
"target_price": 280,
"channel": "email",
"destination": "buyer@example.com"
}
JSONPOST
/v1/watchlistsAuthentication required
createPriceWatch
createPriceWatchRequest bodyRequired
application/jsonCode examples
cURLillustrative
Example trust: illustrativeShows the shape or idea; do not use it unchanged in production.
curl --fail-with-body -X POST "/v1/watchlists" \
-H "Authorization: Bearer $HINTADATA_API_KEY" \
-H "Content-Type: application/json" \
--data '{
"canonical_product_id": "sony_wh1000xm5_black",
"condition": "target_price",
"target_price": 280,
"channel": "email",
"destination": "buyer@example.com"
}'Responses1
201Response
{
"id": "00000000-0000-4000-8000-000000000001",
"canonical_product_id": "example",
"target_price": 1,
"channel": "email",
"destination": "example",
"status": "active",
"created_at": "2026-01-01T00:00:00Z",
"updated_at": "2026-01-01T00:00:00Z",
"product": {
"canonical_product_id": "example",
"product_name": "example",
"brand": "example",
"model": "example",
"variant": "example",
"image_path": "example",
"match_confidence": 0,
"min_price": "example",
"store_count": 0,
"relevance_score": 0
},
"current_price": "example",
"target_reached": true,
"revision": 1,
"condition": "target_price",
"change_percent": 1,
"merchant_sku": "example",
"availability": "available"
}updatePriceWatch · curltemplate
Example trust: templateContains generated placeholder values; replace them before sending.
curl -X PATCH 'https://hintadata.fi/v1/watchlists/00000000-0000-4000-8000-000000000001' \
-H "Authorization: Bearer $API_KEY" \
-H 'Content-Type: application/json' \
--data-binary @- <<'JSON'
{
"expected_revision": 1,
"target_price": 265,
"status": "active"
}
JSONPATCH
/v1/watchlists/{watch_id}Authentication required
updatePriceWatch
updatePriceWatchRequest bodyRequired
application/jsonCode examples
cURLillustrative
Example trust: illustrativeShows the shape or idea; do not use it unchanged in production.
curl --fail-with-body -X PATCH "/v1/watchlists/{watch_id}" \
-H "Authorization: Bearer $HINTADATA_API_KEY" \
-H "Content-Type: application/json" \
--data '{
"expected_revision": 1,
"target_price": 265,
"status": "active"
}'Responses1
200Response
{
"id": "00000000-0000-4000-8000-000000000001",
"canonical_product_id": "example",
"target_price": 1,
"channel": "email",
"destination": "example",
"status": "active",
"created_at": "2026-01-01T00:00:00Z",
"updated_at": "2026-01-01T00:00:00Z",
"product": {
"canonical_product_id": "example",
"product_name": "example",
"brand": "example",
"model": "example",
"variant": "example",
"image_path": "example",
"match_confidence": 0,
"min_price": "example",
"store_count": 0,
"relevance_score": 0
},
"current_price": "example",
"target_reached": true,
"revision": 1,
"condition": "target_price",
"change_percent": 1,
"merchant_sku": "example",
"availability": "available"
}deletePriceWatch · curlcontract-derived
Example trust: contract-derivedTaken from the current API or SDK contract; it has not been executed.
curl -X DELETE 'https://hintadata.fi/v1/watchlists/00000000-0000-4000-8000-000000000001' \
-H "Authorization: Bearer $API_KEY" \
-H 'Content-Type: application/json'DELETE
/v1/watchlists/{watch_id}Authentication required
deletePriceWatch
deletePriceWatchCode examples
cURLillustrative
Example trust: illustrativeShows the shape or idea; do not use it unchanged in production.
curl --fail-with-body -X DELETE "/v1/watchlists/{watch_id}" \
-H "Authorization: Bearer $HINTADATA_API_KEY"Responses1
204Response
nulllistPricingRecommendations · curltemplate
Example trust: templateContains generated placeholder values; replace them before sending.
curl -X GET 'https://hintadata.fi/v1/pricing/recommendations' \
-H "Authorization: Bearer $API_KEY" \
-H 'Content-Type: application/json'GET
/v1/pricing/recommendationsAuthentication required
listPricingRecommendations
listPricingRecommendationsCode examples
cURLillustrative
Example trust: illustrativeShows the shape or idea; do not use it unchanged in production.
curl --fail-with-body -X GET "/v1/pricing/recommendations" \
-H "Authorization: Bearer $HINTADATA_API_KEY"Responses1
200Response
{
"items": [
{
"canonical_product_id": "example",
"status": "ready",
"recommended_price": "example",
"minimum_price": "example",
"competitor_price": "example",
"reason": "example",
"evidence": {
"source_id": "example",
"source_ref": "example",
"observed_at": "2026-01-01T00:00:00Z",
"expires_at": "2026-01-01T00:00:00Z",
"market": "AA",
"currency": "AAA",
"tax_basis": "inclusive"
},
"merchant_sku": "example",
"current_price": "example",
"price_delta": "example",
"proposed_margin_percent": "example",
"evidence_gaps": [
"example"
],
"merchant_evidence": {
"source_id": "example",
"source_ref": "example",
"observed_at": "2026-01-01T00:00:00Z",
"expires_at": "2026-01-01T00:00:00Z",
"market": "AA",
"currency": "AAA",
"tax_basis": "inclusive"
}
}
],
"total": 1,
"next_offset": "example",
"evidence": {
"source_id": "example",
"source_ref": "example",
"observed_at": "2026-01-01T00:00:00Z",
"expires_at": "2026-01-01T00:00:00Z",
"market": "AA",
"currency": "AAA",
"tax_basis": "inclusive"
}
}listAssortmentOpportunities · curltemplate
Example trust: templateContains generated placeholder values; replace them before sending.
curl -X GET 'https://hintadata.fi/v1/assortment/opportunities' \
-H "Authorization: Bearer $API_KEY" \
-H 'Content-Type: application/json'GET
/v1/assortment/opportunitiesAuthentication required
listAssortmentOpportunities
listAssortmentOpportunitiesCode examples
cURLillustrative
Example trust: illustrativeShows the shape or idea; do not use it unchanged in production.
curl --fail-with-body -X GET "/v1/assortment/opportunities" \
-H "Authorization: Bearer $HINTADATA_API_KEY"Responses1
200Response
{
"items": [
{
"canonical_product_id": "example",
"product_name": "example",
"observed_stores": [
"example"
],
"available_supplier_count": 1,
"evidence": {
"source_id": "example",
"source_ref": "example",
"observed_at": "2026-01-01T00:00:00Z",
"expires_at": "2026-01-01T00:00:00Z",
"market": "AA",
"currency": "AAA",
"tax_basis": "inclusive"
},
"interpretation": "observed_catalog_gap_not_demand_forecast"
}
],
"total": 1,
"next_offset": "example",
"evidence": {
"source_id": "example",
"source_ref": "example",
"observed_at": "2026-01-01T00:00:00Z",
"expires_at": "2026-01-01T00:00:00Z",
"market": "AA",
"currency": "AAA",
"tax_basis": "inclusive"
}
}listSourcingOptions · curltemplate
Example trust: templateContains generated placeholder values; replace them before sending.
curl -X GET 'https://hintadata.fi/v1/sourcing/options' \
-H "Authorization: Bearer $API_KEY" \
-H 'Content-Type: application/json'GET
/v1/sourcing/optionsAuthentication required
listSourcingOptions
listSourcingOptionsCode examples
cURLillustrative
Example trust: illustrativeShows the shape or idea; do not use it unchanged in production.
curl --fail-with-body -X GET "/v1/sourcing/options" \
-H "Authorization: Bearer $HINTADATA_API_KEY"Responses1
200Response
{
"items": [
{
"canonical_product_id": "example",
"supplier_id": "example",
"landed_cost": 0,
"minimum_order_quantity": 1,
"lead_time_days": 0,
"available": true,
"evidence": {
"source_id": "example",
"source_ref": "example",
"observed_at": "2026-01-01T00:00:00Z",
"expires_at": "2026-01-01T00:00:00Z",
"market": "AA",
"currency": "AAA",
"tax_basis": "inclusive"
}
}
],
"total": 1,
"next_offset": "example",
"evidence": {
"source_id": "example",
"source_ref": "example",
"observed_at": "2026-01-01T00:00:00Z",
"expires_at": "2026-01-01T00:00:00Z",
"market": "AA",
"currency": "AAA",
"tax_basis": "inclusive"
}
}listCampaignSignals · curltemplate
Example trust: templateContains generated placeholder values; replace them before sending.
curl -X GET 'https://hintadata.fi/v1/campaigns/signals' \
-H "Authorization: Bearer $API_KEY" \
-H 'Content-Type: application/json'GET
/v1/campaigns/signalsAuthentication required
listCampaignSignals
listCampaignSignalsCode examples
cURLillustrative
Example trust: illustrativeShows the shape or idea; do not use it unchanged in production.
curl --fail-with-body -X GET "/v1/campaigns/signals" \
-H "Authorization: Bearer $HINTADATA_API_KEY"Responses1
200Response
{
"items": [
{
"id": "example",
"canonical_product_ids": [
"example"
],
"store": "example",
"description": "example",
"starts_at": "2026-01-01T00:00:00Z",
"ends_at": "2026-01-01T00:00:00Z",
"evidence": {
"source_id": "example",
"source_ref": "example",
"observed_at": "2026-01-01T00:00:00Z",
"expires_at": "2026-01-01T00:00:00Z",
"market": "AA",
"currency": "AAA",
"tax_basis": "inclusive"
}
}
],
"total": 1,
"next_offset": "example",
"evidence": {
"source_id": "example",
"source_ref": "example",
"observed_at": "2026-01-01T00:00:00Z",
"expires_at": "2026-01-01T00:00:00Z",
"market": "AA",
"currency": "AAA",
"tax_basis": "inclusive"
}
}putSourceSnapshot · curltemplate
Example trust: templateContains generated placeholder values; replace them before sending.
curl -X PUT 'https://hintadata.fi/v1/sources/example/snapshot' \
-H "Authorization: Bearer $API_KEY" \
-H 'Content-Type: application/json' \
--data-binary @- <<'JSON'
{
"evidence": {
"source_id": "example",
"source_ref": "example",
"observed_at": "2026-01-01T00:00:00Z",
"expires_at": "2026-01-01T00:00:00Z",
"market": "AA",
"currency": "AAA",
"tax_basis": "inclusive"
},
"products": [
{
"comparison": {
"canonical_product_id": "example",
"product_name": "example",
"product": {
"canonical_product_id": "example",
"product_name": "example",
"brand": "example",
"model": "example",
"variant": "example",
"category": "example",
"ean": "example",
"match_confidence": 0,
"match_status": "example",
"image_path": "example",
"specs": [
{
"label": "example",
"value": "example",
"icon": "example"
}
],
"comparison_name": "example",
"comparison_score": 1,
"comparison_badge": "example",
"comparison_summary": "example"
},
"offers": [
{
"store": "example",
"price": 1,
"item_price": 1,
"delivery_cost": 1,
"delivered_price": 1,
"url": "https://example.com/resource",
"updated_at": "2026-01-01T00:00:00Z",
"availability": "example",
"availability_label": "example",
"stock_quantity": "example",
"delivery_estimate": "2026-01-01",
"delivery_label": "example",
"seller_score": "example",
"return_days": "example",
"warranty_months": "example",
"data_quality": 1,
"decision_score": 1,
"badge": "example",
"is_recommended": true,
"is_lowest_item_price": true
}
],
"decision": {
"label": "example",
"store": "example",
"score": 1,
"delivered_price": 1,
"url": "https://example.com/resource",
"rationale": "example",
"lowest_item_price": 1,
"lowest_item_store": "example",
"evaluated_offer_count": 1,
"updated_at": "2026-01-01T00:00:00Z"
},
"evidence": {
"source_id": "example",
"source_ref": "example",
"observed_at": "2026-01-01T00:00:00Z",
"expires_at": "2026-01-01T00:00:00Z",
"market": "AA",
"currency": "AAA",
"tax_basis": "inclusive"
}
},
"history": [
{
"store": "example",
"points": [
{
"updated_at": "2026-01-01T00:00:00Z",
"item_price": 0,
"delivery_cost": 0,
"delivered_price": 0,
"url": "https://example.com/resource"
}
]
}
]
}
],
"supplier_offers": [
{
"canonical_product_id": "example",
"supplier_id": "example",
"landed_cost": 0,
"minimum_order_quantity": 1,
"lead_time_days": 0,
"available": true,
"evidence": {
"source_id": "example",
"source_ref": "example",
"observed_at": "2026-01-01T00:00:00Z",
"expires_at": "2026-01-01T00:00:00Z",
"market": "AA",
"currency": "AAA",
"tax_basis": "inclusive"
}
}
],
"campaign_signals": [
{
"id": "example",
"canonical_product_ids": [
"example"
],
"store": "example",
"description": "example",
"starts_at": "2026-01-01T00:00:00Z",
"ends_at": "2026-01-01T00:00:00Z",
"evidence": {
"source_id": "example",
"source_ref": "example",
"observed_at": "2026-01-01T00:00:00Z",
"expires_at": "2026-01-01T00:00:00Z",
"market": "AA",
"currency": "AAA",
"tax_basis": "inclusive"
}
}
]
}
JSONPUT
/v1/sources/{source_id}/snapshotAuthentication required
putSourceSnapshot
putSourceSnapshotRequest bodyRequired
application/jsonCode examples
cURLillustrative
Example trust: illustrativeShows the shape or idea; do not use it unchanged in production.
curl --fail-with-body -X PUT "/v1/sources/{source_id}/snapshot" \
-H "Authorization: Bearer $HINTADATA_API_KEY" \
-H "Content-Type: application/json" \
--data '{
"evidence": {
"source_id": "example",
"source_ref": "example",
"observed_at": "2026-01-01T00:00:00Z",
"expires_at": "2026-01-01T00:00:00Z",
"market": "AA",
"currency": "AAA",
"tax_basis": "inclusive"
},
"products": [
{
"comparison": {
"canonical_product_id": "example",
"product_name": "example",
"product": {
"canonical_product_id": "example",
"product_name": "example",
"brand": "example",
"model": "example",
"variant": "example",
"category": "example",
"ean": "example",
"match_confidence": 0,
"match_status": "example",
"image_path": "example",
"specs": [
{
"label": "example",
"value": "example",
"icon": "example"
}
],
"comparison_name": "example",
"comparison_score": 1,
"comparison_badge": "example",
"comparison_summary": "example"
},
"offers": [
{
"store": "example",
"price": 1,
"item_price": 1,
"delivery_cost": 1,
"delivered_price": 1,
"url": "https://example.com/resource",
"updated_at": "2026-01-01T00:00:00Z",
"availability": "example",
"availability_label": "example",
"stock_quantity": "example",
"delivery_estimate": "2026-01-01",
"delivery_label": "example",
"seller_score": "example",
"return_days": "example",
"warranty_months": "example",
"data_quality": 1,
"decision_score": 1,
"badge": "example",
"is_recommended": true,
"is_lowest_item_price": true
}
],
"decision": {
"label": "example",
"store": "example",
"score": 1,
"delivered_price": 1,
"url": "https://example.com/resource",
"rationale": "example",
"lowest_item_price": 1,
"lowest_item_store": "example",
"evaluated_offer_count": 1,
"updated_at": "2026-01-01T00:00:00Z"
},
"evidence": {
"source_id": "example",
"source_ref": "example",
"observed_at": "2026-01-01T00:00:00Z",
"expires_at": "2026-01-01T00:00:00Z",
"market": "AA",
"currency": "AAA",
"tax_basis": "inclusive"
}
},
"history": [
{
"store": "example",
"points": [
{
"updated_at": "2026-01-01T00:00:00Z",
"item_price": 0,
"delivery_cost": 0,
"delivered_price": 0,
"url": "https://example.com/resource"
}
]
}
]
}
],
"supplier_offers": [
{
"canonical_product_id": "example",
"supplier_id": "example",
"landed_cost": 0,
"minimum_order_quantity": 1,
"lead_time_days": 0,
"available": true,
"evidence": {
"source_id": "example",
"source_ref": "example",
"observed_at": "2026-01-01T00:00:00Z",
"expires_at": "2026-01-01T00:00:00Z",
"market": "AA",
"currency": "AAA",
"tax_basis": "inclusive"
}
}
],
"campaign_signals": [
{
"id": "example",
"canonical_product_ids": [
"example"
],
"store": "example",
"description": "example",
"starts_at": "2026-01-01T00:00:00Z",
"ends_at": "2026-01-01T00:00:00Z",
"evidence": {
"source_id": "example",
"source_ref": "example",
"observed_at": "2026-01-01T00:00:00Z",
"expires_at": "2026-01-01T00:00:00Z",
"market": "AA",
"currency": "AAA",
"tax_basis": "inclusive"
}
}
]
}'Responses1
200Response
{
"source_id": "example",
"observed_at": "2026-01-01T00:00:00Z",
"products": 1,
"events_queued": 1
}getWebhookMetrics · curltemplate
Example trust: templateContains generated placeholder values; replace them before sending.
curl -X GET 'https://hintadata.fi/v1/webhook-metrics' \
-H "Authorization: Bearer $API_KEY" \
-H 'Content-Type: application/json'GET
/v1/webhook-metricsAuthentication required
getWebhookMetrics
getWebhookMetricsCode examples
cURLillustrative
Example trust: illustrativeShows the shape or idea; do not use it unchanged in production.
curl --fail-with-body -X GET "/v1/webhook-metrics" \
-H "Authorization: Bearer $HINTADATA_API_KEY"Responses1
200Response
{
"active_incidents": 0,
"unresolved_incidents": 0,
"counts": {
"pending": 0,
"sending": 0,
"delivered": 0,
"failed": 0,
"cancelled": 0
},
"oldest_pending_age_ms": 0,
"observed_at": 1,
"window_days": 7
}listWebhookAudit · curltemplate
Example trust: templateContains generated placeholder values; replace them before sending.
curl -X GET 'https://hintadata.fi/v1/webhook-audit' \
-H "Authorization: Bearer $API_KEY" \
-H 'Content-Type: application/json'GET
/v1/webhook-auditAuthentication required
listWebhookAudit
listWebhookAuditCode examples
cURLillustrative
Example trust: illustrativeShows the shape or idea; do not use it unchanged in production.
curl --fail-with-body -X GET "/v1/webhook-audit" \
-H "Authorization: Bearer $HINTADATA_API_KEY"Responses1
200Response
{
"items": [
{
"id": "example",
"at": 1,
"action": "example",
"resource_id": "example",
"actor_ref": "example"
}
]
}testWebhook · curltemplate
Example trust: templateContains generated placeholder values; replace them before sending.
curl -X POST 'https://hintadata.fi/v1/webhooks/example/test' \
-H "Authorization: Bearer $API_KEY" \
-H 'Content-Type: application/json' \
--data-binary @- <<'JSON'
{
"confirm": true
}
JSONPOST
/v1/webhooks/{webhook_id}/testAuthentication required
testWebhook
testWebhookRequest bodyRequired
application/jsonCode examples
cURLillustrative
Example trust: illustrativeShows the shape or idea; do not use it unchanged in production.
curl --fail-with-body -X POST "/v1/webhooks/{webhook_id}/test" \
-H "Authorization: Bearer $HINTADATA_API_KEY" \
-H "Content-Type: application/json" \
--data '{
"confirm": true
}'Responses1
200Response
{
"attempt_history": [
{
"number": 1,
"started_at": 1,
"finished_at": 1,
"duration_ms": 0,
"http_status": "example",
"error_code": "example",
"outcome": "sending",
"next_at": "example"
}
],
"id": "example",
"event_id": "example",
"event_type": "example",
"subscription_id": "example",
"created_at": "2026-01-01T00:00:00Z",
"status": "pending",
"attempts": 0,
"next_at": 1,
"http_status": "example",
"completed_at": 1,
"cycle_attempts": 0,
"replays": 0,
"last_error_code": "example"
}retryWebhookDelivery · curltemplate
Example trust: templateContains generated placeholder values; replace them before sending.
curl -X POST 'https://hintadata.fi/v1/webhook-deliveries/example/retry' \
-H "Authorization: Bearer $API_KEY" \
-H 'Content-Type: application/json'POST
/v1/webhook-deliveries/{delivery_id}/retryAuthentication required
retryWebhookDelivery
retryWebhookDeliveryCode examples
cURLillustrative
Example trust: illustrativeShows the shape or idea; do not use it unchanged in production.
curl --fail-with-body -X POST "/v1/webhook-deliveries/{delivery_id}/retry" \
-H "Authorization: Bearer $HINTADATA_API_KEY"Responses1
200Response
{
"attempt_history": [
{
"number": 1,
"started_at": 1,
"finished_at": 1,
"duration_ms": 0,
"http_status": "example",
"error_code": "example",
"outcome": "sending",
"next_at": "example"
}
],
"id": "example",
"event_id": "example",
"event_type": "example",
"subscription_id": "example",
"created_at": "2026-01-01T00:00:00Z",
"status": "pending",
"attempts": 0,
"next_at": 1,
"http_status": "example",
"completed_at": 1,
"cycle_attempts": 0,
"replays": 0,
"last_error_code": "example"
}importMerchantCatalog · curltemplate
Example trust: templateContains generated placeholder values; replace them before sending.
curl -X PUT 'https://hintadata.fi/v1/merchant/catalog' \
-H "Authorization: Bearer $API_KEY" \
-H 'Content-Type: application/json' \
--data-binary @- <<'JSON'
{
"evidence": {
"source_id": "example",
"source_ref": "example",
"observed_at": "2026-01-01T00:00:00Z",
"expires_at": "2026-01-01T00:00:00Z",
"market": "AA",
"currency": "AAA",
"tax_basis": "inclusive"
},
"items": [
{}
]
}
JSONPUT
/v1/merchant/catalogAuthentication required
importMerchantCatalog
importMerchantCatalogRequest bodyRequired
application/jsonCode examples
cURLillustrative
Example trust: illustrativeShows the shape or idea; do not use it unchanged in production.
curl --fail-with-body -X PUT "/v1/merchant/catalog" \
-H "Authorization: Bearer $HINTADATA_API_KEY" \
-H "Content-Type: application/json" \
--data '{
"evidence": {
"source_id": "example",
"source_ref": "example",
"observed_at": "2026-01-01T00:00:00Z",
"expires_at": "2026-01-01T00:00:00Z",
"market": "AA",
"currency": "AAA",
"tax_basis": "inclusive"
},
"items": [
{}
]
}'Responses1
200Response
{
"imported": 1,
"evidence": {
"source_id": "example",
"source_ref": "example",
"observed_at": "2026-01-01T00:00:00Z",
"expires_at": "2026-01-01T00:00:00Z",
"market": "AA",
"currency": "AAA",
"tax_basis": "inclusive"
}
}getMerchantCoverage · curltemplate
Example trust: templateContains generated placeholder values; replace them before sending.
curl -X GET 'https://hintadata.fi/v1/merchant/coverage' \
-H "Authorization: Bearer $API_KEY" \
-H 'Content-Type: application/json'GET
/v1/merchant/coverageAuthentication required
getMerchantCoverage
getMerchantCoverageCode examples
cURLillustrative
Example trust: illustrativeShows the shape or idea; do not use it unchanged in production.
curl --fail-with-body -X GET "/v1/merchant/coverage" \
-H "Authorization: Bearer $HINTADATA_API_KEY"Responses1
200Response
{
"market_status": "missing",
"merchant_status": "missing",
"evidence": {
"source_id": "example",
"source_ref": "example",
"observed_at": "2026-01-01T00:00:00Z",
"expires_at": "2026-01-01T00:00:00Z",
"market": "AA",
"currency": "AAA",
"tax_basis": "inclusive"
},
"merchant_evidence": {
"source_id": "example",
"source_ref": "example",
"observed_at": "2026-01-01T00:00:00Z",
"expires_at": "2026-01-01T00:00:00Z",
"market": "AA",
"currency": "AAA",
"tax_basis": "inclusive"
},
"counts": {
"imported": 1,
"matched": 1,
"ambiguous": 1,
"unmatched": 1,
"with_available_offers": 1
},
"total": 1,
"next_offset": "example",
"items": [
{
"merchant_sku": "example",
"canonical_product_id": "example",
"gtin": "00000000",
"unit_cost": 0,
"fulfillment_cost": 0,
"delivery_charge": 0,
"current_price": 0,
"minimum_margin_percent": 0,
"resolution": "matched",
"candidates": [
"example"
],
"available_offer_count": 1
}
]
}resolveProducts · curltemplate
Example trust: templateContains generated placeholder values; replace them before sending.
curl -X POST 'https://hintadata.fi/v1/products/resolve' \
-H "Authorization: Bearer $API_KEY" \
-H 'Content-Type: application/json' \
--data-binary @- <<'JSON'
{
"items": [
{
"canonical_product_id": "sony_wh1000xm5_black"
}
]
}
JSONPOST
/v1/products/resolveAuthentication required
resolveProducts
resolveProductsRequest bodyRequired
application/jsonCode examples
cURLillustrative
Example trust: illustrativeShows the shape or idea; do not use it unchanged in production.
curl --fail-with-body -X POST "/v1/products/resolve" \
-H "Authorization: Bearer $HINTADATA_API_KEY" \
-H "Content-Type: application/json" \
--data '{
"items": [
{
"canonical_product_id": "sony_wh1000xm5_black"
}
]
}'Responses1
200Response
{
"items": [
{
"identifier": {
"canonical_product_id": "sony_wh1000xm5_black"
},
"status": "matched",
"candidates": [
"example"
]
}
],
"evidence": {
"source_id": "example",
"source_ref": "example",
"observed_at": "2026-01-01T00:00:00Z",
"expires_at": "2026-01-01T00:00:00Z",
"market": "AA",
"currency": "AAA",
"tax_basis": "inclusive"
}
}getOffersBatch · curltemplate
Example trust: templateContains generated placeholder values; replace them before sending.
curl -X POST 'https://hintadata.fi/v1/offers/batch' \
-H "Authorization: Bearer $API_KEY" \
-H 'Content-Type: application/json' \
--data-binary @- <<'JSON'
{
"items": [
{
"canonical_product_id": "sony_wh1000xm5_black"
}
]
}
JSONPOST
/v1/offers/batchAuthentication required
getOffersBatch
getOffersBatchRequest bodyRequired
application/jsonCode examples
cURLillustrative
Example trust: illustrativeShows the shape or idea; do not use it unchanged in production.
curl --fail-with-body -X POST "/v1/offers/batch" \
-H "Authorization: Bearer $HINTADATA_API_KEY" \
-H "Content-Type: application/json" \
--data '{
"items": [
{
"canonical_product_id": "sony_wh1000xm5_black"
}
]
}'Responses1
200Response
{
"items": [
{
"identifier": {
"canonical_product_id": "sony_wh1000xm5_black"
},
"status": "matched",
"candidates": [
"example"
],
"offers": [
{
"store": "example",
"price": 1,
"item_price": 1,
"delivery_cost": 1,
"delivered_price": 1,
"url": "https://example.com/resource",
"updated_at": "2026-01-01T00:00:00Z",
"availability": "example",
"availability_label": "example",
"stock_quantity": "example",
"delivery_estimate": "2026-01-01",
"delivery_label": "example",
"seller_score": "example",
"return_days": "example",
"warranty_months": "example",
"data_quality": 1,
"decision_score": 1,
"badge": "example",
"is_recommended": true,
"is_lowest_item_price": true
}
],
"best_offer": {
"store": "example",
"price": 1,
"item_price": 1,
"delivery_cost": 1,
"delivered_price": 1,
"url": "https://example.com/resource",
"updated_at": "2026-01-01T00:00:00Z",
"availability": "example",
"availability_label": "example",
"stock_quantity": "example",
"delivery_estimate": "2026-01-01",
"delivery_label": "example",
"seller_score": "example",
"return_days": "example",
"warranty_months": "example",
"data_quality": 1,
"decision_score": 1,
"badge": "example",
"is_recommended": true,
"is_lowest_item_price": true
}
}
],
"evidence": {
"source_id": "example",
"source_ref": "example",
"observed_at": "2026-01-01T00:00:00Z",
"expires_at": "2026-01-01T00:00:00Z",
"market": "AA",
"currency": "AAA",
"tax_basis": "inclusive"
}
}managePriceWatchesBatch · curltemplate
Example trust: templateContains generated placeholder values; replace them before sending.
curl -X POST 'https://hintadata.fi/v1/watchlists/batch' \
-H "Authorization: Bearer $API_KEY" \
-H 'Content-Type: application/json' \
--data-binary @- <<'JSON'
{
"items": [
{
"id": "00000000-0000-4000-8000-000000000001",
"expected_revision": 1,
"action": "pause"
}
]
}
JSONPOST
/v1/watchlists/batchAuthentication required
managePriceWatchesBatch
managePriceWatchesBatchRequest bodyRequired
application/jsonCode examples
cURLillustrative
Example trust: illustrativeShows the shape or idea; do not use it unchanged in production.
curl --fail-with-body -X POST "/v1/watchlists/batch" \
-H "Authorization: Bearer $HINTADATA_API_KEY" \
-H "Content-Type: application/json" \
--data '{
"items": [
{
"id": "00000000-0000-4000-8000-000000000001",
"expected_revision": 1,
"action": "pause"
}
]
}'Responses1
200Response
{
"updated": 1
}