All endpoints in this guide require authentication. See the Authentication Guide for details on obtaining and using JWT tokens.
Profile Management
Your profile is the core of your portfolio, containing personal information and contact details.Get My Profile
Retrieve your current profile information:Update Profile
Update your profile information using the endpoint fromMeController.java:40-51:
ProfileUpdateRequest.java):
fullName: Required, max 120 charactersheadline: Required, max 160 charactersbio: Required, max 5000 characterscontactEmail: Required, valid email format, max 160 characterslocation: Optional, max 100 characters
Update Contact Email
Update only the contact email separately:Experience Management
Manage your work experience with full CRUD operations. SeeExperienceController.java for implementation.
List All Experiences
Get Single Experience
Create Experience
Add a new work experience entry:ExperienceCreateRequest.java):
company: Required, max 150 charactersrole: Required, max 150 characterslocation: Optional, max 100 charactersstartDate: Required, ISO date formatendDate: Optional, ISO date formatcurrent: Required booleandescription: Optional, max 65535 characters
Update Experience
- PUT with ID in path
- PUT with ID in body
Delete Experience
Education Management
Manage your educational background. Implementation inEducationController.java.
List All Education
Create Education
EducationCreateRequest.java):
institution: Required, max 150 charactersdegree: Required, max 150 charactersfield: Optional, max 150 charactersstartDate: Required, ISO date formatendDate: Optional, ISO date formatdescription: Optional, max 65535 characters
Update Education
Delete Education
Project Management
Showcase your projects with detailed information. SeeProjectMeController.java for implementation.
List All Projects
Get Single Project
Create Project
ProjectCreateRequest.java):
title: Required, max 140 characterssummary: Required, max 280 charactersdescription: Optional, max 65535 charactersrepoUrl: Optional, max 512 charactersliveUrl: Optional, max 512 characterscoverImage: Optional, max 512 charactersstartDate: Optional, ISO date formatendDate: Optional, ISO date formatfeatured: Required booleansortOrder: Required integer
Update Project
Delete Project
Associate Skills to Project
Link existing skills to a project fromProjectMeController.java:83-90:
Skills Management
Skills are organized into categories. Each category can contain multiple skills. SeeSkillMeController.java for full implementation.
List All Skill Categories
Get Single Category
Batch Create Skill Categories
Create multiple categories at once:Batch Update Skill Categories
Batch Delete Skill Categories
Get Skills for Category
Batch Create Skills
Add multiple skills to a category:SkillCreateRequest.java):
name: Required, max 80 characterslevel: Required, integer between 0-100icon: Optional, max 255 characterssortOrder: Required integer
Batch Update Skills
Batch Delete Skills
Search Global Skills
Search for pre-defined skills in the global database:Common Response Format
All API responses follow a consistent structure:Best Practices
Performance Considerations:
- All operations are scoped to the authenticated user automatically
- Batch operations are transactional - they either all succeed or all fail
- Skills can be reused across multiple projects
- Use the search endpoint to find existing global skills before creating new ones
Next Steps
File Uploads
Upload avatars, resumes, project covers, and skill icons
Public API
Learn how others can view your portfolio without authentication