Peps Home

For stores

The researcher handshake

When a visitor taps I Agree on a Peps creator page and then clicks one of your products, the link to your store carries a signed token. Verify it and your store can skip its own researcher gate for that visitor, so they aren't asked twice.

Signed

ES256 JWTs issued only after an acknowledgement.

One tag

Drop in a script, or verify on your server.

Short-lived

Expires with the acknowledgement, at most 24 hours.

1. Add the script

Place it on every page, ideally in the head. It verifies the token, sets a first-party cookie and cleans the URL.

<script src="https://getpeps.us/sdk/v1/ack.js" async></script>

2. Skip your gate

The cookie getpeps_ack is present for as long as the acknowledgement is valid. The script also fires an event and exposes window.GetPeps.

if (document.cookie.includes("getpeps_ack=")) hideResearcherGate();
window.addEventListener("getpeps:ack", (e) => {
  // e.detail = { acknowledged, handle, org, expiresAt }
  hideResearcherGate();
});

Server-side verification

Prefer to check on your server? Read gp_ack from the landing URL and call the verify API:

POST https://getpeps.us/api/v1/ack/verify
Content-Type: application/json

{ "token": "<gp_ack value>" }

200 OK
{ "valid": true, "handle": "mia", "org": "acme-research",
  "issuedAt": "…", "expiresAt": "…", "expiresIn": 81234 }

Or verify offline with any JWT library against our public keys at /.well-known/jwks.json. Check iss = https://getpeps.us, aud = getpeps:researcher-ack and alg = ES256.

Token claims

subAcknowledgement id
handleCreator whose page the visitor acknowledged on
orgOrganization slug, when the click came from a parent catalog
iat / expIssued at / expires at (the acknowledgement's own expiry)