HackEx private API

Every action in the game is a request you can script. 173 endpoints on this server.

Start here

  1. Sign in, then open My Device. Your key is the row under IP and PROXY. Tap Copy.
  2. Send that key on every request as the header X-Api-Key.
  3. Call /v1/... on this website. One request per second.
  4. Read success in the JSON. The server often answers HTTP 200 even when it refused the call.
  5. Rotate on that same row makes a new key and turns the old one off. This browser stays signed in.

Try your own profile:

curl -s -H "X-Api-Key: pk_YOUR_KEY" "__ORIGIN__/v1/user?extras=true"

This website — Call /v1 here. Send header X-Api-Key. One request per second.

Heists 7

POST /v1/heist_accept

Accepts a contract by contract_key or key, or board_index or index, with mode solo or crew, and returns the accept_contract payload.

Body contract_key, key, board_index, index, mode, solo_or_crew

Note private-only

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"contract_key": "VALUE", "key": "VALUE", "board_index": "VALUE", "index": "VALUE", "mode": "VALUE", "solo_or_crew": "VALUE"}' \
  -X POST \
  "__ORIGIN__/v1/heist_accept"

POST /v1/heist_claim

Claims loot for heist run_id when the run is in the clean phase and returns the complete_run payload (or run if not ready).

Body run_id

Note private-only

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"run_id": "VALUE"}' \
  -X POST \
  "__ORIGIN__/v1/heist_claim"

GET /v1/heist_contracts

Returns the daily heist board, phases, active run, and history.

Note private-only. alias: /v1/heist_board

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  "__ORIGIN__/v1/heist_contracts"

POST /v1/heist_fail

Aborts heist run_id (or the active run) with optional reason and returns the fail_run payload.

Body run_id, reason

Note private-only. alias: /v1/heist_abort

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"run_id": "VALUE", "reason": "VALUE"}' \
  -X POST \
  "__ORIGIN__/v1/heist_fail"

POST /v1/heist_join

Joins a crew heist run_id and returns the join_run payload.

Body run_id

Note private-only

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"run_id": "VALUE"}' \
  -X POST \
  "__ORIGIN__/v1/heist_join"

GET /v1/heist_status

Returns the caller's active heist, or run_id if given, as run (or active null).

Query run_id

Body run_id

Note private-only

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  "__ORIGIN__/v1/heist_status?run_id=VALUE"

POST /v1/heist_step

Advances heist run_id (or the active run) by step or phase and returns the advance_step payload.

Body run_id, step, phase

Note private-only

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"run_id": "VALUE", "step": "VALUE", "phase": "VALUE"}' \
  -X POST \
  "__ORIGIN__/v1/heist_step"

Heat and bounties 9

GET /v1/heat_bounties

Lists open bounties as bounties, with open_count, min_post, and max_post.

Note private-only. alias: /v1/wanted_bounties, /v1/bounty_board, /v1/bounties

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  "__ORIGIN__/v1/heat_bounties"

POST /v1/heat_bounty_cancel

Cancels the caller's bounty_id (or id) and returns the cancel_player_bounty payload.

Body bounty_id, id

Note private-only. alias: /v1/bounty_cancel

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"bounty_id": "VALUE", "id": "VALUE"}' \
  -X POST \
  "__ORIGIN__/v1/heat_bounty_cancel"

POST /v1/heat_bounty_claim

Claims bounty_id (or id) and/or target_id (or victim_user_id) and returns the claim_bounty payload.

Body bounty_id, id, target_id, victim_user_id

Note private-only. alias: /v1/wanted_bounty_claim, /v1/bounty_claim

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"bounty_id": "VALUE", "id": "VALUE", "target_id": "VALUE", "victim_user_id": "VALUE"}' \
  -X POST \
  "__ORIGIN__/v1/heat_bounty_claim"

POST /v1/heat_bounty_post

Posts a bounty on target_id (or victim_user_id or user_id) for amount (or reward or crypto), with optional username, ip, and note, and returns the post_player_bounty payload.

Body target_id, victim_user_id, user_id, amount, reward, crypto, username, target, name, ip, user_ip, note, message

Note private-only. alias: /v1/bounty_post, /v1/wanted_bounty_post

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"target_id": "VALUE", "victim_user_id": "VALUE", "user_id": "VALUE", "amount": "VALUE", "reward": "VALUE", "crypto": "VALUE", "username": "VALUE", "target": "VALUE", "name": "VALUE", "ip": "VALUE", "user_ip": "VALUE", "note": "VALUE", "message": "VALUE"}' \
  -X POST \
  "__ORIGIN__/v1/heat_bounty_post"

GET /v1/heat_bounty_progress

Returns bounty progress against target_id or victim_user_id.

Query target_id, victim_user_id

Note private-only. alias: /v1/bounty_progress

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  "__ORIGIN__/v1/heat_bounty_progress?target_id=VALUE&victim_user_id=VALUE"

POST /v1/heat_corp_spoof

Activates a corp-spoof charge and returns the activate_corp_spoof payload.

Note private-only. alias: /v1/corp_spoof

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  -X POST \
  "__ORIGIN__/v1/heat_corp_spoof"

POST /v1/heat_fixer

Pays the fixer to clear heat, amount, or clear and returns the pay_fixer payload.

Body heat, amount, clear

Note private-only. alias: /v1/wanted_fixer

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"heat": "VALUE", "amount": "VALUE", "clear": "VALUE"}' \
  -X POST \
  "__ORIGIN__/v1/heat_fixer"

POST /v1/heat_frame

Frames target_id or victim_user_id by shifting heat and returns the frame_player payload.

Body target_id, victim_user_id

