Intuit Credit Karma icon

Intuit Credit Karma data API

Intuit Inc. · Lending

Intuit Credit Karma is Intuit's free US consumer-finance app for bureau credit scores, credit monitoring, and a marketplace of credit-card and personal-loan offers. After Intuit bought Credit Karma in 2020 the Android client (Play title Credit Karma) remains the front door: TransUnion and Equifax VantageScore 3.0 on the home dashboard, credit-factor and credit-change screens, a card and loan marketplace with prequalified and preapproved offers, CK Money checking and savings with an ATM map, a TurboTax handoff, identity-theft monitoring, and Karma Assistant. It competes with Experian, NerdWallet, LendingTree, WalletHub and Credit Sesame for US consumers who want free scores and a place to shop cards and loans without a paid credit-monitoring subscription. Sign-in is an Intuit identity account (email and password, passkey, or one-time code) with optional biometric unlock on the device.

TransUnion and Equifax VantageScore readings sit in score and updatedAtTimestamp, with per-bureau history as timestamp/value pairs and factor rows that carry utilizationPercentage, impact and type. Credit-health change rows add header, rating and snippet for the tradeline that moved. Intuit IDX linked accounts add accountURN, accountBalance.value and providerName, and the transaction page lists id, amount, merchant.name and category.name.

Recurring detections expose recurringId, merchantName, nextDate and isIncome; the bills calendar returns minAmountDue, paymentStatus and recurringID. Net-worth and cash-flow surfaces reuse those balances. Personal-loan tiles expose approvalOdds, apr, loanAmount and monthlyPayment; the preapproved shelf flags preapproved / prequalified with providerId. CK Money checking returns accountId, debit cardId and remote-deposit ckCheckDepositSessionId plus remaining depositLimits. Payoff-simulator rows add interestSaved and originalPayOffDate; a completed remote deposit returns receiptNumber and wallet push carries debit lastFour plus paymentNetwork. Lenders, PFM apps and offer-matching tools watch score deltas, reconcile card utilization, schedule bills and filter prequalified terms — openData Studio turns the same objects into callable open data.

API surface

