public

POST /v1/public/order/recommend

Recommend hosting from the guided form's answers, with the reasoning.

All public endpoints

All developer docs

Authentication

This endpoint is public. It takes no credential and no organisation — it is what our own marketing site and AI answer engines read.

This endpoint takes no organisation id. Your key already identifies the organisation it belongs to, and the response is scoped to it.

Try it

Replace anything in angle brackets with your own values, and the key placeholder with a key from your dashboard.

curl -X POST https://api.zinndigital.com/v1/public/order/recommend \
  -H "Content-Type: application/json" \
  -d '{  }'

Signed in? The API console in your dashboard fills in your real organisation id and your own key, and runs the request against the live API so you can see the actual response. Open this endpoint in the API console

Details

Owner, 2026-09-09: "maybe we also need some smart hosting finder, where they can complete a form type thing to choose what they need like cms, if for pbn, and some other questions and then we recommend them the hosting they need with options on it etc". Computed from entitlements, never from a mapping. A hardcoded {"wordpress": "some_plan"} table is right on the day it is written and wrong the first time a plan is renamed, repriced or retired — and it fails silently, recommending a plan the visitor then cannot buy. Every rule reads a number off the plan they would actually receive. A plan that cannot meet a stated hard requirement — fewer sites than asked for, no SSH when SSH was asked for, no footprint promise when the answer was PBN — is dropped rather than ranked lower. Everything else that does not fit comes back as a caveat on a plan that is still offered: a finder that returns nothing because every plan is a pound over budget has answered nobody's question. reasons and caveats are machine codes, never sentences: we serve 58 languages and every surface renders its own copy, so an English string minted here would reach an Arabic page inside an RTL document. A POST that writes nothing. It is a POST because the answers are a structured body, and because a visitor's traffic, budget and site count do not belong in a URL that proxies, logs and Referer headers all carry.

Parameters

NameTypeRequiredWhat it is
currency (query)stringNoISO-4217 code to price this response in, and the currency budget_max_minor is read in. Same contract as on getPublicOrderConfig.

Request body

NameTypeRequiredWhat it is
purposestringNopbn | single_site | store | agency | reseller | app.
cmsstringNoA key from getPublicHostingFinderOptions, or static / none.
sitesintegerNo
monthly_visitsintegerNo
needs_emailbooleanNo
needs_domainbooleanNo
needs_sshbooleanNo
budget_max_minorintegerNoA ceiling in the response currency's minor units. Over-budget plans are still returned, carrying an over_budget caveat: a finder that returns nothing because every plan is a…
limitintegerNo

Response

NameTypeRequiredWhat it is
dataHostingRecommendation[]Yes

Errors this endpoint can return

422 · 429