Skip to documentation content
HintadataDocs

Generated quickstarts

Copy-paste examples generated from the API contract. The example trust status distinguishes verified, sandbox-verified, contract-derived, template, and illustrative values.

In this guide
  1. 1Copy-paste examples generated from the API contract. The example trust status distinguishes verified, sandbox-verified, contract-derived, template, and illustrative values.
In this guide
  1. 1Copy-paste examples generated from the API contract. The example trust status distinguishes verified, sandbox-verified, contract-derived, template, and illustrative values.

Generated quickstarts

OperationMethodRouteExample trust and verification
listConnectedProductsGET/v1/connected-catalogtemplate · docs-sandbox-ci
getConnectedProductGET/v1/connected-catalog/{productId}template · docs-sandbox-ci
getConnectedProductHistoryGET/v1/connected-catalog/{productId}/historytemplate · docs-sandbox-ci
listWebhooksGET/v1/webhookstemplate · docs-sandbox-ci
createWebhookPOST/v1/webhookstemplate · docs-sandbox-ci
updateWebhookPATCH/v1/webhooks/{webhook_id}template · docs-sandbox-ci
deleteWebhookDELETE/v1/webhooks/{webhook_id}template · docs-sandbox-ci
prepareWebhookSecretRotationPOST/v1/webhooks/{webhook_id}/secret-rotationtemplate · docs-sandbox-ci
activateWebhookSecretRotationPOST/v1/webhooks/{webhook_id}/secret-rotation/activatetemplate · docs-sandbox-ci
cancelWebhookSecretRotationPOST/v1/webhooks/{webhook_id}/secret-rotation/canceltemplate · docs-sandbox-ci
acknowledgeWebhookIncidentPOST/v1/webhooks/{webhook_id}/incidents/acknowledgetemplate · docs-sandbox-ci
listWebhookDeliveriesGET/v1/webhook-deliveriestemplate · docs-sandbox-ci
searchProductsGET/v1/searchtemplate · docs-sandbox-ci
compareProductsGET/v1/comparetemplate · docs-sandbox-ci
getProductComparisonGET/v1/products/{canonical_product_id}template · docs-sandbox-ci
getProductPriceHistoryGET/v1/products/{canonical_product_id}/historytemplate · docs-sandbox-ci
listPriceWatchesGET/v1/watchliststemplate · docs-sandbox-ci
createPriceWatchPOST/v1/watchliststemplate · docs-sandbox-ci
updatePriceWatchPATCH/v1/watchlists/{watch_id}template · docs-sandbox-ci
deletePriceWatchDELETE/v1/watchlists/{watch_id}contract-derived · docs-sandbox-ci
listPricingRecommendationsGET/v1/pricing/recommendationstemplate · docs-sandbox-ci
listAssortmentOpportunitiesGET/v1/assortment/opportunitiestemplate · docs-sandbox-ci
listSourcingOptionsGET/v1/sourcing/optionstemplate · docs-sandbox-ci
listCampaignSignalsGET/v1/campaigns/signalstemplate · docs-sandbox-ci
putSourceSnapshotPUT/v1/sources/{source_id}/snapshottemplate · docs-sandbox-ci
getWebhookMetricsGET/v1/webhook-metricstemplate · docs-sandbox-ci
listWebhookAuditGET/v1/webhook-audittemplate · docs-sandbox-ci
testWebhookPOST/v1/webhooks/{webhook_id}/testtemplate · docs-sandbox-ci
retryWebhookDeliveryPOST/v1/webhook-deliveries/{delivery_id}/retrytemplate · docs-sandbox-ci
importMerchantCatalogPUT/v1/merchant/catalogtemplate · docs-sandbox-ci
getMerchantCoverageGET/v1/merchant/coveragetemplate · docs-sandbox-ci
resolveProductsPOST/v1/products/resolvetemplate · docs-sandbox-ci
getOffersBatchPOST/v1/offers/batchtemplate · docs-sandbox-ci
managePriceWatchesBatchPOST/v1/watchlists/batchtemplate · 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-catalog
Authentication required
listConnectedProductslistConnectedProducts

