{"description":"Gemini API function-calling şemaları (Wzoop ücretsiz üyelik + profil kurulumu). Gemini fonksiyonu YÜRÜTMEZ: functionCall geldiğinde aşağıdaki \"execute\" eşlemesine göre REST uç noktasını siz çağırıp sonucu functionResponse olarak geri verin.","usage":{"generateContent":"POST https://generativelanguage.googleapis.com/v1beta/models/<model>:generateContent  gövde: {\"contents\":[…],\"tools\":[{\"functionDeclarations\": <bu dosyadaki tool.functionDeclarations>}]}","tip":"Aynı anda etkin araç sayısını azaltmak için sets.core listesini kullanın (10–20 araç önerilir). Jetonu (access_token) functionResponse içinde modele aynen verin; model sonraki çağrılarda argüman olarak geçirir. Gemini 3 için functionCall id ve thought_signature değerlerini geri gönderin.","mcp":"Gemini CLI: gemini mcp add --transport http wzoop https://wzoop.com/api/ai/mcp   ·   Antigravity: mcp_config.json içinde {\"mcpServers\":{\"wzoop\":{\"serverUrl\":\"https://wzoop.com/api/ai/mcp\"}}}"},"execute":{"base_url":"https://wzoop.com","content_type":"application/json","auth_note":"access_token alanı gövdede gönderilir (ya da Authorization: Bearer).","functions":{"capabilities":{"method":"GET","path":"/api/ai/v1/capabilities","auth":false},"username_check":{"method":"GET","path":"/api/ai/v1/username/check","auth":false},"palettes":{"method":"GET","path":"/api/ai/v1/palettes","auth":false},"signup_start":{"method":"POST","path":"/api/ai/v1/signup/start","auth":false},"login_link":{"method":"POST","path":"/api/ai/v1/account/login-link","auth":true},"profile_get":{"method":"POST","path":"/api/ai/v1/profile/get","auth":true},"profile_update":{"method":"POST","path":"/api/ai/v1/profile/update","auth":true},"links_add":{"method":"POST","path":"/api/ai/v1/links/add","auth":true},"link_update":{"method":"POST","path":"/api/ai/v1/links/update","auth":true},"link_delete":{"method":"POST","path":"/api/ai/v1/links/delete","auth":true},"links_reorder":{"method":"POST","path":"/api/ai/v1/links/reorder","auth":true},"theme_set":{"method":"POST","path":"/api/ai/v1/theme/set","auth":true},"texts_set":{"method":"POST","path":"/api/ai/v1/texts/set","auth":true},"preview":{"method":"POST","path":"/api/ai/v1/preview","auth":true},"visibility_set":{"method":"POST","path":"/api/ai/v1/visibility/set","auth":true},"share":{"method":"POST","path":"/api/ai/v1/share","auth":true},"session_revoke":{"method":"POST","path":"/api/ai/v1/session/revoke","auth":true},"account_delete_request":{"method":"POST","path":"/api/ai/v1/account/delete-request","auth":true},"claim_link_send":{"method":"POST","path":"/api/ai/v1/account/claim-link","auth":true}}},"sets":{"core":["capabilities","username_check","signup_start","login_link","profile_get","profile_update","links_add","link_delete","theme_set","preview","visibility_set","share","session_revoke"]},"tool":{"functionDeclarations":[{"name":"capabilities","description":"Wzoop ücretsiz üyeliğinin kurallarını, limitlerini, düzen/palet tonlarını, bağlantı türlerini, rıza metnini ve asistan talimatını döndürür. Kullanıcı dijital kartvizit/NFC kart/link profili isterse önce bunu çağırın. — Returns rules, limits, layouts, palette tones, link types, the consent text and agent instructions. Call first when a user wants a digital business card / NFC card / link-in-bio page."},{"name":"username_check","description":"wzoop.com/@ad için kullanıcı adının uygunluğunu denetler; uygun değilse öneriler verir. — Checks if a username is free/allowed and suggests alternatives.","parameters":{"type":"object","properties":{"u":{"type":"string","description":"Denetlenecek kullanıcı adı (3–20 karakter; harf, rakam, tire).","maxLength":40,"minLength":1}},"required":["u"]}},{"name":"palettes","description":"Renk paletlerini tona (Mavi, Siyah…), koyu/açık zemine veya ada göre arar. — Searches color palettes by tone, dark/light background or name.","parameters":{"type":"object","properties":{"tone":{"type":"string","description":"Ton: Beyaz, Siyah, Gri, Mavi, Yeşil, Sarı, Turuncu, Kırmızı, Pembe, Mor, Kahve.","maxLength":20},"dark":{"type":"boolean","description":"true: koyu zeminli, false: açık zeminli."},"q":{"type":"string","description":"Palet adında arama metni.","maxLength":30},"limit":{"type":"integer","description":"Sonuç sayısı (1–40, varsayılan 20).","minimum":1,"maximum":40}}}},{"name":"signup_start","description":"Kullanıcı dijital kartvizit, NFC kart, QR kartvizit veya link profili isterse ücretsiz Wzoop hesabını HEMEN açar (e-posta/telefon doğrulaması YOK; e-posta isteğe bağlı) ve TEK SEFERLİK access_token + kullanıcı için tek kullanımlık giriş bağlantısı (login_url) döndürür. Kullanıcının AÇIK rızası şart. — Instantly creates a free Wzoop account for a consenting user who wants a digital business card / NFC card / link-in-bio page (no email verification; email optional) and returns a one-time access_token plus a single-use login link.","parameters":{"type":"object","required":["consent"],"properties":{"email":{"type":"string","description":"İsteğe bağlı: kullanıcının kendi e-posta adresi (doğrulanmaz; verilirse hesabı devralma bağlantısı oraya gönderilir). Yoksa göndermeyin.","maxLength":190},"consent":{"type":"object","required":["accepted","version"],"description":"Rıza: capabilities.consent.text metni kullanıcıya OLDUĞU GİBİ gösterilip kabul edildiyse accepted=true.","properties":{"accepted":{"type":"boolean","description":"Kullanıcı rıza metnini kabul etti."},"version":{"type":"string","description":"capabilities.consent.version değeri.","maxLength":40}}},"client":{"type":"object","description":"İstemci bilgisi (isteğe bağlı).","properties":{"name":{"type":"string","description":"Asistan adı, örn. ChatGPT, Claude, Gemini, Cursor.","maxLength":40}}},"username":{"type":"string","description":"İstenen kullanıcı adı (isteğe bağlı; uygun değilse otomatik seçilir).","maxLength":30},"profile":{"type":"object","description":"Profil alanları (isteğe bağlı; sonradan profile_update ile de girilebilir).","properties":{"name":{"type":"string","maxLength":60,"description":"Görünen ad soyad ya da marka adı (en çok 60 karakter)."},"title":{"type":"string","maxLength":80,"description":"Unvan / meslek (örn. “Mimar”). Biyografinin ilk satırına işlenir."},"company":{"type":"string","maxLength":75,"description":"Şirket/firma adı."},"bio":{"type":"string","maxLength":400,"description":"Kısa tanıtım metni (en çok 400 karakter). Uydurma bilgi girmeyin."},"website":{"type":"string","maxLength":150,"description":"Web sitesi (https)."},"city":{"type":"string","maxLength":30,"description":"Şehir."},"address":{"type":"string","maxLength":250,"description":"Açık adres (herkese açık görünür; kullanıcıdan onay alın)."},"map_url":{"type":"string","maxLength":500,"description":"Harita bağlantısı (Google Haritalar vb.)."}}},"links":{"type":"array","maxItems":12,"description":"Bağlantılar (isteğe bağlı).","items":{"type":"object","required":["type","value"],"properties":{"type":{"type":"string","enum":["website","phone","whatsapp","sms","email","instagram","facebook","x","linkedin","youtube","tiktok","telegram","snapchat","pinterest","github","twitch","behance","dribbble","medium","threads","spotify","discord","map","marketplace","custom","vcard"],"description":"Bağlantı türü (capabilities.link_types)."},"value":{"type":"string","maxLength":2048,"description":"Tür’e göre: kullanıcı adı (@olmadan da olur), telefon, e-posta, adres metni ya da tam https adresi."},"title":{"type":"string","maxLength":60,"description":"Düğme başlığı (boşsa türün varsayılanı)."}}}},"theme":{"type":"object","description":"Tema (isteğe bağlı).","properties":{"layout":{"type":"string","description":"Düzen anahtarı (capabilities.layouts; yalnız free=true olanlar).","maxLength":40},"palette":{"type":"string","description":"Palet anahtarı (palettes aracı).","maxLength":60}}},"idempotency_key":{"type":"string","description":"Yeniden denemelerde çift hesap olmaması için en az 22 karakterlik RASTGELE anahtar (isteğe bağlı; yanıt yitirilirse aynı anahtarla 10 dk içinde yeni jeton verilir).","maxLength":64,"minLength":22}}}},{"name":"login_link","description":"Kullanıcının hesabını devralması için YENİ tek kullanımlık, kısa ömürlü giriş bağlantısı üretir (günde 5). Kullanıcıya verin: açıp panelde parola belirleyince hesap kullanıcıya geçer. — Creates a new single-use, short-lived login link so the human can take over the account (5/day).","parameters":{"type":"object","properties":{"access_token":{"type":"string","description":"signup_start yanıtındaki access_token (aynen, tam olarak; email modunda signup_verify yanıtındaki).","minLength":40,"maxLength":60}},"required":["access_token"]}},{"name":"profile_get","description":"Profil alanlarını, bağlantıları, temayı, yayın/inceleme durumunu ve paket kullanımını döndürür. — Returns profile fields, links, theme, visibility/review state and plan usage.","parameters":{"type":"object","properties":{"access_token":{"type":"string","description":"signup_start yanıtındaki access_token (aynen, tam olarak; email modunda signup_verify yanıtındaki).","minLength":40,"maxLength":60}},"required":["access_token"]}},{"name":"profile_update","description":"Ad, unvan, şirket, biyografi, web sitesi, şehir, adres, harita bağlantısını günceller (yalnız gönderilenler). Bilgi uydurmayın. — Updates name, title, company, bio, website, city, address, map link (only provided fields). Do not invent data.","parameters":{"type":"object","properties":{"access_token":{"type":"string","description":"signup_start yanıtındaki access_token (aynen, tam olarak; email modunda signup_verify yanıtındaki).","minLength":40,"maxLength":60},"name":{"type":"string","maxLength":60,"description":"Görünen ad soyad ya da marka adı (en çok 60 karakter)."},"title":{"type":"string","maxLength":80,"description":"Unvan / meslek (örn. “Mimar”). Biyografinin ilk satırına işlenir."},"company":{"type":"string","maxLength":75,"description":"Şirket/firma adı."},"bio":{"type":"string","maxLength":400,"description":"Kısa tanıtım metni (en çok 400 karakter). Uydurma bilgi girmeyin."},"website":{"type":"string","maxLength":150,"description":"Web sitesi (https)."},"city":{"type":"string","maxLength":30,"description":"Şehir."},"address":{"type":"string","maxLength":250,"description":"Açık adres (herkese açık görünür; kullanıcıdan onay alın)."},"map_url":{"type":"string","maxLength":500,"description":"Harita bağlantısı (Google Haritalar vb.)."}},"required":["access_token"]}},{"name":"links_add","description":"Telefon, WhatsApp, e-posta, sosyal medya, harita, mağaza, web sitesi bağlantıları ekler (tek istekte en çok 20). Adresi sunucu türe göre kurar. — Adds phone, WhatsApp, email, social, map, store and website links (max 20 per call). The server builds URLs per type.","parameters":{"type":"object","required":["access_token","links"],"properties":{"access_token":{"type":"string","description":"signup_start yanıtındaki access_token (aynen, tam olarak; email modunda signup_verify yanıtındaki).","minLength":40,"maxLength":60},"links":{"type":"array","maxItems":20,"description":"Eklenecek bağlantılar.","items":{"type":"object","required":["type","value"],"properties":{"type":{"type":"string","enum":["website","phone","whatsapp","sms","email","instagram","facebook","x","linkedin","youtube","tiktok","telegram","snapchat","pinterest","github","twitch","behance","dribbble","medium","threads","spotify","discord","map","marketplace","custom","vcard"],"description":"Bağlantı türü (capabilities.link_types)."},"value":{"type":"string","maxLength":2048,"description":"Tür’e göre: kullanıcı adı (@olmadan da olur), telefon, e-posta, adres metni ya da tam https adresi."},"title":{"type":"string","maxLength":60,"description":"Düğme başlığı (boşsa türün varsayılanı)."}}}}}}},{"name":"link_update","description":"Bağlantının başlığını/adresini değiştirir ya da gizler/gösterir. Adres için type ve value birlikte gönderilir. — Changes a link title/target or hides/shows it. Send type and value together to change the target.","parameters":{"type":"object","required":["access_token","id"],"properties":{"access_token":{"type":"string","description":"signup_start yanıtındaki access_token (aynen, tam olarak; email modunda signup_verify yanıtındaki).","minLength":40,"maxLength":60},"id":{"type":"integer","description":"Bağlantı kimliği (profile_get / links_add yanıtından).","minimum":1},"type":{"type":"string","description":"Yeni tür.","enum":["website","phone","whatsapp","sms","email","instagram","facebook","x","linkedin","youtube","tiktok","telegram","snapchat","pinterest","github","twitch","behance","dribbble","medium","threads","spotify","discord","map","marketplace","custom","vcard"]},"value":{"type":"string","description":"Yeni değer.","maxLength":2048},"title":{"type":"string","description":"Yeni başlık.","maxLength":60},"active":{"type":"boolean","description":"false: profilde gizle."}}}},{"name":"link_delete","description":"Bağlantıyı kalıcı olarak siler. — Permanently deletes a link.","parameters":{"type":"object","required":["access_token","id"],"properties":{"access_token":{"type":"string","description":"signup_start yanıtındaki access_token (aynen, tam olarak; email modunda signup_verify yanıtındaki).","minLength":40,"maxLength":60},"id":{"type":"integer","description":"Bağlantı kimliği.","minimum":1}}}},{"name":"links_reorder","description":"Verilen kimlikleri başa alır (sırayla); kalanlar mevcut sırasıyla arkadan gelir. — Moves the given ids to the top in order; the rest follow in current order.","parameters":{"type":"object","required":["access_token","ids"],"properties":{"access_token":{"type":"string","description":"signup_start yanıtındaki access_token (aynen, tam olarak; email modunda signup_verify yanıtındaki).","minLength":40,"maxLength":60},"ids":{"type":"array","maxItems":60,"description":"Bağlantı kimlikleri (yeni sıra).","items":{"type":"integer","minimum":1}}}}},{"name":"theme_set","description":"Bağlantı düzenini (layout) ve renk paletini (palette) ayarlar. Premium düzenler ücretsiz pakette kilitlidir (403). — Sets link layout and color palette. Premium layouts are locked on the free plan (403).","parameters":{"type":"object","properties":{"access_token":{"type":"string","description":"signup_start yanıtındaki access_token (aynen, tam olarak; email modunda signup_verify yanıtındaki).","minLength":40,"maxLength":60},"layout":{"type":"string","description":"Düzen anahtarı (capabilities.layouts içinde free=true).","maxLength":40},"palette":{"type":"string","description":"Palet anahtarı (palettes aracı).","maxLength":60}},"required":["access_token"]}},{"name":"texts_set","description":"Profildeki düğme/başlık metinlerini özelleştirir. Ücretsiz pakette kilitlidir (403 plan_locked). — Customizes profile UI texts. Locked on the free plan (403 plan_locked).","parameters":{"type":"object","required":["access_token","items"],"properties":{"access_token":{"type":"string","description":"signup_start yanıtındaki access_token (aynen, tam olarak; email modunda signup_verify yanıtındaki).","minLength":40,"maxLength":60},"items":{"type":"array","maxItems":40,"description":"Anahtar/değer çiftleri.","items":{"type":"object","required":["key","value"],"properties":{"key":{"type":"string","description":"Yazı anahtarı.","maxLength":60},"value":{"type":"string","description":"Metin.","maxLength":200}}}}}}},{"name":"preview","description":"Profilin özetini ve (yayında değilse) 60 dakika geçerli, arama motorlarına kapalı imzalı önizleme bağlantısını döndürür. — Returns a profile summary and a 60-minute signed noindex preview link (if unpublished).","parameters":{"type":"object","properties":{"access_token":{"type":"string","description":"signup_start yanıtındaki access_token (aynen, tam olarak; email modunda signup_verify yanıtındaki).","minLength":40,"maxLength":60}},"required":["access_token"]}},{"name":"visibility_set","description":"visible=true profili HERKESE AÇIK yayına alır (kullanıcının açık onayıyla, confirm_public=true); devralınana kadar “doğrulanmadı” bandı taşır, arama motorlarına açılmaz. visible=false gizler. İnceleme bekliyorsa yayın reddedilir. — visible=true publishes publicly (needs the user's explicit approval: confirm_public=true); an unclaimed profile carries an “unverified” banner and is noindex. false hides. Blocked during review.","parameters":{"type":"object","required":["access_token","visible"],"properties":{"access_token":{"type":"string","description":"signup_start yanıtındaki access_token (aynen, tam olarak; email modunda signup_verify yanıtındaki).","minLength":40,"maxLength":60},"visible":{"type":"boolean","description":"true: yayına al, false: gizle."},"confirm_public":{"type":"boolean","description":"Kullanıcı profilin herkese açık olmasını açıkça onayladı (yayın için zorunlu)."}}}},{"name":"share","description":"Profil adresini, vCard bağlantısını ve QR/NFC/paylaşım adımlarını döndürür. — Returns profile URL, vCard link and QR/NFC/sharing steps.","parameters":{"type":"object","properties":{"access_token":{"type":"string","description":"signup_start yanıtındaki access_token (aynen, tam olarak; email modunda signup_verify yanıtındaki).","minLength":40,"maxLength":60}},"required":["access_token"]}},{"name":"session_revoke","description":"Bu access_token’ı (ya da all=true ile hesabın tüm jetonlarını) iptal eder. — Revokes this access_token (or all tokens with all=true).","parameters":{"type":"object","properties":{"access_token":{"type":"string","description":"signup_start yanıtındaki access_token (aynen, tam olarak; email modunda signup_verify yanıtındaki).","minLength":40,"maxLength":60},"all":{"type":"boolean","description":"true: hesabın tüm asistan jetonları iptal edilir."}},"required":["access_token"]}},{"name":"account_delete_request","description":"Silme onayı ister: e-posta varsa oraya, yoksa kullanıcıya verilecek onay bağlantısı döner; hesap ve veriler yalnızca KULLANICI bağlantıyı onaylarsa silinir. — Requests deletion: a confirmation link goes to the owner (emailed, or returned for you to hand to the user); the account is deleted only after the human confirms.","parameters":{"type":"object","properties":{"access_token":{"type":"string","description":"signup_start yanıtındaki access_token (aynen, tam olarak; email modunda signup_verify yanıtındaki).","minLength":40,"maxLength":60}},"required":["access_token"]}},{"name":"claim_link_send","description":"Hesaba kayıtlı e-posta adresine “e-postamı doğrula ve hesabı devral” tek kullanımlık bağlantısını gönderir (günde 3; e-posta yoksa login_link kullanın). — Emails the single-use “verify my email and take over the account” link to the address on file (3/day; use login_link if there is no email).","parameters":{"type":"object","properties":{"access_token":{"type":"string","description":"signup_start yanıtındaki access_token (aynen, tam olarak; email modunda signup_verify yanıtındaki).","minLength":40,"maxLength":60}},"required":["access_token"]}}]}}