FeelConnect▍
ProductsDocsPricingChangelog
Sign inGet API keys

Search documentation

Fuzzy search across every docs page and section

API reference/AI products

Getting started

  • Overview
  • Quickstart
  • Authentication
  • Environments and sandbox
  • Link
  • Going live

API reference

  • Link tokens
  • Institutions
  • Items
  • Accounts
  • Transactions
  • Identity
  • Income
  • Assets
  • Investments
  • Liabilities
  • Recurring
  • Categories
  • AI products

Platform

  • Webhooks
  • Errors
  • Rate limits and quotas
  • SDKs
  • GraphQL
  • MCP and AI agents
  • Changelog
  1. Docs
  2. API reference
  3. AI products
PreviousCategoriesNextWebhooks

On this page

  • Two input modes
  • The engine field
  • Categorize transactions
  • Detect subscriptions
  • Forecast cash flow
  • Merchant intelligence
  • Health score
  • Financial summary
  • Fraud risk
  • Purchase analysis
  • Weekly report
FeelConnect▍

The developer-first financial data platform.

All systems operational

Products

Universal LinkData APIsAI enrichmentPricing

Developers

DocumentationAPI explorerDashboardGet API keys

Company

HomeChangelogfeels.moneySign in

Legal

PrivacyTermsSecurityData processing
© 2026 FeelConnect. All rights reserved./v1 · FC-Version 2026-07-01

API reference

AI products

Nine AI enrichment endpoints: categorization, subscriptions, cash flow, merchant intel, health score, summaries, fraud risk, purchase analysis, weekly reports.

AI products turn raw financial data into decisions. Each endpoint is independently sellable, counts against your AI request quota (plans), and responds in one round trip — no jobs to poll.

Two input modes

  • access_token mode — pass an item's access token and FeelConnect reads the data it needs. Zero payload engineering. Every AI product is derived from transactions, so the item must have transactions in its Link consent; without it the call returns permission_error / product_not_consented, exactly like /v1/transactions/get.
  • Standalone payload mode — pass raw data (for example a transactions array) with no access token. Use FeelConnect AI on data you aggregated elsewhere. Supported by categorize, subscriptions, fraud-risk, and purchase-analysis; merchant takes only a query.

The engine field

Every AI response reports how it was produced. FeelConnect is rules-first: deterministic engines (merchant tables, cadence detection, scoring formulas) run always; a language model then enhances the result when available. If the AI layer is unreachable, endpoints degrade to rules-only instead of failing.

engineMeaning
rulesDeterministic engines only. Always available.
aiModel output (with schema validation) drove the response.
ai+rulesRules produced the base result; the model enriched it (narratives, edge cases).

When a model was used, the response also includes model (for example kimi-k3).

Categorize transactions

POST/v1/ai/categorize

Maps transactions onto the category taxonomy with confidence scores.

Request body
access_tokenstring
Categorize the item's recent transactions. Provide this or transactions.
transactionsobject[]
Standalone mode: [{ id, description, amount, merchant? }] — up to 500 per call.
curl https://api.feelconnect.dev/v1/ai/categorize \
-H "Authorization: Bearer $FEELCONNECT_SECRET_KEY" \
-H "Content-Type: application/json" \
-d '{"transactions":[{"id":"t1","description":"SQ *BLUE BOTTLE COFFEE OAK","amount":6.75},{"id":"t2","description":"COMCAST CABLE COMM","amount":89.99}]}'
Response
{
"categorized": [
{
"id": "t1",
"category": "Food & Drink",
"category_detailed": "Coffee Shops",
"confidence": 0.98
},
{
"id": "t2",
"category": "Utilities",
"category_detailed": "Internet",
"confidence": 0.95
}
],
"engine": "ai+rules",
"model": "kimi-k3"
}

Detect subscriptions

POST/v1/ai/subscriptions

Finds paid subscriptions, prices them annually, and flags likely-unused ones.

