Keysender integration
Keysender automates the delivery of digital products (game keys, licences, vouchers, files) to buyers. With this API an agent can create and manage inventory databases, upload and list the codes inside them, mark a code used or send-first, record a sale so Keysender emails a code to the buyer, manage customer records, and buy from the Keysender Supply wholesale catalog (browse products, reserve stock, place the order, read the delivered codes, cancel a line, top up an eSIM). Uploading a file as a code (binary body) and the login and logout routes are not exposed. Authentication is a bearer token: exchange the API key and secret from Account, Settings, Security (API Information card) in the Keysender panel at the login route once, then store the returned access_token (it stays valid until its expires_at, about a year after issue, or a logout; then log in again and replace it). The API allows 600 requests per minute per account.
Say what should happen.
The workflow builds itself.
What you can do with Keysender
Each of these is one operation on one endpoint, available both as a workflow step and as a tool an AI agent can call on its own. Nothing bundles several operations into one action, so what a run did stays readable afterwards.
Most endpoints run on the free plan. A few, mainly the ones that publish on your behalf, need a paid plan.
Database, 5 operations
create_databaseCreate databasePOSTCreate an inventory database, the stock pool for one product that codes are uploaded into. With a sku already used on the account, returns that existing database instead of a duplicate. Returns the database with its id.delete_databaseDelete databaseDELETEDelete an inventory database. Refused while the database still has codes reserved for orders that are delivering (to_send above 0).get_databaseGet databaseGETGet one inventory database by id: its name, type, available code count and to_send (codes reserved for orders still delivering).list_databasesList databasesGETList the inventory databases (one stock pool per product) on the account, with each one's id, name and available code count. Use the id with list_codes, upload_codes or create_transaction.update_databaseUpdate databasePUTRename an inventory database. Only the name can change after creation.
Code, 4 operations
delete_codeDelete codeDELETEDelete an available code from its database. A used code (status 1) cannot be deleted, it stays for the order history.list_codesList codesGETList the codes stored in one inventory database, with each code's id, value, type and status (0 available, 1 used). Filter by status to count what is still in stock.update_codeUpdate codePUTMark a code used or available, and flag or unflag it to be sent before other codes. Send both status and sendfirst even when only one changes.upload_codesUpload codesPOSTUpload text codes (keys, licences, vouchers) into an inventory database. Send at most 1,000 codes per call: codes past the first 1,000 are silently not stored. Returns the stored codes with their ids.
Customer, 4 operations
create_customerCreate customerPOSTCreate a customer (buyer) record. An email that already exists on the account is rejected with 422 Invalid email: update the existing record instead.delete_customerDelete customerDELETEDelete a customer record by id.get_customerGet customerGETGet one customer record by id: email, names, phone, language, marketing flag, block or allow list type and notes.update_customerUpdate customerPUTUpdate a customer record's first name, last name, phone, notes or marketing flag. The email and language stay as created.
Catalog order, 3 operations
cancel_catalog_order_itemCancel catalog order itemPOSTCancel one line of a Keysender Supply order before it ships. Success returns no body.create_catalog_orderCreate catalog orderPOSTTurn a catalog reservation into an order and charge the account wallet. Answers status Processing; then poll get_catalog_order for the delivered codes. Do not create a second order for the same order_id.get_catalog_orderGet catalog orderGETGet a Keysender Supply order and, once fulfilled, each line's sku, quantity and assigned codes. While it says Processing the body has no products yet: poll again after a few seconds.
Catalog product, 2 operations
get_catalog_productGet catalog productGETGet one Keysender Supply catalog product by SKU, with its price, currency and quantity in stock. Needs Supply access on the account.list_catalog_productsList catalog productsGETBrowse the Keysender Supply wholesale catalog (game keys, gift cards, eSIMs) with price and stock per product. Needs Supply access on the account (otherwise 403). Use a product's sku with reserve_catalog_items.
Transaction, 2 operations
create_transactionCreate transactionPOSTRecord a sale: Keysender takes codes from a database and emails them to the buyer with your template, using one credit per dispatch. Not deduplicated: every call delivers again, so never retry one that returned a transaction id.repeat_transactionRepeat transactionPOSTCreate a new transaction with the same details as an earlier eBay, PayPal Button or Allegro transaction and deliver codes again. Other source platforms are rejected with 422. Not deduplicated: never retry a call that succeeded.
Catalog reservation, 1 operation
reserve_catalog_itemsReserve catalog itemsPOSTReserve stock in the Keysender Supply catalog for later purchase. Holds the items without charging; pass the returned reservation_id to create_catalog_order to buy them.
Esim, 1 operation
top_up_esimTop up esimPOSTTop up an eSIM bought from the Keysender Supply catalog, using its ICCID and a top-up SKU. The response confirms the ICCID and the status.
Use Keysender from Claude Code, Cursor or Codex
Connect Keysender in LiveContext, create an API key in Settings, then add the LiveContext MCP server to your client. Its Keysender operations become tools the client can call, next to every other integration you connected.
claude mcp add --transport http livecontext https://livecontext.ai/mcp --header "X-API-Key: YOUR_API_KEY"[mcp_servers.livecontext]
url = "https://livecontext.ai/mcp"
[mcp_servers.livecontext.http_headers]
"X-API-Key" = "YOUR_API_KEY"{
"mcpServers": {
"livecontext": {
"type": "http",
"url": "https://livecontext.ai/mcp",
"headers": {
"X-API-Key": "YOUR_API_KEY"
}
}
}
}How to connect Keysender
- Create your workspace
Sign up free. Nothing to install.
- Connect Keysender once
Add your Keysender connection in Settings. Every tool from this integration reuses it, and secrets are encrypted at rest and visible only to you.
- Describe the job in chat
The workflow builds itself in front of you and picks the endpoints it needs. Drag the steps yourself on the canvas whenever you would rather be explicit.
Keysender integration FAQ
What can you do with the Keysender integration?
LiveContext exposes 22 operations on Keysender, covering database, code, customer and catalog order.
