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 idhandleCreator whose page the visitor acknowledged onorgOrganization slug, when the click came from a parent catalogiat / expIssued at / expires at (the acknowledgement's own expiry)