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.
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.
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.
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.
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 a redemption
Submitting may reserve or deduct card-key balance. Only send an account when you intend to create a real task.
| Field | Description |
|---|---|
| action | submit_task |
| cdkey | Your card key. |
| Google account email to activate. | |
| password | Account password; sensitive. |
| twofa | TOTP setup secret, not the changing six-digit code; sensitive. |
| task_type | Plan identifier: sub6, sub12 or sub24. |
| recovery_email | Recovery 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.
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
}
}
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
| HTTP | Description |
|---|---|
| 400 | Invalid request parameters. |
| 401 | Card key invalid or expired. |
| 404 | Task not found or not available for this key. |
| 410 | API discontinued. |
| 500 / 502 | Server 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.