Get early access availability

GET https://app.speybooks.com/api/v1/early-access/stats

Returns early access availability and the current trial length. Used by the pricing page to render a progress bar showing spots remaining.

Authentication

Public — no authentication required. This endpoint is marked with config: { public: true } and bypasses JWT verification.

Response Fields

  • totalSpots — fixed at 50
  • claimed — verified non-admin organisations to date
  • remainingmax(0, totalSpots - claimed)
  • trialDays — 90 if early access, 30 otherwise
  • isEarlyAccesstrue while claimed < totalSpots

When all 50 spots are claimed, remaining is 0, isEarlyAccess is false, and trialDays drops to 30. The pricing page should update its messaging accordingly.

Rate limiting: No explicit rate limit on this endpoint, but the 5-minute cache means rapid polling yields identical results. The pricing page should not poll more frequently than once per page load.

After early access ends: This endpoint continues to function — it returns isEarlyAccess: false and trialDays: 30. The pricing page can use isEarlyAccess to conditionally hide the progress bar.

Response

200 Returns current early access availability. Cached for 5 minutes.
Show response fields
claimed number
Number of early access places already claimed.
isEarlyAccess boolean
Whether the early access window is still open (fewer than 50 verified organisations).
remaining number
Number of early access places still available. Zero once all claimed.
totalSpots number
Maximum number of early access places available (50).
trialDays number
Trial length in days for new signups. 90 during early access, 30 after.