The endpoints and request/response examples below are reconstructed from the app's interface — illustrative, not a live capture.

  • Mint Intuit access token

    POST /v1/identity/session-token osint

    Exchanges the signed-in Intuit identity session for the short-lived accessToken used as the Bearer on later GraphQL calls.

    Auth: Authorization: Bearer accessToken from the session-token call, plus intuit_tid / intuit_userid / intuit_deviceid.

    • accessToken
    • message
    POST /v1/identity/session-token HTTP/1.1
    intuit_tid: 7c2a9e1b-4d55-4a1e-9c10-aa11bb22cc33
    intuit_deviceid: android-ck-8f21
    Content-Type: application/json
    
    {"operationName": "SessionToken", "query": "query SessionToken($input: SessionTokenInput) { session { token(input: $input) { ... on SessionTokenSuccess { accessToken } ... on SessionError { message } } } }", "variables": {"input": {"offering": "consumer-mobile"}}}
    {"data": {"session": {"token": {"accessToken": "<access_token>"}}}}
  • Credit hub scores

    POST /v1/credit/scores openfinance

    Loads the Credit tab hub: per-bureau Equifax and TransUnion scores (score, rating, updatedAtTimestamp, delta) plus factor tiles.

    Auth: Bearer accessToken plus intuit_tid / intuit_userid / intuit_deviceid headers.

    • score
    • rating
    • updatedAtTimestamp
    • delta
    • factors
    • title
    • impact
    • color
    POST /v1/credit/scores HTTP/1.1
    Authorization: Bearer <access_token>
    Content-Type: application/json
    
    {"operationName": "CreditScores", "query": "query CreditScores { creditHub { equifax { creditScore { score rating updatedAtTimestamp delta { value } } creditFactors { factors { title impact { text } color } } } transunion { creditScore { score rating updatedAtTimestamp } } } }"}
    {"data": {"creditHub": {"equifax": {"creditScore": {"score": 734, "rating": "Good", "updatedAtTimestamp": "2026-10-12T14:03:11Z", "delta": {"value": 6}}, "creditFactors": {"factors": [{"title": "Credit card use", "impact": {"text": "Low"}, "color": "GREEN"}]}}, "transunion": {"creditScore": {"score": 741, "rating": "Good", "updatedAtTimestamp": "2026-10-12T14:03:11Z"}}}}}
  • Bureau score history

    POST /v1/credit/scores/history openfinance

    Returns the Equifax and TransUnion score-over-time series (timestamp/value points) behind the simulator and history chart.

    Auth: Bearer accessToken plus intuit_tid / intuit_userid / intuit_deviceid headers.

    • bureau
    • scores
    • timestamp
    • value
    POST /v1/credit/scores/history HTTP/1.1
    Authorization: Bearer <access_token>
    Content-Type: application/json
    
    {"operationName": "ScoreHistory", "query": "query ScoreHistory { creditHistory { equifax { bureau scores { timestamp value } } transunion { bureau scores { timestamp value } } } }"}
    {"data": {"creditHistory": {"equifax": {"bureau": "EQUIFAX", "scores": [{"timestamp": "2026-10-12T00:00:00Z", "value": 734}]}, "transunion": {"bureau": "TRANSUNION", "scores": [{"timestamp": "2026-10-12T00:00:00Z", "value": 741}]}}}}
  • Pull latest bureau reports

    POST /v1/credit/reports/refresh openfinance

    Triggers a fresh Equifax and TransUnion report pull (per-bureau flags plus toastMessage) from the score refresh control.

    Auth: Bearer accessToken plus intuit_tid / intuit_userid / intuit_deviceid headers.

    • equifax
    • transunion
    • toastMessage
    POST /v1/credit/reports/refresh HTTP/1.1
    Authorization: Bearer <access_token>
    Content-Type: application/json
    
    {"operationName": "ReportRefresh", "query": "mutation ReportRefresh { credit { refreshReports { equifax transunion toastMessage } } }"}
    {"data": {"credit": {"refreshReports": {"equifax": true, "transunion": true, "toastMessage": "Your scores were updated."}}}}
  • Credit factors

    POST /v1/credit/factors openfinance

    Returns TransUnion credit-factor rows (utilization, payment history, age of credit) with type, value, impact, rating and contributing accountId list.

    Auth: Bearer accessToken plus intuit_tid / intuit_userid / intuit_deviceid headers.

    • displayName
    • type
    • value
    • impact
    • rating
    • aggregateData
    • accountId
    POST /v1/credit/factors HTTP/1.1
    Authorization: Bearer <access_token>
    Content-Type: application/json
    
    {"operationName": "CreditFactors", "query": "query CreditFactors { creditFactors { transunion { displayName type value impact rating aggregateData { type value } accounts { items { accountId } } } } }"}
    {"data": {"creditFactors": {"transunion": [{"displayName": "Credit card use", "type": "UTILIZATION", "value": "18%", "impact": "LOW", "rating": "GREAT", "aggregateData": {"type": "UTILIZATION", "value": "18"}, "accounts": {"items": [{"accountId": "tu-cc-4412"}]}}]}}}
  • Credit-card account details

    POST /v1/credit/accounts/details openbanking

    Reads one tradeline from the Accounts overview: standing, open flag, category and utilizationPercentage for a bureau credit-card accountId.

    Auth: Bearer accessToken plus intuit_tid / intuit_userid / intuit_deviceid headers.

    • accountId
    • accountStanding
    • categoryType
    • hasLimit
    • isOpen
    • utilizationPercentage
    POST /v1/credit/accounts/details HTTP/1.1
    Authorization: Bearer <access_token>
    Content-Type: application/json
    
    {"operationName": "AccountDetails", "query": "query AccountDetails($accountId: String!, $bureau: String!) { credit { accountDetails { creditCard(accountId: $accountId, bureau: $bureau) { accountId accountStanding categoryType hasLimit isOpen utilizationPercentage } } } }", "variables": {"accountId": "tu-cc-4412", "bureau": "TRANSUNION"}}
    {"data": {"credit": {"accountDetails": {"creditCard": {"accountId": "tu-cc-4412", "accountStanding": "OPEN_CURRENT", "categoryType": "CREDIT_CARD", "hasLimit": true, "isOpen": true, "utilizationPercentage": 18}}}}}
  • Linked-account connections

    POST /v1/money/connections openbanking

    Lists aggregated bank connections (Plaid-style link) with providerName, masked accountNumberDisplay and accountBalance.

    Auth: Bearer accessToken plus intuit_tid / intuit_userid / intuit_deviceid headers.

    • connectionId
    • lastRefreshTimeStamp
    • providerId
    • providerName
    • accountURN
    • accountName
    • accountType
    • accountSubType
    • accountNumberDisplay
    • accountBalance
    • value
    • asCurrencyString
    POST /v1/money/connections HTTP/1.1
    Authorization: Bearer <access_token>
    Content-Type: application/json
    
    {"operationName": "LinkedAccounts", "query": "query LinkedAccounts($input: ConnectionsInput) { money { connections(input: $input) { connections { connectionId lastRefreshTimeStamp providerMetadata { providerId providerName } accounts { accountURN accountName accountNumberDisplay accountBalance { value asCurrencyString } } } } } }", "variables": {"input": {}}}
    {"data": {"money": {"connections": {"connections": [{"connectionId": "idx-chase-19ab", "lastRefreshTimeStamp": "2026-10-14T08:11:02Z", "providerMetadata": {"providerId": "chase", "providerName": "Chase"}, "accounts": [{"accountURN": "urn:account:checking:4412", "accountName": "Total Checking", "accountNumberDisplay": "••••4412", "accountBalance": {"value": 2841.17, "asCurrencyString": "$2,841.17"}}]}]}}}}
  • Transaction list

    POST /v1/money/transactions openbanking

    Pages transaction rows for linked accounts: amount, merchant, category, status and accountURN, with cursor pageInfo.

    Auth: Bearer accessToken plus intuit_tid / intuit_userid / intuit_deviceid headers.

    • id
    • date
    • description
    • status
    • amount
    • value
    • asCurrencyString
    • merchant
    • name
    • logoUrl
    • category
    • accountURN
    • providerName
    • endCursor
    • hasNextPage
    POST /v1/money/transactions HTTP/1.1
    Authorization: Bearer <access_token>
    Content-Type: application/json
    
    {"operationName": "TransactionList", "query": "query TransactionList($dateCriteria: DateCriteriaInput, $input: TransactionListFiltersInput) { money { transactions(dateCriteria: $dateCriteria, input: $input) { transactions { id date description status amount { value asCurrencyString } merchant { name } category { name } account { name accountURN providerName } } pageInfo { endCursor hasNextPage } } } }", "variables": {"dateCriteria": {"startDate": "2026-09-01", "endDate": "2026-10-14"}, "input": {"accountUrns": ["urn:account:checking:4412"]}}}
    {"data": {"money": {"transactions": {"transactions": [{"id": "txn-9f3c", "date": "2026-10-11", "description": "WHOLEFDS MKT", "status": "POSTED", "amount": {"value": -54.22, "asCurrencyString": "-$54.22"}, "merchant": {"name": "Whole Foods Market"}, "category": {"name": "Food and drink"}, "account": {"name": "Total Checking", "accountURN": "urn:account:checking:4412", "providerName": "Chase"}}], "pageInfo": {"endCursor": "cursor-2", "hasNextPage": true}}}}}
  • Cash-flow surface

    POST /v1/money/cash-flow openbanking

    Builds the Money cash-flow calendar (granularity, date range) from the same accountBalance snapshot as net worth.

    Auth: Bearer accessToken plus intuit_tid / intuit_userid / intuit_deviceid headers.

    • accountURN
    • accountName
    • accountBalance
    • value
    • asCurrencyString
    • granularity
    • startDate
    • endDate
    POST /v1/money/cash-flow HTTP/1.1
    Authorization: Bearer <access_token>
    Content-Type: application/json
    
    {"operationName": "CashFlowSurface", "query": "query CashFlowSurface($input: CashFlowInput!) { money { cashFlow(input: $input) { connections { accountURN accountName accountBalance { value asCurrencyString } } } } }", "variables": {"input": {"granularity": "MONTH", "startDate": "2026-10-01", "endDate": "2026-10-31"}}}
    {"data": {"money": {"cashFlow": {"connections": [{"accountURN": "urn:account:checking:4412", "accountName": "Total Checking", "accountBalance": {"value": 2841.17, "asCurrencyString": "$2,841.17"}}]}}}}
  • Net-worth snapshot

    POST /v1/money/net-worth openfinance

    Loads the net-worth layout (cards) or the welcome layout that mints an idxAuth token to start linking accounts.

    Auth: Bearer accessToken plus intuit_tid / intuit_userid / intuit_deviceid headers.

    • cards
    • idxAuth
    • token
    POST /v1/money/net-worth HTTP/1.1
    Authorization: Bearer <access_token>
    Content-Type: application/json
    
    {"operationName": "NetWorthPage", "query": "query NetWorthPage($input: NetWorthInput) { money { netWorth(input: $input) { ... on NetWorthLayout { cards { __typename } } ... on WelcomeLayout { idxAuth { token } } } } }", "variables": {"input": {}}}
    {"data": {"money": {"netWorth": {"cards": []}}}}
  • Personal-loan grouped offers

    POST /v1/offers/personal-loans opendata

    Returns grouped personal-loan marketplace tiles with approvalOdds, apr, loanAmount, monthlyPayment and termInMonths.

    Auth: Bearer accessToken plus intuit_tid / intuit_userid / intuit_deviceid headers.

    • groupIdentifier
    • features
    • loanType
    • lenderRating
    • approvalOdds
    • apr
    • loanAmount
    • monthlyPayment
    • termInMonths
    POST /v1/offers/personal-loans HTTP/1.1
    Authorization: Bearer <access_token>
    Content-Type: application/json
    
    {"operationName": "GroupedLoanOffers", "query": "query GroupedLoanOffers($input: GroupedOffersInput!, $platform: Int!) { loans { groupedOffers(input: $input, platform: $platform) { groupedData { groupIdentifier offerData { attributes { features loanType } partnerDetails { lenderRating } terms { approvalOdds apr loanAmount monthlyPayment termInMonths } } } } }", "variables": {"input": {"loanPurpose": "DEBT_CONSOLIDATION"}, "platform": 1}}
    {"data": {"loans": {"groupedOffers": {"groupedData": [{"groupIdentifier": "prequalified", "offerData": [{"attributes": {"features": ["NO_ORIGINATION_FEE"], "loanType": "PERSONAL"}, "partnerDetails": {"lenderRating": 4.6}, "terms": {"approvalOdds": "VERY_GOOD", "apr": 11.49, "loanAmount": 12000, "monthlyPayment": 278.14, "termInMonths": 48}}]}]}}}}
  • Borrowing power

    POST /v1/offers/borrowing-power openfinance

    Reads the borrowing-power estimate and its history series (timestamp, value) used to size loanAmount ranges in the marketplace.

    Auth: Bearer accessToken plus intuit_tid / intuit_userid / intuit_deviceid headers.

    • borrowingPowerHistories
    • timestamp
    • value
    POST /v1/offers/borrowing-power HTTP/1.1
    Authorization: Bearer <access_token>
    Content-Type: application/json
    
    {"operationName": "BorrowingPower", "query": "query BorrowingPower { loans { borrowingPower { borrowingPowerHistories { timestamp value } } } }"}
    {"data": {"loans": {"borrowingPower": {"borrowingPowerHistories": [{"timestamp": "2026-07-01T00:00:00Z", "value": 9800}, {"timestamp": "2026-10-01T00:00:00Z", "value": 12500}]}}}}
  • Take credit-card offer

    POST /v1/offers/credit-cards/take opendata

    Starts the credit-card take-offer handoff from a marketplace tile: destination contentId, partnerId, recommendationId.

    Auth: Bearer accessToken plus intuit_tid / intuit_userid / intuit_deviceid headers.

    • contentId
    • partnerId
    • recommendationId
    • trackingEventId
    • fallbackUrl
    POST /v1/offers/credit-cards/take HTTP/1.1
    Authorization: Bearer <access_token>
    Content-Type: application/json
    
    {"operationName": "TakeOffer", "query": "mutation TakeOffer($contentId: String!, $variantId: String, $badge: Int, $certainty: Int) { offers { takeCreditCard(contentId: $contentId, variantId: $variantId, badge: $badge, certainty: $certainty) { destination { contentId partnerId recommendationId trackingEventId fallbackUrl } } }", "variables": {"contentId": "cc-offer-8821", "variantId": "default", "badge": 1, "certainty": 2}}
    {"data": {"offers": {"takeCreditCard": {"destination": {"contentId": "cc-offer-8821", "partnerId": "chase-sapphire", "recommendationId": "rec-55c1", "trackingEventId": "te-901", "fallbackUrl": "https://partners.example.com/apply"}}}}}
  • CK Money checking and savings hub

    POST /v1/money/hub openbanking

    Reads CK Money checking and savings profile state (open / closed / in-progress): checking accountId and physical/virtual debit cardId.

    Auth: Bearer accessToken plus intuit_tid / intuit_userid / intuit_deviceid headers.

    • accountId
    • cardId
    • closedDate
    POST /v1/money/hub HTTP/1.1
    Authorization: Bearer <access_token>
    Content-Type: application/json
    
    {"operationName": "MoneyHub", "query": "query MoneyHub($input: MoneyHubInput!) { money { savingsTab(intent: SAVINGS) { hub(input: $input) { accountProfile { checking { accountProfile { ... on OpenCheckingProfile { accountId newestPhysicalCard { cardId } newestVirtualCard { cardId } } ... on ClosedCheckingProfile { closedDate } } } savings { accountProfile { ... on OpenSavingsProfile { accountId } ... on ClosedSavingsProfile { closedDate } } } } } }", "variables": {"input": {}}}
    {"data": {"money": {"hub": {"accountProfile": {"checking": {"accountProfile": {"__typename": "OpenCheckingProfile", "accountId": "ck-chk-1044", "newestPhysicalCard": {"cardId": "dc-phys-12"}, "newestVirtualCard": {"cardId": "dc-virt-08"}}}, "savings": {"accountProfile": {"__typename": "OpenSavingsProfile", "accountId": "ck-sav-2201"}}}}}}}
  • ATM locations by ZIP

    POST /v1/money/atms/locate opendata

    Finds surcharge-free CK Money ATMs near a ZIP (name, distanceInMiles, latitude, longitude); a sibling query accepts fromLatLong.

    Auth: Bearer accessToken plus intuit_tid / intuit_userid / intuit_deviceid headers.

    • name
    • distanceInMiles
    • latitude
    • longitude
    POST /v1/money/atms/locate HTTP/1.1
    Authorization: Bearer <access_token>
    Content-Type: application/json
    
    {"operationName": "AtmLocations", "query": "query AtmLocations($radiusInMiles: Float!, $zipCode: String!) { money { checking { atms { fromZipCode(input: { zipCode: $zipCode, radiusInMiles: $radiusInMiles }) { atms { name distanceInMiles point { latitude longitude } } } } } }", "variables": {"zipCode": "94105", "radiusInMiles": 5.0}}
    {"data": {"money": {"atms": {"fromZipCode": {"atms": [{"name": "Allpoint — Ferry Building", "distanceInMiles": 0.4, "point": {"latitude": 37.7955, "longitude": -122.3937}}]}}}}}
  • Credit-report change history

    POST /v1/credit/changes openfinance

    Lists per-bureau credit-health timeline rows (header, rating, snippet) for Equifax and TransUnion.

    Auth: Bearer accessToken plus intuit_tid / intuit_userid / intuit_deviceid headers.

    • reportChanges
    • changes
    • insights
    • header
    • rating
    • snippet
    POST /v1/credit/changes HTTP/1.1
    Authorization: Bearer <access_token>
    Content-Type: application/json
    
    {"operationName": "CreditChanges", "query": "query CreditChanges { creditHealth { changeHistory { equifax { reportChanges { changes { insights { header rating snippet } } } } transunion { reportChanges { changes { insights { header rating snippet } } } } } }"}
    {"data": {"creditHealth": {"changeHistory": {"equifax": {"reportChanges": [{"changes": [{"insights": {"header": "New credit-card account", "rating": "NEUTRAL", "snippet": "A Chase Freedom Unlimited account was added."}}]}]}, "transunion": {"reportChanges": [{"changes": [{"insights": {"header": "Utilization dropped", "rating": "POSITIVE", "snippet": "Credit-card use fell from 31% to 18%."}}]}]}}}}}
  • Bills calendar

    POST /v1/money/bills openbanking

    Loads the Money bills calendar (minAmountDue, paymentStatus, recurringID, nested transaction merchant) for a date window.

    Auth: Bearer accessToken plus intuit_tid / intuit_userid / intuit_deviceid headers.

    • frequency
    • periodText
    • minAmountDue
    • value
    • asCurrencyString
    • paymentStatus
    • recurringID
    • id
    • date
    • description
    • merchant
    POST /v1/money/bills HTTP/1.1
    Authorization: Bearer <access_token>
    Content-Type: application/json
    
    {"operationName": "BillsCalendar", "query": "query BillsCalendar($input: BillsInput!) { money { billsCalendar(input: $input) { bills { frequency { periodText } minAmountDue { value } paymentStatus recurringID transaction { id date description amount { value } merchant { name } } } } } }", "variables": {"input": {"startDate": "2026-10-01", "endDate": "2026-10-31"}}}
    {"data": {"money": {"billsCalendar": {"bills": [{"frequency": {"periodText": "Monthly"}, "minAmountDue": {"value": 128.4, "asCurrencyString": "$128.40"}, "paymentStatus": "UNPAID", "recurringID": "rec-visa-19", "transaction": {"id": "txn-bill-19", "date": "2026-10-22", "description": "CHASE CREDIT CRD", "amount": {"value": -128.4, "asCurrencyString": "-$128.40"}, "merchant": {"name": "Chase"}}}]}}}}
  • Recurring transactions

    POST /v1/money/recurring openbanking

    Returns recurring-transaction rows detected on linked accounts: merchantName, amount, periodText, nextDate, isIncome, typeEnum.

    Auth: Bearer accessToken plus intuit_tid / intuit_userid / intuit_deviceid headers.

    • recurringId
    • merchantName
    • amount
    • value
    • asCurrencyString
    • periodText
    • dueDateText
    • isIncome
    • nextDate
    • typeEnum
    • isNewRecurringTransaction
    POST /v1/money/recurring HTTP/1.1
    Authorization: Bearer <access_token>
    Content-Type: application/json
    
    {"operationName": "RecurringTransactions", "query": "query RecurringTransactions { money { recurringTransactions { items { amount { value } categoryId { name } merchantDetails { merchantName } period { periodText } recurringId recurringTransactionDetails { dueDateText isIncome nextDate } recurringTransactionType { displayText typeEnum } } } } }"}
    {"data": {"money": {"recurringTransactions": {"items": [{"amount": {"value": -14.99, "asCurrencyString": "-$14.99"}, "categoryId": {"id": "subscriptions", "name": "Subscriptions"}, "isNewRecurringTransaction": false, "merchantDetails": {"merchantName": "Netflix"}, "period": {"periodText": "Monthly"}, "recurringId": "rec-nflx-02", "recurringTransactionDetails": {"dueDateText": "Due Oct 18", "isIncome": false, "nextDate": "2026-10-18"}, "recurringTransactionType": {"displayText": "Subscription", "typeEnum": "SUBSCRIPTION"}}]}}}}
  • Start mobile check deposit

    POST /v1/money/check-deposits/start openbanking

    Opens a CK Money remote-deposit session: destination accountId, availableBalance, remaining/total depositLimits, ckCheckDepositSessionId.

    Auth: Bearer accessToken plus intuit_tid / intuit_userid / intuit_deviceid headers.

    • accountId
    • accountNumberLast4
    • availableBalance
    • value
    • asCurrencyString
    • name
    • productId
    • ckCheckDepositSessionId
    • depositLimitPeriod
    • remaining
    • total
    • miSnapLicense
    POST /v1/money/check-deposits/start HTTP/1.1
    Authorization: Bearer <access_token>
    Content-Type: application/json
    
    {"operationName": "StartCheckDeposit", "query": "mutation StartCheckDeposit($input: StartCheckDepositInput!) { money { checking { startCheckDeposit(input: $input) { accounts { accountId accountNumberLast4 availableBalance { value } name productId } ckCheckDepositSessionId depositLimits { depositLimitPeriod remaining { value } total { value } } miSnapLicense } } } }", "variables": {"input": {"accountId": "ck-chk-1044"}}}
    {"data": {"money": {"startCheckDeposit": {"accounts": [{"accountId": "ck-chk-1044", "accountNumberLast4": "1044", "availableBalance": {"value": 2841.17}, "productId": "CHECKING"}], "ckCheckDepositSessionId": "cds-7e21", "depositLimits": {"depositLimitPeriod": "DAILY", "remaining": {"value": 1500.0, "asCurrencyString": "$1,500.00"}, "total": {"value": 2000.0, "asCurrencyString": "$2,000.00"}}, "miSnapLicense": "<sdk-license>"}}}}
  • Preapproved offer shelf

    POST /v1/offers/preapproved opendata

    Loads the My Preapproved shelf: category rows with amount, monthlyPayment, preapproved/prequalified flags, providerId, approval-odds level.

    Auth: Bearer accessToken plus intuit_tid / intuit_userid / intuit_deviceid headers.

    • categoryKey
    • title
    • id
    • amount
    • monthlyPayment
    • preapproved
    • prequalified
    • providerId
    • level
    POST /v1/offers/preapproved HTTP/1.1
    Authorization: Bearer <access_token>
    Content-Type: application/json
    
    {"operationName": "PreapprovedShelf", "query": "query PreapprovedShelf { offers { preapprovedScreen { sections { categoryKey title recommendations { id amount monthlyPayment preapproved prequalified providerId approvalOdds { level } } } } }"}
    {"data": {"offers": {"preapprovedScreen": {"sections": [{"categoryKey": "CREDIT_CARDS", "title": "Preapproved cards", "recommendations": [{"id": "rec-cc-8821", "amount": "$5,000", "monthlyPayment": null, "preapproved": true, "prequalified": false, "providerId": "chase-sapphire", "approvalOdds": {"level": "EXCELLENT"}}]}]}}}}
  • Mint Plaid public token

    POST /v1/money/connections/token openbanking

    Mints a Plaid-style publicToken for an existing connection itemId to re-enter Link or refresh a bank connection.

    Auth: Bearer accessToken plus intuit_tid / intuit_userid / intuit_deviceid headers.

    • token
    • code
    • message
    POST /v1/money/connections/token HTTP/1.1
    Authorization: Bearer <access_token>
    Content-Type: application/json
    
    {"operationName": "PublicToken", "query": "mutation PublicToken($itemId: String!) { money { connectionToken(input: { itemId: $itemId }) { error { code message } token } } }", "variables": {"itemId": "item-chase-19ab"}}
    {"data": {"money": {"connectionToken": {"error": null, "token": "<public_token>"}}}}
  • Credit-health action cards

    POST /v1/credit/actions openfinance

    Loads credit-health coaching cards (id, lockVersion) for a LocationTaxonomy slot such as the Credit hub.

    Auth: Bearer accessToken plus intuit_tid / intuit_userid / intuit_deviceid headers.

    • id
    • lockVersion
    • actionCards
    • labelText
    • location
    POST /v1/credit/actions HTTP/1.1
    Authorization: Bearer <access_token>
    Content-Type: application/json
    
    {"operationName": "CreditActions", "query": "query CreditActions($location: LocationTaxonomy) { creditHealth { actions { actionCards(location: $location) { id lockVersion } labelText(location: $location) { text } } } }", "variables": {"location": "CREDIT_HUB"}}
    {"data": {"creditHealth": {"actions": {"actionCards": [{"__typename": "ActionCardSimple", "id": "pay-down-util-12", "lockVersion": 3}], "labelText": {"text": "Recommended actions"}}}}}
  • Tradeline payoff simulator

    POST /v1/credit/simulations/payoff openfinance

    Runs the payoff simulator for a bureau tradeline: interestSaved, originalPayOffDate and originalTotalCost versus an extra-payment plan.

    Auth: Bearer accessToken plus intuit_tid / intuit_userid / intuit_deviceid headers.

    • interestSaved
    • originalPayOffDate
    • originalTotalCost
    • accountId
    POST /v1/credit/simulations/payoff HTTP/1.1
    Authorization: Bearer <access_token>
    Content-Type: application/json
    
    {"operationName": "PayoffSimulation", "query": "query PayoffSimulation($input: PayoffSimulationInput) { credit { payoffSimulation(input: $input) { simulationData { interestSaved originalPayOffDate originalTotalCost } } } }", "variables": {"input": {"accountId": "tu-cc-4412", "extraPaymentAmount": 50}}}
    {"data": {"credit": {"payoffSimulation": {"simulationData": {"interestSaved": 412.18, "originalPayOffDate": "2029-08-01", "originalTotalCost": 3180.44}}}}}
  • Complete mobile check deposit

    POST /v1/money/check-deposits/complete openbanking

    Submits captured check images for a CK Money remote-deposit session and returns id, receiptNumber and transactionDateTime.

    Auth: Bearer accessToken plus intuit_tid / intuit_userid / intuit_deviceid headers.

    • id
    • receiptNumber
    • transactionDateTime
    • ckCheckDepositSessionId
    POST /v1/money/check-deposits/complete HTTP/1.1
    Authorization: Bearer <access_token>
    Content-Type: application/json
    
    {"operationName": "CompleteCheckDeposit", "query": "mutation CompleteCheckDeposit($input: CompleteCheckDepositInput!) { money { checking { completeCheckDeposit(input: $input) { id receiptNumber transactionDateTime } } } }", "variables": {"input": {"ckCheckDepositSessionId": "cds-7e21", "accountId": "ck-chk-1044", "amount": {"value": 250.0}}}}
    {"data": {"money": {"completeCheckDeposit": {"id": "dep-4412", "receiptNumber": "RCPT-908821", "transactionDateTime": "2026-10-15T16:04:22Z"}}}}
  • Issue debit-card wallet provisioning data

    POST /v1/money/cards/wallet-provisioning openbanking

    Issues CK Money debit-card material for Google Pay / digital-wallet push: lastFour, paymentNetwork, lockType, accountLocator.

    Auth: Bearer accessToken plus intuit_tid / intuit_userid / intuit_deviceid headers.

    • accountLocator
    • type
    • value
    • id
    • lastFour
    • lockType
    • firstName
    • lastName
    • paymentNetwork
    POST /v1/money/cards/wallet-provisioning HTTP/1.1
    Authorization: Bearer <access_token>
    Content-Type: application/json
    
    {"operationName": "WalletProvisioningData", "query": "mutation WalletProvisioningData { money { checking { walletProvisioningData { accountLocator { type value } digitalDebitCard { id lastFour lockType } firstName lastName paymentNetwork } } } }"}
    {"data": {"money": {"walletProvisioningData": {"accountLocator": {"type": "ACCOUNT_ID", "value": "ck-chk-1044"}, "digitalDebitCard": {"id": "dc-virt-08", "lastFour": "4412", "lockType": "UNLOCKED"}, "firstName": "Alex", "lastName": "Rivera", "paymentNetwork": "MASTERCARD"}}}}
  • CK Money signup personal information

    POST /v1/money/signup/personal-info osint

    Reads the legal firstName and lastName on the CK Money checking signup record.

    Auth: Bearer accessToken plus intuit_tid / intuit_userid / intuit_deviceid headers.

    • firstName
    • lastName
    POST /v1/money/signup/personal-info HTTP/1.1
    Authorization: Bearer <access_token>
    Content-Type: application/json
    
    {"operationName": "SignupPersonalInformation", "query": "query SignupPersonalInformation { money { signup { personalInformation { result { firstName lastName } } } }"}
    {"data": {"money": {"signup": {"personalInformation": {"result": {"firstName": "Alex", "lastName": "Rivera"}}}}}}
  • Bureau report validity flags

    POST /v1/credit/reports/validity openfinance

    Returns per-bureau isValid flags (EQUIFAX / TRANSUNION) gating the tradeline and simulator screens.

    Auth: Bearer accessToken plus intuit_tid / intuit_userid / intuit_deviceid headers.

    • isValid
    POST /v1/credit/reports/validity HTTP/1.1
    Authorization: Bearer <access_token>
    Content-Type: application/json
    
    {"operationName": "ReportValidity", "query": "query ReportValidity { credit { equifax: reportValid(input: { source: EQUIFAX }) { isValid } transunion: reportValid(input: { source: TRANSUNION }) { isValid } } }"}
    {"data": {"credit": {"equifax": {"isValid": true}, "transunion": {"isValid": true}}}}
  • Credit-card quick-apply form

    POST /v1/offers/credit-cards/apply opendata

    Loads the in-app Quick Apply form (cardDetails, editable form sections) for a credit-card contentId / partnerId after take-offer.

    Auth: Bearer accessToken plus intuit_tid / intuit_userid / intuit_deviceid headers.

    • contentId
    • partnerId
    • clickEventPayload
    • editable
    • headline
    POST /v1/offers/credit-cards/apply HTTP/1.1
    Authorization: Bearer <access_token>
    Content-Type: application/json
    
    {"operationName": "QuickApplyForm", "query": "query QuickApplyForm($clickEventPayload: String!, $contentId: String!, $partnerId: String!) { offers { quickApplyForm(clickEventPayload: $clickEventPayload, contentId: $contentId, partnerId: $partnerId) { cardDetails { title { text } } forms { editable headline { text } } } }", "variables": {"clickEventPayload": "te-901", "contentId": "cc-offer-8821", "partnerId": "chase-sapphire"}}
    {"data": {"offers": {"quickApplyForm": {"cardDetails": {"title": {"text": "Chase Sapphire Preferred"}}, "forms": [{"editable": true, "headline": {"text": "Confirm your info"}}]}}}}