Note private-only. alias: /v1/wanted_frame

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"target_id": "VALUE", "victim_user_id": "VALUE"}' \
  -X POST \
  "__ORIGIN__/v1/heat_frame"

GET /v1/heat_status

Returns the caller's heat, band, effects, bounty, events, fixer, and corp_spoof.

Note private-only. alias: /v1/wanted_status

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  "__ORIGIN__/v1/heat_status"

Crews 25

POST /v1/crew_accept_invite

Accepts an invite to crew_id and returns the accept_invite payload.

Body crew_id

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"crew_id": "VALUE"}' \
  -X POST \
  "__ORIGIN__/v1/crew_accept_invite"

POST /v1/crew_approve_request

Approves user_id's join request for crew_id and returns the approve_request payload.

Body crew_id, user_id

Note alias: /v1/approve_join_request

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"crew_id": "VALUE", "user_id": "VALUE"}' \
  -X POST \
  "__ORIGIN__/v1/crew_approve_request"

GET /v1/crew_bans

Lists bans for crew_id (query or body) and returns the list_bans payload.

Query crew_id

Body crew_id

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  "__ORIGIN__/v1/crew_bans?crew_id=VALUE"

POST /v1/crew_create

Creates a crew from name, tag, join_policy, and encryption_required and returns the create_crew payload.

Body encryption_required, name, tag, join_policy

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"encryption_required": "VALUE", "name": "VALUE", "tag": "VALUE", "join_policy": "VALUE"}' \
  -X POST \
  "__ORIGIN__/v1/crew_create"

POST /v1/crew_decline_invite

Declines an invite to crew_id and returns the decline_invite payload.

Body crew_id

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"crew_id": "VALUE"}' \
  -X POST \
  "__ORIGIN__/v1/crew_decline_invite"

POST /v1/crew_delete

Deletes crew_id when the caller leads it and returns the delete_crew payload.

Body crew_id

Note alias: /v1/delete_crew

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"crew_id": "VALUE"}' \
  -X POST \
  "__ORIGIN__/v1/crew_delete"

POST /v1/crew_demote

Demotes user_id in crew_id and returns the demote payload.

Body crew_id, user_id

Note alias: /v1/demote_crew_member

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"crew_id": "VALUE", "user_id": "VALUE"}' \
  -X POST \
  "__ORIGIN__/v1/crew_demote"

POST /v1/crew_deny_request

Denies user_id's join request for crew_id and returns the deny_request payload.

Body crew_id, user_id

Note alias: /v1/deny_join_request

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"crew_id": "VALUE", "user_id": "VALUE"}' \
  -X POST \
  "__ORIGIN__/v1/crew_deny_request"

POST /v1/crew_encryption_toggle

Toggles crew chat encryption for crew_id and returns the toggle_encryption payload.

Body crew_id

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"crew_id": "VALUE"}' \
  -X POST \
  "__ORIGIN__/v1/crew_encryption_toggle"

POST /v1/crew_invite

Invites user_id to crew_id and returns the invite payload.

Body crew_id, user_id

Note alias: /v1/invite_to_crew

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"crew_id": "VALUE", "user_id": "VALUE"}' \
  -X POST \
  "__ORIGIN__/v1/crew_invite"

POST /v1/crew_invite_username

Invites username to crew_id and returns the invite_by_username payload.

Body crew_id, username

Note alias: /v1/invite_to_crew_by_username

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"crew_id": "VALUE", "username": "VALUE"}' \
  -X POST \
  "__ORIGIN__/v1/crew_invite_username"

GET /v1/crew_invites

Lists crew invites waiting for the caller and returns the list_invites payload.

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  "__ORIGIN__/v1/crew_invites"

POST /v1/crew_join

Joins crew_id (or files a request if the policy requires it) and returns the join_crew payload.

Body crew_id

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"crew_id": "VALUE"}' \
  -X POST \
  "__ORIGIN__/v1/crew_join"

GET /v1/crew_join_requests

Lists join requests for crew_id (query or body; optional) and returns the list_join_requests payload.

Query crew_id

Body crew_id

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  "__ORIGIN__/v1/crew_join_requests?crew_id=VALUE"

POST /v1/crew_kick_member

Kicks user_id from crew_id and returns the kick_member payload.

Body crew_id, user_id

Note alias: /v1/kick_crew_member

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"crew_id": "VALUE", "user_id": "VALUE"}' \
  -X POST \
  "__ORIGIN__/v1/crew_kick_member"

POST /v1/crew_leave

Leaves crew_id (optional if the caller is in only one crew) and returns the leave_crew payload.

Body crew_id

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"crew_id": "VALUE"}' \
  -X POST \
  "__ORIGIN__/v1/crew_leave"

GET /v1/crew_list

Searches crews with search, offset, and limit (query or body) and returns the list_crews payload.

Query search, offset, limit

Body search, offset, limit

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  "__ORIGIN__/v1/crew_list?search=VALUE&offset=VALUE&limit=VALUE"

GET /v1/crew_members

Returns the caller's crew hub as crews (crew, members, my_role) and max_crews.

Note alias: /v1/crew, /v1/view_crew

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  "__ORIGIN__/v1/crew_members"

POST /v1/crew_promote

Promotes user_id in crew_id and returns the promote payload.

Body crew_id, user_id

Note alias: /v1/promote_crew_member

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"crew_id": "VALUE", "user_id": "VALUE"}' \
  -X POST \
  "__ORIGIN__/v1/crew_promote"

POST /v1/crew_rename

Renames crew_id to name and returns the rename_crew payload.

Body crew_id, name

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"crew_id": "VALUE", "name": "VALUE"}' \
  -X POST \
  "__ORIGIN__/v1/crew_rename"

POST /v1/crew_retag

