Freecash: Earn Money icon

Freecash data API: coin wallets, offers and cashout

Almedia GmbH · Jobs & Careers 4.6 ★

Freecash: Earn Money is Almedia GmbH's Android client for the Freecash rewards platform, a Berlin company at Koppenstr. 8, 10243 that has paid users to play games, complete surveys and test products since 2020. After Google, Facebook or a one-minute email sign-up, a user picks an offer, finishes the listed tasks, and cashes out by bank transfer, PayPal, Venmo, 100-plus gift cards (Amazon, Apple, Google Play, Visa prepaid) or crypto such as Bitcoin, Ethereum and Litecoin. The Play listing is rated 4.6 from about 563,000 reviews with 10 million-plus downloads, Mature 17+, last updated 8 October 2026 (client 1.36); the site claims 80 million-plus users and a 4.6 Trustpilot score from 320,000-plus reviews. The Android shell opens the Freecash web app in a Chrome Custom Tab and also hosts Adjoe, Fyber and Tapjoy offerwalls. It sits with Swagbucks-style rewarded-task apps rather than a bank or a wallet.

Coin wallets split spendable balance from unwithdrawableBalance and withdrawableSoon, with lifetime totalWithdrawn, affiliate refBalance and pendingAffiliateRewards on the same me row as gainId, uid, username, signupCountry, kycVerificationStatus and idVerificationStatus. Promo coins sit in a side wallet as bonusBalance versus already-cashable bonusWithdrawableCoins.

Cashout config returns minWithdrawableCoins and a saved defaultMethod (slug/title such as paypal or amazon-gift-card). The earn feed pages offerName, coins and dateToRelease; jackpot rounds expose pot reward, seat position, then history rows with betAmount, rewardAmount and chance. Treasury bots match those rails to payout advice; workforce analytics join offer coins to the hold slice; compliance hides cashout when KYC is still required; ops meters jackpot EV against coin spend. openData Studio turns the same fields into callable open data.

Screenshots

  • Freecash: Earn Money screenshot 1
  • Freecash: Earn Money screenshot 2
  • Freecash: Earn Money screenshot 3
  • Freecash: Earn Money screenshot 4
  • Freecash: Earn Money screenshot 5
  • Freecash: Earn Money screenshot 6
  • Freecash: Earn Money screenshot 7
  • Freecash: Earn Money screenshot 8

API surface

