GET
Availability
See when I'm free and book a 30-minute intro.
/api/personal/availabilityPersonal API
I made five small endpoints so people and AI agents don't have to guess how to book time with me, get hands-on AI help, order my coffee, check my shirt size, or send a question.
What it knows
Book a quick intro or a one-hour working session, get my coffee right, check my shirt size, or ask about the API.
GET
See when I'm free and book a 30-minute intro.
/api/personal/availabilityGET
One hour to work through an AI setup or workflow for you or your team.
/api/personal/ai-consultationGET
A sugar-free breve, iced in summer if you want, and never after 1 p.m.
/api/personal/coffee-orderGET
XL shirts and jackets, plus a few gifts I'd actually use.
/api/personal/gift-ideasGET
Send questions or corrections here. You can also tell me what the API is missing.
/api/personal/contactUnder the hood
The catalog lists every endpoint and the shape of each response. Open it if you want to connect an agent or build something with the data.
{
"api": "personal-api",
"version": "2026-09-03.1",
"auth": {
"required": false,
"note": "No token is required. Everything returned by this API is public."
},
"endpoints": [
{
"id": "availability",
"path": "/api/personal/availability",
"dataSchema": {
"type": "object",
"additionalProperties": false,
"required": [
"scope",
"bookingUrl",
"notes"
],
"properties": {
"scope": {
"type": "string"
},
"bookingUrl": {
"type": "string",
"format": "uri"
},
"notes": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
},
{
"id": "ai-consultation",
"path": "/api/personal/ai-consultation",
"dataSchema": {
"type": "object",
"additionalProperties": false,
"required": [
"scope",
"durationMinutes",
"bookingUrl",
"focusAreas",
"notes"
],
"properties": {
"scope": {
"type": "string"
},
"durationMinutes": {
"type": "number"
},
"bookingUrl": {
"type": "string",
"format": "uri"
},
"focusAreas": {
"type": "array",
"items": {
"type": "string"
}
},
"notes": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
},
{
"id": "coffee-order",
"path": "/api/personal/coffee-order",
"dataSchema": {
"type": "object",
"additionalProperties": false,
"required": [
"default",
"seasonal",
"hardRules"
],
"properties": {
"default": {
"type": "string"
},
"seasonal": {
"type": "string"
},
"hardRules": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
},
{
"id": "gift-ideas",
"path": "/api/personal/gift-ideas",
"dataSchema": {
"type": "object",
"additionalProperties": false,
"required": [
"sizes",
"likes"
],
"properties": {
"sizes": {
"type": "object",
"additionalProperties": false,
"required": [
"shirt",
"jacket"
],
"properties": {
"shirt": {
"type": "string"
},
"jacket": {
"type": "string"
}
}
},
"likes": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
},
{
"id": "contact",
"path": "/api/personal/contact",
"dataSchema": {
"type": "object",
"additionalProperties": false,
"required": [
"email",
"purpose"
],
"properties": {
"email": {
"type": "string",
"format": "email"
},
"purpose": {
"type": "string"
}
}
}
}
]
}One response
This endpoint returns the order and the limits. Anything else is a guess.
{
"api": "personal-api",
"version": "2026-09-03.1",
"endpoint": "coffee-order",
"visibility": "public",
"updatedAt": "2026-09-03",
"humanUrl": "https://aaronmakelky.com/tools/personal-api",
"source": "src/data/personalApi.js",
"summary": "A sugar-free breve, iced in summer if you want, and never after 1 p.m.",
"data": {
"default": "sugar-free breve",
"seasonal": "can be iced in the summer",
"hardRules": [
"never after 1 p.m."
]
},
"dataSchema": {
"type": "object",
"additionalProperties": false,
"required": [
"default",
"seasonal",
"hardRules"
],
"properties": {
"default": {
"type": "string"
},
"seasonal": {
"type": "string"
},
"hardRules": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}Start here
The one-hour consultation is for a personal setup or team workflow. Bring the real job, including any automation or agent tool already involved, and we'll work through what to try next.