sell_out

Recognise a retailer's report and say what would happen, writes nothing

Preview the recognized profile, period, matched rows and refusal reasons without importing sell-out. account_id is optional; when supplied, the account's confirmed declaration and mapping are used. Unrecognized account reports return a mapping proposal for review. Preview outcome counts use the same resolver as import; rows_written and rows_changed remain zero. Send original CSV/XLSX/XLS bytes inline (up to 8 MiB), or use /files/presigned-url and send application/json with exactly {"s3_key":"organization/user/uploaded-file.csv"} (up to 100 MiB). Uploaded keys must belong to the authenticated organization; foreign keys and URLs are refused. Both sources use the same native retailer parser and preserve its period and provenance. Use import_sell_out to record the report; preview never imports it. Use get_sell_out_declaration to check the account declaration without supplying a file. Requires Tightly Connect; unavailable plans return 403 plan_excludes.

Scope: sell_out:write, which includes sell_out:read.

post/api/v1/sell-out/preview

Request

  • Base URL: https://api.app.tightly.io
  • URL: https://api.app.tightly.io/api/v1/sell-out/preview
  • Auth: HTTP bearer

Query parameters

account_idstring

The account, when it is known. Given it, the preview asks only what has moved since this account last confirmed, and a file no profile recognises comes back as a column mapping to confirm rather than as a refusal.

file_namestring

What the file was called, recorded against the mapping proposal so a person reviewing it later can tell which upload it was matched from. Ignored on a file a profile already recognises.

Headers

Tightly-Versionstring
Example:2026-11

The date train to answer on. One train exists today, 2026-11, the one this reference describes and the one every key is minted on, so the call answers on it with or without this header. Send it anyway, so a client built now names its train from the start.

Idempotency-Keystring
Example:b8f1c0d2-6a4e-4f39-9c21-0d5f2e7a1b44

A string of your own, up to 255 characters, that makes this write safe to retry. Send the same key twice and the second request is answered with the first one's status and body instead of writing again, so a client that retried after a timeout ends holding the record's id rather than creating a second one. Reusing a key with a different body, or while the first request is still running, is refused 409. A write that failed releases its key. Keys answer for 24 hours and belong to the API key that used them. A key longer than 255 characters is ignored and the write goes ahead without the guarantee.

Request body

s3_keystring required

Key from the authenticated organization's existing presigned upload flow.

Response

What the import would do. rows_written and rows_changed are zero here by construction, this call writes nothing.

messageobject

severity, service and desc.

Changes

No recorded changes to this operation across all 1 revision of this API.