openapi: 3.2.0 info: title: EQ Scoring Platform — Human-Likeness & AI Text Benchmark… description: Human-likeness scoring and AI text benchmark API. version: 1.0.0 tags: - name: Card paths: /api/card/packs: get: summary: Card Packs description: 'Card-paid credit packs: pay USD with a normal card (no crypto wallet needed to pay), credits land on the wallet your bots use. Buy via POST /api/card/checkout.' operationId: card_packs_api_card_packs_get responses: '200': description: Successful Response content: application/json: schema: {} tags: - Card /api/card/checkout: post: summary: Card Checkout description: 'Start a card purchase of a credit pack. Returns a hosted checkout URL (Whop) plus the checkout_id needed to claim the credits afterwards. The credit count is frozen now — price changes cannot alter a pack already at checkout.' operationId: card_checkout_api_card_checkout_post requestBody: content: application/json: schema: $ref: '#/components/schemas/CardCheckoutPayload' required: true responses: '200': description: Successful Response content: application/json: schema: {} '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' tags: - Card /api/card/claim: post: summary: Card Claim description: 'Claim the credits for a completed card checkout. Requires the claim_secret issued at checkout creation. Verifies the payment with the card processor server-side, then mints the credits once.' operationId: card_claim_api_card_claim_post requestBody: content: application/json: schema: $ref: '#/components/schemas/CardClaimPayload' required: true responses: '200': description: Successful Response content: application/json: schema: {} '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' tags: - Card /api/card/refill: post: summary: Card Refill description: 'Pull any new settled subscription-renewal payments for an auto-refill checkout and add the pack''s credits to the SAME bundle the first claim minted. Requires the claim_secret from checkout creation. Idempotent — each renewal payment mints exactly once, so polling is safe. This only reconciles payments already reported as settled by Whop; it never starts a low-balance charge.' operationId: card_refill_api_card_refill_post requestBody: content: application/json: schema: $ref: '#/components/schemas/CardRefillPayload' required: true responses: '200': description: Successful Response content: application/json: schema: {} '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' tags: - Card components: schemas: CardClaimPayload: properties: checkout_id: type: string title: Checkout Id claim_secret: type: string title: Claim Secret type: object required: - checkout_id - claim_secret title: CardClaimPayload CardRefillPayload: properties: checkout_id: type: string title: Checkout Id claim_secret: type: string title: Claim Secret type: object required: - checkout_id - claim_secret title: CardRefillPayload ValidationError: properties: loc: items: anyOf: - type: string - type: integer type: array title: Location msg: type: string title: Message type: type: string title: Error Type input: title: Input ctx: type: object title: Context type: object required: - loc - msg - type title: ValidationError HTTPValidationError: properties: detail: items: $ref: '#/components/schemas/ValidationError' type: array title: Detail type: object title: HTTPValidationError CardCheckoutPayload: properties: wallet_address: type: string title: Wallet Address pack: type: string title: Pack auto_refill: type: boolean title: Auto Refill default: false type: object required: - wallet_address - pack title: CardCheckoutPayload