Changes crew_id's tag and returns the retag_crew payload.

Body crew_id, tag

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"crew_id": "VALUE", "tag": "VALUE"}' \
  -X POST \
  "__ORIGIN__/v1/crew_retag"

POST /v1/crew_set_join_policy

Sets crew_id's join_policy and returns the set_join_policy payload.

Body crew_id, join_policy

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"crew_id": "VALUE", "join_policy": "VALUE"}' \
  -X POST \
  "__ORIGIN__/v1/crew_set_join_policy"

POST /v1/crew_transfer_leadership

Transfers leadership of crew_id to new_leader_user_id or user_id and returns the transfer_leadership payload.

Body crew_id, new_leader_user_id, user_id

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"crew_id": "VALUE", "new_leader_user_id": "VALUE", "user_id": "VALUE"}' \
  -X POST \
  "__ORIGIN__/v1/crew_transfer_leadership"

POST /v1/crew_unban

Unbans user_id from crew_id and returns the unban_member payload.

Body crew_id, user_id

Note alias: /v1/unban_crew_member

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"crew_id": "VALUE", "user_id": "VALUE"}' \
  -X POST \
  "__ORIGIN__/v1/crew_unban"

GET /v1/victim_crew

After a bypass, returns the crew of victim_user_id via victim_crew.

Query victim_user_id

Body victim_user_id

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  "__ORIGIN__/v1/victim_crew?victim_user_id=VALUE"

Messages 23

POST /v1/add_reaction

Adds emoji to post_id and returns the add_reaction payload.

Body post_id, emoji

Note alias: /v1/message_react

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"post_id": "VALUE", "emoji": "VALUE"}' \
  -X POST \
  "__ORIGIN__/v1/add_reaction"

POST /v1/contact_accept

Accepts a pending request from contact_user_id or user_id and returns the accept_contact payload.

Body contact_user_id, user_id

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"contact_user_id": "VALUE", "user_id": "VALUE"}' \
  -X POST \
  "__ORIGIN__/v1/contact_accept"

POST /v1/contact_add

Sends a contact request to contact_user_id or user_id and returns the add_contact payload.

Body contact_user_id, user_id

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"contact_user_id": "VALUE", "user_id": "VALUE"}' \
  -X POST \
  "__ORIGIN__/v1/contact_add"

POST /v1/contact_decline

Declines a pending request from contact_user_id or user_id and returns the decline_contact payload.

Body contact_user_id, user_id

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"contact_user_id": "VALUE", "user_id": "VALUE"}' \
  -X POST \
  "__ORIGIN__/v1/contact_decline"

GET /v1/contacts

Lists the caller's accepted contacts as contacts.

Note alias: /v1/contact_list

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  "__ORIGIN__/v1/contacts"

GET /v1/contacts_pending

Lists incoming contact requests as contacts_pending and pending_contacts.

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  "__ORIGIN__/v1/contacts_pending"

POST /v1/create_message_thread

Opens a DM with contact_user_id, user_id, or other_user_id, or a crew thread with crew_id, and returns threads.

Query contact_user_id, user_id

Body contact_user_id, user_id, other_user_id, crew_id

Note alias: /v1/message_thread_create, /v1/message_thread_open_with_contact

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"contact_user_id": "VALUE", "user_id": "VALUE", "other_user_id": "VALUE", "crew_id": "VALUE"}' \
  -X POST \
  "__ORIGIN__/v1/create_message_thread?contact_user_id=VALUE&user_id=VALUE"

GET /v1/message_encryption_status

Returns whether Message Encryptor is owned and enabled (owned, enabled, encryption_enabled).

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  "__ORIGIN__/v1/message_encryption_status"

POST /v1/message_encryption_toggle

Toggles Message Encryptor for the caller and returns owned, enabled, and encryption_enabled.

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  -X POST \
  "__ORIGIN__/v1/message_encryption_toggle"

GET /v1/message_posts

Lists posts in thread_id, with limit and before_id or older_than, and returns posts.

Query thread_id, limit, before_id, older_than

Body thread_id, limit, before_id

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  "__ORIGIN__/v1/message_posts?thread_id=VALUE&limit=VALUE&before_id=VALUE&older_than=VALUE"

POST /v1/message_thread_delete

Deletes thread_id for the caller and returns the delete_thread payload.

Body thread_id

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"thread_id": "VALUE"}' \
  -X POST \
  "__ORIGIN__/v1/message_thread_delete"

POST /v1/message_thread_mark_read

Marks thread_id read for the caller and returns the mark_read payload.

Body thread_id

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"thread_id": "VALUE"}' \
  -X POST \
  "__ORIGIN__/v1/message_thread_mark_read"

GET /v1/message_threads

Lists message threads, optionally filtered by type or filter and paged with page and limit (query or body), returning threads.

Query type, filter, page, limit

Body type, page, limit

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  "__ORIGIN__/v1/message_threads?type=VALUE&filter=VALUE&page=VALUE&limit=VALUE"

GET /v1/message_threads_has_unread

Returns has_unread plus dm_unread and admin_unread.

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  "__ORIGIN__/v1/message_threads_has_unread"

GET /v1/message_unread_counts

Returns crew_unread, dm_unread, admin_unread, and pending_contacts.

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  "__ORIGIN__/v1/message_unread_counts"

POST /v1/remove_reaction

Removes emoji from post_id and returns the remove_reaction payload.

Body post_id, emoji

Note alias: /v1/message_unreact

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"post_id": "VALUE", "emoji": "VALUE"}' \
  -X POST \
  "__ORIGIN__/v1/remove_reaction"

POST /v1/send_message

Posts text (or message or body) into thread_id or id and returns the send_message payload (posts).

Body thread_id, id, text, message, body

