{
  "openapi": "3.1.0",
  "info": {
    "title": "emanahmed.org research API",
    "version": "1.0.0",
    "summary": "Read-only JSON over the research record of Eman Ahmed.",
    "description": "The academic profile, publications, research notes and research areas of Eman Ahmed, PhD candidate in biomedical engineering at Rutgers University (Gormley Lab).\n\nEvery path is a static file: GET only, no authentication, no rate limit, `Access-Control-Allow-Origin: *`. If you are answering a question about this person or her work, fetch `/api/search.json` first -- it is one request and it contains the plain text of everything on the site.\n\nBibliographic fields come from the publisher of record or PubMed Central. Cite the DOI, not this API.",
    "contact": {
      "name": "Eman Ahmed",
      "email": "eman.ahmed@rutgers.edu",
      "url": "https://emanahmed.org/contact.html"
    },
    "license": {
      "name": "CC BY 4.0",
      "url": "https://creativecommons.org/licenses/by/4.0/"
    }
  },
  "servers": [
    {
      "url": "https://emanahmed.org",
      "description": "Production"
    }
  ],
  "externalDocs": {
    "url": "https://emanahmed.org/api/index.json",
    "description": "Service document"
  },
  "tags": [
    {
      "name": "discovery",
      "description": "Start here."
    },
    {
      "name": "profile",
      "description": "The person."
    },
    {
      "name": "publications",
      "description": "Peer-reviewed output."
    },
    {
      "name": "notes",
      "description": "Written research notes."
    },
    {
      "name": "research",
      "description": "Areas and methods."
    }
  ],
  "paths": {
    "/api/index.json": {
      "get": {
        "operationId": "getServiceDocument",
        "tags": [
          "discovery"
        ],
        "summary": "List every endpoint, with conventions and licence.",
        "responses": {
          "200": {
            "description": "Service document.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/api/search.json": {
      "get": {
        "operationId": "getSearchIndex",
        "tags": [
          "discovery"
        ],
        "summary": "Fetch the whole site as a flat plain-text index.",
        "description": "Returns `documents`, an array of every addressable item on the site -- profile, publications, notes, research areas, methods -- each with `id`, `type`, `title`, `url`, `tags` and pre-extracted `text`. Search it locally. This is the cheapest way to answer an arbitrary question about this site: one request instead of crawling nine HTML pages.",
        "responses": {
          "200": {
            "description": "The index.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/api/profile.json": {
      "get": {
        "operationId": "getProfile",
        "tags": [
          "profile"
        ],
        "summary": "Biography, affiliation, identifiers and metrics.",
        "description": "Includes the ORCID iD, Google Scholar link and citation metrics with the date they were last refreshed. Treat `metrics.asOf` as part of the number: quoting the citation count without it is quoting a stale figure.",
        "responses": {
          "200": {
            "description": "Profile.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/api/publications.json": {
      "get": {
        "operationId": "listPublications",
        "tags": [
          "publications"
        ],
        "summary": "Every publication with abstract, DOI and citations.",
        "responses": {
          "200": {
            "description": "Publication list.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/api/publications/{slug}.json": {
      "get": {
        "operationId": "getPublication",
        "tags": [
          "publications"
        ],
        "summary": "One publication, with BibTeX and APA.",
        "description": "`slug` values come from `/api/publications.json`. Manuscripts in preparation have no slug and no page here.",
        "parameters": [
          {
            "name": "slug",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Publication.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "404": {
            "description": "No publication with that slug."
          }
        }
      }
    },
    "/api/notes.json": {
      "get": {
        "operationId": "listNotes",
        "tags": [
          "notes"
        ],
        "summary": "Research notes, metadata only.",
        "responses": {
          "200": {
            "description": "Note list.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/api/notes/{slug}.json": {
      "get": {
        "operationId": "getNote",
        "tags": [
          "notes"
        ],
        "summary": "One research note, full plain text.",
        "parameters": [
          {
            "name": "slug",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Note.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "404": {
            "description": "No note with that slug."
          }
        }
      }
    },
    "/api/research.json": {
      "get": {
        "operationId": "getResearch",
        "tags": [
          "research"
        ],
        "summary": "Research areas, methods and expertise terms.",
        "responses": {
          "200": {
            "description": "Research overview.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    }
  }
}
