Skip to content
Scalekit Docs
Talk to an Engineer Dashboard

Connect AI agents to Epic Games

Scalekit connector
Open markdown

The Epic Games connector lets your AI agent act in each user's Epic Games account. Each user signs in to Epic Games once, and Scalekit stores and refreshes their tokens, so your agent never handles credentials. It comes with 7 tools.

Tools
7
What they doRead · write · destructive
7 · 0 · 07 read0 write0 destructive
Users sign in with
OAuth app
Your own Epic Games app

Setup

  1. Install the SDK

    Terminal window
    npm install @scalekit-sdk/node dotenv
  2. Set your credentials

    Add your Scalekit credentials to your .env file. Find values in app.scalekit.com > Developers > API Credentials.

    .env
    SCALEKIT_ENVIRONMENT_URL=<your-environment-url>
    SCALEKIT_CLIENT_ID=<your-client-id>
    SCALEKIT_CLIENT_SECRET=<your-client-secret>
  3. Create the Epic Games connection

    In AgentKit > Connections, create an Epic Games connection and copy its redirect URI. The name you give it is the connection_name your code passes. See Configure connections.

  4. Register an OAuth app

    Epic Games connections use your own OAuth app. Register one with Epic Games and add the redirect URI you copied.

    Then enter the app's Client ID and Client Secret on the Epic Games connection.

  5. Authorize a user and make your first call

    quickstart.mts
    import { ScalekitClient } from '@scalekit-sdk/node'
    import 'dotenv/config'
    import { createInterface } from 'node:readline/promises'
    const scalekit = new ScalekitClient(
    process.env.SCALEKIT_ENVIRONMENT_URL,
    process.env.SCALEKIT_CLIENT_ID,
    process.env.SCALEKIT_CLIENT_SECRET,
    )
    const actions = scalekit.actions
    const connector = 'epicgames'
    const identifier = 'user_123'
    // Generate an authorization link for the user
    const { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })
    console.log('Authorize Epic Games:', link)
    const rl = createInterface({ input: process.stdin, output: process.stdout })
    await rl.question('Press Enter after authorizing...')
    rl.close()
    // Make your first call
    const result = await actions.executeTool({
    connector,
    identifier,
    toolName: 'epicgames_userinfo_get',
    toolInput: {},
    })
    console.log(result)
    Terminal window
    npx tsx quickstart.mts

    Each user signs in once. See Authorize a user for the full flow and statuses.

Tools

Pass the exact name to execute_tool
Try in PlaygroundRequest a tool
  • epicgames_blocklist_listList the accounts a player has blocked.Read-only

    List Block List

    List the accounts a player has blocked. Returns entries with accountId and created. Use epicgames_friends_get when the friends list is also needed. Requires the basic_profile and friends_list scopes.

    Inputs

    account_idstringrequired
    Epic Account ID of the player (32-character hex string). The access token must belong to this same account. Get it from epicgames_userinfo_get (the sub claim). Example: 9626f441055349ce8cb7d7d5a483eaa2.
  • epicgames_ecom_entitlements_listList the direct entitlements a player holds, optionally filtered by sandbox or entitlement name.Read-only

    List Entitlements

    List the direct entitlements a player holds, optionally filtered by sandbox or entitlement name. Returns entitlement records with id, entitlementName, namespace, catalogItemId, entitlementType, grantDate, consumable, status, useCount and entitlementSource. Use epicgames_ecom_ownership_check to test ownership of a specific catalog item. Requires the Ecom feature to be enabled on the OAuth client's client policy.

    Inputs

    account_idstringrequired
    Epic Account ID of the player (32-character hex string). The access token must belong to this same account. Get it from epicgames_userinfo_get (the sub claim). Example: 9626f441055349ce8cb7d7d5a483eaa2.
    entitlement_namestring
    Only return entitlements with this entitlement name. Leave empty to omit the filter. Example: 942e8a7133464f0ea83179030536505e.
    include_redeemedboolean
    Set to true to include entitlements that have already been redeemed. Leave empty to use the service default.
    sandbox_idstring
    Sandbox (namespace) of the game title to list entitlements for. Leave empty to omit the filter. Example: 8894469f1120432095eff043a4529433.
  • epicgames_ecom_offers_listList the offers defined for a sandbox as they apply to a player.Read-only

    List Offers

    List the offers defined for a sandbox as they apply to a player. Returns an elements array of offers (id, title, description, priceInfo, items, offerType, purchaseLimit, purchasedCount) and a paging object with count, start and total. Use epicgames_ecom_entitlements_list to see what the player already holds. Requires the Ecom feature to be enabled on the OAuth client's client policy.

    Inputs

    account_idstringrequired
    Epic Account ID of the player (32-character hex string). The access token must belong to this same account. Get it from epicgames_userinfo_get (the sub claim). Example: 9626f441055349ce8cb7d7d5a483eaa2.
    sandbox_idstringrequired
    Sandbox (namespace) whose offers to list. Example: 8894469f1120432095eff043a4529433.
  • epicgames_ecom_ownership_checkCheck whether a player owns an item in the Epic Games Store catalog, including items granted through bundles and editions.Read-only

    Check Item Ownership

    Check whether a player owns an item in the Epic Games Store catalog, including items granted through bundles and editions. Returns an array with namespace, itemId and an owned boolean for the item. Use epicgames_ecom_entitlements_list to see the individual entitlement records instead. Requires the Ecom feature to be enabled on the OAuth client's client policy.

    Inputs

    account_idstringrequired
    Epic Account ID of the player (32-character hex string). The access token must belong to this same account. Get it from epicgames_userinfo_get (the sub claim). Example: 9626f441055349ce8cb7d7d5a483eaa2.
    ns_catalog_item_idstringrequired
    Catalog item to check, written as sandboxId:catalogItemId (namespace, a colon, then the catalog item ID). Example: fn:ff150af93c9a4fb99fee12f5db49fa5b.
  • epicgames_friends_getRetrieve a player's friends list and block list in one call.Read-only

    Get Friends and Block List

    Retrieve a player's friends list and block list in one call. Returns a friends array (accountId, created, favorite, nickname) and a blockList array (accountId, created). Use epicgames_friends_list for friends only, or epicgames_blocklist_list for the block list only. Requires the basic_profile and friends_list scopes.

    Inputs

    account_idstringrequired
    Epic Account ID of the player (32-character hex string). The access token must belong to this same account. Get it from epicgames_userinfo_get (the sub claim). Example: 9626f441055349ce8cb7d7d5a483eaa2.
  • epicgames_friends_listList the friends of a player.Read-only

    List Friends

    List the friends of a player. Returns friend entries with accountId, created, favorite and nickname. Use epicgames_friends_get when the block list is also needed. Requires the basic_profile and friends_list scopes.

    Inputs

    account_idstringrequired
    Epic Account ID of the player (32-character hex string). The access token must belong to this same account. Get it from epicgames_userinfo_get (the sub claim). Example: 9626f441055349ce8cb7d7d5a483eaa2.
  • epicgames_userinfo_getRetrieve the profile of the connected Epic Games account from the OpenID Connect userInfo endpoint.Read-only

    Get User Info

    Retrieve the profile of the connected Epic Games account from the OpenID Connect userInfo endpoint. Returns the Epic Account ID (sub) and the profile claims released by the granted scopes. Use this first to find the account_id that the friends and Ecom tools require.

    Inputs

    This tool takes no inputs.