Appearance
STEP 2 — CONTENT CATEGORY
6. GET /onboarding/categories
Get all available content categories and their style sub-options.
Request
http
GET /onboarding/categories
Authorization: Bearer <token>Response 200 OK
json
{
"status": "success",
"data": {
"categories": [
{
"id": "comedy",
"label": "Comedy",
"emoji": "😂",
"styles": [
{ "id": "stand_up", "label": "Stand-up" },
{ "id": "sketch", "label": "Sketch" },
{ "id": "improv", "label": "Improv" },
{ "id": "roasts", "label": "Roasts" },
{ "id": "satire", "label": "Satire" },
{ "id": "parody", "label": "Parody" }
]
},
{
"id": "education",
"label": "Education",
"emoji": "📚",
"styles": [
{ "id": "tutorials", "label": "Tutorials" },
{ "id": "explainers", "label": "Explainers" },
{ "id": "courses", "label": "Courses" },
{ "id": "reviews", "label": "Reviews" }
]
},
{
"id": "music",
"label": "Music",
"emoji": "🎵",
"styles": [
{ "id": "original", "label": "Original" },
{ "id": "covers", "label": "Covers" },
{ "id": "live", "label": "Live" },
{ "id": "behind_the_scenes", "label": "Behind the Scenes" }
]
},
{
"id": "gaming",
"label": "Gaming",
"emoji": "🎮",
"styles": [
{ "id": "gameplay", "label": "Gameplay" },
{ "id": "reviews", "label": "Reviews" },
{ "id": "esports", "label": "Esports" },
{ "id": "streaming", "label": "Streaming" }
]
},
{
"id": "lifestyle",
"label": "Lifestyle",
"emoji": "✨",
"styles": [
{ "id": "travel", "label": "Travel" },
{ "id": "food", "label": "Food" },
{ "id": "vlogs", "label": "Vlogs" },
{ "id": "home", "label": "Home" }
]
}
]
}
}7. POST /onboarding/category
Save the creator's selected category and optional style. Requires authentication.
Request
http
POST /onboarding/category
Authorization: Bearer <token>
Content-Type: application/jsonRequest Body
json
{
"category_id": "comedy",
"style_id": "stand_up"
}Request Body Parameters
| Field | Type | Required | Description |
|---|---|---|---|
| category_id | string | Yes | Selected category ID |
| style_id | string | No | Selected style sub-option |
Response 200 OK
json
{
"status": "success",
"message": "Category saved",
"data": {
"category_id": "comedy",
"category_label": "Comedy",
"style_id": "stand_up",
"style_label": "Stand-up",
"onboarding": {
"current_step": 3,
"total_steps": 6,
"percent_complete": 20
}
}
}