A personal API built with Hono for Cloudflare Workers, providing information about me, my skills, projects, and integrations.
All URLs referenced in the documentation have the following base:
https://api.skiddle.id
Currently, this API is publicly accessible and does not require authentication.
Please be mindful of rate limits imposed by third-party services (e.g., Spotify API).
Returns basic profile information including name, roles, current location, and current job.
Response
{
"name": "Laurensius Jeffrey Chandra",
"nickname": ["Jeff", "Skiddle"],
"role": [
"Software Engineer",
"Open Source Contributor",
"Investor",
"Stock Trader"
],
"currentJobs": [
{
"company": "Skiddle ID",
"title": "Open Source Contributor",
"location": "Bangkok Metropolitan Area"
}
],
"city": "Bangkok",
"country": "Thailand",
"timezone": "Asia/Bangkok",
"currentStatus": "Available"
}Returns current location information.
Response
{
"city": "Jakarta",
"country": "Indonesia",
"countryCode": "ID",
"timezone": "UTC+7",
"cosmic": [
"Jakarta",
"Indonesia",
"Planet Earth",
"Solar System",
"Orion Arm",
"Milky Way Galaxy",
"Local Group",
"Virgo Supercluster",
"Laniakea Supercluster",
"The Universe"
]
}Returns complete work history, sorted from newest to oldest.
Response
{
"experiences": [
{
"company": "Skiddle ID",
"title": "Open Source Contributor",
"type": "self-employed",
"location": "Bangkok Metropolitan Area",
"startDate": "2024-04",
"endDate": "Present",
"description": ["Contributing to open source projects", "..."],
"technologies": ["Azure", "GCP", "Digital Ocean", "React", "JavaScript", "Laravel"]
},
{
"company": "Skiddle ID",
"title": "Fundraising Coordinator",
"startDate": "2020-04",
"endDate": "2024-04",
"location": "Bangkok Metropolitan Area"
}
],
"total": 6
}Returns current job positions.
Response
{
"jobs": [
{
"company": "Skiddle ID",
"title": "Open Source Contributor",
"type": "self-employed",
"location": "Bangkok Metropolitan Area",
"startDate": "2024-04",
"description": ["Contributing to open source projects", "..."],
"technologies": ["Azure", "GCP", "Digital Ocean", "React", "JavaScript", "Laravel"]
}
],
"total": 1
}Returns education history.
Returns personal interests.
Returns all skills organized by category.
Returns skills in a specific category.
Returns all projects, including featured projects.
Response
{
"projects": [
{
"name": "Project Name",
"description": "Project description",
"technologies": ["TypeScript", "React"],
"github": "https://github.com/...",
"website": "https://...",
"startDate": "2023-01",
"status": "completed",
"featured": true
}
],
"featured": [...],
"total": 10,
"featuredCount": 2
}Returns only featured projects.
Returns projects filtered by status (completed, in-progress, planned).
Returns the 5 latest blog posts.
Returns all blog posts with pagination.
Query Parameters
page: Page number (default: 1)pageSize: Posts per page (default: 10)
Search blog posts.
Query Parameters
q: Search query (required)page: Page number (default: 1)pageSize: Posts per page (default: 10)
Returns the currently playing track.
Returns recently played tracks.
Query Parameters
limit: Number of tracks to return (default: 20)
Returns listening history grouped by day.
Query Parameters
all: Set to 'true' to fetch all available history (default: false)
Returns listening history grouped by week.
Returns top tracks.
Query Parameters
timeRange: Time range for calculation (short_term, medium_term, long_term)limit: Number of tracks (default: 10)
Returns top artists.
Query Parameters
timeRange: Time range for calculation (short_term, medium_term, long_term)limit: Number of artists (default: 10)
Returns saved albums.
Query Parameters
limit: Number of albums (default: 10)
All endpoints follow the same error response format:
{
"error": "Error message"
}Common HTTP status codes:
- 200: Success
- 400: Bad Request
- 404: Not Found
- 500: Internal Server Error
The API currently does not implement rate limiting, but please be mindful of usage.