Freecash data API: coin wallets, offers and cashout
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
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/initosintMints 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/graphqlopenfinanceHydrates 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
- 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/graphqlopenfinanceLoads 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/graphqlopenfinancePersists 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/graphqlopendataPages 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/graphqlopenfinanceReads 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/graphqlopendataLoads 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/graphqlopenfinanceSpends 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/graphqlopenfinancePages 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/graphqlopendataPages 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-infoosintStores 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