Skip to main content

API Overview

This page groups the externally relevant API surfaces by workflow rather than by internal service implementation.

Entitlement and run lifecycle API

These endpoints are used by the customer job during a normal entitled run:

EndpointPurposeTypical caller
POST /api/entitlement/checkConfirms entitlement availability for a proposed run_idRunner
POST /api/entitlement/consumeConsumes one run from the entitlement balanceRunner
POST /api/entitlement/run_startRecords run-start metadata such as hashes, image, and project IDRunner
POST /api/entitlement/run_completeMarks successful completion and returns the seal bundleRunner

Seal verification API

These endpoints support verification and controlled reruns:

EndpointPurposeTypical caller
POST /api/seal/verifyVerifies an uploaded seal.svg and returns verification dataUser, operator, portal
POST /api/entitlement/redeem_seal_onceGrants a one-time rerun for a verified (principal, seal_id) pairAuthenticated user or operator

The one-time redemption flow is replay-resistant. A second attempt for the same (principal, seal_id) pair should return 409.

Admin issuance API

This endpoint is used by the partner or publisher side of the workflow:

EndpointPurposeTypical caller
POST /api/entitlement/issueIssues entitlement runs to a customer principalPartner or admin operator

Authentication model

The current customer deployment path is identity-only:

  • The job authenticates with Google identity
  • The service uses the caller identity as the principal
  • Customers do not manage long-lived entitlement tokens in the normal flow

For admin issuance, the current customer docs also reference an admin token header:

  • X-GBX-ADMIN-TOKEN

What belongs in API docs versus product docs

Use the API docs to define:

  • Endpoint purpose
  • Auth expectations
  • Required sequencing
  • Expected status codes

Use product and trust docs to explain:

  • Why the entitlement model exists
  • What the seal means
  • How rerun policy works in user terms

For status codes, see Error Codes.