{
  "service": "ynab",
  "displayName": "YNAB",
  "categories": [
    "Finance"
  ],
  "authTypes": [
    "api_key"
  ],
  "auth": [
    {
      "type": "api_key",
      "label": "Personal Access Token",
      "placeholder": "YNAB personal access token",
      "description": "YNAB personal access token sent with the Authorization Bearer header. Create one from Developer Settings: https://app.ynab.com/settings/developer.",
      "extraFields": []
    }
  ],
  "homepageUrl": "https://www.ynab.com",
  "actions": [
    {
      "id": "ynab.get_account",
      "service": "ynab",
      "name": "get_account",
      "description": "Retrieve a single YNAB account.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "plan_id": {
            "type": "string",
            "minLength": 1,
            "description": "YNAB plan ID. Use \"last-used\" for the last used plan, or \"default\" when default plan selection is enabled."
          },
          "account_id": {
            "type": "string",
            "minLength": 1,
            "description": "YNAB account ID."
          }
        },
        "additionalProperties": false,
        "description": "Input parameters for retrieving a YNAB account."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "account": {
                "type": "object",
                "properties": {},
                "additionalProperties": true,
                "description": "YNAB object returned by the API."
              }
            },
            "additionalProperties": true,
            "description": "YNAB response data."
          }
        },
        "additionalProperties": false,
        "description": "YNAB account response."
      }
    },
    {
      "id": "ynab.get_category",
      "service": "ynab",
      "name": "get_category",
      "description": "Retrieve a single YNAB category.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "plan_id": {
            "type": "string",
            "minLength": 1,
            "description": "YNAB plan ID. Use \"last-used\" for the last used plan, or \"default\" when default plan selection is enabled."
          },
          "category_id": {
            "type": "string",
            "minLength": 1,
            "description": "YNAB category ID."
          }
        },
        "additionalProperties": false,
        "description": "Input parameters for retrieving a YNAB category."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "category": {
                "type": "object",
                "properties": {},
                "additionalProperties": true,
                "description": "YNAB object returned by the API."
              }
            },
            "additionalProperties": true,
            "description": "YNAB response data."
          }
        },
        "additionalProperties": false,
        "description": "YNAB category response."
      }
    },
    {
      "id": "ynab.get_month",
      "service": "ynab",
      "name": "get_month",
      "description": "Retrieve a single YNAB plan month.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "plan_id": {
            "type": "string",
            "minLength": 1,
            "description": "YNAB plan ID. Use \"last-used\" for the last used plan, or \"default\" when default plan selection is enabled."
          },
          "month": {
            "type": "string",
            "minLength": 1,
            "description": "Plan month in ISO date format, or \"current\" for the current month."
          }
        },
        "additionalProperties": false,
        "description": "Input parameters for retrieving a YNAB month."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "month": {
                "type": "object",
                "properties": {},
                "additionalProperties": true,
                "description": "YNAB object returned by the API."
              }
            },
            "additionalProperties": true,
            "description": "YNAB response data."
          }
        },
        "additionalProperties": false,
        "description": "YNAB month response."
      }
    },
    {
      "id": "ynab.get_month_category",
      "service": "ynab",
      "name": "get_month_category",
      "description": "Retrieve a YNAB category for a specific plan month.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "plan_id": {
            "type": "string",
            "minLength": 1,
            "description": "YNAB plan ID. Use \"last-used\" for the last used plan, or \"default\" when default plan selection is enabled."
          },
          "month": {
            "type": "string",
            "minLength": 1,
            "description": "Plan month in ISO date format, or \"current\" for the current month."
          },
          "category_id": {
            "type": "string",
            "minLength": 1,
            "description": "YNAB category ID."
          }
        },
        "additionalProperties": false,
        "description": "Input parameters for retrieving a YNAB category in a specific month."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "category": {
                "type": "object",
                "properties": {},
                "additionalProperties": true,
                "description": "YNAB object returned by the API."
              }
            },
            "additionalProperties": true,
            "description": "YNAB response data."
          }
        },
        "additionalProperties": false,
        "description": "YNAB category response."
      }
    },
    {
      "id": "ynab.get_payee",
      "service": "ynab",
      "name": "get_payee",
      "description": "Retrieve a single YNAB payee.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "plan_id": {
            "type": "string",
            "minLength": 1,
            "description": "YNAB plan ID. Use \"last-used\" for the last used plan, or \"default\" when default plan selection is enabled."
          },
          "payee_id": {
            "type": "string",
            "minLength": 1,
            "description": "YNAB payee ID."
          }
        },
        "additionalProperties": false,
        "description": "Input parameters for retrieving a YNAB payee."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "payee": {
                "type": "object",
                "properties": {},
                "additionalProperties": true,
                "description": "YNAB object returned by the API."
              }
            },
            "additionalProperties": true,
            "description": "YNAB response data."
          }
        },
        "additionalProperties": false,
        "description": "YNAB payee response."
      }
    },
    {
      "id": "ynab.get_plan",
      "service": "ynab",
      "name": "get_plan",
      "description": "Retrieve a single YNAB plan with related entities.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "plan_id": {
            "type": "string",
            "minLength": 1,
            "description": "YNAB plan ID. Use \"last-used\" for the last used plan, or \"default\" when default plan selection is enabled."
          },
          "last_knowledge_of_server": {
            "type": "integer",
            "description": "Starting server knowledge value. When provided, YNAB returns only entities changed since this value."
          }
        },
        "additionalProperties": false,
        "required": [
          "plan_id"
        ],
        "description": "Input parameters for retrieving a YNAB resource with optional delta support."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "plan": {
                "type": "object",
                "properties": {},
                "additionalProperties": true,
                "description": "YNAB object returned by the API."
              }
            },
            "additionalProperties": true,
            "description": "YNAB response data."
          }
        },
        "additionalProperties": false,
        "description": "YNAB plan response."
      }
    },
    {
      "id": "ynab.get_plan_settings",
      "service": "ynab",
      "name": "get_plan_settings",
      "description": "Retrieve settings for a YNAB plan.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "plan_id": {
            "type": "string",
            "minLength": 1,
            "description": "YNAB plan ID. Use \"last-used\" for the last used plan, or \"default\" when default plan selection is enabled."
          }
        },
        "additionalProperties": false,
        "description": "Input parameters for retrieving a YNAB plan resource."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "settings": {
                "type": "object",
                "properties": {},
                "additionalProperties": true,
                "description": "YNAB object returned by the API."
              }
            },
            "additionalProperties": true,
            "description": "YNAB response data."
          }
        },
        "additionalProperties": false,
        "description": "YNAB plan settings response."
      }
    },
    {
      "id": "ynab.get_transaction",
      "service": "ynab",
      "name": "get_transaction",
      "description": "Retrieve a single YNAB transaction.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "plan_id": {
            "type": "string",
            "minLength": 1,
            "description": "YNAB plan ID. Use \"last-used\" for the last used plan, or \"default\" when default plan selection is enabled."
          },
          "transaction_id": {
            "type": "string",
            "minLength": 1,
            "description": "YNAB transaction ID."
          }
        },
        "additionalProperties": false,
        "description": "Input parameters for retrieving a YNAB transaction."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "transaction": {
                "type": "object",
                "properties": {},
                "additionalProperties": true,
                "description": "YNAB object returned by the API."
              }
            },
            "additionalProperties": true,
            "description": "YNAB response data."
          }
        },
        "additionalProperties": false,
        "description": "YNAB transaction response."
      }
    },
    {
      "id": "ynab.get_user",
      "service": "ynab",
      "name": "get_user",
      "description": "Retrieve the authenticated YNAB user.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false,
        "description": "Input parameters for the YNAB action."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "user": {
                "type": "object",
                "properties": {},
                "additionalProperties": true,
                "description": "YNAB object returned by the API."
              }
            },
            "additionalProperties": true,
            "description": "YNAB response data."
          }
        },
        "additionalProperties": false,
        "description": "YNAB authenticated user response."
      }
    },
    {
      "id": "ynab.list_accounts",
      "service": "ynab",
      "name": "list_accounts",
      "description": "List accounts for a YNAB plan.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "plan_id": {
            "type": "string",
            "minLength": 1,
            "description": "YNAB plan ID. Use \"last-used\" for the last used plan, or \"default\" when default plan selection is enabled."
          },
          "last_knowledge_of_server": {
            "type": "integer",
            "description": "Starting server knowledge value. When provided, YNAB returns only entities changed since this value."
          }
        },
        "additionalProperties": false,
        "required": [
          "plan_id"
        ],
        "description": "Input parameters for retrieving a YNAB resource with optional delta support."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "accounts": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": true,
                  "description": "YNAB object returned by the API."
                },
                "description": "Accounts returned by YNAB."
              }
            },
            "additionalProperties": true,
            "description": "YNAB response data."
          }
        },
        "additionalProperties": false,
        "description": "YNAB accounts response."
      }
    },
    {
      "id": "ynab.list_categories",
      "service": "ynab",
      "name": "list_categories",
      "description": "List categories grouped by category group for a YNAB plan.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "plan_id": {
            "type": "string",
            "minLength": 1,
            "description": "YNAB plan ID. Use \"last-used\" for the last used plan, or \"default\" when default plan selection is enabled."
          },
          "last_knowledge_of_server": {
            "type": "integer",
            "description": "Starting server knowledge value. When provided, YNAB returns only entities changed since this value."
          }
        },
        "additionalProperties": false,
        "required": [
          "plan_id"
        ],
        "description": "Input parameters for retrieving a YNAB resource with optional delta support."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "category_groups": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": true,
                  "description": "YNAB object returned by the API."
                },
                "description": "Category groups returned by YNAB."
              }
            },
            "additionalProperties": true,
            "description": "YNAB response data."
          }
        },
        "additionalProperties": false,
        "description": "YNAB categories response."
      }
    },
    {
      "id": "ynab.list_months",
      "service": "ynab",
      "name": "list_months",
      "description": "List months for a YNAB plan.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "plan_id": {
            "type": "string",
            "minLength": 1,
            "description": "YNAB plan ID. Use \"last-used\" for the last used plan, or \"default\" when default plan selection is enabled."
          },
          "last_knowledge_of_server": {
            "type": "integer",
            "description": "Starting server knowledge value. When provided, YNAB returns only entities changed since this value."
          }
        },
        "additionalProperties": false,
        "required": [
          "plan_id"
        ],
        "description": "Input parameters for retrieving a YNAB resource with optional delta support."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "months": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": true,
                  "description": "YNAB object returned by the API."
                },
                "description": "Months returned by YNAB."
              }
            },
            "additionalProperties": true,
            "description": "YNAB response data."
          }
        },
        "additionalProperties": false,
        "description": "YNAB months response."
      }
    },
    {
      "id": "ynab.list_payees",
      "service": "ynab",
      "name": "list_payees",
      "description": "List payees for a YNAB plan.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "plan_id": {
            "type": "string",
            "minLength": 1,
            "description": "YNAB plan ID. Use \"last-used\" for the last used plan, or \"default\" when default plan selection is enabled."
          },
          "last_knowledge_of_server": {
            "type": "integer",
            "description": "Starting server knowledge value. When provided, YNAB returns only entities changed since this value."
          }
        },
        "additionalProperties": false,
        "required": [
          "plan_id"
        ],
        "description": "Input parameters for retrieving a YNAB resource with optional delta support."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "payees": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": true,
                  "description": "YNAB object returned by the API."
                },
                "description": "Payees returned by YNAB."
              }
            },
            "additionalProperties": true,
            "description": "YNAB response data."
          }
        },
        "additionalProperties": false,
        "description": "YNAB payees response."
      }
    },
    {
      "id": "ynab.list_plans",
      "service": "ynab",
      "name": "list_plans",
      "description": "List YNAB plans with summary information.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "include_accounts": {
            "type": "boolean",
            "description": "Whether to include plan accounts in the response."
          }
        },
        "additionalProperties": false,
        "description": "Input parameters for listing YNAB plans."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "plans": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": true,
                  "description": "YNAB object returned by the API."
                },
                "description": "Plans returned by YNAB."
              }
            },
            "additionalProperties": true,
            "description": "YNAB response data."
          }
        },
        "additionalProperties": false,
        "description": "YNAB plans response."
      }
    },
    {
      "id": "ynab.list_transactions",
      "service": "ynab",
      "name": "list_transactions",
      "description": "List YNAB plan transactions.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "plan_id": {
            "type": "string",
            "minLength": 1,
            "description": "YNAB plan ID. Use \"last-used\" for the last used plan, or \"default\" when default plan selection is enabled."
          },
          "since_date": {
            "type": "string",
            "description": "Only include transactions on or after this ISO date.",
            "format": "date"
          },
          "until_date": {
            "type": "string",
            "description": "Only include transactions on or before this ISO date.",
            "format": "date"
          },
          "type": {
            "type": "string",
            "enum": [
              "uncategorized",
              "unapproved"
            ],
            "description": "Optional YNAB transaction filter."
          },
          "last_knowledge_of_server": {
            "type": "integer",
            "description": "Starting server knowledge value. When provided, YNAB returns only entities changed since this value."
          }
        },
        "additionalProperties": false,
        "required": [
          "plan_id"
        ],
        "description": "Input parameters for listing YNAB transactions."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "transactions": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": true,
                  "description": "YNAB object returned by the API."
                },
                "description": "Transactions returned by YNAB."
              }
            },
            "additionalProperties": true,
            "description": "YNAB response data."
          }
        },
        "additionalProperties": false,
        "description": "YNAB transactions response."
      }
    }
  ]
}
