Skip to documentation content
HintadataDocs

API reference

Request fields, response objects, and status codes.

In this guide
  1. 1Authenticate server-side
  2. 2Search and compare products
  3. 3Manage price watches
In this guide
  1. 1Authenticate server-side
  2. 2Search and compare products
  3. 3Manage price watches

Canonical v1 contract

The Hintadata OpenAPI contract is the source of truth for generated SDK methods, request models, response models, errors, and examples. SDK clients use the production v1 base URL and a server-side Bearer API key.

Catalog and comparison operations

Use searchProducts to resolve a normalized product identifier, compareProducts for a two-to-four product decision view, getProductComparison for current delivered offers, and getProductPriceHistory for aggregate or store-specific price history.

Errors and retries

Validate inputs before sending them. Retry temporary 429 and 5xx responses according to Retry-After and the SDK retry policy; do not retry authentication, validation, or not-found errors without changing the request.

GET /v1/connected-catalog

GET/v1/connected-catalog
Authentication required
List products from the independent backendlistConnectedProducts

Reads the explicitly bound workspace and environment. No demo fallback. Monetary values in this catalogue are decimal strings.

Parameters

qquerystringOptional
limitqueryintegerOptional
cursorquerystringOptional

Code examples

cURLillustrative
Example trust: illustrativeShows the shape or idea; do not use it unchanged in production.
curl --fail-with-body -X GET "https://hintadata.fi/v1/connected-catalog?q=&limit=50&cursor=" \
  -H "Authorization: Bearer $HINTADATA_API_KEY"

Responses7

200Source-owned productsapplication/json
{
  "items": [],
  "total": 0,
  "limit": 0,
  "next_cursor": ""
}
Generated from the status contract
400Invalid request
{
  "error": {
    "code": "request_failed",
    "message": "Invalid request",
    "request_id": "req_example"
  }
}
Generated from the status contract
401Authentication required
{
  "error": {
    "code": "unauthorized",
    "message": "Authentication required",
    "request_id": "req_example"
  }
}
Generated from the status contract
403Workspace, scope or entitlement denied
{
  "error": {
    "code": "forbidden",
    "message": "Workspace, scope or entitlement denied",
    "request_id": "req_example"
  }
}
Generated from the status contract
429Quota exceeded
{
  "error": {
    "code": "rate_limited",
    "message": "Quota exceeded",
    "request_id": "req_example"
  }
}
Generated from the status contract
502Invalid backend response
{
  "error": {
    "code": "server_error",
    "message": "Invalid backend response",
    "request_id": "req_example"
  }
}
Generated from the status contract
503Backend not available or configured
{
  "error": {
    "code": "server_error",
    "message": "Backend not available or configured",
    "request_id": "req_example"
  }
}
Generated from the status contract
Try itSandbox

GET /v1/connected-catalog/{productId}

GET/v1/connected-catalog/{productId}
Authentication required
Inspect observed offers and comparable price groupsgetConnectedProduct

Parameters

productIdpathstringRequired

Code examples

cURLillustrative
Example trust: illustrativeShows the shape or idea; do not use it unchanged in production.
curl --fail-with-body -X GET "https://hintadata.fi/v1/connected-catalog/" \
  -H "Authorization: Bearer $HINTADATA_API_KEY"

Responses8

200Observed productapplication/json
{
  "canonical_product_id": "",
  "title": "",
  "brand": "",
  "variant": "",
  "gtin": "",
  "match_status": "matched",
  "match_method": "exact_gtin",
  "offers": [],
  "comparison_groups": [],
  "freshness_max_hours": 0
}
Generated from the status contract
400Invalid request
{
  "error": {
    "code": "request_failed",
    "message": "Invalid request",
    "request_id": "req_example"
  }
}
Generated from the status contract
401Authentication required
{
  "error": {
    "code": "unauthorized",
    "message": "Authentication required",
    "request_id": "req_example"
  }
}
Generated from the status contract
403Workspace, scope or entitlement denied
{
  "error": {
    "code": "forbidden",
    "message": "Workspace, scope or entitlement denied",
    "request_id": "req_example"
  }
}
Generated from the status contract
404Product not found
{
  "error": {
    "code": "not_found",
    "message": "Product not found",
    "request_id": "req_example"
  }
}
Generated from the status contract
429Quota exceeded
{
  "error": {
    "code": "rate_limited",
    "message": "Quota exceeded",
    "request_id": "req_example"
  }
}
Generated from the status contract
502Invalid backend response
{
  "error": {
    "code": "server_error",
    "message": "Invalid backend response",
    "request_id": "req_example"
  }
}
Generated from the status contract
503Backend unavailable
{
  "error": {
    "code": "server_error",
    "message": "Backend unavailable",
    "request_id": "req_example"
  }
}
Generated from the status contract
Try itSandbox

GET /v1/connected-catalog/{productId}/history

GET/v1/connected-catalog/{productId}/history
Authentication required
Inspect observed price history without interpolationgetConnectedProductHistory

Parameters

productIdpathstringRequired
limitqueryintegerOptional
cursorquerystringOptional

Code examples

cURLillustrative
Example trust: illustrativeShows the shape or idea; do not use it unchanged in production.
curl --fail-with-body -X GET "https://hintadata.fi/v1/connected-catalog//history?limit=50&cursor=" \
  -H "Authorization: Bearer $HINTADATA_API_KEY"

Responses9