Request/response examples are illustrative, reconstructed from the app's interface — not a live capture.

  • Init session JWT

    POST /fc-api/auth/jwt/init osint

    Mints the Bearer JWT that gates later me, cashout, offer and jackpot GraphQL calls after the Custom Tabs session is up.

    Auth: Session cookie from Google / Facebook / email sign-in on the Freecash web app. Returns the JWT later GraphQL calls send as Authorization: Bearer; a 401 falls through to this path after /fc-api/auth/jwt/refresh fails.

    • ok
    • token
    • expiresIn
    POST /fc-api/auth/jwt/init HTTP/1.1
    Accept: application/json
    Content-Type: application/json
    Cookie: fc_session=<session>
    
    {}
    {
      "ok": true,
      "token": "eyJhbGciOi...",
      "expiresIn": 3600
    }
  • Signed-in user and coin wallet

    POST /fc-api/graphql openfinance

    Hydrates the profile and coin chip: spendable balance versus unwithdrawableBalance, lifetime totalWithdrawn, affiliate refBalance, and KYC flags.

    Auth: Bearer JWT from POST /fc-api/auth/jwt/init plus the Freecash session cookie. operationName=getCurrentUserInfo.

    • me
    • uid
    • gainId
    • username
    • email
    • balance
    • unwithdrawableBalance
    • withdrawableSoon
    • totalWithdrawn
    • refBalance
    • pendingAffiliateRewards
    • signupCountry
    • countryCode
    • kycVerificationStatus
    • idVerificationStatus
    • xp
    • level
    • refcode
    POST /fc-api/graphql HTTP/1.1
    Authorization: Bearer eyJhbGciOi...
    Content-Type: application/json
    X-Locale: en
    Cookie: fc_session=<session>
    
    {
      "operationName": "getCurrentUserInfo",
      "query": "query getCurrentUserInfo { me { uid gainId username email balance unwithdrawableBalance withdrawableSoon totalWithdrawn refBalance pendingAffiliateRewards signupCountry kycVerificationStatus idVerificationStatus xp level refcode } }"
    }
    {
      "data": {
        "me": {
          "uid": "u-88421",
          "gainId": "G-229184",
          "username": "maya.k",
          "email": "[email protected]",
          "emailConfirmed": true,
          "avatar": "https://cdn.freecash.com/avatars/maya.png",
          "balance": 18450,
          "unwithdrawableBalance": 320,
          "withdrawableSoon": 900,
          "totalWithdrawn": 126000,
          "refBalance": 450,
          "pendingAffiliateRewards": 120,
          "signupCountry": "US",
          "location": { "countryCode": "US" },
          "kycVerificationRequired": false,
          "kycVerificationStatus": "verified",
          "idVerificationStatus": "not_required",
          "idVerification": {
            "idVerificationRequired": false,
            "idVerificationProvider": "persona",
            "idVerificationStarted": false,
            "reason": null
          },
          "xp": 12840,
          "level": 12,
          "refcode": "MAYA8",
          "verified": true,
          "twoFactorEnabled": false,
          "hasLinkedOffer": true,
          "datejoined": "2024-03-11T18:02:00Z"
        }
      }
    }
  • Cashout settings and minimum coins

    POST /fc-api/graphql openfinance

    Loads the cashout screen floor (minWithdrawableCoins) and the saved defaultMethod slug/title (PayPal, Venmo, gift card, crypto).

    Auth: Bearer JWT from POST /fc-api/auth/jwt/init. operationName=GetWithdrawalSettings.

    • getWithdrawalSettings
    • defaultMethod
    • slug
    • title
    • cashoutGoalEnabled
    • minWithdrawableCoins
    • showCashoutGoalOnOfferStart
    • signupBonusCoins
    • signupBonusEnalbed
    POST /fc-api/graphql HTTP/1.1
    Authorization: Bearer eyJhbGciOi...
    Content-Type: application/json
    X-Locale: en
    
    {
      "operationName": "GetWithdrawalSettings",
      "query": "query GetWithdrawalSettings { getWithdrawalSettings { defaultMethod { slug title } cashoutGoalEnabled minWithdrawableCoins showCashoutGoalOnOfferStart signupBonusCoins signupBonusEnalbed } }"
    }
    {
      "data": {
        "getWithdrawalSettings": {
          "defaultMethod": {
            "slug": "paypal",
            "title": "PayPal"
          },
          "cashoutGoalEnabled": true,
          "minWithdrawableCoins": 2500,
          "showCashoutGoalOnOfferStart": true,
          "signupBonusCoins": 50,
          "signupBonusEnalbed": true
        }
      }
    }
  • Set default cashout method

    POST /fc-api/graphql openfinance

    Persists the cashout rail the user picked (paypal, venmo, amazon-gift-card, bitcoin, …) as defaultMethodSlug.

    Auth: Bearer JWT from POST /fc-api/auth/jwt/init. operationName omitted; mutation setWithdrawalMethod.

    • setWithdrawalMethod
    • defaultMethodSlug
    POST /fc-api/graphql HTTP/1.1
    Authorization: Bearer eyJhbGciOi...
    Content-Type: application/json
    X-Locale: en
    
    {
      "query": "mutation ($defaultMethodSlug: String!) { setWithdrawalMethod(defaultMethodSlug: $defaultMethodSlug) }",
      "variables": {
        "defaultMethodSlug": "amazon-gift-card"
      }
    }
    {
      "data": {
        "setWithdrawalMethod": true
      }
    }
  • List scheduled offers

    POST /fc-api/graphql opendata

    Pages the earn/offers catalog: offerName, coin payout, and dateToRelease for scheduled game and CPA tasks.

    Auth: Bearer JWT from POST /fc-api/auth/jwt/init. Query findOffersByQuery on the earn/offers feed.

    • findOffersByQuery
    • totalAmount
    • totalItemsCount
    • offerName
    • icon
    • dateToRelease
    • dayToRelease
    • coins
    POST /fc-api/graphql HTTP/1.1
    Authorization: Bearer eyJhbGciOi...
    Content-Type: application/json
    X-Locale: en
    
    {
      "query": "query { findOffersByQuery(isScheduled: true, isChargeback: false, sort: \"dateToRelease\", order: ASC, held: 1, limit: 100) { meta { totalAmount totalItemsCount } items { offerName icon dateToRelease dayToRelease coins } } }"
    }
    {
      "data": {
        "findOffersByQuery": {
          "meta": {
            "totalAmount": 42800,
            "totalItemsCount": 36
          },
          "items": [
            {
              "offerName": "Raid Shadow Legends — reach HQ 8",
              "icon": "https://cdn.freecash.com/offers/raid.png",
              "dateToRelease": "2026-10-18T00:00:00Z",
              "dayToRelease": 1,
              "coins": 4500
            }
          ]
        }
      }
    }
  • Bonus coin wallet

    POST /fc-api/graphql openfinance

    Reads promo/daily-bonus coins separately from the main wallet: bonusBalance versus the slice already bonusWithdrawableCoins.

    Auth: Bearer JWT from POST /fc-api/auth/jwt/init. Query bonusBalanceAndFulfilment (userRewardsApi).

    • bonusBalanceAndFulfilment
    • bonusBalance
    • bonusWithdrawableCoins
    POST /fc-api/graphql HTTP/1.1
    Authorization: Bearer eyJhbGciOi...
    Content-Type: application/json
    X-Locale: en
    
    {
      "query": "query { bonusBalanceAndFulfilment { bonusBalance bonusWithdrawableCoins } }"
    }
    {
      "data": {
        "bonusBalanceAndFulfilment": {
          "bonusBalance": 180,
          "bonusWithdrawableCoins": 50
        }
      }
    }
  • Active jackpots

    POST /fc-api/graphql opendata

    Loads open jackpot rounds: pot reward, bet limits on the template, and seated userBets with gainId.

    Auth: Bearer JWT from POST /fc-api/auth/jwt/init. Query jackpots on the jackpot screen.

    • jackpots
    • id
    • bet
    • status
    • reward
    • template
    • minBet
    • maxBet
    • maxUsersCount
    • userBets
    • position
    • gainId
    • username
    POST /fc-api/graphql HTTP/1.1
    Authorization: Bearer eyJhbGciOi...
    Content-Type: application/json
    X-Locale: en
    
    {
      "query": "query { jackpots { id bet status reward completedAt template { id type minBet maxBet maxUsersCount minUserBet maxUserBet } userBets { id country bet position status user { gainId username avatar } } } }"
    }
    {
      "data": {
        "jackpots": [
          {
            "id": 8841,
            "bet": 250,
            "status": "OPEN",
            "reward": 50000,
            "completedAt": null,
            "createdAt": "2026-10-17T12:00:00Z",
            "updatedAt": "2026-10-17T15:40:00Z",
            "template": {
              "id": 12,
              "type": "WHEEL",
              "minBet": 50,
              "maxBet": 500,
              "maxUsersCount": 200,
              "minUserBet": 50,
              "maxUserBet": 500
            },
            "userBets": [
              {
                "id": 99102,
                "country": "US",
                "bet": 250,
                "position": 3,
                "status": "ACTIVE",
                "user": {
                  "gainId": "G-229184",
                  "username": "maya.k",
                  "avatar": "https://cdn.freecash.com/avatars/maya.png"
                }
              }
            ]
          }
        ]
      }
    }
  • Place a jackpot bet

    POST /fc-api/graphql openfinance

    Spends coins to sit at position on jackpotId, the write behind the jackpot wheel seat picker.

    Auth: Bearer JWT from POST /fc-api/auth/jwt/init. Mutation jackpotBet(position, jackpotId).

    • jackpotBet
    • position
    • jackpotId
    POST /fc-api/graphql HTTP/1.1
    Authorization: Bearer eyJhbGciOi...
    Content-Type: application/json
    X-Locale: en
    
    {
      "query": "mutation ($position: Int!, $jackpotId: Int!) { jackpotBet(position: $position, jackpotId: $jackpotId) }",
      "variables": {
        "position": 3,
        "jackpotId": 8841
      }
    }
    {
      "data": {
        "jackpotBet": true
      }
    }
  • My jackpot bets

    POST /fc-api/graphql openfinance

    Pages the signed-in user's jackpot history: betAmount, rewardAmount, chance and status per jackpotId.

    Auth: Bearer JWT from POST /fc-api/auth/jwt/init. operationName=jackpotMyBets.

    • jackpotMyBets
    • gainId
    • betAmount
    • jackpotId
    • rewardAmount
    • jackpotBudget
    • completedAt
    • chance
    • status
    POST /fc-api/graphql HTTP/1.1
    Authorization: Bearer eyJhbGciOi...
    Content-Type: application/json
    X-Locale: en
    
    {
      "operationName": "jackpotMyBets",
      "variables": {
        "page": 1,
        "limit": 20,
        "sort": "COMPLETED_AT_DESC",
        "endDate": "2026-10-17T23:59:59Z",
        "status": "COMPLETED"
      },
      "query": "query jackpotMyBets($page: Int!, $limit: Int!, $sort: JackpotWinnersSortEnum!, $endDate: DateTime!, $status: JackpotBetStatStatusEnum) { jackpotMyBets(endDate: $endDate, sort: $sort, maxChance: 100, page: $page, limit: $limit, status: $status) { items { gainId betAmount jackpotId rewardAmount jackpotBudget completedAt chance status } } }"
    }
    {
      "data": {
        "jackpotMyBets": {
          "items": [
            {
              "gainId": "G-229184",
              "betAmount": 250,
              "jackpotId": 8841,
              "rewardAmount": 0,
              "jackpotBudget": 50000,
              "completedAt": "2026-10-16T21:04:00Z",
              "chance": 4.2,
              "status": "COMPLETED"
            }
          ]
        }
      }
    }
  • Jackpot winners board

    POST /fc-api/graphql opendata

    Pages public jackpot winners: username, avatar, rewardAmount and chance for each completed jackpotId.

    Auth: Bearer JWT from POST /fc-api/auth/jwt/init. operationName=jackpotWinners.

    • jackpotWinners
    • gainId
    • betAmount
    • jackpotId
    • rewardAmount
    • jackpotBudget
    • username
    • avatar
    • completedAt
    • chance
    POST /fc-api/graphql HTTP/1.1
    Authorization: Bearer eyJhbGciOi...
    Content-Type: application/json
    X-Locale: en
    
    {
      "operationName": "jackpotWinners",
      "variables": {
        "page": 1,
        "limit": 20,
        "sort": "COMPLETED_AT_DESC",
        "endDate": "2026-10-17T23:59:59Z"
      },
      "query": "query jackpotWinners($page: Int!, $limit: Int!, $sort: JackpotWinnersSortEnum!, $endDate: DateTime!) { jackpotWinners(page: $page, limit: $limit, sort: $sort, endDate: $endDate, maxChance: 100) { items { gainId betAmount jackpotId rewardAmount jackpotBudget username avatar completedAt chance } } }"
    }
    {
      "data": {
        "jackpotWinners": {
          "items": [
            {
              "gainId": "G-11002",
              "betAmount": 400,
              "jackpotId": 8830,
              "rewardAmount": 50000,
              "jackpotBudget": 50000,
              "username": "leo.p",
              "avatar": "https://cdn.freecash.com/avatars/leo.png",
              "completedAt": "2026-10-16T21:04:00Z",
              "chance": 6.1
            }
          ]
        }
      }
    }
  • Store mobile tracking ids

    POST /fc-api/mobile-analytics/store-tracking-info osint

    Stores the device GAID plus CleverTap id against the Android client so later offer attribution can join to the signed-in user.

    Auth: Static x-api-key header on the Android client. Runs after launch with the advertising id, before the Custom Tabs session is required.

    • gaid
    • appType
    • clevertapId
    POST /fc-api/mobile-analytics/store-tracking-info HTTP/1.1
    x-api-key: e7b4e769-0eb5-42ea-a1c0-6fadd3fb03d0
    Content-Type: application/json
    
    {
      "gaid": "38400000-8cf0-11bd-b23e-10b96e40000d",
      "appType": "android",
      "clevertapId": "-n9a8b7c6d"
    }
    {
      "ok": true
    }