Request body
access_tokenstring
Detect from the item's history. Provide this or transactions.
transactionsobject[]
Standalone mode: raw transactions to scan.
curl https://api.feelconnect.dev/v1/ai/subscriptions \
-H "Authorization: Bearer $FEELCONNECT_SECRET_KEY" \
-H "Content-Type: application/json" \
-d '{"access_token":"fc_at_…"}'
Response
{
"subscriptions": [
{
"merchant_name": "Streamflix",
"cadence": "monthly",
"average_amount": 15.99,
"annual_cost": 191.88,
"last_date": "2026-07-12",
"next_date": "2026-08-12",
"likely_unused": false,
"note": null
},
{
"merchant_name": "FitCloud Pro",
"cadence": "monthly",
"average_amount": 29.99,
"annual_cost": 359.88,
"last_date": "2026-07-03",
"next_date": "2026-08-03",
"likely_unused": true,
"note": "No gym-adjacent activity in 4 months; consider cancelling."
}
],
"monthly_total": 45.98,
"annual_total": 551.76,
"engine": "ai+rules",
"model": "kimi-k3"
}

Forecast cash flow

POST/v1/ai/cashflow

Projects daily inflow, outflow, and balance over a horizon, with the lowest point and a risk call.

Request body
access_tokenstringrequired
The item's access token.
horizon_daysnumber
Forecast length in days, 7–90. Defaults to 30.
curl https://api.feelconnect.dev/v1/ai/cashflow \
-H "Authorization: Bearer $FEELCONNECT_SECRET_KEY" \
-H "Content-Type: application/json" \
-d '{"access_token":"fc_at_…","horizon_days":30}'
Response
{
"forecast": {
"horizon_days": 30,
"daily": [
{
"date": "2026-07-29",
"inflow": 0,
"outflow": 74.2,
"balance": 4252.98
},
{
"date": "2026-07-31",
"inflow": 3184.62,
"outflow": 41.5,
"balance": 7396.1
}
],
"summary": {
"projected_end_balance": 5122.4,
"lowest_point": {
"date": "2026-08-10",
"balance": 1874.33
},
"risk": "low",
"narrative": "Payroll on Jul 31 comfortably covers the Aug 1 rent; balance stays above $1,800 all month."
}
},
"engine": "ai+rules",
"model": "kimi-k3"
}

Merchant intelligence

POST/v1/ai/merchant

Resolves a raw statement descriptor into a clean merchant with category and website.

Request body
querystringrequired
Raw descriptor, e.g. SQ *BLUE BOTTLE COF OAK.
curl https://api.feelconnect.dev/v1/ai/merchant \
-H "Authorization: Bearer $FEELCONNECT_SECRET_KEY" \
-H "Content-Type: application/json" \
-d '{"query":"SQ *BLUE BOTTLE COF OAK"}'
Response
{
"merchant": {
"query": "SQ *BLUE BOTTLE COF OAK",
"merchant_name": "Blue Bottle Coffee",
"category": "Food & Drink",
"website": "bluebottlecoffee.com",
"description": "Specialty coffee roaster and cafe chain."
},
"engine": "ai",
"model": "kimi-k3"
}

Health score

POST/v1/ai/health-score

A 0–100 financial health score with explainable subscores and one top recommendation.

Request body
access_tokenstringrequired
The item's access token.
curl https://api.feelconnect.dev/v1/ai/health-score \
-H "Authorization: Bearer $FEELCONNECT_SECRET_KEY" \
-H "Content-Type: application/json" \
-d '{"access_token":"fc_at_…"}'
Response
{
"health": {
"score": 72,
"subscores": {
"savings_rate": 68,
"cashflow_stability": 81,
"debt_ratio": 64,
"emergency_fund": 55,
"investment_rate": 77
},
"narrative": "Solid, steady cash flow; the emergency fund is the weak spot at 1.8 months of expenses.",
"top_recommendation": "Automate $250/mo into savings to reach a 3-month emergency fund by March."
},
"engine": "ai+rules",
"model": "kimi-k3"
}

Financial summary

POST/v1/ai/financial-summary

A plain-language summary of the period with highlight bullets — ready to render.

Request body
access_tokenstringrequired
The item's access token.
periodstring
week | month | quarter. Defaults to month.
curl https://api.feelconnect.dev/v1/ai/financial-summary \
-H "Authorization: Bearer $FEELCONNECT_SECRET_KEY" \
-H "Content-Type: application/json" \
-d '{"access_token":"fc_at_…","period":"month"}'
Response
{
"summary": "July income of $6,369 against $4,884 in spending left $1,485 net. Dining rose 22% while transport fell 15%; all bills posted on time.",
"highlights": [
"Net positive month: +$1,485",
"Dining up 22% vs June ($412 → $503)",
"Subscriptions steady at $46/mo"
],
"engine": "ai+rules",
"model": "kimi-k3"
}

