# Moneytor API > Public read-only API for asset worth, enriched assets, and cashflow transactions. Primary docs: https://app.moneytor.co.il/docs Markdown: https://app.moneytor.co.il/docs.md OpenAPI: https://app.moneytor.co.il/openapi.json # Moneytor API ## Authentication Send a JWT API token in the Authorization header. Premium users create tokens from the API settings section. Each token is valid for 30 days only. ```http Authorization: Bearer ``` The token is a signed JWT containing user_id, jti, and exp. The server verifies the signature, checks expiry and revocation, and then applies usage limits. ## Rate limits 30 requests per UTC hour and 300 requests per UTC day per user. ## GET /api/v1/assetWorth Returns a summarized financial snapshot: assets, debts, net worth, and a compact product summary. Use when: Use it for dashboards, analytics, or agents that need the overall financial picture. ### Query params No query params ### Response fields - `ok` (boolean): Indicates that the request succeeded. - `asOf` (string): ISO-8601 timestamp when the response was generated. - `baseCurrency` (string): Base currency for calculations. Currently always ILS. - `totalBalances` (object): Aggregate balances grouped by asset and debt categories. - `netWorth` (number): Assets minus debts in the base currency. - `productsSummary` (array): Compact product list with id, form, name, and balanceInBase. ### Example response ```json { "ok": true, "asOf": "2026-05-23T08:18:26.341Z", "baseCurrency": "ILS", "totalBalances": { "assets": 6707996.69, "debts": 188464.84, "bankAssets": 1286905, "pensionAssets": 3213333, "shareAssets": 1069765.84, "cryptoAssets": 1120005.45, "lastUpdate": { "bankAssets": "2026-05-20T19:00:58.479538+00:00", "pensionAssets": "2025-05-08T15:26:55.130484+00:00" } }, "netWorth": 6519531.85, "productsSummary": [ { "id": "6255", "form": "bank", "name": "אופן פיננס סנדבוקס פקדון", "balanceInBase": 16819 }, { "id": "6028", "form": "crypto", "name": "שם ארנק הקריפטו", "balanceInBase": 1120005.45 } ] } ``` ## GET /api/v1/assets Returns every financial product with source fields, base-currency calculations, and normalized integration fields. Use when: Use it for sync jobs, per-asset analysis, or integrations that need holding-level detail. ### Query params No query params ### Response fields - `ok` (boolean): Indicates that the request succeeded. - `asOf` (string): ISO-8601 timestamp when the response was generated. - `baseCurrency` (string): Base currency for calculations. Currently always ILS. - `count` (number): Number of assets in the assets array. - `assets` (array): Asset array. Each asset includes id, form, name, currency, balanceInBaseCurrency, and partOfPortfolio. ### Common fields on every asset - `id` (string): Product id as a string. - `productId` (number): Numeric product id. - `userProductId` (number): User-product relation id. - `portfolioProductId` (number): Portfolio-product relation id. - `portfolio_products_id` (number): Source field for the portfolio-product relation. - `user_products_id` (number): Source field for the user-product relation. - `form` (string): Asset type. One of the eight documented form values below. - `name` (string): Asset name as shown in Moneytor. - `currency` (object): Asset currency with value, name, sign, and rate. - `liquidity` (boolean|null): Whether the asset is liquid. Debts may return null. - `ownership` (number|null): User ownership percentage. - `insights` (string[]|null): Insight ids linked to the asset, when available. - `updatedAt` (string): Last update timestamp in ISO format. - `provider` (string|null): Provider or data source name when available. - `openfinance_asset_id` (string|null): Original Open Finance source asset id. - `openfinance_connection_id` (string|null): Original Open Finance connection id. - `openfinanceAssetId` (string|null): Normalized Open Finance asset id in camelCase. - `openfinanceConnectionId` (string|null): Normalized Open Finance connection id in camelCase. - `balanceInBaseCurrency` (number): Asset balance in the response base currency. - `partOfPortfolio` (number): Asset share of the portfolio, as a percentage. ### Asset types and fields by form ### `bank` — Bank / deposit Checking accounts, deposits, and bank cash products. - `country` (object): Account country. - `accountType` (object): Account type, such as balance or saving. - `bank` (string): Bank or institution name. - `amount` (number): Current balance in original currency. - `interest` (number): Annual interest, when entered. - `monthlyDeposit` (number): Monthly deposit for savings products. - `closeExitPoint` (string): Nearest deposit exit point. - `maturityDate` (string): Maturity or end date. - `bankNumber` (string|number): Bank number. - `branchNumber` (string|number): Branch number. - `accountNumber` (string|number): Account number. - `tax` (number): Relevant tax rate as a percentage. ### `pension` — Pension / provident / education fund Long-term savings and pension funds, entered manually or imported from Masleka. - `institution` (object): Managing institution. - `productType` (object): Pension product type. - `route` (object): Investment route. - `number` (object): Fund or policy number. - `fund_id` (object): Fund id from the source data. - `fundId` (string): Normalized fund id. - `amount` (number): Current accumulated amount. - `expectedYield` (number): Expected annual yield. - `managementFeeFromSavings` (number): Management fee from savings. - `managementFeeFromDeposit` (number): Management fee from deposits. - `depositFrequency` (object): Deposit frequency. - `monthlyDepositEmployee` (number): Monthly employee contribution. - `monthlyDepositEmployer` (number): Monthly employer contribution. - `yearsToRetirement` (number|null): Estimated years to retirement. - `projectedMonthlyPension` (number): Projected monthly pension from Masleka. - `investmentDistribution` (array): Investment allocation by route, when available. - `enrichedFund` (object): Enriched fund metadata from yield databases. - `additionalFundInfo` (object): Additional investment route metadata. #### `investmentDistribution[]` (array) Allocation across investment routes. - `routeName` (string): Route name. - `routeCode` (string): Route code. - `amount` (number): Amount in the route. - `depositPercentage` (number): Deposit percentage for the route. ### `share` — Stocks / securities Brokerage portfolios with holding-level stock or fund rows. - `broker` (string): Broker or institution name. - `stocksData` (array): Holdings in the portfolio. - `stocksOptions` (array): Search/selection options used by the UI. - `cash` (number): Cash in the brokerage account. - `minimumFee` (number): Minimum fee. - `shiftFee` (number): Transfer or transaction fee. - `showAfterTax` (boolean): Whether after-tax value is enabled. - `yesefTax` (boolean|null): Whether surtax applies. - `offsetLosses` (boolean): Whether losses are offset. - `ibkr_account_id` (string): IBKR account id, when available. #### `stocksData[]` (array) Single holding row. - `stockName` (string): Ticker or security name. - `amount` (number): Number of units. - `purchasePrice` (number): Purchase price per unit. - `purchaseDate` (string|null): Purchase date. - `stockPrice` (number): Current price in security currency. - `stockPriceInBaseCurrency` (number): Current price in base currency. - `currency` (object): Security currency. - `totalWorth` (number): Total value in original currency. - `totalWorthInBaseCurrency` (number): Total value in base currency. - `balanceInBaseCurrency` (number): Adjusted holding value in base currency. ### `rsu` — RSU / options / ESPP Equity compensation grants with vesting and tax calculations. - `broker` (string): Broker or plan type/name. - `rsuData` (array): Grant or option rows. - `rsuOptions` (array): Search/selection options used by the UI. - `showAfterTax` (boolean): Whether after-tax calculation is enabled. - `showVestedOnly` (boolean): Whether only vested units are included. - `taxRate` (number): Tax rate percentage. - `yesefTax` (boolean|null): Whether surtax applies. - `optionGrantType` (string|null): Option grant type. - `ipoDate` (string|null): IPO date relevant for options. - `ipoPrice` (number|null): IPO price relevant for options. - `showSaleInTwoYears` (boolean): Whether two-year sale scenario is enabled. - `stockName` (string): Primary stock name at product level. - `stockPrice` (string|number): Primary stock price. - `stockPriceInBaseCurrency` (number): Stock price in base currency. - `stockMarket` (string|null): Market or exchange. #### `rsuData[]` (array) Single grant row. - `stockName` (string): Stock name or ticker. - `totalAmount` (number): Total units in the grant. - `vestedAmount` (number): Vested units. - `effectiveAmount` (number): Effective units used for valuation. - `grantPrice` (number): Grant or strike price. - `grantDate` (string|null): Grant date. - `buyPrice` (number|null): ESPP buy price. - `stockPrice` (number): Current stock price. - `currency` (object): Stock currency. - `totalWorth` (number): Total value in original currency. - `totalWorthInBaseCurrency` (number): Total value in base currency. - `balanceInBaseCurrency` (number): Value after vesting/tax settings in base currency. ### `crypto` — Crypto Crypto wallets and coin holdings. - `cryptoData` (array): Coin holdings in the wallet. - `cryptoOptions` (array): Search/selection options used by the UI. - `cash` (number): Cash associated with the wallet, when available. - `showAfterTax` (boolean): Whether after-tax calculation is enabled. - `yesefTax` (boolean): Whether surtax applies. - `offsetLosses` (boolean): Whether crypto losses are offset. #### `cryptoData[]` (array) Single coin holding. - `coinName` (string): Coin symbol. - `amount` (number): Coin amount. - `purchasePrice` (number): Purchase price. - `purchaseDate` (string|null): Purchase date. - `purchaseFee` (number|null): Purchase fee. - `coinRate` (number): Current coin rate. - `totalWorth` (number): Total value in original currency. - `totalWorthInBaseCurrency` (number): Total value in base currency. - `balanceInBaseCurrency` (number): Holding value in base currency. ### `debt` — Debt / loan / mortgage Loans, mortgages, and credit liabilities returned as debt assets. - `debtInstitution` (string): Lending institution. - `debtType` (string): Debt type, such as loan or mortgage. - `startDate` (string): Debt start date. - `routesData` (array): Debt or loan tracks. - `returnType` (string): Repayment type, when available. - `graceType` (object): Grace type. - `graceYears` (object): Grace duration in years. #### `routesData[]` (array) Single debt track. - `remainder` (number): Remaining balance for the track. - `trackInterestType` (object): Track interest type. - `interest` (number): Annual interest rate. - `monthlyRepayment` (number): Monthly repayment. - `originalSum` (number): Original principal. - `debtPeriodInMonths` (number): Debt duration in months. ### `realestate` — Real estate Properties with valuation, address, rent, and cashflow details. - `value` (number): Current value. - `purchasePrice` (number): Purchase price. - `purchaseDate` (string): Purchase date. - `purchaseExpenses` (number): Purchase expenses. - `linkedMortgage` (object): Linked mortgage. - `expectedValueIncrease` (number): Expected value increase. - `saleCommission` (number): Sale commission. - `profitTax` (number): Profit tax. - `address` (string): Full address. - `country` (object): Country. - `city` (string): City. - `street` (string): Street. - `builtArea` (number): Built area. - `propertyType` (object): Property type. - `bedrooms` (number): Bedroom count. - `bathrooms` (number): Bathroom count. - `parking` (number): Parking spaces. - `rent` (number): Rent amount. - `rentType` (object): Rent type. - `cashflowsData` (array): Property income and expense rows. - `latitude` (number): Latitude. - `longitude` (number): Longitude. #### `cashflowsData[]` (array) Single real-estate cashflow row. - `expenditureType` (object): Income or expense type. - `frequency` (object): Frequency. - `fixedAmountPercentage` (boolean): Whether amount is a percentage. - `amount` (number): Row amount. - `sum` (number): Calculated sum. ### `other` — Other Generic assets that do not fit a dedicated form. - `currentValue` (number): Current value. - `expectedMonthlyIncome` (number): Expected monthly income. - `expectedMonthlyExpenses` (number): Expected monthly expenses. - `expectedSellingExpenses` (number): Expected selling expenses. - `buyingPrice` (number): Buying price. - `country` (object): Country. - `managementFee` (number): Management fee. - `purchaseDate` (string): Purchase date. - `predictedValueIncrease` (number): Predicted value increase. ### Example response ```json { "ok": true, "asOf": "2026-05-23T08:39:05.559Z", "baseCurrency": "ILS", "count": 2, "assets": [ { "id": "6255", "productId": 6255, "form": "bank", "name": "אופן פיננס סנדבוקס פקדון", "liquidity": true, "ownership": 100, "currency": { "value": "ILS", "name": "", "sign": "", "rate": -1 }, "balanceInBaseCurrency": 16819, "partOfPortfolio": 0.2507, "updatedAt": "2026-05-19T17:00:55.816049+00:00" }, { "id": "6028", "productId": 6028, "form": "crypto", "name": "שם ארנק הקריפטו", "cryptoData": [ { "coinName": "BTC", "amount": 5, "coinRate": 74719.35, "totalWorthInBaseCurrency": 1120005.45, "balanceInBaseCurrency": 1120005.45 } ], "balanceInBaseCurrency": 1120005.45, "partOfPortfolio": 16.6966 } ] } ``` ## GET /api/v1/transactions Returns Open Finance and manual cashflow transactions with date filtering and a limit. Use when: Use it to analyze expenses, income, categories, or build cashflow agents. ### Query params - `from` (ISO date string): Inclusive start date. Invalid values are treated as missing. - `to` (ISO date string): Inclusive end date. Invalid values are treated as missing. - `limit` (number): Number of transactions to return. Clamped to 1-2000. ### Response fields - `ok` (boolean): Indicates that the request succeeded. - `asOf` (string): ISO-8601 timestamp when the response was generated. - `count` (number): Number of returned transactions after applying limit. - `totalAvailable` (number): Number of transactions available after date filtering. - `transactions` (array): Transaction array with id, date, amount, currency, description, category, accountId, and type. ### Example response ```json { "ok": true, "asOf": "2026-05-23T08:39:37.419Z", "count": 2, "totalAvailable": 117, "transactions": [ { "id": "01KQRZXN78ZD6DZ8NM8YC1YSCY", "date": "2026-02-09", "amount": 1800, "currency": "ILS", "description": "מב. הפועלים-י", "category": "BANK_TRANSFER", "accountId": "QUNDT1VOVCNU...", "type": "CHECKING" }, { "id": "01KQRZXN78RHYEC5G5DZ99E7GT", "date": "2026-03-10", "amount": -3236.36, "currency": "ILS", "description": "לאומי מאסטרקרד", "category": "CREDIT_CARD_CHECKING", "accountId": "QUNDT1VOVCNU...", "type": "CHECKING" } ] } ``` ## Errors - 401 Invalid API key: `{"ok":false,"error":"Invalid API key"}` - 401 API token expired: `{"ok":false,"error":"API token expired","code":"api_token_expired","message":"This API token has expired. Create a new token in Moneytor API settings.","renew_url":"https://app.moneytor.co.il/settings#api"}` - 403 Premium subscription required: `{"ok":false,"error":"Premium subscription required"}` - 405 Method not allowed: `{"ok":false,"error":"Method not allowed"}` - 429 API limit reached: `{"ok":false,"error":"API limit reached","limit":"hourly","limit_max":30,"used":31,"resets_at":"2026-05-23T09:00:00.000Z","message":"API limit reached — hourly"}` ## AI-agent friendly The docs are also available as Markdown, llms.txt, and OpenAPI so agents can understand the API without scraping HTML.