Note alias: /v1/message_send, /v1/message_thread_reply, /v1/reply_message

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"thread_id": "VALUE", "id": "VALUE", "text": "VALUE", "message": "VALUE", "body": "VALUE"}' \
  -X POST \
  "__ORIGIN__/v1/send_message"

POST /v1/user_block

Blocks blocked_user_id (or target_user_id or user_id) and returns the block_user payload.

Body blocked_user_id, target_user_id, user_id

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"blocked_user_id": "VALUE", "target_user_id": "VALUE", "user_id": "VALUE"}' \
  -X POST \
  "__ORIGIN__/v1/user_block"

GET /v1/user_block_check

Checks whether target_user_id or user_id is blocked and returns blocked.

Query target_user_id, user_id

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  "__ORIGIN__/v1/user_block_check?target_user_id=VALUE&user_id=VALUE"

GET /v1/user_blocks

Lists users the caller has blocked as user_blocks, blocked_users, and blocks.

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  "__ORIGIN__/v1/user_blocks"

POST /v1/user_unblock

Unblocks blocked_user_id (or target_user_id or user_id) and returns the unblock_user payload.

Body blocked_user_id, target_user_id, user_id

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"blocked_user_id": "VALUE", "target_user_id": "VALUE", "user_id": "VALUE"}' \
  -X POST \
  "__ORIGIN__/v1/user_unblock"

GET /v1/victim_message_posts

Lists posts in thread_id on victim_user_id and returns posts.

Query victim_user_id, thread_id

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  "__ORIGIN__/v1/victim_message_posts?victim_user_id=VALUE&thread_id=VALUE"

GET /v1/victim_message_threads

Lists message threads visible on a bypassed victim_user_id and returns threads.

Query victim_user_id

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  "__ORIGIN__/v1/victim_message_threads?victim_user_id=VALUE"

Wallet 14

GET /v1/credits_balance

Returns the caller's credit balance as credits and balance.

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  "__ORIGIN__/v1/credits_balance"

POST /v1/credits_buy_oc

Buys an overclock pack_size (or size) with credits and returns pack_size, overclocks, overclocks_added, credits, and user.

Body pack_size, size

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"pack_size": "VALUE", "size": "VALUE"}' \
  -X POST \
  "__ORIGIN__/v1/credits_buy_oc"

GET /v1/credits_history

Pages credit ledger entries with limit and offset and returns history, transactions, has_more, and count.

Query limit, offset

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  "__ORIGIN__/v1/credits_history?limit=VALUE&offset=VALUE"

POST /v1/crypto_exchange

Spends crypto for credits_amount (or credits, or crypto_amount) and on success returns user, user_wallet, credits, hot, and cold.

Body credits_amount, credits, crypto_amount

Note alias: /v1/exchange_crypto, /v1/crypto_to_credits

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"credits_amount": "VALUE", "credits": "VALUE", "crypto_amount": "VALUE"}' \
  -X POST \
  "__ORIGIN__/v1/crypto_exchange"

GET /v1/crypto_exchange_info

Returns crypto-to-credits exchange_rate, min_credits, monthly_cap, monthly_used, and monthly_remaining.

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  "__ORIGIN__/v1/crypto_exchange_info"

GET /v1/crypto_history

Pages the caller's crypto ledger with limit, offset, and type, tx_type, or filter, returning transactions, has_more, and count.

Query limit, offset, type, tx_type, filter

Note alias: /v1/wallet_transactions

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  "__ORIGIN__/v1/crypto_history?limit=VALUE&offset=VALUE&type=VALUE&tx_type=VALUE&filter=VALUE"

GET /v1/user_wallet

Reads the caller's wallet and returns user_wallet, wallet, hot, cold, and wallet_shield_expires_at.

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  "__ORIGIN__/v1/user_wallet"

GET /v1/victim_user_wallet

Reads a cracked victim_user_id wallet and returns user_wallet, wallet, hot, cold, and wallet_shield_expires_at.

Query victim_user_id

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  "__ORIGIN__/v1/victim_user_wallet?victim_user_id=VALUE"

POST /v1/wallet_activate_shield

Consumes a wallet-shield item (inventory type 103) and on success returns user, user_wallet, wallet, inventory, and credits.

Note alias: /v1/activate_wallet_shield

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  -X POST \
  "__ORIGIN__/v1/wallet_activate_shield"

POST /v1/wallet_regenerate_address

Spends 50 credits to roll a new wallet address and returns address and credits.

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  -X POST \
  "__ORIGIN__/v1/wallet_regenerate_address"

POST /v1/wallet_transfer_from_cold

Moves amount of cold crypto back to hot and returns amount_transferred plus user_wallet.

Body amount

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"amount": "VALUE"}' \
  -X POST \
  "__ORIGIN__/v1/wallet_transfer_from_cold"

POST /v1/wallet_transfer_from_victim

Steals amount from a cracked victim_user_id and returns amount_transferred, tax, gas_fee, and user_wallet.

Body victim_user_id, amount

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"victim_user_id": "VALUE", "amount": "VALUE"}' \
  -X POST \
  "__ORIGIN__/v1/wallet_transfer_from_victim"

POST /v1/wallet_transfer_to_cold

Moves amount of hot crypto into cold storage and returns amount_transferred plus user_wallet.

Body amount

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"amount": "VALUE"}' \
  -X POST \
  "__ORIGIN__/v1/wallet_transfer_to_cold"

POST /v1/wallet_transfer_to_contact

Sends amount of hot crypto to contact_user_id (or user_id) and returns amount_transferred, amount_received, tax, and user_wallet.

Body contact_user_id, user_id, amount

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"contact_user_id": "VALUE", "user_id": "VALUE", "amount": "VALUE"}' \
  -X POST \
  "__ORIGIN__/v1/wallet_transfer_to_contact"