200Observed historyapplication/json
{
  "items": [],
  "next_cursor": "",
  "order": "observed",
  "coverage": {
    "event_count": 0,
    "first_observed_at": "",
    "last_observed_at": ""
  },
  "gaps": []
}
Generated from the status contract
400Invalid request
{
  "error": {
    "code": "request_failed",
    "message": "Invalid request",
    "request_id": "req_example"
  }
}
Generated from the status contract
401Authentication required
{
  "error": {
    "code": "unauthorized",
    "message": "Authentication required",
    "request_id": "req_example"
  }
}
Generated from the status contract
403Workspace, scope or entitlement denied
{
  "error": {
    "code": "forbidden",
    "message": "Workspace, scope or entitlement denied",
    "request_id": "req_example"
  }
}
Generated from the status contract
404Product not found
{
  "error": {
    "code": "not_found",
    "message": "Product not found",
    "request_id": "req_example"
  }
}
Generated from the status contract
422Invalid or expired cursor
{
  "error": {
    "code": "validation_error",
    "message": "Invalid or expired cursor",
    "request_id": "req_example"
  }
}
Generated from the status contract
429Quota exceeded
{
  "error": {
    "code": "rate_limited",
    "message": "Quota exceeded",
    "request_id": "req_example"
  }
}
Generated from the status contract
502Invalid backend response
{
  "error": {
    "code": "server_error",
    "message": "Invalid backend response",
    "request_id": "req_example"
  }
}
Generated from the status contract
503Backend unavailable
{
  "error": {
    "code": "server_error",
    "message": "Backend unavailable",
    "request_id": "req_example"
  }
}
Generated from the status contract
Try itSandbox

GET /v1/webhooks

GET/v1/webhooks
Authentication required
list WebhookslistWebhooks

Requires webhooks:write and webhooks:manage. Tenant and test/live mode come from the API key.

Code examples

cURLillustrative
Example trust: illustrativeShows the shape or idea; do not use it unchanged in production.
curl --fail-with-body -X GET "https://hintadata.fi/v1/webhooks" \
  -H "Authorization: Bearer $HINTADATA_API_KEY"

Responses8

200Successful responseapplication/json
{
  "items": []
}
Generated from the status contract
400Request rejected; inspect the safe error code.application/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
401Request rejected; inspect the safe error code.application/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
403Request rejected; inspect the safe error code.application/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
404Request rejected; inspect the safe error code.application/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
409Request rejected; inspect the safe error code.application/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
429Request rejected; inspect the safe error code.application/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
503Request rejected; inspect the safe error code.application/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
Try itSandbox

POST /v1/webhooks

POST/v1/webhooks
Authentication required
create WebhookcreateWebhook

Requires webhooks:write and webhooks:manage. Tenant and test/live mode come from the API key.

Parameters

Idempotency-KeyheaderstringRequired

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 "https://hintadata.fi/v1/webhooks" \
  -H "Authorization: Bearer $HINTADATA_API_KEY" \
  -H "Content-Type: application/json" \
  --data '{
  "url": "",
  "events": [],
  "enabled": true
}'

Responses8

201Successful responseapplication/json
{
  "rotation": {
    "id": "",
    "prepared_at": 0,
    "expires_at": 0
  },
  "breaker": {
    "failures": 0,
    "open_until": 0,
    "probe_until": 0
  },
  "incident": {
    "id": "",
    "status": "open",
    "opened_at": 0,
    "acknowledged_at": 0,
    "resolved_at": 0,
    "code": ""
  },
  "id": "",
  "url": "",
  "events": [],
  "enabled": true,
  "created_at": "",
  "secret": ""
}
Generated from the status contract
400Request rejected; inspect the safe error code.application/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
401Request rejected; inspect the safe error code.application/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
403Request rejected; inspect the safe error code.application/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
404Request rejected; inspect the safe error code.application/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
409Request rejected; inspect the safe error code.application/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
429Request rejected; inspect the safe error code.application/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
503Request rejected; inspect the safe error code.application/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
Try itSandbox

PATCH /v1/webhooks/{webhook_id}

PATCH/v1/webhooks/{webhook_id}
Authentication required
update WebhookupdateWebhook

Requires webhooks:write and webhooks:manage. Tenant and test/live mode come from the API key.

Parameters

webhook_idpathstringRequired
Idempotency-KeyheaderstringOptional

Optional replay key for update/delete. Repeating an identical keyed request returns its original result for 24 hours without repeating cancellation or audit effects.

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 "https://hintadata.fi/v1/webhooks/" \
  -H "Authorization: Bearer $HINTADATA_API_KEY" \
  -H "Content-Type: application/json" \
  --data '{
  "url": "",
  "events": [],
  "enabled": true
}'

Responses8

200Successful responseapplication/json
{
  "rotation": {
    "id": "",
    "prepared_at": 0,
    "expires_at": 0
  },
  "breaker": {
    "failures": 0,
    "open_until": 0,
    "probe_until": 0
  },
  "incident": {
    "id": "",
    "status": "open",
    "opened_at": 0,
    "acknowledged_at": 0,
    "resolved_at": 0,
    "code": ""
  },
  "id": "",
  "url": "",
  "events": [],
  "enabled": true,
  "created_at": ""
}
Generated from the status contract
400Request rejected; inspect the safe error code.application/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
401Request rejected; inspect the safe error code.application/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
403Request rejected; inspect the safe error code.application/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
404Request rejected; inspect the safe error code.application/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
409Request rejected; inspect the safe error code.application/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
429Request rejected; inspect the safe error code.application/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
503Request rejected; inspect the safe error code.application/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
Try itSandbox

DELETE /v1/webhooks/{webhook_id}

DELETE/v1/webhooks/{webhook_id}
Authentication required
delete WebhookdeleteWebhook

Requires webhooks:write and webhooks:manage. Tenant and test/live mode come from the API key.

Parameters

webhook_idpathstringRequired
Idempotency-KeyheaderstringOptional

Optional replay key for update/delete. Repeating an identical keyed request returns its original result for 24 hours without repeating cancellation or audit effects.

Code examples

cURLillustrative
Example trust: illustrativeShows the shape or idea; do not use it unchanged in production.
curl --fail-with-body -X DELETE "https://hintadata.fi/v1/webhooks/" \
  -H "Authorization: Bearer $HINTADATA_API_KEY"

Responses8

200Successful responseapplication/json
{
  "deleted": false
}
Generated from the status contract
400Request rejected; inspect the safe error code.application/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
401Request rejected; inspect the safe error code.application/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
403Request rejected; inspect the safe error code.application/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
404Request rejected; inspect the safe error code.application/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
409Request rejected; inspect the safe error code.application/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
429Request rejected; inspect the safe error code.application/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
503Request rejected; inspect the safe error code.application/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
Try itSandbox

POST /v1/webhooks/{webhook_id}/secret-rotation

