visibility
PUT /v1/visibility/targets/{targetId}/products
Set the products to price-track, and the seller names to look for.
Autentificare
Trimiteți o cheie API ca token de tip bearer. Acest punct final nu specifică o permisiune anume în specificație, așa că acordați cheii cele mai puține drepturi necesare și verificați răspunsul în loc să faceți presupuneri.
Acest endpoint nu necesită un ID de organizație. Cheia ta identifică deja organizația căreia îi aparține, iar răspunsul este limitat la aceasta.
Încearcă
Înlocuiți tot ce se află între paranteze unghiulare cu propriile valori și substituentul cheie cu o cheie din tabloul de bord.
curl -X PUT https://api.zinndigital.com/v1/visibility/targets/{targetId}/products \
-H "Authorization: Bearer zdk_live_…" \
-H "Content-Type: application/json" \
-d '{ }'Autentificat? Consola API din panoul de control îți completează ID-ul real al organizației și propria cheie și rulează cererea în API-ul live, astfel încât să poți vedea răspunsul efectiv. Deschideți acest punct final în consola API
Detalii
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.
Parametri
| Nume | Tip | Obligatoriu | Ce este |
|---|---|---|---|
targetId (path) | Uuid | Da | The watched domain's id. |
Corp cerere
| Nume | Tip | Obligatoriu | Ce este |
|---|---|---|---|
products | TrackedProduct[] | Nu | — |
merchant_names | string[] | Nu | — |
Răspuns
| Nume | Tip | Obligatoriu | Ce este |
|---|---|---|---|
id | Uuid | Da | UUIDv7 identifier — sortable by creation time (docs/02 §8). |
domain | string | Da | The hostname |
label | string | Nu | The customer's own label for this domain. |
brand | string | Nu | 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 | Nu | 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 | Nu | Where the business sells. Used with `category` to build the questions. |
is_external | boolean | Da | 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 | Nu | The site this target corresponds to, when it is one of ours. |
kinds | VisibilityAuditKind[] | Da | — |
cadence_days | integer | Da | Days between scheduled audits. `0` means paused — **not** deleted. History and settings survive and it resumes with no further action. |
next_due_at | string | Nu | — |
last_audit_at | string | Nu | — |
review_profiles | ReviewProfile[] | Nu | — |
products | TrackedProduct[] | Nu | The products this organisation has asked us to price-track. |
merchant_names | string[] | Nu | 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[] | Nu | 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… |
Erori pe care le poate returna acest punct final
401 · 403 · 404 · 422