-
-
Notifications
You must be signed in to change notification settings - Fork 41
03.1 API Documentation
sunithvs edited this page Feb 23, 2025
·
2 revisions
The API module provides the main FastAPI application endpoints and middleware for the devb.io service.
- The base URL for the v1 is:
https://user.devb.io/ - The base URL for the v2 is:
https://v2.devb.io/
-
Basic Profile Endpoint
- Route:
/user/{username}/profile - Function:
fetch_basic_profile - Purpose: Fetches basic GitHub user profile information
- Includes background task processing
- Response Example:
{ "username": "sunithvs", "name": "sunith vs", "bio": "Backend Developer @Eduport | CUSATian | Engineeeeeeeeeeer", "location": "Perinthalmanna, Malappuram,Kerala ,India", "avatar_url": "https://avatars.githubusercontent.com/u/63339782?v=4", "profile_url": "https://github.com/sunithvs", "followers": 117, "following": 26, "public_repos": 116, "pull_requests_merged": 24, "issues_closed": 11, "achievements": { "total_contributions": 662, "repositories_contributed_to": 4 }, "social_accounts": [ { "provider": "linkedin", "url": "https://www.linkedin.com/in/sunithvs/" }, { "provider": "generic", "url": "https://medium.com/@sunithvs" }, { "provider": "instagram", "url": "https://www.instagram.com/sunithvs_/" }, { "provider": "generic", "url": "https://devb.io/sunithvs" } ], "readme_content": "[](https://devb.io/sunithvs)\n", "about": "I'm sunith vs, a seasoned backend developer with expertise in driving scalable solutions at Eduport, where I leverage my passion for software engineering to deliver high-quality products. With a strong foundation in backend development, my skills include proficiency in various technologies that I utilize to design and implement efficient, reliable systems. As a CUSATian, I bring a unique blend of technical acumen and problem-solving skills honed through real-world projects and contributions." } - Route:
-
Projects Data Endpoint
- Route:
/user/{username}/projects - Function:
fetch_projects_data - Purpose: Fetches GitHub user's projects and languages data
- Response Example:
{ "top_projects": [ { "name": "stories", "description": "A project created for maintinaing life highlights.", "score": null, "stars": 0, "forks": 0, "language": "TypeScript", "url": "https://github.com/sunithvs/stories", "updatedAt": "2025-02-22T10:23:35Z", "isPinned": false, "homepage": null }, { "name": "devb.io", "description": "DevB.io seamlessly transforms your GitHub footprint into a living, breathing portfolio. Powered by AI, it tells your developer story while you focus on what matters most: writing great code. No more portfolio maintenance headaches, just pure coding brilliance on display.", "score": 23.426172810236, "stars": 100, "forks": 12, "language": "Python", "url": "https://github.com/sunithvs/devb.io", "updatedAt": "2025-02-22T17:58:49Z", "isPinned": true, "homepage": "http://devb.io/" }, { "name": "kph-products", "description": "A platform for listing products from kph(kerala product hunt) communitiy. ", "score": 12.7382352176696, "stars": 2, "forks": 0, "language": "TypeScript", "url": "https://github.com/sunithvs/kph-products", "updatedAt": "2025-02-17T18:23:45Z", "isPinned": true, "homepage": "https://products.kph.club" }, { "name": "event-checkin", "description": "An event checking platform developed for cusat to host International Conclave on Next-Gen Higher Education 2025.", "score": 11.7803403276407, "stars": 1, "forks": 0, "language": "TypeScript", "url": "https://github.com/sunithvs/event-checkin", "updatedAt": "2025-02-17T18:27:24Z", "isPinned": true, "homepage": "https://ticket.radr.in" }, { "name": "marine-science", "description": "A Django-based web application for managing marine science conference registrations, abstract submissions, and payments. The system provides a complete solution for conference organization, including user authentication, payment processing, and content management.", "score": 11.2897650886137, "stars": 0, "forks": 1, "language": "HTML", "url": "https://github.com/sunithvs/marine-science", "updatedAt": "2025-01-17T08:11:06Z", "isPinned": true, "homepage": "https://marine.cusat.ac.in/" }, { "name": "thanthavibe.in", "description": "A thanthavibe calculator which hit 500+ users in the release date. ", "score": 10.6036444065728, "stars": 0, "forks": 0, "language": "HTML", "url": "https://github.com/sunithvs/thanthavibe.in", "updatedAt": "2025-02-17T18:26:05Z", "isPinned": true, "homepage": "https://thanthavibe.in/" }, { "name": "git-session", "description": "a project to learn git and github", "score": 5.64308852159903, "stars": 1, "forks": 11, "language": "HTML", "url": "https://github.com/sunithvs/git-session", "updatedAt": "2025-02-06T15:26:39Z", "isPinned": false, "homepage": null }, { "name": "EOC-FRONTEND", "description": null, "score": 4.7552476900004, "stars": 1, "forks": 8, "language": "JavaScript", "url": "https://github.com/sunithvs/EOC-FRONTEND", "updatedAt": "2022-12-05T07:59:49Z", "isPinned": false, "homepage": "" } ], "top_languages": [ ["Python", 29], ["TypeScript", 11], ["C", 2] ] } - Route:
-
About Data Endpoint
- Route:
/user/{username}/about - Function:
fetch_about_data - Purpose: Fetches GitHub user's README content
- Response Example:
{ "readme_content": "# About Me\n\nHello, I'm a developer...", "about": "Brief extracted summary about the user" } - Route:
-
LinkedIn Profile Endpoint
- Route:
/user/{username}/linkedin - Function:
fetch_linkedin_profile - Purpose: Fetches LinkedIn profile data
- Note: Both
experienceandeducationarrays can be empty ([]) if no data is available - Response Example:
{ "basic_info": { "full_name": "Sunith Vs", "headline": "Backend Developer at Eduport | Building Lamsta.", "location": { "city": "Malappuram", "state": "Kerala", "country": "IN" }, "summary": "Having embarked on an entrepreneurial journey with my startup, Lamsta, where I connected with inspiring founders and co-founders, I am now eager to transition into a role that allows me to utilise my project management, leadership, and software development skills. My experience includes completing over four projects and numerous side projects and consistently working on innovative ideas. Beyond technical skills, I've mentored at hackathons and led over 30 workshops, refining my leadership and team-building abilities. I am enthusiastic about joining a forward-thinking organisation where I can apply my diverse skill set and continue my professional growth.", "profile_url": "https://linkedin.com/in/sunithvs", "connections": 907 }, "experience": [ { "title": "Back End Developer", "company": "Eduport ", "location": "Kozhikode, Kerala, India", "description": null, "duration": { "start": { "month": 5, "year": 2024 }, "end": null } }, { "title": "Founder", "company": "Lamsta", "location": "Ernakulam, Kerala, India", "description": null, "duration": { "start": { "month": 2, "year": 2023 }, "end": null } }, { "title": "Django Developer Intern", "company": "Eduport ", "location": "Kozhikode, Kerala, India", "description": null, "duration": { "start": { "month": 3, "year": 2024 }, "end": { "month": 6, "year": 2024 } } }, { "title": "Organizer", "company": "Make-a-Ton", "location": "Kochi, Kerala, India", "description": null, "duration": { "start": { "month": 8, "year": 2022 }, "end": { "month": 3, "year": 2024 } } }, { "title": "Chief Operating Officer", "company": "Trebuchet Systems", "location": "Kochi, Kerala, India", "description": null, "duration": { "start": { "month": 5, "year": 2021 }, "end": { "month": 12, "year": 2023 } } } ], "education": [ { "school": "Cochin University of Science and Technology", "degree": "Bachelor of Technology - BTech", "field": "Computer Science", "duration": { "start": { "year": 2020 }, "end": { "year": 2024 } } }, { "school": "Government Higher Secondary School , Cherpulassery, Palakkad ", "degree": "Computer science ", "field": null, "duration": { "start": { "year": 2018 }, "end": { "year": 2020 } } } ] } - Route:
- Purpose: Handles API key authentication
- Excludes certain paths:
/docs,/redoc,/openapi.json - Validates API keys against configured settings
The API implements caching mechanisms for GitHub profiles using:
-
get_cached_github_profilefunction - Background tasks for data updates
- Username validation middleware
- API Key authentication required for endpoints
- Input validation through dependency injection
- Rate limiting through middleware
-
Getting Started
-
Integrations
-
Technical Docs
-
Quick Links