accueil / serveurs / Finance & Paiement / co.kulhad/kulhad
co.kulhad/kulhad
serveur MCP (Model Context Protocol) · kulhad 0.1.0
Référencé dans l'annuaire. Seul le pentest comportemental fait foi, et il n'a pas encore été exécuté sur ce serveur.
Est-ce que co.kulhad/kulhad est sûr ?
Au dernier audit MCP Hub, le serveur MCP « co.kulhad/kulhad » est classé « Non encore testé ». Référencé dans l'annuaire. Seul le pentest comportemental fait foi, et il n'a pas encore été exécuté sur ce serveur. Le verdict est réévalué en continu ; consultez la fiche pour l'état à jour.
Méthode : MCP Hub analyse la description de chaque outil (couche 1) et, pour le verdict fort, exécute le serveur dans une micro-VM isolée avec leurres et réseau bloqué (couche 2). On publie des noms et des compteurs, jamais le contenu brut renvoyé par un outil.
Les 44 outils
- add_upi_id≈ 294 tokens
Add a UPI ID for supporters to pay into. Kulhad cannot check that an address is real or that it belongs to the creator, so tell them to send one rupee to it themselves and confirm it arrived before sharing the page. Duplicates are not checked. The free plan keeps one ID active at a time.
Paramètres, retour & exemple (3)
Paramètresvpa· string · requis
The UPI address, as in priya@okhdfc.label· string · optionnel
What to call it, such as Personal or Shop.makeDefault· boolean · optionnel
Quote this one first.
Exemple d'appel{"name": "add_upi_id", "arguments": {"vpa": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"id": 1, "vpa": "texte", "nextStep": "texte"}} - approve_support≈ 424 tokens
Approve one supporter after the creator has found the payment in their own bank app. This cannot be undone. The supporter's name and amount then show on the creator's page and stream overlays and count toward totals and the active goal; if that fills the goal, the goal is marked complete and taken off the page. With hidden set, the message and any voice recording stay private while the name and amount still show. A thank-you reply (up to 280 characters, word-filtered) can be set at the same time and replaces any existing reply. Nothing is sent to the supporter. Only the creator can know whether the money arrived, so never approve without being asked to for that specific supporter.
Paramètres, retour & exemple (3)
Paramètresid· integer · requisreply· string · optionnel
A thank-you shown beside them on the page, up to 280 characters. Replaces any existing reply. Refused if the word filter flags it.hidden· boolean · optionnel
Keep the message and any voice recording private. The name and amount still show on the page.
Exemple d'appel{"name": "approve_support", "arguments": {"id": 1}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"id": 1, "status": "texte"}} - bulk_approve_supports≈ 305 tokens
Approve up to 100 waiting supporters at once after the creator has checked their bank. Part of Premium. This cannot be undone. Ids that are not waiting (already settled, not yet marked as sent, missing, or not this creator's) are skipped and counted. Same effects as approve_support; no reply is set.
Paramètres, retour & exemple (2)
Paramètresids· array · requishidden· boolean · optionnel
Keep each message and voice recording private. Names and amounts still show on the page.
Exemple d'appel{"name": "bulk_approve_supports", "arguments": {"ids": []}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"skipped": 1, "approved": 1}} - bulk_reject_supports≈ 247 tokens
Reject up to 100 waiting supporters at once. Part of Premium. This cannot be undone and any voice recordings are deleted immediately, so confirm the list with the creator first. Ids that are not waiting are skipped and counted.
Paramètres, retour & exemple (1)
Paramètresids· array · requis
Exemple d'appel{"name": "bulk_reject_supports", "arguments": {"ids": []}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"skipped": 1, "rejected": 1}} - check_username_available≈ 330 tokens
Check whether a Kulhad page name is free. A page name is the last part of the address, as in kulhad.co/priya. Use this before suggesting a name to somebody setting up a page.
Paramètres, retour & exemple (1)
Paramètresusername· string · requis
The page name to check, without the address around it. For example: priya
Exemple d'appel{"name": "check_username_available", "arguments": {"username": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"url": "texte", "reason": "texte", "username": "texte", "available": true, "suggestions": []}} - create_goal≈ 746 tokens
Create a goal with a title and a target in whole rupees. Unless active is false, it becomes the goal shown on the page and any other goal is put away, not deleted (set_active_goal brings one back). The free plan refuses while another goal is running, even with active false. Impact tiers are Premium. A goal that is neither active nor complete has no page of its own.
Paramètres, retour & exemple (6)
Paramètrestitle· string · requisactive· boolean · optionnel
Show it on the page straight away.impact· array · optionnel
What each amount pays for, shown on the goal. Premium.deadline· ? · optionnel
As YYYY-MM-DD. Null clears it. A goal does not stop at its deadline.description· string · optionneltargetAmount· integer · requis
In whole rupees.
Exemple d'appel{"name": "create_goal", "arguments": {"title": "texte", "targetAmount": 1}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"id": 1, "url": "texte", "slug": "texte", "title": "texte", "active": true, "impact": [], "percent": 1, "updates": [], "deadline": "texte", "filledAt": "texte", "description": "texte", "raisedAmount": 1}} - delete_goal≈ 224 tokens
Delete a goal that has no approved support. This cannot be undone, and its cover image is deleted with it. Pending or rejected supports pinned to it lose the link. A goal with approved support stays in the history and can only be turned off.
Paramètres, retour & exemple (1)
Paramètresid· integer · requis
Exemple d'appel{"name": "delete_goal", "arguments": {"id": 1}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"id": 1, "deleted": true}} - delete_goal_update≈ 550 tokens
Remove one progress note from a goal by its position in the list, counting from zero with the newest first. This cannot be undone.
Paramètres, retour & exemple (2)
Paramètresindex· integer · requis
Zero is the newest note.goalId· integer · requis
Exemple d'appel{"name": "delete_goal_update", "arguments": {"index": 1, "goalId": 1}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"id": 1, "url": "texte", "slug": "texte", "title": "texte", "active": true, "impact": [], "percent": 1, "updates": [], "deadline": "texte", "filledAt": "texte", "description": "texte", "raisedAmount": 1}} - get_analytics≈ 383 tokens
Daily page views, approved supports and amounts for up to the last ninety days, thirty by default, with the rate at which visitors go on to support. Part of Premium. Comes from the nightly rollup, so today is not included and only days with activity are returned.
Paramètres, retour & exemple (1)
Paramètresdays· integer · optionnel
How many days back.
Exemple d'appel{"name": "get_analytics", "arguments": {"days": 1}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"days": [], "totals": {}}} - get_custom_domain≈ 224 tokens
Read whether a custom domain is connected to the page, and what DNS record it needs. Part of Premium.
Paramètres, retour & exemple (0)
Exemple d'appel{"name": "get_custom_domain", "arguments": {}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"domain": "texte", "status": "texte", "target": "texte", "instructions": "texte"}} - get_dashboard_summary≈ 432 tokens
The headline numbers from the creator dashboard: what came in this month against last, the all-time total, how many approved supports there have been, and how many are waiting to be approved.
Paramètres, retour & exemple (0)
Exemple d'appel{"name": "get_dashboard_summary", "arguments": {}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"allTime": {}, "lastMonth": {}, "thisMonth": {}, "changePercent": "texte", "waitingForApproval": 1}} - get_embed_code≈ 355 tokens
Get the HTML to put a support button, the pay card, or a live goal bar on the creator own website or blog. Returns the snippets to paste, not a rendered preview.
Paramètres, retour & exemple (2)
Paramètrestext· string · optionnel
The words on the button.position· string · optionnel · right | left
Which bottom corner the floating button sits in.
Exemple d'appel{"name": "get_embed_code", "arguments": {"text": "texte", "position": "right"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"button": "texte", "goalBar": "texte", "payCard": "texte", "plainLink": "texte", "buttonImage": "texte"}} - get_goal≈ 495 tokens
Read one goal in full, including its impact tiers and its progress notes.
Paramètres, retour & exemple (1)
Paramètresid· integer · requis
Exemple d'appel{"name": "get_goal", "arguments": {"id": 1}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"id": 1, "url": "texte", "slug": "texte", "title": "texte", "active": true, "impact": [], "percent": 1, "updates": [], "deadline": "texte", "filledAt": "texte", "description": "texte", "raisedAmount": 1}} - get_my_profile≈ 468 tokens
Read the page details for the signed-in creator: name, page address, bio, links, language, plan, and any custom domain recorded on the account with its status (pending, active or disabled).
Paramètres, retour & exemple (0)
Exemple d'appel{"name": "get_my_profile", "arguments": {}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"url": "texte", "kind": "texte", "name": "texte", "plan": "texte", "bioText": "texte", "socials": [], "username": "texte", "onboarded": true, "uiLanguage": "texte", "customDomain": "texte", "pageLanguage": "texte", "premiumUntil": "texte"}} - get_page_settings≈ 614 tokens
Read the current appearance and behaviour settings for the page: theme, banner, suggested amounts, what is shown publicly, and the thank-you note.
Paramètres, retour & exemple (0)
Exemple d'appel{"name": "get_page_settings", "arguments": {}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"seo": {}, "theme": "texte", "amounts": [], "occasion": {}, "themeColor": "texte", "amountStyle": "texte", "autoPublish": true, "badgeHidden": true, "cardHeadline": "texte", "savedReplies": [], "thankYouNote": "texte", "allowAnonymous": true}} - get_plan_and_billing≈ 462 tokens
Read which plan the account is on, when Premium runs to, whether it is set to end, and the past charges with links to their invoices. Read-only: nothing here starts, changes or cancels a subscription.
Paramètres, retour & exemple (0)
Exemple d'appel{"name": "get_plan_and_billing", "arguments": {}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"plan": "texte", "charges": [], "manageUrl": "texte", "premiumUntil": "texte", "subscription": "texte"}} - get_share_assets≈ 490 tokens
Get the page address, a QR code that opens the page (and a UPI payment QR for the counter when the counter QR is switched on), share images for stories and posts, and the printable sheets. Everything comes back as a link to open or download, not as an image.
Paramètres, retour & exemple (0)
Exemple d'appel{"name": "get_share_assets", "arguments": {}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"qr": {}, "pageUrl": "texte", "printable": {}, "shareCards": {}, "whatsappText": "texte"}} - get_stream_overlays≈ 561 tokens
Get the three overlay addresses to add to OBS or any streaming software as a browser source: a goal bar, a wall of recent supporters, and an alert that appears when someone gives. Includes the size each source should be and when alerts currently fire.
Paramètres, retour & exemple (3)
Paramètreslanguage· string · optionnel · page | en | hi | hi-Latn | mr | ta | te | ml
Which language the overlays speak. "page" follows the page language and keeps following it if that changes later.wallRows· integer · optionnel
How many supporters the wall shows at once.alertSeconds· integer · optionnel
How long each alert stays on screen.
Exemple d'appel{"name": "get_stream_overlays", "arguments": {"language": "page", "wallRows": 1, "alertSeconds": 1}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"goal": {}, "wall": {}, "alert": {}, "addToObs": [], "alertsFireOn": "approved"}} - get_support≈ 502 tokens
Read everything the creator can see about one supporter, by its id.
Paramètres, retour & exemple (1)
Paramètresid· integer · requis
From list_supports or list_pending_supports.
Exemple d'appel{"name": "get_support", "arguments": {"id": 1}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"id": 1, "code": "texte", "reply": "texte", "amount": 1, "source": "texte", "status": "texte", "flagged": true, "message": "texte", "startedAt": "texte", "approvedAt": "texte", "markedPaidAt": "texte", "supporterName": "texte"}} - get_support_sources≈ 365 tokens
Break approved support down by where it came from: the page itself, an embedded button, a QR code, the printed counter card, or a link tagged for WhatsApp, Instagram, YouTube or a standee. Use this to answer which channel is actually working.
Paramètres, retour & exemple (2)
Paramètresto· string · optionnel
Only up to this date, as YYYY-MM-DD.from· string · optionnel
Only from this date onward, as YYYY-MM-DD.
Exemple d'appel{"name": "get_support_sources", "arguments": {"to": "texte", "from": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"total": 1, "sources": [], "totalFormatted": "texte"}} - get_wrapped≈ 421 tokens
Kulhad Wrapped for a year: how many people supported, the total, page views, the busiest month, and the largest single support. Free on every plan.
Paramètres, retour & exemple (1)
Paramètresyear· integer · optionnel
Defaults to the current year.
Exemple d'appel{"name": "get_wrapped", "arguments": {"year": 1}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"year": 1, "views": 1, "amount": 1, "months": [], "supports": 1, "topSupport": "texte", "biggestMonth": "texte", "amountFormatted": "texte"}} - list_goals≈ 508 tokens
List every goal on the page, the active one first, with how much each has raised against its target.
Paramètres, retour & exemple (0)
Exemple d'appel{"name": "list_goals", "arguments": {}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"goals": []}} - list_pending_supports≈ 660 tokens
List the supporters who have marked a payment as sent and are waiting for the creator to approve them. Kulhad cannot see a bank account, so this is what people say they sent, not what has been received. The creator checks their own bank app for the amount and the four-character code, then approves.
Paramètres, retour & exemple (1)
Paramètreslimit· integer · optionnel
How many to return.
Exemple d'appel{"name": "list_pending_supports", "arguments": {"limit": 1}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"total": 1, "supports": [], "totalAmount": 1, "totalAmountFormatted": "texte"}} - list_supports≈ 682 tokens
List supporters, newest first, optionally narrowed by status or by date. Use this for history and for questions about a particular period; use list_pending_supports for the approval queue.
Paramètres, retour & exemple (5)
Paramètresto· string · optionnel
Only up to this date, as YYYY-MM-DD.from· string · optionnel
Only from this date onward, as YYYY-MM-DD.page· integer · optionnellimit· integer · optionnelstatus· string · optionnel · all | claimed | approved | approved_hidden | rejected
claimed means waiting for the creator to approve.
Exemple d'appel{"name": "list_supports", "arguments": {"to": "texte", "from": "texte", "page": 1, "limit": 1, "status": "all"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"page": 1, "total": 1, "hasMore": true, "supports": []}} - list_upi_ids≈ 391 tokens
List the UPI IDs on the account, which are the addresses supporters pay into. The free plan keeps one of them active at a time.
Paramètres, retour & exemple (0)
Exemple d'appel{"name": "list_upi_ids", "arguments": {}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"upiIds": [], "rotation": true}} - post_goal_update≈ 578 tokens
Add a short note, up to 280 characters, under a goal saying what the money did. Notes are kept newest first, at most 20 per goal, and show on the goal's page while the goal is active or complete. Free on every plan. Nobody is notified.
Paramètres, retour & exemple (2)
Paramètresbody· string · requis
What happened. Shown publicly under the goal.goalId· integer · requis
Exemple d'appel{"name": "post_goal_update", "arguments": {"body": "texte", "goalId": 1}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"id": 1, "url": "texte", "slug": "texte", "title": "texte", "active": true, "impact": [], "percent": 1, "updates": [], "deadline": "texte", "filledAt": "texte", "description": "texte", "raisedAmount": 1}} - reject_support≈ 232 tokens
Reject one supporter when the creator has checked their bank and the payment is not there. This cannot be undone. Any voice recording is deleted immediately; the record itself is cleared a week later. Nothing shows on the page and nothing is sent to the supporter.
Paramètres, retour & exemple (1)
Paramètresid· integer · requis
Exemple d'appel{"name": "reject_support", "arguments": {"id": 1}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"id": 1, "status": "texte"}} - remove_custom_domain≈ 244 tokens
Disconnect the custom domain, so the page is served from its kulhad.co address again. Anything printed with the old domain on it stops working, so confirm with the creator first.
Paramètres, retour & exemple (0)
Exemple d'appel{"name": "remove_custom_domain", "arguments": {}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"domain": "texte", "status": "texte", "target": "texte", "instructions": "texte"}} - remove_upi_id≈ 212 tokens
Remove a UPI ID from the account. The last one, and the only active one, cannot be removed. This cannot be undone, and past supports lose the link to it; switching it off instead keeps it.
Paramètres, retour & exemple (1)
Paramètresid· integer · requis
Exemple d'appel{"name": "remove_upi_id", "arguments": {"id": 1}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"id": 1, "removed": true}} - reply_to_supporter≈ 281 tokens
Write or replace the thank-you beside one supporter, up to 280 characters; links and flagged words are refused. It shows on the creator's page once the supporter is approved, and on the supporter's own receipt link in any case. Replaces the previous reply with no history and cannot be blanked. Does not approve anyone and sends nothing.
Paramètres, retour & exemple (2)
Paramètresid· integer · requisreply· string · requis
Shown publicly beside them on the page.
Exemple d'appel{"name": "reply_to_supporter", "arguments": {"id": 1, "reply": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"id": 1, "status": "texte"}} - send_test_alert≈ 217 tokens
Fire a test alert so the creator can see where it lands in OBS while setting up. It is not a real support: nothing is recorded, no goal moves and nobody is thanked. The overlay picks it up within about five seconds and it disappears after six.
Paramètres, retour & exemple (0)
Exemple d'appel{"name": "send_test_alert", "arguments": {}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"sent": true, "showsForSeconds": 1}} - set_active_goal≈ 562 tokens
Make one goal the one shown on the page, or turn the current one off. The page shows a single goal at a time, so choosing one puts the others away without deleting anything. Reversible.
Paramètres, retour & exemple (2)
Paramètresid· integer · requisactive· boolean · optionnel
False turns this goal off and shows none.
Exemple d'appel{"name": "set_active_goal", "arguments": {"id": 1}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"id": 1, "url": "texte", "slug": "texte", "title": "texte", "active": true, "impact": [], "percent": 1, "updates": [], "deadline": "texte", "filledAt": "texte", "description": "texte", "raisedAmount": 1}} - set_custom_domain≈ 335 tokens
Record the domain the creator wants in front of their page and return the DNS record to add. Part of Premium. Replaces any domain already recorded, including a working one, which then stops serving until verify_custom_domain passes again, so confirm with the creator if a domain is already active. This does not touch DNS or make the domain work: the creator adds the record at their registrar, then verify_custom_domain checks it.
Paramètres, retour & exemple (1)
Paramètresdomain· string · requis
For example: priya.in or support.priya.in
Exemple d'appel{"name": "set_custom_domain", "arguments": {"domain": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"domain": "texte", "status": "texte", "target": "texte", "instructions": "texte"}} - set_default_upi_id≈ 217 tokens
Make one active UPI ID the one supporters are shown first. The others stay on the account. This does not switch an ID on: an inactive ID made default is never quoted.
Paramètres, retour & exemple (1)
Paramètresid· integer · requis
Exemple d'appel{"name": "set_default_upi_id", "arguments": {"id": 1}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"id": 1, "saved": true}} - set_saved_replies≈ 252 tokens
Replace the list of ready-made thank-you replies the creator picks from when approving a supporter. Part of Premium. At most 7, each up to 280 characters; blank replies and any containing a link or a flagged word are dropped and counted. Passing an empty list removes all of them.
Paramètres, retour & exemple (1)
Paramètresreplies· array · requis
Exemple d'appel{"name": "set_saved_replies", "arguments": {"replies": []}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"count": 1, "saved": true, "skipped": 1}} - set_upi_rotation≈ 185 tokens
When on, active UPI IDs take turns being quoted so support spreads across them instead of landing in one account. Part of Premium.
Paramètres, retour & exemple (1)
Paramètresenabled· boolean · requis
Exemple d'appel{"name": "set_upi_rotation", "arguments": {"enabled": true}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"rotation": true}} - start_signup≈ 313 tokens
Get a link that opens Kulhad sign-up with a page name already filled in. Hand it to the person setting up the page; they finish it themselves in a browser. This does not create an account and cannot. It marks the name as taken for check_username_available for fifteen minutes; it does not stop anyone signing up with that name directly. Nothing is sent.
Paramètres, retour & exemple (1)
Paramètresusername· string · requis
The page name to reserve and prefill. For example: priya
Exemple d'appel{"name": "start_signup", "arguments": {"username": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"url": "texte", "username": "texte", "nextSteps": [], "heldForMinutes": 1}} - update_goal≈ 728 tokens
Change a goal's title, target, description, deadline or impact tiers. Only the fields you pass change, and each replaces the old value; impact replaces the whole list. Renaming changes the goal's web address, and the old address stops working with no redirect. Changing the target does not re-check whether the goal is complete.
Paramètres, retour & exemple (6)
Paramètresid· integer · requistitle· string · optionnelimpact· array · optionnel
What each amount pays for, shown on the goal. Premium.deadline· ? · optionnel
As YYYY-MM-DD. Null clears it. A goal does not stop at its deadline.description· string · optionneltargetAmount· integer · optionnel
In whole rupees.
Exemple d'appel{"name": "update_goal", "arguments": {"id": 1}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"id": 1, "url": "texte", "slug": "texte", "title": "texte", "active": true, "impact": [], "percent": 1, "updates": [], "deadline": "texte", "filledAt": "texte", "description": "texte", "raisedAmount": 1}} - update_page_appearance≈ 579 tokens
Change the page theme and the announcement banner across the top of it. Page themes, a custom theme colour (shown only when the theme is "custom"), your own banner colour, hiding the Kulhad badge, and a Google Analytics measurement ID are Premium. The measurement ID is stored as a page setting; Kulhad itself does not contact Google. Each value passed replaces the current one. Writes to the creator's own Kulhad account only.
Paramètres, retour & exemple (8)
Paramètrestheme· string · optionnel · clay | marigold | ink | diwali | holi | custom
Premium.themeColor· string · optionnel
A six-digit colour code starting with a hash, for the custom theme. An empty string clears it.badgeHidden· boolean · optionnel
Hide the "Powered by kulhad" badge. Premium.occasionText· string · optionnel
The banner text. Empty string clears it.occasionColor· string · optionnel · clay | marigold | ink | neel | mor | gulaal | own
The banner colour. "own" uses occasionColorHex and is Premium.occasionUntil· ? · optionnel
The last day the banner shows, as YYYY-MM-DD. It shows through the whole of that day, India time. Null or an empty string removes the end date.gaMeasurementId· string · optionnel
A Google Analytics ID like G-XXXXXXXXXX. Premium. Empty string clears it.occasionColorHex· string · optionnel
The banner colour when occasionColor is "own", as a six-digit code starting with a hash. Empty string clears it.
Exemple d'appel{"name": "update_page_appearance", "arguments": {"theme": "clay", "themeColor": "texte", "badgeHidden": true, "occasionText": "texte", "occasionColor": "clay", "occasionUntil": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"url": "texte", "saved": true, "dropped": []}} - update_page_behaviour≈ 744 tokens
Change what the page does: whether new supporters go up without approval, whether people may give without a name, whether the supporter count and total show, the three suggested amounts and their labels, the headline on the pay card, the note supporters see after paying, when stream alerts fire, and whether voice messages are allowed (Premium). Passing amounts replaces all three. A label or headline that fails the word filter is blanked. Affects future supports only. Writes to the creator's own Kulhad account only.
Paramètres, retour & exemple (11)
Paramètresamounts· array · optionnel
The three suggested amounts and what each is for.amountStyle· string · optionnel · chai | shagun | nashta | dakshina | patron
Which set of suggested amounts the page offers.autoPublish· boolean · optionnel
Put a supporter on the page as soon as they mark a payment as sent, without waiting for approval.cardHeadline· string · optionnel
The line above the name on share cards.thankYouNote· string · optionnel
Shown to a supporter after they pay.streamAlertOn· string · optionnel · approved | claimed
When the stream alert overlay fires. "approved" waits until you have looked at a support, which is how every other surface behaves. "claimed" fires as soon as someone marks a payment as sent, which is faster but puts a message nobody has read yet on the stream. Only change this to "claimed" if the creator has said they want that.allowAnonymous· boolean · optionnel
Let people give without leaving a name.showTotalRaised· boolean · optionnel
Show the total amount received.counterQrEnabled· boolean · optionnel
Offer the printable counter QR, which carries no amount and no message.showSupporterCount· boolean · optionnel
Show how many people have given.voiceBlessingsEnabled· boolean · optionnel
Let supporters record a short voice message. Premium.
Exemple d'appel{"name": "update_page_behaviour", "arguments": {"amounts": [], "amountStyle": "chai", "autoPublish": true, "cardHeadline": "texte", "thankYouNote": "texte", "streamAlertOn": "approved"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"url": "texte", "saved": true, "dropped": []}} - update_profile≈ 642 tokens
Change the creator's name, bio, page address, kind of page (person or organisation), page language, dashboard language, and the links on the page. Only the fields you pass change. Links replace the whole list, so pass every link that should stay. The bio keeps bold, italic, links and line breaks and is cut at 280 characters. Changing the page address stops the old kulhad.co address working at once, with no redirect: printed QR codes, embeds and OBS overlay links break, and the old name is free for anyone to take. Not allowed while a custom domain is active. Writes to the creator's own Kulhad account only.
Paramètres, retour & exemple (7)
Paramètresbio· string · optionnel
A short introduction. Bold, italic, links and line breaks are kept, everything else is stripped, and it is cut at 280 characters.kind· string · optionnel · person | organizationname· string · optionnel
The name shown on the page.socials· array · optionnel
Replaces the whole list. Pass an empty array to remove every link.username· string · optionnel
The page address, as in kulhad.co/priya. The old address stops working immediately with no redirect, and the old name becomes free. Cannot be changed while a custom domain is active.uiLanguage· string · optionnel · en | hi | hi-Latn | mr | ta | te | ml
The creator dashboard language.pageLanguage· string · optionnel · en | hi | hi-Latn | mr | ta | te | ml
The language the public page is written in.
Exemple d'appel{"name": "update_profile", "arguments": {"bio": "texte", "kind": "person", "name": "texte", "socials": [], "username": "texte", "uiLanguage": "en"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"url": "texte", "saved": true, "dropped": []}} - update_seo≈ 269 tokens
Set the title (up to 60 characters) and description (up to 160) in the page's HTML head, which search engines and link previews read. Part of Premium. A blank value goes back to the text Kulhad generates. This does not set an image and does not contact any search engine; it only changes what the page serves.
Paramètres, retour & exemple (2)
ParamètresseoTitle· string · optionnelseoDescription· string · optionnel
Exemple d'appel{"name": "update_seo", "arguments": {"seoTitle": "texte", "seoDescription": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"url": "texte", "saved": true, "dropped": []}} - update_upi_id≈ 301 tokens
Change the address or label of a UPI ID, switch it on or off, or mark the one-rupee test done. Changing the address clears the test, and from then on the new address is what supporters are quoted and what past supports display. At least one ID has to stay active. Switching off the default leaves the lowest active ID quoted.
Paramètres, retour & exemple (5)
Paramètresid· integer · requisvpa· string · optionnellabel· string · optionnelactive· boolean · optionneltestDone· boolean · optionnel
Only set this true when the creator says they saw the rupee arrive.
Exemple d'appel{"name": "update_upi_id", "arguments": {"id": 1}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"id": 1, "saved": true}} - verify_custom_domain≈ 290 tokens
Look the domain up in public DNS and, if it points at Kulhad, switch the page to it; kulhad.co/<name> then redirects there. Part of Premium. Clears the same domain from any other account's unverified claim. Fails until the record has propagated, which is normal for the first few minutes.
Paramètres, retour & exemple (1)
Paramètresdomain· string · requis
Exemple d'appel{"name": "verify_custom_domain", "arguments": {"domain": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"domain": "texte", "status": "texte", "target": "texte", "instructions": "texte"}}
C'est votre serveur ?
Revendiquez-le sur l'espace créateur (preuve GitHub, domaine ou npm) pour afficher le badge « propriétaire vérifié » et lancer un pentest comportemental à la demande afin d'obtenir le badge « Vérifié ».