{
  "openapi": "3.1.0",
  "info": {
    "title": "Moneytor API",
    "version": "1.0.0",
    "description": "Read-only API for Moneytor asset worth, enriched assets, and cashflow transactions. This copy is published at https://moneytor.ai/openapi.json for discoverability; the canonical spec is https://app.moneytor.co.il/openapi.json. Get an API key inside the Moneytor app (Premium): https://app.moneytor.co.il",
    "contact": {
      "name": "Moneytor support",
      "email": "support@moneytor.co.il",
      "url": "https://moneytor.ai/contact"
    }
  },
  "servers": [
    {
      "url": "https://app.moneytor.co.il",
      "description": "Moneytor app (production)"
    }
  ],
  "components": {
    "securitySchemes": {
      "bearerAuth": {
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "JWT",
        "description": "JWT API tokens expire after 6 months. Renew tokens in Moneytor API settings before expiry to keep integrations running."
      }
    },
    "schemas": {
      "Error": {
        "type": "object",
        "required": [
          "ok",
          "error"
        ],
        "properties": {
          "ok": {
            "type": "boolean",
            "const": false
          },
          "error": {
            "type": "string",
            "description": "Human-readable error message"
          }
        }
      }
    }
  },
  "security": [
    {
      "bearerAuth": []
    }
  ],
  "paths": {
    "/api/v1/assetWorth": {
      "get": {
        "summary": "Dashboard-style asset worth and net worth",
        "description": "Returns a summarized financial snapshot: assets, debts, net worth, and a compact product summary.",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "example": {
                  "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
                    }
                  ]
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean"
                    },
                    "asOf": {
                      "type": "string"
                    },
                    "baseCurrency": {
                      "type": "string"
                    },
                    "totalBalances": {
                      "type": "object",
                      "properties": {
                        "assets": {
                          "type": "number"
                        },
                        "debts": {
                          "type": "number"
                        },
                        "bankAssets": {
                          "type": "number"
                        },
                        "pensionAssets": {
                          "type": "number"
                        },
                        "shareAssets": {
                          "type": "number"
                        },
                        "cryptoAssets": {
                          "type": "number"
                        },
                        "lastUpdate": {
                          "type": "object",
                          "properties": {
                            "bankAssets": {
                              "type": "string"
                            },
                            "pensionAssets": {
                              "type": "string"
                            }
                          },
                          "additionalProperties": true
                        }
                      },
                      "additionalProperties": true
                    },
                    "netWorth": {
                      "type": "number"
                    },
                    "productsSummary": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "form": {
                            "type": "string"
                          },
                          "name": {
                            "type": "string"
                          },
                          "balanceInBase": {
                            "type": "number"
                          }
                        },
                        "additionalProperties": true
                      }
                    }
                  },
                  "additionalProperties": true
                }
              }
            }
          },
          "401": {
            "description": "Missing, invalid, or expired API token Send a valid Bearer token; renew expired tokens in Moneytor API settings.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "example": {
                  "ok": false,
                  "error": "Missing, invalid, or expired API token"
                }
              }
            }
          },
          "403": {
            "description": "Premium subscription required API access requires a Premium subscription.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "example": {
                  "ok": false,
                  "error": "Premium subscription required"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit reached Rate limit reached; retry later.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "example": {
                  "ok": false,
                  "error": "Rate limit reached"
                }
              }
            }
          }
        },
        "operationId": "getAssetWorth",
        "tags": [
          "read-only"
        ]
      }
    },
    "/api/v1/assets": {
      "get": {
        "summary": "Full enriched assets list",
        "description": "Returns every financial product with source fields, base-currency calculations, and normalized integration fields.",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "example": {
                  "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
                    }
                  ]
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean"
                    },
                    "asOf": {
                      "type": "string"
                    },
                    "baseCurrency": {
                      "type": "string"
                    },
                    "count": {
                      "type": "number"
                    },
                    "assets": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "productId": {
                            "type": "number"
                          },
                          "form": {
                            "type": "string"
                          },
                          "name": {
                            "type": "string"
                          },
                          "liquidity": {
                            "type": "boolean"
                          },
                          "ownership": {
                            "type": "number"
                          },
                          "currency": {
                            "type": "object",
                            "properties": {
                              "value": {
                                "type": "string"
                              },
                              "name": {
                                "type": "string"
                              },
                              "sign": {
                                "type": "string"
                              },
                              "rate": {
                                "type": "number"
                              }
                            },
                            "additionalProperties": true
                          },
                          "balanceInBaseCurrency": {
                            "type": "number"
                          },
                          "partOfPortfolio": {
                            "type": "number"
                          },
                          "updatedAt": {
                            "type": "string"
                          }
                        },
                        "additionalProperties": true
                      }
                    }
                  },
                  "additionalProperties": true
                }
              }
            }
          },
          "401": {
            "description": "Missing, invalid, or expired API token Send a valid Bearer token; renew expired tokens in Moneytor API settings.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "example": {
                  "ok": false,
                  "error": "Missing, invalid, or expired API token"
                }
              }
            }
          },
          "403": {
            "description": "Premium subscription required API access requires a Premium subscription.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "example": {
                  "ok": false,
                  "error": "Premium subscription required"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit reached Rate limit reached; retry later.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "example": {
                  "ok": false,
                  "error": "Rate limit reached"
                }
              }
            }
          }
        },
        "operationId": "getAssets",
        "tags": [
          "read-only"
        ]
      }
    },
    "/api/v1/transactions": {
      "get": {
        "summary": "Cashflow transactions",
        "description": "Returns Open Finance and manual cashflow transactions with date filtering and a limit.",
        "parameters": [
          {
            "name": "from",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Inclusive start date. Invalid values are treated as missing."
          },
          {
            "name": "to",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Inclusive end date. Invalid values are treated as missing."
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            },
            "description": "Number of transactions to return per page. Clamped to 1-2000."
          },
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            },
            "description": "Number of transactions to skip from the start of the (newest-first) sorted results. Use the previous response's nextOffset to page through and retrieve every transaction."
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "example": {
                  "ok": true,
                  "asOf": "2026-05-23T08:39:37.419Z",
                  "count": 2,
                  "totalAvailable": 117,
                  "offset": 0,
                  "limit": 2,
                  "hasMore": true,
                  "nextOffset": 2,
                  "transactions": [
                    {
                      "id": "01KQRZXN78ZD6DZ8NM8YC1YSCY",
                      "date": "2026-02-09",
                      "amount": 1800,
                      "currency": "ILS",
                      "description": "מב. הפועלים-י",
                      "extra_info": "העברה מחשבון 12345",
                      "category": "BANK_TRANSFER",
                      "accountId": "QUNDT1VOVCNU...",
                      "accountNumber": "123456xxxxxx7890",
                      "type": "CHECKING"
                    },
                    {
                      "id": "01KQRZXN78RHYEC5G5DZ99E7GT",
                      "date": "2026-03-10",
                      "amount": -3236.36,
                      "currency": "ILS",
                      "description": "לאומי מאסטרקרד",
                      "extra_info": null,
                      "category": "CREDIT_CARD_CHECKING",
                      "accountId": "QUNDT1VOVCNU...",
                      "accountNumber": "547707xxxxxx3027",
                      "type": "CHECKING"
                    }
                  ]
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean"
                    },
                    "asOf": {
                      "type": "string"
                    },
                    "count": {
                      "type": "number"
                    },
                    "totalAvailable": {
                      "type": "number"
                    },
                    "offset": {
                      "type": "number"
                    },
                    "limit": {
                      "type": "number"
                    },
                    "hasMore": {
                      "type": "boolean"
                    },
                    "nextOffset": {
                      "type": "number"
                    },
                    "transactions": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "date": {
                            "type": "string"
                          },
                          "amount": {
                            "type": "number"
                          },
                          "currency": {
                            "type": "string"
                          },
                          "description": {
                            "type": "string"
                          },
                          "extra_info": {
                            "type": "string"
                          },
                          "category": {
                            "type": "string"
                          },
                          "accountId": {
                            "type": "string"
                          },
                          "accountNumber": {
                            "type": "string"
                          },
                          "type": {
                            "type": "string"
                          }
                        },
                        "additionalProperties": true
                      }
                    }
                  },
                  "additionalProperties": true
                }
              }
            }
          },
          "401": {
            "description": "Missing, invalid, or expired API token Send a valid Bearer token; renew expired tokens in Moneytor API settings.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "example": {
                  "ok": false,
                  "error": "Missing, invalid, or expired API token"
                }
              }
            }
          },
          "403": {
            "description": "Premium subscription required API access requires a Premium subscription.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "example": {
                  "ok": false,
                  "error": "Premium subscription required"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit reached Rate limit reached; retry later.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "example": {
                  "ok": false,
                  "error": "Rate limit reached"
                }
              }
            }
          }
        },
        "operationId": "getTransactions",
        "tags": [
          "read-only"
        ]
      }
    }
  },
  "externalDocs": {
    "description": "Human-readable API docs",
    "url": "https://app.moneytor.co.il/docs"
  },
  "tags": [
    {
      "name": "read-only",
      "description": "Read-only access to the authenticated user's own financial data."
    }
  ]
}