Scan 10

GET /v1/is_password_cracked

Reports whether victim_user_id's password is cracked as password_cracked and cracked.

Query victim_user_id

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  "__ORIGIN__/v1/is_password_cracked?victim_user_id=VALUE"

GET /v1/user_scan_ip

Looks up one target by user_ip or ip and returns scan_result, user, users, and scan_results.

Query user_ip, ip

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  "__ORIGIN__/v1/user_scan_ip?user_ip=VALUE&ip=VALUE"

GET /v1/user_scan_random

Random-scans up to count targets (default 10, max 10) and returns scan_results, users, scan, and count.

Query count

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  "__ORIGIN__/v1/user_scan_random?count=VALUE"

GET /v1/user_victim

Opens a bypassed victim_user_id device and returns user, user_software, user_wallet, user_device, user_network, user_log, and password_cracked.

Query victim_user_id

Note alias: /v1/user_victim_access

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  "__ORIGIN__/v1/user_victim?victim_user_id=VALUE"

GET /v1/user_viruses_on_victim

Lists viruses on a bypassed victim_user_id and returns viruses.

Query victim_user_id

Body victim_user_id

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  "__ORIGIN__/v1/user_viruses_on_victim?victim_user_id=VALUE"

GET /v1/victim_user_log

Reads a bypassed victim_user_id device log and returns log, user_log, and log_locked.

Query victim_user_id

Body victim_user_id

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  "__ORIGIN__/v1/victim_user_log?victim_user_id=VALUE"

GET /v1/victim_user_processes

Lists processes on a bypassed victim_user_id as victim_processes, processes, and user_processes.

Query victim_user_id

Body victim_user_id

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  "__ORIGIN__/v1/victim_user_processes?victim_user_id=VALUE"

GET /v1/victim_user_software

Lists software on victim_user_id (requires a foothold) as software and user_software.

Query victim_user_id

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  "__ORIGIN__/v1/victim_user_software?victim_user_id=VALUE"

POST /v1/virus_remove

Tries to remove virus_id (or id) from the caller's device after an AV scan and returns removed and rep_restored.

Body virus_id, id

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"virus_id": "VALUE", "id": "VALUE"}' \
  -X POST \
  "__ORIGIN__/v1/virus_remove"

POST /v1/virus_scan

Starts an antivirus scan on the caller's own device and returns the process result plus user, user_software, user_wallet, and user_processes.

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  -X POST \
  "__ORIGIN__/v1/virus_scan"

Processes 11

GET /v1/process

Fetches one of the caller's processes by process_id or id and returns process.

Query process_id, id

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  "__ORIGIN__/v1/process?process_id=VALUE&id=VALUE"

POST /v1/process

Starts a process: process_type_id is required, victim_user_id optional (0 for AV), plus software_id or software_type_id and optional level or backdoor/exploit flags; success adds user and user_processes.

Body victim_user_id, process_type_id, software_id, software_type_id, type_id, software_level, level, selected_level, virus_level, use_backdoor, use_exploit_kit

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"victim_user_id": "VALUE", "process_type_id": "VALUE", "software_id": "VALUE", "software_type_id": "VALUE", "type_id": "VALUE", "software_level": "VALUE", "level": "VALUE", "selected_level": "VALUE", "virus_level": "VALUE", "use_backdoor": "VALUE", "use_exploit_kit": "VALUE"}' \
  -X POST \
  "__ORIGIN__/v1/process"

GET /v1/process_ad_available

Reports process-speed ads as unavailable (available false, watches_remaining 0).

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  "__ORIGIN__/v1/process_ad_available"

POST /v1/process_delete

Deletes one process_id owned by the caller and returns process_deleted_ids.

Body process_id

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"process_id": "VALUE"}' \
  -X POST \
  "__ORIGIN__/v1/process_delete"

POST /v1/process_overclock

Spends one overclock on running process_id (or id) and returns overclocks, overclocks_spent, completed, user, and process.

Body process_id, id

Note alias: /v1/overclock_process

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"process_id": "VALUE", "id": "VALUE"}' \
  -X POST \
  "__ORIGIN__/v1/process_overclock"

POST /v1/process_pause

Pauses a running process_id and returns process_id and paused.

Body process_id

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"process_id": "VALUE"}' \
  -X POST \
  "__ORIGIN__/v1/process_pause"

POST /v1/process_resume

Resumes a paused process_id and returns process_id and resumed.

Body process_id

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"process_id": "VALUE"}' \
  -X POST \
  "__ORIGIN__/v1/process_resume"

POST /v1/process_retry

Retries process_id in place and, on success, returns that result plus user and user_processes.

Body process_id

Note alias: /v1/retry_process, /v1/processes_retry

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"process_id": "VALUE"}' \
  -X POST \
  "__ORIGIN__/v1/process_retry"

POST /v1/process_watched_ad

Rejects a process ad watch because ads are disabled (watches_remaining 0).

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  -X POST \
  "__ORIGIN__/v1/process_watched_ad"

POST /v1/processes_delete

Deletes each id in process_ids and returns process_deleted_ids.

Body process_ids

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"process_ids": "VALUE"}' \
  -X POST \
  "__ORIGIN__/v1/processes_delete"

GET /v1/user_processes

Lists the caller's processes (statuses 0-3) as processes and user_processes.

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  "__ORIGIN__/v1/user_processes"

Store 17

GET /v1/black_market

Returns today's black-market rotation as items and black_market, plus credits, overclocks, sale, and user.

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  "__ORIGIN__/v1/black_market"

POST /v1/black_market_buy

