openapi: 3.1.0
info:
  title: Kartikey Sharma Portfolio & Developer API
  version: 1.0.0
  description: Official machine-readable developer API for Kartikey Sharma (@kartikeysharmaks) — Software Engineer & Travel Creator. Designed for AI agents, LLMs, function calling, and automated developer tooling.
  contact:
    name: Kartikey Sharma
    email: kartikeysharma1616@gmail.com
    url: https://www.kartikeysharmaks.in/
  license:
    name: MIT
    url: https://opensource.org/licenses/MIT
servers:
  - url: https://www.kartikeysharmaks.in
    description: Canonical Production Server
paths:
  /api/profile:
    get:
      operationId: getProfile
      summary: Retrieve complete verified developer profile
      description: Returns the complete profile of Kartikey Sharma, including full bio, contact details, categorized technical skills, social profiles, and travel content focus.
      responses:
        '200':
          description: Full developer profile successfully retrieved
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Profile'
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
  /api/skills:
    get:
      operationId: getSkills
      summary: Retrieve categorized technical skills
      description: Returns categorized programming languages, frontend libraries, backend technologies, databases, and DevOps tools mastered by Kartikey Sharma.
      responses:
        '200':
          description: Technical skills list retrieved successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Skills'
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
  /api/projects:
    get:
      operationId: getProjects
      summary: Retrieve featured software engineering projects
      description: Returns a list of production web applications, open-source repositories, and client projects built by Kartikey Sharma.
      responses:
        '200':
          description: Projects list retrieved successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProjectsList'
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
  /api/contact:
    get:
      operationId: getContactInfo
      summary: Retrieve official contact channels and social profiles
      description: Returns official email address, physical location, and verified profile URLs across GitHub, LinkedIn, Instagram, and Twitter/X.
      responses:
        '200':
          description: Contact information retrieved successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Contact'
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
  /api/travel:
    get:
      operationId: getTravelInfo
      summary: Retrieve travel content creator portfolio and destinations
      description: Returns travel destinations documented by Kartikey Sharma across Uttarakhand and India, including media channels and photography topics.
      responses:
        '200':
          description: Travel creator portfolio retrieved successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Travel'
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
components:
  schemas:
    Profile:
      type: object
      required: [name, handle, title, website, email, skills, social]
      properties:
        name:
          type: string
          example: Kartikey Sharma
        handle:
          type: string
          example: '@kartikeysharmaks'
        title:
          type: string
          example: Software Engineer & Travel Content Creator
        website:
          type: string
          format: uri
          example: https://www.kartikeysharmaks.in/
        email:
          type: string
          format: email
          example: kartikeysharma1616@gmail.com
        bio:
          type: string
        skills:
          $ref: '#/components/schemas/Skills'
        social:
          $ref: '#/components/schemas/SocialProfiles'
    Skills:
      type: object
      required: [languages, frontend, backend, tools]
      properties:
        languages:
          type: array
          items:
            type: string
        frontend:
          type: array
          items:
            type: string
        backend:
          type: array
          items:
            type: string
        tools:
          type: array
          items:
            type: string
    ProjectsList:
      type: object
      required: [projects]
      properties:
        projects:
          type: array
          items:
            type: object
            required: [title, description, technologies]
            properties:
              title:
                type: string
              description:
                type: string
              technologies:
                type: array
                items:
                  type: string
              projectUrl:
                type: string
                format: uri
              codeUrl:
                type: string
                format: uri
    Contact:
      type: object
      required: [email, location, social]
      properties:
        email:
          type: string
          format: email
          example: kartikeysharma1616@gmail.com
        location:
          type: object
          required: [city, state, country, postalCode]
          properties:
            city:
              type: string
              example: Haridwar
            state:
              type: string
              example: Uttarakhand
            country:
              type: string
              example: India
            postalCode:
              type: string
              example: '249401'
        social:
          $ref: '#/components/schemas/SocialProfiles'
    SocialProfiles:
      type: object
      properties:
        github:
          type: string
          format: uri
        linkedin:
          type: string
          format: uri
        instagram:
          type: string
          format: uri
        youtube:
          type: string
          format: uri
        twitter:
          type: string
          format: uri
    Travel:
      type: object
      required: [regions, destinations, topics]
      properties:
        regions:
          type: array
          items:
            type: string
        destinations:
          type: array
          items:
            type: string
        topics:
          type: array
          items:
            type: string
    ErrorResponse:
      type: object
      required: [error]
      properties:
        error:
          type: object
          required: [code, message, status, resolution]
          properties:
            code:
              type: string
              enum: [not_found, bad_request, method_not_allowed, internal_error]
              example: not_found
            message:
              type: string
              example: The requested API endpoint was not found.
            status:
              type: integer
              example: 404
            resolution:
              type: string
              example: Check the OpenAPI specification at https://www.kartikeysharmaks.in/openapi.json or consult https://www.kartikeysharmaks.in/developers/.