Code 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
getConnectedProductgetConnectedProduct

Code 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}/history
Authentication required
getConnectedProductHistorygetConnectedProductHistory

Code 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/webhooks
Authentication required
listWebhookslistWebhooks

Code 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
}
JSON
POST/v1/webhooks
Authentication required
createWebhookcreateWebhook

Request bodyRequired

application/json

Code 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
}
JSON
PATCH/v1/webhooks/{webhook_id}
Authentication required
updateWebhookupdateWebhook

Request bodyRequired

application/json

Code 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
deleteWebhookdeleteWebhook

Code 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-rotation
Authentication required
prepareWebhookSecretRotationprepareWebhookSecretRotation

Code 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
}
JSON
POST/v1/webhooks/{webhook_id}/secret-rotation/activate
Authentication required
activateWebhookSecretRotationactivateWebhookSecretRotation

Request bodyRequired

application/json

Code 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"
}
JSON
POST/v1/webhooks/{webhook_id}/secret-rotation/cancel
Authentication required
cancelWebhookSecretRotationcancelWebhookSecretRotation

Request bodyRequired

application/json

Code 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"
}
JSON
POST/v1/webhooks/{webhook_id}/incidents/acknowledge
Authentication required
acknowledgeWebhookIncidentacknowledgeWebhookIncident

Request bodyRequired

application/json

Code 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-deliveries
Authentication required
listWebhookDeliverieslistWebhookDeliveries

Code 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/search
Authentication required
searchProductssearchProducts

Code 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/compare
Authentication required
compareProductscompareProducts

Code 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
getProductComparisongetProductComparison

Code 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}/history
Authentication required
getProductPriceHistorygetProductPriceHistory

Code 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/watchlists
Authentication required
listPriceWatcheslistPriceWatches

Code 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"
}
JSON
POST/v1/watchlists
Authentication required
createPriceWatchcreatePriceWatch

Request bodyRequired

application/json

Code 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"
}
JSON
PATCH/v1/watchlists/{watch_id}
Authentication required
updatePriceWatchupdatePriceWatch

Request bodyRequired

application/json

Code 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
deletePriceWatchdeletePriceWatch

Code 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
null
listPricingRecommendations · 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/recommendations
Authentication required
listPricingRecommendationslistPricingRecommendations

Code 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/opportunities
Authentication required
listAssortmentOpportunitieslistAssortmentOpportunities

Code 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/options
Authentication required
listSourcingOptionslistSourcingOptions

Code 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/signals
Authentication required
listCampaignSignalslistCampaignSignals

Code 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"
      }
    }
  ]
}
JSON
PUT/v1/sources/{source_id}/snapshot
Authentication required
putSourceSnapshotputSourceSnapshot

Request bodyRequired

application/json

Code 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-metrics
Authentication required
getWebhookMetricsgetWebhookMetrics

Code 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-audit
Authentication required
listWebhookAuditlistWebhookAudit

Code 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
}
JSON
POST/v1/webhooks/{webhook_id}/test
Authentication required
testWebhooktestWebhook

Request bodyRequired

application/json

Code 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}/retry
Authentication required
retryWebhookDeliveryretryWebhookDelivery

Code 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": [
    {}
  ]
}
JSON
PUT/v1/merchant/catalog
Authentication required
importMerchantCatalogimportMerchantCatalog

Request bodyRequired

application/json

Code 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/coverage
Authentication required
getMerchantCoveragegetMerchantCoverage

Code 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"
    }
  ]
}
JSON
POST/v1/products/resolve
Authentication required
resolveProductsresolveProducts

Request bodyRequired

application/json

Code 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"
    }
  ]
}
JSON
POST/v1/offers/batch
Authentication required
getOffersBatchgetOffersBatch

Request bodyRequired

application/json

Code 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"
    }
  ]
}
JSON
POST/v1/watchlists/batch
Authentication required
managePriceWatchesBatchmanagePriceWatchesBatch

Request bodyRequired

application/json

Code 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
}
Was this page helpful?