marketplace

GET /v1/marketplace/{vertical}/search

Filter, sort and page one vertical's live Zinn®s.

सबै marketplace इन्डपइन्टहरू

प्रमाणीकरण

एपिआई कुञ्जीलाई बियरर टोकन (bearer token) को रूपमा पठाउनुहोस्। यो इन्डपोइन्टले विशिष्ट अनुमति खुलाएको छैन, त्यसैले अनुमान गर्नुको सट्टा आफ्नो कुञ्जीलाई आवश्यक पर्ने न्यूनतम अधिकार दिनुहोस् र प्रतिक्रिया जाँच गर्नुहोस्।

यो इन्डपोइन्टले कुनै संस्थाको आइडी लिँदैन। तपाईंको कुञ्जीले यस अन्तर्गत पर्ने संस्थालाई पहिल्यै पहिचान गर्छ, र प्रतिक्रिया त्यसैमा सीमित हुन्छ।

प्रयास गर्नुहोस्

कोणीय कोष्ठकभित्र भएका जुनसुकै कुरालाई आफ्नो मानहरूद्वारा बदल्नुहोस्, र मुख्य स्थानहोल्डरलाई तपाईंको ड्यासबोर्डको कुञ्जीद्वारा बदल्नुहोस्।

curl -X GET https://api.zinndigital.com/v1/marketplace/{vertical}/search \
  -H "Authorization: Bearer zdk_live_…"

लगइन गर्नुभएको छ? तपाईंको ड्यासबोर्डमा रहेको API कन्सोलले तपाईंको वास्तविक संस्थाको आईडी र आफ्नै कुञ्जी भरिदिन्छ, र लाइभ API विरुद्ध अनुरोध चलाउँछ ताकि तपाईंले वास्तविक प्रतिक्रिया हेर्न सक्नुहोस्। यो एन्डपोइन्टलाई API कन्सोलमा खोल्नुहोस्

विवरणहरू

docs/83 §2 step 4. Anonymous, single-variant, and answered entirely from the derived publication projection — never from the org-scoped authoring tables. ⛔ **The facet parameters are generic on purpose.** Fields are defined by staff in admin, so a typed parameter per filter would mean a spec change, an SDK regeneration and a deploy every time somebody added one — which is the exact property this milestone exists to remove. A filter is `facet=key:op:value`, repeated; values of the same key are OR-ed, different keys are AND-ed. ⛔ **A numeric filter requires `type`.** The promoted slot behind `da` holds a different field for every listing type, so asking `da:gte:50` across a whole vertical would compare a domain authority against whatever the next kind of listing stores in the same column — wrong, plausible, and impossible to notice. It is refused with 422. ⛔ **`declared`/`of` on every facet are not decoration.** A field added in schema v2 does not exist on v1 listings, so filtering on it silently excludes them and "DA ≥ 50" quietly becomes "and authored after the day DA was added". The two numbers are what let the page say "482 of 1,930 Zinn®s declare DA" instead of implying the other 1,448 failed the filter. ⛔ `total` is probed to 10,000 and `total_is_capped` says so. An exact count of a large filtered set costs as much as returning it.

प्यारामिटरहरू

नामप्रकारआवश्यकयो के हो
vertical (path)stringहुन्छ
locale (query)stringहैनRender every operator-authored string — field labels, help text, enum option labels — in this locale, falling back to the source language per string. ⛔ A query parameter rather…
type (query)stringहैनA listing type key. Required before any facet filter can be applied.
category (query)stringहैनA category path. Matches that category AND everything beneath it.
q (query)stringहैनWhat the buyer typed. Truncated at 120 characters rather than refused — pasting an essay into a search box is not an attack. ⭐ Answered by **hybrid retrieval** (docs/83 §2a, own…
facet (query)string[]हैन`key:op:value`, repeatable. `op` is `gte`/`lte` for numbers and `eq` for choices and yes/no fields.
sort (query)string<newest, price, -price, rating, sales>हैन
cursor (query)stringहैनKeyset page marker from a previous response. Never an offset.
limit (query)integerहैन

प्रतिक्रिया

नामप्रकारआवश्यकयो के हो
marketplaceobjectहुन्छ
canonical_verticalstringहैनSet when the request used a SUPERSEDED slug — the segment this page should 301 to. `null` on the normal path. ⛔ A retired slug still RESOLVES rather than 404ing: docs/83 §6 puts…
listing_typestringहैन
resultsMarketplaceSearchCard[]हुन्छ
next_cursorstringहुन्छEmpty when there is no next page. Opaque — never build one by hand.
totalintegerहुन्छ
total_is_cappedbooleanहुन्छTrue when there are more than `total` results. The page renders "10,000+"; showing a flat "10,000" for a catalogue of two million would be false.
sortstringहुन्छ
sortsstring[]हुन्छThe sorts this catalogue offers, served with the data so the storefront is not compiled against a copy of the list.
facetsMarketplaceFacet[]हुन्छ
querystringहुन्छWhat was actually searched for, after the filter language took its bite. Empty when no phrase was given. ⭐ Differs from what the buyer typed whenever `interpreted` is non-empty:…
interpretedstring[]हुन्छHuman-readable chips for filters INFERRED from the phrase rather than ticked on the rail — already in the requested locale. ⛔⛔ **Render these.** A search box that silently rewri…
retrievalstring<lexical, trigram, semantic>[]हुन्छWhich retrieval paths actually ran for this request (docs/83 §2a, D-W15-9). Empty when no phrase was given, or when the deployment has no retrieval objects. ⛔⛔ **Not diagnostics…

यो इन्डपोइन्टले फर्काउन सक्ने त्रुटिहरू

404 · 422