Docs

List budgets

GET /api/v1/programmatic/budgets

GET/api/v1/programmatic/budgets
Budgetsv1budgets:read

Returns budgets with status for the requested period date.

Parameters

NameInType Description
period_datequerystringOptional Date used to select each budget period. Defaults to today in the workspace timezone. 2026-07-12
pagequerynumberOptional One-based result page. <page>
limitquerynumberOptional Maximum budgets returned per page. <limit>

Code examples

curl --request GET \
  --url 'https://api.tetri.app/api/v1/programmatic/budgets?period_date=2026-07-12&page=<page>&limit=<limit>' \
  --header 'Authorization: Bearer $TETRI_API_TOKEN'

Responses

200Budgets with status for the selected financial date and pagination metadata.
{
  "data": [
    {
      "type": "budgets",
      "id": "<uuid>",
      "attributes": {
        "name": "Groceries",
        "active": true,
        "period": "monthly",
        "rollover_strategy": "carry",
        "pacing_strategy": "linear",
        "include_recurring_transactions": false,
        "accent_color": "sky",
        "icon": "lucide:shopping-cart",
        "icon_url": "https://cdn.tetri.app/icons/abc.webp",
        "currency_id": "<uuid>",
        "version": 0,
        "currency": {
          "id": "<uuid>",
          "code": "USD",
          "symbol": "$",
          "decimal_places": 2
        },
        "amount": "500.00",
        "base_amount": "500.00",
        "order": 0,
        "created_at": "2026-07-12T12:00:00Z",
        "created_by": {},
        "category_ids": [
          "<uuid>"
        ],
        "categories": [
          {
            "id": "<uuid>",
            "name": "Groceries",
            "icon": "shopping-cart",
            "accent_color": "emerald"
          }
        ],
        "current_period": {}
      }
    }
  ],
  "meta": {
    "pagination": "<string>"
  }
}
400Request parameters or payload failed validation. Inspect `code` and `message`.
{
  "statusCode": 400,
  "code": "PROGRAMMATIC_PAGINATION_MODE_CONFLICT",
  "message": "<string>",
  "error": "Bad Request",
  "request_id": "8cf64dcc-0f73-4f8d-a845-3d80c1040475"
}
401The personal access token is missing, invalid, expired, or revoked.
{
  "statusCode": 400,
  "code": "PROGRAMMATIC_PAGINATION_MODE_CONFLICT",
  "message": "<string>",
  "error": "Bad Request",
  "request_id": "8cf64dcc-0f73-4f8d-a845-3d80c1040475"
}
403The token lacks the required scope or no longer has workspace access.
{
  "statusCode": 400,
  "code": "PROGRAMMATIC_PAGINATION_MODE_CONFLICT",
  "message": "<string>",
  "error": "Bad Request",
  "request_id": "8cf64dcc-0f73-4f8d-a845-3d80c1040475"
}
429The credential exceeded its request rate limit.
{
  "statusCode": 400,
  "code": "PROGRAMMATIC_PAGINATION_MODE_CONFLICT",
  "message": "<string>",
  "error": "Bad Request",
  "request_id": "8cf64dcc-0f73-4f8d-a845-3d80c1040475"
}