Connect your website to Prive+

A short guide for website owners. In this example your site is yourwebsite.com.

Prefer not to code? Grok Bot can do this setup for you

Create your key in step 1, then let Grok Bot handle the rest.

Set it up with Grok Bot

1. Add your website in Prive+

  1. Open Prive+ and sign in.
  2. Add your website (for example yourwebsite.com) and its listings (homes, products, rooms, services, events…).
  3. Open the website’s settings and choose Connect API key > Create key.
  4. Copy the key (it starts with pck_) and store it on your server, for example in an environment file. It is shown only once.

Only the website owner and its admins can create, rotate or revoke keys. A key works only for its own website.

2. Add the “Connect with Prive” button

  1. In the dashboard where the people or businesses on yourwebsite.com manage their listings (agents, sellers, hosts, advertisers), show a Connect with Prive button on each listing.
  2. When the listing owner taps it, your server (never the browser) calls POST /api/connect/site with your key.
  3. Prive+ replies with an app_url. Open it for the listing owner.
  4. The Prive+ app opens. The listing owner signs in or creates an account and taps Confirm. Only then is the listing linked.
  5. Use GET /api/connect/site/status to show the button as Connected.

In progress The app-confirmation flow (app_url with pending status) is being rolled out now. Details below may still change slightly.

3. API reference

Base URL https://priveconnect.com. Every request needs Authorization: Bearer pck_…. Send JSON. Call from your server only.

POST /api/connect/site

curl -X POST https://priveconnect.com/api/connect/site \
  -H "Authorization: Bearer $PRIVE_CONNECT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"slug":"sunny-villa-listing","site_advertiser_id":"42","display_name":"Sunny Villa – Coastal Homes","telegram_id":"123456789"}'
FieldMeaning
slugrequiredThe listing id you added in Prive+ (max 64 chars).
site_advertiser_idoptionalYour internal id for the listing owner, returned in status.
display_nameoptionalName shown for the listing owner (max 40 chars). Defaults to the listing title.
telegram_idoptionalThe listing owner’s numeric Telegram user id, if you have it (3–20 digits).

Not connected yet → pending, the listing owner confirms in the app:

{ "ok": true, "claim_status": "pending", "prive_account_id": null,
  "app_url": "https://priveconnect.com/app/?connect=pcl_…",
  "expires_at": "2026-10-13T10:15:00.000Z", "slug": "sunny-villa-listing" }

Already connected → safe to repeat, returns the same account:

{ "ok": true, "claim_status": "claimed", "prive_account_id": "u_…",
  "signin_url": "https://priveconnect.com/app/#sso=…", "slug": "sunny-villa-listing", "repeat": true }

GET /api/connect/site/status?slug=SLUG

{ "ok": true, "slug": "sunny-villa-listing", "connected": true, "claim_status": "claimed",
  "prive_account_id": "u_…", "claimed_at": "2026-10-13T09:00:00.000Z",
  "telegram_linked": true, "site_advertiser_id": "42" }

Errors

HTTPerrorWhen
400bad_telegram_idtelegram_id is not numeric.
401unauthorizedMissing, wrong or revoked key.
404unknown_listingNo listing with that slug on your website.
409claimed_by_other_accountThe listing is already linked to a different account.
409telegram_id_is_site_teamThat Telegram account belongs to your website’s own team.
429rate_limitedMore than 30 requests a minute. Retry after retry_after seconds.

4. Security