Data categories

  • credit scores
  • credit factors
  • credit reports
  • credit changes
  • linked bank accounts
  • transactions
  • recurring transactions
  • bills
  • cash flow
  • net worth
  • personal loan offers
  • credit card offers
  • preapproved offers
  • checking and savings
  • check deposits
  • ATM locations
  • credit actions
  • payoff simulator
  • digital wallet provisioning
  • personal information
  • quick apply

Where teams use this data

  • Bureau-score watch for underwriting

    A lender or PFM dashboard polls the credit hub's Equifax and TransUnion score, rating and updatedAtTimestamp, appends score-history timestamp/value points, and overlays change insights (header, rating, snippet) so a delta outside a band fires with the tradeline that moved.

  • Card utilization and tradeline audit

    Reconcile bureau credit-card tradelines (accountId, accountStanding, utilizationPercentage, isOpen) against the issuer ledger to flag accounts dragging the utilization factor.

  • Linked-account cash-flow and bills PFM

    From linked accounts (accountURN, providerName, accountBalance.value), page transaction rows (amount, merchant.name, category.name, date), overlay recurring nextDate/isIncome, and drop bill minAmountDue/paymentStatus onto the cash-flow calendar.

  • Prequalified loan-offer matching

    Read borrowing-power history plus grouped offer terms (approvalOdds, apr, loanAmount, monthlyPayment, termInMonths) and the My Preapproved shelf (preapproved, prequalified, providerId, level), then hand off via partnerId and recommendationId.

