Create default categories for the user
POST
/categories/seed-defaults
const url = 'http://localhost:8000/api/v1/categories/seed-defaults';const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
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/categories/seed-defaults \ --header 'Authorization: Bearer <token>'Creates a set of predefined income and expense categories. Skips categories that already exist.
Authorizations
Section titled “Authorizations ”Responses
Section titled “ Responses ”Default categories created successfully
Media type application/json
object
message
string
data
object
created
integer
skipped
integer
categories
Array<object>
object
id
ID of the category
integer
name
Name of the category
string
description
Description of the category
string
type
Type of the category (income or expense)
string
icon
Category icon
object
id
ID of the icon
integer
path
Image of the icon
string
type
Type of icon( image or icon or emoji)
string
sync_state
Sync state
object
id
ID of the sync state
integer
syncable_id
ID of the syncable
integer
client_generated_id
ID from the client
integer
syncable_type
Syncable type
string
source
string
last_synced_at
Date last synced
string format: date-time
created_at
Date created
string format: date-time
deleted_at
Date deleted
string format: date-time
Example generated
{ "message": "example", "data": { "created": 1, "skipped": 1, "categories": [ { "id": 1, "name": "example", "description": "example", "type": "example", "icon": { "id": 1, "path": "example", "type": "example" }, "sync_state": { "id": 1, "syncable_id": 1, "client_generated_id": 1, "syncable_type": "example", "source": "example", "last_synced_at": "2026-04-15T12:00:00Z", "created_at": "2026-04-15T12:00:00Z", "deleted_at": "2026-04-15T12:00:00Z" } } ] }}Internal server error