Buys item_type (or type or item), optionally checking expected_price, and returns item_type, price, credits, user, user_wallet, and inventory.

Body item_type, type, item, expected_price

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"item_type": "VALUE", "type": "VALUE", "item": "VALUE", "expected_price": "VALUE"}' \
  -X POST \
  "__ORIGIN__/v1/black_market_buy"

POST /v1/botnet_purchase

Buys the next botnet tier with crypto and returns botnet, user, user_wallet, from_hot, from_cold, and xp_gained.

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  -X POST \
  "__ORIGIN__/v1/botnet_purchase"

GET /v1/botnet_status

Returns botnet for the caller's tier and how many spam viruses occupy slots.

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  "__ORIGIN__/v1/botnet_status"

GET /v1/iap_products

Private-server stub that returns empty products, subscriptions, and packs so no IAP catalog is listed.

Note alias: /v1/store_iap, /v1/store_products, /v1/in_app_products, /v1/billing_products

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  "__ORIGIN__/v1/iap_products"

POST /v1/inventory_use

Uses a consumable by item_type_id, type_id, item_id, or item_type name and on success returns user, user_wallet, inventory, and credits.

Body item_type_id, type_id, item_id, item_type, type, name

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"item_type_id": "VALUE", "type_id": "VALUE", "item_id": "VALUE", "item_type": "VALUE", "type": "VALUE", "name": "VALUE"}' \
  -X POST \
  "__ORIGIN__/v1/inventory_use"

GET /v1/store

Returns the store catalog: software, devices, networks, consumables, credits_items, user, user_wallet, user_device, user_network, botnet, credits, and overclocks.

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  "__ORIGIN__/v1/store"

GET /v1/store_config

Returns store_config with oc_packs, wallpaper_packs, and exchange limits (subscriptions empty).

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  "__ORIGIN__/v1/store_config"

POST /v1/store_purchase

Buys software (software_type_id or type_id, optional levels), a device (device_type_id), a network (network_type_id), or a credit consumable (item_type) and returns user plus user_wallet, user_software, user_device, or inventory.

Body software_type_id, type_id, device_type_id, device_id, network_type_id, network_id, item_type, consumable, levels

Note alias: /v1/store_purchase_software

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"software_type_id": "VALUE", "type_id": "VALUE", "device_type_id": "VALUE", "device_id": "VALUE", "network_type_id": "VALUE", "network_id": "VALUE", "item_type": "VALUE", "consumable": "VALUE", "levels": "VALUE"}' \
  -X POST \
  "__ORIGIN__/v1/store_purchase"

GET,POST /v1/subscription_refresh

Private-server stub that refuses IAP subscription purchase, restore, or refresh (active false, subscription null).

Note alias: /v1/subscription_restore, /v1/subscription_purchase, /v1/purchase_subscription, /v1/restore_subscription, /v1/refresh_subscription

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  "__ORIGIN__/v1/subscription_refresh"

GET /v1/subscription_reward_history

Private-server stub that returns empty subscription history and rewards.

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  "__ORIGIN__/v1/subscription_reward_history"

GET /v1/subscription_status

Private-server stub: subscriptions are disabled (active false, subscription null, products empty).

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  "__ORIGIN__/v1/subscription_status"

POST /v1/user_discard_locked_software

Discards locked software locked_id (or id or locked_software_id) and returns the discard_locked payload.

Body locked_id, id, locked_software_id

Note alias: /v1/discard_locked_software, /v1/discard_locked

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"locked_id": "VALUE", "id": "VALUE", "locked_software_id": "VALUE"}' \
  -X POST \
  "__ORIGIN__/v1/user_discard_locked_software"

POST /v1/user_generate_key

Unlocks locked software locked_id (or id or locked_software_id) with the keygen and returns the generate_key payload.

Body locked_id, id, locked_software_id

Note alias: /v1/generate_key

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"locked_id": "VALUE", "id": "VALUE", "locked_software_id": "VALUE"}' \
  -X POST \
  "__ORIGIN__/v1/user_generate_key"

GET /v1/user_inventory

Returns the caller's consumables as inventory and items, plus server_time and user.

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  "__ORIGIN__/v1/user_inventory"

GET /v1/user_locked_software

Lists software drops waiting for a keygen as locked_software, software, and count.

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  "__ORIGIN__/v1/user_locked_software"

POST /v1/wallpaper_pack_purchase

Buys wallpaper pack_id (or id) with credits and returns pack_id, wallpaper_packs, credits, and user.

Body pack_id, id

Note alias: /v1/purchase_wallpaper_pack, /v1/wallpaper_pack

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"pack_id": "VALUE", "id": "VALUE"}' \
  -X POST \
  "__ORIGIN__/v1/wallpaper_pack_purchase"

Proxy 3

POST /v1/proxy_activate

Activates the proxy for duration_hours (or hours or duration), with optional force, and on success adds user, user_wallet, and game.

Body duration_hours, hours, duration, force

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"duration_hours": "VALUE", "hours": "VALUE", "duration": "VALUE", "force": "VALUE"}' \
  -X POST \
  "__ORIGIN__/v1/proxy_activate"

GET /v1/proxy_status

Returns proxy activation state: active, proxy_active_until, seconds_remaining, proxy_level, and game.

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  "__ORIGIN__/v1/proxy_status"

POST /v1/stealth_toggle

On this shard stealth means Proxy level >= 20 while proxy is active. Turning on succeeds only then. Turning off fails with error proxy_bound; deactivate proxy instead. No separate stealth reserve. Response includes stealth: {on, proxy_level}.

Body on

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"on": "VALUE"}' \
  -X POST \
  "__ORIGIN__/v1/stealth_toggle"

Reboot 8

POST /v1/mark_reveal_seen

