Create a new budget
POST
/budgets
const url = 'http://localhost:8000/api/v1/budgets';const options = { method: 'POST', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"client_id":"example","name":"example","description":"example","amount":1,"currency":"USD","period_type":"weekly","start_date":"2026-04-15","end_date":"2026-04-15","rollover_enabled":true,"threshold_percent":1,"forecast_alerts_enabled":true,"is_active":true,"targets":[{"type":"category","id":1}],"owner":{"type":"user","id":1},"created_at":"2026-04-15T12:00:00Z"}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url http://localhost:8000/api/v1/budgets \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "client_id": "example", "name": "example", "description": "example", "amount": 1, "currency": "USD", "period_type": "weekly", "start_date": "2026-04-15", "end_date": "2026-04-15", "rollover_enabled": true, "threshold_percent": 1, "forecast_alerts_enabled": true, "is_active": true, "targets": [ { "type": "category", "id": 1 } ], "owner": { "type": "user", "id": 1 }, "created_at": "2026-04-15T12:00:00Z" }'Authorizations
Section titled “Authorizations ”Request Body required
Section titled “Request Body required ” Media type application/json
object
client_id
string
name
required
string
description
string
amount
required
number format: float
currency
required
string
Example
USD period_type
required
string
start_date
required
string format: date
end_date
string format: date
rollover_enabled
boolean
threshold_percent
integer
forecast_alerts_enabled
boolean
is_active
boolean
targets
Array<object>
object
type
string
id
integer
owner
object
type
string
id
integer
created_at
string format: date-time
Responses
Section titled “ Responses ”Budget created
Media type application/json
object
id
integer
owner_id
integer
owner_type
string
name
string
slug
string
description
string
amount
number format: float
currency
string
period_type
string
start_date
string format: date
end_date
string format: date
rollover_enabled
boolean
threshold_percent
integer
forecast_alerts_enabled
boolean
is_active
boolean
targets
Array<object>
object
type
string
id
integer
client_generated_id
string
name
string
progress
object
period_start
string format: date
period_end
string format: date
limit
number format: float
gross_spent
number format: float
refunds
number format: float
net_spent
number format: float
rollover_in
number format: float
effective_limit
number format: float
remaining
number format: float
percent_used
integer
projected_spend
number format: float
status
string
client_generated_id
string
last_synced_at
string format: date-time
created_at
string format: date-time
updated_at
string format: date-time
deleted_at
string format: date-time
Example
{ "owner_type": "App\\Models\\User", "currency": "USD", "period_type": "weekly", "threshold_percent": 80, "targets": [ { "type": "category" } ], "progress": { "status": "on_track" }}Forbidden owner
Validation error