Skip to content
Kuro

Partner program

Reward Kuro VPN subscribers on your website without learning who they are. Partners can turn off ads for visitors browsing through Kuro Black servers, and grant their own premium features to subscribers who link their account. Partners can also be credited for subscribers they refer.

You decide what a subscriber gets on your site. Kuro VPN only tells you whether someone is a subscriber.

Privacy rules

  • You never receive a subscriber's email, account number, device, IP address or activity.
  • For each linked subscriber you receive an anonymous subject ID, unique to your site. Two partners can't match their subjects to each other.
  • You must label Kuro offers as "Partner offer" and disclose the affiliate relationship (and any common ownership) on your site, as required by advertising rules.

1. Detect visitors on Kuro servers

We publish a signed list of our exit IP addresses, split into paid and free servers:

GET https://perks.kurovpn.com/v1/exit-ips
{
  "v": 1,
  "generated_at": "2026-01-01T00:00:00Z",
  "expires_at": "2026-01-01T01:00:00Z",
  "paid": { "ipv4": ["203.0.113.24"], "ipv6": ["2001:db8::24/128"] },
  "free": { "ipv4": ["198.51.100.7"], "ipv6": [] },
  "signature": "…"
}
  • Refresh every 5 minutes and verify the Ed25519 signature with the key at https://perks.kurovpn.com/.well-known/kuro-perks.json.
  • Treat an expired list as "nobody is a subscriber".
  • Paid addresses: you can serve the page without ads.
  • Free addresses: we recommend suppressing third-party ad tags (traffic from data-centre IPs can be flagged as invalid by ad networks) and showing your own house ads.
  • Read the real client IP correctly behind your CDN, for example CF-Connecting-IP on Cloudflare.

2. Grant premium with a code

Subscribers generate a one-time 12-character code in the Kuro app or account page. It expires after 15 minutes. Add a "Redeem Kuro code" form to your account settings and call:

POST https://perks.kurovpn.com/v1/redeem
Authorization: Bearer kp_live_…
Content-Type: application/json

{ "code": "ABCD-EFGH-JKLM" }
{ "subject": "k7q2…", "plan": "black", "expires_at": "2026-02-01T00:00:00Z", "linked_at": "2026-01-01T12:00:00Z" }

Store subject on your user record. Errors use stable codes: code_invalid, code_expired, code_used, plan_required.

3. Keep status in sync

Check one subject, or up to 500 at a time (for example in a nightly job):

GET  https://perks.kurovpn.com/v1/subjects/{subject}
POST https://perks.kurovpn.com/v1/subjects/batch   { "subjects": ["…"] }
{ "subject": "k7q2…", "active": true, "plan": "black", "expires_at": "2026-02-01T00:00:00Z" }

4. Webhooks

We POST status changes to your webhook URL:

{ "id": "…", "event": "plan.changed", "subject": "k7q2…", "plan": "free", "active": false,
  "expires_at": null, "occurred_at": "2026-02-01T00:00:05Z" }

Events: link.created, link.replaced, link.revoked, plan.changed, plan.expiring. Verify the Kuro-Signature: t=<unix>,v1=<hex> header, where v1 is HMAC-SHA256 with your webhook secret over t + "." + body. Deliveries are retried for 24 hours, so handle each id only once.

When you receive active: false or link.revoked, remove premium. On link.replaced, the subscriber has linked a different account on your site; unbind the previous one.

5. SDK

@kuro/perks is a small TypeScript package with no dependencies. It caches and verifies the exit-IP list, and wraps redemption, status checks and webhook verification. It will be published when the Perks API goes live.

Referrals

Each partner gets a referral link, https://kurovpn.com/r/<your-slug>. When a visitor who arrived through your link creates a Kuro account (within 30 days of the click, on the same browser or through the app store link), that account is attributed to you, along with any subscription it starts. Only the first partner a visitor came through counts.

You receive monthly counts of sign-ups and paid subscriptions, never which accounts they are. Commission, attribution period and payout terms are agreed individually in each partner agreement.

Join

The partner program is currently by invitation. If you'd like to be considered, email [email protected] with your site and what you'd like to offer subscribers.