visibility
PUT /v1/visibility/targets/{targetId}/products
Set the products to price-track, and the seller names to look for.
인증
Bearer 토큰으로 API 키를 전송하세요. 이 엔드포인트는 명세에 특정 권한을 명시하지 않으므로, 가정하기보다는 키에 필요한 최소한의 권한을 부여하고 응답을 확인하세요.
이 엔드포인트는 조직 ID를 받지 않습니다. 사용자의 키가 이미 속한 조직을 식별하며, 응답은 해당 조직으로 한정됩니다.
무료 체험하기
대괄호 안에 있는 모든 내용을 사용자 지정 값으로 바꾸고, 키 플레이스홀더는 대시보드의 키로 바꾸세요.
curl -X PUT https://api.zinndigital.com/v1/visibility/targets/{targetId}/products \
-H "Authorization: Bearer zdk_live_…" \
-H "Content-Type: application/json" \
-d '{ }'로그인하셨나요? 대시보드의 API 콘솔이 실제 조직 ID와 본인의 키를 자동으로 채우고 라이브 API를 대상으로 요청을 실행하므로 실제 응답을 확인할 수 있습니다. API 콘솔에서 이 엔드포인트를 여세요
상세 정보
The products and the merchant names are set together because they are only useful together. With products and no seller name we can read the shelf and list who is on it, but we cannot say whether the customer is one of them — the audit reports `product_seller_unknown` and the score is `null`, which is honest rather than a claim that they are missing from Google Shopping. Nothing infers a seller name from the customer's domain. Measured against a live Google Shopping response: every listing carries a `seller` name and a **null** `domain`, so a near-match on a trading name is the only thing a guess could use — and a wrong one would report a stranger's price as the customer's own, on a screen they pay for, with nothing downstream able to detect it. Sending more products than the plan allows is refused with `422` naming the allowance. It is **not** truncated: silently auditing the first ten of two hundred reads as a complete list on the very screen the customer checks.
매개변수
| 이름 | 유형 | 필수 | 설명 |
|---|---|---|---|
targetId (path) | Uuid | 예 | The watched domain's id. |
요청 본문
| 이름 | 유형 | 필수 | 설명 |
|---|---|---|---|
products | TrackedProduct[] | 아니요 | — |
merchant_names | string[] | 아니요 | — |
응답
| 이름 | 유형 | 필수 | 설명 |
|---|---|---|---|
id | Uuid | 예 | UUIDv7 identifier — sortable by creation time (docs/02 §8). |
domain | string | 예 | The hostname |
label | string | 아니요 | The customer's own label for this domain. |
brand | string | 아니요 | The trading name to look for in an answer engine's reply. Genuinely separate from the domain — an answer that recommends a business by name without printing its URL has still me… |
category | string | 아니요 | What this business sells, in the customer's own words. The questions asked of the answer engines are built from it, so it is the single field that decides whether an AI-visibili… |
market | string | 아니요 | Where the business sells. Used with `category` to build the questions. |
is_external | boolean | 예 | True when this is not a domain hosted with us — a competitor or a prospect. Only external targets count against the plan's allowance. |
site_id | string | 아니요 | The site this target corresponds to, when it is one of ours. |
kinds | VisibilityAuditKind[] | 예 | — |
cadence_days | integer | 예 | Days between scheduled audits. `0` means paused — **not** deleted. History and settings survive and it resumes with no further action. |
next_due_at | string | 아니요 | — |
last_audit_at | string | 아니요 | — |
review_profiles | ReviewProfile[] | 아니요 | — |
products | TrackedProduct[] | 아니요 | The products this organisation has asked us to price-track. |
merchant_names | string[] | 아니요 | How this business appears as a **seller** on the marketplaces. Confirmed by the customer and never inferred: Google Shopping publishes a seller name and no domain on its listing… |
keywords | TrackedKeyword[] | 아니요 | The search phrases this organisation tracks its position for. Customer-supplied and never derived: asking a vendor which phrases a domain already ranks for would return exactly… |
이 엔드포인트가 반환할 수 있는 오류
401 · 403 · 404 · 422