gitbuyer_

Manage & keys

Sign in once as a human; everything after that can be a key.

Sign in: a magic link, no password

curl -X POST https://gitbuyer.com/auth/magic-link \
  -H "content-type: application/json" \
  -d '{"email": "you@company.com"}'

Click the emailed link, or POST its token to /auth/verify; the response carries a session usable as a Bearer.

API keys

curl -X POST https://gitbuyer.com/my/keys \
  -H "Authorization: Bearer YOUR_SESSION"

The gb_… key is shown once (only its hash is stored) and is a full headless login for every management call. List with GET /my/keys, revoke with DELETE /my/keys/<id>; revocation is immediate.

The management surface

# your inventory (the response's legacy key is "stores")
curl https://gitbuyer.com/my/stores -H "Authorization: Bearer gb_YOURKEY"

# reprice: only the fields you send change; the old checkout is
# voided so stale links stop selling
curl -X PATCH https://gitbuyer.com/repos/you/your-repo \
  -H "Authorization: Bearer gb_YOURKEY" \
  -H "content-type: application/json" \
  -d '{"price_usd": "40.00"}'

# takedown: the checkout is voided too
curl -X DELETE https://gitbuyer.com/repos/you/your-repo \
  -H "Authorization: Bearer gb_YOURKEY"

The PAT on file follows a three-state contract on updates: absent keeps the saved key, a string replaces it, "" clears it (for a repo that has since gone public).

Storefront tagline

curl -X PATCH https://gitbuyer.com/my/account \
  -H "Authorization: Bearer gb_YOURKEY" \
  -H "content-type: application/json" \
  -d '{"storefront_tagline": "I build Django starters"}'

One line of voice at the top of your public storefront (/r/<owner>): plain text, 140 characters. Same three-state contract: absent keeps, "" clears. It shows once the owner name ties to your account: your GitHub connection, or being the only account listing under that owner.

Sale webhook

curl -X PATCH https://gitbuyer.com/my/account \
  -H "Authorization: Bearer gb_YOURKEY" \
  -H "content-type: application/json" \
  -d '{"webhook_url": "https://your-server.com/hooks/gitbuyer"}'

Every settled sale POSTs there as sale.settled (repo, amount, payer, tx hash), signed in X-Gitbuyer-Signature with the secret the call returns, the same t=<unix>,v1=<hmac-sha256 of "t.body"> recipe checkout402's own webhooks use. Send "" to remove it. Delivery retries for about thirty seconds, then stops: the webhook is a prompt notification, and your dashboard is the ledger of record. A sale whose delivery failed still shows there, backfilled automatically.