{
  "openapi": "3.1.0",
  "info": {
    "title": "Anurag Gupta Public API",
    "version": "1.0.0",
    "summary": "Read-only JSON API for anuragxd.com.",
    "description": "Public, unauthenticated, read-only API exposing the same content the website renders: profile, work history, projects, talks, and blog posts (including full Markdown bodies). Every response is a static file served from Cloudflare's edge.",
    "contact": {
      "name": "Anurag Gupta",
      "email": "me@anuragxd.com",
      "url": "https://anuragxd.com/developers"
    },
    "license": {
      "name": "CC BY 4.0",
      "identifier": "CC-BY-4.0"
    }
  },
  "externalDocs": {
    "description": "Developer portal",
    "url": "https://anuragxd.com/developers"
  },
  "servers": [
    {
      "url": "https://anuragxd.com",
      "description": "Production"
    }
  ],
  "security": [],
  "paths": {
    "/api/index.json": {
      "get": {
        "operationId": "getIndex",
        "summary": "API index",
        "description": "Discovery document listing every available endpoint, the API version, and links to the OpenAPI spec and llms.txt.",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "404": {
            "description": "No such resource",
            "content": {
              "text/html": {
                "schema": {
                  "type": "string"
                }
              },
              "text/markdown": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/api/profile.json": {
      "get": {
        "operationId": "getProfile",
        "summary": "Profile",
        "description": "Name, headline, location, contact address, social profiles, and the technology list published as schema.org `knowsAbout`.",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "404": {
            "description": "No such resource",
            "content": {
              "text/html": {
                "schema": {
                  "type": "string"
                }
              },
              "text/markdown": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/api/work.json": {
      "get": {
        "operationId": "getWork",
        "summary": "Work history",
        "description": "Every role, with company, URL, period, summary, highlights, and stack.",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "404": {
            "description": "No such resource",
            "content": {
              "text/html": {
                "schema": {
                  "type": "string"
                }
              },
              "text/markdown": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/api/projects.json": {
      "get": {
        "operationId": "getProjects",
        "summary": "Projects",
        "description": "Open-source and side projects, with tagline, description, repository URL, and proof-of-traction where it exists.",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "404": {
            "description": "No such resource",
            "content": {
              "text/html": {
                "schema": {
                  "type": "string"
                }
              },
              "text/markdown": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/api/talks.json": {
      "get": {
        "operationId": "getTalks",
        "summary": "Talks and open source",
        "description": "Conference talks, mentorship, and open-source programme work.",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "404": {
            "description": "No such resource",
            "content": {
              "text/html": {
                "schema": {
                  "type": "string"
                }
              },
              "text/markdown": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/api/posts.json": {
      "get": {
        "operationId": "listPosts",
        "summary": "Blog post index",
        "description": "All published posts, newest first, with slug, title, date, description, and both the HTML and Markdown URLs.",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "404": {
            "description": "No such resource",
            "content": {
              "text/html": {
                "schema": {
                  "type": "string"
                }
              },
              "text/markdown": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/api/posts/{slug}.json": {
      "get": {
        "operationId": "getPost",
        "summary": "Single blog post",
        "description": "One post including its full Markdown body. `slug` comes from `/api/posts.json`.",
        "parameters": [
          {
            "name": "slug",
            "in": "path",
            "required": true,
            "description": "Post slug, as returned by /api/posts.json.",
            "schema": {
              "type": "string"
            },
            "example": "popy-500kb-clipboard-manager"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "404": {
            "description": "No such resource",
            "content": {
              "text/html": {
                "schema": {
                  "type": "string"
                }
              },
              "text/markdown": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    }
  }
}