Marks the reboot reveal seen and returns that result plus user.

Note alias: /v1/reveal_seen, /v1/reboot_mark_reveal_seen

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  -X POST \
  "__ORIGIN__/v1/mark_reveal_seen"

GET /v1/reboot_check

Same eligibility check as reboot_eligibility: eligible, can_reboot, level, reboot_tier, and loadouts.

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  "__ORIGIN__/v1/reboot_check"

GET /v1/reboot_eligibility

Checks reboot eligibility and returns eligible, can_reboot, level, reboot_tier, and loadouts.

Note alias: /v1/check_reboot_eligibility

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  "__ORIGIN__/v1/reboot_eligibility"

POST /v1/reboot_execute

Runs a reboot from the posted loadout and returns that result.

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  -X POST \
  "__ORIGIN__/v1/reboot_execute"

GET /v1/reboot_leaderboard

Returns the reboot leaderboard page (limit, offset) as entries, my_reboot_rank, and visible.

Query limit, offset

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  "__ORIGIN__/v1/reboot_leaderboard?limit=VALUE&offset=VALUE"

GET /v1/reboot_leaderboard_visible

Returns whether the reboot leaderboard tab is visible (visible, leaderboard_visible, veteran_leaderboard_visible).

Note alias: /v1/reboot/leaderboard_visible

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  "__ORIGIN__/v1/reboot_leaderboard_visible"

POST /v1/reboot_mark_ceremony_seen

Marks the reboot ceremony seen and returns that result plus user.

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  -X POST \
  "__ORIGIN__/v1/reboot_mark_ceremony_seen"

POST /v1/reboot_set_badge

Sets the reboot badge and on success includes user.

Body badge

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"badge": "VALUE"}' \
  -X POST \
  "__ORIGIN__/v1/reboot_set_badge"

Daily 7

POST /v1/ad_reward_claim

Claims an ad reward_type (or type) and on success includes user.

Body reward_type, type

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"reward_type": "VALUE", "type": "VALUE"}' \
  -X POST \
  "__ORIGIN__/v1/ad_reward_claim"

GET /v1/ad_reward_status

Returns ad-reward watches remaining as rewards (and no_cooldowns).

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  "__ORIGIN__/v1/ad_reward_status"

POST /v1/daily_mission_claim

Claims daily mission slot and returns missions, reward, user, and user_wallet.

Body slot

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"slot": "VALUE"}' \
  -X POST \
  "__ORIGIN__/v1/daily_mission_claim"

GET /v1/daily_missions

Returns today's daily missions.

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  "__ORIGIN__/v1/daily_missions"

GET,POST /v1/daily_reward

Legacy daily-claim stub that always fails and tells the caller to use daily_missions or user_streak (claimed false, reward 0).

Note alias: /v1/user_daily, /v1/claim_daily

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  "__ORIGIN__/v1/daily_reward"

GET /v1/user_streak

Returns the login-streak state from get_streak_api.

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  "__ORIGIN__/v1/user_streak"

POST /v1/user_streak_update

Claims the login streak if it is due and, when a reward is paid, adds user and user_wallet.

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  -X POST \
  "__ORIGIN__/v1/user_streak_update"

Auth 7

GET /v1/

Public liveness check before any player is required: returns success, maintenance, message, and private_server (this branch does not filter HTTP method).

Note public. alias: /v1/health, /v1/server_status, /v1/maintenance, /v1/check_server_maintenance

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  "__ORIGIN__/v1/"

POST /v1/auth

Play-session login only. The game gateway passes the signed-in account and gets api_key, auth_token, ci_session, user, user_software, user_wallet, credits, and overclocks. Script /v1 with no play session returns 401 script_auth and does not create a player or return a key.

Body username, email, account

Note alias: /v1/login. Not a script login.

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"username": "VALUE", "email": "VALUE", "account": "VALUE"}' \
  -X POST \
  "__ORIGIN__/v1/auth"

GET /v1/check_server_maintenance

Signed-in copy of the maintenance flag (success, maintenance, message, private_server); handle() already answers this key before auth, so this branch never runs.

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  "__ORIGIN__/v1/check_server_maintenance"

GET /v1/email_auth_check

Stub email-link check that returns linked false.

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  "__ORIGIN__/v1/email_auth_check"

GET,POST /v1/google_auth

No-op stub for OAuth and user_report (and non-POST auth); returns success, stub, and a null field named after the route key. This branch does not filter HTTP method.

Note alias: /v1/apple_auth, /v1/facebook_auth, /v1/auth, /v1/user_report

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  "__ORIGIN__/v1/google_auth"

GET /v1/user_api_key

Returns success, api_key, header "X-Api-Key", base_path "/v1", and docs_path "/api-docs". Does not rotate. Empty key returns success false and error no_api_key.

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  "__ORIGIN__/v1/user_api_key"

POST /v1/user_api_key_rotate

New key is pk_ + 32 hex chars (secrets.token_hex(16)). Updates api_key only. Does not change session_token, so the browser stays signed in. Old key stops working.

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  -X POST \
  "__ORIGIN__/v1/user_api_key_rotate"

Script 5

GET /api-docs

HTML page of the same catalog, public, private game host only.

Note public

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  "__ORIGIN__/api-docs"

GET /v1/api_docs

Public, no key. Returns this catalog.

Note public

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  "__ORIGIN__/v1/api_docs"

GET /v1/game_constants

Returns gameplay tuning as constants, also spread onto the top-level object.

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  "__ORIGIN__/v1/game_constants"

GET /v1/leaderboards

Returns monthly and quarterly leaderboard pages (page, limit) as curr_month_entries, prev_month_entries, quarterly_entries, and my_curr_rank.

Query page, limit

