{"openapi":"3.0.3","info":{"title":"Potter DB API","version":"v1","description":"This is the API for Potter DB. It is a RESTful API that uses JSON:API.           \n\nFurther links:           \n- [potterdb.com](https://potterdb.com)           \n- [docs.potterdb.com](https://docs.potterdb.com)           \n- [jsonapi.org](https://jsonapi.org)","contact":{"name":"Support","url":"https://github.com/danielschuster-muc/potter-db/issues"},"license":{"name":"MIT","url":"https://opensource.org/licenses/MIT"}},"servers":[{"url":"https://api.potterdb.com","description":"Production server"}],"tags":[{"name":"books","description":"Books","externalDocs":{"description":"What are books?","url":"https://docs.potterdb.com/resources/books"}},{"name":"characters","description":"Characters","externalDocs":{"description":"What are characters?","url":"https://docs.potterdb.com/resources/characters"}},{"name":"movies","description":"Movies","externalDocs":{"description":"What are movies?","url":"https://docs.potterdb.com/resources/movies"}},{"name":"potions","description":"Potions","externalDocs":{"description":"What are potions?","url":"https://docs.potterdb.com/resources/potions"}},{"name":"spells","description":"Spells","externalDocs":{"description":"What are spells?","url":"https://docs.potterdb.com/resources/spells"}}],"paths":{"/v1/books":{"get":{"summary":"Retrieves a list of books","tags":["books"],"description":"Retrieves a list of books; paginated, sorted and filtered by attributes.","operationId":"getBooks","parameters":[{"$ref":"#/components/parameters/page_size"},{"$ref":"#/components/parameters/page_number"},{"$ref":"#/components/parameters/sort_books"},{"$ref":"#/components/parameters/filter_books_by"}],"responses":{"200":{"description":"A list of books","content":{"application/vnd.api+json":{"schema":{"allOf":[{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/book"}}}},{"$ref":"#/components/schemas/success_without_data"}]}}}}}}},"/v1/books/{id}":{"get":{"summary":"Retrieves a book","tags":["books"],"description":"Retrieves a specific book by id, use \"random\" to get a random book.","operationId":"getBook","parameters":[{"name":"id","description":"The identifier of the book. Must be a valid UUID v4 or slug.","in":"path","required":true,"schema":{"oneOf":[{"$ref":"#/components/schemas/uuid_path"},{"$ref":"#/components/schemas/slug_path"}]}}],"responses":{"200":{"description":"A single book","content":{"application/vnd.api+json":{"schema":{"allOf":[{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/book"}}},{"$ref":"#/components/schemas/success_without_data"}]}}}},"404":{"description":"Book not found","content":{"application/vnd.api+json":{"schema":{"$ref":"#/components/schemas/not_found"}}}}}}},"/v1/books/{id}/chapters":{"get":{"summary":"Retrieves a list of chapters of a given book","tags":["books"],"description":"Retrieves a list of chapters of a given book; paginated, sorted and filtered by attributes.","operationId":"getChapters","parameters":[{"name":"id","description":"The identifier of the book. Must be a valid UUID v4 or slug.","in":"path","required":true,"schema":{"oneOf":[{"$ref":"#/components/schemas/uuid_path"},{"$ref":"#/components/schemas/slug_path"}]}},{"$ref":"#/components/parameters/page_size"},{"$ref":"#/components/parameters/page_number"},{"$ref":"#/components/parameters/sort_chapters"},{"$ref":"#/components/parameters/filter_chapters_by"}],"responses":{"200":{"description":"A list of chapters","content":{"application/vnd.api+json":{"schema":{"allOf":[{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/chapter"}}}},{"$ref":"#/components/schemas/success_without_data"}]}}}},"404":{"description":"Chapter not found","content":{"application/vnd.api+json":{"schema":{"$ref":"#/components/schemas/not_found"}}}}}}},"/v1/books/{book_id}/chapters/{id}":{"get":{"summary":"Retrieves a chapter of a given book","tags":["books"],"description":"Retrieves a specific chapter of a given book by id, use \"random\" to get a random chapter.","operationId":"getChapter","parameters":[{"name":"book_id","description":"The identifier of the book. Must be a valid UUID v4 or slug.","in":"path","required":true,"schema":{"oneOf":[{"$ref":"#/components/schemas/uuid_path"},{"$ref":"#/components/schemas/slug_path"}]}},{"name":"id","description":"The identifier of the book's chapter. Must be a valid UUID v4 or slug.","in":"path","required":true,"schema":{"oneOf":[{"$ref":"#/components/schemas/uuid_path"},{"$ref":"#/components/schemas/slug_path"}]}}],"responses":{"200":{"description":"A single chapter","content":{"application/vnd.api+json":{"schema":{"allOf":[{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/chapter"}}},{"$ref":"#/components/schemas/success_without_data"}]}}}},"404":{"description":"Book or Chapter not found","content":{"application/vnd.api+json":{"schema":{"$ref":"#/components/schemas/not_found"}}}}}}},"/v1/characters":{"get":{"summary":"Retrieves a list of characters","tags":["characters"],"description":"Retrieves a list of characters; paginated, sorted and filtered by attributes.","operationId":"getCharacters","parameters":[{"$ref":"#/components/parameters/page_size"},{"$ref":"#/components/parameters/page_number"},{"$ref":"#/components/parameters/sort_characters"},{"$ref":"#/components/parameters/filter_characters_by"}],"responses":{"200":{"description":"A list of characters","content":{"application/vnd.api+json":{"schema":{"allOf":[{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/character"}}}},{"$ref":"#/components/schemas/success_without_data"}]}}}}}}},"/v1/characters/{id}":{"get":{"summary":"Retrieves a character","tags":["characters"],"description":"Retrieves a specific character by id, use \"random\" to get a random character.","operationId":"getCharacter","parameters":[{"name":"id","description":"The identifier of the character. Must be a valid UUID v4 or slug.","in":"path","required":true,"schema":{"oneOf":[{"$ref":"#/components/schemas/uuid_path"},{"$ref":"#/components/schemas/slug_path"}]}}],"responses":{"200":{"description":"A single character","content":{"application/vnd.api+json":{"schema":{"allOf":[{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/character"}}},{"$ref":"#/components/schemas/success_without_data"}]}}}},"404":{"description":"Character not found","content":{"application/vnd.api+json":{"schema":{"$ref":"#/components/schemas/not_found"}}}}}}},"/v1/movies":{"get":{"summary":"Retrieves a list of movies","tags":["movies"],"description":"Retrieves a list of movies; paginated, sorted and filtered by attributes.","operationId":"getMovies","parameters":[{"$ref":"#/components/parameters/page_size"},{"$ref":"#/components/parameters/page_number"},{"$ref":"#/components/parameters/sort_movies"},{"$ref":"#/components/parameters/filter_movies_by"}],"responses":{"200":{"description":"A list of movies","content":{"application/vnd.api+json":{"schema":{"allOf":[{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/movie"}}}},{"$ref":"#/components/schemas/success_without_data"}]}}}}}}},"/v1/movies/{id}":{"get":{"summary":"Retrieves a movie","tags":["movies"],"description":"Retrieves a specific movie by id, use \"random\" to get a random movie.","operationId":"getMovie","parameters":[{"name":"id","description":"The identifier of the movie. Must be a valid UUID v4 or slug.","in":"path","required":true,"schema":{"oneOf":[{"$ref":"#/components/schemas/uuid_path"},{"$ref":"#/components/schemas/slug_path"}]}}],"responses":{"200":{"description":"A single movie","content":{"application/vnd.api+json":{"schema":{"allOf":[{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/movie"}}},{"$ref":"#/components/schemas/success_without_data"}]}}}},"404":{"description":"Movie not found","content":{"application/vnd.api+json":{"schema":{"$ref":"#/components/schemas/not_found"}}}}}}},"/v1/potions":{"get":{"summary":"Retrieves a list of potions","tags":["potions"],"description":"Retrieves a list of potions; paginated, sorted and filtered by attributes.","operationId":"getPotions","parameters":[{"$ref":"#/components/parameters/page_size"},{"$ref":"#/components/parameters/page_number"},{"$ref":"#/components/parameters/sort_potions"},{"$ref":"#/components/parameters/filter_potions_by"}],"responses":{"200":{"description":"A list of potions","content":{"application/vnd.api+json":{"schema":{"allOf":[{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/potion"}}}},{"$ref":"#/components/schemas/success_without_data"}]}}}}}}},"/v1/potions/{id}":{"get":{"summary":"Retrieves a potion","tags":["potions"],"description":"Retrieves a specific potion by id, use \"random\" to get a random potion.","operationId":"getPotion","parameters":[{"name":"id","description":"The identifier of the potion. Must be a valid UUID v4 or slug.","in":"path","required":true,"schema":{"oneOf":[{"$ref":"#/components/schemas/uuid_path"},{"$ref":"#/components/schemas/slug_path"}]}}],"responses":{"200":{"description":"A single potion","content":{"application/vnd.api+json":{"schema":{"allOf":[{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/potion"}}},{"$ref":"#/components/schemas/success_without_data"}]}}}},"404":{"description":"Potion not found","content":{"application/vnd.api+json":{"schema":{"$ref":"#/components/schemas/not_found"}}}}}}},"/v1/spells":{"get":{"summary":"Retrieves a list of spells","tags":["spells"],"description":"Retrieves a list of spells; paginated, sorted and filtered by attributes.","operationId":"getSpells","parameters":[{"$ref":"#/components/parameters/page_size"},{"$ref":"#/components/parameters/page_number"},{"$ref":"#/components/parameters/sort_spells"},{"$ref":"#/components/parameters/filter_spells_by"}],"responses":{"200":{"description":"A list of spells","content":{"application/vnd.api+json":{"schema":{"allOf":[{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/spell"}}}},{"$ref":"#/components/schemas/success_without_data"}]}}}}}}},"/v1/spells/{id}":{"get":{"summary":"Retrieves a spell","tags":["spells"],"description":"Retrieves a specific spell by id, use \"random\" to get a random spell.","operationId":"getSpell","parameters":[{"name":"id","description":"The identifier of the spell. Must be a valid UUID v4 or slug.","in":"path","required":true,"schema":{"oneOf":[{"$ref":"#/components/schemas/uuid_path"},{"$ref":"#/components/schemas/slug_path"}]}}],"responses":{"200":{"description":"A single spell","content":{"application/vnd.api+json":{"schema":{"allOf":[{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/spell"}}},{"$ref":"#/components/schemas/success_without_data"}]}}}},"404":{"description":"Spell not found","content":{"application/vnd.api+json":{"schema":{"$ref":"#/components/schemas/not_found"}}}}}}}},"components":{"parameters":{"page_size":{"name":"page[size]","description":"The number of returned results per page (between 1 and 100).","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":100,"default":50}},"page_number":{"name":"page[number]","description":"The page number of the returned results.","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1}},"sort_books":{"name":"sort","description":"Sort books by the given field. If prefixed with \"-\" sort is descending.","in":"query","required":false,"schema":{"type":"array","uniqueItems":true,"minItems":1,"items":{"type":"string","enum":["author","-author","dedication","-dedication","pages","-pages","release_date","-release_date","summary","-summary","title","-title"]}}},"filter_books_by":{"name":"filter","description":"Filter books by the given field. Use ransack matchers to filter. \\\n              See [Ransack Search Matchers] \\\n              (https://activerecord-hackery.github.io/ransack/getting-started/search-matches/). \\\n              Example: `{ \"filter[title_cont]\": \"Azkaban\" }`","in":"query","required":false,"schema":{"type":"object","nullable":true}},"sort_chapters":{"name":"sort","description":"Sort books by the given field. If prefixed with \"-\" sort is descending.","in":"query","required":false,"schema":{"type":"array","uniqueItems":true,"minItems":1,"items":{"type":"string","enum":["order","-order","summary","-summary","title","-title"]}}},"filter_chapters_by":{"name":"filter","description":"Filter chapters by the given field. Use ransack matchers to filter. \\\n              See [Ransack Search Matchers] \\\n              (https://activerecord-hackery.github.io/ransack/getting-started/search-matches/). \\\n              Example: `{ \"filter[title_cont]\": \"Glass\" }`","in":"query","required":false,"schema":{"type":"object","nullable":true}},"sort_characters":{"name":"sort","description":"Sort characters by the given field. If prefixed with \"-\" sort is descending.","in":"query","required":false,"schema":{"type":"array","uniqueItems":true,"minItems":1,"items":{"type":"string","enum":["alias_names","-alias_names","animagus","-animagus","blood_status","-blood_status","boggart","-boggart","born","-born","died","-died","eye_color","-eye_color","family_members","-family_members","gender","-gender","hair_color","-hair_color","height","-height","house","-house","jobs","-jobs","marital_status","-marital_status","name","-name","nationality","-nationality","patronus","-patronus","romances","-romances","skin_color","-skin_color","species","-species","titles","-titles","wands","-wands","weight","-weight"]}}},"filter_characters_by":{"name":"filter","description":"Filter characters by the given field. Use ransack matchers to filter. \\\n              See [Ransack Search Matchers] \\\n              (https://activerecord-hackery.github.io/ransack/getting-started/search-matches/). \\\n              Example: `{ \"filter[name_cont]\": \"Weasley\" }`","in":"query","required":false,"schema":{"type":"object","nullable":true}},"sort_movies":{"name":"sort","description":"Sort movies by the given field. If prefixed with \"-\" sort is descending.","in":"query","required":false,"schema":{"type":"array","uniqueItems":true,"minItems":1,"items":{"type":"string","enum":["box_office","-box_office","budget","-budget","cinematographers","-cinematographers","directors","-directors","distributors","-distributors","editors","-editors","music_composers","-music_composers","producers","-producers","rating","-rating","release_date","-release_date","running_time","-running_time","screenwriters","-screenwriters","summary","-summary","title","-title"]}}},"filter_movies_by":{"name":"filter","description":"Filter movies by the given field. Use ransack matchers to filter. \\\n              See [Ransack Search Matchers] \\\n              (https://activerecord-hackery.github.io/ransack/getting-started/search-matches/). \\\n              Example: `{ \"filter[title_cont]\": \"Fantastic\" }`","in":"query","required":false,"schema":{"type":"object","nullable":true}},"sort_potions":{"name":"sort","description":"Sort potions by the given field. If prefixed with \"-\" sort is descending.","in":"query","required":false,"schema":{"type":"array","uniqueItems":true,"minItems":1,"items":{"type":"string","enum":["characteristics","-characteristics","difficulty","-difficulty","effect","-effect","ingredients","-ingredients","inventors","-inventors","manufacturers","-manufacturers","name","-name","side_effects","-side_effects","time","-time"]}}},"filter_potions_by":{"name":"filter","description":"Filter potions by the given field. Use ransack matchers to filter. \\\n              See [Ransack Search Matchers] \\\n              (https://activerecord-hackery.github.io/ransack/getting-started/search-matches/). \\\n              Example: `{ \"filter[name_cont]\": \"Age\" }`","in":"query","required":false,"schema":{"type":"object","nullable":true}},"sort_spells":{"name":"sort","description":"Sort spells by the given field. If prefixed with \"-\" sort is descending.","in":"query","required":false,"schema":{"type":"array","uniqueItems":true,"minItems":1,"items":{"type":"string","enum":["category","-category","creator","-creator","effect","-effect","hand","-hand","incantation","-incantation","light","-light","name","-name"]}}},"filter_spells_by":{"name":"filter","description":"Filter spells by the given field. Use ransack matchers to filter. \\\n              See [Ransack Search Matchers] \\\n              (https://activerecord-hackery.github.io/ransack/getting-started/search-matches/). \\\n              Example: `{ \"filter[name_cont]\": \"Age\" }`","in":"query","required":false,"schema":{"type":"object","nullable":true}}},"schemas":{"meta":{"description":"Meta information about the response.","type":"object","properties":{"copyright":{"type":"string"},"generated_at":{"type":"string","format":"date_time"}},"example":{"copyright":"Copyright © Potter DB 2023","generated_at":"2023-10-14T21:53:54+02:00"}},"pagination_links":{"type":"object","properties":{"self":{"description":"The current page of data.","type":"string","nullable":true},"current":{"description":"The current page of data.","type":"string","nullable":true},"first":{"description":"The first page of data.","type":"string","nullable":true},"prev":{"description":"The prev page of data.","type":"string","nullable":true},"next":{"description":"The next page of data.","type":"string","nullable":true},"last":{"description":"The last page of data.","type":"string","nullable":true}},"required":["self"]},"not_found":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"status":{"type":"string","enum":["404"]},"title":{"type":"string","example":"Not found"}}}}},"example":{"errors":[{"title":"Not found","status":"404"}]}},"success_without_data":{"type":"object","properties":{"meta":{"$ref":"#/components/schemas/meta"},"links":{"$ref":"#/components/schemas/pagination_links"}}},"uuid_path":{"type":"string","format":"uuid","example":"c1637a49-3cc8-4285-93a1-28e6579f1f20"},"slug_path":{"type":"string","pattern":"^[a-zA-Z0-9](?:[-\\w]*[a-zA-Z0-9])?$","example":"harry-potter-and-the-philosopher-s-stone"},"to_many_chapters_relationship":{"type":"array","uniqueItems":true,"items":{"$ref":"#/components/schemas/to_one_chapter_relationship"},"example":[{"id":"c1637a49-3cc8-4285-93a1-28e6579f1f20","type":"chapter"}]},"to_one_chapter_relationship":{"type":"object","properties":{"id":{"description":"The unique identifier of the chapter.","type":"string","pattern":"^[a-zA-Z0-9](?:[-\\w]*[a-zA-Z0-9])?$"},"type":{"type":"string","enum":["chapter"]}},"required":["id","type"]},"to_one_book_relationship":{"type":"object","properties":{"id":{"description":"The unique identifier of the book.","type":"string","pattern":"^[a-zA-Z0-9](?:[-\\w]*[a-zA-Z0-9])?$"},"type":{"type":"string","enum":["book"]}},"required":["id","type"]},"book":{"description":"Representation of a book.","type":"object","properties":{"id":{"description":"The unique identifier of the book. Must be a valid UUID v4.","type":"string","pattern":"^[a-zA-Z0-9](?:[-\\w]*[a-zA-Z0-9])?$","example":"c1637a49-3cc8-4285-93a1-28e6579f1f20"},"type":{"type":"string","enum":["book"]},"attributes":{"type":"object","properties":{"slug":{"type":"string","example":"harry-potter-and-the-philosopher-s-stone"},"title":{"type":"string","example":"Harry Potter and the Philosopher's Stone"},"summary":{"type":"string","nullable":true},"author":{"type":"string","nullable":true},"release_date":{"type":"string","format":"date","nullable":true},"dedication":{"type":"string","nullable":true},"pages":{"type":"integer","nullable":true},"order":{"type":"integer","nullable":true},"cover":{"type":"string","format":"uri","nullable":true},"wiki":{"type":"string","format":"uri","nullable":true}},"required":["slug","title"]},"relationships":{"type":"object","properties":{"chapters":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/to_many_chapters_relationship"}}}}},"links":{"type":"object","properties":{"self":{"type":"string","pattern":"/v1/books/[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}","example":"/v1/books/c1637a49-3cc8-4285-93a1-28e6579f1f20"}}}},"required":["id","type","attributes"]},"chapter":{"description":"Representation of a chapter.","type":"object","properties":{"id":{"description":"The unique identifier of the chapter. Must be a valid UUID v4.","type":"string","pattern":"^[a-zA-Z0-9](?:[-\\w]*[a-zA-Z0-9])?$","example":"c1637a49-3cc8-4285-93a1-28e6579f1f20"},"type":{"type":"string","enum":["chapter"]},"attributes":{"type":"object","properties":{"slug":{"type":"string","example":"the-boy-who-lived","format":"slug"},"title":{"type":"string","example":"The Boy Who Lived"},"summary":{"type":"string","nullable":true},"order":{"type":"integer","nullable":true}},"required":["slug","title"]},"relationships":{"type":"object","properties":{"book":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/to_one_book_relationship"}}}}},"links":{"type":"object","properties":{"self":{"type":"string","pattern":"/v1/books/[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}/chapters/[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}","example":"/v1/books/7f8d9b7c-5a7c-4f7c-9d5a-1d8e6f7a8b9d/chapters/c1637a49-3cc8-4285-93a1-28e6579f1f20"}}}},"required":["id","type","attributes"]},"character":{"description":"Representation of a character.","type":"object","properties":{"id":{"description":"The unique identifier of the character. Must be a valid UUID v4.","type":"string","pattern":"^[a-zA-Z0-9](?:[-\\w]*[a-zA-Z0-9])?$","example":"c1637a49-3cc8-4285-93a1-28e6579f1f20"},"type":{"type":"string","enum":["character"]},"attributes":{"type":"object","properties":{"slug":{"type":"string","example":"harry-potter"},"name":{"type":"string","example":"Harry James Potter"},"born":{"type":"string","nullable":true},"died":{"type":"string","nullable":true},"gender":{"type":"string","nullable":true},"species":{"type":"string","nullable":true},"height":{"type":"string","nullable":true},"weight":{"type":"string","nullable":true},"hair_color":{"type":"string","nullable":true},"eye_color":{"type":"string","nullable":true},"skin_color":{"type":"string","nullable":true},"blood_status":{"type":"string","nullable":true},"marital_status":{"type":"string","nullable":true},"nationality":{"type":"string","nullable":true},"animagus":{"type":"string","nullable":true},"boggart":{"type":"string","nullable":true},"house":{"type":"string","nullable":true},"patronus":{"type":"string","nullable":true},"alias_names":{"type":"array","items":{"type":"string"}},"family_members":{"type":"array","items":{"type":"string"}},"jobs":{"type":"array","items":{"type":"string"}},"romances":{"type":"array","items":{"type":"string"}},"titles":{"type":"array","items":{"type":"string"}},"wands":{"type":"array","items":{"type":"string"}},"image":{"type":"string","format":"uri","nullable":true},"wiki":{"type":"string","format":"uri","nullable":true}},"required":["slug","name"]},"links":{"type":"object","properties":{"self":{"type":"string","pattern":"/v1/characters/[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}","example":"/v1/characters/c1637a49-3cc8-4285-93a1-28e6579f1f20"}}}},"required":["id","type","attributes"]},"movie":{"description":"Representation of a movie.","type":"object","properties":{"id":{"description":"The unique identifier of the movie. Must be a valid UUID v4.","type":"string","pattern":"^[a-zA-Z0-9](?:[-\\w]*[a-zA-Z0-9])?$","example":"c1637a49-3cc8-4285-93a1-28e6579f1f20"},"type":{"type":"string","enum":["movie"]},"attributes":{"type":"object","properties":{"slug":{"type":"string","example":"harry-potter-and-the-philosopher-s-stone"},"title":{"type":"string","example":"Harry Potter and the Philosopher's Stone"},"summary":{"type":"string","nullable":true},"director":{"type":"array","items":{"type":"string"}},"screenwriters":{"type":"array","items":{"type":"string"}},"producers":{"type":"array","items":{"type":"string"}},"cinematographers":{"type":"array","items":{"type":"string"}},"editors":{"type":"array","items":{"type":"string"}},"distributors":{"type":"array","items":{"type":"string"}},"music_composers":{"type":"array","items":{"type":"string"}},"release_date":{"type":"string","nullable":true},"running_time":{"type":"string","nullable":true},"budget":{"type":"string","nullable":true},"box_office":{"type":"string","nullable":true},"rating":{"type":"string","nullable":true},"order":{"type":"integer","nullable":true},"trailer":{"type":"string","format":"uri","nullable":true},"image":{"type":"string","format":"uri","nullable":true},"wiki":{"type":"string","format":"uri","nullable":true}},"required":["slug","title"]},"links":{"type":"object","properties":{"self":{"type":"string","pattern":"/v1/movies/[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}","example":"/v1/movies/c1637a49-3cc8-4285-93a1-28e6579f1f20"}}}},"required":["id","type","attributes"]},"potion":{"description":"Representation of a potion.","type":"object","properties":{"id":{"description":"The unique identifier of the potion. Must be a valid UUID v4.","type":"string","pattern":"^[a-zA-Z0-9](?:[-\\w]*[a-zA-Z0-9])?$","example":"c1637a49-3cc8-4285-93a1-28e6579f1f20"},"type":{"type":"string","enum":["potion"]},"attributes":{"type":"object","properties":{"slug":{"type":"string","example":"ageing-potion"},"name":{"type":"string","example":"Ageing Potion"},"effect":{"type":"string","nullable":true},"side_effects":{"type":"string","nullable":true},"characteristics":{"type":"string","nullable":true},"time":{"type":"string","nullable":true},"difficulty":{"type":"string","nullable":true},"ingredients":{"type":"string","nullable":true},"inventors":{"type":"string","nullable":true},"manufacturers":{"type":"string","nullable":true},"image":{"type":"string","format":"uri","nullable":true},"wiki":{"type":"string","format":"uri","nullable":true}},"required":["slug","name"]},"links":{"type":"object","properties":{"self":{"type":"string","pattern":"/v1/potions/[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}","example":"/v1/potions/c1637a49-3cc8-4285-93a1-28e6579f1f20"}}}},"required":["id","type","attributes"]},"spell":{"description":"Representation of a spells.","type":"object","properties":{"id":{"description":"The unique identifier of the spells. Must be a valid UUID v4 or slug.","type":"string","pattern":"^[a-zA-Z0-9](?:[-\\w]*[a-zA-Z0-9])?$","example":"c1637a49-3cc8-4285-93a1-28e6579f1f20"},"type":{"type":"string","enum":["spell"]},"attributes":{"type":"object","properties":{"slug":{"type":"string","example":"age-line"},"name":{"type":"string","example":"Age Line"},"incantation":{"type":"string","nullable":true},"category":{"type":"string","nullable":true},"effect":{"type":"string","nullable":true},"light":{"type":"string","nullable":true},"hand":{"type":"string","nullable":true},"creator":{"type":"string","nullable":true},"image":{"type":"string","format":"uri","nullable":true},"wiki":{"type":"string","format":"uri","nullable":true}},"required":["slug","name"]},"links":{"type":"object","properties":{"self":{"type":"string","pattern":"/v1/spells/[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}","example":"/v1/spells/c1637a49-3cc8-4285-93a1-28e6579f1f20"}}}},"required":["id","type","attributes"]}}}}