POST/v1/webhooks/{webhook_id}/secret-rotation
Authentication required
Prepare a signing secret without activating itprepareWebhookSecretRotation

Requires webhooks:write and webhooks:manage. Returns a pending secret and rotation.id; install both secrets at your receiver before activating. Preparation expires after 24 hours. The current signing secret remains active. Idempotent replays return the original secret response for 24 hours.

Parameters

webhook_idpathstringRequired
Idempotency-KeyheaderstringRequired

Code examples

cURLillustrative
Example trust: illustrativeShows the shape or idea; do not use it unchanged in production.
curl --fail-with-body -X POST "https://hintadata.fi/v1/webhooks//secret-rotation" \
  -H "Authorization: Bearer $HINTADATA_API_KEY"

Responses8

200Successful responseapplication/json
{
  "rotation": {
    "id": "",
    "prepared_at": 0,
    "expires_at": 0
  },
  "breaker": {
    "failures": 0,
    "open_until": 0,
    "probe_until": 0
  },
  "incident": {
    "id": "",
    "status": "open",
    "opened_at": 0,
    "acknowledged_at": 0,
    "resolved_at": 0,
    "code": ""
  },
  "id": "",
  "url": "",
  "events": [],
  "enabled": true,
  "created_at": "",
  "secret": ""
}
Generated from the status contract
400Request rejected; inspect the safe error code.application/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
401Request rejected; inspect the safe error code.application/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
403Request rejected; inspect the safe error code.application/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
404Request rejected; inspect the safe error code.application/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
409Request rejected; inspect the safe error code.application/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
429Request rejected; inspect the safe error code.application/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
503Request rejected; inspect the safe error code.application/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
Try itSandbox

POST /v1/webhooks/{webhook_id}/secret-rotation/activate

POST/v1/webhooks/{webhook_id}/secret-rotation/activate
Authentication required
Activate a prepared signing secretactivateWebhookSecretRotation

Requires webhooks:write and webhooks:manage. Explicitly confirm the receiver accepts the prepared secret. Signing switches atomically. Keep accepting the old secret for at least 60 seconds for in-flight requests, then retire it at the receiver. Never returns secret material.

Parameters

webhook_idpathstringRequired
Idempotency-KeyheaderstringRequired

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 "https://hintadata.fi/v1/webhooks//secret-rotation/activate" \
  -H "Authorization: Bearer $HINTADATA_API_KEY" \
  -H "Content-Type: application/json" \
  --data '{
  "rotation_id": "",
  "confirm": true
}'

Responses2

200Activated subscriptionapplication/json
{
  "rotation": {
    "id": "",
    "prepared_at": 0,
    "expires_at": 0
  },
  "breaker": {
    "failures": 0,
    "open_until": 0,
    "probe_until": 0
  },
  "incident": {
    "id": "",
    "status": "open",
    "opened_at": 0,
    "acknowledged_at": 0,
    "resolved_at": 0,
    "code": ""
  },
  "id": "",
  "url": "",
  "events": [],
  "enabled": true,
  "created_at": ""
}
Generated from the status contract
defaultSafe error code; authentication (401), authorization (403), missing subscription (404), invalid input (400), stale intent (409), capacity (429), or unavailable storage/encryption (503).application/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
Try itSandbox

POST /v1/webhooks/{webhook_id}/secret-rotation/cancel

POST/v1/webhooks/{webhook_id}/secret-rotation/cancel
Authentication required
Cancel a prepared signing secretcancelWebhookSecretRotation

Requires webhooks:write and webhooks:manage. Discards the preparation without changing the active signing secret. Remove the unused pending secret from the receiver.

Parameters

webhook_idpathstringRequired
Idempotency-KeyheaderstringRequired

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 "https://hintadata.fi/v1/webhooks//secret-rotation/cancel" \
  -H "Authorization: Bearer $HINTADATA_API_KEY" \
  -H "Content-Type: application/json" \
  --data '{
  "rotation_id": ""
}'

Responses2

200Unchanged active subscriptionapplication/json
{
  "rotation": {
    "id": "",
    "prepared_at": 0,
    "expires_at": 0
  },
  "breaker": {
    "failures": 0,
    "open_until": 0,
    "probe_until": 0
  },
  "incident": {
    "id": "",
    "status": "open",
    "opened_at": 0,
    "acknowledged_at": 0,
    "resolved_at": 0,
    "code": ""
  },
  "id": "",
  "url": "",
  "events": [],
  "enabled": true,
  "created_at": ""
}
Generated from the status contract
defaultSafe error code; authentication (401), authorization (403), missing subscription (404), invalid input (400), stale intent (409), capacity (429), or unavailable storage/encryption (503).application/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
Try itSandbox

POST /v1/webhooks/{webhook_id}/incidents/acknowledge

POST/v1/webhooks/{webhook_id}/incidents/acknowledge
Authentication required
Acknowledge the current receiver incidentacknowledgeWebhookIncident

Requires webhooks:write and webhooks:manage. Stops reminders, not retries or cooldown. Successful delivery resolves the incident and emits a recovery notification. Old failed deliveries remain in history.

Parameters

webhook_idpathstringRequired
Idempotency-KeyheaderstringRequired

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 "https://hintadata.fi/v1/webhooks//incidents/acknowledge" \
  -H "Authorization: Bearer $HINTADATA_API_KEY" \
  -H "Content-Type: application/json" \
  --data '{
  "incident_id": ""
}'

Responses2

200Acknowledged incident on subscriptionapplication/json
{
  "rotation": {
    "id": "",
    "prepared_at": 0,
    "expires_at": 0
  },
  "breaker": {
    "failures": 0,
    "open_until": 0,
    "probe_until": 0
  },
  "incident": {
    "id": "",
    "status": "open",
    "opened_at": 0,
    "acknowledged_at": 0,
    "resolved_at": 0,
    "code": ""
  },
  "id": "",
  "url": "",
  "events": [],
  "enabled": true,
  "created_at": ""
}
Generated from the status contract
defaultSafe error code; authentication (401), authorization (403), missing subscription (404), invalid input (400), stale intent (409), capacity (429), or unavailable storage/encryption (503).application/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
Try itSandbox

