Resume API
A typed JSON version of this site. Everything on the page is built from the same content, so the two cannot disagree.
- Read-only. Only
GET, no key needed, and open to any origin (Access-Control-Allow-Origin: *). - Static. Each response is prerendered when the site is built, so it changes only when the site is redeployed. It is a file served from a CDN, not a live service.
- Stable keys. Fields that may be empty are
null, never missing, so the shapes below always hold.
Base URL https://adarsh-soni-website.vercel.app/api/v1
GET/api/v1/profile
Who I am: name, role, availability, summary and contact links.
Try it
curl https://adarsh-soni-website.vercel.app/api/v1/profileOpen in a new tabResponse
{
name: string;
role: string;
headline: string;
availability: string;
location: string;
summary: string[];
interests: string[];
links: {
email: string;
linkedin: string;
github: string;
resume: string;
booking: string | null;
};
}GET/api/v1/experience
Work history, newest first, including earlier experience.
Try it
curl https://adarsh-soni-website.vercel.app/api/v1/experienceOpen in a new tabResponse
{
company: string;
title: string;
period: string;
location: string | null;
highlights: string[];
details: {
highlight: string;
label: string;
value: string;
}[];
careerBreak: string | null;
recommendation: {
letter: string | null;
quote: string | null;
quoteBy: string | null;
};
}[]GET/api/v1/projects
Projects with their stack, outcome and the page that tells the story.
Try it
curl https://adarsh-soni-website.vercel.app/api/v1/projectsOpen in a new tabResponse
{
slug: string;
name: string;
context: string;
summary: string;
stack: string[];
outcome: string;
page: string;
links: {
live: string | null;
source: string | null;
};
measured: string | null;
}[]GET/api/v1/skills
Skills by group, education, languages, awards and certifications.
Try it
curl https://adarsh-soni-website.vercel.app/api/v1/skillsOpen in a new tabResponse
{
stack: string[];
groups: {
name: string;
items: string[];
}[];
education: string;
languages: Record<string, string>;
awards: string[];
certifications: {
name: string;
url: string;
}[];
}A name that is not listed returns 404 with a JSON body that lists the endpoints that exist. See it on the home page.