Frequently asked questions

Which bureaus do the Credit Karma score endpoints cover?

The credit hub and history operations return Equifax and TransUnion side by side — score, rating, updatedAtTimestamp and per-point history for each bureau. Experian is not part of this client's score data.

How does the app authenticate its API calls?

Sign-in is the user's Intuit identity account (email and password, passkey, or one-time code). The app mints a short-lived access token, sent as an Authorization: Bearer header together with the intuit_tid, intuit_userid and intuit_deviceid tracing headers.

What linked-account and money data is available?

Bank connections return accountURN, masked accountNumberDisplay and accountBalance, refreshable through a Plaid-style public token. Transaction paging, recurring detections and the bills calendar add merchant, category, nextDate/isIncome and minAmountDue/paymentStatus; cash-flow and net-worth views roll the same balances up; the money hub and check-deposit start add CK Money checking accountId, debit cardId, availableBalance and depositLimits.

Do the loan-offer endpoints include pricing fields?

Yes. Grouped loan offers carry approvalOdds, apr, loanAmount, monthlyPayment, termInMonths and lenderRating; borrowing-power history sizes the range. The preapproved shelf adds preapproved/prequalified flags, providerId and an approval-odds level, and taking an offer hands the tile to the partner via contentId, partnerId and recommendationId.

