{"info":{"title":"Chip API","description":"Backend for Chip, my personal discord bot. This is the private API documentation for chip-api.","version":"1.0.50"},"servers":[{"url":"http://localhost:3001"}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer"}},"schemas":{}},"openapi":"3.1.2","paths":{"/furry/random/gif/types":{"get":{"tags":["Furry"],"summary":"List furry gif types","description":"Returns all available furry gif types.","responses":{"200":{"description":"Response for status 200","content":{"application/json":{"schema":{"type":"array","items":{"description":"A named gif type","type":"string"}}}}}},"operationId":"getFurryRandomGifTypes"}},"/furry/random/gif/{type}":{"get":{"tags":["Furry"],"summary":"Get a random furry gif","description":"Returns a random gif of the given type.","parameters":[{"name":"type","in":"path","required":true,"schema":{"description":"The furry gif type.","type":"string"}}],"responses":{"200":{"description":"Response for status 200","content":{"application/json":{"schema":{"anyOf":[{"description":"A furry gif","type":"object","required":["id","url","type","source"],"properties":{"id":{"anyOf":[{"format":"integer","default":0,"type":"string"},{"type":"integer"}]},"url":{"type":"string"},"type":{"type":"string"},"source":{"nullable":true,"type":["string","null"]}}},{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}]}}}}},"operationId":"getFurryRandomGifByType"}},"/":{"get":{"summary":"Root endpoint","description":"A simple endpoint used to verify the API is running.","responses":{"200":{"description":"Response for status 200","content":{"application/json":{"schema":{"type":"object","required":["green"],"properties":{"green":{"description":"A test value.","type":"string"}}}}}}},"operationId":"getIndex"}},"/tags/list":{"get":{"tags":["Tags"],"summary":"List tags","description":"Fetches all tag names","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Response for status 200","content":{"application/json":{"schema":{"type":"array","items":{"title":"Tag name","type":"string"}}}}},"401":{"description":"Response for status 401","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}},"403":{"description":"Response for status 403","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}},"500":{"description":"Response for status 500","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}}},"operationId":"getTagsList"}},"/tags/{name}":{"get":{"tags":["Tags"],"summary":"Get a tag","description":"Fetches a single tag by its name.","security":[{"bearerAuth":[]}],"parameters":[{"name":"name","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"A tag","content":{"application/json":{"schema":{"description":"A tag","type":"object","required":["id","name","title","content"],"properties":{"id":{"anyOf":[{"format":"integer","default":0,"type":"string"},{"type":"integer"}]},"name":{"nullable":true,"type":["string","null"]},"title":{"nullable":true,"type":["string","null"]},"content":{"nullable":true,"type":["string","null"]}}}}}},"401":{"description":"Response for status 401","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}},"403":{"description":"Response for status 403","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}},"500":{"description":"Response for status 500","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}}},"operationId":"getTagsByName"},"post":{"tags":["Tags"],"summary":"Create or update a tag","description":"Creates a tag with the given name, or updates it if the name already exists.","security":[{"bearerAuth":[]}],"parameters":[{"name":"name","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"title":{"description":"Tag title","type":"string"},"content":{"description":"Tag content","type":"string"}}}},"application/x-www-form-urlencoded":{"schema":{"type":"object","properties":{"title":{"description":"Tag title","type":"string"},"content":{"description":"Tag content","type":"string"}}}},"multipart/form-data":{"schema":{"type":"object","properties":{"title":{"description":"Tag title","type":"string"},"content":{"description":"Tag content","type":"string"}}}}}},"responses":{"200":{"description":"A tag","content":{"application/json":{"schema":{"description":"A tag","type":"object","required":["id","name","title","content"],"properties":{"id":{"anyOf":[{"format":"integer","default":0,"type":"string"},{"type":"integer"}]},"name":{"nullable":true,"type":["string","null"]},"title":{"nullable":true,"type":["string","null"]},"content":{"nullable":true,"type":["string","null"]}}}}}},"401":{"description":"Response for status 401","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}},"403":{"description":"Response for status 403","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}},"500":{"description":"Response for status 500","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}}},"operationId":"postTagsByName"},"delete":{"tags":["Tags"],"summary":"Delete a tag","description":"Deletes a tag by its name.","security":[{"bearerAuth":[]}],"parameters":[{"name":"name","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Response for status 200","content":{"application/json":{"schema":{"type":"object","required":["deleted"],"properties":{"deleted":{"anyOf":[{"format":"integer","default":0,"type":"string"},{"type":"integer"}]}}}}}},"401":{"description":"Response for status 401","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}},"403":{"description":"Response for status 403","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}},"404":{"description":"Response for status 404","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}},"500":{"description":"Response for status 500","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}}},"operationId":"deleteTagsByName"}}}}