Data categories

  • user profiles
  • coin balances
  • affiliate balances
  • KYC and ID verification
  • cashout methods
  • offer catalog
  • bonus coins
  • jackpot rounds
  • jackpot bets
  • device advertising ids

Where teams use this data

  • Reconcile PayPal and gift-card cashouts

    Treasury bots read minWithdrawableCoins and defaultMethod.slug, then match me.totalWithdrawn and withdrawableSoon against PayPal, Venmo or Amazon-gift-card advice so a cashout that cleared the floor is closed.

  • Score offer payout versus hold

    Workforce analytics join findOffersByQuery.coins and dateToRelease with me.unwithdrawableBalance to see which game offers are still in the pending-hold slice.

  • Gate cashout on KYC

    Compliance stacks hide the cashout picker when kycVerificationStatus or idVerification.idVerificationRequired says the user cannot yet move coins off platform.

  • Meter jackpot EV against coin spend

    Ops dashboards subtract jackpotMyBets.betAmount from rewardAmount and chance so a round's expected value still lines up with me.balance after the wheel settles.

Frequently asked questions

How does Freecash authenticate the Android client?

The app opens the Freecash web app in a Chrome Custom Tab. Google, Facebook or email sign-in leaves a session cookie; POST /fc-api/auth/jwt/init then mints a JWT that later GraphQL calls send as Authorization: Bearer. Refresh goes to /fc-api/auth/jwt/refresh and falls back to init on 401.

