---
title: "Embed Impression Record"
method: POST
path: "/v1/embed/impression"
---

# Embed Impression Record

`POST /v1/embed/impression`

## Request

- Base URL: `https://api.storyflo.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.storyflo.com/v1/embed/impression`
- Auth: none declared

Record a Storyflo embed page-view from a third-party merchant
site. The frontend embed route fires this on mount; merchants
don't need to instrument anything.

Validates that surface=article carries article_slug and surface=
feed carries vertical. Both null = 422. ip_hash + listener_token_
hash are set when available — both used for the rev-share audit
(qualified impressions are the ones that produce a listener click-
through to storyflo.com).

## Request body

- MerchantEmbedImpressionBody
  - `merchant_id` string, required
  - `surface` string, required
  - `article_slug` string, nullable
  - `vertical` string, nullable
  - `listener_token` string, nullable

## Response `200`

Successful Response

- object

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/storyflo/apis/storyflo-inference-router.md) · [All operations](https://skmtc.dev/storyflo/apis/storyflo-inference-router/llms.txt) · [OpenAPI document](https://skmtc.dev/storyflo/apis/storyflo-inference-router/revisions/c3a1a735ac7a?raw)