GET /v1/webhook-deliveries

GET/v1/webhook-deliveries
Authentication required
list Webhook DeliverieslistWebhookDeliveries

Requires webhooks:write and webhooks:manage. Tenant and test/live mode come from the API key.

Parameters

subscription_idquerystringOptional
limitqueryintegerOptional
offsetqueryintegerOptional

Code examples

cURLillustrative
Example trust: illustrativeShows the shape or idea; do not use it unchanged in production.
curl --fail-with-body -X GET "https://hintadata.fi/v1/webhook-deliveries?subscription_id=&limit=25&offset=0" \
  -H "Authorization: Bearer $HINTADATA_API_KEY"

Responses8

200Successful responseapplication/json
{
  "items": [],
  "total": 0,
  "next_offset": ""
}
Generated from the status contract
400Request rejected; inspect the safe error code.application/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
401Request rejected; inspect the safe error code.application/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
403Request rejected; inspect the safe error code.application/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
404Request rejected; inspect the safe error code.application/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
409Request rejected; inspect the safe error code.application/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
429Request rejected; inspect the safe error code.application/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
503Request rejected; inspect the safe error code.application/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
Try itSandbox

GET /v1/search

GET/v1/search
Authentication required
Search normalized productssearchProducts

Find normalized products by AND-matching query tokens against product name, EAN or canonical ID, in stable source order. min_price is the lowest known available delivered price, or null; store_count counts distinct available stores.

Parameters

X-API-VersionheaderstringOptional
qquerystringRequired

Product name, model, alias, or EAN.

limitqueryintegerOptional
offsetqueryintegerOptional

Code examples

cURLillustrative
Example trust: illustrativeShows the shape or idea; do not use it unchanged in production.
curl --fail-with-body -X GET "https://hintadata.fi/v1/search?q=sony+xm5&limit=25&offset=0" \
  -H "Authorization: Bearer $HINTADATA_API_KEY"

Responses10

200Ranked product matchesapplication/json
{
  "query": "",
  "total": 0,
  "items": [],
  "next_offset": "",
  "evidence": {
    "source_id": "",
    "source_ref": "",
    "observed_at": "",
    "expires_at": "",
    "market": "",
    "currency": "",
    "tax_basis": "inclusive"
  }
}
Generated from the status contract
400Invalid requestapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
401API key requiredapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
403Scope or entitlement deniedapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
404Resource not foundapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
409Concurrent change or idempotency conflictapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
413Request too largeapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
429Rate or capacity limitapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
500Temporary server errorapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
503Source data or delivery is unavailableapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
Try itSandbox

GET /v1/compare

GET/v1/compare
Authentication required
Compare two to four productscompareProducts

Compare observed delivered prices for two to four exact product IDs. No suitability ranking or historic range. best_offer is null when no known available offer exists. Use product history separately.

Parameters

X-API-VersionheaderstringOptional
idsquerystringOptional

Comma-separated list of two to four canonical product identifiers.

idquerystring[]Optional

Repeated product ID alternative to ids. Select two to four distinct IDs in total.

Code examples

cURLillustrative
Example trust: illustrativeShows the shape or idea; do not use it unchanged in production.
curl --fail-with-body -X GET "https://hintadata.fi/v1/compare?ids=sony_wh1000xm5_black%2Csony_wh1000xm6_black&id=" \
  -H "Authorization: Bearer $HINTADATA_API_KEY"

Responses10

200Product comparisonapplication/json
{
  "products": [],
  "evidence": {
    "source_id": "",
    "source_ref": "",
    "observed_at": "",
    "expires_at": "",
    "market": "",
    "currency": "",
    "tax_basis": "inclusive"
  }
}
Generated from the status contract
400Invalid requestapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
401API key requiredapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
403Scope or entitlement deniedapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
404Resource not foundapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
409Concurrent change or idempotency conflictapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
413Request too largeapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
429Rate or capacity limitapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
500Temporary server errorapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
503Source data or delivery is unavailableapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
Try itSandbox

GET /v1/products/{canonical_product_id}

GET/v1/products/{canonical_product_id}
Authentication required
Get one product and its current offersgetProductComparison

Parameters

X-API-VersionheaderstringOptional
canonical_product_idpathstringRequired

Code examples

cURLillustrative
Example trust: illustrativeShows the shape or idea; do not use it unchanged in production.
curl --fail-with-body -X GET "https://hintadata.fi/v1/products/sony_wh1000xm5_black" \
  -H "Authorization: Bearer $HINTADATA_API_KEY"

Responses10

200Product identity, offers, and recommendationapplication/json
{
  "canonical_product_id": "",
  "product_name": "",
  "product": {
    "canonical_product_id": "",
    "product_name": "",
    "brand": "",
    "model": "",
    "variant": "",
    "category": "",
    "ean": "",
    "match_confidence": 0,
    "match_status": "",
    "image_path": "",
    "specs": [],
    "comparison_name": "",
    "comparison_score": 0,
    "comparison_badge": "",
    "comparison_summary": ""
  },
  "offers": [],
  "decision": {
    "label": "",
    "store": "",
    "score": 0,
    "delivered_price": 0,
    "url": "",
    "rationale": "",
    "lowest_item_price": 0,
    "lowest_item_store": "",
    "evaluated_offer_count": 0,
    "updated_at": ""
  },
  "evidence": {
    "source_id": "",
    "source_ref": "",
    "observed_at": "",
    "expires_at": "",
    "market": "",
    "currency": "",
    "tax_basis": "inclusive"
  }
}
Generated from the status contract
400Invalid requestapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
401API key requiredapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
403Scope or entitlement deniedapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
404Resource not foundapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
409Concurrent change or idempotency conflictapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
413Request too largeapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
429Rate or capacity limitapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
500Temporary server errorapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
503Source data or delivery is unavailableapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
Try itSandbox

GET /v1/products/{canonical_product_id}/history

GET/v1/products/{canonical_product_id}/history
Authentication required
Get product or store price historygetProductPriceHistory

Returns aggregate price intelligence by default or chronological store price points when store is supplied.

