← Developers
Start here
QuickstartSDKAuthentication
Identity
Sign in with Shin ID
Access
EntitlementsUsage & Qualified Active Days
Money
Purchases & refundsWebhooksVerifying signatures
Selling
Importing a productGitHub importSelling without the SDKCurrencies and pricingBuy with Guiru from your own site
Operating
Integration diagnosticsErrors & rate limitsTestingMobile API
Reference
ReferenceVersioning & changesFor agents
Machine-readable
llms.txt
Start here

Quickstart

From an API key to a verified entitlement in four calls.

1. Get a key2. Ask whether somebody may use your product3. Report that the session was real4. Know when things change without polling

Guiru does not host your product and does not want to know what people do inside it. The integration answers three questions and reports one fact: who is this, may they use it, did they actually use it.

Install the SDK and the parts that are easy to get wrong — webhook signatures, retries, PKCE — are already right. It is six endpoints underneath, so plain HTTP stays a first-class way to call them; see the SDK.

1. Get a key

Open your product's console, Integrate, and create a key. You will see it once — it is stored hashed and cannot be shown again. Start with a test key (gk_test_…): it reads real data but writes no usage evidence.

2. Ask whether somebody may use your product

entitlement check
curl -s "$GUIRU/api/v1/entitlements?user_id=$SHIN_USER_ID" \
  -H "Authorization: Bearer $GUIRU_API_KEY"
response
{
  "product_id": "8f14e45f-ceea-467a-9f1c-1a0b1a2b3c4d",
  "user_id": "3c1a…",
  "active": true,
  "type": "purchase",
  "source": "stripe:pi_3P…",
  "ends_at": null,
  "test_mode": false
}

3. Report that the session was real

usage evidence
curl -s -X POST "$GUIRU/api/v1/usage" \
  -H "Authorization: Bearer $GUIRU_API_KEY" \
  -H "content-type: application/json" \
  -d '{"user_id":"'"$SHIN_USER_ID"'","kind":"activity"}'

This is what earns from the Creator Pool and what a GSP seal is computed from. It is deduplicated per person per product per day, so calling it often is safe and pointless in equal measure.

4. Know when things change without polling

Register a webhook endpoint in the same console and you stop asking. A purchase, a refund, a cancelled subscription and an expiry all arrive as signed POSTs. See Webhooks.

Note

Where does user_id come from? From Sign in with Shin ID, which is the only way your app learns a person's Guiru identity. If your product already has its own accounts, link the Shin ID to your user once and keep it.

NextSDK
Guiru
AboutStoreHow Guiru worksQuality BarGSPGuiru MemberStatus
Buying
Buy with GuiruYour libraryRefundsBuyer termsTrust & safety
Builders
For buildersSubmit a productGuiru ProPricing & feesPromoteDeveloper docs
Help
Help centreYour libraryBuying & refundsHow a product gets listedHow ranking worksReport a problem
Legal
All policiesTermsPrivacyCookiesCreator PoolAffiliate disclosure
Your account
Account settingsSign in
Shin AI
Shin WebsiteKatsuiTrouble? Message Mario
Find your next favourite. Software, games and digital products on Guiru.Guiru Beta · Feedback© 2026 Shinai Tecnologias I.S.
Beta
StoreLibraryBuildersMember
Sign in
StoreSearchLibraryMemberSign in