{"files":{"SKILL.md":"---\nname: jokes-one-api\ndescription: \"Jokes One API skill. Use when working with Jokes One for jod, joke. Covers 12 endpoints.\"\nversion: 1.0.0\ngenerator: lapsh\n---\n\n# Jokes One API\nAPI version: 1.1\n\n## Auth\nApiKey X-JokesOne-Api-Secret in header\n\n## Base URL\nhttps://api.jokes.one\n\n## Setup\n1. Set your API key in the appropriate header\n2. GET /jod -- gets `joke of the day`.\n3. POST /joke/tags/add -- create first add\n\n## Endpoints\n12 endpoints across 2 groups. See references/api-spec.lap for full details.\n\n### Jod\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /jod | Gets `Joke of the Day`. |\n| GET | /jod/categories | Gets a list of `Joke of the Day` Categories. |\n\n### Joke\n| Method | Path | Description |\n|--------|------|-------------|\n| PUT | /joke | Add a new joke to your private collection. |\n| PATCH | /joke | Update a joke |\n| GET | /joke | Gets a `Joke` with a given `id`. |\n| DELETE | /joke | Delete a joke. The user needs to be the owner of the joke to be able to delete it. |\n| GET | /joke/random | Gets a `Random Joke`. When you are in a hurry this is what you call to get a random famous joke. |\n| GET | /joke/search | Search for a `Joke` in Jokes One platform. Optional `category` , `author`, `minlength`, `maxlength` params determines the filters applied while searching for the joke. |\n| GET | /joke/categories/search | Gets a list of `Joke` Categories, based on a query term. |\n| GET | /joke/list | Get the list of jokes in your private collection. |\n| POST | /joke/tags/add | Add a tag to a given Joke. |\n| POST | /joke/tags/remove | Remove a tag from a given joke. |\n\n## Common Questions\nMatch user requests to endpoints in references/api-spec.lap. Key patterns:\n- \"List all jod?\" -> GET /jod\n- \"List all categories?\" -> GET /jod/categories\n- \"List all joke?\" -> GET /joke\n- \"List all random?\" -> GET /joke/random\n- \"Search search?\" -> GET /joke/search\n- \"List all list?\" -> GET /joke/list\n- \"Create a add?\" -> POST /joke/tags/add\n- \"Create a remove?\" -> POST /joke/tags/remove\n- \"How to authenticate?\" -> See Auth section above\n\n## Response Tips\n- Check response schemas in references/api-spec.lap for field details\n- Create/update endpoints return the modified resource on success\n- Error responses include status codes and descriptions in the spec\n\n## References\n- Full spec: See references/api-spec.lap for complete endpoint details, parameter tables, and response schemas\n\n> Generated from the official API spec by [LAP](https://lap.sh)\n","references/api-spec.lap":"@lap v0.3\n# Machine-readable API spec. Each @endpoint block is one API call.\n@api Jokes One API\n@base https://api.jokes.one\n@version 1.1\n@auth ApiKey X-JokesOne-Api-Secret in header\n@endpoints 12\n@toc jod(2), joke(10)\n\n@group jod\n@endpoint GET /jod\n@desc Gets `Joke of the Day`.\n@optional {category: any # JOD Category}\n@returns(200) 200  response\n\n@endpoint GET /jod/categories\n@desc Gets a list of `Joke of the Day` Categories.\n@returns(200) 200  response\n\n@endgroup\n\n@group joke\n@endpoint PUT /joke\n@desc Add a new joke to your private collection.\n@required {title: any # Joke Title, text: any # Joke Text}\n@optional {author: any # Joke Author, tags: any # Comma Separated tags}\n@returns(200) 200  response\n@errors {401: 401  response}\n\n@endpoint PATCH /joke\n@desc Update a joke\n@required {id: any # Joke ID}\n@optional {title: any # title, text: any # text, author: any # Joke Author, tags: any # Comma Separated tags}\n@returns(200) 200  response\n@errors {401: 401  response}\n\n@endpoint GET /joke\n@desc Gets a `Joke` with a given `id`.\n@optional {id: any # Joke ID}\n@returns(200) 200  response\n@errors {401: 401  response}\n\n@endpoint DELETE /joke\n@desc Delete a joke. The user needs to be the owner of the joke to be able to delete it.\n@required {id: any # Joke ID}\n@returns(200) 200  response\n@errors {401: 401  response, 404: 404  response}\n\n@endpoint GET /joke/random\n@desc Gets a `Random Joke`. When you are in a hurry this is what you call to get a random famous joke.\n@returns(200) 200  response\n@errors {401: 401  response}\n\n@endpoint GET /joke/search\n@desc Search for a `Joke` in Jokes One platform. Optional `category` , `author`, `minlength`, `maxlength` params determines the filters applied while searching for the joke.\n@optional {category: any # Joke Category, query: any # keyword to search for in the joke, minlength: any # Joke minimum Length, maxlength: any # Joke maximum Length, author: any # Joke Author, private: any # Should search private collection? Default searches public collection.}\n@returns(200) 200  response\n@errors {401: 401  response}\n\n@endpoint GET /joke/categories/search\n@desc Gets a list of `Joke` Categories, based on a query term.\n@required {query: any # Search Query}\n@optional {start: any # Response is paged. This parameter controls where response starts the listing at}\n@returns(200) 200  response\n\n@endpoint GET /joke/list\n@desc Get the list of jokes in your private collection.\n@optional {start: any # Response is paged. This parameter controls where response starts the listing at}\n@returns(200) 200  response\n@errors {401: 401  response}\n\n@endpoint POST /joke/tags/add\n@desc Add a tag to a given Joke.\n@required {id: any # Joke ID, tags: any # Comma Separated tags}\n@returns(200) 200  response\n@errors {401: 401  response, 404: 404  response}\n\n@endpoint POST /joke/tags/remove\n@desc Remove a tag from a given joke.\n@required {id: any # Joke ID, tags: any # Comma Separated tags}\n@returns(200) 200  response\n@errors {401: 401  response, 404: 404  response}\n\n@endgroup\n\n@end\n"}}