Result/proof reads
Result/proof reads turn a tournament.completed webhook into a complete outcome loop. The webhook
tells your server that a tournament finished; the result/proof read gives your server the
privacy-safe winner, standings, payout summary, replay status, and support evidence to announce or
export the result.
When to use it
Use result/proof reads when your integration needs to say more than "a tournament ended":
- post a Discord or Slack result announcement;
- append standings to Google Sheets;
- link a public result page after a hosted event;
- keep support-safe evidence for a webhook delivery.
Do not use this surface for live gameplay decisions, raw player identity, private cards, hand transcripts, or bot/action automation.
Try it in test mode
Use the developer playground to trigger the full loop without waiting for a real tournament. The
playground emits a frozen, synthetic tournament.completed fixture in your test environment,
queues deliveries to active test webhook endpoints, and returns the same result/proof DTO your
receiver will fetch from links.resultProof.href.
Create a service-account management token scoped to your test project with
playground:write and tournament_result_proofs:read:
Code
The response includes the playground tournament id, the queued webhook delivery summaries, the event envelope, and a result/proof object for the same synthetic tournament. The fixture uses obviously fake player display names and public participant ids; it never reads or exposes real player data.
Endpoints
The management read is the server-side recipe path:
Code
The token needs the tournament_result_proofs:read scope and must be allowed to read the owning
project and environment.
The public read is the browser-safe permalink path for explicitly public results:
Code
Unknown, private, cross-project, deleted, or unsupported tournaments return the same not-found shape to unauthenticated callers.
Webhook flow
For tournament.completed, prefer the discovery link in the webhook envelope:
Code
Verify the webhook signature over the raw body first, reserve the event/delivery id for idempotency,
then fetch links.resultProof.href with your server-side management token. Forward the verified
PokerWorks-Event-Id and PokerWorks-Delivery-Id header values on the result/proof request so the
response can echo them in support.webhookEventId and support.webhookDeliveryId.
Code
links.resultProof is optional for older deliveries and staged rollouts. If the link is absent,
derive the management read from data.tournamentId:
Code
Example response
Code
Privacy boundary
The response never includes raw PlayerId, account ids, email addresses, payment ids, private
cards, deck order, proof secrets, management settings, or webhook endpoint secrets.
Display identity is limited to the approved tournament display name, a product-approved public
alias, or a generated tournament-scoped label such as Player 2.
Support bundle
When asking for help with a result/proof read, include:
- request id from the result/proof response;
- webhook event id and delivery id, if the read came from a webhook;
- project id and environment;
- tournament id;
- whether you used the management read or public read;
- replay and fairness statuses from the
evidenceobject.