Get merchant status
Status snapshot for a merchant: interview-credit balances, subscription type/status, pending-work counts (undecided / ongoing / uncredited interviews), candidate & result totals with 14-day history, and invitation headroom. Scoped to the merchant from the JWT, or to the merchant_id query param when the caller is an admin or sub-merchant operator. The response also echoes the caller identity resolved from the JWT — profile_id and default_merchant_id — alongside the effective merchant_id.
Authorizations
Supabase JWT access token, passed as Authorization: Bearer <token>.
Query Parameters
Optional merchant to scope the results to. Honoured only when the caller is an admin or a sub-merchant operator; otherwise the merchant from the JWT is always used.
"28106cba-1c27-4e53-b149-32113e5e8e31"
Response
The merchant status snapshot.
The calling user's profile id (auth user id), taken from the JWT.
"9b2c1e54-7a3d-4f8e-9c10-2b6a4d5e7f01"
The caller's home merchant id pinned in the JWT (app_metadata.merchant_id). Null if the token carries no merchant.
"28106cba-1c27-4e53-b149-32113e5e8e31"
The merchant this status is scoped to — the default_merchant_id unless an admin / sub-merchant operator overrode it via the merchant_id query param.
"28106cba-1c27-4e53-b149-32113e5e8e31"
Remaining monthly interview credits.
8
Monthly interview-credit allowance for the current plan.
10
Extra (top-up) interview credits available on top of the monthly allowance.
25
Single-position interview credits available.
0
Count of active interview + position definitions.
4
Completed interviews that have not yet consumed a credit.
2
Completed interviews awaiting a recruiter decision.
3
Interviews currently in progress (coach_status = started).
1
Total non-archived interview results for the merchant.
137
Total candidates (non-archived profile_interview rows) for the merchant.
212
Daily new-candidate counts for the last 14 days, most recent first.
[3, 5, 0, 2, 8, 1, 0, 4, 6, 2, 1, 0, 3, 5]Daily new-interview-result counts for the last 14 days, most recent first.
[1, 2, 0, 1, 3, 0, 0, 2, 1, 1, 0, 0, 1, 2]Subscription plan name (e.g. Free, Starter, Growth, Special).
"Growth"
Subscription status (e.g. active, past_due, canceled). Null when no subscription.
"active"
Interview invitations sent during the current subscription period.
18
Maximum invitations allowed this period (4x available credits). Null for unlimited (Special) plans.
40
Remaining invitations this period. Null for unlimited (Special) plans.
22