Parameters

X-API-VersionheaderstringOptional
canonical_product_idpathstringRequired
rangequerystringOptional
enum: 7d, 30d, 90d, 1y
storequerystringOptional

Code examples

cURLillustrative
Example trust: illustrativeShows the shape or idea; do not use it unchanged in production.
curl --fail-with-body -X GET "https://hintadata.fi/v1/products/sony_wh1000xm5_black/history?range=90d&store=power.fi" \
  -H "Authorization: Bearer $HINTADATA_API_KEY"

Responses10

200Price intelligence or store historyapplication/json
{
  "canonical_product_id": "",
  "range": "7d",
  "series": [],
  "summary": {
    "current_price": "",
    "observation_count": 0
  },
  "evidence": {
    "source_id": "",
    "source_ref": "",
    "observed_at": "",
    "expires_at": "",
    "market": "",
    "currency": "",
    "tax_basis": "inclusive"
  }
}
Generated from the status contract
400Invalid requestapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
401API key requiredapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
403Scope or entitlement deniedapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
404Resource not foundapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
409Concurrent change or idempotency conflictapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
413Request too largeapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
429Rate or capacity limitapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
500Temporary server errorapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
503Source data or delivery is unavailableapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
Try itSandbox

GET /v1/watchlists

GET/v1/watchlists
Authentication required
List price watcheslistPriceWatches

Parameters

X-API-VersionheaderstringOptional
limitqueryintegerOptional
offsetqueryintegerOptional
statusquerystringOptional
enum: active, paused
canonical_product_idquerystringOptional

Code examples

cURLillustrative
Example trust: illustrativeShows the shape or idea; do not use it unchanged in production.
curl --fail-with-body -X GET "https://hintadata.fi/v1/watchlists?limit=25&offset=0&status=active&canonical_product_id=" \
  -H "Authorization: Bearer $HINTADATA_API_KEY"

Responses10

200Client-scoped watchesapplication/json
{
  "total": 0,
  "items": [],
  "next_offset": ""
}
Generated from the status contract
400Invalid requestapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
401API key requiredapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
403Scope or entitlement deniedapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
404Resource not foundapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
409Concurrent change or idempotency conflictapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
413Request too largeapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
429Rate or capacity limitapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
500Temporary server errorapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
503Source data or delivery is unavailableapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
Try itSandbox

POST /v1/watchlists

POST/v1/watchlists
Authentication required
Create a distinct merchant price watchcreatePriceWatch

Creates a new watch; never replaces another watch. Idempotency-Key replays the same request. Live delivery must be configured.

Parameters

X-API-VersionheaderstringOptional
Idempotency-KeyheaderstringRequired

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 "https://hintadata.fi/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"
}'

Responses10

201Price watch createdapplication/json
Response headersLocation
{
  "id": "",
  "canonical_product_id": "",
  "target_price": 0,
  "channel": "email",
  "destination": "",
  "status": "active",
  "created_at": "",
  "updated_at": "",
  "product": {
    "canonical_product_id": "",
    "product_name": "",
    "brand": "",
    "model": "",
    "variant": "",
    "image_path": "",
    "match_confidence": 0,
    "min_price": "",
    "store_count": 0,
    "relevance_score": 0
  },
  "current_price": "",
  "target_reached": false,
  "revision": 0,
  "condition": "target_price",
  "change_percent": 0,
  "merchant_sku": "",
  "availability": "available"
}
Generated from the status contract
400Invalid requestapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
401API key requiredapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
403Scope or entitlement deniedapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
404Resource not foundapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
409Concurrent change or idempotency conflictapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
413Request too largeapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
429Rate or capacity limitapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
500Temporary server errorapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
503Source data or delivery is unavailableapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
Try itSandbox

PATCH /v1/watchlists/{watch_id}

PATCH/v1/watchlists/{watch_id}
Authentication required
Update a price watchupdatePriceWatch

Parameters

X-API-VersionheaderstringOptional
watch_idpathstringRequired

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 "https://hintadata.fi/v1/watchlists/00000000-0000-4000-8000-000000000001" \
  -H "Authorization: Bearer $HINTADATA_API_KEY" \
  -H "Content-Type: application/json" \
  --data '{
  "expected_revision": 1,
  "target_price": 265,
  "status": "active"
}'

Responses10

200Updated price watchapplication/json
{
  "id": "",
  "canonical_product_id": "",
  "target_price": 0,
  "channel": "email",
  "destination": "",
  "status": "active",
  "created_at": "",
  "updated_at": "",
  "product": {
    "canonical_product_id": "",
    "product_name": "",
    "brand": "",
    "model": "",
    "variant": "",
    "image_path": "",
    "match_confidence": 0,
    "min_price": "",
    "store_count": 0,
    "relevance_score": 0
  },
  "current_price": "",
  "target_reached": false,
  "revision": 0,
  "condition": "target_price",
  "change_percent": 0,
  "merchant_sku": "",
  "availability": "available"
}
Generated from the status contract
400Invalid requestapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
401API key requiredapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
403Scope or entitlement deniedapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
404Resource not foundapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
409Concurrent change or idempotency conflictapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
413Request too largeapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
429Rate or capacity limitapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
500Temporary server errorapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
503Source data or delivery is unavailableapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
Try itSandbox

DELETE /v1/watchlists/{watch_id}

DELETE/v1/watchlists/{watch_id}
Authentication required
Delete a price watchdeletePriceWatch

Parameters

X-API-VersionheaderstringOptional
watch_idpathstringRequired

Code examples

cURLillustrative
Example trust: illustrativeShows the shape or idea; do not use it unchanged in production.
curl --fail-with-body -X DELETE "https://hintadata.fi/v1/watchlists/00000000-0000-4000-8000-000000000001" \
  -H "Authorization: Bearer $HINTADATA_API_KEY"

Responses10

204Price watch deleted
400Invalid requestapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
401API key requiredapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
403Scope or entitlement deniedapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
404Resource not foundapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
409Concurrent change or idempotency conflictapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
413Request too largeapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
429Rate or capacity limitapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
500Temporary server errorapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
503Source data or delivery is unavailableapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
Try itSandbox

