Ecozyon serverless uçlarını programatik olarak kullan. Aşağıdaki uçlar gerçek ve canlıdır.
Tüm uçlar POST kabul eder ve JSON gövde bekler. Formlar IP başına oran sınırlamasına tabidir; gizli bir `company_website` honeypot alanı doldurulursa istek sessizce başarılı sayılır (bot koruması). Gizli anahtar gerekmez — demo modunda çalışır.
/api/contactİletişim formu gönderimi.
| Alan | Tip | Not |
|---|---|---|
| name | string | zorunlu· En az 2 karakter |
| company | string | zorunlu· Şirket adı |
| string | zorunlu· Geçerli e-posta | |
| message | string | opsiyonel· En fazla 2000 karakter |
| purpose | string | opsiyonel· Konu / amaç |
{ "ok": true }{ "ok": false, "errors": { "email": "invalid" } }{ "ok": false, "error": "rate_limited", "retryAfterMs": 42000 }curl -X POST https://ecozyon.tech/api/contact \
-H "Content-Type: application/json" \
-d '{"name":"Ada","company":"Acme","email":"ada@acme.co","message":"Merhaba"}'/api/applyAçık pozisyona başvuru.
| Alan | Tip | Not |
|---|---|---|
| name | string | zorunlu· En az 2 karakter |
| string | zorunlu· Geçerli e-posta | |
| role | string | zorunlu· Başvurulan pozisyon |
| note | string | opsiyonel· En fazla 2000 karakter |
{ "ok": true }{ "ok": false, "errors": { "role": "required" } }{ "ok": false, "error": "rate_limited" }curl -X POST https://ecozyon.tech/api/apply \
-H "Content-Type: application/json" \
-d '{"name":"Ada","email":"ada@acme.co","role":"senior-frontend"}'/api/vitalsWeb Vitals metrik beacon’u (sendBeacon ile, yanıt okunmaz).
| Alan | Tip | Not |
|---|---|---|
| name | enum | zorunlu· CLS · FCP · INP · LCP · TTFB |
| value | number | zorunlu· Negatif olamaz |
| rating | string | opsiyonel· good · needs-improvement · poor |
| path | string | opsiyonel· Sayfa yolu |
{ "ok": false, "error": "bad_value" }curl -X POST https://ecozyon.tech/api/vitals \
-H "Content-Type: application/json" \
-d '{"name":"LCP","value":1840,"rating":"good","path":"/"}'