Which cashout rails appear on the cashout screen?

Bank transfer, PayPal, Venmo, 100-plus gift cards (Amazon, Apple, Google Play, Visa prepaid) and crypto such as Bitcoin, Ethereum and Litecoin. GetWithdrawalSettings returns minWithdrawableCoins plus defaultMethod.slug/title; setWithdrawalMethod persists the rail the user picked.

What does the signed-in me object return?

getCurrentUserInfo returns uid, gainId, username, email, spendable balance, unwithdrawableBalance, withdrawableSoon, totalWithdrawn, refBalance, pendingAffiliateRewards, signupCountry, kycVerificationStatus, idVerificationStatus, xp and level.

Is this a public developer API?

No. The objects above — coin wallets, offer catalog, cashout methods and jackpot bets — are the data the signed-in client already shows, modelled from the app's features so integrators can call the same fields. They are not a published developer program.

Apps similar to Freecash: Earn Money

  • Swagbucks — Swagbucks is Prodege's rewards portal, launched in 2008, where members shop and complete other earning activities and redeem Swag Bucks for cash rewards and gift cards.
  • InboxDollars — InboxDollars is a rewards platform listed among Freecash alternatives, where members earn cash by reading paid emails, taking surveys, playing games and shopping with partner brands.
  • Survey Junkie — Survey Junkie is DISQO's market-research community where members take surveys and redeem points from $5 as PayPal or bank cash, or as Amazon, Target, Walmart and Starbucks gift cards.
  • Prolific — Prolific is a paid-studies platform where participants complete questionnaires, decision-making games and AI evaluations, then cash out from $6 or £6, with later payouts going to PayPal.
  • Google Opinion Rewards — Google Opinion Rewards is Google's survey app that pays completed short surveys in Google Play credit or PayPal credit.
  • Clickworker — Clickworker is clickworker GmbH's freelance workplace where workers complete paid microjobs such as writing, translating, research and data processing at a published per-task rate.
  • Mistplay — Mistplay is a free Android and iOS app that awards points for playing games from its catalog and lets members redeem those points as gift cards from brands such as Amazon, Visa, Walmart and Google Play.
  • KashKick — KashKick is a U.S. rewards site, founded in 2017, where members play games, take surveys, explore deals and shop, then cash out via PayPal or gift cards from a $10 minimum.

Topics

  • Freecash API
  • Freecash coin balance
  • minWithdrawableCoins
  • PayPal cashout
  • offerName coins
  • jackpotBet
  • gainId
  • Almedia GmbH Freecash

Need this app's data API integrated?

We deliver scoped integrations for any named app — from USD 500 with source-code handoff, or hosted access billed per call. Tell us the data you need.

  • NDA + SOW on every engagement
  • Delivery in 3–7 days
  • Payment only after acceptance
  • Work scoped to authorized use

Get a quote