GET /v1/pricing/recommendations

GET/v1/pricing/recommendations
Authentication required
Read PricingRecommendationslistPricingRecommendations

Parameters

limitqueryintegerOptional
offsetqueryintegerOptional
canonical_product_idquerystringOptional

Code examples

cURLillustrative
Example trust: illustrativeShows the shape or idea; do not use it unchanged in production.
curl --fail-with-body -X GET "https://hintadata.fi/v1/pricing/recommendations?limit=25&offset=0&canonical_product_id=" \
  -H "Authorization: Bearer $HINTADATA_API_KEY"

Responses9

200Successful responseapplication/json
{
  "items": [],
  "total": 0,
  "next_offset": "",
  "evidence": {
    "source_id": "",
    "source_ref": "",
    "observed_at": "",
    "expires_at": "",
    "market": "",
    "currency": "",
    "tax_basis": "inclusive"
  }
}
Generated from the status contract
400Invalid requestapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
401API key requiredapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
403Scope or entitlement deniedapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
404Resource not foundapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
409Concurrent change or idempotency conflictapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
413Request too largeapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
429Rate or capacity limitapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
503Source data or delivery is unavailableapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
Try itSandbox

GET /v1/assortment/opportunities

GET/v1/assortment/opportunities
Authentication required
Read AssortmentOpportunitieslistAssortmentOpportunities

Parameters

limitqueryintegerOptional
offsetqueryintegerOptional
canonical_product_idquerystringOptional

Code examples

cURLillustrative
Example trust: illustrativeShows the shape or idea; do not use it unchanged in production.
curl --fail-with-body -X GET "https://hintadata.fi/v1/assortment/opportunities?limit=25&offset=0&canonical_product_id=" \
  -H "Authorization: Bearer $HINTADATA_API_KEY"

Responses9

200Successful responseapplication/json
{
  "items": [],
  "total": 0,
  "next_offset": "",
  "evidence": {
    "source_id": "",
    "source_ref": "",
    "observed_at": "",
    "expires_at": "",
    "market": "",
    "currency": "",
    "tax_basis": "inclusive"
  }
}
Generated from the status contract
400Invalid requestapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
401API key requiredapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
403Scope or entitlement deniedapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
404Resource not foundapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
409Concurrent change or idempotency conflictapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
413Request too largeapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
429Rate or capacity limitapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
503Source data or delivery is unavailableapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
Try itSandbox

GET /v1/sourcing/options

GET/v1/sourcing/options
Authentication required
Read SourcingOptionslistSourcingOptions

Parameters

limitqueryintegerOptional
offsetqueryintegerOptional
canonical_product_idquerystringOptional

Code examples

cURLillustrative
Example trust: illustrativeShows the shape or idea; do not use it unchanged in production.
curl --fail-with-body -X GET "https://hintadata.fi/v1/sourcing/options?limit=25&offset=0&canonical_product_id=" \
  -H "Authorization: Bearer $HINTADATA_API_KEY"

Responses9

200Successful responseapplication/json
{
  "items": [],
  "total": 0,
  "next_offset": "",
  "evidence": {
    "source_id": "",
    "source_ref": "",
    "observed_at": "",
    "expires_at": "",
    "market": "",
    "currency": "",
    "tax_basis": "inclusive"
  }
}
Generated from the status contract
400Invalid requestapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
401API key requiredapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
403Scope or entitlement deniedapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
404Resource not foundapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
409Concurrent change or idempotency conflictapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
413Request too largeapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
429Rate or capacity limitapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
503Source data or delivery is unavailableapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
Try itSandbox

GET /v1/campaigns/signals

GET/v1/campaigns/signals
Authentication required
Read CampaignSignalslistCampaignSignals

Parameters

limitqueryintegerOptional
offsetqueryintegerOptional
canonical_product_idquerystringOptional

Code examples

cURLillustrative
Example trust: illustrativeShows the shape or idea; do not use it unchanged in production.
curl --fail-with-body -X GET "https://hintadata.fi/v1/campaigns/signals?limit=25&offset=0&canonical_product_id=" \
  -H "Authorization: Bearer $HINTADATA_API_KEY"

Responses9

200Successful responseapplication/json
{
  "items": [],
  "total": 0,
  "next_offset": "",
  "evidence": {
    "source_id": "",
    "source_ref": "",
    "observed_at": "",
    "expires_at": "",
    "market": "",
    "currency": "",
    "tax_basis": "inclusive"
  }
}
Generated from the status contract
400Invalid requestapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
401API key requiredapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
403Scope or entitlement deniedapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
404Resource not foundapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
409Concurrent change or idempotency conflictapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
413Request too largeapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
429Rate or capacity limitapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
503Source data or delivery is unavailableapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
Try itSandbox

PUT /v1/sources/{source_id}/snapshot

PUT/v1/sources/{source_id}/snapshot
Authentication required
Replace the tenant market evidence projection with a source-attributed snapshotputSourceSnapshot

Parameters

source_idpathstringRequired
Idempotency-KeyheaderstringRequired

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 "https://hintadata.fi/v1/sources//snapshot" \
  -H "Authorization: Bearer $HINTADATA_API_KEY" \
  -H "Content-Type: application/json" \
  --data '{
  "evidence": {
    "source_id": "",
    "source_ref": "",
    "observed_at": "",
    "expires_at": "",
    "market": "",
    "currency": "",
    "tax_basis": "inclusive"
  },
  "products": [],
  "supplier_offers": [],
  "campaign_signals": []
}'

Responses9

200Successful responseapplication/json
{
  "source_id": "",
  "observed_at": "",
  "products": 0,
  "events_queued": 0
}
Generated from the status contract
400Invalid requestapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
401API key requiredapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
403Scope or entitlement deniedapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
404Resource not foundapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
409Concurrent change or idempotency conflictapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
413Request too largeapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
429Rate or capacity limitapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
503Source data or delivery is unavailableapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
Try itSandbox

GET /v1/webhook-metrics

GET/v1/webhook-metrics
Authentication required
Read webhook delivery metricsgetWebhookMetrics

