{"openapi":"3.1.0","info":{"title":"Nicolay Camacho Portfolio API","version":"1.0.0","description":"Unauthenticated, read-only access to Nicolay Camacho's public professional profile and portfolio projects.","contact":{"name":"Nicolay Camacho","url":"https://nicolaycamacho.com","email":"nicolaycamacho@gmail.com"}},"servers":[{"url":"https://nicolaycamacho.com"}],"tags":[{"name":"Public profile","description":"Source-grounded public professional information."}],"paths":{"/api/profile.json":{"get":{"operationId":"getPublicProfile","summary":"Get Nicolay Camacho's public professional profile","description":"Returns source-grounded public profile, skills, professional focus, contact guidance, and resume links. No authentication is required and no data is mutated.","tags":["Public profile"],"responses":{"200":{"description":"Public profile and related links.","content":{"application/json":{"schema":{"type":"object","required":["profile","links"],"properties":{"profile":{"$ref":"#/components/schemas/Profile"},"links":{"type":"object","additionalProperties":{"type":"string"}}}}}}},"404":{"description":"The requested public profile resource was not found.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"500":{"description":"The portfolio service could not return the profile.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/api/projects.json":{"get":{"operationId":"getPublicProjects","summary":"List public portfolio projects and case-study data","description":"Returns source-grounded public project records, technical highlights, evidence notes, and case-study links. No authentication is required and no data is mutated.","tags":["Public profile"],"responses":{"200":{"description":"Public project records and related links.","content":{"application/json":{"schema":{"type":"object","required":["projects","links"],"properties":{"projects":{"type":"array","items":{"$ref":"#/components/schemas/Project"}},"links":{"type":"object","additionalProperties":{"type":"string"}}}}}}},"404":{"description":"The requested public projects resource was not found.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"500":{"description":"The portfolio service could not return the projects.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}}},"components":{"schemas":{"Profile":{"type":"object","required":["name","headline","description","location","email","timezone","sameAs","focus","stack","currentWorkContext","contactGuidance","contactInterest","resume"],"properties":{"name":{"type":"string"},"headline":{"type":"string"},"description":{"type":"string"},"location":{"type":"string"},"email":{"type":"string","format":"email"},"timezone":{"type":"string"},"sameAs":{"type":"array","items":{"type":"string"}},"focus":{"type":"array","items":{"type":"string"}},"stack":{"type":"array","items":{"type":"string"}},"currentWorkContext":{"type":"string"},"contactGuidance":{"type":"string"},"contactInterest":{"type":"string"},"resume":{"type":"object","required":["label","href"],"properties":{"label":{"type":"string"},"href":{"type":"string","format":"uri"}}}}},"ProfileResponse":{"type":"object","required":["profile","links"],"properties":{"profile":{"$ref":"#/components/schemas/Profile"},"links":{"type":"object","additionalProperties":{"type":"string"}}}},"Project":{"type":"object","required":["slug","name","type","status","description","caseStudyHref","technicalHighlights","demonstrates","links"],"properties":{"slug":{"type":"string"},"name":{"type":"string"},"featured":{"type":"boolean"},"deepDiveLabel":{"type":"string"},"visibility":{"type":"string"},"type":{"type":"string"},"status":{"type":"string"},"subtitle":{"type":"string"},"description":{"type":"string"},"summary":{"type":"string"},"heroSummary":{"type":"string"},"tags":{"type":"array","items":{"type":"string"}},"proofChips":{"type":"array","items":{"type":"string"}},"caseStudyHref":{"type":"string","format":"uri"},"deepDiveHref":{"type":"string","format":"uri"},"problem":{"type":"string"},"architecture":{"type":"array","items":{"type":"object","required":["title","body"],"properties":{"title":{"type":"string"},"body":{"type":"string"}}}},"architectureFlow":{"type":"array","items":{"type":"string"}},"technicalHighlights":{"type":"array","items":{"type":"string"}},"aiAutomationDesign":{"type":"string"},"engineeringTradeoffs":{"type":"string"},"stackGroups":{"type":"array","items":{"type":"object","required":["title","items"],"properties":{"title":{"type":"string"},"items":{"type":"array","items":{"type":"string"}}}}},"demonstrates":{"type":"string"},"nextSteps":{"type":"array","items":{"type":"string"}},"sourceEvidence":{"type":"array","items":{"type":"string"}},"links":{"type":"array","items":{"type":"object","required":["label","href","external"],"properties":{"label":{"type":"string"},"href":{"type":"string"},"external":{"type":"boolean"}}}},"href":{"type":["string","null"],"format":"uri"}}},"ProjectsResponse":{"type":"object","required":["projects","links"],"properties":{"projects":{"type":"array","items":{"$ref":"#/components/schemas/Project"}},"links":{"type":"object","additionalProperties":{"type":"string"}}}},"Problem":{"type":"object","required":["type","title","status","code","message","detail","resolution","instance"],"properties":{"type":{"type":"string","format":"uri"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"code":{"type":"string"},"message":{"type":"string"},"detail":{"type":"string"},"resolution":{"type":"string"},"instance":{"type":"string"}}}}}}