public

POST /v1/public/quotes

Ask us to price a project, or send us a message — no account.

Све public крајње тачке

Сва документација за програмере →

Аутентификација

Ова крајња тачка је јавна. Не захтева никакве акредитиве нити организацију — то је оно што читају наш сопствени маркетиншки сајт и машине за одговоре са вештачком интелигенцијом.

Ова крајња тачка не прихвата id организације. Ваш кључ већ идентификује организацију којој припада, а одговор је ограничен на њу.

Испробајте

Замените све што је у угластим заградама сопственим вредностима, а чувар места кључа кључем са своје контролне табле.

curl -X POST https://api.zinndigital.com/v1/public/quotes \
  -H "Content-Type: application/json" \
  -d '{ "name": <string>, "email": <string>, "description": <string> }'

Пријављени сте? API конзола на вашој контролној табли попуњава ваш прави id организације и ваш сопствени кључ, и покреће захтев према живом API-ју како бисте могли да видите стварни одговор. Отворите ову крајњу тачку у API конзоли

Детаљи

One endpoint for every public form (W43-83): kind: quote (the default) asks us to price a project and requires project_type; kind: contact is the contact form and requires topic. Both land in the one staff log (listQuoteRequests), are copied to the office inbox, and confirm to the sender in their own language. Anonymous — no credential, no tenant, and the only route into paid development work (development services are quote-only, owner ruling 2026-09-11). Three spam controls fire in order: a fail-closed per-IP and global budget charged before the body is parsed, a honeypot field, then Cloudflare Turnstile. The cheapest first, and the one that makes a vendor call last — so a flood cannot turn our anti-abuse check into an outbound traffic amplifier. ⛔ multipart/form-data accepts attachments (a brief, a spec, a screenshot of the error). They are magic-byte verified against an allow-list and are not servable to anybody until a malware scan returns clean. ⛔⛔ An attachment refused after the enquiry is written does not fail the request. The reply is still 201 with attachments_refused set: throwing away a description somebody spent ten minutes on because a file was the wrong type loses the customer and reads, to them, as the form being broken.

Тело захтева

НазивТипОбавезноШта је ово
kindstring<quote, contact>НеWhich public form this came from.
topicstring<sales, support, billing, partnership, press, other>НеRequired when kind is contact; ignored otherwise.
namestringДа—
emailstringДа—
descriptionstringДаWhat they need doing — the thing we actually price. ⛔ Bounded here as well as in the engine: a TextField has no length, and an operator has to READ this.
project_typestringНеThe shape of the work, from project_types. Deliberately not the technology — a WordPress build and a bespoke application are quoted by different people on different lead times;…
companystringНе—
phonestringНе—
countrystringНеISO 3166-1 alpha-2.
stackstringНе—
budget_bandstringНеA RANGE, never a figure. Somebody who has not been quoted does not have a number, and storing one invents a precision they never gave — which an operator then anchors their quote…
timelinestringНе—
website_urlstringНеThe site the job is about. ⛔ Optional and may be blank: a broken site is one of the commonest reasons to be here, and refusing the enquiry over a URL loses exactly the customer in…
localestringНеThe language the form was filled in. ⛔ The confirmation is sent in it — without this a platform sold in 58 languages answers every enquiry in English, and nothing looks broken.
source_pagestringНеWhich page the form was submitted from — how we learn what converts.
turnstile_tokenstringНеCloudflare's token. ⛔ Not marked required: whether it is needed is the engine's answer (is a secret configured?), not the schema's — hard-coding required would make an…
website_confirmstringНе⛔ Leave this empty. It is a honeypot, and it is documented rather than hidden because an SDK consumer that populated every string field would otherwise be refused with no way to…

Одговор

НазивТипОбавезноШта је ово
referencestringДаThe short handle a human quotes back at us, e.g. QR-2609-K7M3PX for a quote or CM-2609-K7M3PX for a contact message. ⛔ Not sequential: a running number published to strangers…
statusstringДа—
attachments_storedintegerДа—
attachments_refusedstringДаCopy for the visitor when a file could not be attached, or null. ⛔ The enquiry was still accepted — see the endpoint description.

Грешке које ова крајња тачка може вратити

422 · 429