Requires webhooks:write and webhooks:manage. Tenant and test/live mode come from the verified credential.

Code examples

cURLillustrative
Example trust: illustrativeShows the shape or idea; do not use it unchanged in production.
curl --fail-with-body -X GET "https://hintadata.fi/v1/webhook-metrics" \
  -H "Authorization: Bearer $HINTADATA_API_KEY"

Responses8

200Successful responseapplication/json
{
  "active_incidents": 0,
  "unresolved_incidents": 0,
  "counts": {
    "pending": 0,
    "sending": 0,
    "delivered": 0,
    "failed": 0,
    "cancelled": 0
  },
  "oldest_pending_age_ms": 0,
  "observed_at": 0,
  "window_days": 7
}
Generated from the status contract
400Request rejected; inspect the safe error code.application/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
401Request rejected; inspect the safe error code.application/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
403Request rejected; inspect the safe error code.application/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
404Request rejected; inspect the safe error code.application/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
409Request rejected; inspect the safe error code.application/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
429Request rejected; inspect the safe error code.application/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
503Request rejected; inspect the safe error code.application/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
Try itSandbox

GET /v1/webhook-audit

GET/v1/webhook-audit
Authentication required
Read webhook management auditlistWebhookAudit

Requires webhooks:write and webhooks:manage. Tenant and test/live mode come from the verified credential.

Code examples

cURLillustrative
Example trust: illustrativeShows the shape or idea; do not use it unchanged in production.
curl --fail-with-body -X GET "https://hintadata.fi/v1/webhook-audit" \
  -H "Authorization: Bearer $HINTADATA_API_KEY"

Responses8

200Successful responseapplication/json
{
  "items": []
}
Generated from the status contract
400Request rejected; inspect the safe error code.application/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
401Request rejected; inspect the safe error code.application/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
403Request rejected; inspect the safe error code.application/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
404Request rejected; inspect the safe error code.application/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
409Request rejected; inspect the safe error code.application/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
429Request rejected; inspect the safe error code.application/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
503Request rejected; inspect the safe error code.application/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
Try itSandbox

POST /v1/webhooks/{webhook_id}/test

POST/v1/webhooks/{webhook_id}/test
Authentication required
Queue a confirmed synthetic webhook testtestWebhook

Requires webhooks:write and webhooks:manage. Tenant and test/live mode come from the verified credential. Live only. Requires explicit confirmation; queues webhook.test with data {test:true}, never customer data. One test per endpoint per minute. No network request is made until a worker claims the delivery.

Parameters

webhook_idpathstringRequired
Idempotency-KeyheaderstringRequired

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 "https://hintadata.fi/v1/webhooks//test" \
  -H "Authorization: Bearer $HINTADATA_API_KEY" \
  -H "Content-Type: application/json" \
  --data '{
  "confirm": true
}'

Responses8

200Successful responseapplication/json
{
  "attempt_history": [],
  "id": "",
  "event_id": "",
  "event_type": "",
  "subscription_id": "",
  "created_at": "",
  "status": "pending",
  "attempts": 0,
  "next_at": 0,
  "http_status": "",
  "completed_at": 0,
  "cycle_attempts": 0,
  "replays": 0,
  "last_error_code": ""
}
Generated from the status contract
400Request rejected; inspect the safe error code.application/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
401Request rejected; inspect the safe error code.application/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
403Request rejected; inspect the safe error code.application/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
404Request rejected; inspect the safe error code.application/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
409Request rejected; inspect the safe error code.application/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
429Request rejected; inspect the safe error code.application/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
503Request rejected; inspect the safe error code.application/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
Try itSandbox

POST /v1/webhook-deliveries/{delivery_id}/retry

POST/v1/webhook-deliveries/{delivery_id}/retry
Authentication required
Replay a failed current webhook deliveryretryWebhookDelivery

Requires webhooks:write and webhooks:manage. Tenant and test/live mode come from the verified credential. Live only. Up to three manual replays of failed deliveries within seven days. Destination and filters must be unchanged, subscription enabled and source observation current. Event and delivery IDs remain unchanged. Each cycle has eight attempts; idempotent for 24 hours.

Parameters

delivery_idpathstringRequired
Idempotency-KeyheaderstringRequired

Code examples

cURLillustrative
Example trust: illustrativeShows the shape or idea; do not use it unchanged in production.
curl --fail-with-body -X POST "https://hintadata.fi/v1/webhook-deliveries//retry" \
  -H "Authorization: Bearer $HINTADATA_API_KEY"

Responses8

200Successful responseapplication/json
{
  "attempt_history": [],
  "id": "",
  "event_id": "",
  "event_type": "",
  "subscription_id": "",
  "created_at": "",
  "status": "pending",
  "attempts": 0,
  "next_at": 0,
  "http_status": "",
  "completed_at": 0,
  "cycle_attempts": 0,
  "replays": 0,
  "last_error_code": ""
}
Generated from the status contract
400Request rejected; inspect the safe error code.application/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
401Request rejected; inspect the safe error code.application/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
403Request rejected; inspect the safe error code.application/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
404Request rejected; inspect the safe error code.application/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
409Request rejected; inspect the safe error code.application/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
429Request rejected; inspect the safe error code.application/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
503Request rejected; inspect the safe error code.application/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
Try itSandbox

PUT /v1/merchant/catalog

PUT/v1/merchant/catalog
Authentication required
Replace the bounded merchant catalog projection, independently of market evidence. Empty items explicitly represents an empty assortment. Prices and costs use the declared currency and tax basis; missing costs prevent pricing recommendations.importMerchantCatalog

Requires merchant:write. Replace the bounded merchant catalog projection, independently of market evidence. Empty items explicitly represents an empty assortment. Prices and costs use the declared currency and tax basis; missing costs prevent pricing recommendations.

Parameters

Idempotency-KeyheaderstringRequired

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 "https://hintadata.fi/v1/merchant/catalog" \
  -H "Authorization: Bearer $HINTADATA_API_KEY" \
  -H "Content-Type: application/json" \
  --data '{
  "evidence": {
    "source_id": "",
    "source_ref": "",
    "observed_at": "",
    "expires_at": "",
    "market": "",
    "currency": "",
    "tax_basis": "inclusive"
  },
  "items": []
}'

