Developers

Customer APIs for pricing, contact, signup, plan status, and billing — plus standard Frappe REST for resources you are permitted to use.

Base URL: https://zivvy.xyz/api

OpenAPI: openapi.json

Only the endpoints below are the intentional customer allowlist. Admin Polar setup, webhooks, and internal seeding are not public customer APIs.

Authentication

  • Session — Log in at /login; browser cookies apply to /api/method/….
  • API key / token — Desk → User → API Access: send Authorization: token api_key:api_secret.
  • Guest — Marked below; no login required.

Plans

Gating follows your effective tier (site subscription, or a demo override on special accounts).

  • Free — $0
  • Pro — $15/user/mo
  • Business — $25/user/mo

Guest

Auth: None (Guest) · Plan: Any

GET /api/method/ping

Health check

Response

{"message": "pong"}
GET /api/method/zivvy_brand.billing.api.get_public_pricing

Public pricing matrix (Free / Pro / Business)

Response

{"message": {"free": {...}, "pro": {...}, "business": {...}}}
POST /api/method/zivvy_brand.analytics.contact.submit_contact

Contact form (rate-limited)

Request

{"full_name": "Ada", "email": "ada@example.com", "message": "Hello"}

Response

{"message": {"ok": true}}
POST /api/method/zivvy_brand.marketing.api.send_contact_message

Alternate contact form handler

Request

{"full_name": "Ada", "email": "ada@example.com", "message": "Hello"}

Response

{"message": {"ok": true}}
POST /api/method/zivvy_brand.auth.signup.sign_up

Website signup (auto-enabled SaaS user)

Request

{"email": "you@example.com", "full_name": "You", "zivvy_datacenter": "india", "redirect_to": "/app"}

Response

[1, "Please check your email for verification"]

Logged-in customer

Auth: Session cookie or API key (token) · Plan: Any logged-in user

GET /api/method/zivvy_brand.billing.api.get_my_plan

Effective plan for the current user (respects demo override)

Response

{"message": {"tier": "free", "tier_label": "Free", ...}}
GET / POST /api/resource/{Doctype}

ERPNext resource CRUD — only DocTypes your roles + plan allow

Request

See Frappe REST docs; gated DocTypes return PermissionError on Free/Pro as applicable

Response

Standard Frappe resource payload

Billing manager

Auth: Logged-in System Manager (or demo account for status only) · Plan: Site subscription; checkout for Pro/Business

GET /api/method/zivvy_brand.billing.api.get_billing_status

Plan + Polar readiness (no secrets). Demo accounts may call this.

Response

{"message": {"tier": "pro", "polar": {"configured": true}, ...}}
POST /api/method/zivvy_brand.billing.api.create_checkout

Start Polar checkout — System Manager only

Requires: Pro or Business product

Request

{"plan": "pro", "seats": 3}

Response

{"message": {"url": "https://polar.sh/...", "plan": "pro"}}
POST /api/method/zivvy_brand.billing.api.create_portal_session

Open Polar customer portal — System Manager only

Response

{"message": {"url": "https://polar.sh/..."}}

Not customer APIs

  • zivvy_brand.billing.webhooks.polar_webhook — Polar server webhook (signed); not for app clients.
  • zivvy_brand.billing.setup_polar.setup_polar_products — Admin / ops only.
  • zivvy_brand.setup.seed_demo_accounts — Ops seeding; not public.

See pricing Sign in