Fraud risk

POST/v1/ai/fraud-risk

Scores transactions for fraud and anomaly signals: duplicates, unusual merchants, out-of-pattern amounts and geographies.

Request body
access_tokenstring
Scan the item's recent transactions. Provide this or transactions.
transactionsobject[]
Standalone mode: raw transactions to score.
curl https://api.feelconnect.dev/v1/ai/fraud-risk \
-H "Authorization: Bearer $FEELCONNECT_SECRET_KEY" \
-H "Content-Type: application/json" \
-d '{"access_token":"fc_at_…"}'
Response
{
"signals": [
{
"transaction_id": "txn_5jP8wQxV2mB9nY3cRk1z",
"risk": "high",
"reasons": [
"Merchant never seen in 24 months of history",
"Amount 6.4x the account's daily average",
"Charge posted 02:14 local time"
]
}
],
"overall_risk": "medium",
"engine": "ai+rules",
"model": "kimi-k3"
}

Purchase analysis

POST/v1/ai/purchase-analysis

Should this user buy this thing. Returns a verdict with regret and feeling scores, opportunity cost projections, and budget impact — grounded in the user's actual finances when an access_token is provided.

Request body
item.namestringrequired
What they want to buy.
item.pricenumberrequired
Price in major units.
item.urlstring
Product URL for extra context.
access_tokenstring
Ground the analysis in the item's real cash flow and goals.
contextobject
Free-form extra context, e.g. { "reason": "gift" }.
curl https://api.feelconnect.dev/v1/ai/purchase-analysis \
-H "Authorization: Bearer $FEELCONNECT_SECRET_KEY" \
-H "Content-Type: application/json" \
-d '{"item":{"name":"Aeron office chair","price":1395},"access_token":"fc_at_…"}'
Response
{
"analysis": {
"verdict": "wait",
"regret_score": 41,
"feeling_score": 74,
"opportunity_cost": [
{
"years": 5,
"value": 1899.14
},
{
"years": 10,
"value": 2585.98
}
],
"budget_impact": "28% of your typical monthly discretionary spend.",
"reasoning": "You work from home daily, so utility is high — but this month already runs $310 over the discretionary baseline. Waiting for the September restock avoids dipping into the emergency fund.",
"alternatives": [
"Refurbished Aeron (~$650)",
"Wait for the Labor Day sale"
]
},
"engine": "ai+rules",
"model": "kimi-k3"
}

Weekly report

POST/v1/ai/weekly-report

A digest of one week: totals, largest purchases, subscription changes, a win, an opportunity, and one recommended action.

Request body
access_tokenstringrequired
The item's access token.
week_ofstring
YYYY-MM-DD inside the target week. Defaults to the last full week.
curl https://api.feelconnect.dev/v1/ai/weekly-report \
-H "Authorization: Bearer $FEELCONNECT_SECRET_KEY" \
-H "Content-Type: application/json" \
-d '{"access_token":"fc_at_…","week_of":"2026-07-20"}'
Response
{
"report": {
"week_start": "2026-07-20",
"income": 3184.62,
"expenses": 1211.4,
"net": 1973.22,
"largest_purchases": [
{
"name": "Alaska Airlines",
"amount": 348.6,
"date": "2026-07-22"
},
{
"name": "GreenMart",
"amount": 132.15,
"date": "2026-07-24"
}
],
"subscription_changes": [
"FitCloud Pro renewed at $29.99 (was $24.99)"
],
"biggest_win": "Groceries came in 18% under the 4-week average.",
"biggest_opportunity": "FitCloud Pro price hike — cancel or downgrade saves $360/yr.",
"recommended_action": "Move this week's $1,973 surplus: $1,500 to savings, $473 to the card balance.",
"narrative": "A strong week — payroll landed, spending stayed routine, and the flight was the only splurge."
},
"engine": "ai+rules",
"model": "kimi-k3"
}

Metering

AI endpoints count against both quotas: one API request and one AI request per call. Rules-only responses (engine: "rules") are billed the same — the quota meters requests, not model usage.