Responses9

200Successful responseapplication/json
{
  "imported": 0,
  "evidence": {
    "source_id": "",
    "source_ref": "",
    "observed_at": "",
    "expires_at": "",
    "market": "",
    "currency": "",
    "tax_basis": "inclusive"
  }
}
Generated from the status contract
400Invalid requestapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
401API key requiredapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
403Scope or entitlement deniedapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
404Resource not foundapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
409Concurrent change or idempotency conflictapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
413Request too largeapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
429Rate or capacity limitapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
503Source data or delivery is unavailableapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
Try itSandbox

GET /v1/merchant/coverage

GET/v1/merchant/coverage
Authentication required
Inspect catalog matching and evidence freshness, including missing or stale market data. This readiness query consumes no comparison credits.getMerchantCoverage

Requires intelligence:read. Inspect catalog matching and evidence freshness, including missing or stale market data. This readiness query consumes no comparison credits.

Parameters

limitqueryintegerOptional
offsetqueryintegerOptional
resolutionquerystringOptional
enum: matched, ambiguous, unmatched

Code examples

cURLillustrative
Example trust: illustrativeShows the shape or idea; do not use it unchanged in production.
curl --fail-with-body -X GET "https://hintadata.fi/v1/merchant/coverage?limit=25&offset=0&resolution=matched" \
  -H "Authorization: Bearer $HINTADATA_API_KEY"

Responses9

200Successful responseapplication/json
{
  "market_status": "missing",
  "merchant_status": "missing",
  "evidence": {
    "source_id": "",
    "source_ref": "",
    "observed_at": "",
    "expires_at": "",
    "market": "",
    "currency": "",
    "tax_basis": "inclusive"
  },
  "merchant_evidence": {
    "source_id": "",
    "source_ref": "",
    "observed_at": "",
    "expires_at": "",
    "market": "",
    "currency": "",
    "tax_basis": "inclusive"
  },
  "counts": {
    "imported": 0,
    "matched": 0,
    "ambiguous": 0,
    "unmatched": 0,
    "with_available_offers": 0
  },
  "total": 0,
  "next_offset": "",
  "items": []
}
Generated from the status contract
400Invalid requestapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
401API key requiredapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
403Scope or entitlement deniedapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
404Resource not foundapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
409Concurrent change or idempotency conflictapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
413Request too largeapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
429Rate or capacity limitapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
503Source data or delivery is unavailableapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
Try itSandbox

POST /v1/products/resolve

POST/v1/products/resolve
Authentication required
Resolve exact canonical IDs, checksum-valid GTINs or tenant-local merchant SKUs without fuzzy matching.resolveProducts

Requires catalog:read. Resolve exact canonical IDs, checksum-valid GTINs or tenant-local merchant SKUs without fuzzy matching. Read-only POST; 1–100 identifiers, preserves order, one comparison credit per input in live mode (including unmatched/ambiguous results). Test mode is free. No Idempotency-Key required.

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 "https://hintadata.fi/v1/products/resolve" \
  -H "Authorization: Bearer $HINTADATA_API_KEY" \
  -H "Content-Type: application/json" \
  --data '{
  "items": []
}'

Responses9

200Successful responseapplication/json
{
  "items": [],
  "evidence": {
    "source_id": "",
    "source_ref": "",
    "observed_at": "",
    "expires_at": "",
    "market": "",
    "currency": "",
    "tax_basis": "inclusive"
  }
}
Generated from the status contract
400Invalid requestapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
401API key requiredapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
403Scope or entitlement deniedapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
404Resource not foundapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
409Concurrent change or idempotency conflictapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
413Request too largeapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
429Rate or capacity limitapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
503Source data or delivery is unavailableapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
Try itSandbox

POST /v1/offers/batch

POST/v1/offers/batch
Authentication required
Read offers for a bounded identifier batch with per-item matching outcomes.getOffersBatch

Requires catalog:read. Read offers for a bounded identifier batch with per-item matching outcomes. Read-only POST; 1–100 identifiers, preserves order, one comparison credit per input in live mode (including unmatched/ambiguous results). Test mode is free. No Idempotency-Key required.

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 "https://hintadata.fi/v1/offers/batch" \
  -H "Authorization: Bearer $HINTADATA_API_KEY" \
  -H "Content-Type: application/json" \
  --data '{
  "items": []
}'

Responses9

200Successful responseapplication/json
{
  "items": [],
  "evidence": {
    "source_id": "",
    "source_ref": "",
    "observed_at": "",
    "expires_at": "",
    "market": "",
    "currency": "",
    "tax_basis": "inclusive"
  }
}
Generated from the status contract
400Invalid requestapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
401API key requiredapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
403Scope or entitlement deniedapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
404Resource not foundapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
409Concurrent change or idempotency conflictapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
413Request too largeapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
429Rate or capacity limitapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
503Source data or delivery is unavailableapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
Try itSandbox

POST /v1/watchlists/batch

POST/v1/watchlists/batch
Authentication required
Atomically pause, resume or delete up to 100 distinct watches. Every current revision must match; otherwise nothing is changed.managePriceWatchesBatch

Requires watchlists:write. Atomically pause, resume or delete up to 100 distinct watches. Every current revision must match; otherwise nothing is changed.

Parameters

Idempotency-KeyheaderstringRequired

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 "https://hintadata.fi/v1/watchlists/batch" \
  -H "Authorization: Bearer $HINTADATA_API_KEY" \
  -H "Content-Type: application/json" \
  --data '{
  "items": []
}'

Responses9

200Successful responseapplication/json
{
  "updated": 0
}
Generated from the status contract
400Invalid requestapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
401API key requiredapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
403Scope or entitlement deniedapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
404Resource not foundapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
409Concurrent change or idempotency conflictapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
413Request too largeapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
429Rate or capacity limitapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
503Source data or delivery is unavailableapplication/json
{
  "error": {
    "code": "",
    "message": ""
  },
  "request_id": ""
}
Generated from the status contract
Try itSandbox
Was this page helpful?