RexxShop · Developer Guide

API integration

Connect your service to Gemini membership redemption. Verify the card key, submit a task and follow its status from your own server.

Getting started

Send JSON to one endpoint. Specify an action and your card key in the request body.

POSThttps://gemini.rexxshop.com/openapi

Content-Type: application/json

This is an API endpoint, not a documentation page. Opening it directly in a browser sends GET and returns 405; send a POST request instead.

Keep credentials on your serverThe card key, Google password and TOTP secret are sensitive. Send them from a trusted backend over HTTPS; do not embed them in client-side code or publish them in logs. The redemption provider receives the password and TOTP secret. Confirm its retention and deletion practices before integrating.

Browser cross-origin access is not enabled by this endpoint. Use your backend as the caller; do not place a card key in a public webpage.

1Check your card key before creating a task.
2Submit the account and plan, then save the returned task ID.
3Query the task until it finishes. If a submission times out, check recent tasks before retrying.

Example request

curl https://gemini.rexxshop.com/openapi \
  -X POST \
  -H "Content-Type: application/json" \
  -d '{"action":"get_balance","cdkey":"YOUR_CARD_KEY"}'

Examples use placeholders only. Replace them in your secure environment; never share a real key or account credentials in a public example.

get_balance

Check card key and balance

Validate the card key and retrieve balance-related information and task counts.

{
  "action": "get_balance",
  "cdkey": "YOUR_CARD_KEY"
}

A tested response includes success, remaining_uses, pending_queue_cost and status_counts. A zero remaining_uses means no uses remain; the unit of a positive value has not yet been verified against plan credits.

Illustrative response

{
  "success": true,
  "remaining_uses": 0,
  "pending_queue_cost": 0,
  "status_counts": { "failed": 0, "pending": 0, "running": 0, "success": 1 }
}
submit_task

Submit a redemption

Submitting may reserve or deduct card-key balance. Only send an account when you intend to create a real task.

FieldDescription
actionsubmit_task
cdkeyYour card key.
emailGoogle account email to activate.
passwordAccount password; sensitive.
twofaTOTP setup secret, not the changing six-digit code; sensitive.
task_typePlan identifier: sub6, sub12 or sub24.
recovery_emailRecovery email, if applicable; optional.
{
  "action": "submit_task",
  "cdkey": "YOUR_CARD_KEY",
  "email": "account@example.com",
  "password": "ACCOUNT_PASSWORD",
  "twofa": "TOTP_SETUP_SECRET",
  "task_type": "sub6"
}

Plan IDs correspond to 6, 12 and 24 months. The website currently displays costs of 1, 1.5 and 2 credits respectively; confirm the current price and availability before submitting.

The exact success response for submit_task has not been verified with a new live order. A task ID may appear at the top level or inside data; check the actual response and query its status.

Avoid duplicate submissionsA timeout or network interruption does not prove the task failed. Check recent tasks for the account before retrying. Refund behavior depends on the result and is not guaranteed for every failure.
get_status

Check a task

Use the same card key and the task ID returned by the service.

{
  "action": "get_status",
  "cdkey": "YOUR_CARD_KEY",
  "task_id": "YOUR_TASK_ID"
}

A tested response contains success and a data object. Task fields can include task_id, status, task_type, cost, refunded and completed_at. Common statuses include Pending, Running, Success and Failed; treat unknown statuses as unresolved.

Illustrative response

{
  "success": true,
  "data": {
    "task_id": "EXAMPLE_TASK_ID",
    "status": "Success",
    "task_type": "sub6",
    "refunded": false
  }
}
list

View recent tasks

Retrieve tasks associated with a card key. Use this after an uncertain submission to check whether a task exists.

{
  "action": "list",
  "cdkey": "YOUR_CARD_KEY",
  "page": 1,
  "page_size": 10
}

A tested response includes success, a data array, page, limit and total. The site sends page_size, but the server may return a different limit; pagination behavior should be verified for your integration.

Illustrative response

{
  "success": true,
  "data": [{ "task_id": "EXAMPLE_TASK_ID", "status": "Success", "task_type": "sub6" }],
  "page": 1,
  "limit": 50,
  "total": 1
}

Errors & operational notes

HTTPDescription
400Invalid request parameters.
401Card key invalid or expired.
404Task not found or not available for this key.
410API discontinued.
500 / 502Server or upstream connection error. Check task status before retrying a submission.

Error messages and response shapes can vary by upstream. Check both HTTP status and the response body; a task ID alone does not guarantee successful completion.