Apps similar to Intuit Credit Karma

  • Experian — Experian's consumer app gives a free Experian FICO Score and credit report, plus Experian Boost and Experian Go, from the US bureau Credit Karma does not score on its dashboard.
  • Credit Sesame — Credit Sesame shows a free daily credit score and monitoring alerts, then matches credit-card and loan offers to approval odds, with credit data provided by TransUnion.
  • WalletHub — WalletHub offers free TransUnion credit scores, reports and daily monitoring, plus comparison tools for credit cards, personal loans, car insurance and bank accounts.
  • LendingTree — LendingTree is an online lending marketplace that also gives users a free VantageScore 3.0 and connects borrowers with multiple lenders for loans, cards and insurance.
  • NerdWallet — NerdWallet is a personal-finance comparison site and app that promotes credit cards, loans and bank products and lists a free credit-score tool among its guides.
  • CreditWise — Capital One's CreditWise app gives a free FICO Score 8 and TransUnion credit report, with alerts when a new inquiry or delinquency hits TransUnion or Experian files.
  • AnnualCreditReport.com — AnnualCreditReport.com is the FACTA site jointly run by Equifax, Experian and TransUnion for statutory free US credit reports; the reports do not include a credit score.
  • myFICO — myFICO is FICO's own consumer service; the free plan updates an Equifax FICO Score 8 monthly, while paid plans add mortgage, auto and other FICO scores plus monitoring.

Topics

  • credit karma api
  • intuit credit karma graphql
  • transunion vantageScore
  • equifax credit score api
  • credit card utilization
  • linked bank accounts
  • bills calendar
  • personal loan offers
  • ck money check deposit
  • preapproved credit cards

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