Skip to content

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/json

Request Body

json
{
  "category_id": "comedy",
  "style_id": "stand_up"
}

Request Body Parameters

FieldTypeRequiredDescription
category_idstringYesSelected category ID
style_idstringNoSelected 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
    }
  }
}