Note alias: /v1/leaderboard

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  "__ORIGIN__/v1/leaderboards?page=VALUE&limit=VALUE"

GET /v1/users_count

Returns how many players are on this server.

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  "__ORIGIN__/v1/users_count"

Profile 27

GET /v1/player_stats

Returns the caller's stats dossier: profile, wallet, and career.

Note alias: /v1/my_stats, /v1/stats

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  "__ORIGIN__/v1/player_stats"

GET /v1/private_welcome

Returns whether the first-login private welcome should show (show, seen, title, bullets).

Note private-only. alias: /v1/welcome_status, /v1/private_onboarding

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  "__ORIGIN__/v1/private_welcome"

POST /v1/private_welcome_ack

Marks the private welcome seen and returns show false, seen true, and message.

Note private-only. alias: /v1/welcome_ack, /v1/private_onboarding_ack

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  -X POST \
  "__ORIGIN__/v1/private_welcome_ack"

GET /v1/push_prefs

Stub that returns an empty push prefs object.

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  "__ORIGIN__/v1/push_prefs"

POST /v1/push_prefs_update

Stub that accepts a push-prefs update and returns success only.

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  -X POST \
  "__ORIGIN__/v1/push_prefs_update"

POST /v1/send_feedback

Stub that accepts feedback and returns success and a thank-you message.

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  -X POST \
  "__ORIGIN__/v1/send_feedback"

POST /v1/tips_reset

Resets the tip tour acknowledgement and returns tips.

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  -X POST \
  "__ORIGIN__/v1/tips_reset"

POST /v1/tips_seen

Acknowledges the tip tour and returns tips.

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  -X POST \
  "__ORIGIN__/v1/tips_seen"

POST /v1/update_firebase_token

Stub that accepts a Firebase token and returns success only.

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  -X POST \
  "__ORIGIN__/v1/update_firebase_token"

GET /v1/user

Loads the signed-in profile; optional extras=1 adds user_device and user_network, and the payload always includes user, user_wallet, user_software, credits, overclocks, and game.

Query extras

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  "__ORIGIN__/v1/user?extras=VALUE"

POST /v1/user_apps_layout

Saves apps_layout or layout and returns apps_layout and user.

Body apps_layout, layout

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"apps_layout": "VALUE", "layout": "VALUE"}' \
  -X POST \
  "__ORIGIN__/v1/user_apps_layout"

POST /v1/user_lang_pref

Acknowledges a language preference and echoes lang (not persisted).

Body lang

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"lang": "VALUE"}' \
  -X POST \
  "__ORIGIN__/v1/user_lang_pref"

GET /v1/user_log

Reads the caller's device log and returns user_log and log.

Note alias: /v1/user_logs

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  "__ORIGIN__/v1/user_log"

POST /v1/user_log

Writes or clears a device log: text on the caller, or victim_user_id plus text after a bypass, and returns user_log.

Query victim_user_id

Body victim_user_id, text

Note alias: /v1/user_logs, /v1/update_victim_log, /v1/victim_user_log

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"victim_user_id": "VALUE", "text": "VALUE"}' \
  -X POST \
  "__ORIGIN__/v1/user_log?victim_user_id=VALUE"

GET /v1/user_notepad

Reads the caller's notepad and returns text and notepad.

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  "__ORIGIN__/v1/user_notepad"

POST /v1/user_notepad

Saves notepad text and returns text.

Body text

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"text": "VALUE"}' \
  -X POST \
  "__ORIGIN__/v1/user_notepad"

GET /v1/user_rootkit

Lists the caller's installed rootkits under rootkit, including defense_debuff.

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  "__ORIGIN__/v1/user_rootkit"

GET /v1/user_siphon

Lists the caller's installed siphons under siphon, with earning_rate_hr and total_siphoned.

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  "__ORIGIN__/v1/user_siphon"

GET /v1/user_software

Lists the caller's installed software as software, user_software, and user.software.

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  "__ORIGIN__/v1/user_software"

GET /v1/user_spam

Lists the caller's installed spam viruses with earning_rate_hr and total_earnings under spam, plus botnet when relevant.

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  "__ORIGIN__/v1/user_spam"

POST /v1/user_virus_uploaded_remove

Deletes an uploaded virus_id the caller owns and returns success.

Body virus_id

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"virus_id": "VALUE"}' \
  -X POST \
  "__ORIGIN__/v1/user_virus_uploaded_remove"

GET /v1/user_viruses

Lists viruses the caller owns or is infected by and returns viruses.

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  "__ORIGIN__/v1/user_viruses"

GET /v1/user_viruses_on_device

Lists viruses installed on the caller's own device as viruses.

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  "__ORIGIN__/v1/user_viruses_on_device"

POST /v1/user_wallpaper

Sets wallpaper_id (or wallpaper or id) and returns wallpaper_id, wallpaper, user, and unlocked.

Body wallpaper_id, wallpaper, id

Note alias: /v1/update_wallpaper

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"wallpaper_id": "VALUE", "wallpaper": "VALUE", "id": "VALUE"}' \
  -X POST \
  "__ORIGIN__/v1/user_wallpaper"

POST /v1/username_change

Sets a new username and on success returns username, message, and user.

Body username

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"username": "VALUE"}' \
  -X POST \
  "__ORIGIN__/v1/username_change"

GET /v1/username_change_info

Returns whether the caller can rename: can_change, cooldown_seconds, cost_credits, and first_change.

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  "__ORIGIN__/v1/username_change_info"

POST /v1/welcome_shown

Acknowledges the generic welcome flag and returns welcome_shown 1.

curl -s -H "X-Api-Key: pk_YOUR_KEY" \
  -X POST \
  "__ORIGIN__/v1/welcome_shown"