{"note":"OpenAPI conversion -- returning structured metadata","name":"tvmaze-com","description":"TVmaze user API","version":"1.0","base_url":"https://api.tvmaze.com/v1","endpoints":42,"raw":"@lap v0.3\n# Machine-readable API spec. Each @endpoint block is one API call.\n@api TVmaze user API\n@base https://api.tvmaze.com/v1\n@version 1.0\n@auth basic\n@endpoints 42\n@hint download_for_search\n@toc user(35), scrobble(4), auth(3)\n\n@group user\n@endpoint GET /user/episodes\n@desc List the marked episodes\n@optional {show_id: any # Only return episodes from this specific show}\n@returns(200) An array of marked episodes\n\n@endpoint GET /user/episodes/{episode_id}\n@desc Check if an episode is marked\n@returns(200) The marked episode\n@errors {404: This episode is not marked}\n\n@endpoint PUT /user/episodes/{episode_id}\n@desc Mark an episode\n@optional {body: map}\n@returns(200) this episode is now marked\n@errors {404: this episode does not exist, 422: invalid input data}\n\n@endpoint DELETE /user/episodes/{episode_id}\n@desc Unmark an episode\n@returns(200) the episode is now unmarked\n@errors {404: this episode was not marked}\n\n@endpoint GET /user/follows/shows\n@desc List the followed shows\n@optional {embed: any # Embed full show info}\n@returns(200) An array of followed shows\n\n@endpoint GET /user/follows/shows/{show_id}\n@desc Check if a show is followed\n@returns(200) The followed show\n@errors {404: This show is not followed}\n\n@endpoint PUT /user/follows/shows/{show_id}\n@desc Follow a show\n@returns(200) This show is now followed\n@errors {404: This show does not exist}\n\n@endpoint DELETE /user/follows/shows/{show_id}\n@desc Unfollow a show\n@returns(200) The show is now unfollowed\n@errors {404: This show was not followed}\n\n@endpoint GET /user/follows/people\n@desc List the followed people\n@optional {embed: any # Embed full person info}\n@returns(200) An array of followed people\n\n@endpoint GET /user/follows/people/{person_id}\n@desc Check if a person is followed\n@returns(200) The followed person\n@errors {404: this person is not followed}\n\n@endpoint PUT /user/follows/people/{person_id}\n@desc Follow a person\n@returns(200) this person is now followed\n@errors {404: this person does not exist}\n\n@endpoint DELETE /user/follows/people/{person_id}\n@desc Unfollow a person\n@returns(200) the person is now unfollowed\n@errors {404: this person was not followed}\n\n@endpoint GET /user/follows/networks\n@desc List the followed networks\n@optional {embed: any # Embed full network info}\n@returns(200) An array of followed networks\n\n@endpoint GET /user/follows/networks/{network_id}\n@desc Check if a network is followed\n@returns(200) The followed network\n@errors {404: this network is not followed}\n\n@endpoint PUT /user/follows/networks/{network_id}\n@desc Follow a network\n@returns(200) this network is now followed\n@errors {404: this network does not exist}\n\n@endpoint DELETE /user/follows/networks/{network_id}\n@desc Unfollow a network\n@returns(200) the network is now unfollowed\n@errors {404: this network was not followed}\n\n@endpoint GET /user/follows/webchannels\n@desc List the followed webchannels\n@optional {embed: any # Embed full webchannel info}\n@returns(200) An array of followed webchannels\n\n@endpoint GET /user/follows/webchannels/{webchannel_id}\n@desc Check if a webchannel is followed\n@returns(200) The followed webchannel\n@errors {404: this webchannel is not followed}\n\n@endpoint PUT /user/follows/webchannels/{webchannel_id}\n@desc Follow a webchannel\n@returns(200) this webchannel is now followed\n@errors {404: this webchannel does not exist}\n\n@endpoint DELETE /user/follows/webchannels/{webchannel_id}\n@desc Unfollow a webchannel\n@returns(200) the webchannel is now unfollowed\n@errors {404: this webchannel was not followed}\n\n@endpoint GET /user/tags\n@desc List all tags\n@returns(200) An array of tags\n\n@endpoint POST /user/tags\n@desc Create a new tag\n@optional {body: map}\n@returns(200) The newly created tag\n@errors {422: invalid input data}\n\n@endpoint DELETE /user/tags/{tag_id}\n@desc Delete a specific tag\n@required {tag_id: any}\n@returns(200) The tag was deleted\n@errors {404: The tag does not exist}\n\n@endpoint PATCH /user/tags/{tag_id}\n@desc Update a specific tag\n@required {tag_id: any}\n@optional {body: map}\n@returns(200) The tag was updated\n@errors {404: The tag does not exist, 422: The tag could not be updated}\n\n@endpoint GET /user/tags/{tag_id}/shows\n@desc List all shows under this tag\n@required {tag_id: any}\n@optional {embed: any # Embed full show info}\n@returns(200) A list of tagged shows\n@errors {404: The tag does not exist}\n\n@endpoint PUT /user/tags/{tag_id}/shows/{show_id}\n@desc Tag a show\n@required {tag_id: any, show_id: any}\n@returns(200) The show was tagged\n@errors {404: The show or tag does not exist}\n\n@endpoint DELETE /user/tags/{tag_id}/shows/{show_id}\n@desc Untag a show\n@required {tag_id: any, show_id: any}\n@returns(200) The show was untagged\n@errors {404: The show was not tagged}\n\n@endpoint GET /user/votes/shows\n@desc List the shows voted for\n@optional {embed: any # Embed full show info}\n@returns(200) An array of show votes\n\n@endpoint GET /user/votes/shows/{show_id}\n@desc Check if a show is voted for\n@returns(200) The show vote\n@errors {404: This show is not voted for}\n\n@endpoint PUT /user/votes/shows/{show_id}\n@desc Vote for a show\n@optional {body: map}\n@returns(200) This show is now voted for\n@errors {404: This show does not exist, 422: Invalid vote}\n\n@endpoint DELETE /user/votes/shows/{show_id}\n@desc Remove a show vote\n@returns(200) The show vote is now removed\n@errors {404: This show was not voted for}\n\n@endpoint GET /user/votes/episodes\n@desc List the episodes voted for\n@returns(200) An array of episode votes\n\n@endpoint GET /user/votes/episodes/{episode_id}\n@desc Check if an episode is voted for\n@returns(200) The episode vote\n@errors {404: This episode is not voted for}\n\n@endpoint PUT /user/votes/episodes/{episode_id}\n@desc Vote for an episode\n@optional {body: map}\n@returns(200) This episode is now voted for\n@errors {404: This episode does not exist, 422: Invalid vote}\n\n@endpoint DELETE /user/votes/episodes/{episode_id}\n@desc Remove an episode vote\n@returns(200) The episode vote is now removed\n@errors {404: This episode was not voted for}\n\n@endgroup\n\n@group scrobble\n@endpoint GET /scrobble/shows/{show_id}\n@desc List watched and acquired episodes for a show\n@returns(200) An array of marked episodes\n\n@endpoint PUT /scrobble/episodes/{episode_id}\n@desc Mark an episode as acquired or watched based on its ID\n@optional {body: map}\n@returns(200) this episode is now marked\n@errors {404: this episode does not exist, 422: invalid input data}\n\n@endpoint POST /scrobble/shows\n@desc Mark episodes within a show as acquired or watched based on their attributes\n@optional {tvmaze_id: any # The show's TVmaze ID, thetvdb_id: any # The show's TheTVDB ID, imdb_id: any # The show's IMDB ID, episodes: [map]}\n@returns(200) All episodes were succesfully marked\n@returns(207) Some episodes were succesfully marked, but there are errors\n@errors {422: None of the episodes were succesfully marked}\n\n@endpoint POST /scrobble/episodes\n@desc Mark episodes as acquired or watched based on their IDs\n@optional {episodes: [map]}\n@returns(200) All episodes were succesfully marked\n@returns(207) Some episodes were succesfully marked, but there are errors\n@errors {422: None of the episodes were succesfully marked}\n\n@endgroup\n\n@group auth\n@endpoint POST /auth/start\n@desc Start an authentication request\n@required {body: map}\n@returns(200) The authentication request was succesfully started\n@errors {401: The email address was found, but not confirmed, 404: The email address was not found, 429: You are starting authentication requests too quickly, please back off}\n\n@endpoint POST /auth/poll\n@desc Poll whether an authentication request was confirmed\n@required {body: map}\n@returns(200) The user confirmed the authentication request\n@errors {403: The authentication request was not confirmed yet, 404: The authentication request was not found, 429: You are polling too quickly, please back off}\n\n@endpoint GET /auth/validate\n@desc Validate your authentication credentials\n@returns(200) The supplied credentials are valid\n@errors {401: The supplied credentials are not valid}\n\n@endgroup\n\n@end\n"}