Skip to main content

List All Skill Categories

Authentication Required: This endpoint requires a valid JWT token.
GET /api/me/skill-categories
Retrieve all skill categories with their associated skills for the authenticated user.

Response

status
string
Response status (“success” or “error”)
message
string
Response message
data
array
Array of skill categories
id
long
Skill category ID
name
string
Category name
sortOrder
integer
Display order for sorting
skills
array
Array of skills in this category
id
long
Skill ID
name
string
Skill name
globalSkillId
long
Reference to global skill database
level
integer
Proficiency level (0-100)
icon
string
Icon identifier for the skill
curl -X GET https://api.portfoliohub.com/api/me/skill-categories \
  -H "Authorization: Bearer YOUR_JWT_TOKEN"

Get Skill Category by ID

Authentication Required: This endpoint requires a valid JWT token.
GET /api/me/skill-categories/{categoryId}
Retrieve a specific skill category with its skills.

Path Parameters

categoryId
long
required
Skill category ID

Response

status
string
Response status (“success” or “error”)
message
string
Response message
data
object
Skill category details (same structure as list items)
curl -X GET https://api.portfoliohub.com/api/me/skill-categories/1 \
  -H "Authorization: Bearer YOUR_JWT_TOKEN"

Search Global Skills

Authentication Required: This endpoint requires a valid JWT token.
GET /api/me/skill-categories/search?query={searchTerm}
Search for skills in the global skills database.

Query Parameters

query
string
required
Search term for finding skills

Response

status
string
Response status (“success” or “error”)
message
string
Response message
data
array
Array of matching global skills
curl -X GET "https://api.portfoliohub.com/api/me/skill-categories/search?query=java" \
  -H "Authorization: Bearer YOUR_JWT_TOKEN"

Batch Create Skill Categories

Authentication Required: This endpoint requires a valid JWT token.
POST /api/me/skill-categories/batch
Create multiple skill categories at once.

Request Body

categories
array
required
Array of category creation requests
name
string
required
Category name (max 80 characters)
sortOrder
integer
required
Display order for sorting

Response

status
string
Response status (“success” or “error”)
message
string
Response message
data
array
Array of created skill categories
curl -X POST https://api.portfoliohub.com/api/me/skill-categories/batch \
  -H "Authorization: Bearer YOUR_JWT_TOKEN" \
  -H "Content-Type: application/json" \
  -d '[
    {
      "name": "Programming Languages",
      "sortOrder": 1
    },
    {
      "name": "Frameworks",
      "sortOrder": 2
    }
  ]'

Batch Update Skill Categories

Authentication Required: This endpoint requires a valid JWT token.
PUT /api/me/skill-categories/batch
Update multiple skill categories at once.

Request Body

categories
array
required
Array of category update requests
id
long
required
Category ID to update
name
string
required
Category name (max 80 characters)
sortOrder
integer
required
Display order for sorting

Response

status
string
Response status (“success” or “error”)
message
string
Response message
data
array
Array of updated skill categories
curl -X PUT https://api.portfoliohub.com/api/me/skill-categories/batch \
  -H "Authorization: Bearer YOUR_JWT_TOKEN" \
  -H "Content-Type: application/json" \
  -d '[
    {
      "id": 1,
      "name": "Core Programming Languages",
      "sortOrder": 1
    },
    {
      "id": 2,
      "name": "Web Frameworks",
      "sortOrder": 2
    }
  ]'

Batch Delete Skill Categories

Authentication Required: This endpoint requires a valid JWT token.
DELETE /api/me/skill-categories/batch
Delete multiple skill categories at once.

Request Body

ids
array
required
Array of category IDs to delete

Response

status
string
Response status (“success” or “error”)
message
string
Response message
data
null
No data returned on successful deletion
curl -X DELETE https://api.portfoliohub.com/api/me/skill-categories/batch \
  -H "Authorization: Bearer YOUR_JWT_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "ids": [1, 2, 3]
  }'

Get Skills for Category

Authentication Required: This endpoint requires a valid JWT token.
GET /api/me/skill-categories/{categoryId}/skills
Retrieve all skills within a specific category.

Path Parameters

categoryId
long
required
Skill category ID

Response

status
string
Response status (“success” or “error”)
message
string
Response message
data
array
Array of skills in the category
curl -X GET https://api.portfoliohub.com/api/me/skill-categories/1/skills \
  -H "Authorization: Bearer YOUR_JWT_TOKEN"

Batch Create Skills

Authentication Required: This endpoint requires a valid JWT token.
POST /api/me/skill-categories/{categoryId}/skills/batch
Create multiple skills within a category at once.

Path Parameters

categoryId
long
required
Skill category ID to add skills to

Request Body

skills
array
required
Array of skill creation requests
name
string
required
Skill name (max 80 characters)
level
integer
required
Proficiency level (0-100)
icon
string
Icon identifier (max 255 characters)
sortOrder
integer
required
Display order for sorting

Response

status
string
Response status (“success” or “error”)
message
string
Response message
data
array
Array of created skills
curl -X POST https://api.portfoliohub.com/api/me/skill-categories/1/skills/batch \
  -H "Authorization: Bearer YOUR_JWT_TOKEN" \
  -H "Content-Type: application/json" \
  -d '[
    {
      "name": "Java",
      "level": 90,
      "icon": "java-icon",
      "sortOrder": 1
    },
    {
      "name": "Python",
      "level": 85,
      "icon": "python-icon",
      "sortOrder": 2
    }
  ]'

Batch Update Skills

Authentication Required: This endpoint requires a valid JWT token.
PUT /api/me/skill-categories/{categoryId}/skills/batch
Update multiple skills within a category at once.

Path Parameters

categoryId
long
required
Skill category ID containing the skills

Request Body

skills
array
required
Array of skill update requests
id
long
required
Skill ID to update
name
string
required
Skill name (max 80 characters)
level
integer
required
Proficiency level (0-100)
icon
string
Icon identifier (max 255 characters)
sortOrder
integer
required
Display order for sorting

Response

status
string
Response status (“success” or “error”)
message
string
Response message
data
array
Array of updated skills
curl -X PUT https://api.portfoliohub.com/api/me/skill-categories/1/skills/batch \
  -H "Authorization: Bearer YOUR_JWT_TOKEN" \
  -H "Content-Type: application/json" \
  -d '[
    {
      "id": 10,
      "name": "Java",
      "level": 95,
      "icon": "java-icon-v2",
      "sortOrder": 1
    },
    {
      "id": 11,
      "name": "Python",
      "level": 90,
      "icon": "python-icon-v2",
      "sortOrder": 2
    }
  ]'

Batch Delete Skills

Authentication Required: This endpoint requires a valid JWT token.
DELETE /api/me/skill-categories/{categoryId}/skills/batch
Delete multiple skills from a category at once.

Path Parameters

categoryId
long
required
Skill category ID containing the skills

Request Body

ids
array
required
Array of skill IDs to delete

Response

status
string
Response status (“success” or “error”)
message
string
Response message
data
null
No data returned on successful deletion
curl -X DELETE https://api.portfoliohub.com/api/me/skill-categories/1/skills/batch \
  -H "Authorization: Bearer YOUR_JWT_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "ids": [10, 11, 12]
  }'

Build docs developers (and LLMs) love