lukaloehr APIlukaloehr.com ↗
Access Luka Löhr's developer portfolio via API. Retrieve profile data, full project listings with tech stacks, and detailed project pages in structured JSON.
What is the lukaloehr API?
The lukaloehr.com API exposes 3 endpoints covering Luka Löhr's developer portfolio: profile metadata, a full project listing, and individual project detail pages. The get_profile endpoint returns 10 structured fields including skills, location, nationality, and a bio statement. get_projects returns every portfolio project with its technology stack and status in a single response.
No input parameters required.
curl -X GET 'https://api.parse.bot/scraper/4c1ddfe3-f183-43c9-8d26-8874b1939aac/get_profile' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace lukaloehr-com-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""Walkthrough: LukaLoehr portfolio SDK — profile, projects, and detail pages."""
from parse_apis.lukaloehr_com_api import LukaLoehr, Slug, ProjectNotFound
client = LukaLoehr()
# Fetch the developer profile
profile = client.profiles.get()
print(f"Name: {profile.name}, Location: {profile.location}")
print(f"Skills: {', '.join(profile.skills)}")
# List all portfolio projects
for project in client.projects.list(limit=5):
print(f"{project.name} [{project.status}] — {', '.join(project.technologies[:3])}")
# Drill into a specific project's detail page using the Slug enum
try:
detail = client.project_details.get(slug=Slug.EPHRAIM)
print(f"\nDetail: {detail.title} — {detail.intro}")
for section in detail.sections[:2]:
print(f" Section: {section.heading}")
except ProjectNotFound as exc:
print(f"Project not found: {exc}")
print("\nexercised: profiles.get / projects.list / project_details.get")
Returns Luka Löhr's developer profile including name, location, skills, contact info, and bio statement. All data is extracted from the portfolio's structured metadata.
No input parameters required.
{
"type": "object",
"fields": {
"url": "string",
"name": "string",
"email": "string",
"github": "string",
"skills": "array of skill strings",
"country": "string",
"location": "string",
"statement": "string",
"description": "string",
"nationality": "string",
"alternate_name": "string"
},
"sample": {
"data": {
"url": "https://example.com",
"name": "John Doe",
"email": "[email protected]",
"github": "https://github.com/johndoe",
"skills": [
"Flutter",
"Swift",
"TypeScript",
"Bun",
"AI",
"macOS development",
"mobile development"
],
"country": "DE",
"location": "Karlsruhe",
"statement": "Hey, I'm John. I make apps and tools that people actually find useful.",
"description": "Developer building apps and tools — from user-facing products to internal utilities. Creator of LGKA+, SchoolCode, Live Engine, Orin, and Receipt AI.",
"nationality": "DE",
"alternate_name": "John Doe"
},
"status": "success"
}
}About the lukaloehr API
Profile Data
The get_profile endpoint returns a flat object with 10 fields drawn from the portfolio's structured metadata. Fields include name, email, github, country, location, nationality, skills (an array of technology strings), statement, description, and the canonical url. No input parameters are required.
Project Listings
The get_projects endpoint returns a total count alongside a projects array. Each project object includes its name, description, current status, technology stack, and an external URL. The portfolio has a fixed set of projects, so results are always returned as a single page with no pagination parameters needed.
Project Detail Pages
The get_project_detail endpoint accepts a slug string parameter corresponding to the path segment in the project's portfolio URL. It returns the project title, an intro paragraph, and a sections array where each element carries a heading and content field. Currently, only the ephraim slug resolves to a populated detail page on the site. Other slugs may return empty or minimal responses.
The lukaloehr API is a managed, monitored endpoint for lukaloehr.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when lukaloehr.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official lukaloehr.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Aggregate a developer's contact details (
email,github) into a recruiting CRM without manual data entry. - Display Luka Löhr's
skillsarray in a third-party portfolio aggregator or talent directory. - Render project cards with status and tech stack by consuming the
get_projectsresponse. - Pull the
ephraimproject'ssectionscontent to embed structured project write-ups in an external site. - Track portfolio changes over time by periodically calling
get_projectsand diffing thetotaland project list. - Populate a personal branding page with
statementanddescriptionfields sourced directly from the portfolio.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 200 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
| Team | $300/mo | 20,000 | 300 req/min |
| Company | $1,000/mo | 100,000 | 500 req/min |
Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does lukaloehr.com have an official developer API?+
What does get_project_detail return, and which projects have detail pages?+
title, intro paragraph, and a sections array of heading-and-content blocks for the given slug. Currently only the ephraim slug has a populated detail page on the site. Passing other slugs may yield an empty or minimal response.Does the API expose blog posts, a work timeline, or other content sections from the portfolio?+
Is the projects list paginated, and can it be filtered by technology or status?+
get_projects endpoint returns all projects in a single response with no pagination parameters. It does not accept filter inputs for technology stack or status. The projects array includes both fields, so client-side filtering on status or stack values is straightforward. You can fork the API on Parse and revise it to add server-side filtering if needed.