{"basePath":"/","consumes":["application/vnd.api+json"],"definitions":{"Classification":{"description":"A classification, in general, is something that can describe other resources, such as countries, genres or\nlanguages. How they're described (included or excluded, and whether they're the primary classification\nof this type) is handled using other resources. Different functions of ART19 rely on classifications differently,\nand could have an effect only on directory information, or may have an effect on ad decisioning.\n","properties":{"attributes":{"properties":{"created_at":{"format":"date-time","type":"string"},"display_name":{"description":"Human readable representation of the classification.","type":"string"},"metadata":{"description":"An object with more detailed information about the classification.\nThe possible members are different per type of classification.\n","type":"object"},"parent_id":{"deprecated":true,"description":"This will be replaced by the relationship `parent` in a future update.<br/>\nFor hierarchical classifications, this is the ID of the parent classification.\n","format":"uuid","type":"string"},"tree_path":{"description":"For hierarchical classifications this is the list of IDs reflecting the hierarchy starting\nwith the root level node.\n","example":["6035edf6-378a-49fc-8534-8bfc59aa0552","d5152e26-7d62-4d19-8f4f-a4a4c83b0e13"],"items":{"format":"uuid","type":"string"},"type":"array"},"type":{"description":"The type of classification. The type of retrievable classifications depends on the privileges\nof the credential being used.\n","enum":["AlternateFeedType","Genre","Industry","Language","MediaRating"],"example":"Genre","type":"string"},"updated_at":{"format":"date-time","type":"string"},"value":{"description":"The value the classification represents. The meaning of this attribute depends on the type of classification.\n","type":"string"},"value_path":{"description":"For hierarchical classifications this is a concatenated string of all the classification\nvalues from the root to this classification using a `: ` as separator.\n","example":"Comedy: Standup","type":"string"}},"type":"object"},"id":{"example":"c1fbb1bf-45b1-4803-986e-123166f7f427","format":"uuid","type":"string"},"type":{"description":"The type of resource. This is always `classifications`.","example":"classifications","type":"string"}},"type":"object"},"ClassificationInclusion":{"description":"Connects a Classification with a classified item like a Series, Season or Episode.\n","properties":{"attributes":{"properties":{"classification_id":{"deprecated":true,"description":"This will be replaced by the relationship `classification` in a future update.<br/>\nThe ID of the classification linked to the entity.\n","example":"497aad13-1c96-41d8-80e2-9a5aa7bc96fa","format":"uuid","type":"string"},"classification_type":{"deprecated":true,"description":"This will be replaced by the relationship `classification` in a future update.<br/>.","enum":["AlternateFeedType","Genre","Industry","Language","MediaRating"],"type":"string"},"classified_id":{"deprecated":true,"description":"This will be replaced by the relationship `classified` in a future update.<br/>\nThe ID of the entity linked to the classification.\n","example":"8e9dc5d8-8a16-424e-ba96-6a7261a9a23b","format":"uuid","type":"string"},"classified_type":{"deprecated":true,"description":"This will be replaced by the relationship `classified` in a future update.<br/>.","enum":["Series","Season","Episode"],"type":"string"},"created_at":{"format":"date-time","type":"string"},"position":{"description":"The position or order of the linked classification within the classified resource.","type":"integer"},"primary":{"description":"When `true` it describes the best classification of a specific type for a given\nclassified item.\n","type":"boolean"},"updated_at":{"format":"date-time","type":"string"}},"type":"object"},"id":{"example":"c1fbb1bf-45b1-4803-986e-123166f7f427","format":"uuid","type":"string"},"relationships":{"properties":{"classification":{"description":"The classification linked to the entity.","properties":{"data":{"description":"[JSON:API Resource Identifier Object](https://jsonapi.org/format/#document-resource-identifier-objects)","nullable":false,"properties":{"id":{"description":"The ID of the classification.","example":"2613eb10-15dc-4874-a35e-e580e8cf7063","format":"uuid","type":"string"},"type":{"description":"The type of resource: `classifications`","example":"classifications","type":"string"}},"type":"object"}},"type":"object"}},"type":"object"},"type":{"description":"The type of resource. This is always `classification_inclusion`.","example":"classification_inclusion","type":"string"}},"type":"object"},"Credit":{"description":"A credit links a specific person to a series, season, or episode in a specific role.\n","properties":{"attributes":{"properties":{"created_at":{"format":"date-time","type":"string"},"position":{"description":"The order of this credit within all credits of the referenced creditable entity.","type":"integer"},"type":{"description":"The type of credit the linked person has on the referenced entity.","enum":["AnchorCredit","AssociateProducerCredit","AuthorCredit","CastCredit","CoHostCredit","ComposerCredit","CreatorCredit","Credit","DirectorCredit","EditorCredit","EngineerCredit","ExecutiveProducerCredit","GuestCoHostCredit","GuestCredit","GuestHostCredit","HeadWriterCredit","HostCredit","ProducerCredit","ReporterCredit","SeniorProducerCredit","SidekickCredit","VideoProducerCredit","WriterCredit"],"type":"string"},"updated_at":{"format":"date-time","type":"string"}},"type":"object"},"id":{"example":"c1fbb1bf-45b1-4803-986e-123166f7f427","format":"uuid","type":"string"},"relationships":{"properties":{"creditable":{"description":"The entity this credit is for.","properties":{"data":{"description":"[JSON:API Resource Identifier Object](https://jsonapi.org/format/#document-resource-identifier-objects)","nullable":false,"properties":{"id":{"description":"The ID of the creditable.","example":"2613eb10-15dc-4874-a35e-e580e8cf7063","format":"uuid","type":"string"},"type":{"description":"The type of resource. This is the pluralized type of the creditable (i.e. `series`, `seasons`, `episodes`)","example":"creditables","type":"string"}},"type":"object"}},"type":"object"},"person":{"description":"The person who takes credit","properties":{"data":{"description":"[JSON:API Resource Identifier Object](https://jsonapi.org/format/#document-resource-identifier-objects)","nullable":false,"properties":{"id":{"description":"The ID of the person.","example":"2613eb10-15dc-4874-a35e-e580e8cf7063","format":"uuid","type":"string"},"type":{"description":"The type of resource: `people`","example":"people","type":"string"}},"type":"object"}},"type":"object"}},"type":"object"},"type":{"description":"The type of resource. This is always `credits`.","example":"credits","type":"string"}},"type":"object"},"CreditCreate":{"properties":{"data":{"properties":{"attributes":{"properties":{"position":{"description":"The order of this credit within all credits of the referenced creditable entity.","type":"integer"},"type":{"description":"The type of credit the linked person has on the referenced entity.","enum":["AnchorCredit","AssociateProducerCredit","AuthorCredit","CastCredit","CoHostCredit","ComposerCredit","CreatorCredit","Credit","DirectorCredit","EditorCredit","EngineerCredit","ExecutiveProducerCredit","GuestCoHostCredit","GuestCredit","GuestHostCredit","HeadWriterCredit","HostCredit","ProducerCredit","ReporterCredit","SeniorProducerCredit","SidekickCredit","VideoProducerCredit","WriterCredit"],"type":"string"}},"required":["type"],"type":"object"},"relationships":{"properties":{"creditable":{"description":"The entity this credit is for.","properties":{"data":{"description":"[JSON:API Resource Identifier Object](https://jsonapi.org/format/#document-resource-identifier-objects)","nullable":false,"properties":{"id":{"description":"The ID of the creditable.","example":"2613eb10-15dc-4874-a35e-e580e8cf7063","format":"uuid","type":"string"},"type":{"description":"The type of resource. This is the pluralized type of the creditable (i.e. `series`, `seasons`, `episodes`)","example":"creditables","type":"string"}},"type":"object"}},"type":"object"},"person":{"description":"The person who takes credit","properties":{"data":{"description":"[JSON:API Resource Identifier Object](https://jsonapi.org/format/#document-resource-identifier-objects)","nullable":false,"properties":{"id":{"description":"The ID of the person.","example":"2613eb10-15dc-4874-a35e-e580e8cf7063","format":"uuid","type":"string"},"type":{"description":"The type of resource: `people`","example":"people","type":"string"}},"type":"object"}},"type":"object"}},"required":["person","creditable"],"type":"object"},"type":{"description":"The type of resource. This is always `credits`.","example":"credits","type":"string"}},"required":["type","attributes","relationships"]}},"type":"object"},"CreditUpdate":{"properties":{"data":{"properties":{"attributes":{"properties":{"position":{"description":"The order of this credit within all credits of the referenced creditable entity.","type":"integer"},"type":{"description":"The type of credit the linked person has on the referenced entity.","enum":["AnchorCredit","AssociateProducerCredit","AuthorCredit","CastCredit","CoHostCredit","ComposerCredit","CreatorCredit","Credit","DirectorCredit","EditorCredit","EngineerCredit","ExecutiveProducerCredit","GuestCoHostCredit","GuestCredit","GuestHostCredit","HeadWriterCredit","HostCredit","ProducerCredit","ReporterCredit","SeniorProducerCredit","SidekickCredit","VideoProducerCredit","WriterCredit"],"type":"string"}},"type":"object"},"id":{"example":"c1fbb1bf-45b1-4803-986e-123166f7f427","format":"uuid","type":"string"},"relationships":{"properties":{"creditable":{"description":"The entity this credit is for.","properties":{"data":{"description":"[JSON:API Resource Identifier Object](https://jsonapi.org/format/#document-resource-identifier-objects)","nullable":false,"properties":{"id":{"description":"The ID of the creditable.","example":"2613eb10-15dc-4874-a35e-e580e8cf7063","format":"uuid","type":"string"},"type":{"description":"The type of resource. This is the pluralized type of the creditable (i.e. `series`, `seasons`, `episodes`)","example":"creditables","type":"string"}},"type":"object"}},"type":"object"},"person":{"description":"The person who takes credit","properties":{"data":{"description":"[JSON:API Resource Identifier Object](https://jsonapi.org/format/#document-resource-identifier-objects)","nullable":false,"properties":{"id":{"description":"The ID of the person.","example":"2613eb10-15dc-4874-a35e-e580e8cf7063","format":"uuid","type":"string"},"type":{"description":"The type of resource: `people`","example":"people","type":"string"}},"type":"object"}},"type":"object"}},"type":"object"},"type":{"description":"The type of resource. This is always `credits`.","example":"credits","type":"string"}},"required":["type","id","attributes"]}},"type":"object"},"Episode":{"properties":{"attributes":{"properties":{"allow_user_comments":{"description":"Only visible to credentials having write privileges for the series.\n","type":"boolean"},"cascaded_cover_image_id":{"deprecated":true,"description":"This will be replaced by the relationship `cover_image` in a future update.<br/>\nThe image ID of the cover art for this episode. This is the preferred image ID to use.\nIf there is no specific cover for the episode, the image ID of the season or the\nseries will be returned, whichever has one defined.\nThe `/images` endpoint provides details to the image.\n","example":"ec8f13bf-77c0-40fe-933a-8c088c16bc17","format":"uuid","readOnly":true,"type":"string"},"cover_image_id":{"deprecated":true,"description":"This will be replaced by the relationship `cover_image` in a future update.<br/>\nThe image ID of the cover art for this episode, if an episode-specific image has been provided.\nThe `/images` endpoint provideds details to the image.\n","example":"ec8f13bf-77c0-40fe-933a-8c088c16bc17","format":"uuid","type":"string"},"created_at":{"format":"date-time","type":"string"},"description":{"description":"The description of the episode, possibly in HTML format.","example":"<p><strong>Some</strong> funny example.</p>","type":"string"},"description_is_html":{"description":"Determines whether `description` is in HTML format or plain.","type":"boolean"},"description_plain":{"description":"The description with all HTML markup removed. If the description does not contain markup,\nthis is identical to `description`.\n","example":"Some funny example.","readOnly":true,"type":"string"},"file_name":{"description":"The file name, without extension, to present users when downloading the episode.","readOnly":true,"type":"string"},"itunes_type":{"description":"The type of the episode according to Apple's type categorization.","enum":["full","bonus","trailer"],"type":"string"},"listen_count":{"description":"The number of total downloads all time for this episode.\nOnly visible if the credential has the right privilege on the series.\n","readOnly":true,"type":"integer"},"premium_status":{"description":"The current premium status of the episode.","enum":["active","inactive","force-active","force-inactive"],"type":"string"},"published":{"description":"If `true`, the episode will be available for download and included in the feed as soon as its\nrelease time is reached, provided it has a valid media file, and `release_end_at` is in the future (if applicable).\n","type":"boolean"},"release_end_at":{"description":"The date and time when an episode will no longer be included in the feed, or available for download.\n`Published` will remain `true` unless the episode is manually unpublished.\n","format":"date-time","type":"string"},"release_immediately":{"deprecated":true,"description":"If `true`, the episode's release time is set in a way it is considered released right away.\nOnly visible if the credential has write privileges on the series.\n","type":"boolean"},"released_at":{"description":"The date and time when an episode will be released. It will be available for download and included\nin the feed if this time is reached, `published` is set to `true`, and the episode has a media file.\n","format":"date-time","type":"string"},"rss_guid":{"description":"A globally unique identifier describing the episode. This ID is commonly used by podcast applications\nto determine whether an episode has already been downloaded or not.\n","type":"string"},"season_id":{"deprecated":true,"description":"Use the relationship `season` instead.<br />\nThe ID of the season an episode belongs to. This can be `null`. A series can have episodes with and\nwithout seasons at the same time.\n","example":"eba5523d-e73a-43ec-bfd9-140ce9db76ac","format":"uuid","type":"string"},"series_id":{"deprecated":true,"description":"Use the relationship `series` instead.<br />\nThe ID of the series an episode belongs to.\n","example":"9897f8cb-ffa7-4674-9529-c6037826c738","format":"uuid","type":"string"},"sort_title":{"description":"The title of the episode modified for sorting. This converts all characters to\nlower case, removes any leading `The` as well as leading and trailing whitespace characters.\n","example":"big hit","readOnly":true,"type":"string"},"status":{"deprecated":true,"description":"Deprecated: Use the `published` field to control episode visibility.","enum":["active","inactive"],"type":"string"},"title":{"description":"The title of the episode.","example":"The Big Hit","type":"string"},"updated_at":{"format":"date-time","type":"string"}},"type":"object"},"id":{"example":"c1fbb1bf-45b1-4803-986e-123166f7f427","format":"uuid","type":"string"},"relationships":{"properties":{"active_version":{"description":"The currently active episode version for this episode.","properties":{"data":{"description":"[JSON:API Resource Identifier Object](https://jsonapi.org/format/#document-resource-identifier-objects)","nullable":true,"properties":{"id":{"description":"The ID of the active version.","example":"2613eb10-15dc-4874-a35e-e580e8cf7063","format":"uuid","type":"string"},"type":{"description":"The type of resource: `episode_versions`","example":"episode_versions","type":"string"}},"type":"object"}},"type":"object"},"cascaded_cover_image":{"description":"The cover art for this episode. This is the preferred image to use.\nIf there is no specific cover image for the episode, the cover of the season or the\nseries will be returned, whichever has one defined.\nThe `/images` endpoint provides details to the image.\n","properties":{"data":{"description":"[JSON:API Resource Identifier Object](https://jsonapi.org/format/#document-resource-identifier-objects)","nullable":true,"properties":{"id":{"description":"The ID of the cascaded cover image.","example":"2613eb10-15dc-4874-a35e-e580e8cf7063","format":"uuid","type":"string"},"type":{"description":"The type of resource: `images`","example":"images","type":"string"}},"type":"object"}},"type":"object"},"classification_inclusions":{"description":"A list of classifications associated with the episode.","properties":{"data":{"description":"Array of [JSON:API Resource Identifier Objects](https://jsonapi.org/format/#document-resource-identifier-objects)","items":{"properties":{"id":{"description":"The ID of the classification inclusions.","example":"2613eb10-15dc-4874-a35e-e580e8cf7063","format":"uuid","type":"string"},"type":{"description":"The type of resource: `classification_inclusions`","example":"classification_inclusions","type":"string"}},"type":"object"},"type":"array"}},"type":"object"},"cover_image":{"description":"The cover art for this episode, if an episode-specific image has been provided.\n                                   The `/images` endpoint provideds details to the image.","properties":{"data":{"description":"[JSON:API Resource Identifier Object](https://jsonapi.org/format/#document-resource-identifier-objects)","nullable":true,"properties":{"id":{"description":"The ID of the cover image.","example":"2613eb10-15dc-4874-a35e-e580e8cf7063","format":"uuid","type":"string"},"type":{"description":"The type of resource: `images`","example":"images","type":"string"}},"type":"object"}},"type":"object"},"credits":{"description":"A list of credits given to people in the episode.","properties":{"data":{"description":"Array of [JSON:API Resource Identifier Objects](https://jsonapi.org/format/#document-resource-identifier-objects)","items":{"properties":{"id":{"description":"The ID of the credits.","example":"2613eb10-15dc-4874-a35e-e580e8cf7063","format":"uuid","type":"string"},"type":{"description":"The type of resource: `credits`","example":"credits","type":"string"}},"type":"object"},"type":"array"}},"type":"object"},"images":{"description":"Both the cover image and the cascaded cover image for the season.","properties":{"data":{"description":"Array of [JSON:API Resource Identifier Objects](https://jsonapi.org/format/#document-resource-identifier-objects)","items":{"properties":{"id":{"description":"The ID of the images.","example":"2613eb10-15dc-4874-a35e-e580e8cf7063","format":"uuid","type":"string"},"type":{"description":"The type of resource: `images`","example":"images","type":"string"}},"type":"object"},"type":"array"}},"type":"object"},"media_ratings":{"description":"A list of media ratings associated with the episode.","properties":{"links":{"description":"Links to retrieve the related resources","properties":{"related":{"description":"A URL to retrieve the `media_ratings` as the primary data","type":"string"},"self":{"description":"A URL to retrieve the relationship linkage for `media_ratings`","type":"string"}},"type":"object"}},"type":"object"},"season":{"description":"The season the episode belongs to.","properties":{"data":{"description":"[JSON:API Resource Identifier Object](https://jsonapi.org/format/#document-resource-identifier-objects)","nullable":true,"properties":{"id":{"description":"The ID of the season.","example":"2613eb10-15dc-4874-a35e-e580e8cf7063","format":"uuid","type":"string"},"type":{"description":"The type of resource: `seasons`","example":"seasons","type":"string"}},"type":"object"}},"type":"object"},"series":{"description":"The series the episode belongs to","properties":{"data":{"description":"[JSON:API Resource Identifier Object](https://jsonapi.org/format/#document-resource-identifier-objects)","nullable":false,"properties":{"id":{"description":"The ID of the series.","example":"2613eb10-15dc-4874-a35e-e580e8cf7063","format":"uuid","type":"string"},"type":{"description":"The type of resource: `series`","example":"series","type":"string"}},"type":"object"}},"type":"object"}},"type":"object"},"type":{"description":"The type of resource. This is always `episodes`.","example":"episodes","type":"string"}},"type":"object"},"EpisodeCreate":{"properties":{"data":{"properties":{"attributes":{"properties":{"allow_user_comments":{"description":"Only visible to credentials having write privileges for the series.\n","type":"boolean"},"cover_image_id":{"deprecated":true,"description":"This will be replaced by the relationship `cover_image` in a future update.<br/>\nThe image ID of the cover art for this episode, if an episode-specific image has been provided.\nThe `/images` endpoint provideds details to the image.\n","example":"ec8f13bf-77c0-40fe-933a-8c088c16bc17","format":"uuid","type":"string"},"description":{"description":"The description of the episode, possibly in HTML format.","example":"<p><strong>Some</strong> funny example.</p>","type":"string"},"description_is_html":{"description":"Determines whether `description` is in HTML format or plain.","type":"boolean"},"itunes_type":{"description":"The type of the episode according to Apple's type categorization.","enum":["full","bonus","trailer"],"type":"string"},"premium_status":{"description":"The current premium status of the episode.","enum":["active","inactive","force-active","force-inactive"],"type":"string"},"published":{"description":"If `true`, the episode will be available for download and included in the feed as soon as its\nrelease time is reached, provided it has a valid media file, and `release_end_at` is in the future (if applicable).\n","type":"boolean"},"release_end_at":{"description":"The date and time when an episode will no longer be included in the feed, or available for download.\n`Published` will remain `true` unless the episode is manually unpublished.\n","format":"date-time","type":"string"},"release_immediately":{"deprecated":true,"description":"If `true`, the episode's release time is set in a way it is considered released right away.\nOnly visible if the credential has write privileges on the series.\n","type":"boolean"},"released_at":{"description":"The date and time when an episode will be released. It will be available for download and included\nin the feed if this time is reached, `published` is set to `true`, and the episode has a media file.\n","format":"date-time","type":"string"},"rss_guid":{"description":"A globally unique identifier describing the episode. This ID is commonly used by podcast applications\nto determine whether an episode has already been downloaded or not.\n","type":"string"},"season_id":{"deprecated":true,"description":"Use the relationship `season` instead.<br />\nThe ID of the season an episode belongs to. This can be `null`. A series can have episodes with and\nwithout seasons at the same time.\n","example":"eba5523d-e73a-43ec-bfd9-140ce9db76ac","format":"uuid","type":"string"},"series_id":{"deprecated":true,"description":"Use the relationship `series` instead.<br />\nThe ID of the series an episode belongs to.\n","example":"9897f8cb-ffa7-4674-9529-c6037826c738","format":"uuid","type":"string"},"status":{"deprecated":true,"description":"Deprecated: Use the `published` field to control episode visibility.","enum":["active","inactive"],"type":"string"},"title":{"description":"The title of the episode.","example":"The Big Hit","type":"string"}},"required":["title","series_id"],"type":"object"},"relationships":{"properties":{"cover_image":{"description":"The cover art for this episode, if an episode-specific image has been provided.\n                                   The `/images` endpoint provideds details to the image.","properties":{"data":{"description":"[JSON:API Resource Identifier Object](https://jsonapi.org/format/#document-resource-identifier-objects)","nullable":true,"properties":{"id":{"description":"The ID of the cover image.","example":"2613eb10-15dc-4874-a35e-e580e8cf7063","format":"uuid","type":"string"},"type":{"description":"The type of resource: `images`","example":"images","type":"string"}},"type":"object"}},"type":"object"},"season":{"description":"The season the episode belongs to.","properties":{"data":{"description":"[JSON:API Resource Identifier Object](https://jsonapi.org/format/#document-resource-identifier-objects)","nullable":true,"properties":{"id":{"description":"The ID of the season.","example":"2613eb10-15dc-4874-a35e-e580e8cf7063","format":"uuid","type":"string"},"type":{"description":"The type of resource: `seasons`","example":"seasons","type":"string"}},"type":"object"}},"type":"object"},"series":{"description":"The series the episode belongs to","properties":{"data":{"description":"[JSON:API Resource Identifier Object](https://jsonapi.org/format/#document-resource-identifier-objects)","nullable":false,"properties":{"id":{"description":"The ID of the series.","example":"2613eb10-15dc-4874-a35e-e580e8cf7063","format":"uuid","type":"string"},"type":{"description":"The type of resource: `series`","example":"series","type":"string"}},"type":"object"}},"type":"object"}},"required":["series"],"type":"object"},"type":{"description":"The type of resource. This is always `episodes`.","example":"episodes","type":"string"}},"required":["type","attributes","relationships"]}},"type":"object"},"EpisodeUpdate":{"properties":{"data":{"properties":{"attributes":{"properties":{"allow_user_comments":{"description":"Only visible to credentials having write privileges for the series.\n","type":"boolean"},"cover_image_id":{"deprecated":true,"description":"This will be replaced by the relationship `cover_image` in a future update.<br/>\nThe image ID of the cover art for this episode, if an episode-specific image has been provided.\nThe `/images` endpoint provideds details to the image.\n","example":"ec8f13bf-77c0-40fe-933a-8c088c16bc17","format":"uuid","type":"string"},"description":{"description":"The description of the episode, possibly in HTML format.","example":"<p><strong>Some</strong> funny example.</p>","type":"string"},"description_is_html":{"description":"Determines whether `description` is in HTML format or plain.","type":"boolean"},"itunes_type":{"description":"The type of the episode according to Apple's type categorization.","enum":["full","bonus","trailer"],"type":"string"},"premium_status":{"description":"The current premium status of the episode.","enum":["active","inactive","force-active","force-inactive"],"type":"string"},"published":{"description":"If `true`, the episode will be available for download and included in the feed as soon as its\nrelease time is reached, provided it has a valid media file, and `release_end_at` is in the future (if applicable).\n","type":"boolean"},"release_end_at":{"description":"The date and time when an episode will no longer be included in the feed, or available for download.\n`Published` will remain `true` unless the episode is manually unpublished.\n","format":"date-time","type":"string"},"release_immediately":{"deprecated":true,"description":"If `true`, the episode's release time is set in a way it is considered released right away.\nOnly visible if the credential has write privileges on the series.\n","type":"boolean"},"released_at":{"description":"The date and time when an episode will be released. It will be available for download and included\nin the feed if this time is reached, `published` is set to `true`, and the episode has a media file.\n","format":"date-time","type":"string"},"rss_guid":{"description":"A globally unique identifier describing the episode. This ID is commonly used by podcast applications\nto determine whether an episode has already been downloaded or not.\n","type":"string"},"season_id":{"deprecated":true,"description":"Use the relationship `season` instead.<br />\nThe ID of the season an episode belongs to. This can be `null`. A series can have episodes with and\nwithout seasons at the same time.\n","example":"eba5523d-e73a-43ec-bfd9-140ce9db76ac","format":"uuid","type":"string"},"series_id":{"deprecated":true,"description":"Use the relationship `series` instead.<br />\nThe ID of the series an episode belongs to.\n","example":"9897f8cb-ffa7-4674-9529-c6037826c738","format":"uuid","type":"string"},"status":{"deprecated":true,"description":"Deprecated: Use the `published` field to control episode visibility.","enum":["active","inactive"],"type":"string"},"title":{"description":"The title of the episode.","example":"The Big Hit","type":"string"}},"type":"object"},"id":{"example":"c1fbb1bf-45b1-4803-986e-123166f7f427","format":"uuid","type":"string"},"relationships":{"properties":{"cover_image":{"description":"The cover art for this episode, if an episode-specific image has been provided.\n                                   The `/images` endpoint provideds details to the image.","properties":{"data":{"description":"[JSON:API Resource Identifier Object](https://jsonapi.org/format/#document-resource-identifier-objects)","nullable":true,"properties":{"id":{"description":"The ID of the cover image.","example":"2613eb10-15dc-4874-a35e-e580e8cf7063","format":"uuid","type":"string"},"type":{"description":"The type of resource: `images`","example":"images","type":"string"}},"type":"object"}},"type":"object"},"season":{"description":"The season the episode belongs to","properties":{"data":{"description":"[JSON:API Resource Identifier Object](https://jsonapi.org/format/#document-resource-identifier-objects)","nullable":true,"properties":{"id":{"description":"The ID of the season.","example":"2613eb10-15dc-4874-a35e-e580e8cf7063","format":"uuid","type":"string"},"type":{"description":"The type of resource: `seasons`","example":"seasons","type":"string"}},"type":"object"}},"type":"object"}},"type":"object"},"type":{"description":"The type of resource. This is always `episodes`.","example":"episodes","type":"string"}},"required":["type","id","attributes"]}},"type":"object"},"EpisodeVersion":{"properties":{"attributes":{"properties":{"ad_insertion_points_count":{"description":"The number of ad insertion points for this episode version","type":"integer"},"copy_active_version":{"description":"Input-only flag. Always returns false in GET responses. Set to true in POST/PATCH to reuse audio from the currently active episode version.\n","type":"boolean"},"copy_marker_points":{"description":"Input-only flag. Always returns false in GET responses. Set to true in POST/PATCH to copy marker points from the currently active episode version.\n","type":"boolean"},"created_at":{"format":"date-time","type":"string"},"processing_status":{"description":"The current processing status of the episode version:\n- `draft`: Initial state, not yet submitted for processing\n- `inactive`: Processing completed but episode version is not active\n- `processing`: Currently being processed (includes upload, transcoding, and other processing steps)\n- `processing_failed`: Processing encountered an error and failed\n- `validation_failed`: Validation failed during processing. See `validation_errors` for details\n- `active`: Episode version used when the episode is published\n","enum":["draft","inactive","processing","processing_failed","validation_failed","active"],"type":"string"},"source_url":{"description":"The URL of the source media file.\nThis value will be modified to point to our internal file storage after processing.\n","type":"string"},"status_on_completion":{"description":"The status to set when processing completes.\n","enum":["active","inactive"],"type":"string"},"updated_at":{"format":"date-time","type":"string"},"validation_errors":{"description":"Array of validation errors caught during processing. This will be `null` for newly created episode versions in `draft` status, and populated when `processing_status` is `validation_failed`.\n\nPossible error codes include:\n- `content_type_not_allowed`: Source file content type is not audio or video\n- `file_size_exceeds_maximum`: Source file exceeds maximum allowed size (2GB)\n- `marker_point_out_of_range`: Marker point is out of range, caught after episode version submission\n- `source_file_not_accessible`: Source file cannot be accessed or downloaded\n","example":null,"items":{"properties":{"code":{"type":"string"}},"type":"object"},"nullable":true,"type":"array"}},"type":"object"},"id":{"example":"c1fbb1bf-45b1-4803-986e-123166f7f427","format":"uuid","type":"string"},"relationships":{"properties":{"episode":{"description":"The episode this episode version belongs to.","properties":{"data":{"description":"[JSON:API Resource Identifier Object](https://jsonapi.org/format/#document-resource-identifier-objects)","nullable":true,"properties":{"id":{"description":"The ID of the episode.","example":"2613eb10-15dc-4874-a35e-e580e8cf7063","format":"uuid","type":"string"},"type":{"description":"The type of resource: `episodes`","example":"episodes","type":"string"}},"type":"object"}},"type":"object"},"feed_item":{"description":"The feed item this episode version belongs to.","properties":{"data":{"description":"[JSON:API Resource Identifier Object](https://jsonapi.org/format/#document-resource-identifier-objects)","nullable":true,"properties":{"id":{"description":"The ID of the feed item.","example":"2613eb10-15dc-4874-a35e-e580e8cf7063","format":"uuid","type":"string"},"type":{"description":"The type of resource: `feed_items`","example":"feed_items","type":"string"}},"type":"object"}},"type":"object"},"marker_points":{"description":"The marker points for this episode version.","properties":{"links":{"description":"Links to retrieve the related resources","properties":{"related":{"description":"A URL to retrieve the `marker_points` as the primary data","type":"string"}},"type":"object"}},"type":"object"}},"type":"object"},"type":{"description":"The type of resource. This is always `episode_versions`.","example":"episode_versions","type":"string"}},"type":"object"},"Feed":{"properties":{"attributes":{"properties":{"apple_podcasts_claim_token":{"description":"Apple Podcasts claim token for this feed (<a href=\"https://art19.zendesk.com/hc/en-us/articles/34288964791693-How-can-I-claim-my-podcast-on-Apple-Podcasts\" target=\"_blank\">more info</a>).","type":"string"},"apple_podcasts_claim_token_expires_at":{"description":"Expiration date for the Apple Podcasts claim token.","format":"date-time","readOnly":true,"type":"string"},"block_google_play":{"description":"Whether to block this feed from being indexed on Google Play's podcast directory.","type":"boolean"},"block_itunes":{"description":"Whether to block this feed from being indexed on Apple Podcasts' podcast directory.","type":"boolean"},"block_robots":{"description":"Whether to block this feed from appearing in search engine results.","type":"boolean"},"created_at":{"format":"date-time","type":"string"},"default_allowed_campaign_types":{"description":"Allowed campaign types for this feed. Set to an empty array for ad-free feeds or null to enable ads.","items":{"type":"string"},"nullable":true,"type":"array"},"description":{"description":"The description of the feed, possibly in HTML format.","example":"<p><strong>Some</strong> funny example.</p>","type":"string"},"description_is_html":{"description":"Determines whether `description` is in HTML format or plain.","type":"boolean"},"feed_episodes_limit":{"description":"Maximum number of episodes to include in the feed.","type":"integer"},"feed_episodes_max_age":{"description":"Maximum age in days for episodes to include in the feed.","type":"integer"},"feed_url":{"description":"The URL for this feed.","readOnly":true,"type":"string"},"identification_type":{"description":"The access control type for this feed (<a href=\"https://art19.zendesk.com/hc/en-us/articles/4403934590477-Managing-RSS-Feeds-Settings\" target=\"_blank\">more info</a>).","enum":["None"],"type":"string"},"include_episodes_from_primary_feed":{"description":"Whether to include episodes from the primary feed. Always null for primary feeds.","type":"boolean"},"inherit_primary_prefixes":{"description":"Whether to inherit prefixes from the primary feed. Always null for primary feeds.","type":"boolean"},"itunes_new_feed_url":{"description":"New feed URL for feed migration in Apple Podcasts (<a href=\"https://art19.zendesk.com/hc/en-us/articles/7288407832461-What-is-an-RSS-feed\" target=\"_blank\">more info</a>).","type":"string"},"itunes_new_feed_url_expires_at":{"description":"Expiration date for the iTunes new feed URL.","format":"date-time","readOnly":true,"type":"string"},"name":{"description":"The name of the feed as it appears in ART19.","example":"Main Feed","type":"string"},"primary":{"description":"Whether this is the primary feed for the series.","readOnly":true,"type":"boolean"},"status":{"description":"The current status of the feed.","enum":["active","archived","draft","inactive"],"type":"string"},"title":{"description":"The title of the series as it appears in RSS. For alternate feeds, this title will override the series' title.","example":"My Podcast Feed","type":"string"},"updated_at":{"format":"date-time","type":"string"}},"type":"object"},"id":{"example":"c1fbb1bf-45b1-4803-986e-123166f7f427","format":"uuid","type":"string"},"relationships":{"properties":{"cover_image":{"description":"The cover art for this feed.\n                                   The `/images` endpoint provides details to the image.","properties":{"data":{"description":"[JSON:API Resource Identifier Object](https://jsonapi.org/format/#document-resource-identifier-objects)","nullable":true,"properties":{"id":{"description":"The ID of the cover image.","example":"2613eb10-15dc-4874-a35e-e580e8cf7063","format":"uuid","type":"string"},"type":{"description":"The type of resource: `images`","example":"images","type":"string"}},"type":"object"}},"type":"object"},"series":{"description":"The series this feed belongs to","properties":{"data":{"description":"[JSON:API Resource Identifier Object](https://jsonapi.org/format/#document-resource-identifier-objects)","nullable":false,"properties":{"id":{"description":"The ID of the series.","example":"2613eb10-15dc-4874-a35e-e580e8cf7063","format":"uuid","type":"string"},"type":{"description":"The type of resource: `series`","example":"series","type":"string"}},"type":"object"}},"type":"object"}},"type":"object"},"type":{"description":"The type of resource. This is always `feeds`.","example":"feeds","type":"string"}},"type":"object"},"FeedCreate":{"properties":{"data":{"properties":{"attributes":{"properties":{"apple_podcasts_claim_token":{"description":"Apple Podcasts claim token for this feed (<a href=\"https://art19.zendesk.com/hc/en-us/articles/34288964791693-How-can-I-claim-my-podcast-on-Apple-Podcasts\" target=\"_blank\">more info</a>).","type":"string"},"block_google_play":{"description":"Whether to block this feed from being indexed on Google Play's podcast directory.","type":"boolean"},"block_itunes":{"description":"Whether to block this feed from being indexed on Apple Podcasts' podcast directory.","type":"boolean"},"block_robots":{"description":"Whether to block this feed from appearing in search engine results.","type":"boolean"},"default_allowed_campaign_types":{"description":"Allowed campaign types for this feed. Set to an empty array for ad-free feeds or null to enable ads.","items":{"type":"string"},"nullable":true,"type":"array"},"description":{"description":"The description of the feed, possibly in HTML format.","example":"<p><strong>Some</strong> funny example.</p>","type":"string"},"description_is_html":{"description":"Determines whether `description` is in HTML format or plain.","type":"boolean"},"feed_episodes_limit":{"description":"Maximum number of episodes to include in the feed.","type":"integer"},"feed_episodes_max_age":{"description":"Maximum age in days for episodes to include in the feed.","type":"integer"},"identification_type":{"description":"The access control type for this feed (<a href=\"https://art19.zendesk.com/hc/en-us/articles/4403934590477-Managing-RSS-Feeds-Settings\" target=\"_blank\">more info</a>).","enum":["None"],"type":"string"},"include_episodes_from_primary_feed":{"description":"Whether to include episodes from the primary feed. Always null for primary feeds.","type":"boolean"},"inherit_primary_prefixes":{"description":"Whether to inherit prefixes from the primary feed. Always null for primary feeds.","type":"boolean"},"itunes_new_feed_url":{"description":"New feed URL for feed migration in Apple Podcasts (<a href=\"https://art19.zendesk.com/hc/en-us/articles/7288407832461-What-is-an-RSS-feed\" target=\"_blank\">more info</a>).","type":"string"},"name":{"description":"The name of the feed as it appears in ART19.","example":"Main Feed","type":"string"},"title":{"description":"The title of the series as it appears in RSS. For alternate feeds, this title will override the series' title.","example":"My Podcast Feed","type":"string"}},"required":["title"],"type":"object"},"relationships":{"properties":{"cover_image":{"description":"The cover art for this feed.\n                                   The `/images` endpoint provides details to the image.","properties":{"data":{"description":"[JSON:API Resource Identifier Object](https://jsonapi.org/format/#document-resource-identifier-objects)","nullable":true,"properties":{"id":{"description":"The ID of the cover image.","example":"2613eb10-15dc-4874-a35e-e580e8cf7063","format":"uuid","type":"string"},"type":{"description":"The type of resource: `images`","example":"images","type":"string"}},"type":"object"}},"type":"object"},"series":{"description":"The series this feed belongs to","properties":{"data":{"description":"[JSON:API Resource Identifier Object](https://jsonapi.org/format/#document-resource-identifier-objects)","nullable":false,"properties":{"id":{"description":"The ID of the series.","example":"2613eb10-15dc-4874-a35e-e580e8cf7063","format":"uuid","type":"string"},"type":{"description":"The type of resource: `series`","example":"series","type":"string"}},"type":"object"}},"type":"object"}},"required":["series"],"type":"object"},"type":{"description":"The type of resource. This is always `feeds`.","example":"feeds","type":"string"}},"required":["type","attributes","relationships"]}},"type":"object"},"FeedItem":{"properties":{"attributes":{"properties":{"created_at":{"format":"date-time","type":"string"},"description":{"description":"The description of the feed item, possibly in HTML format.","example":"<p><strong>Episode</strong> description.</p>","type":"string"},"description_is_html":{"description":"Determines whether `description` is in HTML format or plain.","type":"boolean"},"enclosure_url":{"description":"The URL for the media file associated with this feed item.","readOnly":true,"type":"string"},"inherit_release_status":{"description":"Whether to inherit release status from the episode. Always null if the feed item is an episode.","type":"boolean"},"itunes_type":{"description":"The type of the episode according to Apple's type categorization.","enum":["full","bonus","trailer"],"type":"string"},"published":{"description":"If true, the feed item will be available for download and included in the feed as soon as its release time is reached, provided it has a valid media file, and release_end_at is in the future (if applicable).","type":"boolean"},"release_end_at":{"description":"The date and time when the feed item will no longer be included in the feed, or available for download. Published will remain true unless the feed item is manually unpublished.","format":"date-time","type":"string"},"released_at":{"description":"The date and time when the feed item will be released. It will be available for download and included in the feed if this time is reached, published is set to true, and the feed item has a media file.","format":"date-time","type":"string"},"rss_guid":{"description":"A globally unique identifier describing the feed item. This ID is commonly used by podcast applications to determine whether an episode has already been downloaded or not.","type":"string"},"title":{"description":"The title of the feed item.","example":"Episode 1: Introduction","type":"string"},"updated_at":{"format":"date-time","type":"string"}},"type":"object"},"id":{"example":"c1fbb1bf-45b1-4803-986e-123166f7f427","format":"uuid","type":"string"},"relationships":{"properties":{"cover_image":{"description":"The cover art for this feed item.\n                                   The `/images` endpoint provides details to the image.","properties":{"data":{"description":"[JSON:API Resource Identifier Object](https://jsonapi.org/format/#document-resource-identifier-objects)","nullable":true,"properties":{"id":{"description":"The ID of the cover image.","example":"2613eb10-15dc-4874-a35e-e580e8cf7063","format":"uuid","type":"string"},"type":{"description":"The type of resource: `images`","example":"images","type":"string"}},"type":"object"}},"type":"object"},"episode":{"description":"The episode this feed item belongs to.","properties":{"data":{"description":"[JSON:API Resource Identifier Object](https://jsonapi.org/format/#document-resource-identifier-objects)","nullable":false,"properties":{"id":{"description":"The ID of the episode.","example":"2613eb10-15dc-4874-a35e-e580e8cf7063","format":"uuid","type":"string"},"type":{"description":"The type of resource: `episodes`","example":"episodes","type":"string"}},"type":"object"}},"type":"object"},"feed":{"description":"The feed this feed item belongs to.","properties":{"data":{"description":"[JSON:API Resource Identifier Object](https://jsonapi.org/format/#document-resource-identifier-objects)","nullable":false,"properties":{"id":{"description":"The ID of the feed.","example":"2613eb10-15dc-4874-a35e-e580e8cf7063","format":"uuid","type":"string"},"type":{"description":"The type of resource: `feeds`","example":"feeds","type":"string"}},"type":"object"}},"type":"object"},"series":{"description":"The series this feed item belongs to.","properties":{"data":{"description":"[JSON:API Resource Identifier Object](https://jsonapi.org/format/#document-resource-identifier-objects)","nullable":false,"properties":{"id":{"description":"The ID of the series.","example":"2613eb10-15dc-4874-a35e-e580e8cf7063","format":"uuid","type":"string"},"type":{"description":"The type of resource: `series`","example":"series","type":"string"}},"type":"object"}},"type":"object"}},"type":"object"},"type":{"description":"The type of resource. This is always `feed_items`.","example":"feed_items","type":"string"}},"type":"object"},"FeedItemCreate":{"properties":{"data":{"properties":{"attributes":{"properties":{"description":{"description":"The description of the feed item, possibly in HTML format.","example":"<p><strong>Episode</strong> description.</p>","type":"string"},"description_is_html":{"description":"Determines whether `description` is in HTML format or plain.","type":"boolean"},"inherit_release_status":{"description":"Whether to inherit release status from the episode. Always null if the feed item is an episode.","type":"boolean"},"itunes_type":{"description":"The type of the episode according to Apple's type categorization.","enum":["full","bonus","trailer"],"type":"string"},"published":{"description":"If true, the feed item will be available for download and included in the feed as soon as its release time is reached, provided it has a valid media file, and release_end_at is in the future (if applicable).","type":"boolean"},"release_end_at":{"description":"The date and time when the feed item will no longer be included in the feed, or available for download. Published will remain true unless the feed item is manually unpublished.","format":"date-time","type":"string"},"released_at":{"description":"The date and time when the feed item will be released. It will be available for download and included in the feed if this time is reached, published is set to true, and the feed item has a media file.","format":"date-time","type":"string"},"rss_guid":{"description":"A globally unique identifier describing the feed item. This ID is commonly used by podcast applications to determine whether an episode has already been downloaded or not.","type":"string"},"title":{"description":"The title of the feed item.","example":"Episode 1: Introduction","type":"string"}},"type":"object"},"relationships":{"properties":{"cover_image":{"description":"The cover art for this feed item.\n                                   The `/images` endpoint provides details to the image.","properties":{"data":{"description":"[JSON:API Resource Identifier Object](https://jsonapi.org/format/#document-resource-identifier-objects)","nullable":true,"properties":{"id":{"description":"The ID of the cover image.","example":"2613eb10-15dc-4874-a35e-e580e8cf7063","format":"uuid","type":"string"},"type":{"description":"The type of resource: `images`","example":"images","type":"string"}},"type":"object"}},"type":"object"},"episode":{"description":"The episode this feed item belongs to.","properties":{"data":{"description":"[JSON:API Resource Identifier Object](https://jsonapi.org/format/#document-resource-identifier-objects)","nullable":false,"properties":{"id":{"description":"The ID of the episode.","example":"2613eb10-15dc-4874-a35e-e580e8cf7063","format":"uuid","type":"string"},"type":{"description":"The type of resource: `episodes`","example":"episodes","type":"string"}},"type":"object"}},"type":"object"},"feed":{"description":"The feed this feed item belongs to.","properties":{"data":{"description":"[JSON:API Resource Identifier Object](https://jsonapi.org/format/#document-resource-identifier-objects)","nullable":false,"properties":{"id":{"description":"The ID of the feed.","example":"2613eb10-15dc-4874-a35e-e580e8cf7063","format":"uuid","type":"string"},"type":{"description":"The type of resource: `feeds`","example":"feeds","type":"string"}},"type":"object"}},"type":"object"}},"required":["episode","feed"],"type":"object"},"type":{"description":"The type of resource. This is always `feed_items`.","example":"feed_items","type":"string"}},"required":["type","relationships"]}},"type":"object"},"FeedItemUpdate":{"properties":{"data":{"properties":{"attributes":{"properties":{"description":{"description":"The description of the feed item, possibly in HTML format.","example":"<p><strong>Episode</strong> description.</p>","type":"string"},"description_is_html":{"description":"Determines whether `description` is in HTML format or plain.","type":"boolean"},"inherit_release_status":{"description":"Whether to inherit release status from the episode. Always null if the feed item is an episode.","type":"boolean"},"itunes_type":{"description":"The type of the episode according to Apple's type categorization.","enum":["full","bonus","trailer"],"type":"string"},"published":{"description":"If true, the feed item will be available for download and included in the feed as soon as its release time is reached, provided it has a valid media file, and release_end_at is in the future (if applicable).","type":"boolean"},"release_end_at":{"description":"The date and time when the feed item will no longer be included in the feed, or available for download. Published will remain true unless the feed item is manually unpublished.","format":"date-time","type":"string"},"released_at":{"description":"The date and time when the feed item will be released. It will be available for download and included in the feed if this time is reached, published is set to true, and the feed item has a media file.","format":"date-time","type":"string"},"rss_guid":{"description":"A globally unique identifier describing the feed item. This ID is commonly used by podcast applications to determine whether an episode has already been downloaded or not.","type":"string"},"title":{"description":"The title of the feed item.","example":"Episode 1: Introduction","type":"string"}},"type":"object"},"id":{"example":"c1fbb1bf-45b1-4803-986e-123166f7f427","format":"uuid","type":"string"},"relationships":{"properties":{"cover_image":{"description":"The cover art for this feed item.\n                                   The `/images` endpoint provides details to the image.","properties":{"data":{"description":"[JSON:API Resource Identifier Object](https://jsonapi.org/format/#document-resource-identifier-objects)","nullable":true,"properties":{"id":{"description":"The ID of the cover image.","example":"2613eb10-15dc-4874-a35e-e580e8cf7063","format":"uuid","type":"string"},"type":{"description":"The type of resource: `images`","example":"images","type":"string"}},"type":"object"}},"type":"object"}},"type":"object"},"type":{"description":"The type of resource. This is always `feed_items`.","example":"feed_items","type":"string"}},"required":["type","id","attributes"]}},"type":"object"},"FeedUpdate":{"properties":{"data":{"properties":{"attributes":{"properties":{"apple_podcasts_claim_token":{"description":"Apple Podcasts claim token for this feed (<a href=\"https://art19.zendesk.com/hc/en-us/articles/34288964791693-How-can-I-claim-my-podcast-on-Apple-Podcasts\" target=\"_blank\">more info</a>).","type":"string"},"block_google_play":{"description":"Whether to block this feed from being indexed on Google Play's podcast directory.","type":"boolean"},"block_itunes":{"description":"Whether to block this feed from being indexed on Apple Podcasts' podcast directory.","type":"boolean"},"block_robots":{"description":"Whether to block this feed from appearing in search engine results.","type":"boolean"},"default_allowed_campaign_types":{"description":"Allowed campaign types for this feed. Set to an empty array for ad-free feeds or null to enable ads.","items":{"type":"string"},"nullable":true,"type":"array"},"description":{"description":"The description of the feed, possibly in HTML format.","example":"<p><strong>Some</strong> funny example.</p>","type":"string"},"description_is_html":{"description":"Determines whether `description` is in HTML format or plain.","type":"boolean"},"feed_episodes_limit":{"description":"Maximum number of episodes to include in the feed.","type":"integer"},"feed_episodes_max_age":{"description":"Maximum age in days for episodes to include in the feed.","type":"integer"},"include_episodes_from_primary_feed":{"description":"Whether to include episodes from the primary feed. Always null for primary feeds.","type":"boolean"},"inherit_primary_prefixes":{"description":"Whether to inherit prefixes from the primary feed. Always null for primary feeds.","type":"boolean"},"itunes_new_feed_url":{"description":"New feed URL for feed migration in Apple Podcasts (<a href=\"https://art19.zendesk.com/hc/en-us/articles/7288407832461-What-is-an-RSS-feed\" target=\"_blank\">more info</a>).","type":"string"},"name":{"description":"The name of the feed as it appears in ART19.","example":"Main Feed","type":"string"},"status":{"description":"The current status of the feed.","enum":["active","archived","draft","inactive"],"type":"string"},"title":{"description":"The title of the series as it appears in RSS. For alternate feeds, this title will override the series' title.","example":"My Podcast Feed","type":"string"}},"type":"object"},"id":{"example":"c1fbb1bf-45b1-4803-986e-123166f7f427","format":"uuid","type":"string"},"relationships":{"properties":{"cover_image":{"description":"The cover art for this feed.\n                                   The `/images` endpoint provides details to the image.","properties":{"data":{"description":"[JSON:API Resource Identifier Object](https://jsonapi.org/format/#document-resource-identifier-objects)","nullable":true,"properties":{"id":{"description":"The ID of the cover image.","example":"2613eb10-15dc-4874-a35e-e580e8cf7063","format":"uuid","type":"string"},"type":{"description":"The type of resource: `images`","example":"images","type":"string"}},"type":"object"}},"type":"object"}},"type":"object"},"type":{"description":"The type of resource. This is always `feeds`.","example":"feeds","type":"string"}},"required":["type","id","attributes"]}},"type":"object"},"Genre":{"properties":{"attributes":{"properties":{"itunes_category":{"description":"The iTunes category for this genre.","example":"Comedy","type":"string"},"value":{"description":"The human-readable name of the genre.","example":"Comedy","type":"string"}},"type":"object"},"id":{"example":"c1fbb1bf-45b1-4803-986e-123166f7f427","format":"uuid","type":"string"},"relationships":{"properties":{"parent":{"description":"The parent genre, if this is a sub-genre.","properties":{"data":{"properties":{"id":{"example":"c1fbb1bf-45b1-4803-986e-123166f7f427","format":"uuid","type":"string"},"type":{"description":"The type of resource. This is always `genres`.","example":"genres","type":"string"}},"type":"object"}},"type":"object"}},"type":"object"},"type":{"description":"The type of resource. This is always `genres`.","example":"genres","type":"string"}},"type":"object"},"Image":{"properties":{"attributes":{"properties":{"bucket_id":{"deprecated":true,"description":"This will be replaced by the relationship `bucket` in a future update.<br/>\nThe ID of the owning entity.\n","example":"687282a1-faf7-4d37-8f4a-cbddedf6db8f","format":"uuid","type":"string"},"bucket_type":{"deprecated":true,"description":"This will be replaced by the relationship `bucket` in a future update.<br/>\nThe type of the owning entity.\n","enum":["AdRepAccount","Agency","Network","Series","User"],"example":"Series","type":"string"},"created_at":{"format":"date-time","type":"string"},"crop_data":{"description":"The crop area within the original media asset","properties":{"height":{"format":"float","type":"number"},"left":{"format":"float","type":"number"},"top":{"format":"float","type":"number"},"width":{"format":"float","type":"number"}},"type":"object"},"status":{"description":"The current value of the image state machine. It starts with `uploaded` and\ntransitions to `processing` once a worker has picked it up. If all variations and\nstyles of an image have been successfully created, the status becomes `valid`. In\ncase of a customer-facing problem (e.g., invalid image format), it changes to `invalid`.\nIn case of an internal processing error, it changes to `processing_failed`.\n","enum":["invalid","processing","processing_failed","uploaded","valid"],"example":"valid","type":"string"},"updated_at":{"format":"date-time","type":"string"},"validation_errors":{"description":"Array of validation errors caught during processing. This will be `null` for newly created images in `uploaded` status, and populated when `status` is `invalid`.\n\nPossible error codes include:\n- `invalid_image_format`: Source file content type is not a valid image format\n- `source_url_unreachable`: Source file cannot be accessed or downloaded\n","example":null,"items":{"properties":{"code":{"type":"string"}},"type":"object"},"nullable":true,"type":"array"}},"type":"object"},"id":{"example":"c1fbb1bf-45b1-4803-986e-123166f7f427","format":"uuid","type":"string"},"relationships":{"properties":{"bucket":{"description":"The owning entity for this image.","properties":{"data":{"description":"[JSON:API Resource Identifier Object](https://jsonapi.org/format/#document-resource-identifier-objects)","nullable":false,"properties":{"id":{"description":"The ID of the bucket.","example":"2613eb10-15dc-4874-a35e-e580e8cf7063","format":"uuid","type":"string"},"type":{"description":"The type of resource. This is the pluralized type of the bucket (i.e. `ad_rep_accounts`, `agencies`, `networks`, `series`, `users`)","example":"series","type":"string"}},"type":"object"}},"type":"object"},"media_assets":{"description":"All media assets available for this image.","properties":{"data":{"description":"Array of [JSON:API Resource Identifier Objects](https://jsonapi.org/format/#document-resource-identifier-objects)","items":{"properties":{"id":{"description":"The ID of the media assets.","example":"2613eb10-15dc-4874-a35e-e580e8cf7063","format":"uuid","type":"string"},"type":{"description":"The type of resource: `media_assets`","example":"media_assets","type":"string"}},"type":"object"},"type":"array"}},"type":"object"}},"type":"object"},"type":{"description":"The type of resource. This is always `images`.","example":"images","type":"string"}},"type":"object"},"Language":{"properties":{"attributes":{"properties":{"alpha3":{"description":"The ISO 639-2 three-letter language code.","example":"eng","type":"string"},"code":{"description":"The ISO 639-1 two-letter language code.","example":"en","type":"string"},"value":{"description":"The human-readable name of the language.","example":"English","type":"string"}},"type":"object"},"id":{"example":"c1fbb1bf-45b1-4803-986e-123166f7f427","format":"uuid","type":"string"},"type":{"description":"The type of resource. This is always `languages`.","example":"languages","type":"string"}},"type":"object"},"Links":{"properties":{"first":{"description":"A URL to retrieve the first page of data keeping the provided page size.","type":"string"},"last":{"description":"A URL to retrieve the last page of data keeping the provided page size.","type":"string"},"next":{"description":"A URL to retrieve the next page of data keeping the provided page size.","type":"string"},"prev":{"description":"A URL to retrieve the previous page of keeping using the provided page size.","type":"string"},"self":{"description":"A URL to retrieve the collection as the primary data.","type":"string"}},"type":"object"},"MarkerPoint":{"properties":{"attributes":{"properties":{"created_at":{"format":"date-time","type":"string"},"default_for":{"description":"If set, designates this marker point as a default template for the series or season. Default templates are automatically applied when episode versions are created through the CMS, not when created directly via the API. Currently only supports the value 'warpfeed', which represents generic default settings for marker points.\n","enum":["warpfeed"],"type":"string"},"maximum_content_count":{"description":"The maximum number of ads that can be inserted into this marker.","type":"integer"},"maximum_content_duration":{"description":"The total maximum time, in seconds, for all combined ads within this marker.","format":"float","type":"number"},"position_type":{"description":"The numeric type of the position (0: preroll, 1: midroll, 2: postroll).","enum":[0,1,2],"type":"integer"},"position_type_name":{"description":"The human-readable name of the position type.","enum":["preroll","midroll","postroll"],"type":"string"},"start_position":{"description":"The start position of the marker point in seconds. When set to null, the marker is placed at the end of the content.","format":"float","type":"number"},"type":{"description":"The specific type of marker point.","enum":["AdInsertionPoint","EmbeddedAdPoint"],"type":"string"},"updated_at":{"format":"date-time","type":"string"}},"type":"object"},"id":{"example":"c1fbb1bf-45b1-4803-986e-123166f7f427","format":"uuid","type":"string"},"relationships":{"properties":{"episode_version":{"description":"The episode version this marker point belongs to.","properties":{"data":{"description":"[JSON:API Resource Identifier Object](https://jsonapi.org/format/#document-resource-identifier-objects)","nullable":false,"properties":{"id":{"description":"The ID of the episode version.","example":"2613eb10-15dc-4874-a35e-e580e8cf7063","format":"uuid","type":"string"},"type":{"description":"The type of resource: `episode_versions`","example":"episode_versions","type":"string"}},"type":"object"}},"type":"object"},"season":{"description":"The season this marker point belongs to.","properties":{"data":{"description":"[JSON:API Resource Identifier Object](https://jsonapi.org/format/#document-resource-identifier-objects)","nullable":false,"properties":{"id":{"description":"The ID of the season.","example":"2613eb10-15dc-4874-a35e-e580e8cf7063","format":"uuid","type":"string"},"type":{"description":"The type of resource: `seasons`","example":"seasons","type":"string"}},"type":"object"}},"type":"object"},"series":{"description":"The series this marker point belongs to.","properties":{"data":{"description":"[JSON:API Resource Identifier Object](https://jsonapi.org/format/#document-resource-identifier-objects)","nullable":false,"properties":{"id":{"description":"The ID of the series.","example":"2613eb10-15dc-4874-a35e-e580e8cf7063","format":"uuid","type":"string"},"type":{"description":"The type of resource: `series`","example":"series","type":"string"}},"type":"object"}},"type":"object"}},"type":"object"},"type":{"description":"The type of resource. This is always `marker_points`.","example":"marker_points","type":"string"}},"type":"object"},"MarkerPointContentRule":{"properties":{"attributes":{"properties":{"content_type":{"description":"The type of content this rule applies to. Campaign refers to \"All Live Reads and Spots\", LiveReadAd refers to \"All Live Reads\", TraditionalAd refers to \"All Spots\". \n\nTo target all ads of a specific type, set content_type to one of these values. To target a specific brand, campaign, or advertisement, use the `content` relationship instead and set the content type based on the associated resource type ('campaigns', 'advertisements', 'brands').\n","enum":["Campaign","LiveReadAd","TraditionalAd"],"example":"Campaign","type":"string"},"created_at":{"format":"date-time","type":"string"},"end_at":{"description":"The date and time when this rule stops being active.","format":"date-time","type":"string"},"priority":{"description":"The priority of this content rule.","example":1,"type":"integer"},"start_at":{"description":"The date and time when this rule becomes active.","format":"date-time","type":"string"},"updated_at":{"format":"date-time","type":"string"}},"type":"object"},"id":{"example":"c1fbb1bf-45b1-4803-986e-123166f7f427","format":"uuid","type":"string"},"relationships":{"properties":{"content":{"description":"The content associated with this rule. The type is the pluralized type of the content (i.e. advertisements, brands, or campaigns).","properties":{"data":{"description":"[JSON:API Resource Identifier Object](https://jsonapi.org/format/#document-resource-identifier-objects)","nullable":false,"properties":{"id":{"description":"The ID of the content.","example":"2613eb10-15dc-4874-a35e-e580e8cf7063","format":"uuid","type":"string"},"type":{"description":"The type of resource. This is the pluralized type of the content (i.e. `brands`, `advertisements`, `campaigns`)","example":"contents","type":"string"}},"type":"object"}},"type":"object"},"marker_point":{"description":"The marker point this content rule belongs to.","properties":{"data":{"description":"[JSON:API Resource Identifier Object](https://jsonapi.org/format/#document-resource-identifier-objects)","nullable":false,"properties":{"id":{"description":"The ID of the marker point.","example":"2613eb10-15dc-4874-a35e-e580e8cf7063","format":"uuid","type":"string"},"type":{"description":"The type of resource: `marker_points`","example":"marker_points","type":"string"}},"type":"object"}},"type":"object"}},"type":"object"},"type":{"description":"The type of resource. This is always `marker_point_content_rules`.","example":"marker_point_content_rules","type":"string"}},"type":"object"},"MediaAsset":{"properties":{"attributes":{"properties":{"attachment_id":{"deprecated":true,"description":"This will be replaced by the relationship `attachment` in a future update.<br/>\nThe ID of the entity this media asset is attached to.\n","example":"09a93847-d5bf-47b4-90d6-854e95011951","format":"uuid","type":"string"},"attachment_type":{"deprecated":true,"description":"This will be replaced by the relationship `attachment` in a future update.<br/>\nThe type of the entity this media asset is attached to.\n","enum":["Image","Segment","SegmentList"],"type":"string"},"cdn_url":{"description":"The CDN-URL where the media asset is available.","type":"string"},"content_type":{"description":"The MIME type of the media asset.","example":"image/jpeg","type":"string"},"created_at":{"format":"date-time","type":"string"},"duration":{"description":"The duration in seconds of the media asset, if the media asset is audio.","format":"float","type":"number"},"file_name":{"description":"The filename of the media asset without any path components.\n","type":"string"},"file_size":{"description":"The size in bytes of the media asset.","example":2544307,"type":"integer"},"size_height":{"description":"The height in pixels of the media asset, if the media asset is an image.","example":1839,"type":"integer"},"size_width":{"description":"The width in pixels of the media asset, if the media asset is an image.","example":1839,"type":"integer"},"style":{"description":"The style of the media asset. A media asset is part of a collection of related media files,\nfor example an image or an episode (audio). Images usually have differently sized versions,\nand episodes can have different audio formats.\n","enum":["info","itunes","medium","original","regular","square-400","square-640","square-888","square-3000","stripped-original","thumb","waveform_data"],"example":"regular","type":"string"},"updated_at":{"format":"date-time","type":"string"}},"type":"object"},"id":{"example":"c1fbb1bf-45b1-4803-986e-123166f7f427","format":"uuid","type":"string"},"type":{"description":"The type of resource. This is always `media_assets`.","example":"media_assets","type":"string"}},"type":"object"},"MediaRating":{"properties":{"attributes":{"properties":{"itunes_rating":{"description":"The podcast parental advisory information.","enum":["clean","explicit",""],"example":"explicit","type":"string"},"value":{"description":"The human-readable name of the media rating.","example":"Explicit","type":"string"}},"type":"object"},"id":{"example":"c1fbb1bf-45b1-4803-986e-123166f7f427","format":"uuid","type":"string"},"type":{"description":"The type of resource. This is always `media_ratings`.","example":"media_ratings","type":"string"}},"type":"object"},"Network":{"properties":{"attributes":{"properties":{"copyright":{"description":"The copyright of the network.","type":"string"},"cover_image_id":{"deprecated":true,"description":"This will be replaced by the relationship `cover_image` in a future update.<br/>\nThe image ID of a cover image for the network. Details can be\nretrieved using the `/images` endpoint.\n","format":"uuid","readOnly":true,"type":"string"},"created_at":{"format":"date-time","type":"string"},"description":{"description":"The description of the network eventually in HTML format.","example":"<p><strong>Some</strong> funny example.</p>","type":"string"},"description_is_html":{"description":"Determines whether `description` is in HTML format or plain.","type":"boolean"},"description_plain":{"description":"The description with all HTML markup removed. If the description does not contain markup\nthis is identical to `description`.\n","example":"Some funny example.","readOnly":true,"type":"string"},"facebook_url":{"description":"Where to find this network on Facebook. Must be a valid URL.","type":"string"},"instagram_url":{"description":"Where to find this network on Instagram. Must be a valid URL.","type":"string"},"linkedin_url":{"description":"Where to find the network on LinkedIn. Must be a valid URL.","type":"string"},"name":{"description":"The name of the network.","type":"string"},"public_email":{"description":"A public point of contact through email.","type":"string"},"public_page_enabled":{"description":"If this is `true`, a public web page for this network is available under\n`https://art19.com/networks/{slug}`, where `slug` is the value of the corresponding attribute.\nThis public page provides details about the network as well as descriptive links to all its\nseries' public pages. If this is `false`, no such public page is available.\n","type":"boolean"},"slug":{"description":"The unique slug for the network also used on its public page for example.\nThis value is unique system-wide amongst all networks _and_ series.\n","type":"string"},"tumblr_url":{"description":"Where to find the network on Tumblr. Must be a valid URL.","type":"string"},"twitter_url":{"description":"Where to find the network on Twitter. Must be a valid URL.","type":"string"},"updated_at":{"format":"date-time","type":"string"},"website_url":{"description":"A public website for the network. Must be a valid URL.","type":"string"}},"type":"object"},"id":{"example":"c1fbb1bf-45b1-4803-986e-123166f7f427","format":"uuid","type":"string"},"relationships":{"properties":{"cover_image":{"description":"The cover image for the network.","properties":{"data":{"description":"[JSON:API Resource Identifier Object](https://jsonapi.org/format/#document-resource-identifier-objects)","nullable":true,"properties":{"id":{"description":"The ID of the cover image.","example":"2613eb10-15dc-4874-a35e-e580e8cf7063","format":"uuid","type":"string"},"type":{"description":"The type of resource: `images`","example":"images","type":"string"}},"type":"object"}},"type":"object"},"home_country":{"description":"The home country of the network.","properties":{"data":{"description":"[JSON:API Resource Identifier Object](https://jsonapi.org/format/#document-resource-identifier-objects)","nullable":true,"properties":{"id":{"description":"The ID of the home country.","example":"2613eb10-15dc-4874-a35e-e580e8cf7063","format":"uuid","type":"string"},"type":{"description":"The type of resource: `classifications`","example":"classifications","type":"string"}},"type":"object"}},"type":"object"},"images":{"description":"A collection of images linked to the network. This currently only includes the cover image for the network.","properties":{"data":{"description":"Array of [JSON:API Resource Identifier Objects](https://jsonapi.org/format/#document-resource-identifier-objects)","items":{"properties":{"id":{"description":"The ID of the images.","example":"2613eb10-15dc-4874-a35e-e580e8cf7063","format":"uuid","type":"string"},"type":{"description":"The type of resource: `images`","example":"images","type":"string"}},"type":"object"},"type":"array"}},"type":"object"},"parent":{"description":"The parent network of the network. Note that networks can only have a maximum of 2 levels.","properties":{"data":{"description":"[JSON:API Resource Identifier Object](https://jsonapi.org/format/#document-resource-identifier-objects)","nullable":true,"properties":{"id":{"description":"The ID of the parent.","example":"2613eb10-15dc-4874-a35e-e580e8cf7063","format":"uuid","type":"string"},"type":{"description":"The type of resource: `networks`","example":"networks","type":"string"}},"type":"object"}},"type":"object"},"series":{"description":"List of series within the network which are accessible to you.","properties":{"data":{"description":"Array of [JSON:API Resource Identifier Objects](https://jsonapi.org/format/#document-resource-identifier-objects)","items":{"properties":{"id":{"description":"The ID of the series.","example":"2613eb10-15dc-4874-a35e-e580e8cf7063","format":"uuid","type":"string"},"type":{"description":"The type of resource: `series`","example":"series","type":"string"}},"type":"object"},"type":"array"}},"type":"object"}},"type":"object"},"type":{"description":"The type of resource. This is always `networks`.","example":"networks","type":"string"}},"type":"object"},"NetworkUpdate":{"properties":{"data":{"properties":{"attributes":{"properties":{"copyright":{"description":"The copyright of the network.","type":"string"},"description":{"description":"The description of the network eventually in HTML format.","example":"<p><strong>Some</strong> funny example.</p>","type":"string"},"description_is_html":{"description":"Determines whether `description` is in HTML format or plain.","type":"boolean"},"description_plain":{"description":"The description with all HTML markup removed. If the description does not contain markup\nthis is identical to `description`.\n","example":"Some funny example.","readOnly":true,"type":"string"},"facebook_url":{"description":"Where to find this network on Facebook. Must be a valid URL.","type":"string"},"instagram_url":{"description":"Where to find this network on Instagram. Must be a valid URL.","type":"string"},"linkedin_url":{"description":"Where to find the network on LinkedIn. Must be a valid URL.","type":"string"},"name":{"description":"The name of the network.","type":"string"},"public_email":{"description":"A public point of contact through email.","type":"string"},"public_page_enabled":{"description":"If this is `true`, a public web page for this network is available under\n`https://art19.com/networks/{slug}`, where `slug` is the value of the corresponding attribute.\nThis public page provides details about the network as well as descriptive links to all its\nseries' public pages. If this is `false`, no such public page is available.\n","type":"boolean"},"slug":{"description":"The unique slug for the network also used on its public page for example.\nThis value is unique system-wide amongst all networks _and_ series.\n","type":"string"},"tumblr_url":{"description":"Where to find the network on Tumblr. Must be a valid URL.","type":"string"},"twitter_url":{"description":"Where to find the network on Twitter. Must be a valid URL.","type":"string"},"website_url":{"description":"A public website for the network. Must be a valid URL.","type":"string"}},"type":"object"},"id":{"example":"c1fbb1bf-45b1-4803-986e-123166f7f427","format":"uuid","type":"string"},"relationships":{"properties":{"cover_image":{"description":"The cover image for the network.","properties":{"data":{"description":"[JSON:API Resource Identifier Object](https://jsonapi.org/format/#document-resource-identifier-objects)","nullable":true,"properties":{"id":{"description":"The ID of the cover image.","example":"2613eb10-15dc-4874-a35e-e580e8cf7063","format":"uuid","type":"string"},"type":{"description":"The type of resource: `images`","example":"images","type":"string"}},"type":"object"}},"type":"object"},"home_country":{"description":"The home country of the network.","properties":{"data":{"description":"[JSON:API Resource Identifier Object](https://jsonapi.org/format/#document-resource-identifier-objects)","nullable":true,"properties":{"id":{"description":"The ID of the home country.","example":"2613eb10-15dc-4874-a35e-e580e8cf7063","format":"uuid","type":"string"},"type":{"description":"The type of resource: `classifications`","example":"classifications","type":"string"}},"type":"object"}},"type":"object"},"parent":{"description":"The parent network of the network. Note that networks can only have a maximum of 2 levels.","properties":{"data":{"description":"[JSON:API Resource Identifier Object](https://jsonapi.org/format/#document-resource-identifier-objects)","nullable":true,"properties":{"id":{"description":"The ID of the parent.","example":"2613eb10-15dc-4874-a35e-e580e8cf7063","format":"uuid","type":"string"},"type":{"description":"The type of resource: `networks`","example":"networks","type":"string"}},"type":"object"}},"type":"object"}},"type":"object"},"type":{"description":"The type of resource. This is always `networks`.","example":"networks","type":"string"}},"required":["type","id","attributes"]}},"type":"object"},"Person":{"properties":{"attributes":{"properties":{"avatar_id":{"deprecated":true,"description":"This will be replaced by the relationship `avatar` in a future update.<br/>\nThe image ID of an avatar or head shot of the person. Details can be\nretrieved using the `/images` endpoint.\n","example":"686ae786-6bbe-42f4-9a51-9e1cf207fc8b","format":"uuid","readOnly":true,"type":"string"},"biography":{"description":"The biography of the person without markup.","type":"string"},"born":{"description":"The birthday of the person. Required if died is provided.","format":"date","type":"string"},"created_at":{"format":"date-time","type":"string"},"died":{"description":"The day of death of the person. If provided, born must also be provided.","format":"date","type":"string"},"first_name":{"description":"The first name of the person.","type":"string"},"from_country":{"description":"The country the person is from.","type":"string"},"from_locality":{"description":"The locality or city the person is from.","type":"string"},"from_region":{"description":"The region/state/province the person is from.","type":"string"},"last_name":{"description":"The last name of the person.","type":"string"},"public_email":{"description":"The public email contact for the person.","type":"string"},"updated_at":{"format":"date-time","type":"string"}},"type":"object"},"id":{"example":"c1fbb1bf-45b1-4803-986e-123166f7f427","format":"uuid","type":"string"},"relationships":{"properties":{"avatar":{"description":"The avatar or head shot of the person. Details can be retrieved using the `/images` endpoint.","properties":{"data":{"description":"[JSON:API Resource Identifier Object](https://jsonapi.org/format/#document-resource-identifier-objects)","nullable":true,"properties":{"id":{"description":"The ID of the avatar.","example":"2613eb10-15dc-4874-a35e-e580e8cf7063","format":"uuid","type":"string"},"type":{"description":"The type of resource: `images`","example":"images","type":"string"}},"type":"object"}},"type":"object"}},"type":"object"},"type":{"description":"The type of resource. This is always `people`.","example":"people","type":"string"}},"type":"object"},"PersonCreate":{"properties":{"data":{"properties":{"attributes":{"description":"Note: If died is provided, born is also required.","properties":{"biography":{"description":"The biography of the person without markup.","type":"string"},"born":{"description":"The birthday of the person. Required if died is provided.","format":"date","type":"string"},"died":{"description":"The day of death of the person. If provided, born must also be provided.","format":"date","type":"string"},"first_name":{"description":"The first name of the person.","type":"string"},"from_country":{"description":"The country the person is from.","type":"string"},"from_locality":{"description":"The locality or city the person is from.","type":"string"},"from_region":{"description":"The region/state/province the person is from.","type":"string"},"last_name":{"description":"The last name of the person.","type":"string"},"private_email":{"description":"The private email contact for the person.","type":"string"},"private_email_viewable_by_producers":{"description":"Whether the private email is viewable by producers.","type":"boolean"},"public_email":{"description":"The public email contact for the person.","type":"string"}},"required":["first_name","last_name"],"type":"object"},"relationships":{"properties":{"avatar":{"description":"The avatar or head shot of the person. Details can be retrieved using the `/images` endpoint.","properties":{"data":{"description":"[JSON:API Resource Identifier Object](https://jsonapi.org/format/#document-resource-identifier-objects)","nullable":true,"properties":{"id":{"description":"The ID of the avatar.","example":"2613eb10-15dc-4874-a35e-e580e8cf7063","format":"uuid","type":"string"},"type":{"description":"The type of resource: `images`","example":"images","type":"string"}},"type":"object"}},"type":"object"},"user":{"description":"The user associated with this person.","properties":{"data":{"description":"[JSON:API Resource Identifier Object](https://jsonapi.org/format/#document-resource-identifier-objects)","nullable":true,"properties":{"id":{"description":"The ID of the user.","example":"2613eb10-15dc-4874-a35e-e580e8cf7063","format":"uuid","type":"string"},"type":{"description":"The type of resource: `users`","example":"users","type":"string"}},"type":"object"}},"type":"object"}},"type":"object"},"type":{"description":"The type of resource. This is always `people`.","example":"people","type":"string"}},"required":["type","attributes"]}},"type":"object"},"PersonUpdate":{"properties":{"data":{"properties":{"attributes":{"description":"Note: If died is provided, born is also required.","properties":{"biography":{"description":"The biography of the person without markup.","type":"string"},"born":{"description":"The birthday of the person. Required if died is provided.","format":"date","type":"string"},"died":{"description":"The day of death of the person. If provided, born must also be provided.","format":"date","type":"string"},"first_name":{"description":"The first name of the person.","type":"string"},"from_country":{"description":"The country the person is from.","type":"string"},"from_locality":{"description":"The locality or city the person is from.","type":"string"},"from_region":{"description":"The region/state/province the person is from.","type":"string"},"last_name":{"description":"The last name of the person.","type":"string"},"private_email":{"description":"The private email contact for the person.","type":"string"},"private_email_viewable_by_producers":{"description":"Whether the private email is viewable by producers.","type":"boolean"},"public_email":{"description":"The public email contact for the person.","type":"string"}},"type":"object"},"id":{"example":"c1fbb1bf-45b1-4803-986e-123166f7f427","format":"uuid","type":"string"},"relationships":{"properties":{"avatar":{"description":"The avatar or head shot of the person. Details can be retrieved using the `/images` endpoint.","properties":{"data":{"description":"[JSON:API Resource Identifier Object](https://jsonapi.org/format/#document-resource-identifier-objects)","nullable":true,"properties":{"id":{"description":"The ID of the avatar.","example":"2613eb10-15dc-4874-a35e-e580e8cf7063","format":"uuid","type":"string"},"type":{"description":"The type of resource: `images`","example":"images","type":"string"}},"type":"object"}},"type":"object"}},"type":"object"},"type":{"description":"The type of resource. This is always `people`.","example":"people","type":"string"}},"required":["type","id","attributes"]}},"type":"object"},"ResourceIdentifier":{"properties":{"id":{"description":"The ID of the resource.","example":"978b3b7c-f619-4a4a-9de7-a7bb7fad8f4f","format":"uuid","required":true,"type":"string"},"type":{"description":"The type of the resource.","required":true,"type":"string"}},"type":"object"},"ResourceLink":{"description":"Links related to the retrieved resource.","properties":{"self":{"description":"A URL to retrieve the resource as the primary data.","type":"string"}},"title":"Links","type":"object"},"Season":{"properties":{"attributes":{"properties":{"cascaded_cover_image_id":{"deprecated":true,"description":"This will be replaced by the relationship `cascaded_cover_image` in a future update.<br/>\nThe image ID of the cover art for this season. If there is no specific cover for the season,\nthe image ID of the series' cover art will be returned.\nThe `/images` endpoint provideds details to the image.\n","example":"ec8f13bf-77c0-40fe-933a-8c088c16bc17","format":"uuid","readOnly":true,"type":"string"},"cover_image_id":{"deprecated":true,"description":"This will be replaced by the relationship `cover_image` in a future update.<br/>\nThe image ID of the cover art for this season, if a season-specific image has been provided.\nThe `/images` endpoint provideds details to the image.\n","example":"ec8f13bf-77c0-40fe-933a-8c088c16bc17","format":"uuid","type":"string"},"created_at":{"format":"date-time","type":"string"},"description":{"description":"The description of the season eventually in HTML format.","example":"<p><strong>Some</strong> funny example.</p>","type":"string"},"description_is_html":{"description":"Determines whether `description` is in HTML format or plain.","type":"boolean"},"description_plain":{"description":"The description with all HTML markup removed. If the description does not contain markup\nthis is identitcal to `description`.\n","example":"Some funny example.","readOnly":true,"type":"string"},"first_released_episode_id":{"deprecated":true,"description":"This will be replaced by the relationship `first_released_episode` in a future update.<br/>\nThe ID of the first released episode within the season.\n","example":"73a97f1a-5c3c-4226-8ab3-1d7f9e486e4d","format":"uuid","readOnly":true,"type":"string"},"last_released_episode_id":{"deprecated":true,"description":"This will be replaced by the relationship `last_released_episode` in a future update.<br/>\nThe ID of the most recently released episode within the season.\n","example":"a50b7a22-2128-46d7-b3df-2b308df21bf0","format":"uuid","readOnly":true,"type":"string"},"season_number":{"description":"The number of the season. This could be `null` as well.","example":1,"type":"integer"},"sort_title":{"description":"The title of the season modified for sorting. This converts all characters to\nlower case, removes any leading `The` as well as leading and trailing whitespace characters.\n","example":"awesome season","readOnly":true,"type":"string"},"status":{"description":"The current status of the season.","enum":["active","inactive"],"type":"string"},"title":{"description":"The title of the season.","example":"The Awesome Season","type":"string"},"updated_at":{"format":"date-time","type":"string"}},"type":"object"},"id":{"example":"c1fbb1bf-45b1-4803-986e-123166f7f427","format":"uuid","type":"string"},"relationships":{"properties":{"cascaded_cover_image":{"description":"The cover art for this season. If there is no specific cover for the season,\nthe cover image of the series' cover art will be returned.\nThe `/images` endpoint provideds details to the image.\n","properties":{"data":{"description":"[JSON:API Resource Identifier Object](https://jsonapi.org/format/#document-resource-identifier-objects)","nullable":true,"properties":{"id":{"description":"The ID of the cascaded cover image.","example":"2613eb10-15dc-4874-a35e-e580e8cf7063","format":"uuid","type":"string"},"type":{"description":"The type of resource: `images`","example":"images","type":"string"}},"type":"object"}},"type":"object"},"classification_inclusions":{"description":"A list of classifications associated with the season.","properties":{"data":{"description":"Array of [JSON:API Resource Identifier Objects](https://jsonapi.org/format/#document-resource-identifier-objects)","items":{"properties":{"id":{"description":"The ID of the classification inclusions.","example":"2613eb10-15dc-4874-a35e-e580e8cf7063","format":"uuid","type":"string"},"type":{"description":"The type of resource: `classification_inclusions`","example":"classification_inclusions","type":"string"}},"type":"object"},"type":"array"}},"type":"object"},"cover_image":{"description":"The cover image for the season.","properties":{"data":{"description":"[JSON:API Resource Identifier Object](https://jsonapi.org/format/#document-resource-identifier-objects)","nullable":true,"properties":{"id":{"description":"The ID of the cover image.","example":"2613eb10-15dc-4874-a35e-e580e8cf7063","format":"uuid","type":"string"},"type":{"description":"The type of resource: `images`","example":"images","type":"string"}},"type":"object"}},"type":"object"},"credits":{"description":"A list of credits given to people in the season.","properties":{"data":{"description":"Array of [JSON:API Resource Identifier Objects](https://jsonapi.org/format/#document-resource-identifier-objects)","items":{"properties":{"id":{"description":"The ID of the credits.","example":"2613eb10-15dc-4874-a35e-e580e8cf7063","format":"uuid","type":"string"},"type":{"description":"The type of resource: `credits`","example":"credits","type":"string"}},"type":"object"},"type":"array"}},"type":"object"},"episodes":{"description":"A list of published and released episodes with an actual media file within the season.","properties":{"data":{"description":"Array of [JSON:API Resource Identifier Objects](https://jsonapi.org/format/#document-resource-identifier-objects)","items":{"properties":{"id":{"description":"The ID of the episodes.","example":"2613eb10-15dc-4874-a35e-e580e8cf7063","format":"uuid","type":"string"},"type":{"description":"The type of resource: `episodes`","example":"episodes","type":"string"}},"type":"object"},"type":"array"}},"type":"object"},"first_released_episode":{"description":"The first released episode within the season.","properties":{"data":{"description":"[JSON:API Resource Identifier Object](https://jsonapi.org/format/#document-resource-identifier-objects)","nullable":true,"properties":{"id":{"description":"The ID of the first released episode.","example":"2613eb10-15dc-4874-a35e-e580e8cf7063","format":"uuid","type":"string"},"type":{"description":"The type of resource: `episodes`","example":"episodes","type":"string"}},"type":"object"}},"type":"object"},"images":{"description":"Both the cover image and the cascaded cover image for the season.","properties":{"data":{"description":"Array of [JSON:API Resource Identifier Objects](https://jsonapi.org/format/#document-resource-identifier-objects)","items":{"properties":{"id":{"description":"The ID of the images.","example":"2613eb10-15dc-4874-a35e-e580e8cf7063","format":"uuid","type":"string"},"type":{"description":"The type of resource: `images`","example":"images","type":"string"}},"type":"object"},"type":"array"}},"type":"object"},"last_released_episode":{"description":"The most recently released episode within the season.","properties":{"data":{"description":"[JSON:API Resource Identifier Object](https://jsonapi.org/format/#document-resource-identifier-objects)","nullable":true,"properties":{"id":{"description":"The ID of the last released episode.","example":"2613eb10-15dc-4874-a35e-e580e8cf7063","format":"uuid","type":"string"},"type":{"description":"The type of resource: `episodes`","example":"episodes","type":"string"}},"type":"object"}},"type":"object"},"media_ratings":{"description":"A list of media ratings associated with the season.","properties":{"links":{"description":"Links to retrieve the related resources","properties":{"related":{"description":"A URL to retrieve the `media_ratings` as the primary data","type":"string"},"self":{"description":"A URL to retrieve the relationship linkage for `media_ratings`","type":"string"}},"type":"object"}},"type":"object"},"series":{"description":"The series this season belongs to.","properties":{"data":{"description":"[JSON:API Resource Identifier Object](https://jsonapi.org/format/#document-resource-identifier-objects)","nullable":false,"properties":{"id":{"description":"The ID of the series.","example":"2613eb10-15dc-4874-a35e-e580e8cf7063","format":"uuid","type":"string"},"type":{"description":"The type of resource: `series`","example":"series","type":"string"}},"type":"object"}},"type":"object"}},"type":"object"},"type":{"description":"The type of resource. This is always `seasons`.","example":"seasons","type":"string"}},"type":"object"},"SeasonCreate":{"properties":{"data":{"properties":{"attributes":{"properties":{"cover_image_id":{"deprecated":true,"description":"This will be replaced by the relationship `cover_image` in a future update.<br/>\nThe image ID of the cover art for this season, if a season-specific image has been provided.\nThe `/images` endpoint provideds details to the image.\n","example":"ec8f13bf-77c0-40fe-933a-8c088c16bc17","format":"uuid","type":"string"},"description":{"description":"The description of the season eventually in HTML format.","example":"<p><strong>Some</strong> funny example.</p>","type":"string"},"description_is_html":{"description":"Determines whether `description` is in HTML format or plain.","type":"boolean"},"season_number":{"description":"The number of the season. This could be `null` as well.","example":1,"type":"integer"},"status":{"description":"The current status of the season.","enum":["active","inactive"],"type":"string"},"title":{"description":"The title of the season.","example":"The Awesome Season","type":"string"}},"required":["title"],"type":"object"},"relationships":{"properties":{"cover_image":{"description":"The cover image for the season.","properties":{"data":{"description":"[JSON:API Resource Identifier Object](https://jsonapi.org/format/#document-resource-identifier-objects)","nullable":true,"properties":{"id":{"description":"The ID of the cover image.","example":"2613eb10-15dc-4874-a35e-e580e8cf7063","format":"uuid","type":"string"},"type":{"description":"The type of resource: `images`","example":"images","type":"string"}},"type":"object"}},"type":"object"},"series":{"description":"The series this season belongs to.","properties":{"data":{"description":"[JSON:API Resource Identifier Object](https://jsonapi.org/format/#document-resource-identifier-objects)","nullable":false,"properties":{"id":{"description":"The ID of the series.","example":"2613eb10-15dc-4874-a35e-e580e8cf7063","format":"uuid","type":"string"},"type":{"description":"The type of resource: `series`","example":"series","type":"string"}},"type":"object"}},"type":"object"}},"required":["series"],"type":"object"},"type":{"description":"The type of resource. This is always `seasons`.","example":"seasons","type":"string"}},"required":["type","attributes","relationships"]}},"type":"object"},"SeasonUpdate":{"properties":{"data":{"properties":{"attributes":{"properties":{"cover_image_id":{"deprecated":true,"description":"This will be replaced by the relationship `cover_image` in a future update.<br/>\nThe image ID of the cover art for this season, if a season-specific image has been provided.\nThe `/images` endpoint provideds details to the image.\n","example":"ec8f13bf-77c0-40fe-933a-8c088c16bc17","format":"uuid","type":"string"},"description":{"description":"The description of the season eventually in HTML format.","example":"<p><strong>Some</strong> funny example.</p>","type":"string"},"description_is_html":{"description":"Determines whether `description` is in HTML format or plain.","type":"boolean"},"season_number":{"description":"The number of the season. This could be `null` as well.","example":1,"type":"integer"},"status":{"description":"The current status of the season.","enum":["active","inactive"],"type":"string"},"title":{"description":"The title of the season.","example":"The Awesome Season","type":"string"}},"type":"object"},"id":{"example":"c1fbb1bf-45b1-4803-986e-123166f7f427","format":"uuid","type":"string"},"relationships":{"properties":{"cover_image":{"description":"The cover image for the season.","properties":{"data":{"description":"[JSON:API Resource Identifier Object](https://jsonapi.org/format/#document-resource-identifier-objects)","nullable":true,"properties":{"id":{"description":"The ID of the cover image.","example":"2613eb10-15dc-4874-a35e-e580e8cf7063","format":"uuid","type":"string"},"type":{"description":"The type of resource: `images`","example":"images","type":"string"}},"type":"object"}},"type":"object"},"series":{"description":"The series this season belongs to.","properties":{"data":{"description":"[JSON:API Resource Identifier Object](https://jsonapi.org/format/#document-resource-identifier-objects)","nullable":false,"properties":{"id":{"description":"The ID of the series.","example":"2613eb10-15dc-4874-a35e-e580e8cf7063","format":"uuid","type":"string"},"type":{"description":"The type of resource: `series`","example":"series","type":"string"}},"type":"object"}},"type":"object"}},"type":"object"},"type":{"description":"The type of resource. This is always `seasons`.","example":"seasons","type":"string"}},"required":["type","id","attributes"]}},"type":"object"},"Series":{"properties":{"attributes":{"properties":{"amazon_subscription_badge_enabled":{"description":"If `true`, the ART19 web player will render an Amazon subscription badge.","type":"boolean"},"amazon_subscription_url":{"description":"The Amazon Music subscription URL.","type":"string"},"castbox_subscription_url":{"description":"The CastBox subscription URL.","type":"string"},"cover_image_id":{"deprecated":true,"description":"This will be replaced by the relationship `cover_image` in a future update.<br/>\nThe image ID of the cover art for this series. The `/images` endpoint provideds details to the image.\n","example":"ec8f13bf-77c0-40fe-933a-8c088c16bc17","format":"uuid","type":"string"},"created_at":{"format":"date-time","type":"string"},"description":{"description":"The description of the series eventually in HTML format.","example":"<p><strong>Some</strong> funny example.</p>","type":"string"},"description_is_html":{"description":"Determines whether `description` is in HTML format or plain.","type":"boolean"},"description_plain":{"description":"The description with all HTML markup removed. If the description does not contain markup\nthis is identical to `description`.\n","example":"Some funny example.","readOnly":true,"type":"string"},"facebook_url":{"description":"The URL of the series on Facebook. Must be a valid URL.","type":"string"},"google_subscription_url":{"description":"The Google subscription URL.","type":"string"},"iheart_subscription_url":{"description":"The iHeartRadio subscription URL.","type":"string"},"instagram_url":{"description":"The URL of the series on Instagram. Must be a valid URL.","type":"string"},"itunes_subscription_badge_enabled":{"description":"If `true`, the ART19 web player will render an iTunes subscription badge.","type":"boolean"},"itunes_subscription_url":{"description":"The Apple iTunes subscription URL.","type":"string"},"linkedin_url":{"description":"The URL of the series on LinkedIn. Must be a valid URL.","type":"string"},"pocket_casts_subscription_url":{"description":"The Pocket Casts subscription URL.","type":"string"},"podcast_subscription_url":{"description":"The URL of the RSS feed.","example":"https://rss.art19.com/greatest-show-ever","readOnly":true,"type":"string"},"public_page_enabled":{"description":"If this is `true`, a public web page for this series is available under\n`https://art19.com/shows/{slug}`, where `slug` is the value of the corresponding attribute.\nThis public page provides details about the series as well as descriptive links to all its\nepisodes. If this is `false`, no such public page is available.\n","type":"boolean"},"public_title":{"description":"If present, this is the preferred title for the series in the RSS Feed.","type":"string"},"radio_public_subscription_url":{"description":"The RadioPublic subscription URL.","type":"string"},"rss_author":{"description":"The author responsible for the RSS feed.","type":"string"},"rss_copyright":{"description":"The copyright disclaimer for the contents of the show, appearing after a © symbol, e.g. `2020 ART19, Inc.`","type":"string"},"rss_email":{"description":"The pubic point of contact for the show.","type":"string"},"rss_owner":{"description":"The name of the contact for the show.","type":"string"},"slug":{"description":"This slug is unique over all series and networks system wide and is used to access the series' feed\nas well as its eventually enabled public page on ART19.\n","example":"greatest-show-ever","readOnly":true,"type":"string"},"sort_title":{"description":"The title of the series modified for sorting. This converts all characters to\nlower case, removes any leading `The` as well as leading and trailing whitespace characters.\n","example":"greatest show ever","type":"string"},"spotify_subscription_badge_enabled":{"description":"If `true`, the ART19 web player will render a Spotify subscription badge.","type":"boolean"},"spotify_subscription_url":{"description":"The Spotify subscription URL.","type":"string"},"status":{"description":"The status of the series.","enum":["active","dormant","inactive","test"],"readOnly":true,"type":"string"},"stitcher_subscription_badge_enabled":{"description":"If `true`, the ART19 web player will render a Stitcher subscription badge.","type":"boolean"},"stitcher_subscription_url":{"description":"The Stitcher subscription URL.","type":"string"},"title":{"description":"The title of the series.","example":"The greatest show ever","type":"string"},"tumblr_url":{"description":"The URL of the series on Tumblr. Must be a valid URL.","type":"string"},"tune_in_subscription_url":{"description":"The TuneIn subscription URL.","type":"string"},"twitter_url":{"description":"The URL of the series on Twitter. Must be a valid URL.","type":"string"},"type":{"description":"The type of the series.","enum":["Art19Series"],"readOnly":true,"type":"String"},"updated_at":{"format":"date-time","type":"string"},"website_url":{"description":"The custom website URL for the series. Must be a valid URL.","type":"string"}},"type":"object"},"id":{"example":"c1fbb1bf-45b1-4803-986e-123166f7f427","format":"uuid","type":"string"},"relationships":{"properties":{"classification_inclusions":{"description":"A list of classifications associated with the series.","properties":{"data":{"description":"Array of [JSON:API Resource Identifier Objects](https://jsonapi.org/format/#document-resource-identifier-objects)","items":{"properties":{"id":{"description":"The ID of the classification inclusions.","example":"2613eb10-15dc-4874-a35e-e580e8cf7063","format":"uuid","type":"string"},"type":{"description":"The type of resource: `classification_inclusions`","example":"classification_inclusions","type":"string"}},"type":"object"},"type":"array"}},"type":"object"},"cover_image":{"description":"The cover image for the series.","properties":{"data":{"description":"[JSON:API Resource Identifier Object](https://jsonapi.org/format/#document-resource-identifier-objects)","nullable":true,"properties":{"id":{"description":"The ID of the cover image.","example":"2613eb10-15dc-4874-a35e-e580e8cf7063","format":"uuid","type":"string"},"type":{"description":"The type of resource: `images`","example":"images","type":"string"}},"type":"object"}},"type":"object"},"credits":{"description":"A list of credits given to people in the series.","properties":{"data":{"description":"Array of [JSON:API Resource Identifier Objects](https://jsonapi.org/format/#document-resource-identifier-objects)","items":{"properties":{"id":{"description":"The ID of the credits.","example":"2613eb10-15dc-4874-a35e-e580e8cf7063","format":"uuid","type":"string"},"type":{"description":"The type of resource: `credits`","example":"credits","type":"string"}},"type":"object"},"type":"array"}},"type":"object"},"episodes":{"description":"A list of published and released episodes with an actual media file.","properties":{"data":{"description":"Array of [JSON:API Resource Identifier Objects](https://jsonapi.org/format/#document-resource-identifier-objects)","items":{"properties":{"id":{"description":"The ID of the episodes.","example":"2613eb10-15dc-4874-a35e-e580e8cf7063","format":"uuid","type":"string"},"type":{"description":"The type of resource: `episodes`","example":"episodes","type":"string"}},"type":"object"},"type":"array"}},"type":"object"},"genres":{"description":"A list of genres associated with the series.","properties":{"links":{"description":"Links to retrieve the related resources","properties":{"related":{"description":"A URL to retrieve the `genres` as the primary data","type":"string"},"self":{"description":"A URL to retrieve the relationship linkage for `genres`","type":"string"}},"type":"object"}},"type":"object"},"images":{"description":"The cover image for the series.","properties":{"data":{"description":"Array of [JSON:API Resource Identifier Objects](https://jsonapi.org/format/#document-resource-identifier-objects)","items":{"properties":{"id":{"description":"The ID of the images.","example":"2613eb10-15dc-4874-a35e-e580e8cf7063","format":"uuid","type":"string"},"type":{"description":"The type of resource: `images`","example":"images","type":"string"}},"type":"object"},"type":"array"}},"type":"object"},"languages":{"description":"A list of languages associated with the series.","properties":{"links":{"description":"Links to retrieve the related resources","properties":{"related":{"description":"A URL to retrieve the `languages` as the primary data","type":"string"},"self":{"description":"A URL to retrieve the relationship linkage for `languages`","type":"string"}},"type":"object"}},"type":"object"},"media_ratings":{"description":"A list of media ratings associated with the series.","properties":{"links":{"description":"Links to retrieve the related resources","properties":{"related":{"description":"A URL to retrieve the `media_ratings` as the primary data","type":"string"},"self":{"description":"A URL to retrieve the relationship linkage for `media_ratings`","type":"string"}},"type":"object"}},"type":"object"},"network":{"description":"The network the series belongs to.","properties":{"data":{"description":"[JSON:API Resource Identifier Object](https://jsonapi.org/format/#document-resource-identifier-objects)","nullable":true,"properties":{"id":{"description":"The ID of the network.","example":"2613eb10-15dc-4874-a35e-e580e8cf7063","format":"uuid","type":"string"},"type":{"description":"The type of resource: `networks`","example":"networks","type":"string"}},"type":"object"}},"type":"object"},"seasons":{"description":"A list of seasons in the series.","properties":{"data":{"description":"Array of [JSON:API Resource Identifier Objects](https://jsonapi.org/format/#document-resource-identifier-objects)","items":{"properties":{"id":{"description":"The ID of the seasons.","example":"2613eb10-15dc-4874-a35e-e580e8cf7063","format":"uuid","type":"string"},"type":{"description":"The type of resource: `seasons`","example":"seasons","type":"string"}},"type":"object"},"type":"array"}},"type":"object"}},"type":"object"},"type":{"description":"The type of resource. This is always `series`.","example":"series","type":"string"}},"type":"object"},"SeriesUpdate":{"properties":{"data":{"properties":{"attributes":{"properties":{"amazon_subscription_badge_enabled":{"description":"If `true`, the ART19 web player will render an Amazon subscription badge.","type":"boolean"},"amazon_subscription_url":{"description":"The Amazon Music subscription URL.","type":"string"},"castbox_subscription_url":{"description":"The CastBox subscription URL.","type":"string"},"cover_image_id":{"deprecated":true,"description":"This will be replaced by the relationship `cover_image` in a future update.<br/>\nThe image ID of the cover art for this series. The `/images` endpoint provideds details to the image.\n","example":"ec8f13bf-77c0-40fe-933a-8c088c16bc17","format":"uuid","type":"string"},"description":{"description":"The description of the series eventually in HTML format.","example":"<p><strong>Some</strong> funny example.</p>","type":"string"},"description_is_html":{"description":"Determines whether `description` is in HTML format or plain.","type":"boolean"},"facebook_url":{"description":"The URL of the series on Facebook. Must be a valid URL.","type":"string"},"google_subscription_url":{"description":"The Google subscription URL.","type":"string"},"iheart_subscription_url":{"description":"The iHeartRadio subscription URL.","type":"string"},"instagram_url":{"description":"The URL of the series on Instagram. Must be a valid URL.","type":"string"},"itunes_subscription_badge_enabled":{"description":"If `true`, the ART19 web player will render an iTunes subscription badge.","type":"boolean"},"itunes_subscription_url":{"description":"The Apple iTunes subscription URL.","type":"string"},"linkedin_url":{"description":"The URL of the series on LinkedIn. Must be a valid URL.","type":"string"},"pocket_casts_subscription_url":{"description":"The Pocket Casts subscription URL.","type":"string"},"public_page_enabled":{"description":"If this is `true`, a public web page for this series is available under\n`https://art19.com/shows/{slug}`, where `slug` is the value of the corresponding attribute.\nThis public page provides details about the series as well as descriptive links to all its\nepisodes. If this is `false`, no such public page is available.\n","type":"boolean"},"public_title":{"description":"If present, this is the preferred title for the series in the RSS Feed.","type":"string"},"radio_public_subscription_url":{"description":"The RadioPublic subscription URL.","type":"string"},"rss_author":{"description":"The author responsible for the RSS feed.","type":"string"},"rss_copyright":{"description":"The copyright disclaimer for the contents of the show, appearing after a © symbol, e.g. `2020 ART19, Inc.`","type":"string"},"rss_email":{"description":"The pubic point of contact for the show.","type":"string"},"rss_owner":{"description":"The name of the contact for the show.","type":"string"},"sort_title":{"description":"The title of the series modified for sorting. This converts all characters to\nlower case, removes any leading `The` as well as leading and trailing whitespace characters.\n","example":"greatest show ever","type":"string"},"spotify_subscription_badge_enabled":{"description":"If `true`, the ART19 web player will render a Spotify subscription badge.","type":"boolean"},"spotify_subscription_url":{"description":"The Spotify subscription URL.","type":"string"},"stitcher_subscription_badge_enabled":{"description":"If `true`, the ART19 web player will render a Stitcher subscription badge.","type":"boolean"},"stitcher_subscription_url":{"description":"The Stitcher subscription URL.","type":"string"},"title":{"description":"The title of the series.","example":"The greatest show ever","type":"string"},"tumblr_url":{"description":"The URL of the series on Tumblr. Must be a valid URL.","type":"string"},"tune_in_subscription_url":{"description":"The TuneIn subscription URL.","type":"string"},"twitter_url":{"description":"The URL of the series on Twitter. Must be a valid URL.","type":"string"},"website_url":{"description":"The custom website URL for the series. Must be a valid URL.","type":"string"}},"type":"object"},"id":{"example":"c1fbb1bf-45b1-4803-986e-123166f7f427","format":"uuid","type":"string"},"relationships":{"properties":{"cover_image":{"description":"The cover image for the series.","properties":{"data":{"description":"[JSON:API Resource Identifier Object](https://jsonapi.org/format/#document-resource-identifier-objects)","nullable":true,"properties":{"id":{"description":"The ID of the cover image.","example":"2613eb10-15dc-4874-a35e-e580e8cf7063","format":"uuid","type":"string"},"type":{"description":"The type of resource: `images`","example":"images","type":"string"}},"type":"object"}},"type":"object"}},"type":"object"},"type":{"description":"The type of resource. This is always `series`.","example":"series","type":"string"}},"required":["type","id","attributes"]}},"type":"object"}},"host":"art19.com","info":{"contact":{"email":"support@art19.com","name":"ART19 Engineering Team"},"description":"The ART19 Content API conforms to the [JSON:API specification](http://jsonapi.org).\n\nAPI requests **MUST** use the HTTP Accept header:\n\n`Accept: application/vnd.api+json`\n\nAPI write requests **MUST** additionally use the HTTP Content-Type header:\n\n`Content-Type: application/vnd.api+json`\n\nAPI requests **MUST** be authenticated using the HTTP Authorization header:\n\n`Authorization: Token token=\"your-token\", credential=\"your-credential\"`\n\n## General Notes\n\nSome query parameters use unencoded [ and ] characters simply for readability. Defaults, examples, and\npossible values are additionally rendered in double quotes for readability. In practice, query parameters should\nnot have quotes around the values (e.g., `foo=bar` is valid, not `foo=\"bar\"`), and both query parameter keys\nand values must be percent-encoded, per the requirements in [RFC 3986 § 3.4](https://tools.ietf.org/html/rfc3986#section-3.4).\n\n## Rate Limiting\n\nIn order to provide a fair distribution of available resources, all API calls are subject to rate limits.\nIf you exceed the number of API calls per minute granted to your credential, a `429 Too Many Requests`\nerror response will be returned.\n\nIn that case, a `Retry-After` header MAY be included in the response, describing the number of seconds\nafter which a request can be retried.\n\nIf you run into a high number of 429 errors, please reach out to ART19 Support to adjust your rate limit.\n\n### Example\n\nIn the following example the request can be retried after waiting for 21 seconds:\n\n    HTTP/1.1 429 Too Many Requests\n    Content-Type: text/html\n    Retry-After: 21\n\n## Pagination\n\nRequests to collection endpoints **SHOULD** provide pagination parameters.\nSome endpoints **REQUIRE** pagination parameters to be provided.\nWhenever pagination is provided, it **MUST** be valid.\nFailing to provide pagination when it is required or providing wrong or incomplete pagination\nalways results in a `400 Bad Request` error response.\n\nThe page numbering starts with `1` and the maximum page size (if not otherwise documented\non an endpoint) is `100`. Pagination **MUST NOT** be specified if requesting a list of IDs (using an `ids[]` parameter).\n\nProviding invalid values for page number or page size, as well as providing only a page number or only a page size,\nis considered an error. Pagination is provided like this:\n\n`page[number]=1&page[size]=25`\n\nResponses conform to the [JSON:API specification's pagination section](https://jsonapi.org/format/#fetching-pagination)\nby including pagination links. Your requested page size will be carried into the pagination links.\n\n## Sorting\n\nRequests to collection endpoints usually accept a `sort` parameter. Please refer to the\n[JSON:API Specification's sorting section](https://jsonapi.org/format/#fetching-sorting) for further details.\n\n## Relationship Linking\n\nCurrently, resources return all of their relationships, in no particular order, pursuant to how relationships\nshould be returned [according to the JSON:API specification](https://jsonapi.org/format/#document-resource-object-relationships). Consumers of this API\n**MUST NOT** make assumptions about the order of these collections. Even though this data is not currently paginated, consumers **MUST** support\npaginating relationships per the JSON:API specification if this data is important for their application.\n","termsOfService":"https://art19.com/business-terms","title":"ART19 Content API Documentation","version":"1.0.0"},"paths":{"/classifications":{"get":{"parameters":[{"collectionFormat":"multi","description":"The list of IDs to filter by. Repeat this parameter for each ID you want to include in the filter.\nThe brackets *MUST* be percent-encoded, per the requirements in\n[RFC 3986 § 3.4](https://tools.ietf.org/html/rfc3986#section-3.4).\n","in":"query","items":{"format":"uuid","type":"string"},"name":"ids[]","required":false,"type":"array","uniqueItems":true},{"description":"Select which page number to receive results for. Pages are numbered starting at 1.\n\n","in":"query","minimum":1,"name":"page[number]","type":"integer"},{"description":"Indicate how many records to return per page. The maximum is 100.\n\n","in":"query","maximum":100,"minimum":1,"name":"page[size]","type":"integer"},{"description":"Limit the result to classifications of this type. The possible values for types\ndepends on the privileges of the provided credential.\n","enum":["AlternateFeedType","Genre","Industry","Language","MediaRating"],"example":"Genre","in":"query","name":"type","type":"string"},{"description":"Limit the result to classifications with a value containing the parameter value\ndisregarding case.\n","in":"query","name":"q","type":"string"},{"description":"If this parameter is provided and not empty, limit the result to classifications\nof type `Geography` representing countries. The credential must have at least one\nprivilege with a network, series, or advertiser profile.\n","example":"true","in":"query","name":"is_country","type":"string"},{"collectionFormat":"csv","default":"value","description":"Specify how to sort the result. Please refer to either the top section or the\n[JSON:API specification](https://jsonapi.org/format/#fetching-sorting) on how sorting works in general.\n","in":"query","items":{"enum":["created_at","updated_at","value"],"type":"string"},"name":"sort","type":"array"}],"produces":["application/vnd.api+json"],"responses":{"200":{"description":"Success","schema":{"properties":{"data":{"items":{"$ref":"#/definitions/Classification"},"type":"array"},"links":{"$ref":"#/definitions/Links"}},"type":"object"}},"400":{"description":"Bad Request\n\nParameters requiring a specific format must adhere to that format.\nPagination must have a positive page number and a page size no larger than 100. Filtering by type for AudienceSegment, AudienceTag, ListeningPlatform, and UserDevice is no longer supported.\n","schema":{"properties":{"errors":{"description":"An error object describing the problem. Please check out the\n[JSON:API Error document reference](https://jsonapi.org/format/#error-objects) for a full\ndescription of the returned object.\n","items":{"properties":{"code":{"description":"An application-specific error code, expressed as a string value","type":"string"},"detail":{"description":"A human-readable explanation specific to this occurrence of the problem. Like title, this field's value can be localized.\n","example":"Required query parameter \"series_id\" is missing","type":"string"},"source":{"description":"An object containing references to the source of the error, optionally including any of the following members.\n","nullable":true,"properties":{"parameter":{"description":"A string indicating which URI query parameter caused the error.","example":"series_id","type":"string"},"pointer":{"description":"A JSON Pointer [RFC6901](https://tools.ietf.org/html/rfc6901) to the associated entity in the request document (e.g. `/data` for a primary data object, or `/data/attributes/title` for a specific attribute).\n","example":"/data/attributes/name","type":"string"}},"type":"object"},"status":{"description":"The HTTP status code applicable to this problem, expressed as a string value: 400","example":"400","type":"string"},"title":{"description":"A short, human-readable summary of the problem that SHOULD NOT change from occurrence to occurrence of the\nproblem, except for purposes of localization.\n","example":"Bad Request","type":"string"}},"type":"object"},"type":"array"}},"type":"object"}},"401":{"$ref":"#/responses/unauthorized"},"403":{"$ref":"#/responses/forbidden"},"406":{"$ref":"#/responses/not_acceptable"},"429":{"$ref":"#/responses/rate_limit_exceeded"}},"security":[{"api_key":[]}],"summary":"Get a list of classifications","tags":["Classification"],"x-codeSamples":[{"label":"Ruby - Typhoeus","lang":"ruby","source":"response = Typhoeus.get(\n  \"https://art19.com/classifications\",\n  accept_encoding: 'gzip',\n  headers: {\n    Accept:        'application/vnd.api+json',\n    Authorization: 'Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"'\n  },\n  params: {\n    # add filters if desired\n    page: { number: 1, size: 25 }\n  },\n  timeout: 10\n)\nif response.success?\n  # HTTP 2xx - JSON:API available to be parsed in response.body\nelsif response.timed_out?\n  # Request timed out\nelsif response.code.zero?\n  # cURL didn't get back an HTTP response, the reason is in response.return_message\nelse\n  # Other HTTP status, check response.code for which\nend\n"},{"label":"JavaScript - Fetch","lang":"javascript","source":"try {\n  const response = await fetch('https://art19.com/classifications?page%5Bnumber%5D=1&page%5Bsize%5D=25', {\n    headers: {\n      Accept:        'application/vnd.api+json',\n      Authorization: 'Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"'\n    }\n  });\n\n  if (response.ok) {\n    // Get the response body if HTTP-status is 200-299\n    const json = await response.json();\n  } else {\n    // HTTP request failed, handle error\n  }\n} catch(err) {\n  // A network error occured\n}\n"},{"label":"PHP - cURL","lang":"php","source":"<?php\n// Initialize a cURL resource for a request\n$request = curl_init();\n\ntry {\n  // The API endpoint to request data from\n  $url = array('https://art19.com/classifications');\n\n  // Provide extra parameters like filters or pagination to the request\n  $url[] = http_build_query(array(\n    'page' => array('number' => 1, 'size' => 25)\n  ));\n\n  // Configure the cURL options\n  curl_setopt($request, CURLOPT_URL, implode('?', $url));\n  curl_setopt($request, CURLOPT_FOLLOWLOCATION, true);\n  curl_setopt($request, CURLOPT_RETURNTRANSFER, true);\n  curl_setopt($request, CURLOPT_ENCODING, '');\n  curl_setopt($request, CURLOPT_HTTPHEADER, array(\n    'Accept: application/vnd.api+json',\n    'Authorization: Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"'\n  ));\n\n  // Execute the request and grab all status information\n  $output = curl_exec($request);\n  $info   = curl_getinfo($request);\n  $code   = $info['http_code'];\n\n  if ($code >= 200 && $code < 300) {\n    // HTTP 2xx - JSON:API response available to be parsed in $output\n    $json = json_decode($output);\n  } else if ($code >= 400 && $code < 500) {\n    // HTTP 4xx - Client error; JSON:API response evt. available to be parsed in $output\n    if (strlen($output) > 0) {\n      $errors = json_decode($output);\n    }\n  } else {\n    // Other HTTP status, treat according to workflow\n  }\n} finally {\n  // Free up the resource to clear out memory\n  curl_close($request);\n}\n?>\n"},{"label":"cURL","lang":"shell","source":"curl 'https://art19.com/classifications?page%5Bnumber%5D=1&page%5Bsize%5D=25' \\\n  -H 'accept: application/vnd.api+json' \\\n  -H 'authorization: Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"' \\\n  --compressed\n"}]}},"/classifications/{id}":{"get":{"parameters":[{"description":"The ID of the classification resource to load.","example":"6bb474f9-3267-4182-bcfd-a67870f59601","format":"uuid","in":"path","name":"id","required":true,"type":"string"}],"produces":["application/vnd.api+json"],"responses":{"200":{"description":"Success","schema":{"properties":{"data":{"$ref":"#/definitions/Classification"},"links":{"$ref":"#/definitions/ResourceLink"}},"type":"object"}},"401":{"$ref":"#/responses/unauthorized"},"403":{"$ref":"#/responses/forbidden"},"404":{"$ref":"#/responses/not_found"},"406":{"$ref":"#/responses/not_acceptable"},"429":{"$ref":"#/responses/rate_limit_exceeded"}},"security":[{"api_key":[]}],"summary":"Get a specific classification","tags":["Classification"],"x-codeSamples":[{"label":"Ruby - Typhoeus","lang":"ruby","source":"response = Typhoeus.get(\n  \"https://art19.com/classifications/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\",\n  accept_encoding: 'gzip',\n  headers: {\n    Accept:        'application/vnd.api+json',\n    Authorization: 'Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"'\n  },\n  timeout: 10\n)\nif response.success?\n  # HTTP 2xx - JSON:API available to be parsed in response.body\nelsif response.timed_out?\n  # Request timed out\nelsif response.code.zero?\n  # cURL didn't get back an HTTP response, the reason is in response.return_message\nelse\n  # Other HTTP status, check response.code for which\nend\n"},{"label":"JavaScript - Fetch","lang":"javascript","source":"try {\n  const response = await fetch('https://art19.com/classifications/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5', {\n    headers: {\n      Accept:        'application/vnd.api+json',\n      Authorization: 'Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"'\n    }\n  });\n\n  if (response.ok) {\n    // Get the response body if HTTP-status is 200-299\n    const json = await response.json();\n  } else {\n    // HTTP request failed, handle error\n  }\n} catch(err) {\n  // A network error occured\n}\n"},{"label":"PHP - cURL","lang":"php","source":"<?php\n// Initialize a cURL resource for a request\n$request = curl_init();\n\ntry {\n  // Configure the cURL options\n  curl_setopt($request, CURLOPT_URL, 'https://art19.com/classifications/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5');\n  curl_setopt($request, CURLOPT_FOLLOWLOCATION, true);\n  curl_setopt($request, CURLOPT_RETURNTRANSFER, true);\n  curl_setopt($request, CURLOPT_ENCODING, '');\n  curl_setopt($request, CURLOPT_HTTPHEADER, array(\n    'Accept: application/vnd.api+json',\n    'Authorization: Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"'\n  ));\n\n  // Execute the request and grab all status information\n  $output = curl_exec($request);\n  $info   = curl_getinfo($request);\n  $code   = $info['http_code'];\n\n  if ($code >= 200 && $code < 300) {\n    // HTTP 2xx - JSON:API response available to be parsed in $output\n    $json = json_decode($output);\n  } else if ($code >= 400 && $code < 500) {\n    // HTTP 4xx - Client error; JSON:API response evt. available to be parsed in $output\n    if (strlen($output) > 0) {\n      $errors = json_decode($output);\n    }\n  } else {\n    // Other HTTP status, treat according to workflow\n  }\n} finally {\n  // Free up the resource to clear out memory\n  curl_close($request);\n}\n?>\n"},{"label":"cURL","lang":"shell","source":"curl 'https://art19.com/classifications/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5' \\\n  -H 'accept: application/vnd.api+json' \\\n  -H 'authorization: Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"' \\\n  --compressed\n"}]}},"/classification_inclusions":{"get":{"description":"Classification Inclusions connect classifications with entities like series, episodes, or campaigns, amongst others.\n\nIn order to retrieve a set of classification inclusions, at least one of the following filter parameters must\nbe provided. Failing to do so renders a `400 Bad Request` response.\n\n- `ids[]`\n- `classified_id` and `classified_type`\n- `classified_id` and `classification_type`\n- `classification_id` and `classified_type`\n","parameters":[{"collectionFormat":"multi","description":"The list of IDs to filter by. Repeat this parameter for each ID you want to include in the filter.\nThe brackets *MUST* be percent-encoded, per the requirements in\n[RFC 3986 § 3.4](https://tools.ietf.org/html/rfc3986#section-3.4).\n","in":"query","items":{"format":"uuid","type":"string"},"name":"ids[]","required":false,"type":"array","uniqueItems":true},{"description":"Select which page number to receive results for. Pages are numbered starting at 1.\n\n","in":"query","minimum":1,"name":"page[number]","type":"integer"},{"description":"Indicate how many records to return per page. The maximum is 100.\n\n","in":"query","maximum":100,"minimum":1,"name":"page[size]","type":"integer"},{"description":"Limit the result to classification inclusions linked to a classification with this ID.","example":"a90609c0-9f0c-48fd-8a41-83eb8414bedb","format":"uuid","in":"query","name":"classification_id","type":"string"},{"description":"The type of classification that the classification inclusions are linked to.\nDepending on the permissions of your credential, only a subset of these types are usable.\n","enum":["AlternateFeedType","Genre","Industry","Language","MediaRating"],"in":"query","name":"classification_type","type":"string"},{"description":"Limit the result to classification inclusions linked to a resource with this ID.\nYou will have to use this filter together with either `classified_type` or `classification_type`.\n","example":"fee1976e-f1bc-48a9-9ee8-58800f4d3462","format":"uuid","in":"query","name":"classified_id","type":"string"},{"description":"Limit the result to classification inclusions linked to this type of entity.","enum":["Series","Season","Episode"],"in":"query","name":"classified_type","type":"string"},{"description":"Limit the result to classification inclusions linked to a classification containing\nthe parameter value disregarding case.\n","in":"query","name":"q","type":"string"},{"collectionFormat":"csv","default":"created_at","description":"Specify how to sort the result. Please refer to either the top section or the\n[JSON:API specification](https://jsonapi.org/format/#fetching-sorting) on how sorting works in general.\n","in":"query","items":{"enum":["classification_value","created_at","position"],"type":"string"},"name":"sort","type":"array"}],"produces":["application/vnd.api+json"],"responses":{"200":{"description":"Success","schema":{"properties":{"data":{"items":{"$ref":"#/definitions/ClassificationInclusion"},"type":"array"},"links":{"$ref":"#/definitions/Links"}},"type":"object"}},"400":{"description":"Bad Request\n\nParameters requiring a specific format must adhere to that format.\nPagination must have a positive page number and a page size no larger than 100. At least one filter parameter is required.\n","schema":{"properties":{"errors":{"description":"An error object describing the problem. Please check out the\n[JSON:API Error document reference](https://jsonapi.org/format/#error-objects) for a full\ndescription of the returned object.\n","items":{"properties":{"code":{"description":"An application-specific error code, expressed as a string value","type":"string"},"detail":{"description":"A human-readable explanation specific to this occurrence of the problem. Like title, this field's value can be localized.\n","example":"Required query parameter \"series_id\" is missing","type":"string"},"source":{"description":"An object containing references to the source of the error, optionally including any of the following members.\n","nullable":true,"properties":{"parameter":{"description":"A string indicating which URI query parameter caused the error.","example":"series_id","type":"string"},"pointer":{"description":"A JSON Pointer [RFC6901](https://tools.ietf.org/html/rfc6901) to the associated entity in the request document (e.g. `/data` for a primary data object, or `/data/attributes/title` for a specific attribute).\n","example":"/data/attributes/name","type":"string"}},"type":"object"},"status":{"description":"The HTTP status code applicable to this problem, expressed as a string value: 400","example":"400","type":"string"},"title":{"description":"A short, human-readable summary of the problem that SHOULD NOT change from occurrence to occurrence of the\nproblem, except for purposes of localization.\n","example":"Bad Request","type":"string"}},"type":"object"},"type":"array"}},"type":"object"}},"401":{"$ref":"#/responses/unauthorized"},"403":{"$ref":"#/responses/forbidden"},"406":{"$ref":"#/responses/not_acceptable"},"429":{"$ref":"#/responses/rate_limit_exceeded"}},"security":[{"api_key":[]}],"summary":"Get ClassificationInclusion records","tags":["ClassificationInclusion"],"x-codeSamples":[{"label":"Ruby - Typhoeus","lang":"ruby","source":"response = Typhoeus.get(\n  \"https://art19.com/classification_inclusions\",\n  accept_encoding: 'gzip',\n  headers: {\n    Accept:        'application/vnd.api+json',\n    Authorization: 'Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"'\n  },\n  params: {\n    # add filters if desired\n    page: { number: 1, size: 25 }\n  },\n  timeout: 10\n)\nif response.success?\n  # HTTP 2xx - JSON:API available to be parsed in response.body\nelsif response.timed_out?\n  # Request timed out\nelsif response.code.zero?\n  # cURL didn't get back an HTTP response, the reason is in response.return_message\nelse\n  # Other HTTP status, check response.code for which\nend\n"},{"label":"JavaScript - Fetch","lang":"javascript","source":"try {\n  const response = await fetch('https://art19.com/classification_inclusions?page%5Bnumber%5D=1&page%5Bsize%5D=25', {\n    headers: {\n      Accept:        'application/vnd.api+json',\n      Authorization: 'Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"'\n    }\n  });\n\n  if (response.ok) {\n    // Get the response body if HTTP-status is 200-299\n    const json = await response.json();\n  } else {\n    // HTTP request failed, handle error\n  }\n} catch(err) {\n  // A network error occured\n}\n"},{"label":"PHP - cURL","lang":"php","source":"<?php\n// Initialize a cURL resource for a request\n$request = curl_init();\n\ntry {\n  // The API endpoint to request data from\n  $url = array('https://art19.com/classification_inclusions');\n\n  // Provide extra parameters like filters or pagination to the request\n  $url[] = http_build_query(array(\n    'page' => array('number' => 1, 'size' => 25)\n  ));\n\n  // Configure the cURL options\n  curl_setopt($request, CURLOPT_URL, implode('?', $url));\n  curl_setopt($request, CURLOPT_FOLLOWLOCATION, true);\n  curl_setopt($request, CURLOPT_RETURNTRANSFER, true);\n  curl_setopt($request, CURLOPT_ENCODING, '');\n  curl_setopt($request, CURLOPT_HTTPHEADER, array(\n    'Accept: application/vnd.api+json',\n    'Authorization: Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"'\n  ));\n\n  // Execute the request and grab all status information\n  $output = curl_exec($request);\n  $info   = curl_getinfo($request);\n  $code   = $info['http_code'];\n\n  if ($code >= 200 && $code < 300) {\n    // HTTP 2xx - JSON:API response available to be parsed in $output\n    $json = json_decode($output);\n  } else if ($code >= 400 && $code < 500) {\n    // HTTP 4xx - Client error; JSON:API response evt. available to be parsed in $output\n    if (strlen($output) > 0) {\n      $errors = json_decode($output);\n    }\n  } else {\n    // Other HTTP status, treat according to workflow\n  }\n} finally {\n  // Free up the resource to clear out memory\n  curl_close($request);\n}\n?>\n"},{"label":"cURL","lang":"shell","source":"curl 'https://art19.com/classification_inclusions?page%5Bnumber%5D=1&page%5Bsize%5D=25' \\\n  -H 'accept: application/vnd.api+json' \\\n  -H 'authorization: Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"' \\\n  --compressed\n"}]}},"/classification_inclusions/{id}":{"get":{"parameters":[{"description":"The ID of the classification inclusion resource to load.","example":"6bb474f9-3267-4182-bcfd-a67870f59601","format":"uuid","in":"path","name":"id","required":true,"type":"string"}],"produces":["application/vnd.api+json"],"responses":{"200":{"description":"Success","schema":{"properties":{"data":{"$ref":"#/definitions/ClassificationInclusion"},"links":{"$ref":"#/definitions/ResourceLink"}},"type":"object"}},"401":{"$ref":"#/responses/unauthorized"},"403":{"$ref":"#/responses/forbidden"},"404":{"$ref":"#/responses/not_found"},"406":{"$ref":"#/responses/not_acceptable"},"429":{"$ref":"#/responses/rate_limit_exceeded"}},"security":[{"api_key":[]}],"summary":"Get a specific classification inclusion","tags":["ClassificationInclusion"],"x-codeSamples":[{"label":"Ruby - Typhoeus","lang":"ruby","source":"response = Typhoeus.get(\n  \"https://art19.com/classification_inclusions/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\",\n  accept_encoding: 'gzip',\n  headers: {\n    Accept:        'application/vnd.api+json',\n    Authorization: 'Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"'\n  },\n  timeout: 10\n)\nif response.success?\n  # HTTP 2xx - JSON:API available to be parsed in response.body\nelsif response.timed_out?\n  # Request timed out\nelsif response.code.zero?\n  # cURL didn't get back an HTTP response, the reason is in response.return_message\nelse\n  # Other HTTP status, check response.code for which\nend\n"},{"label":"JavaScript - Fetch","lang":"javascript","source":"try {\n  const response = await fetch('https://art19.com/classification_inclusions/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5', {\n    headers: {\n      Accept:        'application/vnd.api+json',\n      Authorization: 'Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"'\n    }\n  });\n\n  if (response.ok) {\n    // Get the response body if HTTP-status is 200-299\n    const json = await response.json();\n  } else {\n    // HTTP request failed, handle error\n  }\n} catch(err) {\n  // A network error occured\n}\n"},{"label":"PHP - cURL","lang":"php","source":"<?php\n// Initialize a cURL resource for a request\n$request = curl_init();\n\ntry {\n  // Configure the cURL options\n  curl_setopt($request, CURLOPT_URL, 'https://art19.com/classification_inclusions/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5');\n  curl_setopt($request, CURLOPT_FOLLOWLOCATION, true);\n  curl_setopt($request, CURLOPT_RETURNTRANSFER, true);\n  curl_setopt($request, CURLOPT_ENCODING, '');\n  curl_setopt($request, CURLOPT_HTTPHEADER, array(\n    'Accept: application/vnd.api+json',\n    'Authorization: Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"'\n  ));\n\n  // Execute the request and grab all status information\n  $output = curl_exec($request);\n  $info   = curl_getinfo($request);\n  $code   = $info['http_code'];\n\n  if ($code >= 200 && $code < 300) {\n    // HTTP 2xx - JSON:API response available to be parsed in $output\n    $json = json_decode($output);\n  } else if ($code >= 400 && $code < 500) {\n    // HTTP 4xx - Client error; JSON:API response evt. available to be parsed in $output\n    if (strlen($output) > 0) {\n      $errors = json_decode($output);\n    }\n  } else {\n    // Other HTTP status, treat according to workflow\n  }\n} finally {\n  // Free up the resource to clear out memory\n  curl_close($request);\n}\n?>\n"},{"label":"cURL","lang":"shell","source":"curl 'https://art19.com/classification_inclusions/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5' \\\n  -H 'accept: application/vnd.api+json' \\\n  -H 'authorization: Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"' \\\n  --compressed\n"}]}},"/credits":{"get":{"parameters":[{"collectionFormat":"multi","description":"The list of IDs to filter by. Repeat this parameter for each ID you want to include in the filter.\nThe brackets *MUST* be percent-encoded, per the requirements in\n[RFC 3986 § 3.4](https://tools.ietf.org/html/rfc3986#section-3.4).\n","in":"query","items":{"format":"uuid","type":"string"},"name":"ids[]","required":false,"type":"array","uniqueItems":true},{"description":"Select which page number to receive results for. Pages are numbered starting at 1.\n\n","in":"query","minimum":1,"name":"page[number]","type":"integer"},{"description":"Indicate how many records to return per page. The maximum is 100.\n\n","in":"query","maximum":100,"minimum":1,"name":"page[size]","type":"integer"},{"description":"Limit the result to credits for the entity with this ID only. If the entity is not\npublished, the credential needs to have the right privilege to list the credits for it.\n","example":"76654e16-76ce-4945-92e9-e0a381917853","format":"uuid","in":"query","name":"creditable_id","type":"string"},{"description":"Limit the result to credits linked to this type of entity only.\nDepending on the privileges of the credential, this list might be further reduced to\nonly published entities.\n","enum":["Series","Season","Episode"],"in":"query","name":"creditable_type","type":"string"},{"collectionFormat":"csv","default":"position","description":"Specify how to sort the result. Please refer to either the top section or the\n[JSON:API specification](https://jsonapi.org/format/#fetching-sorting) on how sorting works in general.\n","in":"query","items":{"enum":["created_at","position","updated_at"],"type":"string"},"name":"sort","type":"array"}],"produces":["application/vnd.api+json"],"responses":{"200":{"description":"Success","schema":{"properties":{"data":{"items":{"$ref":"#/definitions/Credit"},"type":"array"},"links":{"$ref":"#/definitions/Links"}},"type":"object"}},"400":{"description":"Bad Request\n\nParameters requiring a specific format must adhere to that format.\nPagination must have a positive page number and a page size no larger than 100. \n","schema":{"properties":{"errors":{"description":"An error object describing the problem. Please check out the\n[JSON:API Error document reference](https://jsonapi.org/format/#error-objects) for a full\ndescription of the returned object.\n","items":{"properties":{"code":{"description":"An application-specific error code, expressed as a string value","type":"string"},"detail":{"description":"A human-readable explanation specific to this occurrence of the problem. Like title, this field's value can be localized.\n","example":"Required query parameter \"series_id\" is missing","type":"string"},"source":{"description":"An object containing references to the source of the error, optionally including any of the following members.\n","nullable":true,"properties":{"parameter":{"description":"A string indicating which URI query parameter caused the error.","example":"series_id","type":"string"},"pointer":{"description":"A JSON Pointer [RFC6901](https://tools.ietf.org/html/rfc6901) to the associated entity in the request document (e.g. `/data` for a primary data object, or `/data/attributes/title` for a specific attribute).\n","example":"/data/attributes/name","type":"string"}},"type":"object"},"status":{"description":"The HTTP status code applicable to this problem, expressed as a string value: 400","example":"400","type":"string"},"title":{"description":"A short, human-readable summary of the problem that SHOULD NOT change from occurrence to occurrence of the\nproblem, except for purposes of localization.\n","example":"Bad Request","type":"string"}},"type":"object"},"type":"array"}},"type":"object"}},"401":{"$ref":"#/responses/unauthorized"},"403":{"$ref":"#/responses/forbidden"},"406":{"$ref":"#/responses/not_acceptable"},"429":{"$ref":"#/responses/rate_limit_exceeded"}},"security":[{"api_key":[]}],"summary":"Get a list of credits","tags":["Credit"],"x-codeSamples":[{"label":"Ruby - Typhoeus","lang":"ruby","source":"response = Typhoeus.get(\n  \"https://art19.com/credits\",\n  accept_encoding: 'gzip',\n  headers: {\n    Accept:        'application/vnd.api+json',\n    Authorization: 'Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"'\n  },\n  params: {\n    # add filters if desired\n    page: { number: 1, size: 25 }\n  },\n  timeout: 10\n)\nif response.success?\n  # HTTP 2xx - JSON:API available to be parsed in response.body\nelsif response.timed_out?\n  # Request timed out\nelsif response.code.zero?\n  # cURL didn't get back an HTTP response, the reason is in response.return_message\nelse\n  # Other HTTP status, check response.code for which\nend\n"},{"label":"JavaScript - Fetch","lang":"javascript","source":"try {\n  const response = await fetch('https://art19.com/credits?page%5Bnumber%5D=1&page%5Bsize%5D=25', {\n    headers: {\n      Accept:        'application/vnd.api+json',\n      Authorization: 'Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"'\n    }\n  });\n\n  if (response.ok) {\n    // Get the response body if HTTP-status is 200-299\n    const json = await response.json();\n  } else {\n    // HTTP request failed, handle error\n  }\n} catch(err) {\n  // A network error occured\n}\n"},{"label":"PHP - cURL","lang":"php","source":"<?php\n// Initialize a cURL resource for a request\n$request = curl_init();\n\ntry {\n  // The API endpoint to request data from\n  $url = array('https://art19.com/credits');\n\n  // Provide extra parameters like filters or pagination to the request\n  $url[] = http_build_query(array(\n    'page' => array('number' => 1, 'size' => 25)\n  ));\n\n  // Configure the cURL options\n  curl_setopt($request, CURLOPT_URL, implode('?', $url));\n  curl_setopt($request, CURLOPT_FOLLOWLOCATION, true);\n  curl_setopt($request, CURLOPT_RETURNTRANSFER, true);\n  curl_setopt($request, CURLOPT_ENCODING, '');\n  curl_setopt($request, CURLOPT_HTTPHEADER, array(\n    'Accept: application/vnd.api+json',\n    'Authorization: Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"'\n  ));\n\n  // Execute the request and grab all status information\n  $output = curl_exec($request);\n  $info   = curl_getinfo($request);\n  $code   = $info['http_code'];\n\n  if ($code >= 200 && $code < 300) {\n    // HTTP 2xx - JSON:API response available to be parsed in $output\n    $json = json_decode($output);\n  } else if ($code >= 400 && $code < 500) {\n    // HTTP 4xx - Client error; JSON:API response evt. available to be parsed in $output\n    if (strlen($output) > 0) {\n      $errors = json_decode($output);\n    }\n  } else {\n    // Other HTTP status, treat according to workflow\n  }\n} finally {\n  // Free up the resource to clear out memory\n  curl_close($request);\n}\n?>\n"},{"label":"cURL","lang":"shell","source":"curl 'https://art19.com/credits?page%5Bnumber%5D=1&page%5Bsize%5D=25' \\\n  -H 'accept: application/vnd.api+json' \\\n  -H 'authorization: Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"' \\\n  --compressed\n"}]},"post":{"consumes":["application/vnd.api+json"],"description":"For a create request to succeed, your credential must have admin permission with the series that owns the creditable entity (series, season, or episode).\n","parameters":[{"description":"Credit to create.","in":"body","required":true,"schema":{"$ref":"#/definitions/CreditCreate"}}],"responses":{"201":{"description":"Created","schema":{"properties":{"data":{"$ref":"#/definitions/Credit"},"links":{"$ref":"#/definitions/ResourceLink"}},"type":"object"}},"401":{"$ref":"#/responses/unauthorized"},"403":{"$ref":"#/responses/forbidden"},"406":{"$ref":"#/responses/not_acceptable"},"415":{"$ref":"#/responses/unsupported_media_type"},"422":{"$ref":"#/responses/unprocessable_entity"},"429":{"$ref":"#/responses/rate_limit_exceeded"},"507":{"$ref":"#/responses/insufficient_storage"}},"security":[{"api_key":[]}],"summary":"Create a new credit","tags":["Credit"]}},"/credits/{id}":{"delete":{"description":"For a delete request to succeed, your credential must have admin permission with the series that owns the creditable entity (series, season, or episode).\n","responses":{"204":{"description":"No Content\n\nThe resource has been deleted successfully.\n"},"401":{"$ref":"#/responses/unauthorized"},"403":{"$ref":"#/responses/forbidden"},"406":{"$ref":"#/responses/not_acceptable"},"429":{"$ref":"#/responses/rate_limit_exceeded"},"507":{"$ref":"#/responses/insufficient_storage"}},"security":[{"api_key":[]}],"summary":"Delete a specific credit","tags":["Credit"]},"get":{"parameters":[{"description":"The ID of the credit resource to load.","example":"6bb474f9-3267-4182-bcfd-a67870f59601","format":"uuid","in":"path","name":"id","required":true,"type":"string"}],"produces":["application/vnd.api+json"],"responses":{"200":{"description":"Success","schema":{"properties":{"data":{"$ref":"#/definitions/Credit"},"links":{"$ref":"#/definitions/ResourceLink"}},"type":"object"}},"401":{"$ref":"#/responses/unauthorized"},"403":{"$ref":"#/responses/forbidden"},"404":{"$ref":"#/responses/not_found"},"406":{"$ref":"#/responses/not_acceptable"},"429":{"$ref":"#/responses/rate_limit_exceeded"}},"security":[{"api_key":[]}],"summary":"Get a specific credit","tags":["Credit"],"x-codeSamples":[{"label":"Ruby - Typhoeus","lang":"ruby","source":"response = Typhoeus.get(\n  \"https://art19.com/credits/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\",\n  accept_encoding: 'gzip',\n  headers: {\n    Accept:        'application/vnd.api+json',\n    Authorization: 'Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"'\n  },\n  timeout: 10\n)\nif response.success?\n  # HTTP 2xx - JSON:API available to be parsed in response.body\nelsif response.timed_out?\n  # Request timed out\nelsif response.code.zero?\n  # cURL didn't get back an HTTP response, the reason is in response.return_message\nelse\n  # Other HTTP status, check response.code for which\nend\n"},{"label":"JavaScript - Fetch","lang":"javascript","source":"try {\n  const response = await fetch('https://art19.com/credits/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5', {\n    headers: {\n      Accept:        'application/vnd.api+json',\n      Authorization: 'Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"'\n    }\n  });\n\n  if (response.ok) {\n    // Get the response body if HTTP-status is 200-299\n    const json = await response.json();\n  } else {\n    // HTTP request failed, handle error\n  }\n} catch(err) {\n  // A network error occured\n}\n"},{"label":"PHP - cURL","lang":"php","source":"<?php\n// Initialize a cURL resource for a request\n$request = curl_init();\n\ntry {\n  // Configure the cURL options\n  curl_setopt($request, CURLOPT_URL, 'https://art19.com/credits/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5');\n  curl_setopt($request, CURLOPT_FOLLOWLOCATION, true);\n  curl_setopt($request, CURLOPT_RETURNTRANSFER, true);\n  curl_setopt($request, CURLOPT_ENCODING, '');\n  curl_setopt($request, CURLOPT_HTTPHEADER, array(\n    'Accept: application/vnd.api+json',\n    'Authorization: Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"'\n  ));\n\n  // Execute the request and grab all status information\n  $output = curl_exec($request);\n  $info   = curl_getinfo($request);\n  $code   = $info['http_code'];\n\n  if ($code >= 200 && $code < 300) {\n    // HTTP 2xx - JSON:API response available to be parsed in $output\n    $json = json_decode($output);\n  } else if ($code >= 400 && $code < 500) {\n    // HTTP 4xx - Client error; JSON:API response evt. available to be parsed in $output\n    if (strlen($output) > 0) {\n      $errors = json_decode($output);\n    }\n  } else {\n    // Other HTTP status, treat according to workflow\n  }\n} finally {\n  // Free up the resource to clear out memory\n  curl_close($request);\n}\n?>\n"},{"label":"cURL","lang":"shell","source":"curl 'https://art19.com/credits/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5' \\\n  -H 'accept: application/vnd.api+json' \\\n  -H 'authorization: Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"' \\\n  --compressed\n"}]},"patch":{"consumes":["application/vnd.api+json"],"description":"For an update request to succeed, your credential must have admin permission with the series that owns the creditable entity (series, season, or episode).\n","parameters":[{"description":"Credit to update.","in":"body","required":true,"schema":{"$ref":"#/definitions/CreditUpdate"}}],"responses":{"200":{"description":"Success","schema":{"properties":{"data":{"$ref":"#/definitions/Credit"},"links":{"$ref":"#/definitions/ResourceLink"}},"type":"object"}},"401":{"$ref":"#/responses/unauthorized"},"403":{"$ref":"#/responses/forbidden"},"406":{"$ref":"#/responses/not_acceptable"},"415":{"$ref":"#/responses/unsupported_media_type"},"422":{"$ref":"#/responses/unprocessable_entity"},"429":{"$ref":"#/responses/rate_limit_exceeded"},"507":{"$ref":"#/responses/insufficient_storage"}},"security":[{"api_key":[]}],"summary":"Update a specific credit","tags":["Credit"]}},"/episodes":{"get":{"description":"One initial filter must be provided (`ids`, `series_id`, or `season_id`), otherwise a `400 Bad Request` response\nwill be returned. Additional filters are allowed.\n\nThis API will only return episodes that your credential has permission to access, which may not be exclusive to\nyour account, depending on the filter(s) being used. Be careful to filter the results as needed.\n","parameters":[{"collectionFormat":"multi","description":"The list of IDs to filter by. Repeat this parameter for each ID you want to include in the filter.\nThe brackets *MUST* be percent-encoded, per the requirements in\n[RFC 3986 § 3.4](https://tools.ietf.org/html/rfc3986#section-3.4).\n","in":"query","items":{"format":"uuid","type":"string"},"name":"ids[]","required":false,"type":"array","uniqueItems":true},{"description":"Select which page number to receive results for. Pages are numbered starting at 1.\n\n","in":"query","minimum":1,"name":"page[number]","required":"true","type":"integer"},{"description":"Indicate how many records to return per page. The maximum is 100.\n\n","in":"query","maximum":100,"minimum":1,"name":"page[size]","required":"true","type":"integer"},{"description":"If `true`, limit the result to episodes that have been downloaded.","in":"query","name":"has_downloads","type":"boolean"},{"collectionFormat":"csv","description":"Limit the result to episodes with matching types.","example":"bonus,full","in":"query","items":{"enum":["full","bonus","trailer"],"type":"string"},"name":"itunes_type","type":"array"},{"description":"Limit the result to episodes released in this month.","in":"query","name":"month","type":"string"},{"description":"If `true`, limit the result to published episodes only.\nIf `false`, limit the result to _unpublished_ episodes only.\n","in":"query","name":"published","type":"boolean"},{"description":"Limit the result to episodes with a title containing this parameter in a case-insensitive way.","in":"query","name":"q","type":"string"},{"description":"Limit the result to episodes released after this timestamp.","format":"date-time","in":"query","name":"released_after","type":"string"},{"description":"Limit the result to episodes released before this timestamp.","format":"date-time","in":"query","name":"released_before","type":"string"},{"description":"If `true`, limit the result to published and released episodes holding an available media file.\nIf this is `true`, it also changes the default sort order to `-released_at`.\n","in":"query","name":"rss","type":"boolean"},{"description":"Limit result to episodes linked to this season.","example":"30e7b568-d099-486b-9a8e-51b7594cab7d","format":"uuid","in":"query","name":"season_id","type":"string"},{"description":"Limit the result to episodes linked to this series.","example":"d0ceb1ff-b95b-4c1e-a7e5-a36ed7b4d3b7","format":"uuid","in":"query","name":"series_id","type":"string"},{"collectionFormat":"csv","default":"sort_title","description":"Specify how to sort the result. Please refer to either the top section or the\n[JSON:API specification](https://jsonapi.org/format/#fetching-sorting) on how sorting works in general.\n","in":"query","items":{"enum":["created_at","earliest_released_at","released_at","released_or_created_at","sort_title","title","updated_at"],"type":"string"},"name":"sort","type":"array"},{"description":"Limit the result to episodes released in this year.","in":"query","name":"year","type":"string"}],"produces":["application/vnd.api+json"],"responses":{"200":{"description":"Success","schema":{"properties":{"data":{"items":{"$ref":"#/definitions/Episode"},"type":"array"},"links":{"$ref":"#/definitions/Links"}},"type":"object"}},"400":{"description":"Bad Request\n\nParameters requiring a specific format must adhere to that format.\nPagination must be present and have a positive page number and a page size no larger than 100. One initial filter must be provided (`ids`, `series_id`, or `season_id`).\n","schema":{"properties":{"errors":{"description":"An error object describing the problem. Please check out the\n[JSON:API Error document reference](https://jsonapi.org/format/#error-objects) for a full\ndescription of the returned object.\n","items":{"properties":{"code":{"description":"An application-specific error code, expressed as a string value","type":"string"},"detail":{"description":"A human-readable explanation specific to this occurrence of the problem. Like title, this field's value can be localized.\n","example":"Required query parameter \"series_id\" is missing","type":"string"},"source":{"description":"An object containing references to the source of the error, optionally including any of the following members.\n","nullable":true,"properties":{"parameter":{"description":"A string indicating which URI query parameter caused the error.","example":"series_id","type":"string"},"pointer":{"description":"A JSON Pointer [RFC6901](https://tools.ietf.org/html/rfc6901) to the associated entity in the request document (e.g. `/data` for a primary data object, or `/data/attributes/title` for a specific attribute).\n","example":"/data/attributes/name","type":"string"}},"type":"object"},"status":{"description":"The HTTP status code applicable to this problem, expressed as a string value: 400","example":"400","type":"string"},"title":{"description":"A short, human-readable summary of the problem that SHOULD NOT change from occurrence to occurrence of the\nproblem, except for purposes of localization.\n","example":"Bad Request","type":"string"}},"type":"object"},"type":"array"}},"type":"object"}},"401":{"$ref":"#/responses/unauthorized"},"403":{"$ref":"#/responses/forbidden"},"406":{"$ref":"#/responses/not_acceptable"},"429":{"$ref":"#/responses/rate_limit_exceeded"}},"security":[{"api_key":[]}],"summary":"Get a list of episodes","tags":["Episode"],"x-codeSamples":[{"label":"Ruby - Typhoeus","lang":"ruby","source":"response = Typhoeus.get(\n  \"https://art19.com/episodes\",\n  accept_encoding: 'gzip',\n  headers: {\n    Accept:        'application/vnd.api+json',\n    Authorization: 'Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"'\n  },\n  params: {\n    # add filters if desired\n    page: { number: 1, size: 25 }\n  },\n  timeout: 10\n)\nif response.success?\n  # HTTP 2xx - JSON:API available to be parsed in response.body\nelsif response.timed_out?\n  # Request timed out\nelsif response.code.zero?\n  # cURL didn't get back an HTTP response, the reason is in response.return_message\nelse\n  # Other HTTP status, check response.code for which\nend\n"},{"label":"JavaScript - Fetch","lang":"javascript","source":"try {\n  const response = await fetch('https://art19.com/episodes?page%5Bnumber%5D=1&page%5Bsize%5D=25', {\n    headers: {\n      Accept:        'application/vnd.api+json',\n      Authorization: 'Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"'\n    }\n  });\n\n  if (response.ok) {\n    // Get the response body if HTTP-status is 200-299\n    const json = await response.json();\n  } else {\n    // HTTP request failed, handle error\n  }\n} catch(err) {\n  // A network error occured\n}\n"},{"label":"PHP - cURL","lang":"php","source":"<?php\n// Initialize a cURL resource for a request\n$request = curl_init();\n\ntry {\n  // The API endpoint to request data from\n  $url = array('https://art19.com/episodes');\n\n  // Provide extra parameters like filters or pagination to the request\n  $url[] = http_build_query(array(\n    'page' => array('number' => 1, 'size' => 25)\n  ));\n\n  // Configure the cURL options\n  curl_setopt($request, CURLOPT_URL, implode('?', $url));\n  curl_setopt($request, CURLOPT_FOLLOWLOCATION, true);\n  curl_setopt($request, CURLOPT_RETURNTRANSFER, true);\n  curl_setopt($request, CURLOPT_ENCODING, '');\n  curl_setopt($request, CURLOPT_HTTPHEADER, array(\n    'Accept: application/vnd.api+json',\n    'Authorization: Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"'\n  ));\n\n  // Execute the request and grab all status information\n  $output = curl_exec($request);\n  $info   = curl_getinfo($request);\n  $code   = $info['http_code'];\n\n  if ($code >= 200 && $code < 300) {\n    // HTTP 2xx - JSON:API response available to be parsed in $output\n    $json = json_decode($output);\n  } else if ($code >= 400 && $code < 500) {\n    // HTTP 4xx - Client error; JSON:API response evt. available to be parsed in $output\n    if (strlen($output) > 0) {\n      $errors = json_decode($output);\n    }\n  } else {\n    // Other HTTP status, treat according to workflow\n  }\n} finally {\n  // Free up the resource to clear out memory\n  curl_close($request);\n}\n?>\n"},{"label":"cURL","lang":"shell","source":"curl 'https://art19.com/episodes?page%5Bnumber%5D=1&page%5Bsize%5D=25' \\\n  -H 'accept: application/vnd.api+json' \\\n  -H 'authorization: Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"' \\\n  --compressed\n"}]},"post":{"consumes":["application/vnd.api+json"],"description":"### Deprecations\n\n- The attribute `cover_image_id` has been replaced with the relationship `cover_image`\n  and will be removed from the response in a future release.\n\n\nFor a create request to succeed, your credential must have admin permission with the series that this episode belongs to.\n","parameters":[{"description":"Episode to create.","in":"body","required":true,"schema":{"$ref":"#/definitions/EpisodeCreate"}}],"responses":{"201":{"description":"Created","schema":{"properties":{"data":{"$ref":"#/definitions/Episode"},"links":{"$ref":"#/definitions/ResourceLink"}},"type":"object"}},"401":{"$ref":"#/responses/unauthorized"},"403":{"$ref":"#/responses/forbidden"},"406":{"$ref":"#/responses/not_acceptable"},"415":{"$ref":"#/responses/unsupported_media_type"},"422":{"$ref":"#/responses/unprocessable_entity"},"429":{"$ref":"#/responses/rate_limit_exceeded"},"507":{"$ref":"#/responses/insufficient_storage"}},"security":[{"api_key":[]}],"summary":"Create a new episode","tags":["Episode"]}},"/episodes/{id}":{"delete":{"description":"For a delete request to succeed, your credential must have admin permission with the series that owns this episode.\n","responses":{"204":{"description":"No Content\n\nThe resource has been deleted successfully.\n"},"401":{"$ref":"#/responses/unauthorized"},"403":{"$ref":"#/responses/forbidden"},"406":{"$ref":"#/responses/not_acceptable"},"429":{"$ref":"#/responses/rate_limit_exceeded"},"507":{"$ref":"#/responses/insufficient_storage"}},"security":[{"api_key":[]}],"summary":"Delete a specific episode","tags":["Episode"]},"get":{"parameters":[{"description":"Include related resources in the response. The related resources will be returned in the top-level `included` array.\nMultiple relationships can be included by separating them with commas.\nNested relationships can be specified using dot notation (e.g., `series.network`).\nAvailable relationships: `active_version`, `cover_image`, `season`, `series`, `series.cover_image`, `series.network`.\n","example":"series,cover_image","in":"query","name":"include","type":"string"},{"description":"The ID of the episode resource to load.","example":"6bb474f9-3267-4182-bcfd-a67870f59601","format":"uuid","in":"path","name":"id","required":true,"type":"string"}],"produces":["application/vnd.api+json"],"responses":{"200":{"description":"Success","schema":{"properties":{"data":{"$ref":"#/definitions/Episode"},"included":{"description":"Related resources included in the response when using the include parameter (optional).","items":{"oneOf":[{"$ref":"#/definitions/EpisodeVersion"},{"$ref":"#/definitions/Series"},{"$ref":"#/definitions/Season"},{"$ref":"#/definitions/Image"},{"$ref":"#/definitions/Network"}]},"type":"array"},"links":{"$ref":"#/definitions/ResourceLink"}},"type":"object"}},"400":{"description":"Bad Request\n\nParameters requiring a specific format must adhere to that format.\nInvalid include parameter values are not permitted.\n","schema":{"properties":{"errors":{"description":"An error object describing the problem. Please check out the\n[JSON:API Error document reference](https://jsonapi.org/format/#error-objects) for a full\ndescription of the returned object.\n","items":{"properties":{"code":{"description":"An application-specific error code, expressed as a string value","type":"string"},"detail":{"description":"A human-readable explanation specific to this occurrence of the problem. Like title, this field's value can be localized.\n","example":"Required query parameter \"series_id\" is missing","type":"string"},"source":{"description":"An object containing references to the source of the error, optionally including any of the following members.\n","nullable":true,"properties":{"parameter":{"description":"A string indicating which URI query parameter caused the error.","example":"series_id","type":"string"},"pointer":{"description":"A JSON Pointer [RFC6901](https://tools.ietf.org/html/rfc6901) to the associated entity in the request document (e.g. `/data` for a primary data object, or `/data/attributes/title` for a specific attribute).\n","example":"/data/attributes/name","type":"string"}},"type":"object"},"status":{"description":"The HTTP status code applicable to this problem, expressed as a string value: 400","example":"400","type":"string"},"title":{"description":"A short, human-readable summary of the problem that SHOULD NOT change from occurrence to occurrence of the\nproblem, except for purposes of localization.\n","example":"Bad Request","type":"string"}},"type":"object"},"type":"array"}},"type":"object"}},"401":{"$ref":"#/responses/unauthorized"},"403":{"$ref":"#/responses/forbidden"},"404":{"$ref":"#/responses/not_found"},"406":{"$ref":"#/responses/not_acceptable"},"429":{"$ref":"#/responses/rate_limit_exceeded"}},"security":[{"api_key":[]}],"summary":"Get a specific episode","tags":["Episode"],"x-codeSamples":[{"label":"Ruby - Typhoeus","lang":"ruby","source":"response = Typhoeus.get(\n  \"https://art19.com/episodes/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\",\n  accept_encoding: 'gzip',\n  headers: {\n    Accept:        'application/vnd.api+json',\n    Authorization: 'Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"'\n  },\n  timeout: 10\n)\nif response.success?\n  # HTTP 2xx - JSON:API available to be parsed in response.body\nelsif response.timed_out?\n  # Request timed out\nelsif response.code.zero?\n  # cURL didn't get back an HTTP response, the reason is in response.return_message\nelse\n  # Other HTTP status, check response.code for which\nend\n"},{"label":"JavaScript - Fetch","lang":"javascript","source":"try {\n  const response = await fetch('https://art19.com/episodes/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5', {\n    headers: {\n      Accept:        'application/vnd.api+json',\n      Authorization: 'Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"'\n    }\n  });\n\n  if (response.ok) {\n    // Get the response body if HTTP-status is 200-299\n    const json = await response.json();\n  } else {\n    // HTTP request failed, handle error\n  }\n} catch(err) {\n  // A network error occured\n}\n"},{"label":"PHP - cURL","lang":"php","source":"<?php\n// Initialize a cURL resource for a request\n$request = curl_init();\n\ntry {\n  // Configure the cURL options\n  curl_setopt($request, CURLOPT_URL, 'https://art19.com/episodes/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5');\n  curl_setopt($request, CURLOPT_FOLLOWLOCATION, true);\n  curl_setopt($request, CURLOPT_RETURNTRANSFER, true);\n  curl_setopt($request, CURLOPT_ENCODING, '');\n  curl_setopt($request, CURLOPT_HTTPHEADER, array(\n    'Accept: application/vnd.api+json',\n    'Authorization: Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"'\n  ));\n\n  // Execute the request and grab all status information\n  $output = curl_exec($request);\n  $info   = curl_getinfo($request);\n  $code   = $info['http_code'];\n\n  if ($code >= 200 && $code < 300) {\n    // HTTP 2xx - JSON:API response available to be parsed in $output\n    $json = json_decode($output);\n  } else if ($code >= 400 && $code < 500) {\n    // HTTP 4xx - Client error; JSON:API response evt. available to be parsed in $output\n    if (strlen($output) > 0) {\n      $errors = json_decode($output);\n    }\n  } else {\n    // Other HTTP status, treat according to workflow\n  }\n} finally {\n  // Free up the resource to clear out memory\n  curl_close($request);\n}\n?>\n"},{"label":"cURL","lang":"shell","source":"curl 'https://art19.com/episodes/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5' \\\n  -H 'accept: application/vnd.api+json' \\\n  -H 'authorization: Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"' \\\n  --compressed\n"}]},"patch":{"consumes":["application/vnd.api+json"],"description":"### Deprecations\n\n- The attribute `cover_image_id` has been replaced with the relationship `cover_image`\n  and will be removed from the response in a future release.\n\n\nFor an update request to succeed, your credential must have admin permission with the series that owns this episode.\n","parameters":[{"description":"Episode to update.","in":"body","required":true,"schema":{"$ref":"#/definitions/EpisodeUpdate"}}],"responses":{"200":{"description":"Success","schema":{"properties":{"data":{"$ref":"#/definitions/Episode"},"links":{"$ref":"#/definitions/ResourceLink"}},"type":"object"}},"401":{"$ref":"#/responses/unauthorized"},"403":{"$ref":"#/responses/forbidden"},"406":{"$ref":"#/responses/not_acceptable"},"415":{"$ref":"#/responses/unsupported_media_type"},"422":{"$ref":"#/responses/unprocessable_entity"},"429":{"$ref":"#/responses/rate_limit_exceeded"},"507":{"$ref":"#/responses/insufficient_storage"}},"security":[{"api_key":[]}],"summary":"Update a specific episode","tags":["Episode"]}},"/episodes/{id}.jpeg":{"get":{"description":"Redirects to the image file URL (CDN or S3). Convenience endpoint for direct media access. If the episode has no image, returns the season or series image.","operationId":"getEpisodeImage","parameters":[{"description":"The UUID of the episode","format":"uuid","in":"path","name":"id","required":true,"type":"string"},{"default":"regular","description":"The image style/size to retrieve","enum":["regular","thumb","square-400","square-640","square-888","square-3000","itunes"],"in":"query","name":"style","required":false,"type":"string"}],"produces":["image/jpeg"],"responses":{"302":{"description":"Redirect to image file URL (CDN or S3)","headers":{"Location":{"description":"The URL of the image file (CDN or S3)","format":"uri","type":"string"}}},"401":{"$ref":"#/responses/unauthorized"},"403":{"$ref":"#/responses/forbidden"},"404":{"$ref":"#/responses/not_found"},"406":{"$ref":"#/responses/not_acceptable"}},"security":[{"api_key":[]}],"summary":"Get image file","tags":["Episode"],"x-codeSamples":[{"label":"Ruby - Typhoeus","lang":"ruby","source":"# Get regular image (default)\nTyphoeus.get(\n  \"https://art19.com/episodes/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5.jpeg\",\n  accept_encoding: 'gzip',\n  headers: {\n    Accept:        'image/jpeg',\n    Authorization: 'Token token=\"YOUR_TOKEN\", credential=\"YOUR_CREDENTIAL_ID\"'\n  },\n  followlocation: true,\n  timeout: 10\n)\n\n# Get thumbnail\nTyphoeus.get(\n  \"https://art19.com/episodes/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5.jpeg?style=thumb\",\n  accept_encoding: 'gzip',\n  headers: {\n    Accept:        'image/jpeg',\n    Authorization: 'Token token=\"YOUR_TOKEN\", credential=\"YOUR_CREDENTIAL_ID\"'\n  },\n  followlocation: true,\n  timeout: 10\n)\n"},{"label":"JavaScript - Fetch","lang":"javascript","source":"// Get regular image (default)\nconst response1 = await fetch('https://art19.com/episodes/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5.jpeg', {\n  headers: {\n    'Accept': 'image/jpeg',\n    'Authorization': 'Token token=\"YOUR_TOKEN\", credential=\"YOUR_CREDENTIAL_ID\"'\n  },\n  redirect: 'follow'\n});\n\n// Get thumbnail\nconst response2 = await fetch('https://art19.com/episodes/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5.jpeg?style=thumb', {\n  headers: {\n    'Accept': 'image/jpeg',\n    'Authorization': 'Token token=\"YOUR_TOKEN\", credential=\"YOUR_CREDENTIAL_ID\"'\n  },\n  redirect: 'follow'\n});\n"},{"label":"PHP - cURL","lang":"php","source":"<?php\n// Get regular image (default)\n$request = curl_init();\ncurl_setopt($request, CURLOPT_URL, 'https://art19.com/episodes/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5.jpeg');\ncurl_setopt($request, CURLOPT_HTTPHEADER, [\n  'Accept: image/jpeg',\n  'Authorization: Token token=\"YOUR_TOKEN\", credential=\"YOUR_CREDENTIAL_ID\"'\n]);\ncurl_setopt($request, CURLOPT_FOLLOWLOCATION, true);\ncurl_setopt($request, CURLOPT_RETURNTRANSFER, true);\n$output = curl_exec($request);\ncurl_close($request);\n\n// Get thumbnail\n$request = curl_init();\ncurl_setopt($request, CURLOPT_URL, 'https://art19.com/episodes/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5.jpeg?style=thumb');\ncurl_setopt($request, CURLOPT_HTTPHEADER, [\n  'Accept: image/jpeg',\n  'Authorization: Token token=\"YOUR_TOKEN\", credential=\"YOUR_CREDENTIAL_ID\"'\n]);\ncurl_setopt($request, CURLOPT_FOLLOWLOCATION, true);\ncurl_setopt($request, CURLOPT_RETURNTRANSFER, true);\n$output = curl_exec($request);\ncurl_close($request);\n?>\n"},{"label":"cURL","lang":"shell","source":"# Get regular image (default)\ncurl -L 'https://art19.com/episodes/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5.jpeg' \\\n  -H 'Accept: image/jpeg' \\\n  -H 'Authorization: Token token=\"YOUR_TOKEN\", credential=\"YOUR_CREDENTIAL_ID\"' \\\n  --compressed\n\n# Get thumbnail\ncurl -L 'https://art19.com/episodes/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5.jpeg?style=thumb' \\\n  -H 'Accept: image/jpeg' \\\n  -H 'Authorization: Token token=\"YOUR_TOKEN\", credential=\"YOUR_CREDENTIAL_ID\"' \\\n  --compressed\n"}]}},"/episodes/{id}.mp3":{"get":{"description":"Redirects to the audio file URL (CDN or S3). Convenience endpoint for direct media access.","operationId":"getEpisodeAudio","parameters":[{"description":"The UUID of the episode","format":"uuid","in":"path","name":"id","required":true,"type":"string"},{"default":"clean","description":"The audio type to retrieve","enum":["clean","original"],"in":"query","name":"type","required":false,"type":"string"}],"produces":["audio/mpeg"],"responses":{"302":{"description":"Redirect to audio file URL (CDN or S3)","headers":{"Location":{"description":"The URL of the audio file (CDN or S3)","format":"uri","type":"string"}}},"401":{"$ref":"#/responses/unauthorized"},"403":{"$ref":"#/responses/forbidden"},"404":{"$ref":"#/responses/not_found"},"406":{"$ref":"#/responses/not_acceptable"}},"security":[{"api_key":[]}],"summary":"Get audio file","tags":["Episode"],"x-codeSamples":[{"label":"Ruby - Typhoeus","lang":"ruby","source":"# Get clean audio (default)\nTyphoeus.get(\n  \"https://art19.com/episodes/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5.mp3\",\n  accept_encoding: 'gzip',\n  headers: {\n    Accept:        'audio/mpeg',\n    Authorization: 'Token token=\"YOUR_TOKEN\", credential=\"YOUR_CREDENTIAL_ID\"'\n  },\n  followlocation: true,\n  timeout: 10\n)\n\n# Get original audio\nTyphoeus.get(\n  \"https://art19.com/episodes/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5.mp3?type=original\",\n  accept_encoding: 'gzip',\n  headers: {\n    Accept:        'audio/mpeg',\n    Authorization: 'Token token=\"YOUR_TOKEN\", credential=\"YOUR_CREDENTIAL_ID\"'\n  },\n  followlocation: true,\n  timeout: 10\n)\n"},{"label":"JavaScript - Fetch","lang":"javascript","source":"// Get clean audio (default)\nconst response1 = await fetch('https://art19.com/episodes/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5.mp3', {\n  headers: {\n    'Accept': 'audio/mpeg',\n    'Authorization': 'Token token=\"YOUR_TOKEN\", credential=\"YOUR_CREDENTIAL_ID\"'\n  },\n  redirect: 'follow'\n});\n\n// Get original audio\nconst response2 = await fetch('https://art19.com/episodes/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5.mp3?type=original', {\n  headers: {\n    'Accept': 'audio/mpeg',\n    'Authorization': 'Token token=\"YOUR_TOKEN\", credential=\"YOUR_CREDENTIAL_ID\"'\n  },\n  redirect: 'follow'\n});\n"},{"label":"PHP - cURL","lang":"php","source":"<?php\n// Get clean audio (default)\n$request = curl_init();\ncurl_setopt($request, CURLOPT_URL, 'https://art19.com/episodes/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5.mp3');\ncurl_setopt($request, CURLOPT_HTTPHEADER, [\n  'Accept: audio/mpeg',\n  'Authorization: Token token=\"YOUR_TOKEN\", credential=\"YOUR_CREDENTIAL_ID\"'\n]);\ncurl_setopt($request, CURLOPT_FOLLOWLOCATION, true);\ncurl_setopt($request, CURLOPT_RETURNTRANSFER, true);\n$output = curl_exec($request);\ncurl_close($request);\n\n// Get original audio\n$request = curl_init();\ncurl_setopt($request, CURLOPT_URL, 'https://art19.com/episodes/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5.mp3?type=original');\ncurl_setopt($request, CURLOPT_HTTPHEADER, [\n  'Accept: audio/mpeg',\n  'Authorization: Token token=\"YOUR_TOKEN\", credential=\"YOUR_CREDENTIAL_ID\"'\n]);\ncurl_setopt($request, CURLOPT_FOLLOWLOCATION, true);\ncurl_setopt($request, CURLOPT_RETURNTRANSFER, true);\n$output = curl_exec($request);\ncurl_close($request);\n?>\n"},{"label":"cURL","lang":"shell","source":"# Get clean audio (default)\ncurl -L 'https://art19.com/episodes/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5.mp3' \\\n  -H 'Accept: audio/mpeg' \\\n  -H 'Authorization: Token token=\"YOUR_TOKEN\", credential=\"YOUR_CREDENTIAL_ID\"' \\\n  --compressed\n\n# Get original audio\ncurl -L 'https://art19.com/episodes/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5.mp3?type=original' \\\n  -H 'Accept: audio/mpeg' \\\n  -H 'Authorization: Token token=\"YOUR_TOKEN\", credential=\"YOUR_CREDENTIAL_ID\"' \\\n  --compressed\n"}]}},"/episodes/{id}/next_sibling":{"get":{"parameters":[{"description":"The ID of the episode to find the one episode released right after it.","example":"6bb474f9-3267-4182-bcfd-a67870f59601","format":"uuid","in":"path","name":"id","required":true,"type":"string"},{"description":"If `true`, get the next released and published episode with an available media file.\n","in":"query","name":"rss","type":"boolean"}],"produces":["application/vnd.api+json"],"responses":{"200":{"description":"Success","schema":{"properties":{"data":{"$ref":"#/definitions/Episode"},"links":{"$ref":"#/definitions/ResourceLink"}},"type":"object"}},"401":{"$ref":"#/responses/unauthorized"},"403":{"$ref":"#/responses/forbidden"},"404":{"$ref":"#/responses/not_found"},"406":{"$ref":"#/responses/not_acceptable"},"429":{"$ref":"#/responses/rate_limit_exceeded"}},"security":[{"api_key":[]}],"summary":"Get the episode released right after the specified one","tags":["Episode"],"x-codeSamples":[{"label":"Ruby - Typhoeus","lang":"ruby","source":"response = Typhoeus.get(\n  \"https://art19.com/episodes/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5/next_sibling\",\n  accept_encoding: 'gzip',\n  headers: {\n    Accept:        'application/vnd.api+json',\n    Authorization: 'Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"'\n  },\n  timeout: 10\n)\nif response.success?\n  # HTTP 2xx - JSON:API available to be parsed in response.body\nelsif response.timed_out?\n  # Request timed out\nelsif response.code.zero?\n  # cURL didn't get back an HTTP response, the reason is in response.return_message\nelse\n  # Other HTTP status, check response.code for which\nend\n"},{"label":"JavaScript - Fetch","lang":"javascript","source":"try {\n  const response = await fetch('https://art19.com/episodes/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5/next_sibling', {\n    headers: {\n      Accept:        'application/vnd.api+json',\n      Authorization: 'Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"'\n    }\n  });\n\n  if (response.ok) {\n    // Get the response body if HTTP-status is 200-299\n    const json = await response.json();\n  } else {\n    // HTTP request failed, handle error\n  }\n} catch(err) {\n  // A network error occured\n}\n"},{"label":"PHP - cURL","lang":"php","source":"<?php\n// Initialize a cURL resource for a request\n$request = curl_init();\n\ntry {\n  // Configure the cURL options\n  curl_setopt($request, CURLOPT_URL, 'https://art19.com/episodes/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5/next_sibling');\n  curl_setopt($request, CURLOPT_FOLLOWLOCATION, true);\n  curl_setopt($request, CURLOPT_RETURNTRANSFER, true);\n  curl_setopt($request, CURLOPT_ENCODING, '');\n  curl_setopt($request, CURLOPT_HTTPHEADER, array(\n    'Accept: application/vnd.api+json',\n    'Authorization: Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"'\n  ));\n\n  // Execute the request and grab all status information\n  $output = curl_exec($request);\n  $info   = curl_getinfo($request);\n  $code   = $info['http_code'];\n\n  if ($code >= 200 && $code < 300) {\n    // HTTP 2xx - JSON:API response available to be parsed in $output\n    $json = json_decode($output);\n  } else if ($code >= 400 && $code < 500) {\n    // HTTP 4xx - Client error; JSON:API response evt. available to be parsed in $output\n    if (strlen($output) > 0) {\n      $errors = json_decode($output);\n    }\n  } else {\n    // Other HTTP status, treat according to workflow\n  }\n} finally {\n  // Free up the resource to clear out memory\n  curl_close($request);\n}\n?>\n"},{"label":"cURL","lang":"shell","source":"curl 'https://art19.com/episodes/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5/next_sibling' \\\n  -H 'accept: application/vnd.api+json' \\\n  -H 'authorization: Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"' \\\n  --compressed\n"}]}},"/episodes/{id}/previous_sibling":{"get":{"parameters":[{"description":"The ID of the episode to find the one episode released right before it.","example":"6bb474f9-3267-4182-bcfd-a67870f59601","format":"uuid","in":"path","name":"id","required":true,"type":"string"},{"description":"If `true`, get the previously released and published episode with an available media file.\n","in":"query","name":"rss","type":"boolean"}],"produces":["application/vnd.api+json"],"responses":{"200":{"description":"Success","schema":{"properties":{"data":{"$ref":"#/definitions/Episode"},"links":{"$ref":"#/definitions/ResourceLink"}},"type":"object"}},"401":{"$ref":"#/responses/unauthorized"},"403":{"$ref":"#/responses/forbidden"},"404":{"$ref":"#/responses/not_found"},"406":{"$ref":"#/responses/not_acceptable"},"429":{"$ref":"#/responses/rate_limit_exceeded"}},"security":[{"api_key":[]}],"summary":"Get the episode released right before the specified one","tags":["Episode"],"x-codeSamples":[{"label":"Ruby - Typhoeus","lang":"ruby","source":"response = Typhoeus.get(\n  \"https://art19.com/episodes/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5/previous_sibling\",\n  accept_encoding: 'gzip',\n  headers: {\n    Accept:        'application/vnd.api+json',\n    Authorization: 'Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"'\n  },\n  timeout: 10\n)\nif response.success?\n  # HTTP 2xx - JSON:API available to be parsed in response.body\nelsif response.timed_out?\n  # Request timed out\nelsif response.code.zero?\n  # cURL didn't get back an HTTP response, the reason is in response.return_message\nelse\n  # Other HTTP status, check response.code for which\nend\n"},{"label":"JavaScript - Fetch","lang":"javascript","source":"try {\n  const response = await fetch('https://art19.com/episodes/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5/previous_sibling', {\n    headers: {\n      Accept:        'application/vnd.api+json',\n      Authorization: 'Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"'\n    }\n  });\n\n  if (response.ok) {\n    // Get the response body if HTTP-status is 200-299\n    const json = await response.json();\n  } else {\n    // HTTP request failed, handle error\n  }\n} catch(err) {\n  // A network error occured\n}\n"},{"label":"PHP - cURL","lang":"php","source":"<?php\n// Initialize a cURL resource for a request\n$request = curl_init();\n\ntry {\n  // Configure the cURL options\n  curl_setopt($request, CURLOPT_URL, 'https://art19.com/episodes/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5/previous_sibling');\n  curl_setopt($request, CURLOPT_FOLLOWLOCATION, true);\n  curl_setopt($request, CURLOPT_RETURNTRANSFER, true);\n  curl_setopt($request, CURLOPT_ENCODING, '');\n  curl_setopt($request, CURLOPT_HTTPHEADER, array(\n    'Accept: application/vnd.api+json',\n    'Authorization: Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"'\n  ));\n\n  // Execute the request and grab all status information\n  $output = curl_exec($request);\n  $info   = curl_getinfo($request);\n  $code   = $info['http_code'];\n\n  if ($code >= 200 && $code < 300) {\n    // HTTP 2xx - JSON:API response available to be parsed in $output\n    $json = json_decode($output);\n  } else if ($code >= 400 && $code < 500) {\n    // HTTP 4xx - Client error; JSON:API response evt. available to be parsed in $output\n    if (strlen($output) > 0) {\n      $errors = json_decode($output);\n    }\n  } else {\n    // Other HTTP status, treat according to workflow\n  }\n} finally {\n  // Free up the resource to clear out memory\n  curl_close($request);\n}\n?>\n"},{"label":"cURL","lang":"shell","source":"curl 'https://art19.com/episodes/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5/previous_sibling' \\\n  -H 'accept: application/vnd.api+json' \\\n  -H 'authorization: Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"' \\\n  --compressed\n"}]}},"/episode_versions":{"get":{"description":"Episode versions represent different audio files and ad marker configurations for episodes. Use episode versions to upload source audio, configure ad markers, and manage transcoding workflows. Each episode can have multiple versions, but only one can be active at a time.\n\nAt least one filter parameter must be provided (`ids`, `episode_id`, or `feed_item_id`), otherwise a `400 Bad Request` response will be returned.\n","parameters":[{"collectionFormat":"multi","description":"The list of IDs to filter by. Repeat this parameter for each ID you want to include in the filter.\nThe brackets *MUST* be percent-encoded, per the requirements in\n[RFC 3986 § 3.4](https://tools.ietf.org/html/rfc3986#section-3.4).\n","in":"query","items":{"format":"uuid","type":"string"},"name":"ids[]","required":false,"type":"array","uniqueItems":true},{"description":"Filter by episode ID","format":"uuid","in":"query","name":"episode_id","required":false,"type":"string"},{"description":"Filter by feed item ID","format":"uuid","in":"query","name":"feed_item_id","required":false,"type":"string"},{"description":"Select which page number to receive results for. Pages are numbered starting at 1.\n\n","in":"query","minimum":1,"name":"page[number]","type":"integer"},{"description":"Indicate how many records to return per page. The maximum is 100.\n\n","in":"query","maximum":100,"minimum":1,"name":"page[size]","type":"integer"}],"produces":["application/vnd.api+json"],"responses":{"200":{"description":"Success","schema":{"properties":{"data":{"items":{"$ref":"#/definitions/EpisodeVersion"},"type":"array"},"links":{"$ref":"#/definitions/Links"}},"type":"object"}},"400":{"description":"Bad Request\n\nParameters requiring a specific format must adhere to that format.\nPagination must have a positive page number and a page size no larger than 100. \n","schema":{"properties":{"errors":{"description":"An error object describing the problem. Please check out the\n[JSON:API Error document reference](https://jsonapi.org/format/#error-objects) for a full\ndescription of the returned object.\n","items":{"properties":{"code":{"description":"An application-specific error code, expressed as a string value","type":"string"},"detail":{"description":"A human-readable explanation specific to this occurrence of the problem. Like title, this field's value can be localized.\n","example":"Required query parameter \"series_id\" is missing","type":"string"},"source":{"description":"An object containing references to the source of the error, optionally including any of the following members.\n","nullable":true,"properties":{"parameter":{"description":"A string indicating which URI query parameter caused the error.","example":"series_id","type":"string"},"pointer":{"description":"A JSON Pointer [RFC6901](https://tools.ietf.org/html/rfc6901) to the associated entity in the request document (e.g. `/data` for a primary data object, or `/data/attributes/title` for a specific attribute).\n","example":"/data/attributes/name","type":"string"}},"type":"object"},"status":{"description":"The HTTP status code applicable to this problem, expressed as a string value: 400","example":"400","type":"string"},"title":{"description":"A short, human-readable summary of the problem that SHOULD NOT change from occurrence to occurrence of the\nproblem, except for purposes of localization.\n","example":"Bad Request","type":"string"}},"type":"object"},"type":"array"}},"type":"object"}},"401":{"$ref":"#/responses/unauthorized"},"403":{"$ref":"#/responses/forbidden"},"406":{"$ref":"#/responses/not_acceptable"},"429":{"$ref":"#/responses/rate_limit_exceeded"}},"security":[{"api_key":[]}],"summary":"Get a list of episode versions","tags":["EpisodeVersion"]},"post":{"consumes":["application/vnd.api+json"],"description":"Create episode version in `draft` status with `source_url`. Either the episode or the feed_item relationship must be provided.\n\nFor a create request to succeed, your credential must have admin permission with the series that owns the episode or feed item.\n","parameters":[{"in":"body","name":"body","required":true,"schema":{"properties":{"data":{"properties":{"attributes":{"properties":{"copy_active_version":{"description":"Copies the audio file, file name, and source URL from the currently active episode version. Can only be used when the episode has an active version.<br/>\nNote: Any `source_url` provided alongside this flag will be ignored.\n","type":"boolean"},"copy_marker_points":{"description":"Copies all marker points from the currently active episode version. Can only be used when the episode has an active version.\n","type":"boolean"},"source_url":{"description":"The URL of the source media file.<br/>\nThis value will be modified to point to our internal file storage during processing when the source is an external URL.<br/>\nNote: When using `copy_active_version`, any provided `source_url` will be ignored and replaced with the active version's source URL.\n","type":"string"}},"type":"object"},"relationships":{"properties":{"episode":{"description":"The episode this episode version belongs to.","properties":{"data":{"description":"[JSON:API Resource Identifier Object](https://jsonapi.org/format/#document-resource-identifier-objects)","nullable":true,"properties":{"id":{"description":"The ID of the episode.","example":"2613eb10-15dc-4874-a35e-e580e8cf7063","format":"uuid","type":"string"},"type":{"description":"The type of resource: `episodes`","example":"episodes","type":"string"}},"type":"object"}},"type":"object"},"feed_item":{"description":"The feed item this episode version belongs to. Use when the content exists only as a feed item, not as an episode.","properties":{"data":{"description":"[JSON:API Resource Identifier Object](https://jsonapi.org/format/#document-resource-identifier-objects)","nullable":true,"properties":{"id":{"description":"The ID of the feed item.","example":"2613eb10-15dc-4874-a35e-e580e8cf7063","format":"uuid","type":"string"},"type":{"description":"The type of resource: `feed_items`","example":"feed_items","type":"string"}},"type":"object"}},"type":"object"}},"type":"object"},"type":{"description":"The type of resource. This is always `episode_versions`.","example":"episode_versions","type":"string"}},"required":["type","attributes","relationships"],"type":"object"}},"type":"object"}}],"responses":{"201":{"description":"Created","schema":{"properties":{"data":{"$ref":"#/definitions/EpisodeVersion"},"links":{"$ref":"#/definitions/ResourceLink"}},"type":"object"}},"401":{"$ref":"#/responses/unauthorized"},"403":{"$ref":"#/responses/forbidden"},"406":{"$ref":"#/responses/not_acceptable"},"415":{"$ref":"#/responses/unsupported_media_type"},"422":{"$ref":"#/responses/unprocessable_entity"},"429":{"$ref":"#/responses/rate_limit_exceeded"},"507":{"$ref":"#/responses/insufficient_storage"}},"security":[{"api_key":[]}],"summary":"Create a new episode version","tags":["EpisodeVersion"]}},"/episode_versions/{id}":{"delete":{"description":"Delete an existing episode version","parameters":[{"description":"The ID of the episode version to delete","format":"uuid","in":"path","name":"id","required":true,"type":"string"}],"responses":{"204":{"description":"No Content\n\nThe resource has been deleted successfully.\n"},"401":{"$ref":"#/responses/unauthorized"},"403":{"$ref":"#/responses/forbidden"},"406":{"$ref":"#/responses/not_acceptable"},"429":{"$ref":"#/responses/rate_limit_exceeded"},"507":{"$ref":"#/responses/insufficient_storage"}},"security":[{"api_key":[]}],"summary":"Delete an episode version","tags":["EpisodeVersion"]},"get":{"description":"Retrieve a specific episode version by ID","parameters":[{"description":"The ID of the episode version resource to load.","example":"6bb474f9-3267-4182-bcfd-a67870f59601","format":"uuid","in":"path","name":"id","required":true,"type":"string"}],"produces":["application/vnd.api+json"],"responses":{"200":{"description":"Success","schema":{"properties":{"data":{"$ref":"#/definitions/EpisodeVersion"},"links":{"$ref":"#/definitions/ResourceLink"}},"type":"object"}},"401":{"$ref":"#/responses/unauthorized"},"403":{"$ref":"#/responses/forbidden"},"404":{"$ref":"#/responses/not_found"},"406":{"$ref":"#/responses/not_acceptable"},"429":{"$ref":"#/responses/rate_limit_exceeded"}},"security":[{"api_key":[]}],"summary":"Get a specific episode version","tags":["EpisodeVersion"]},"patch":{"consumes":["application/vnd.api+json"],"description":"Submit for processing by updating `processing_status` to `submitted`. Monitor `processing_status`\nuntil completion (`active` or `inactive`). Also used for making active episode versions inactive.\n\nFor an update request to succeed, your credential must have admin permission with the series that owns the episode or feed item.\n","parameters":[{"in":"body","name":"body","required":true,"schema":{"properties":{"data":{"properties":{"attributes":{"properties":{"copy_active_version":{"description":"Copies the audio file, file name, and source URL from the currently active episode version. The episode version being updated changes to inactive status if its processing_status is draft. Can only be used when processing_status is draft or inactive.<br/>\nNote: Any `source_url` provided alongside this flag will be ignored.\n","type":"boolean"},"copy_marker_points":{"description":"Replaces all marker points from the currently active episode version. Existing markers are deleted first, then new copies are added. Can only be used when processing_status is draft or inactive.\n","type":"boolean"},"processing_status":{"description":"You can switch an active episode version to inactive to make the audio no longer live.","enum":["submitted","inactive"],"type":"string"},"source_url":{"description":"The URL of the source media file.\nThis value will be modified to point to our internal file storage after processing.\n","type":"string"},"status_on_completion":{"description":"The status to set when processing completes.\n","enum":["active","inactive"],"type":"string"}},"type":"object"},"id":{"example":"c1fbb1bf-45b1-4803-986e-123166f7f427","format":"uuid","type":"string"},"type":{"description":"The type of resource. This is always `episode_versions`.","example":"episode_versions","type":"string"}},"required":["type","id","attributes"],"type":"object"}},"type":"object"}}],"responses":{"200":{"description":"Success","schema":{"properties":{"data":{"$ref":"#/definitions/EpisodeVersion"},"links":{"$ref":"#/definitions/ResourceLink"}},"type":"object"}},"401":{"$ref":"#/responses/unauthorized"},"403":{"$ref":"#/responses/forbidden"},"406":{"$ref":"#/responses/not_acceptable"},"415":{"$ref":"#/responses/unsupported_media_type"},"422":{"$ref":"#/responses/unprocessable_entity"},"429":{"description":"Rate Limit Exceeded\n\nThis can occur for two reasons:\n1. General API rate limit: You have exceeded the number of API calls per minute granted to your credential\n2. Transcoding concurrency limit: You have exceeded the maximum number of concurrent episode versions being processed for transcoding\n\nFor transcoding limits, wait for current episode versions to finish processing before submitting new ones.\n","headers":{"Retry-After":{"description":"The number of seconds after which the request can be retried.\nThis header is only provided for general API rate limits (1-59 seconds).\nFor transcoding concurrency limits, no Retry-After header is provided - monitor your episode versions' processing status instead.\n","type":"integer"}}},"507":{"$ref":"#/responses/insufficient_storage"}},"security":[{"api_key":[]}],"summary":"Update an episode version","tags":["EpisodeVersion"]}},"/feeds":{"get":{"description":"One initial filter must be provided (`ids` or `series_id`), otherwise a `400 Bad Request` response\nwill be returned.\n\nThis API will only return feeds that your credential has permission to access.\n","parameters":[{"collectionFormat":"multi","description":"The list of IDs to filter by. Repeat this parameter for each ID you want to include in the filter.\nThe brackets *MUST* be percent-encoded, per the requirements in\n[RFC 3986 § 3.4](https://tools.ietf.org/html/rfc3986#section-3.4).\n","in":"query","items":{"format":"uuid","type":"string"},"name":"ids[]","required":false,"type":"array","uniqueItems":true},{"description":"Select which page number to receive results for. Pages are numbered starting at 1.\n\n","in":"query","minimum":1,"name":"page[number]","required":"true","type":"integer"},{"description":"Indicate how many records to return per page. The maximum is 100.\n\n","in":"query","maximum":100,"minimum":1,"name":"page[size]","required":"true","type":"integer"},{"description":"If `true`, limit the result to primary feeds only. `false` will limit results to alternate feeds.","in":"query","name":"primary","type":"boolean"},{"description":"Limit the result to feeds linked to this series.","example":"d0ceb1ff-b95b-4c1e-a7e5-a36ed7b4d3b7","format":"uuid","in":"query","name":"series_id","type":"string"}],"produces":["application/vnd.api+json"],"responses":{"200":{"description":"Success","schema":{"properties":{"data":{"items":{"$ref":"#/definitions/Feed"},"type":"array"},"links":{"$ref":"#/definitions/Links"}},"type":"object"}},"400":{"description":"Bad Request\n\nParameters requiring a specific format must adhere to that format.\nPagination must be present and have a positive page number and a page size no larger than 100. One initial filter must be provided (`ids` or `series_id`).\n","schema":{"properties":{"errors":{"description":"An error object describing the problem. Please check out the\n[JSON:API Error document reference](https://jsonapi.org/format/#error-objects) for a full\ndescription of the returned object.\n","items":{"properties":{"code":{"description":"An application-specific error code, expressed as a string value","type":"string"},"detail":{"description":"A human-readable explanation specific to this occurrence of the problem. Like title, this field's value can be localized.\n","example":"Required query parameter \"series_id\" is missing","type":"string"},"source":{"description":"An object containing references to the source of the error, optionally including any of the following members.\n","nullable":true,"properties":{"parameter":{"description":"A string indicating which URI query parameter caused the error.","example":"series_id","type":"string"},"pointer":{"description":"A JSON Pointer [RFC6901](https://tools.ietf.org/html/rfc6901) to the associated entity in the request document (e.g. `/data` for a primary data object, or `/data/attributes/title` for a specific attribute).\n","example":"/data/attributes/name","type":"string"}},"type":"object"},"status":{"description":"The HTTP status code applicable to this problem, expressed as a string value: 400","example":"400","type":"string"},"title":{"description":"A short, human-readable summary of the problem that SHOULD NOT change from occurrence to occurrence of the\nproblem, except for purposes of localization.\n","example":"Bad Request","type":"string"}},"type":"object"},"type":"array"}},"type":"object"}},"401":{"$ref":"#/responses/unauthorized"},"403":{"$ref":"#/responses/forbidden"},"406":{"$ref":"#/responses/not_acceptable"},"429":{"$ref":"#/responses/rate_limit_exceeded"}},"security":[{"api_key":[]}],"summary":"Get a list of feeds","tags":["Feed"],"x-codeSamples":[{"label":"Ruby - Typhoeus","lang":"ruby","source":"response = Typhoeus.get(\n  \"https://art19.com/feeds\",\n  accept_encoding: 'gzip',\n  headers: {\n    Accept:        'application/vnd.api+json',\n    Authorization: 'Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"'\n  },\n  params: {\n    # add filters if desired\n    page: { number: 1, size: 25 }\n  },\n  timeout: 10\n)\nif response.success?\n  # HTTP 2xx - JSON:API available to be parsed in response.body\nelsif response.timed_out?\n  # Request timed out\nelsif response.code.zero?\n  # cURL didn't get back an HTTP response, the reason is in response.return_message\nelse\n  # Other HTTP status, check response.code for which\nend\n"},{"label":"JavaScript - Fetch","lang":"javascript","source":"try {\n  const response = await fetch('https://art19.com/feeds?page%5Bnumber%5D=1&page%5Bsize%5D=25', {\n    headers: {\n      Accept:        'application/vnd.api+json',\n      Authorization: 'Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"'\n    }\n  });\n\n  if (response.ok) {\n    // Get the response body if HTTP-status is 200-299\n    const json = await response.json();\n  } else {\n    // HTTP request failed, handle error\n  }\n} catch(err) {\n  // A network error occured\n}\n"},{"label":"PHP - cURL","lang":"php","source":"<?php\n// Initialize a cURL resource for a request\n$request = curl_init();\n\ntry {\n  // The API endpoint to request data from\n  $url = array('https://art19.com/feeds');\n\n  // Provide extra parameters like filters or pagination to the request\n  $url[] = http_build_query(array(\n    'page' => array('number' => 1, 'size' => 25)\n  ));\n\n  // Configure the cURL options\n  curl_setopt($request, CURLOPT_URL, implode('?', $url));\n  curl_setopt($request, CURLOPT_FOLLOWLOCATION, true);\n  curl_setopt($request, CURLOPT_RETURNTRANSFER, true);\n  curl_setopt($request, CURLOPT_ENCODING, '');\n  curl_setopt($request, CURLOPT_HTTPHEADER, array(\n    'Accept: application/vnd.api+json',\n    'Authorization: Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"'\n  ));\n\n  // Execute the request and grab all status information\n  $output = curl_exec($request);\n  $info   = curl_getinfo($request);\n  $code   = $info['http_code'];\n\n  if ($code >= 200 && $code < 300) {\n    // HTTP 2xx - JSON:API response available to be parsed in $output\n    $json = json_decode($output);\n  } else if ($code >= 400 && $code < 500) {\n    // HTTP 4xx - Client error; JSON:API response evt. available to be parsed in $output\n    if (strlen($output) > 0) {\n      $errors = json_decode($output);\n    }\n  } else {\n    // Other HTTP status, treat according to workflow\n  }\n} finally {\n  // Free up the resource to clear out memory\n  curl_close($request);\n}\n?>\n"},{"label":"cURL","lang":"shell","source":"curl 'https://art19.com/feeds?page%5Bnumber%5D=1&page%5Bsize%5D=25' \\\n  -H 'accept: application/vnd.api+json' \\\n  -H 'authorization: Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"' \\\n  --compressed\n"}]},"post":{"consumes":["application/vnd.api+json"],"description":"For a create request to succeed, your credential must have admin permission with the series that this feed belongs to.\n\nThe feed will be created with a status of `draft` and an identification type of `None`. If no name is provided, the name will match the title.\n","parameters":[{"description":"Feed to create.","in":"body","required":true,"schema":{"$ref":"#/definitions/FeedCreate"}}],"responses":{"201":{"description":"Created","schema":{"properties":{"data":{"$ref":"#/definitions/Feed"},"links":{"$ref":"#/definitions/ResourceLink"}},"type":"object"}},"401":{"$ref":"#/responses/unauthorized"},"403":{"$ref":"#/responses/forbidden"},"406":{"$ref":"#/responses/not_acceptable"},"415":{"$ref":"#/responses/unsupported_media_type"},"422":{"$ref":"#/responses/unprocessable_entity"},"429":{"$ref":"#/responses/rate_limit_exceeded"},"507":{"$ref":"#/responses/insufficient_storage"}},"security":[{"api_key":[]}],"summary":"Create a new feed","tags":["Feed"]}},"/feeds/{id}":{"delete":{"description":"For a delete request to succeed, your credential must have admin permission with the series that owns this feed.\n","responses":{"204":{"description":"No Content\n\nThe resource has been deleted successfully.\n"},"401":{"$ref":"#/responses/unauthorized"},"403":{"$ref":"#/responses/forbidden"},"406":{"$ref":"#/responses/not_acceptable"},"429":{"$ref":"#/responses/rate_limit_exceeded"},"507":{"$ref":"#/responses/insufficient_storage"}},"security":[{"api_key":[]}],"summary":"Delete a specific feed","tags":["Feed"]},"get":{"parameters":[{"description":"The ID of the feed resource to load.","example":"6bb474f9-3267-4182-bcfd-a67870f59601","format":"uuid","in":"path","name":"id","required":true,"type":"string"}],"produces":["application/vnd.api+json"],"responses":{"200":{"description":"Success","schema":{"properties":{"data":{"$ref":"#/definitions/Feed"},"links":{"$ref":"#/definitions/ResourceLink"}},"type":"object"}},"401":{"$ref":"#/responses/unauthorized"},"403":{"$ref":"#/responses/forbidden"},"404":{"$ref":"#/responses/not_found"},"406":{"$ref":"#/responses/not_acceptable"},"429":{"$ref":"#/responses/rate_limit_exceeded"}},"security":[{"api_key":[]}],"summary":"Get a specific feed","tags":["Feed"],"x-codeSamples":[{"label":"Ruby - Typhoeus","lang":"ruby","source":"response = Typhoeus.get(\n  \"https://art19.com/feeds/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\",\n  accept_encoding: 'gzip',\n  headers: {\n    Accept:        'application/vnd.api+json',\n    Authorization: 'Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"'\n  },\n  timeout: 10\n)\nif response.success?\n  # HTTP 2xx - JSON:API available to be parsed in response.body\nelsif response.timed_out?\n  # Request timed out\nelsif response.code.zero?\n  # cURL didn't get back an HTTP response, the reason is in response.return_message\nelse\n  # Other HTTP status, check response.code for which\nend\n"},{"label":"JavaScript - Fetch","lang":"javascript","source":"try {\n  const response = await fetch('https://art19.com/feeds/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5', {\n    headers: {\n      Accept:        'application/vnd.api+json',\n      Authorization: 'Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"'\n    }\n  });\n\n  if (response.ok) {\n    // Get the response body if HTTP-status is 200-299\n    const json = await response.json();\n  } else {\n    // HTTP request failed, handle error\n  }\n} catch(err) {\n  // A network error occured\n}\n"},{"label":"PHP - cURL","lang":"php","source":"<?php\n// Initialize a cURL resource for a request\n$request = curl_init();\n\ntry {\n  // Configure the cURL options\n  curl_setopt($request, CURLOPT_URL, 'https://art19.com/feeds/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5');\n  curl_setopt($request, CURLOPT_FOLLOWLOCATION, true);\n  curl_setopt($request, CURLOPT_RETURNTRANSFER, true);\n  curl_setopt($request, CURLOPT_ENCODING, '');\n  curl_setopt($request, CURLOPT_HTTPHEADER, array(\n    'Accept: application/vnd.api+json',\n    'Authorization: Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"'\n  ));\n\n  // Execute the request and grab all status information\n  $output = curl_exec($request);\n  $info   = curl_getinfo($request);\n  $code   = $info['http_code'];\n\n  if ($code >= 200 && $code < 300) {\n    // HTTP 2xx - JSON:API response available to be parsed in $output\n    $json = json_decode($output);\n  } else if ($code >= 400 && $code < 500) {\n    // HTTP 4xx - Client error; JSON:API response evt. available to be parsed in $output\n    if (strlen($output) > 0) {\n      $errors = json_decode($output);\n    }\n  } else {\n    // Other HTTP status, treat according to workflow\n  }\n} finally {\n  // Free up the resource to clear out memory\n  curl_close($request);\n}\n?>\n"},{"label":"cURL","lang":"shell","source":"curl 'https://art19.com/feeds/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5' \\\n  -H 'accept: application/vnd.api+json' \\\n  -H 'authorization: Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"' \\\n  --compressed\n"}]},"patch":{"consumes":["application/vnd.api+json"],"description":"For an update request to succeed, your credential must have admin permission with the series that owns this feed.\n","parameters":[{"description":"Feed to update.","in":"body","required":true,"schema":{"$ref":"#/definitions/FeedUpdate"}}],"responses":{"200":{"description":"Success","schema":{"properties":{"data":{"$ref":"#/definitions/Feed"},"links":{"$ref":"#/definitions/ResourceLink"}},"type":"object"}},"401":{"$ref":"#/responses/unauthorized"},"403":{"$ref":"#/responses/forbidden"},"406":{"$ref":"#/responses/not_acceptable"},"415":{"$ref":"#/responses/unsupported_media_type"},"422":{"$ref":"#/responses/unprocessable_entity"},"429":{"$ref":"#/responses/rate_limit_exceeded"},"507":{"$ref":"#/responses/insufficient_storage"}},"security":[{"api_key":[]}],"summary":"Update a specific feed","tags":["Feed"]}},"/feeds/{id}.jpeg":{"get":{"description":"Redirects to the image file URL (CDN or S3). Convenience endpoint for direct media access.","operationId":"getFeedImage","parameters":[{"description":"The UUID of the feed","format":"uuid","in":"path","name":"id","required":true,"type":"string"},{"default":"regular","description":"The image style/size to retrieve","enum":["regular","thumb","square-400","square-640","square-888","square-3000","itunes"],"in":"query","name":"style","required":false,"type":"string"}],"produces":["image/jpeg"],"responses":{"302":{"description":"Redirect to image file URL (CDN or S3)","headers":{"Location":{"description":"The URL of the image file (CDN or S3)","format":"uri","type":"string"}}},"401":{"$ref":"#/responses/unauthorized"},"403":{"$ref":"#/responses/forbidden"},"404":{"$ref":"#/responses/not_found"},"406":{"$ref":"#/responses/not_acceptable"}},"security":[{"api_key":[]}],"summary":"Get image file","tags":["Feed"],"x-codeSamples":[{"label":"Ruby - Typhoeus","lang":"ruby","source":"# Get regular image (default)\nTyphoeus.get(\n  \"https://art19.com/feeds/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5.jpeg\",\n  accept_encoding: 'gzip',\n  headers: {\n    Accept:        'image/jpeg',\n    Authorization: 'Token token=\"YOUR_TOKEN\", credential=\"YOUR_CREDENTIAL_ID\"'\n  },\n  followlocation: true,\n  timeout: 10\n)\n\n# Get thumbnail\nTyphoeus.get(\n  \"https://art19.com/feeds/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5.jpeg?style=thumb\",\n  accept_encoding: 'gzip',\n  headers: {\n    Accept:        'image/jpeg',\n    Authorization: 'Token token=\"YOUR_TOKEN\", credential=\"YOUR_CREDENTIAL_ID\"'\n  },\n  followlocation: true,\n  timeout: 10\n)\n"},{"label":"JavaScript - Fetch","lang":"javascript","source":"// Get regular image (default)\nconst response1 = await fetch('https://art19.com/feeds/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5.jpeg', {\n  headers: {\n    'Accept': 'image/jpeg',\n    'Authorization': 'Token token=\"YOUR_TOKEN\", credential=\"YOUR_CREDENTIAL_ID\"'\n  },\n  redirect: 'follow'\n});\n\n// Get thumbnail\nconst response2 = await fetch('https://art19.com/feeds/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5.jpeg?style=thumb', {\n  headers: {\n    'Accept': 'image/jpeg',\n    'Authorization': 'Token token=\"YOUR_TOKEN\", credential=\"YOUR_CREDENTIAL_ID\"'\n  },\n  redirect: 'follow'\n});\n"},{"label":"PHP - cURL","lang":"php","source":"<?php\n// Get regular image (default)\n$request = curl_init();\ncurl_setopt($request, CURLOPT_URL, 'https://art19.com/feeds/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5.jpeg');\ncurl_setopt($request, CURLOPT_HTTPHEADER, [\n  'Accept: image/jpeg',\n  'Authorization: Token token=\"YOUR_TOKEN\", credential=\"YOUR_CREDENTIAL_ID\"'\n]);\ncurl_setopt($request, CURLOPT_FOLLOWLOCATION, true);\ncurl_setopt($request, CURLOPT_RETURNTRANSFER, true);\n$output = curl_exec($request);\ncurl_close($request);\n\n// Get thumbnail\n$request = curl_init();\ncurl_setopt($request, CURLOPT_URL, 'https://art19.com/feeds/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5.jpeg?style=thumb');\ncurl_setopt($request, CURLOPT_HTTPHEADER, [\n  'Accept: image/jpeg',\n  'Authorization: Token token=\"YOUR_TOKEN\", credential=\"YOUR_CREDENTIAL_ID\"'\n]);\ncurl_setopt($request, CURLOPT_FOLLOWLOCATION, true);\ncurl_setopt($request, CURLOPT_RETURNTRANSFER, true);\n$output = curl_exec($request);\ncurl_close($request);\n?>\n"},{"label":"cURL","lang":"shell","source":"# Get regular image (default)\ncurl -L 'https://art19.com/feeds/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5.jpeg' \\\n  -H 'Accept: image/jpeg' \\\n  -H 'Authorization: Token token=\"YOUR_TOKEN\", credential=\"YOUR_CREDENTIAL_ID\"' \\\n  --compressed\n\n# Get thumbnail\ncurl -L 'https://art19.com/feeds/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5.jpeg?style=thumb' \\\n  -H 'Accept: image/jpeg' \\\n  -H 'Authorization: Token token=\"YOUR_TOKEN\", credential=\"YOUR_CREDENTIAL_ID\"' \\\n  --compressed\n"}]}},"/feed_items":{"get":{"description":"One initial filter must be provided (`ids`, `episode_id`, `feed_id`, or `series_id`), otherwise a `400 Bad Request` response\nwill be returned. Additional filters are allowed.\n\nThis API will only return feed items that your credential has permission to access.\n","parameters":[{"collectionFormat":"multi","description":"The list of IDs to filter by. Repeat this parameter for each ID you want to include in the filter.\nThe brackets *MUST* be percent-encoded, per the requirements in\n[RFC 3986 § 3.4](https://tools.ietf.org/html/rfc3986#section-3.4).\n","in":"query","items":{"format":"uuid","type":"string"},"name":"ids[]","required":false,"type":"array","uniqueItems":true},{"description":"Select which page number to receive results for. Pages are numbered starting at 1.\n\n","in":"query","minimum":1,"name":"page[number]","required":"true","type":"integer"},{"description":"Indicate how many records to return per page. The maximum is 100.\n\n","in":"query","maximum":100,"minimum":1,"name":"page[size]","required":"true","type":"integer"},{"description":"Limit the result to feed items linked to this episode.","example":"d0ceb1ff-b95b-4c1e-a7e5-a36ed7b4d3b7","format":"uuid","in":"query","name":"episode_id","type":"string"},{"collectionFormat":"csv","description":"Limit the result to feed items linked to these feeds.","example":"d0ceb1ff-b95b-4c1e-a7e5-a36ed7b4d3b7,e1dcf2aa-c96c-5d2f-b8f6-b47fe8e5c8e8","in":"query","items":{"format":"uuid","type":"string"},"name":"feed_id","type":"array"},{"collectionFormat":"csv","description":"Limit the result to feed items with matching iTunes types.","example":"bonus,full","in":"query","items":{"type":"string"},"name":"itunes_type","type":"array"},{"description":"If `true`, limit the result to published feed items only.\nIf `false`, limit the result to _unpublished_ feed items only.\n","in":"query","name":"published","type":"boolean"},{"description":"Limit the result to feed items with a title containing this parameter in a case-insensitive way.","in":"query","name":"q","type":"string"},{"description":"Limit the result to feed items released after this timestamp.","format":"date-time","in":"query","name":"released_after","type":"string"},{"description":"Limit the result to feed items released before this timestamp.","format":"date-time","in":"query","name":"released_before","type":"string"},{"description":"Limit the result to feed items linked to this series.","example":"d0ceb1ff-b95b-4c1e-a7e5-a36ed7b4d3b7","format":"uuid","in":"query","name":"series_id","type":"string"},{"collectionFormat":"csv","default":"created_at","description":"Specify how to sort the result. Please refer to either the top section or the\n[JSON:API specification](https://jsonapi.org/format/#fetching-sorting) on how sorting works in general.\n","in":"query","items":{"enum":["created_at","latest_released_at","latest_released_at_or_episode_created_at","primary_feed","released_at","released_or_created_at"],"type":"string"},"name":"sort","type":"array"}],"produces":["application/vnd.api+json"],"responses":{"200":{"description":"Success","schema":{"properties":{"data":{"items":{"$ref":"#/definitions/FeedItem"},"type":"array"},"links":{"$ref":"#/definitions/Links"}},"type":"object"}},"400":{"description":"Bad Request\n\nParameters requiring a specific format must adhere to that format.\nPagination must be present and have a positive page number and a page size no larger than 100. One initial filter must be provided (`ids`, `episode_id`, `feed_id`, or `series_id`).\n","schema":{"properties":{"errors":{"description":"An error object describing the problem. Please check out the\n[JSON:API Error document reference](https://jsonapi.org/format/#error-objects) for a full\ndescription of the returned object.\n","items":{"properties":{"code":{"description":"An application-specific error code, expressed as a string value","type":"string"},"detail":{"description":"A human-readable explanation specific to this occurrence of the problem. Like title, this field's value can be localized.\n","example":"Required query parameter \"series_id\" is missing","type":"string"},"source":{"description":"An object containing references to the source of the error, optionally including any of the following members.\n","nullable":true,"properties":{"parameter":{"description":"A string indicating which URI query parameter caused the error.","example":"series_id","type":"string"},"pointer":{"description":"A JSON Pointer [RFC6901](https://tools.ietf.org/html/rfc6901) to the associated entity in the request document (e.g. `/data` for a primary data object, or `/data/attributes/title` for a specific attribute).\n","example":"/data/attributes/name","type":"string"}},"type":"object"},"status":{"description":"The HTTP status code applicable to this problem, expressed as a string value: 400","example":"400","type":"string"},"title":{"description":"A short, human-readable summary of the problem that SHOULD NOT change from occurrence to occurrence of the\nproblem, except for purposes of localization.\n","example":"Bad Request","type":"string"}},"type":"object"},"type":"array"}},"type":"object"}},"401":{"$ref":"#/responses/unauthorized"},"403":{"$ref":"#/responses/forbidden"},"406":{"$ref":"#/responses/not_acceptable"},"429":{"$ref":"#/responses/rate_limit_exceeded"}},"security":[{"api_key":[]}],"summary":"Get a list of feed items","tags":["FeedItem"],"x-codeSamples":[{"label":"Ruby - Typhoeus","lang":"ruby","source":"response = Typhoeus.get(\n  \"https://art19.com/feed_items\",\n  accept_encoding: 'gzip',\n  headers: {\n    Accept:        'application/vnd.api+json',\n    Authorization: 'Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"'\n  },\n  params: {\n    # add filters if desired\n    page: { number: 1, size: 25 }\n  },\n  timeout: 10\n)\nif response.success?\n  # HTTP 2xx - JSON:API available to be parsed in response.body\nelsif response.timed_out?\n  # Request timed out\nelsif response.code.zero?\n  # cURL didn't get back an HTTP response, the reason is in response.return_message\nelse\n  # Other HTTP status, check response.code for which\nend\n"},{"label":"JavaScript - Fetch","lang":"javascript","source":"try {\n  const response = await fetch('https://art19.com/feed_items?page%5Bnumber%5D=1&page%5Bsize%5D=25', {\n    headers: {\n      Accept:        'application/vnd.api+json',\n      Authorization: 'Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"'\n    }\n  });\n\n  if (response.ok) {\n    // Get the response body if HTTP-status is 200-299\n    const json = await response.json();\n  } else {\n    // HTTP request failed, handle error\n  }\n} catch(err) {\n  // A network error occured\n}\n"},{"label":"PHP - cURL","lang":"php","source":"<?php\n// Initialize a cURL resource for a request\n$request = curl_init();\n\ntry {\n  // The API endpoint to request data from\n  $url = array('https://art19.com/feed_items');\n\n  // Provide extra parameters like filters or pagination to the request\n  $url[] = http_build_query(array(\n    'page' => array('number' => 1, 'size' => 25)\n  ));\n\n  // Configure the cURL options\n  curl_setopt($request, CURLOPT_URL, implode('?', $url));\n  curl_setopt($request, CURLOPT_FOLLOWLOCATION, true);\n  curl_setopt($request, CURLOPT_RETURNTRANSFER, true);\n  curl_setopt($request, CURLOPT_ENCODING, '');\n  curl_setopt($request, CURLOPT_HTTPHEADER, array(\n    'Accept: application/vnd.api+json',\n    'Authorization: Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"'\n  ));\n\n  // Execute the request and grab all status information\n  $output = curl_exec($request);\n  $info   = curl_getinfo($request);\n  $code   = $info['http_code'];\n\n  if ($code >= 200 && $code < 300) {\n    // HTTP 2xx - JSON:API response available to be parsed in $output\n    $json = json_decode($output);\n  } else if ($code >= 400 && $code < 500) {\n    // HTTP 4xx - Client error; JSON:API response evt. available to be parsed in $output\n    if (strlen($output) > 0) {\n      $errors = json_decode($output);\n    }\n  } else {\n    // Other HTTP status, treat according to workflow\n  }\n} finally {\n  // Free up the resource to clear out memory\n  curl_close($request);\n}\n?>\n"},{"label":"cURL","lang":"shell","source":"curl 'https://art19.com/feed_items?page%5Bnumber%5D=1&page%5Bsize%5D=25' \\\n  -H 'accept: application/vnd.api+json' \\\n  -H 'authorization: Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"' \\\n  --compressed\n"}]},"post":{"consumes":["application/vnd.api+json"],"description":"For a create request to succeed, your credential must have admin permission with the series that this feed item belongs to.\n","parameters":[{"description":"Feed item to create.","in":"body","required":true,"schema":{"$ref":"#/definitions/FeedItemCreate"}}],"responses":{"201":{"description":"Created","schema":{"properties":{"data":{"$ref":"#/definitions/FeedItem"},"links":{"$ref":"#/definitions/ResourceLink"}},"type":"object"}},"401":{"$ref":"#/responses/unauthorized"},"403":{"$ref":"#/responses/forbidden"},"406":{"$ref":"#/responses/not_acceptable"},"415":{"$ref":"#/responses/unsupported_media_type"},"422":{"$ref":"#/responses/unprocessable_entity"},"429":{"$ref":"#/responses/rate_limit_exceeded"},"507":{"$ref":"#/responses/insufficient_storage"}},"security":[{"api_key":[]}],"summary":"Create a new feed item","tags":["FeedItem"]}},"/feed_items/{id}":{"delete":{"description":"For a delete request to succeed, your credential must have admin permission with the series that owns this feed item.\n","responses":{"204":{"description":"No Content\n\nThe resource has been deleted successfully.\n"},"401":{"$ref":"#/responses/unauthorized"},"403":{"$ref":"#/responses/forbidden"},"406":{"$ref":"#/responses/not_acceptable"},"429":{"$ref":"#/responses/rate_limit_exceeded"},"507":{"$ref":"#/responses/insufficient_storage"}},"security":[{"api_key":[]}],"summary":"Delete a specific feed item","tags":["FeedItem"]},"get":{"parameters":[{"description":"The ID of the feed item resource to load.","example":"6bb474f9-3267-4182-bcfd-a67870f59601","format":"uuid","in":"path","name":"id","required":true,"type":"string"}],"produces":["application/vnd.api+json"],"responses":{"200":{"description":"Success","schema":{"properties":{"data":{"$ref":"#/definitions/FeedItem"},"links":{"$ref":"#/definitions/ResourceLink"}},"type":"object"}},"401":{"$ref":"#/responses/unauthorized"},"403":{"$ref":"#/responses/forbidden"},"404":{"$ref":"#/responses/not_found"},"406":{"$ref":"#/responses/not_acceptable"},"429":{"$ref":"#/responses/rate_limit_exceeded"}},"security":[{"api_key":[]}],"summary":"Get a specific feed item","tags":["FeedItem"],"x-codeSamples":[{"label":"Ruby - Typhoeus","lang":"ruby","source":"response = Typhoeus.get(\n  \"https://art19.com/feed_items/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\",\n  accept_encoding: 'gzip',\n  headers: {\n    Accept:        'application/vnd.api+json',\n    Authorization: 'Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"'\n  },\n  timeout: 10\n)\nif response.success?\n  # HTTP 2xx - JSON:API available to be parsed in response.body\nelsif response.timed_out?\n  # Request timed out\nelsif response.code.zero?\n  # cURL didn't get back an HTTP response, the reason is in response.return_message\nelse\n  # Other HTTP status, check response.code for which\nend\n"},{"label":"JavaScript - Fetch","lang":"javascript","source":"try {\n  const response = await fetch('https://art19.com/feed_items/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5', {\n    headers: {\n      Accept:        'application/vnd.api+json',\n      Authorization: 'Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"'\n    }\n  });\n\n  if (response.ok) {\n    // Get the response body if HTTP-status is 200-299\n    const json = await response.json();\n  } else {\n    // HTTP request failed, handle error\n  }\n} catch(err) {\n  // A network error occured\n}\n"},{"label":"PHP - cURL","lang":"php","source":"<?php\n// Initialize a cURL resource for a request\n$request = curl_init();\n\ntry {\n  // Configure the cURL options\n  curl_setopt($request, CURLOPT_URL, 'https://art19.com/feed_items/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5');\n  curl_setopt($request, CURLOPT_FOLLOWLOCATION, true);\n  curl_setopt($request, CURLOPT_RETURNTRANSFER, true);\n  curl_setopt($request, CURLOPT_ENCODING, '');\n  curl_setopt($request, CURLOPT_HTTPHEADER, array(\n    'Accept: application/vnd.api+json',\n    'Authorization: Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"'\n  ));\n\n  // Execute the request and grab all status information\n  $output = curl_exec($request);\n  $info   = curl_getinfo($request);\n  $code   = $info['http_code'];\n\n  if ($code >= 200 && $code < 300) {\n    // HTTP 2xx - JSON:API response available to be parsed in $output\n    $json = json_decode($output);\n  } else if ($code >= 400 && $code < 500) {\n    // HTTP 4xx - Client error; JSON:API response evt. available to be parsed in $output\n    if (strlen($output) > 0) {\n      $errors = json_decode($output);\n    }\n  } else {\n    // Other HTTP status, treat according to workflow\n  }\n} finally {\n  // Free up the resource to clear out memory\n  curl_close($request);\n}\n?>\n"},{"label":"cURL","lang":"shell","source":"curl 'https://art19.com/feed_items/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5' \\\n  -H 'accept: application/vnd.api+json' \\\n  -H 'authorization: Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"' \\\n  --compressed\n"}]},"patch":{"consumes":["application/vnd.api+json"],"description":"For an update request to succeed, your credential must have admin permission with the series that owns this feed item.\n","parameters":[{"description":"Feed item to update.","in":"body","required":true,"schema":{"$ref":"#/definitions/FeedItemUpdate"}}],"responses":{"200":{"description":"Success","schema":{"properties":{"data":{"$ref":"#/definitions/FeedItem"},"links":{"$ref":"#/definitions/ResourceLink"}},"type":"object"}},"401":{"$ref":"#/responses/unauthorized"},"403":{"$ref":"#/responses/forbidden"},"406":{"$ref":"#/responses/not_acceptable"},"415":{"$ref":"#/responses/unsupported_media_type"},"422":{"$ref":"#/responses/unprocessable_entity"},"429":{"$ref":"#/responses/rate_limit_exceeded"},"507":{"$ref":"#/responses/insufficient_storage"}},"security":[{"api_key":[]}],"summary":"Update a specific feed item","tags":["FeedItem"]}},"/feed_items/{id}.jpeg":{"get":{"description":"Redirects to the image file URL (CDN or S3). Convenience endpoint for direct media access.","operationId":"getFeedItemImage","parameters":[{"description":"The UUID of the feed item","format":"uuid","in":"path","name":"id","required":true,"type":"string"},{"default":"regular","description":"The image style/size to retrieve","enum":["regular","thumb","square-400","square-640","square-888","square-3000","itunes"],"in":"query","name":"style","required":false,"type":"string"}],"produces":["image/jpeg"],"responses":{"302":{"description":"Redirect to image file URL (CDN or S3)","headers":{"Location":{"description":"The URL of the image file (CDN or S3)","format":"uri","type":"string"}}},"401":{"$ref":"#/responses/unauthorized"},"403":{"$ref":"#/responses/forbidden"},"404":{"$ref":"#/responses/not_found"},"406":{"$ref":"#/responses/not_acceptable"}},"security":[{"api_key":[]}],"summary":"Get image file","tags":["FeedItem"],"x-codeSamples":[{"label":"Ruby - Typhoeus","lang":"ruby","source":"# Get regular image (default)\nTyphoeus.get(\n  \"https://art19.com/feed_items/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5.jpeg\",\n  accept_encoding: 'gzip',\n  headers: {\n    Accept:        'image/jpeg',\n    Authorization: 'Token token=\"YOUR_TOKEN\", credential=\"YOUR_CREDENTIAL_ID\"'\n  },\n  followlocation: true,\n  timeout: 10\n)\n\n# Get thumbnail\nTyphoeus.get(\n  \"https://art19.com/feed_items/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5.jpeg?style=thumb\",\n  accept_encoding: 'gzip',\n  headers: {\n    Accept:        'image/jpeg',\n    Authorization: 'Token token=\"YOUR_TOKEN\", credential=\"YOUR_CREDENTIAL_ID\"'\n  },\n  followlocation: true,\n  timeout: 10\n)\n"},{"label":"JavaScript - Fetch","lang":"javascript","source":"// Get regular image (default)\nconst response1 = await fetch('https://art19.com/feed_items/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5.jpeg', {\n  headers: {\n    'Accept': 'image/jpeg',\n    'Authorization': 'Token token=\"YOUR_TOKEN\", credential=\"YOUR_CREDENTIAL_ID\"'\n  },\n  redirect: 'follow'\n});\n\n// Get thumbnail\nconst response2 = await fetch('https://art19.com/feed_items/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5.jpeg?style=thumb', {\n  headers: {\n    'Accept': 'image/jpeg',\n    'Authorization': 'Token token=\"YOUR_TOKEN\", credential=\"YOUR_CREDENTIAL_ID\"'\n  },\n  redirect: 'follow'\n});\n"},{"label":"PHP - cURL","lang":"php","source":"<?php\n// Get regular image (default)\n$request = curl_init();\ncurl_setopt($request, CURLOPT_URL, 'https://art19.com/feed_items/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5.jpeg');\ncurl_setopt($request, CURLOPT_HTTPHEADER, [\n  'Accept: image/jpeg',\n  'Authorization: Token token=\"YOUR_TOKEN\", credential=\"YOUR_CREDENTIAL_ID\"'\n]);\ncurl_setopt($request, CURLOPT_FOLLOWLOCATION, true);\ncurl_setopt($request, CURLOPT_RETURNTRANSFER, true);\n$output = curl_exec($request);\ncurl_close($request);\n\n// Get thumbnail\n$request = curl_init();\ncurl_setopt($request, CURLOPT_URL, 'https://art19.com/feed_items/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5.jpeg?style=thumb');\ncurl_setopt($request, CURLOPT_HTTPHEADER, [\n  'Accept: image/jpeg',\n  'Authorization: Token token=\"YOUR_TOKEN\", credential=\"YOUR_CREDENTIAL_ID\"'\n]);\ncurl_setopt($request, CURLOPT_FOLLOWLOCATION, true);\ncurl_setopt($request, CURLOPT_RETURNTRANSFER, true);\n$output = curl_exec($request);\ncurl_close($request);\n?>\n"},{"label":"cURL","lang":"shell","source":"# Get regular image (default)\ncurl -L 'https://art19.com/feed_items/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5.jpeg' \\\n  -H 'Accept: image/jpeg' \\\n  -H 'Authorization: Token token=\"YOUR_TOKEN\", credential=\"YOUR_CREDENTIAL_ID\"' \\\n  --compressed\n\n# Get thumbnail\ncurl -L 'https://art19.com/feed_items/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5.jpeg?style=thumb' \\\n  -H 'Accept: image/jpeg' \\\n  -H 'Authorization: Token token=\"YOUR_TOKEN\", credential=\"YOUR_CREDENTIAL_ID\"' \\\n  --compressed\n"}]}},"/feed_items/{id}.mp3":{"get":{"description":"Redirects to the audio file URL (CDN or S3). Convenience endpoint for direct media access.","operationId":"getFeedItemAudio","parameters":[{"description":"The UUID of the feed item","format":"uuid","in":"path","name":"id","required":true,"type":"string"},{"default":"clean","description":"The audio type to retrieve","enum":["clean","original"],"in":"query","name":"type","required":false,"type":"string"}],"produces":["audio/mpeg"],"responses":{"302":{"description":"Redirect to audio file URL (CDN or S3)","headers":{"Location":{"description":"The URL of the audio file (CDN or S3)","format":"uri","type":"string"}}},"401":{"$ref":"#/responses/unauthorized"},"403":{"$ref":"#/responses/forbidden"},"404":{"$ref":"#/responses/not_found"},"406":{"$ref":"#/responses/not_acceptable"}},"security":[{"api_key":[]}],"summary":"Get audio file","tags":["FeedItem"],"x-codeSamples":[{"label":"Ruby - Typhoeus","lang":"ruby","source":"# Get clean audio (default)\nTyphoeus.get(\n  \"https://art19.com/feed_items/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5.mp3\",\n  accept_encoding: 'gzip',\n  headers: {\n    Accept:        'audio/mpeg',\n    Authorization: 'Token token=\"YOUR_TOKEN\", credential=\"YOUR_CREDENTIAL_ID\"'\n  },\n  followlocation: true,\n  timeout: 10\n)\n\n# Get original audio\nTyphoeus.get(\n  \"https://art19.com/feed_items/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5.mp3?type=original\",\n  accept_encoding: 'gzip',\n  headers: {\n    Accept:        'audio/mpeg',\n    Authorization: 'Token token=\"YOUR_TOKEN\", credential=\"YOUR_CREDENTIAL_ID\"'\n  },\n  followlocation: true,\n  timeout: 10\n)\n"},{"label":"JavaScript - Fetch","lang":"javascript","source":"// Get clean audio (default)\nconst response1 = await fetch('https://art19.com/feed_items/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5.mp3', {\n  headers: {\n    'Accept': 'audio/mpeg',\n    'Authorization': 'Token token=\"YOUR_TOKEN\", credential=\"YOUR_CREDENTIAL_ID\"'\n  },\n  redirect: 'follow'\n});\n\n// Get original audio\nconst response2 = await fetch('https://art19.com/feed_items/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5.mp3?type=original', {\n  headers: {\n    'Accept': 'audio/mpeg',\n    'Authorization': 'Token token=\"YOUR_TOKEN\", credential=\"YOUR_CREDENTIAL_ID\"'\n  },\n  redirect: 'follow'\n});\n"},{"label":"PHP - cURL","lang":"php","source":"<?php\n// Get clean audio (default)\n$request = curl_init();\ncurl_setopt($request, CURLOPT_URL, 'https://art19.com/feed_items/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5.mp3');\ncurl_setopt($request, CURLOPT_HTTPHEADER, [\n  'Accept: audio/mpeg',\n  'Authorization: Token token=\"YOUR_TOKEN\", credential=\"YOUR_CREDENTIAL_ID\"'\n]);\ncurl_setopt($request, CURLOPT_FOLLOWLOCATION, true);\ncurl_setopt($request, CURLOPT_RETURNTRANSFER, true);\n$output = curl_exec($request);\ncurl_close($request);\n\n// Get original audio\n$request = curl_init();\ncurl_setopt($request, CURLOPT_URL, 'https://art19.com/feed_items/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5.mp3?type=original');\ncurl_setopt($request, CURLOPT_HTTPHEADER, [\n  'Accept: audio/mpeg',\n  'Authorization: Token token=\"YOUR_TOKEN\", credential=\"YOUR_CREDENTIAL_ID\"'\n]);\ncurl_setopt($request, CURLOPT_FOLLOWLOCATION, true);\ncurl_setopt($request, CURLOPT_RETURNTRANSFER, true);\n$output = curl_exec($request);\ncurl_close($request);\n?>\n"},{"label":"cURL","lang":"shell","source":"# Get clean audio (default)\ncurl -L 'https://art19.com/feed_items/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5.mp3' \\\n  -H 'Accept: audio/mpeg' \\\n  -H 'Authorization: Token token=\"YOUR_TOKEN\", credential=\"YOUR_CREDENTIAL_ID\"' \\\n  --compressed\n\n# Get original audio\ncurl -L 'https://art19.com/feed_items/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5.mp3?type=original' \\\n  -H 'Accept: audio/mpeg' \\\n  -H 'Authorization: Token token=\"YOUR_TOKEN\", credential=\"YOUR_CREDENTIAL_ID\"' \\\n  --compressed\n"}]}},"/genres":{"get":{"description":"Retrieve a list of available genres.","parameters":[{"collectionFormat":"multi","description":"The list of IDs to filter by. Repeat this parameter for each ID you want to include in the filter.\nThe brackets *MUST* be percent-encoded, per the requirements in\n[RFC 3986 § 3.4](https://tools.ietf.org/html/rfc3986#section-3.4).\n","in":"query","items":{"format":"uuid","type":"string"},"name":"ids[]","required":false,"type":"array","uniqueItems":true},{"description":"Select which page number to receive results for. Pages are numbered starting at 1.\n\n","in":"query","minimum":1,"name":"page[number]","required":"true","type":"integer"},{"description":"Indicate how many records to return per page. The maximum is 100.\n\n","in":"query","maximum":100,"minimum":1,"name":"page[size]","required":"true","type":"integer"},{"description":"Limit the result to genres with a value containing this parameter in a case-insensitive way.","in":"query","name":"q","type":"string"},{"description":"Limit the result to genres associated with this series.","example":"d0ceb1ff-b95b-4c1e-a7e5-a36ed7b4d3b7","format":"uuid","in":"query","name":"series_id","type":"string"},{"collectionFormat":"csv","default":"value","description":"Specify how to sort the result. Please refer to either the top section or the\n[JSON:API specification](https://jsonapi.org/format/#fetching-sorting) on how sorting works in general.\n","in":"query","items":{"enum":["value"],"type":"string"},"name":"sort","type":"array"}],"produces":["application/vnd.api+json"],"responses":{"200":{"description":"Success","schema":{"properties":{"data":{"items":{"$ref":"#/definitions/Genre"},"type":"array"},"links":{"$ref":"#/definitions/Links"}},"type":"object"}},"400":{"description":"Bad Request\n\nParameters requiring a specific format must adhere to that format.\nPagination must be present and have a positive page number and a page size no larger than 100. \n","schema":{"properties":{"errors":{"description":"An error object describing the problem. Please check out the\n[JSON:API Error document reference](https://jsonapi.org/format/#error-objects) for a full\ndescription of the returned object.\n","items":{"properties":{"code":{"description":"An application-specific error code, expressed as a string value","type":"string"},"detail":{"description":"A human-readable explanation specific to this occurrence of the problem. Like title, this field's value can be localized.\n","example":"Required query parameter \"series_id\" is missing","type":"string"},"source":{"description":"An object containing references to the source of the error, optionally including any of the following members.\n","nullable":true,"properties":{"parameter":{"description":"A string indicating which URI query parameter caused the error.","example":"series_id","type":"string"},"pointer":{"description":"A JSON Pointer [RFC6901](https://tools.ietf.org/html/rfc6901) to the associated entity in the request document (e.g. `/data` for a primary data object, or `/data/attributes/title` for a specific attribute).\n","example":"/data/attributes/name","type":"string"}},"type":"object"},"status":{"description":"The HTTP status code applicable to this problem, expressed as a string value: 400","example":"400","type":"string"},"title":{"description":"A short, human-readable summary of the problem that SHOULD NOT change from occurrence to occurrence of the\nproblem, except for purposes of localization.\n","example":"Bad Request","type":"string"}},"type":"object"},"type":"array"}},"type":"object"}},"401":{"$ref":"#/responses/unauthorized"},"403":{"$ref":"#/responses/forbidden"},"406":{"$ref":"#/responses/not_acceptable"},"429":{"$ref":"#/responses/rate_limit_exceeded"}},"security":[{"api_key":[]}],"summary":"Get a list of genres","tags":["Genre"],"x-codeSamples":[{"label":"Ruby - Typhoeus","lang":"ruby","source":"response = Typhoeus.get(\n  \"https://art19.com/genres\",\n  accept_encoding: 'gzip',\n  headers: {\n    Accept:        'application/vnd.api+json',\n    Authorization: 'Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"'\n  },\n  params: {\n    # add filters if desired\n    page: { number: 1, size: 25 }\n  },\n  timeout: 10\n)\nif response.success?\n  # HTTP 2xx - JSON:API available to be parsed in response.body\nelsif response.timed_out?\n  # Request timed out\nelsif response.code.zero?\n  # cURL didn't get back an HTTP response, the reason is in response.return_message\nelse\n  # Other HTTP status, check response.code for which\nend\n"},{"label":"JavaScript - Fetch","lang":"javascript","source":"try {\n  const response = await fetch('https://art19.com/genres?page%5Bnumber%5D=1&page%5Bsize%5D=25', {\n    headers: {\n      Accept:        'application/vnd.api+json',\n      Authorization: 'Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"'\n    }\n  });\n\n  if (response.ok) {\n    // Get the response body if HTTP-status is 200-299\n    const json = await response.json();\n  } else {\n    // HTTP request failed, handle error\n  }\n} catch(err) {\n  // A network error occured\n}\n"},{"label":"PHP - cURL","lang":"php","source":"<?php\n// Initialize a cURL resource for a request\n$request = curl_init();\n\ntry {\n  // The API endpoint to request data from\n  $url = array('https://art19.com/genres');\n\n  // Provide extra parameters like filters or pagination to the request\n  $url[] = http_build_query(array(\n    'page' => array('number' => 1, 'size' => 25)\n  ));\n\n  // Configure the cURL options\n  curl_setopt($request, CURLOPT_URL, implode('?', $url));\n  curl_setopt($request, CURLOPT_FOLLOWLOCATION, true);\n  curl_setopt($request, CURLOPT_RETURNTRANSFER, true);\n  curl_setopt($request, CURLOPT_ENCODING, '');\n  curl_setopt($request, CURLOPT_HTTPHEADER, array(\n    'Accept: application/vnd.api+json',\n    'Authorization: Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"'\n  ));\n\n  // Execute the request and grab all status information\n  $output = curl_exec($request);\n  $info   = curl_getinfo($request);\n  $code   = $info['http_code'];\n\n  if ($code >= 200 && $code < 300) {\n    // HTTP 2xx - JSON:API response available to be parsed in $output\n    $json = json_decode($output);\n  } else if ($code >= 400 && $code < 500) {\n    // HTTP 4xx - Client error; JSON:API response evt. available to be parsed in $output\n    if (strlen($output) > 0) {\n      $errors = json_decode($output);\n    }\n  } else {\n    // Other HTTP status, treat according to workflow\n  }\n} finally {\n  // Free up the resource to clear out memory\n  curl_close($request);\n}\n?>\n"},{"label":"cURL","lang":"shell","source":"curl 'https://art19.com/genres?page%5Bnumber%5D=1&page%5Bsize%5D=25' \\\n  -H 'accept: application/vnd.api+json' \\\n  -H 'authorization: Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"' \\\n  --compressed\n"}]}},"/genres/{id}":{"get":{"parameters":[{"description":"Include related resources in the response. The related resources will be returned in the top-level `included` array.\nMultiple relationships can be included by separating them with commas.\nNested relationships can be specified using dot notation (e.g., `series.network`).\nAvailable relationships: `parent`.\n","example":"parent","in":"query","name":"include","type":"string"},{"description":"The ID of the genre resource to load.","example":"6bb474f9-3267-4182-bcfd-a67870f59601","format":"uuid","in":"path","name":"id","required":true,"type":"string"}],"produces":["application/vnd.api+json"],"responses":{"200":{"description":"Success","schema":{"properties":{"data":{"$ref":"#/definitions/Genre"},"included":{"description":"Related resources included in the response when using the include parameter (optional).","items":{"oneOf":[{"$ref":"#/definitions/Genre"}]},"type":"array"},"links":{"$ref":"#/definitions/ResourceLink"}},"type":"object"}},"400":{"description":"Bad Request\n\nParameters requiring a specific format must adhere to that format.\nInvalid include parameter values are not permitted.\n","schema":{"properties":{"errors":{"description":"An error object describing the problem. Please check out the\n[JSON:API Error document reference](https://jsonapi.org/format/#error-objects) for a full\ndescription of the returned object.\n","items":{"properties":{"code":{"description":"An application-specific error code, expressed as a string value","type":"string"},"detail":{"description":"A human-readable explanation specific to this occurrence of the problem. Like title, this field's value can be localized.\n","example":"Required query parameter \"series_id\" is missing","type":"string"},"source":{"description":"An object containing references to the source of the error, optionally including any of the following members.\n","nullable":true,"properties":{"parameter":{"description":"A string indicating which URI query parameter caused the error.","example":"series_id","type":"string"},"pointer":{"description":"A JSON Pointer [RFC6901](https://tools.ietf.org/html/rfc6901) to the associated entity in the request document (e.g. `/data` for a primary data object, or `/data/attributes/title` for a specific attribute).\n","example":"/data/attributes/name","type":"string"}},"type":"object"},"status":{"description":"The HTTP status code applicable to this problem, expressed as a string value: 400","example":"400","type":"string"},"title":{"description":"A short, human-readable summary of the problem that SHOULD NOT change from occurrence to occurrence of the\nproblem, except for purposes of localization.\n","example":"Bad Request","type":"string"}},"type":"object"},"type":"array"}},"type":"object"}},"401":{"$ref":"#/responses/unauthorized"},"403":{"$ref":"#/responses/forbidden"},"404":{"$ref":"#/responses/not_found"},"406":{"$ref":"#/responses/not_acceptable"},"429":{"$ref":"#/responses/rate_limit_exceeded"}},"security":[{"api_key":[]}],"summary":"Get a specific genre","tags":["Genre"],"x-codeSamples":[{"label":"Ruby - Typhoeus","lang":"ruby","source":"response = Typhoeus.get(\n  \"https://art19.com/genres/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\",\n  accept_encoding: 'gzip',\n  headers: {\n    Accept:        'application/vnd.api+json',\n    Authorization: 'Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"'\n  },\n  timeout: 10\n)\nif response.success?\n  # HTTP 2xx - JSON:API available to be parsed in response.body\nelsif response.timed_out?\n  # Request timed out\nelsif response.code.zero?\n  # cURL didn't get back an HTTP response, the reason is in response.return_message\nelse\n  # Other HTTP status, check response.code for which\nend\n"},{"label":"JavaScript - Fetch","lang":"javascript","source":"try {\n  const response = await fetch('https://art19.com/genres/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5', {\n    headers: {\n      Accept:        'application/vnd.api+json',\n      Authorization: 'Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"'\n    }\n  });\n\n  if (response.ok) {\n    // Get the response body if HTTP-status is 200-299\n    const json = await response.json();\n  } else {\n    // HTTP request failed, handle error\n  }\n} catch(err) {\n  // A network error occured\n}\n"},{"label":"PHP - cURL","lang":"php","source":"<?php\n// Initialize a cURL resource for a request\n$request = curl_init();\n\ntry {\n  // Configure the cURL options\n  curl_setopt($request, CURLOPT_URL, 'https://art19.com/genres/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5');\n  curl_setopt($request, CURLOPT_FOLLOWLOCATION, true);\n  curl_setopt($request, CURLOPT_RETURNTRANSFER, true);\n  curl_setopt($request, CURLOPT_ENCODING, '');\n  curl_setopt($request, CURLOPT_HTTPHEADER, array(\n    'Accept: application/vnd.api+json',\n    'Authorization: Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"'\n  ));\n\n  // Execute the request and grab all status information\n  $output = curl_exec($request);\n  $info   = curl_getinfo($request);\n  $code   = $info['http_code'];\n\n  if ($code >= 200 && $code < 300) {\n    // HTTP 2xx - JSON:API response available to be parsed in $output\n    $json = json_decode($output);\n  } else if ($code >= 400 && $code < 500) {\n    // HTTP 4xx - Client error; JSON:API response evt. available to be parsed in $output\n    if (strlen($output) > 0) {\n      $errors = json_decode($output);\n    }\n  } else {\n    // Other HTTP status, treat according to workflow\n  }\n} finally {\n  // Free up the resource to clear out memory\n  curl_close($request);\n}\n?>\n"},{"label":"cURL","lang":"shell","source":"curl 'https://art19.com/genres/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5' \\\n  -H 'accept: application/vnd.api+json' \\\n  -H 'authorization: Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"' \\\n  --compressed\n"}]}},"/series/{id}/relationships/genres":{"delete":{"description":"Remove one or more genre associations from a specific series. Requires a request body containing resource identifier objects.","parameters":[{"description":"The ID of the series.","example":"c1fbb1bf-45b1-4803-986e-123166f7f427","format":"uuid","in":"path","name":"id","required":true,"type":"string"},{"description":"Request body containing resource identifier objects for genres to remove.","in":"body","name":"body","required":true,"schema":{"properties":{"data":{"items":{"properties":{"id":{"description":"The ID of the genre to remove.","example":"c1fbb1bf-45b1-4803-986e-123166f7f427","format":"uuid","type":"string"},"type":{"description":"The type of resource. This is always `genres`.","example":"genres","type":"string"}}},"type":"array"}}}}],"responses":{"204":{"description":"No Content - Relationship successfully removed"},"400":{"description":"Bad Request - Invalid request body format or missing required data"},"422":{"$ref":"#/responses/unprocessable_entity"}},"security":[{"api_key":[]}],"summary":"Remove genre associations from a series","tags":["Genre"]},"get":{"description":"Retrieve the genre resource identifier objects (IDs and types) associated with a specific series. Returns a paginated list of resource identifiers (IDs and types), not full genre resources.","parameters":[{"description":"The ID of the series.","example":"c1fbb1bf-45b1-4803-986e-123166f7f427","format":"uuid","in":"path","name":"id","required":true,"type":"string"},{"description":"Select which page number to receive results for. Pages are numbered starting at 1.\n\n","in":"query","minimum":1,"name":"page[number]","required":"true","type":"integer"},{"description":"Indicate how many records to return per page. The maximum is 100.\n\n","in":"query","maximum":100,"minimum":1,"name":"page[size]","required":"true","type":"integer"}],"produces":["application/vnd.api+json"],"responses":{"200":{"description":"Success","schema":{"properties":{"data":{"items":{"properties":{"id":{"description":"The ID of the genre.","example":"c1fbb1bf-45b1-4803-986e-123166f7f427","format":"uuid","type":"string"},"type":{"description":"The type of resource: `genres`","example":"genres","type":"string"}}},"type":"array"},"links":{"$ref":"#/definitions/Links"}}}},"400":{"description":"Bad Request - Pagination must be present and have a positive page number and a page size no larger than 100"}},"security":[{"api_key":[]}],"summary":"Get genres for a specific series","tags":["Genre"]},"post":{"consumes":["application/vnd.api+json"],"description":"Associate one or more genres with a specific series. Requires a request body containing resource identifier objects.","parameters":[{"description":"The ID of the series.","example":"c1fbb1bf-45b1-4803-986e-123166f7f427","format":"uuid","in":"path","name":"id","required":true,"type":"string"},{"description":"Request body containing resource identifier objects for genres to associate.","in":"body","name":"body","required":true,"schema":{"properties":{"data":{"items":{"properties":{"id":{"description":"The ID of the genre to associate.","example":"c1fbb1bf-45b1-4803-986e-123166f7f427","format":"uuid","type":"string"},"type":{"description":"The type of resource. This is always `genres`.","example":"genres","type":"string"}}},"type":"array"}}}}],"responses":{"204":{"description":"No Content - Relationship successfully created"},"400":{"description":"Bad Request - Invalid request body format or missing required data"},"422":{"$ref":"#/responses/unprocessable_entity"}},"security":[{"api_key":[]}],"summary":"Associate genres with a series","tags":["Genre"]}},"/images":{"get":{"description":"An image represents a piece of artwork attached to some entity like a series, season, or episode,\nand is _owned_ by an entity called the `bucket`.\nAn image is also a container for several `MediaAssets` representing the physical files for various\nstyles used.\n\n## Media Asset Styles for Images\n\nMost media assets use square images. You may upload and use a square image, or upload an image of any\nshape and crop it to a square by specifying the cropping area. This area – identified by a coordinate\n`x, y` and a `width` & `height` – is the portion of the image used for all cover art. If an image has\ncropping defined, the cropped version of the image will be used in any `regular` or `square` style of media\nasset. If the original file is rectangular and does not have cropping, then the system will use a squared\nversion of the original file with the smaller of width or height as the square size.\n\nThe original image as uploaded into the system is always retained unmodified and available through\nthe style `original`. All media asset styles except `stripped-original` consist of the cropped image.\n\nAn image has media assets with the following styles:\n\n- `original`: This is the original file provided. May not be available, depending on permissions\n  and file type.\n- `stripped-original`: The original file with all metadata (EXIF, XMP, PNG metadata, etc.) removed.\n  This should be used for any application needing the original, uncropped, image.\n- `regular`: If the image has cropping defined, this is the cropped image.\n  If not, this is a square version of the original.\n- `thumb`: A square thumbnail of the image with a size of `100x100` pixels.\n- `square-400`: A square version of the image with a size of `400x400` pixels.\n- `square-640`: A square version of the image with a size of `640x640` pixels.\n- `square-888`: A square version of the image with a size of `888x888` pixels.\n- `square-3000`: A square version of the image with a size of `3000x3000` pixels.\n  This variant is only created if the cropped width & height are each at least 3000.\n- `itunes`: A square version of the image with a size of `1400x1400` pixels.\n\n### Preferred image used in feeds\n\nFor the main series image used in feeds, it is ideal to use the `square-3000` version.\nIf that is not available, the `itunes` version should be used instead.\n\n","parameters":[{"collectionFormat":"multi","description":"The list of IDs to filter by. Repeat this parameter for each ID you want to include in the filter.\nThe brackets *MUST* be percent-encoded, per the requirements in\n[RFC 3986 § 3.4](https://tools.ietf.org/html/rfc3986#section-3.4).\n","in":"query","items":{"format":"uuid","type":"string"},"name":"ids[]","required":true,"type":"array","uniqueItems":true}],"produces":["application/vnd.api+json"],"responses":{"200":{"description":"Success","schema":{"properties":{"data":{"items":{"$ref":"#/definitions/Image"},"type":"array"},"links":{"$ref":"#/definitions/Links"}},"type":"object"}},"400":{"description":"Bad Request\n\nParameters requiring a specific format must adhere to that format.\nPagination must have a positive page number and a page size no larger than 100. \n","schema":{"properties":{"errors":{"description":"An error object describing the problem. Please check out the\n[JSON:API Error document reference](https://jsonapi.org/format/#error-objects) for a full\ndescription of the returned object.\n","items":{"properties":{"code":{"description":"An application-specific error code, expressed as a string value","type":"string"},"detail":{"description":"A human-readable explanation specific to this occurrence of the problem. Like title, this field's value can be localized.\n","example":"Required query parameter \"series_id\" is missing","type":"string"},"source":{"description":"An object containing references to the source of the error, optionally including any of the following members.\n","nullable":true,"properties":{"parameter":{"description":"A string indicating which URI query parameter caused the error.","example":"series_id","type":"string"},"pointer":{"description":"A JSON Pointer [RFC6901](https://tools.ietf.org/html/rfc6901) to the associated entity in the request document (e.g. `/data` for a primary data object, or `/data/attributes/title` for a specific attribute).\n","example":"/data/attributes/name","type":"string"}},"type":"object"},"status":{"description":"The HTTP status code applicable to this problem, expressed as a string value: 400","example":"400","type":"string"},"title":{"description":"A short, human-readable summary of the problem that SHOULD NOT change from occurrence to occurrence of the\nproblem, except for purposes of localization.\n","example":"Bad Request","type":"string"}},"type":"object"},"type":"array"}},"type":"object"}},"401":{"$ref":"#/responses/unauthorized"},"403":{"$ref":"#/responses/forbidden"},"406":{"$ref":"#/responses/not_acceptable"},"429":{"$ref":"#/responses/rate_limit_exceeded"}},"security":[{"api_key":[]}],"summary":"Get a list of images","tags":["Image"],"x-codeSamples":[{"label":"Ruby - Typhoeus","lang":"ruby","source":"response = Typhoeus.get(\n  \"https://art19.com/images\",\n  accept_encoding: 'gzip',\n  headers: {\n    Accept:        'application/vnd.api+json',\n    Authorization: 'Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"'\n  },\n  params: {\n    # add filters if desired\n    page: { number: 1, size: 25 }\n  },\n  timeout: 10\n)\nif response.success?\n  # HTTP 2xx - JSON:API available to be parsed in response.body\nelsif response.timed_out?\n  # Request timed out\nelsif response.code.zero?\n  # cURL didn't get back an HTTP response, the reason is in response.return_message\nelse\n  # Other HTTP status, check response.code for which\nend\n"},{"label":"JavaScript - Fetch","lang":"javascript","source":"try {\n  const response = await fetch('https://art19.com/images?page%5Bnumber%5D=1&page%5Bsize%5D=25', {\n    headers: {\n      Accept:        'application/vnd.api+json',\n      Authorization: 'Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"'\n    }\n  });\n\n  if (response.ok) {\n    // Get the response body if HTTP-status is 200-299\n    const json = await response.json();\n  } else {\n    // HTTP request failed, handle error\n  }\n} catch(err) {\n  // A network error occured\n}\n"},{"label":"PHP - cURL","lang":"php","source":"<?php\n// Initialize a cURL resource for a request\n$request = curl_init();\n\ntry {\n  // The API endpoint to request data from\n  $url = array('https://art19.com/images');\n\n  // Provide extra parameters like filters or pagination to the request\n  $url[] = http_build_query(array(\n    'page' => array('number' => 1, 'size' => 25)\n  ));\n\n  // Configure the cURL options\n  curl_setopt($request, CURLOPT_URL, implode('?', $url));\n  curl_setopt($request, CURLOPT_FOLLOWLOCATION, true);\n  curl_setopt($request, CURLOPT_RETURNTRANSFER, true);\n  curl_setopt($request, CURLOPT_ENCODING, '');\n  curl_setopt($request, CURLOPT_HTTPHEADER, array(\n    'Accept: application/vnd.api+json',\n    'Authorization: Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"'\n  ));\n\n  // Execute the request and grab all status information\n  $output = curl_exec($request);\n  $info   = curl_getinfo($request);\n  $code   = $info['http_code'];\n\n  if ($code >= 200 && $code < 300) {\n    // HTTP 2xx - JSON:API response available to be parsed in $output\n    $json = json_decode($output);\n  } else if ($code >= 400 && $code < 500) {\n    // HTTP 4xx - Client error; JSON:API response evt. available to be parsed in $output\n    if (strlen($output) > 0) {\n      $errors = json_decode($output);\n    }\n  } else {\n    // Other HTTP status, treat according to workflow\n  }\n} finally {\n  // Free up the resource to clear out memory\n  curl_close($request);\n}\n?>\n"},{"label":"cURL","lang":"shell","source":"curl 'https://art19.com/images?page%5Bnumber%5D=1&page%5Bsize%5D=25' \\\n  -H 'accept: application/vnd.api+json' \\\n  -H 'authorization: Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"' \\\n  --compressed\n"}]},"post":{"consumes":["application/vnd.api+json"],"description":"Images start in 'uploaded' status and transition through 'processing' to 'valid' when ready.\nMonitor the `status` field to track processing progress. If processing fails, check `validation_errors`\nfor details about file format, size, or accessibility issues.\n\nFor a create request to succeed, your credential must have admin permission with the series that owns the image.\n","parameters":[{"in":"body","name":"body","required":true,"schema":{"properties":{"data":{"properties":{"attributes":{"properties":{"crop_data":{"description":"The crop area within the original media asset","properties":{"height":{"format":"float","type":"number"},"left":{"format":"float","type":"number"},"top":{"format":"float","type":"number"},"width":{"format":"float","type":"number"}},"type":"object"},"source_url":{"description":"The URL of the source media file.\nThis value will be modified to point to our internal file storage after processing.\n","type":"string"}},"required":["source_url"],"type":"object"},"relationships":{"properties":{"bucket":{"description":"The ID of the series.","properties":{"data":{"description":"[JSON:API Resource Identifier Object](https://jsonapi.org/format/#document-resource-identifier-objects)","nullable":false,"properties":{"id":{"description":"The ID of the bucket.","example":"2613eb10-15dc-4874-a35e-e580e8cf7063","format":"uuid","type":"string"},"type":{"description":"The type of resource: `series`","example":"series","type":"string"}},"type":"object"}},"type":"object"}},"required":["bucket"],"type":"object"},"type":{"enum":["images"],"type":"string"}},"required":["type","attributes","relationships"],"type":"object"}},"type":"object"}}],"responses":{"201":{"description":"Created","schema":{"properties":{"data":{"$ref":"#/definitions/Image"},"links":{"$ref":"#/definitions/ResourceLink"}},"type":"object"}},"401":{"$ref":"#/responses/unauthorized"},"403":{"$ref":"#/responses/forbidden"},"406":{"$ref":"#/responses/not_acceptable"},"415":{"$ref":"#/responses/unsupported_media_type"},"422":{"$ref":"#/responses/unprocessable_entity"},"429":{"$ref":"#/responses/rate_limit_exceeded"},"507":{"$ref":"#/responses/insufficient_storage"}},"security":[{"api_key":[]}],"summary":"Create a new image","tags":["Image"]}},"/images/{id}":{"delete":{"description":"Delete an image. Deleting images associated with series, episodes, or other content will cause them to either no longer have an image, or use the inherited image (for example an episode will default to using the series image).","parameters":[{"description":"The ID of the image to delete","format":"uuid","in":"path","name":"id","required":true,"type":"string"}],"responses":{"204":{"description":"No Content\n\nThe resource has been deleted successfully.\n"},"401":{"$ref":"#/responses/unauthorized"},"403":{"$ref":"#/responses/forbidden"},"406":{"$ref":"#/responses/not_acceptable"},"429":{"$ref":"#/responses/rate_limit_exceeded"},"507":{"$ref":"#/responses/insufficient_storage"}},"security":[{"api_key":[]}],"summary":"Delete an image","tags":["Image"]},"get":{"description":"An image represents a piece of artwork attached to some entity like a series, season, or episode,\nand is _owned_ by an entity called the `bucket`.\nAn image is also a container for several `MediaAssets` representing the physical files for various\nstyles used.\n\n## Media Asset Styles for Images\n\nMost media assets use square images. You may upload and use a square image, or upload an image of any\nshape and crop it to a square by specifying the cropping area. This area – identified by a coordinate\n`x, y` and a `width` & `height` – is the portion of the image used for all cover art. If an image has\ncropping defined, the cropped version of the image will be used in any `regular` or `square` style of media\nasset. If the original file is rectangular and does not have cropping, then the system will use a squared\nversion of the original file with the smaller of width or height as the square size.\n\nThe original image as uploaded into the system is always retained unmodified and available through\nthe style `original`. All media asset styles except `stripped-original` consist of the cropped image.\n\nAn image has media assets with the following styles:\n\n- `original`: This is the original file provided. May not be available, depending on permissions\n  and file type.\n- `stripped-original`: The original file with all metadata (EXIF, XMP, PNG metadata, etc.) removed.\n  This should be used for any application needing the original, uncropped, image.\n- `regular`: If the image has cropping defined, this is the cropped image.\n  If not, this is a square version of the original.\n- `thumb`: A square thumbnail of the image with a size of `100x100` pixels.\n- `square-400`: A square version of the image with a size of `400x400` pixels.\n- `square-640`: A square version of the image with a size of `640x640` pixels.\n- `square-888`: A square version of the image with a size of `888x888` pixels.\n- `square-3000`: A square version of the image with a size of `3000x3000` pixels.\n  This variant is only created if the cropped width & height are each at least 3000.\n- `itunes`: A square version of the image with a size of `1400x1400` pixels.\n\n### Preferred image used in feeds\n\nFor the main series image used in feeds, it is ideal to use the `square-3000` version.\nIf that is not available, the `itunes` version should be used instead.\n\n","parameters":[{"description":"The ID of the image resource to load.","example":"6bb474f9-3267-4182-bcfd-a67870f59601","format":"uuid","in":"path","name":"id","required":true,"type":"string"}],"produces":["application/vnd.api+json"],"responses":{"200":{"description":"Success","schema":{"properties":{"data":{"$ref":"#/definitions/Image"},"links":{"$ref":"#/definitions/ResourceLink"}},"type":"object"}},"401":{"$ref":"#/responses/unauthorized"},"403":{"$ref":"#/responses/forbidden"},"404":{"$ref":"#/responses/not_found"},"406":{"$ref":"#/responses/not_acceptable"},"429":{"$ref":"#/responses/rate_limit_exceeded"}},"security":[{"api_key":[]}],"summary":"Get a specific image","tags":["Image"],"x-codeSamples":[{"label":"Ruby - Typhoeus","lang":"ruby","source":"response = Typhoeus.get(\n  \"https://art19.com/images/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\",\n  accept_encoding: 'gzip',\n  headers: {\n    Accept:        'application/vnd.api+json',\n    Authorization: 'Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"'\n  },\n  timeout: 10\n)\nif response.success?\n  # HTTP 2xx - JSON:API available to be parsed in response.body\nelsif response.timed_out?\n  # Request timed out\nelsif response.code.zero?\n  # cURL didn't get back an HTTP response, the reason is in response.return_message\nelse\n  # Other HTTP status, check response.code for which\nend\n"},{"label":"JavaScript - Fetch","lang":"javascript","source":"try {\n  const response = await fetch('https://art19.com/images/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5', {\n    headers: {\n      Accept:        'application/vnd.api+json',\n      Authorization: 'Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"'\n    }\n  });\n\n  if (response.ok) {\n    // Get the response body if HTTP-status is 200-299\n    const json = await response.json();\n  } else {\n    // HTTP request failed, handle error\n  }\n} catch(err) {\n  // A network error occured\n}\n"},{"label":"PHP - cURL","lang":"php","source":"<?php\n// Initialize a cURL resource for a request\n$request = curl_init();\n\ntry {\n  // Configure the cURL options\n  curl_setopt($request, CURLOPT_URL, 'https://art19.com/images/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5');\n  curl_setopt($request, CURLOPT_FOLLOWLOCATION, true);\n  curl_setopt($request, CURLOPT_RETURNTRANSFER, true);\n  curl_setopt($request, CURLOPT_ENCODING, '');\n  curl_setopt($request, CURLOPT_HTTPHEADER, array(\n    'Accept: application/vnd.api+json',\n    'Authorization: Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"'\n  ));\n\n  // Execute the request and grab all status information\n  $output = curl_exec($request);\n  $info   = curl_getinfo($request);\n  $code   = $info['http_code'];\n\n  if ($code >= 200 && $code < 300) {\n    // HTTP 2xx - JSON:API response available to be parsed in $output\n    $json = json_decode($output);\n  } else if ($code >= 400 && $code < 500) {\n    // HTTP 4xx - Client error; JSON:API response evt. available to be parsed in $output\n    if (strlen($output) > 0) {\n      $errors = json_decode($output);\n    }\n  } else {\n    // Other HTTP status, treat according to workflow\n  }\n} finally {\n  // Free up the resource to clear out memory\n  curl_close($request);\n}\n?>\n"},{"label":"cURL","lang":"shell","source":"curl 'https://art19.com/images/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5' \\\n  -H 'accept: application/vnd.api+json' \\\n  -H 'authorization: Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"' \\\n  --compressed\n"}]}},"/languages":{"get":{"description":"Retrieve a list of available languages.","parameters":[{"collectionFormat":"multi","description":"The list of IDs to filter by. Repeat this parameter for each ID you want to include in the filter.\nThe brackets *MUST* be percent-encoded, per the requirements in\n[RFC 3986 § 3.4](https://tools.ietf.org/html/rfc3986#section-3.4).\n","in":"query","items":{"format":"uuid","type":"string"},"name":"ids[]","required":false,"type":"array","uniqueItems":true},{"description":"Select which page number to receive results for. Pages are numbered starting at 1.\n\n","in":"query","minimum":1,"name":"page[number]","required":"true","type":"integer"},{"description":"Indicate how many records to return per page. The maximum is 100.\n\n","in":"query","maximum":100,"minimum":1,"name":"page[size]","required":"true","type":"integer"},{"description":"Limit the result to languages with a value containing this parameter in a case-insensitive way.","in":"query","name":"q","type":"string"},{"description":"Limit the result to languages associated with this series.","example":"d0ceb1ff-b95b-4c1e-a7e5-a36ed7b4d3b7","format":"uuid","in":"query","name":"series_id","type":"string"},{"collectionFormat":"csv","default":"value","description":"Specify how to sort the result. Please refer to either the top section or the\n[JSON:API specification](https://jsonapi.org/format/#fetching-sorting) on how sorting works in general.\n","in":"query","items":{"enum":["value"],"type":"string"},"name":"sort","type":"array"}],"produces":["application/vnd.api+json"],"responses":{"200":{"description":"Success","schema":{"properties":{"data":{"items":{"$ref":"#/definitions/Language"},"type":"array"},"links":{"$ref":"#/definitions/Links"}},"type":"object"}},"400":{"description":"Bad Request\n\nParameters requiring a specific format must adhere to that format.\nPagination must be present and have a positive page number and a page size no larger than 100. \n","schema":{"properties":{"errors":{"description":"An error object describing the problem. Please check out the\n[JSON:API Error document reference](https://jsonapi.org/format/#error-objects) for a full\ndescription of the returned object.\n","items":{"properties":{"code":{"description":"An application-specific error code, expressed as a string value","type":"string"},"detail":{"description":"A human-readable explanation specific to this occurrence of the problem. Like title, this field's value can be localized.\n","example":"Required query parameter \"series_id\" is missing","type":"string"},"source":{"description":"An object containing references to the source of the error, optionally including any of the following members.\n","nullable":true,"properties":{"parameter":{"description":"A string indicating which URI query parameter caused the error.","example":"series_id","type":"string"},"pointer":{"description":"A JSON Pointer [RFC6901](https://tools.ietf.org/html/rfc6901) to the associated entity in the request document (e.g. `/data` for a primary data object, or `/data/attributes/title` for a specific attribute).\n","example":"/data/attributes/name","type":"string"}},"type":"object"},"status":{"description":"The HTTP status code applicable to this problem, expressed as a string value: 400","example":"400","type":"string"},"title":{"description":"A short, human-readable summary of the problem that SHOULD NOT change from occurrence to occurrence of the\nproblem, except for purposes of localization.\n","example":"Bad Request","type":"string"}},"type":"object"},"type":"array"}},"type":"object"}},"401":{"$ref":"#/responses/unauthorized"},"403":{"$ref":"#/responses/forbidden"},"406":{"$ref":"#/responses/not_acceptable"},"429":{"$ref":"#/responses/rate_limit_exceeded"}},"security":[{"api_key":[]}],"summary":"Get a list of languages","tags":["Language"],"x-codeSamples":[{"label":"Ruby - Typhoeus","lang":"ruby","source":"response = Typhoeus.get(\n  \"https://art19.com/languages\",\n  accept_encoding: 'gzip',\n  headers: {\n    Accept:        'application/vnd.api+json',\n    Authorization: 'Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"'\n  },\n  params: {\n    # add filters if desired\n    page: { number: 1, size: 25 }\n  },\n  timeout: 10\n)\nif response.success?\n  # HTTP 2xx - JSON:API available to be parsed in response.body\nelsif response.timed_out?\n  # Request timed out\nelsif response.code.zero?\n  # cURL didn't get back an HTTP response, the reason is in response.return_message\nelse\n  # Other HTTP status, check response.code for which\nend\n"},{"label":"JavaScript - Fetch","lang":"javascript","source":"try {\n  const response = await fetch('https://art19.com/languages?page%5Bnumber%5D=1&page%5Bsize%5D=25', {\n    headers: {\n      Accept:        'application/vnd.api+json',\n      Authorization: 'Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"'\n    }\n  });\n\n  if (response.ok) {\n    // Get the response body if HTTP-status is 200-299\n    const json = await response.json();\n  } else {\n    // HTTP request failed, handle error\n  }\n} catch(err) {\n  // A network error occured\n}\n"},{"label":"PHP - cURL","lang":"php","source":"<?php\n// Initialize a cURL resource for a request\n$request = curl_init();\n\ntry {\n  // The API endpoint to request data from\n  $url = array('https://art19.com/languages');\n\n  // Provide extra parameters like filters or pagination to the request\n  $url[] = http_build_query(array(\n    'page' => array('number' => 1, 'size' => 25)\n  ));\n\n  // Configure the cURL options\n  curl_setopt($request, CURLOPT_URL, implode('?', $url));\n  curl_setopt($request, CURLOPT_FOLLOWLOCATION, true);\n  curl_setopt($request, CURLOPT_RETURNTRANSFER, true);\n  curl_setopt($request, CURLOPT_ENCODING, '');\n  curl_setopt($request, CURLOPT_HTTPHEADER, array(\n    'Accept: application/vnd.api+json',\n    'Authorization: Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"'\n  ));\n\n  // Execute the request and grab all status information\n  $output = curl_exec($request);\n  $info   = curl_getinfo($request);\n  $code   = $info['http_code'];\n\n  if ($code >= 200 && $code < 300) {\n    // HTTP 2xx - JSON:API response available to be parsed in $output\n    $json = json_decode($output);\n  } else if ($code >= 400 && $code < 500) {\n    // HTTP 4xx - Client error; JSON:API response evt. available to be parsed in $output\n    if (strlen($output) > 0) {\n      $errors = json_decode($output);\n    }\n  } else {\n    // Other HTTP status, treat according to workflow\n  }\n} finally {\n  // Free up the resource to clear out memory\n  curl_close($request);\n}\n?>\n"},{"label":"cURL","lang":"shell","source":"curl 'https://art19.com/languages?page%5Bnumber%5D=1&page%5Bsize%5D=25' \\\n  -H 'accept: application/vnd.api+json' \\\n  -H 'authorization: Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"' \\\n  --compressed\n"}]}},"/languages/{id}":{"get":{"parameters":[{"description":"The ID of the language resource to load.","example":"6bb474f9-3267-4182-bcfd-a67870f59601","format":"uuid","in":"path","name":"id","required":true,"type":"string"}],"produces":["application/vnd.api+json"],"responses":{"200":{"description":"Success","schema":{"properties":{"data":{"$ref":"#/definitions/Language"},"links":{"$ref":"#/definitions/ResourceLink"}},"type":"object"}},"401":{"$ref":"#/responses/unauthorized"},"403":{"$ref":"#/responses/forbidden"},"404":{"$ref":"#/responses/not_found"},"406":{"$ref":"#/responses/not_acceptable"},"429":{"$ref":"#/responses/rate_limit_exceeded"}},"security":[{"api_key":[]}],"summary":"Get a specific language","tags":["Language"],"x-codeSamples":[{"label":"Ruby - Typhoeus","lang":"ruby","source":"response = Typhoeus.get(\n  \"https://art19.com/languages/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\",\n  accept_encoding: 'gzip',\n  headers: {\n    Accept:        'application/vnd.api+json',\n    Authorization: 'Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"'\n  },\n  timeout: 10\n)\nif response.success?\n  # HTTP 2xx - JSON:API available to be parsed in response.body\nelsif response.timed_out?\n  # Request timed out\nelsif response.code.zero?\n  # cURL didn't get back an HTTP response, the reason is in response.return_message\nelse\n  # Other HTTP status, check response.code for which\nend\n"},{"label":"JavaScript - Fetch","lang":"javascript","source":"try {\n  const response = await fetch('https://art19.com/languages/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5', {\n    headers: {\n      Accept:        'application/vnd.api+json',\n      Authorization: 'Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"'\n    }\n  });\n\n  if (response.ok) {\n    // Get the response body if HTTP-status is 200-299\n    const json = await response.json();\n  } else {\n    // HTTP request failed, handle error\n  }\n} catch(err) {\n  // A network error occured\n}\n"},{"label":"PHP - cURL","lang":"php","source":"<?php\n// Initialize a cURL resource for a request\n$request = curl_init();\n\ntry {\n  // Configure the cURL options\n  curl_setopt($request, CURLOPT_URL, 'https://art19.com/languages/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5');\n  curl_setopt($request, CURLOPT_FOLLOWLOCATION, true);\n  curl_setopt($request, CURLOPT_RETURNTRANSFER, true);\n  curl_setopt($request, CURLOPT_ENCODING, '');\n  curl_setopt($request, CURLOPT_HTTPHEADER, array(\n    'Accept: application/vnd.api+json',\n    'Authorization: Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"'\n  ));\n\n  // Execute the request and grab all status information\n  $output = curl_exec($request);\n  $info   = curl_getinfo($request);\n  $code   = $info['http_code'];\n\n  if ($code >= 200 && $code < 300) {\n    // HTTP 2xx - JSON:API response available to be parsed in $output\n    $json = json_decode($output);\n  } else if ($code >= 400 && $code < 500) {\n    // HTTP 4xx - Client error; JSON:API response evt. available to be parsed in $output\n    if (strlen($output) > 0) {\n      $errors = json_decode($output);\n    }\n  } else {\n    // Other HTTP status, treat according to workflow\n  }\n} finally {\n  // Free up the resource to clear out memory\n  curl_close($request);\n}\n?>\n"},{"label":"cURL","lang":"shell","source":"curl 'https://art19.com/languages/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5' \\\n  -H 'accept: application/vnd.api+json' \\\n  -H 'authorization: Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"' \\\n  --compressed\n"}]}},"/series/{id}/relationships/languages":{"delete":{"description":"Remove one or more language associations from a specific series. Requires a request body containing resource identifier objects.","parameters":[{"description":"The ID of the series.","example":"c1fbb1bf-45b1-4803-986e-123166f7f427","format":"uuid","in":"path","name":"id","required":true,"type":"string"},{"description":"Request body containing resource identifier objects for languages to remove.","in":"body","name":"body","required":true,"schema":{"properties":{"data":{"items":{"properties":{"id":{"description":"The ID of the language to remove.","example":"c1fbb1bf-45b1-4803-986e-123166f7f427","format":"uuid","type":"string"},"type":{"description":"The type of resource. This is always `languages`.","example":"languages","type":"string"}}},"type":"array"}}}}],"responses":{"204":{"description":"No Content - Relationship successfully removed"},"400":{"description":"Bad Request - Invalid request body format or missing required data"},"422":{"$ref":"#/responses/unprocessable_entity"}},"security":[{"api_key":[]}],"summary":"Remove language associations from a series","tags":["Language"]},"get":{"description":"Retrieve the language resource identifier objects (IDs and types) associated with a specific series. Returns a paginated list of resource identifiers (IDs and types), not full language resources.","parameters":[{"description":"The ID of the series.","example":"c1fbb1bf-45b1-4803-986e-123166f7f427","format":"uuid","in":"path","name":"id","required":true,"type":"string"},{"description":"Select which page number to receive results for. Pages are numbered starting at 1.\n\n","in":"query","minimum":1,"name":"page[number]","required":"true","type":"integer"},{"description":"Indicate how many records to return per page. The maximum is 100.\n\n","in":"query","maximum":100,"minimum":1,"name":"page[size]","required":"true","type":"integer"}],"produces":["application/vnd.api+json"],"responses":{"200":{"description":"Success","schema":{"properties":{"data":{"items":{"properties":{"id":{"description":"The ID of the language.","example":"c1fbb1bf-45b1-4803-986e-123166f7f427","format":"uuid","type":"string"},"type":{"description":"The type of resource: `languages`","example":"languages","type":"string"}}},"type":"array"},"links":{"$ref":"#/definitions/Links"}}}},"400":{"description":"Bad Request - Pagination must be present and have a positive page number and a page size no larger than 100"}},"security":[{"api_key":[]}],"summary":"Get languages for a specific series","tags":["Language"]},"post":{"consumes":["application/vnd.api+json"],"description":"Associate one or more languages with a specific series. Requires a request body containing resource identifier objects.","parameters":[{"description":"The ID of the series.","example":"c1fbb1bf-45b1-4803-986e-123166f7f427","format":"uuid","in":"path","name":"id","required":true,"type":"string"},{"description":"Request body containing resource identifier objects for languages to associate.","in":"body","name":"body","required":true,"schema":{"properties":{"data":{"items":{"properties":{"id":{"description":"The ID of the language to associate.","example":"c1fbb1bf-45b1-4803-986e-123166f7f427","format":"uuid","type":"string"},"type":{"description":"The type of resource. This is always `languages`.","example":"languages","type":"string"}}},"type":"array"}}}}],"responses":{"204":{"description":"No Content - Relationship successfully created"},"400":{"description":"Bad Request - Invalid request body format or missing required data"},"422":{"$ref":"#/responses/unprocessable_entity"}},"security":[{"api_key":[]}],"summary":"Associate languages with a series","tags":["Language"]}},"/marker_points":{"get":{"description":"Marker points define where ads can be inserted in episode audio. Each marker point controls the maximum number and duration of ads that can be inserted.\n\nWhen retrieving a list of marker points, the result is automatically filtered depending on the\nprivileges the used credential holds.\n","parameters":[{"collectionFormat":"multi","description":"The list of IDs to filter by. Repeat this parameter for each ID you want to include in the filter.\nThe brackets *MUST* be percent-encoded, per the requirements in\n[RFC 3986 § 3.4](https://tools.ietf.org/html/rfc3986#section-3.4).\n","in":"query","items":{"format":"uuid","type":"string"},"name":"ids[]","required":false,"type":"array","uniqueItems":true},{"description":"Select which page number to receive results for. Pages are numbered starting at 1.\n\n","in":"query","minimum":1,"name":"page[number]","required":"true","type":"integer"},{"description":"Indicate how many records to return per page. The maximum is 100.\n\n","in":"query","maximum":100,"minimum":1,"name":"page[size]","required":"true","type":"integer"},{"description":"Limit the result to marker points linked to the live version of this episode.","example":"30e7b568-d099-486b-9a8e-51b7594cab7d","format":"uuid","in":"query","name":"episode_id","type":"string"},{"description":"Limit the result to marker points linked to this episode version.","example":"30e7b568-d099-486b-9a8e-51b7594cab7d","format":"uuid","in":"query","name":"episode_version_id","type":"string"},{"description":"Limit the result to default marker points linked to this season.","example":"d0ceb1ff-b95b-4c1e-a7e5-a36ed7b4d3b7","format":"uuid","in":"query","name":"season_id","type":"string"},{"description":"Limit the result to default marker points linked to this series.","example":"d0ceb1ff-b95b-4c1e-a7e5-a36ed7b4d3b7","format":"uuid","in":"query","name":"series_id","type":"string"},{"description":"Filter by marker point type.","enum":["AdInsertionPoint","EmbeddedAdPoint"],"in":"query","name":"type","type":"string"}],"produces":["application/vnd.api+json"],"responses":{"200":{"description":"Success","schema":{"properties":{"data":{"items":{"$ref":"#/definitions/MarkerPoint"},"type":"array"},"links":{"$ref":"#/definitions/Links"}},"type":"object"}},"400":{"description":"Bad Request\n\nParameters requiring a specific format must adhere to that format.\nPagination must have a positive page number and a page size no larger than 100. \n","schema":{"properties":{"errors":{"description":"An error object describing the problem. Please check out the\n[JSON:API Error document reference](https://jsonapi.org/format/#error-objects) for a full\ndescription of the returned object.\n","items":{"properties":{"code":{"description":"An application-specific error code, expressed as a string value","type":"string"},"detail":{"description":"A human-readable explanation specific to this occurrence of the problem. Like title, this field's value can be localized.\n","example":"Required query parameter \"series_id\" is missing","type":"string"},"source":{"description":"An object containing references to the source of the error, optionally including any of the following members.\n","nullable":true,"properties":{"parameter":{"description":"A string indicating which URI query parameter caused the error.","example":"series_id","type":"string"},"pointer":{"description":"A JSON Pointer [RFC6901](https://tools.ietf.org/html/rfc6901) to the associated entity in the request document (e.g. `/data` for a primary data object, or `/data/attributes/title` for a specific attribute).\n","example":"/data/attributes/name","type":"string"}},"type":"object"},"status":{"description":"The HTTP status code applicable to this problem, expressed as a string value: 400","example":"400","type":"string"},"title":{"description":"A short, human-readable summary of the problem that SHOULD NOT change from occurrence to occurrence of the\nproblem, except for purposes of localization.\n","example":"Bad Request","type":"string"}},"type":"object"},"type":"array"}},"type":"object"}},"401":{"$ref":"#/responses/unauthorized"},"403":{"$ref":"#/responses/forbidden"},"406":{"$ref":"#/responses/not_acceptable"},"429":{"$ref":"#/responses/rate_limit_exceeded"}},"security":[{"api_key":[]}],"summary":"Get a list of marker points","tags":["MarkerPoint"],"x-codeSamples":[{"label":"Ruby - Typhoeus","lang":"ruby","source":"response = Typhoeus.get(\n  \"https://art19.com/marker_points\",\n  accept_encoding: 'gzip',\n  headers: {\n    Accept:        'application/vnd.api+json',\n    Authorization: 'Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"'\n  },\n  params: {\n    # add filters if desired\n    page: { number: 1, size: 25 }\n  },\n  timeout: 10\n)\nif response.success?\n  # HTTP 2xx - JSON:API available to be parsed in response.body\nelsif response.timed_out?\n  # Request timed out\nelsif response.code.zero?\n  # cURL didn't get back an HTTP response, the reason is in response.return_message\nelse\n  # Other HTTP status, check response.code for which\nend\n"},{"label":"JavaScript - Fetch","lang":"javascript","source":"try {\n  const response = await fetch('https://art19.com/marker_points?page%5Bnumber%5D=1&page%5Bsize%5D=25', {\n    headers: {\n      Accept:        'application/vnd.api+json',\n      Authorization: 'Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"'\n    }\n  });\n\n  if (response.ok) {\n    // Get the response body if HTTP-status is 200-299\n    const json = await response.json();\n  } else {\n    // HTTP request failed, handle error\n  }\n} catch(err) {\n  // A network error occured\n}\n"},{"label":"PHP - cURL","lang":"php","source":"<?php\n// Initialize a cURL resource for a request\n$request = curl_init();\n\ntry {\n  // The API endpoint to request data from\n  $url = array('https://art19.com/marker_points');\n\n  // Provide extra parameters like filters or pagination to the request\n  $url[] = http_build_query(array(\n    'page' => array('number' => 1, 'size' => 25)\n  ));\n\n  // Configure the cURL options\n  curl_setopt($request, CURLOPT_URL, implode('?', $url));\n  curl_setopt($request, CURLOPT_FOLLOWLOCATION, true);\n  curl_setopt($request, CURLOPT_RETURNTRANSFER, true);\n  curl_setopt($request, CURLOPT_ENCODING, '');\n  curl_setopt($request, CURLOPT_HTTPHEADER, array(\n    'Accept: application/vnd.api+json',\n    'Authorization: Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"'\n  ));\n\n  // Execute the request and grab all status information\n  $output = curl_exec($request);\n  $info   = curl_getinfo($request);\n  $code   = $info['http_code'];\n\n  if ($code >= 200 && $code < 300) {\n    // HTTP 2xx - JSON:API response available to be parsed in $output\n    $json = json_decode($output);\n  } else if ($code >= 400 && $code < 500) {\n    // HTTP 4xx - Client error; JSON:API response evt. available to be parsed in $output\n    if (strlen($output) > 0) {\n      $errors = json_decode($output);\n    }\n  } else {\n    // Other HTTP status, treat according to workflow\n  }\n} finally {\n  // Free up the resource to clear out memory\n  curl_close($request);\n}\n?>\n"},{"label":"cURL","lang":"shell","source":"curl 'https://art19.com/marker_points?page%5Bnumber%5D=1&page%5Bsize%5D=25' \\\n  -H 'accept: application/vnd.api+json' \\\n  -H 'authorization: Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"' \\\n  --compressed\n"}]},"post":{"consumes":["application/vnd.api+json"],"description":"Marker points can be created when the episode version is in `draft` or `inactive` status. To serve ads, markers must have at least one associated content rule.\n\nFor a create request to succeed, your credential must have admin permission with the series that owns the marker point.\n","parameters":[{"description":"Marker point to create.","in":"body","required":true,"schema":{"properties":{"data":{"properties":{"attributes":{"properties":{"maximum_content_count":{"description":"The maximum number of ads that can be inserted into this marker.","type":"integer"},"maximum_content_duration":{"description":"The total maximum time, in seconds, for all combined ads within this marker.","format":"float","type":"number"},"position_type":{"description":"The numeric type of the position (0: preroll, 1: midroll, 2: postroll).","enum":[0,1,2],"type":"integer"},"start_position":{"description":"The start position of the marker point in seconds. When set to null, the marker is placed at the end of the content.","format":"float","type":"number"},"type":{"description":"The specific type of marker point.","enum":["AdInsertionPoint"],"type":"string"}},"required":["type","position_type","maximum_content_count","maximum_content_duration"],"type":"object"},"relationships":{"properties":{"episode_version":{"description":"The episode version this marker point belongs to.","properties":{"data":{"description":"[JSON:API Resource Identifier Object](https://jsonapi.org/format/#document-resource-identifier-objects)","nullable":false,"properties":{"id":{"description":"The ID of the episode version.","example":"2613eb10-15dc-4874-a35e-e580e8cf7063","format":"uuid","type":"string"},"type":{"description":"The type of resource: `episode_versions`","example":"episode_versions","type":"string"}},"type":"object"}},"type":"object"}},"required":["episode_version"],"type":"object"},"type":{"description":"The type of resource. This is always `marker_points`.","example":"marker_points","type":"string"}},"required":["type","attributes","relationships"],"type":"object"}},"type":"object"}}],"responses":{"201":{"description":"Created","schema":{"properties":{"data":{"$ref":"#/definitions/MarkerPoint"},"links":{"$ref":"#/definitions/ResourceLink"}},"type":"object"}},"401":{"$ref":"#/responses/unauthorized"},"403":{"$ref":"#/responses/forbidden"},"406":{"$ref":"#/responses/not_acceptable"},"415":{"$ref":"#/responses/unsupported_media_type"},"422":{"$ref":"#/responses/unprocessable_entity"},"429":{"$ref":"#/responses/rate_limit_exceeded"},"507":{"$ref":"#/responses/insufficient_storage"}},"security":[{"api_key":[]}],"summary":"Create a new marker point","tags":["MarkerPoint"]}},"/marker_points/{id}":{"delete":{"description":"Delete a marker point. Note that marker points deleted from an active episode version cannot be restored - you will need to move the episode version back to `inactive` status before re-adding marker points.","parameters":[{"description":"The ID of the marker point to delete","format":"uuid","in":"path","name":"id","required":true,"type":"string"}],"responses":{"204":{"description":"No Content\n\nThe resource has been deleted successfully.\n"},"401":{"$ref":"#/responses/unauthorized"},"403":{"$ref":"#/responses/forbidden"},"406":{"$ref":"#/responses/not_acceptable"},"429":{"$ref":"#/responses/rate_limit_exceeded"},"507":{"$ref":"#/responses/insufficient_storage"}},"security":[{"api_key":[]}],"summary":"Delete a marker point","tags":["MarkerPoint"]},"get":{"parameters":[{"description":"The ID of the marker point resource to load.","example":"6bb474f9-3267-4182-bcfd-a67870f59601","format":"uuid","in":"path","name":"id","required":true,"type":"string"}],"produces":["application/vnd.api+json"],"responses":{"200":{"description":"Success","schema":{"properties":{"data":{"$ref":"#/definitions/MarkerPoint"},"links":{"$ref":"#/definitions/ResourceLink"}},"type":"object"}},"401":{"$ref":"#/responses/unauthorized"},"403":{"$ref":"#/responses/forbidden"},"404":{"$ref":"#/responses/not_found"},"406":{"$ref":"#/responses/not_acceptable"},"429":{"$ref":"#/responses/rate_limit_exceeded"}},"security":[{"api_key":[]}],"summary":"Get a specific marker point","tags":["MarkerPoint"],"x-codeSamples":[{"label":"Ruby - Typhoeus","lang":"ruby","source":"response = Typhoeus.get(\n  \"https://art19.com/marker_points/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\",\n  accept_encoding: 'gzip',\n  headers: {\n    Accept:        'application/vnd.api+json',\n    Authorization: 'Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"'\n  },\n  timeout: 10\n)\nif response.success?\n  # HTTP 2xx - JSON:API available to be parsed in response.body\nelsif response.timed_out?\n  # Request timed out\nelsif response.code.zero?\n  # cURL didn't get back an HTTP response, the reason is in response.return_message\nelse\n  # Other HTTP status, check response.code for which\nend\n"},{"label":"JavaScript - Fetch","lang":"javascript","source":"try {\n  const response = await fetch('https://art19.com/marker_points/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5', {\n    headers: {\n      Accept:        'application/vnd.api+json',\n      Authorization: 'Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"'\n    }\n  });\n\n  if (response.ok) {\n    // Get the response body if HTTP-status is 200-299\n    const json = await response.json();\n  } else {\n    // HTTP request failed, handle error\n  }\n} catch(err) {\n  // A network error occured\n}\n"},{"label":"PHP - cURL","lang":"php","source":"<?php\n// Initialize a cURL resource for a request\n$request = curl_init();\n\ntry {\n  // Configure the cURL options\n  curl_setopt($request, CURLOPT_URL, 'https://art19.com/marker_points/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5');\n  curl_setopt($request, CURLOPT_FOLLOWLOCATION, true);\n  curl_setopt($request, CURLOPT_RETURNTRANSFER, true);\n  curl_setopt($request, CURLOPT_ENCODING, '');\n  curl_setopt($request, CURLOPT_HTTPHEADER, array(\n    'Accept: application/vnd.api+json',\n    'Authorization: Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"'\n  ));\n\n  // Execute the request and grab all status information\n  $output = curl_exec($request);\n  $info   = curl_getinfo($request);\n  $code   = $info['http_code'];\n\n  if ($code >= 200 && $code < 300) {\n    // HTTP 2xx - JSON:API response available to be parsed in $output\n    $json = json_decode($output);\n  } else if ($code >= 400 && $code < 500) {\n    // HTTP 4xx - Client error; JSON:API response evt. available to be parsed in $output\n    if (strlen($output) > 0) {\n      $errors = json_decode($output);\n    }\n  } else {\n    // Other HTTP status, treat according to workflow\n  }\n} finally {\n  // Free up the resource to clear out memory\n  curl_close($request);\n}\n?>\n"},{"label":"cURL","lang":"shell","source":"curl 'https://art19.com/marker_points/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5' \\\n  -H 'accept: application/vnd.api+json' \\\n  -H 'authorization: Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"' \\\n  --compressed\n"}]},"patch":{"consumes":["application/vnd.api+json"],"description":"Update an existing marker point. Marker points can only be updated on episode versions with `inactive` or `draft` status, not on `active` or `processing` episode versions.\n\nFor an update request to succeed, your credential must have admin permission with the series that owns this marker point.\n","parameters":[{"description":"Marker point to update.","in":"body","required":true,"schema":{"properties":{"data":{"properties":{"attributes":{"properties":{"maximum_content_count":{"description":"The maximum number of ads that can be inserted into this marker.","type":"integer"},"maximum_content_duration":{"description":"The total maximum time, in seconds, for all combined ads within this marker.","format":"float","type":"number"},"position_type":{"description":"The numeric type of the position (0: preroll, 1: midroll, 2: postroll).","enum":[0,1,2],"type":"integer"},"start_position":{"description":"The start position of the marker point in seconds. When set to null, the marker is placed at the end of the content.","format":"float","type":"number"}},"type":"object"},"id":{"example":"c1fbb1bf-45b1-4803-986e-123166f7f427","format":"uuid","type":"string"},"type":{"description":"The type of resource. This is always `marker_points`.","example":"marker_points","type":"string"}},"required":["type","id","attributes"],"type":"object"}},"type":"object"}}],"responses":{"200":{"description":"Success","schema":{"properties":{"data":{"$ref":"#/definitions/MarkerPoint"},"links":{"$ref":"#/definitions/ResourceLink"}},"type":"object"}},"401":{"$ref":"#/responses/unauthorized"},"403":{"$ref":"#/responses/forbidden"},"406":{"$ref":"#/responses/not_acceptable"},"415":{"$ref":"#/responses/unsupported_media_type"},"422":{"$ref":"#/responses/unprocessable_entity"},"429":{"$ref":"#/responses/rate_limit_exceeded"},"507":{"$ref":"#/responses/insufficient_storage"}},"security":[{"api_key":[]}],"summary":"Update a marker point","tags":["MarkerPoint"]}},"/marker_point_content_rules":{"get":{"description":"Content rules, also known as AIP Priorities, control which types of ads can be inserted into specific marker points. Use content rules to target specific campaigns, set time-based restrictions, and control ad priorities. If no content rules are supplied, the associated marker point will not serve any ads.\n\nOne initial filter must be provided (`ids` or `marker_point_id`), otherwise a `400 Bad Request` response\nwill be returned.\n\nWhen retrieving a list of marker point content rules, the result is automatically filtered depending on the\nprivileges the used credential holds.\n","parameters":[{"collectionFormat":"multi","description":"The list of IDs to filter by. Repeat this parameter for each ID you want to include in the filter.\nThe brackets *MUST* be percent-encoded, per the requirements in\n[RFC 3986 § 3.4](https://tools.ietf.org/html/rfc3986#section-3.4).\n","in":"query","items":{"format":"uuid","type":"string"},"name":"ids[]","required":false,"type":"array","uniqueItems":true},{"description":"Select which page number to receive results for. Pages are numbered starting at 1.\n\n","in":"query","minimum":1,"name":"page[number]","required":"true","type":"integer"},{"description":"Indicate how many records to return per page. The maximum is 100.\n\n","in":"query","maximum":100,"minimum":1,"name":"page[size]","required":"true","type":"integer"},{"description":"Limit the results to marker point content rules linked to this marker point.","example":"30e7b568-d099-486b-9a8e-51b7594cab7d","format":"uuid","in":"query","name":"marker_point_id","type":"string"},{"collectionFormat":"csv","default":"created_at","description":"Specify how to sort the result. Please refer to either the top section or the\n[JSON:API specification](https://jsonapi.org/format/#fetching-sorting) on how sorting works in general.\n","in":"query","items":{"enum":["created_at","priority","updated_at"],"type":"string"},"name":"sort","type":"array"}],"produces":["application/vnd.api+json"],"responses":{"200":{"description":"Success","schema":{"properties":{"data":{"items":{"$ref":"#/definitions/MarkerPointContentRule"},"type":"array"},"links":{"$ref":"#/definitions/Links"}},"type":"object"}},"400":{"description":"Bad Request\n\nParameters requiring a specific format must adhere to that format.\nPagination must have a positive page number and a page size no larger than 100. \n","schema":{"properties":{"errors":{"description":"An error object describing the problem. Please check out the\n[JSON:API Error document reference](https://jsonapi.org/format/#error-objects) for a full\ndescription of the returned object.\n","items":{"properties":{"code":{"description":"An application-specific error code, expressed as a string value","type":"string"},"detail":{"description":"A human-readable explanation specific to this occurrence of the problem. Like title, this field's value can be localized.\n","example":"Required query parameter \"series_id\" is missing","type":"string"},"source":{"description":"An object containing references to the source of the error, optionally including any of the following members.\n","nullable":true,"properties":{"parameter":{"description":"A string indicating which URI query parameter caused the error.","example":"series_id","type":"string"},"pointer":{"description":"A JSON Pointer [RFC6901](https://tools.ietf.org/html/rfc6901) to the associated entity in the request document (e.g. `/data` for a primary data object, or `/data/attributes/title` for a specific attribute).\n","example":"/data/attributes/name","type":"string"}},"type":"object"},"status":{"description":"The HTTP status code applicable to this problem, expressed as a string value: 400","example":"400","type":"string"},"title":{"description":"A short, human-readable summary of the problem that SHOULD NOT change from occurrence to occurrence of the\nproblem, except for purposes of localization.\n","example":"Bad Request","type":"string"}},"type":"object"},"type":"array"}},"type":"object"}},"401":{"$ref":"#/responses/unauthorized"},"403":{"$ref":"#/responses/forbidden"},"406":{"$ref":"#/responses/not_acceptable"},"429":{"$ref":"#/responses/rate_limit_exceeded"}},"security":[{"api_key":[]}],"summary":"Get a list of marker point content rules","tags":["MarkerPointContentRule"],"x-codeSamples":[{"label":"Ruby - Typhoeus","lang":"ruby","source":"response = Typhoeus.get(\n  \"https://art19.com/marker_point_content_rules\",\n  accept_encoding: 'gzip',\n  headers: {\n    Accept:        'application/vnd.api+json',\n    Authorization: 'Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"'\n  },\n  params: {\n    # add filters if desired\n    page: { number: 1, size: 25 }\n  },\n  timeout: 10\n)\nif response.success?\n  # HTTP 2xx - JSON:API available to be parsed in response.body\nelsif response.timed_out?\n  # Request timed out\nelsif response.code.zero?\n  # cURL didn't get back an HTTP response, the reason is in response.return_message\nelse\n  # Other HTTP status, check response.code for which\nend\n"},{"label":"JavaScript - Fetch","lang":"javascript","source":"try {\n  const response = await fetch('https://art19.com/marker_point_content_rules?page%5Bnumber%5D=1&page%5Bsize%5D=25', {\n    headers: {\n      Accept:        'application/vnd.api+json',\n      Authorization: 'Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"'\n    }\n  });\n\n  if (response.ok) {\n    // Get the response body if HTTP-status is 200-299\n    const json = await response.json();\n  } else {\n    // HTTP request failed, handle error\n  }\n} catch(err) {\n  // A network error occured\n}\n"},{"label":"PHP - cURL","lang":"php","source":"<?php\n// Initialize a cURL resource for a request\n$request = curl_init();\n\ntry {\n  // The API endpoint to request data from\n  $url = array('https://art19.com/marker_point_content_rules');\n\n  // Provide extra parameters like filters or pagination to the request\n  $url[] = http_build_query(array(\n    'page' => array('number' => 1, 'size' => 25)\n  ));\n\n  // Configure the cURL options\n  curl_setopt($request, CURLOPT_URL, implode('?', $url));\n  curl_setopt($request, CURLOPT_FOLLOWLOCATION, true);\n  curl_setopt($request, CURLOPT_RETURNTRANSFER, true);\n  curl_setopt($request, CURLOPT_ENCODING, '');\n  curl_setopt($request, CURLOPT_HTTPHEADER, array(\n    'Accept: application/vnd.api+json',\n    'Authorization: Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"'\n  ));\n\n  // Execute the request and grab all status information\n  $output = curl_exec($request);\n  $info   = curl_getinfo($request);\n  $code   = $info['http_code'];\n\n  if ($code >= 200 && $code < 300) {\n    // HTTP 2xx - JSON:API response available to be parsed in $output\n    $json = json_decode($output);\n  } else if ($code >= 400 && $code < 500) {\n    // HTTP 4xx - Client error; JSON:API response evt. available to be parsed in $output\n    if (strlen($output) > 0) {\n      $errors = json_decode($output);\n    }\n  } else {\n    // Other HTTP status, treat according to workflow\n  }\n} finally {\n  // Free up the resource to clear out memory\n  curl_close($request);\n}\n?>\n"},{"label":"cURL","lang":"shell","source":"curl 'https://art19.com/marker_point_content_rules?page%5Bnumber%5D=1&page%5Bsize%5D=25' \\\n  -H 'accept: application/vnd.api+json' \\\n  -H 'authorization: Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"' \\\n  --compressed\n"}]},"post":{"consumes":["application/vnd.api+json"],"description":"Content rules can only be created when the episode version is in `draft` or `inactive` status.\nMultiple rules can be applied to the same marker point with different priorities.\n\nFor a create request to succeed, your credential must have admin permission with the series that owns the marker point.\n","parameters":[{"in":"body","name":"body","required":true,"schema":{"properties":{"data":{"properties":{"attributes":{"properties":{"content_type":{"description":"The type of content this rule applies to. Campaign refers to \"All Live Reads and Spots\", LiveReadAd refers to \"All Live Reads\", TraditionalAd refers to \"All Spots\". \n\nTo target all ads of a specific type, set content_type to one of these values. To target a specific brand, campaign, or advertisement, use the `content` relationship instead and set the content type based on the associated resource type ('campaigns', 'advertisements', 'brands').\n","enum":["Campaign","LiveReadAd","TraditionalAd"],"example":"Campaign","type":"string"},"end_at":{"description":"The date and time when this rule stops being active.","format":"date-time","type":"string"},"priority":{"description":"The priority of this content rule.","example":1,"type":"integer"},"start_at":{"description":"The date and time when this rule becomes active.","format":"date-time","type":"string"}},"required":["priority"],"type":"object"},"relationships":{"properties":{"content":{"description":"Optional: The specific content associated with this rule. The type is the pluralized type of the content (i.e. advertisements, brands, or campaigns).","properties":{"data":{"description":"[JSON:API Resource Identifier Object](https://jsonapi.org/format/#document-resource-identifier-objects)","nullable":true,"properties":{"id":{"description":"The ID of the content.","example":"2613eb10-15dc-4874-a35e-e580e8cf7063","format":"uuid","type":"string"},"type":{"description":"The type of resource. This is the pluralized type of the content (i.e. `brands`, `campaigns`, `advertisements`)","example":"contents","type":"string"}},"type":"object"}},"type":"object"},"marker_point":{"description":"The marker point this content rule belongs to.","properties":{"data":{"description":"[JSON:API Resource Identifier Object](https://jsonapi.org/format/#document-resource-identifier-objects)","nullable":false,"properties":{"id":{"description":"The ID of the marker point.","example":"2613eb10-15dc-4874-a35e-e580e8cf7063","format":"uuid","type":"string"},"type":{"description":"The type of resource: `marker_points`","example":"marker_points","type":"string"}},"type":"object"}},"type":"object"}},"required":["marker_point"],"type":"object"},"type":{"description":"The type of resource. This is always `marker_point_content_rules`.","example":"marker_point_content_rules","type":"string"}},"required":["type","attributes","relationships"],"type":"object"}},"type":"object"}}],"responses":{"201":{"description":"Created","schema":{"properties":{"data":{"$ref":"#/definitions/MarkerPointContentRule"},"links":{"$ref":"#/definitions/ResourceLink"}},"type":"object"}},"401":{"$ref":"#/responses/unauthorized"},"403":{"$ref":"#/responses/forbidden"},"406":{"$ref":"#/responses/not_acceptable"},"415":{"$ref":"#/responses/unsupported_media_type"},"422":{"$ref":"#/responses/unprocessable_entity"},"429":{"$ref":"#/responses/rate_limit_exceeded"},"507":{"$ref":"#/responses/insufficient_storage"}},"security":[{"api_key":[]}],"summary":"Create a new marker point content rule","tags":["MarkerPointContentRule"]}},"/marker_point_content_rules/{id}":{"delete":{"description":"Delete a marker point content rule. Deleting all of the content rules for a marker will render the marker ineligible to serve ads.","parameters":[{"description":"The ID of the marker point content rule to delete","format":"uuid","in":"path","name":"id","required":true,"type":"string"}],"responses":{"204":{"description":"No Content\n\nThe resource has been deleted successfully.\n"},"401":{"$ref":"#/responses/unauthorized"},"403":{"$ref":"#/responses/forbidden"},"406":{"$ref":"#/responses/not_acceptable"},"429":{"$ref":"#/responses/rate_limit_exceeded"},"507":{"$ref":"#/responses/insufficient_storage"}},"security":[{"api_key":[]}],"summary":"Delete a marker point content rule","tags":["MarkerPointContentRule"]},"get":{"parameters":[{"description":"The ID of the marker point content rule resource to load.","example":"6bb474f9-3267-4182-bcfd-a67870f59601","format":"uuid","in":"path","name":"id","required":true,"type":"string"}],"produces":["application/vnd.api+json"],"responses":{"200":{"description":"Success","schema":{"properties":{"data":{"$ref":"#/definitions/MarkerPointContentRule"},"links":{"$ref":"#/definitions/ResourceLink"}},"type":"object"}},"401":{"$ref":"#/responses/unauthorized"},"403":{"$ref":"#/responses/forbidden"},"404":{"$ref":"#/responses/not_found"},"406":{"$ref":"#/responses/not_acceptable"},"429":{"$ref":"#/responses/rate_limit_exceeded"}},"security":[{"api_key":[]}],"summary":"Get a specific marker point content rule","tags":["MarkerPointContentRule"],"x-codeSamples":[{"label":"Ruby - Typhoeus","lang":"ruby","source":"response = Typhoeus.get(\n  \"https://art19.com/marker_point_content_rules/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\",\n  accept_encoding: 'gzip',\n  headers: {\n    Accept:        'application/vnd.api+json',\n    Authorization: 'Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"'\n  },\n  timeout: 10\n)\nif response.success?\n  # HTTP 2xx - JSON:API available to be parsed in response.body\nelsif response.timed_out?\n  # Request timed out\nelsif response.code.zero?\n  # cURL didn't get back an HTTP response, the reason is in response.return_message\nelse\n  # Other HTTP status, check response.code for which\nend\n"},{"label":"JavaScript - Fetch","lang":"javascript","source":"try {\n  const response = await fetch('https://art19.com/marker_point_content_rules/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5', {\n    headers: {\n      Accept:        'application/vnd.api+json',\n      Authorization: 'Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"'\n    }\n  });\n\n  if (response.ok) {\n    // Get the response body if HTTP-status is 200-299\n    const json = await response.json();\n  } else {\n    // HTTP request failed, handle error\n  }\n} catch(err) {\n  // A network error occured\n}\n"},{"label":"PHP - cURL","lang":"php","source":"<?php\n// Initialize a cURL resource for a request\n$request = curl_init();\n\ntry {\n  // Configure the cURL options\n  curl_setopt($request, CURLOPT_URL, 'https://art19.com/marker_point_content_rules/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5');\n  curl_setopt($request, CURLOPT_FOLLOWLOCATION, true);\n  curl_setopt($request, CURLOPT_RETURNTRANSFER, true);\n  curl_setopt($request, CURLOPT_ENCODING, '');\n  curl_setopt($request, CURLOPT_HTTPHEADER, array(\n    'Accept: application/vnd.api+json',\n    'Authorization: Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"'\n  ));\n\n  // Execute the request and grab all status information\n  $output = curl_exec($request);\n  $info   = curl_getinfo($request);\n  $code   = $info['http_code'];\n\n  if ($code >= 200 && $code < 300) {\n    // HTTP 2xx - JSON:API response available to be parsed in $output\n    $json = json_decode($output);\n  } else if ($code >= 400 && $code < 500) {\n    // HTTP 4xx - Client error; JSON:API response evt. available to be parsed in $output\n    if (strlen($output) > 0) {\n      $errors = json_decode($output);\n    }\n  } else {\n    // Other HTTP status, treat according to workflow\n  }\n} finally {\n  // Free up the resource to clear out memory\n  curl_close($request);\n}\n?>\n"},{"label":"cURL","lang":"shell","source":"curl 'https://art19.com/marker_point_content_rules/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5' \\\n  -H 'accept: application/vnd.api+json' \\\n  -H 'authorization: Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"' \\\n  --compressed\n"}]},"patch":{"consumes":["application/vnd.api+json"],"description":"Update an existing marker point content rule. Marker point content rules can only be updated on marker points belonging to episode versions with `inactive` or `draft` status, not on `active` or `processing` episode versions.\n\nFor an update request to succeed, your credential must have admin permission with the series that owns the marker point.\n","parameters":[{"in":"body","name":"body","required":true,"schema":{"properties":{"data":{"properties":{"attributes":{"properties":{"content_type":{"description":"The type of content this rule applies to. Campaign refers to \"All Live Reads and Spots\", LiveReadAd refers to \"All Live Reads\", TraditionalAd refers to \"All Spots\". \n\nTo target all ads of a specific type, set content_type to one of these values. To target a specific brand, campaign, or advertisement, use the `content` relationship instead and set the content type based on the associated resource type ('campaigns', 'advertisements', 'brands').\n","enum":["Campaign","LiveReadAd","TraditionalAd"],"example":"Campaign","type":"string"},"end_at":{"description":"The date and time when this rule stops being active.","format":"date-time","type":"string"},"priority":{"description":"The priority of this content rule.","example":1,"type":"integer"},"start_at":{"description":"The date and time when this rule becomes active.","format":"date-time","type":"string"}},"type":"object"},"id":{"example":"c1fbb1bf-45b1-4803-986e-123166f7f427","format":"uuid","type":"string"},"relationships":{"properties":{"content":{"description":"Optional: The specific content associated with this rule. The type is the pluralized type of the content (i.e. advertisements, brands, or campaigns).","properties":{"data":{"description":"[JSON:API Resource Identifier Object](https://jsonapi.org/format/#document-resource-identifier-objects)","nullable":true,"properties":{"id":{"description":"The ID of the content.","example":"2613eb10-15dc-4874-a35e-e580e8cf7063","format":"uuid","type":"string"},"type":{"description":"The type of resource. This is the pluralized type of the content (i.e. `brands`, `campaigns`, `advertisements`)","example":"contents","type":"string"}},"type":"object"}},"type":"object"}},"type":"object"},"type":{"description":"The type of resource. This is always `marker_point_content_rules`.","example":"marker_point_content_rules","type":"string"}},"required":["type","id","attributes"],"type":"object"}},"type":"object"}}],"responses":{"200":{"description":"Success","schema":{"properties":{"data":{"$ref":"#/definitions/MarkerPointContentRule"},"links":{"$ref":"#/definitions/ResourceLink"}},"type":"object"}},"401":{"$ref":"#/responses/unauthorized"},"403":{"$ref":"#/responses/forbidden"},"406":{"$ref":"#/responses/not_acceptable"},"415":{"$ref":"#/responses/unsupported_media_type"},"422":{"$ref":"#/responses/unprocessable_entity"},"429":{"$ref":"#/responses/rate_limit_exceeded"},"507":{"$ref":"#/responses/insufficient_storage"}},"security":[{"api_key":[]}],"summary":"Update a marker point content rule","tags":["MarkerPointContentRule"]}},"/media_assets":{"get":{"description":"A media asset is part of a collection of assets or files representing an image or a piece of audio content\nlike an episode or an ad. Images, for example, have differently sized versions for better rendering performance,\nand a piece of audio content usually comes in different encoding formats.\n\nThe `style` attribute of a media asset describes the role an asset plays in the context of the collection.\nThe collection is what an asset is attached to (`attachment_id|type`).\n\n## Styles for Images\n\nMost media assets use square images. You may upload and use a square image, or upload an image of any\nshape and crop it to a square by specifying the cropping area. This area – identified by a coordinate\n`x, y` and a `width` & `height` – is the portion of the image used for all cover art. If an image has\ncropping defined, the cropped version of the image will be used in any `regular` or `square` style of media\nasset. If the original file is rectangular and does not have cropping, then the system will use a squared\nversion of the original file with the smaller of width or height as the square size.\n\nThe original image as uploaded into the system is always retained unmodified and available through\nthe style `original`. All media asset styles except `stripped-original` consist of the cropped image.\n\nAn image has media assets with the following styles:\n\n- `original`: This is the original file provided. May not be available, depending on permissions\n  and file type.\n- `stripped-original`: The original file with all metadata (EXIF, XMP, PNG metadata, etc.) removed.\n  This should be used for any application needing the original, uncropped, image.\n- `regular`: If the image has cropping defined, this is the cropped image.\n  If not, this is a square version of the original.\n- `thumb`: A square thumbnail of the image with a size of `100x100` pixels.\n- `square-400`: A square version of the image with a size of `400x400` pixels.\n- `square-640`: A square version of the image with a size of `640x640` pixels.\n- `square-888`: A square version of the image with a size of `888x888` pixels.\n- `square-3000`: A square version of the image with a size of `3000x3000` pixels.\n  This variant is only created if the cropped width & height are each at least 3000.\n- `itunes`: A square version of the image with a size of `1400x1400` pixels.\n\n### Preferred image used in feeds\n\nFor the main series image used in feeds, it is ideal to use the `square-3000` version.\nIf that is not available, the `itunes` version should be used instead.\n\n\n## Styles for Audio\n\n- `medium`: A medium-quality version of the audio asset in various formats.\n- `original`: This is the original file provided. May not be available, depending on permissions\n  and file type.\n- `waveform_data`: The generated BBC Audiowaveform data in JSON or binary format.\n\n","parameters":[{"description":"Must also use the `attachment_type` param: limit the result to media assets owned by this attachment.","example":"7ebd702d-07c8-4da9-a7a8-cf18ec414d5c","format":"uuid","in":"query","name":"attachment_id","type":"string"},{"description":"Must also use the `attachment_id` param: limit the result to media assets owned by this attachment.","example":"Image","in":"query","name":"attachment_type","type":"string"},{"description":"Limit the result to media assets with this style.","enum":["info","itunes","medium","original","regular","square-400","square-640","square-888","square-3000","stripped-original","thumb","waveform_data"],"example":"regular","in":"query","name":"style","type":"string"},{"collectionFormat":"multi","description":"The list of IDs to filter by. Repeat this parameter for each ID you want to include in the filter.\nThe brackets *MUST* be percent-encoded, per the requirements in\n[RFC 3986 § 3.4](https://tools.ietf.org/html/rfc3986#section-3.4).\n","in":"query","items":{"format":"uuid","type":"string"},"name":"ids[]","required":true,"type":"array","uniqueItems":true}],"produces":["application/vnd.api+json"],"responses":{"200":{"description":"Success","schema":{"properties":{"data":{"items":{"$ref":"#/definitions/MediaAsset"},"type":"array"},"links":{"$ref":"#/definitions/Links"}},"type":"object"}},"400":{"description":"Bad Request\n\nParameters requiring a specific format must adhere to that format.\nPagination must have a positive page number and a page size no larger than 100. \n","schema":{"properties":{"errors":{"description":"An error object describing the problem. Please check out the\n[JSON:API Error document reference](https://jsonapi.org/format/#error-objects) for a full\ndescription of the returned object.\n","items":{"properties":{"code":{"description":"An application-specific error code, expressed as a string value","type":"string"},"detail":{"description":"A human-readable explanation specific to this occurrence of the problem. Like title, this field's value can be localized.\n","example":"Required query parameter \"series_id\" is missing","type":"string"},"source":{"description":"An object containing references to the source of the error, optionally including any of the following members.\n","nullable":true,"properties":{"parameter":{"description":"A string indicating which URI query parameter caused the error.","example":"series_id","type":"string"},"pointer":{"description":"A JSON Pointer [RFC6901](https://tools.ietf.org/html/rfc6901) to the associated entity in the request document (e.g. `/data` for a primary data object, or `/data/attributes/title` for a specific attribute).\n","example":"/data/attributes/name","type":"string"}},"type":"object"},"status":{"description":"The HTTP status code applicable to this problem, expressed as a string value: 400","example":"400","type":"string"},"title":{"description":"A short, human-readable summary of the problem that SHOULD NOT change from occurrence to occurrence of the\nproblem, except for purposes of localization.\n","example":"Bad Request","type":"string"}},"type":"object"},"type":"array"}},"type":"object"}},"401":{"$ref":"#/responses/unauthorized"},"403":{"$ref":"#/responses/forbidden"},"406":{"$ref":"#/responses/not_acceptable"},"429":{"$ref":"#/responses/rate_limit_exceeded"}},"security":[{"api_key":[]}],"summary":"Get a list of media assets","tags":["MediaAsset"],"x-codeSamples":[{"label":"Ruby - Typhoeus","lang":"ruby","source":"response = Typhoeus.get(\n  \"https://art19.com/media_assets\",\n  accept_encoding: 'gzip',\n  headers: {\n    Accept:        'application/vnd.api+json',\n    Authorization: 'Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"'\n  },\n  params: {\n    # add filters if desired\n    page: { number: 1, size: 25 }\n  },\n  timeout: 10\n)\nif response.success?\n  # HTTP 2xx - JSON:API available to be parsed in response.body\nelsif response.timed_out?\n  # Request timed out\nelsif response.code.zero?\n  # cURL didn't get back an HTTP response, the reason is in response.return_message\nelse\n  # Other HTTP status, check response.code for which\nend\n"},{"label":"JavaScript - Fetch","lang":"javascript","source":"try {\n  const response = await fetch('https://art19.com/media_assets?page%5Bnumber%5D=1&page%5Bsize%5D=25', {\n    headers: {\n      Accept:        'application/vnd.api+json',\n      Authorization: 'Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"'\n    }\n  });\n\n  if (response.ok) {\n    // Get the response body if HTTP-status is 200-299\n    const json = await response.json();\n  } else {\n    // HTTP request failed, handle error\n  }\n} catch(err) {\n  // A network error occured\n}\n"},{"label":"PHP - cURL","lang":"php","source":"<?php\n// Initialize a cURL resource for a request\n$request = curl_init();\n\ntry {\n  // The API endpoint to request data from\n  $url = array('https://art19.com/media_assets');\n\n  // Provide extra parameters like filters or pagination to the request\n  $url[] = http_build_query(array(\n    'page' => array('number' => 1, 'size' => 25)\n  ));\n\n  // Configure the cURL options\n  curl_setopt($request, CURLOPT_URL, implode('?', $url));\n  curl_setopt($request, CURLOPT_FOLLOWLOCATION, true);\n  curl_setopt($request, CURLOPT_RETURNTRANSFER, true);\n  curl_setopt($request, CURLOPT_ENCODING, '');\n  curl_setopt($request, CURLOPT_HTTPHEADER, array(\n    'Accept: application/vnd.api+json',\n    'Authorization: Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"'\n  ));\n\n  // Execute the request and grab all status information\n  $output = curl_exec($request);\n  $info   = curl_getinfo($request);\n  $code   = $info['http_code'];\n\n  if ($code >= 200 && $code < 300) {\n    // HTTP 2xx - JSON:API response available to be parsed in $output\n    $json = json_decode($output);\n  } else if ($code >= 400 && $code < 500) {\n    // HTTP 4xx - Client error; JSON:API response evt. available to be parsed in $output\n    if (strlen($output) > 0) {\n      $errors = json_decode($output);\n    }\n  } else {\n    // Other HTTP status, treat according to workflow\n  }\n} finally {\n  // Free up the resource to clear out memory\n  curl_close($request);\n}\n?>\n"},{"label":"cURL","lang":"shell","source":"curl 'https://art19.com/media_assets?page%5Bnumber%5D=1&page%5Bsize%5D=25' \\\n  -H 'accept: application/vnd.api+json' \\\n  -H 'authorization: Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"' \\\n  --compressed\n"}]}},"/media_assets/{id}":{"get":{"description":"A media asset is part of a collection of assets or files representing an image or a piece of audio content\nlike an episode or an ad. Images, for example, have differently sized versions for better rendering performance,\nand a piece of audio content usually comes in different encoding formats.\n\nThe `style` attribute of a media asset describes the role an asset plays in the context of the collection.\nThe collection is what an asset is attached to (`attachment_id|type`).\n\n## Styles for Images\n\nMost media assets use square images. You may upload and use a square image, or upload an image of any\nshape and crop it to a square by specifying the cropping area. This area – identified by a coordinate\n`x, y` and a `width` & `height` – is the portion of the image used for all cover art. If an image has\ncropping defined, the cropped version of the image will be used in any `regular` or `square` style of media\nasset. If the original file is rectangular and does not have cropping, then the system will use a squared\nversion of the original file with the smaller of width or height as the square size.\n\nThe original image as uploaded into the system is always retained unmodified and available through\nthe style `original`. All media asset styles except `stripped-original` consist of the cropped image.\n\nAn image has media assets with the following styles:\n\n- `original`: This is the original file provided. May not be available, depending on permissions\n  and file type.\n- `stripped-original`: The original file with all metadata (EXIF, XMP, PNG metadata, etc.) removed.\n  This should be used for any application needing the original, uncropped, image.\n- `regular`: If the image has cropping defined, this is the cropped image.\n  If not, this is a square version of the original.\n- `thumb`: A square thumbnail of the image with a size of `100x100` pixels.\n- `square-400`: A square version of the image with a size of `400x400` pixels.\n- `square-640`: A square version of the image with a size of `640x640` pixels.\n- `square-888`: A square version of the image with a size of `888x888` pixels.\n- `square-3000`: A square version of the image with a size of `3000x3000` pixels.\n  This variant is only created if the cropped width & height are each at least 3000.\n- `itunes`: A square version of the image with a size of `1400x1400` pixels.\n\n### Preferred image used in feeds\n\nFor the main series image used in feeds, it is ideal to use the `square-3000` version.\nIf that is not available, the `itunes` version should be used instead.\n\n\n## Styles for Audio\n\n- `medium`: A medium-quality version of the audio asset in various formats.\n- `original`: This is the original file provided. May not be available, depending on permissions\n  and file type.\n- `waveform_data`: The generated BBC Audiowaveform data in JSON or binary format.\n\n","parameters":[{"description":"The ID of the media asset resource to load.","example":"6bb474f9-3267-4182-bcfd-a67870f59601","format":"uuid","in":"path","name":"id","required":true,"type":"string"}],"produces":["application/vnd.api+json"],"responses":{"200":{"description":"Success","schema":{"properties":{"data":{"$ref":"#/definitions/MediaAsset"},"links":{"$ref":"#/definitions/ResourceLink"}},"type":"object"}},"401":{"$ref":"#/responses/unauthorized"},"403":{"$ref":"#/responses/forbidden"},"404":{"$ref":"#/responses/not_found"},"406":{"$ref":"#/responses/not_acceptable"},"429":{"$ref":"#/responses/rate_limit_exceeded"}},"security":[{"api_key":[]}],"summary":"Get a specific media asset","tags":["MediaAsset"],"x-codeSamples":[{"label":"Ruby - Typhoeus","lang":"ruby","source":"response = Typhoeus.get(\n  \"https://art19.com/media_assets/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\",\n  accept_encoding: 'gzip',\n  headers: {\n    Accept:        'application/vnd.api+json',\n    Authorization: 'Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"'\n  },\n  timeout: 10\n)\nif response.success?\n  # HTTP 2xx - JSON:API available to be parsed in response.body\nelsif response.timed_out?\n  # Request timed out\nelsif response.code.zero?\n  # cURL didn't get back an HTTP response, the reason is in response.return_message\nelse\n  # Other HTTP status, check response.code for which\nend\n"},{"label":"JavaScript - Fetch","lang":"javascript","source":"try {\n  const response = await fetch('https://art19.com/media_assets/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5', {\n    headers: {\n      Accept:        'application/vnd.api+json',\n      Authorization: 'Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"'\n    }\n  });\n\n  if (response.ok) {\n    // Get the response body if HTTP-status is 200-299\n    const json = await response.json();\n  } else {\n    // HTTP request failed, handle error\n  }\n} catch(err) {\n  // A network error occured\n}\n"},{"label":"PHP - cURL","lang":"php","source":"<?php\n// Initialize a cURL resource for a request\n$request = curl_init();\n\ntry {\n  // Configure the cURL options\n  curl_setopt($request, CURLOPT_URL, 'https://art19.com/media_assets/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5');\n  curl_setopt($request, CURLOPT_FOLLOWLOCATION, true);\n  curl_setopt($request, CURLOPT_RETURNTRANSFER, true);\n  curl_setopt($request, CURLOPT_ENCODING, '');\n  curl_setopt($request, CURLOPT_HTTPHEADER, array(\n    'Accept: application/vnd.api+json',\n    'Authorization: Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"'\n  ));\n\n  // Execute the request and grab all status information\n  $output = curl_exec($request);\n  $info   = curl_getinfo($request);\n  $code   = $info['http_code'];\n\n  if ($code >= 200 && $code < 300) {\n    // HTTP 2xx - JSON:API response available to be parsed in $output\n    $json = json_decode($output);\n  } else if ($code >= 400 && $code < 500) {\n    // HTTP 4xx - Client error; JSON:API response evt. available to be parsed in $output\n    if (strlen($output) > 0) {\n      $errors = json_decode($output);\n    }\n  } else {\n    // Other HTTP status, treat according to workflow\n  }\n} finally {\n  // Free up the resource to clear out memory\n  curl_close($request);\n}\n?>\n"},{"label":"cURL","lang":"shell","source":"curl 'https://art19.com/media_assets/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5' \\\n  -H 'accept: application/vnd.api+json' \\\n  -H 'authorization: Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"' \\\n  --compressed\n"}]}},"/media_ratings":{"get":{"description":"Retrieve a list of available media ratings.","parameters":[{"collectionFormat":"multi","description":"The list of IDs to filter by. Repeat this parameter for each ID you want to include in the filter.\nThe brackets *MUST* be percent-encoded, per the requirements in\n[RFC 3986 § 3.4](https://tools.ietf.org/html/rfc3986#section-3.4).\n","in":"query","items":{"format":"uuid","type":"string"},"name":"ids[]","required":false,"type":"array","uniqueItems":true},{"description":"Select which page number to receive results for. Pages are numbered starting at 1.\n\n","in":"query","minimum":1,"name":"page[number]","required":"true","type":"integer"},{"description":"Indicate how many records to return per page. The maximum is 100.\n\n","in":"query","maximum":100,"minimum":1,"name":"page[size]","required":"true","type":"integer"},{"description":"Limit the result to media ratings with a value containing this parameter in a case-insensitive way.","in":"query","name":"q","type":"string"}],"produces":["application/vnd.api+json"],"responses":{"200":{"description":"Success","schema":{"properties":{"data":{"items":{"$ref":"#/definitions/MediaRating"},"type":"array"},"links":{"$ref":"#/definitions/Links"}},"type":"object"}},"400":{"description":"Bad Request\n\nParameters requiring a specific format must adhere to that format.\nPagination must be present and have a positive page number and a page size no larger than 100. \n","schema":{"properties":{"errors":{"description":"An error object describing the problem. Please check out the\n[JSON:API Error document reference](https://jsonapi.org/format/#error-objects) for a full\ndescription of the returned object.\n","items":{"properties":{"code":{"description":"An application-specific error code, expressed as a string value","type":"string"},"detail":{"description":"A human-readable explanation specific to this occurrence of the problem. Like title, this field's value can be localized.\n","example":"Required query parameter \"series_id\" is missing","type":"string"},"source":{"description":"An object containing references to the source of the error, optionally including any of the following members.\n","nullable":true,"properties":{"parameter":{"description":"A string indicating which URI query parameter caused the error.","example":"series_id","type":"string"},"pointer":{"description":"A JSON Pointer [RFC6901](https://tools.ietf.org/html/rfc6901) to the associated entity in the request document (e.g. `/data` for a primary data object, or `/data/attributes/title` for a specific attribute).\n","example":"/data/attributes/name","type":"string"}},"type":"object"},"status":{"description":"The HTTP status code applicable to this problem, expressed as a string value: 400","example":"400","type":"string"},"title":{"description":"A short, human-readable summary of the problem that SHOULD NOT change from occurrence to occurrence of the\nproblem, except for purposes of localization.\n","example":"Bad Request","type":"string"}},"type":"object"},"type":"array"}},"type":"object"}},"401":{"$ref":"#/responses/unauthorized"},"403":{"$ref":"#/responses/forbidden"},"406":{"$ref":"#/responses/not_acceptable"},"429":{"$ref":"#/responses/rate_limit_exceeded"}},"security":[{"api_key":[]}],"summary":"Get a list of media ratings","tags":["MediaRating"],"x-codeSamples":[{"label":"Ruby - Typhoeus","lang":"ruby","source":"response = Typhoeus.get(\n  \"https://art19.com/media_ratings\",\n  accept_encoding: 'gzip',\n  headers: {\n    Accept:        'application/vnd.api+json',\n    Authorization: 'Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"'\n  },\n  params: {\n    # add filters if desired\n    page: { number: 1, size: 25 }\n  },\n  timeout: 10\n)\nif response.success?\n  # HTTP 2xx - JSON:API available to be parsed in response.body\nelsif response.timed_out?\n  # Request timed out\nelsif response.code.zero?\n  # cURL didn't get back an HTTP response, the reason is in response.return_message\nelse\n  # Other HTTP status, check response.code for which\nend\n"},{"label":"JavaScript - Fetch","lang":"javascript","source":"try {\n  const response = await fetch('https://art19.com/media_ratings?page%5Bnumber%5D=1&page%5Bsize%5D=25', {\n    headers: {\n      Accept:        'application/vnd.api+json',\n      Authorization: 'Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"'\n    }\n  });\n\n  if (response.ok) {\n    // Get the response body if HTTP-status is 200-299\n    const json = await response.json();\n  } else {\n    // HTTP request failed, handle error\n  }\n} catch(err) {\n  // A network error occured\n}\n"},{"label":"PHP - cURL","lang":"php","source":"<?php\n// Initialize a cURL resource for a request\n$request = curl_init();\n\ntry {\n  // The API endpoint to request data from\n  $url = array('https://art19.com/media_ratings');\n\n  // Provide extra parameters like filters or pagination to the request\n  $url[] = http_build_query(array(\n    'page' => array('number' => 1, 'size' => 25)\n  ));\n\n  // Configure the cURL options\n  curl_setopt($request, CURLOPT_URL, implode('?', $url));\n  curl_setopt($request, CURLOPT_FOLLOWLOCATION, true);\n  curl_setopt($request, CURLOPT_RETURNTRANSFER, true);\n  curl_setopt($request, CURLOPT_ENCODING, '');\n  curl_setopt($request, CURLOPT_HTTPHEADER, array(\n    'Accept: application/vnd.api+json',\n    'Authorization: Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"'\n  ));\n\n  // Execute the request and grab all status information\n  $output = curl_exec($request);\n  $info   = curl_getinfo($request);\n  $code   = $info['http_code'];\n\n  if ($code >= 200 && $code < 300) {\n    // HTTP 2xx - JSON:API response available to be parsed in $output\n    $json = json_decode($output);\n  } else if ($code >= 400 && $code < 500) {\n    // HTTP 4xx - Client error; JSON:API response evt. available to be parsed in $output\n    if (strlen($output) > 0) {\n      $errors = json_decode($output);\n    }\n  } else {\n    // Other HTTP status, treat according to workflow\n  }\n} finally {\n  // Free up the resource to clear out memory\n  curl_close($request);\n}\n?>\n"},{"label":"cURL","lang":"shell","source":"curl 'https://art19.com/media_ratings?page%5Bnumber%5D=1&page%5Bsize%5D=25' \\\n  -H 'accept: application/vnd.api+json' \\\n  -H 'authorization: Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"' \\\n  --compressed\n"}]}},"/media_ratings/{id}":{"get":{"parameters":[{"description":"The ID of the media rating resource to load.","example":"6bb474f9-3267-4182-bcfd-a67870f59601","format":"uuid","in":"path","name":"id","required":true,"type":"string"}],"produces":["application/vnd.api+json"],"responses":{"200":{"description":"Success","schema":{"properties":{"data":{"$ref":"#/definitions/MediaRating"},"links":{"$ref":"#/definitions/ResourceLink"}},"type":"object"}},"401":{"$ref":"#/responses/unauthorized"},"403":{"$ref":"#/responses/forbidden"},"404":{"$ref":"#/responses/not_found"},"406":{"$ref":"#/responses/not_acceptable"},"429":{"$ref":"#/responses/rate_limit_exceeded"}},"security":[{"api_key":[]}],"summary":"Get a specific media rating","tags":["MediaRating"],"x-codeSamples":[{"label":"Ruby - Typhoeus","lang":"ruby","source":"response = Typhoeus.get(\n  \"https://art19.com/media_ratings/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\",\n  accept_encoding: 'gzip',\n  headers: {\n    Accept:        'application/vnd.api+json',\n    Authorization: 'Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"'\n  },\n  timeout: 10\n)\nif response.success?\n  # HTTP 2xx - JSON:API available to be parsed in response.body\nelsif response.timed_out?\n  # Request timed out\nelsif response.code.zero?\n  # cURL didn't get back an HTTP response, the reason is in response.return_message\nelse\n  # Other HTTP status, check response.code for which\nend\n"},{"label":"JavaScript - Fetch","lang":"javascript","source":"try {\n  const response = await fetch('https://art19.com/media_ratings/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5', {\n    headers: {\n      Accept:        'application/vnd.api+json',\n      Authorization: 'Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"'\n    }\n  });\n\n  if (response.ok) {\n    // Get the response body if HTTP-status is 200-299\n    const json = await response.json();\n  } else {\n    // HTTP request failed, handle error\n  }\n} catch(err) {\n  // A network error occured\n}\n"},{"label":"PHP - cURL","lang":"php","source":"<?php\n// Initialize a cURL resource for a request\n$request = curl_init();\n\ntry {\n  // Configure the cURL options\n  curl_setopt($request, CURLOPT_URL, 'https://art19.com/media_ratings/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5');\n  curl_setopt($request, CURLOPT_FOLLOWLOCATION, true);\n  curl_setopt($request, CURLOPT_RETURNTRANSFER, true);\n  curl_setopt($request, CURLOPT_ENCODING, '');\n  curl_setopt($request, CURLOPT_HTTPHEADER, array(\n    'Accept: application/vnd.api+json',\n    'Authorization: Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"'\n  ));\n\n  // Execute the request and grab all status information\n  $output = curl_exec($request);\n  $info   = curl_getinfo($request);\n  $code   = $info['http_code'];\n\n  if ($code >= 200 && $code < 300) {\n    // HTTP 2xx - JSON:API response available to be parsed in $output\n    $json = json_decode($output);\n  } else if ($code >= 400 && $code < 500) {\n    // HTTP 4xx - Client error; JSON:API response evt. available to be parsed in $output\n    if (strlen($output) > 0) {\n      $errors = json_decode($output);\n    }\n  } else {\n    // Other HTTP status, treat according to workflow\n  }\n} finally {\n  // Free up the resource to clear out memory\n  curl_close($request);\n}\n?>\n"},{"label":"cURL","lang":"shell","source":"curl 'https://art19.com/media_ratings/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5' \\\n  -H 'accept: application/vnd.api+json' \\\n  -H 'authorization: Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"' \\\n  --compressed\n"}]}},"/episodes/{id}/relationships/media_ratings":{"delete":{"description":"Remove one or more media_rating associations from a specific episode. Requires a request body containing resource identifier objects.","parameters":[{"description":"The ID of the episode.","example":"c1fbb1bf-45b1-4803-986e-123166f7f427","format":"uuid","in":"path","name":"id","required":true,"type":"string"},{"description":"Request body containing resource identifier objects for media_ratings to remove.","in":"body","name":"body","required":true,"schema":{"properties":{"data":{"items":{"properties":{"id":{"description":"The ID of the media_rating to remove.","example":"c1fbb1bf-45b1-4803-986e-123166f7f427","format":"uuid","type":"string"},"type":{"description":"The type of resource. This is always `media_ratings`.","example":"media_ratings","type":"string"}}},"type":"array"}}}}],"responses":{"204":{"description":"No Content - Relationship successfully removed"},"400":{"description":"Bad Request - Invalid request body format or missing required data"},"422":{"$ref":"#/responses/unprocessable_entity"}},"security":[{"api_key":[]}],"summary":"Remove media_rating associations from a episode","tags":["MediaRating"]},"get":{"description":"Retrieve the media_rating resource identifier objects (IDs and types) associated with a specific episode. Returns a paginated list of resource identifiers (IDs and types), not full media_rating resources.","parameters":[{"description":"The ID of the episode.","example":"c1fbb1bf-45b1-4803-986e-123166f7f427","format":"uuid","in":"path","name":"id","required":true,"type":"string"},{"description":"Select which page number to receive results for. Pages are numbered starting at 1.\n\n","in":"query","minimum":1,"name":"page[number]","required":"true","type":"integer"},{"description":"Indicate how many records to return per page. The maximum is 100.\n\n","in":"query","maximum":100,"minimum":1,"name":"page[size]","required":"true","type":"integer"}],"produces":["application/vnd.api+json"],"responses":{"200":{"description":"Success","schema":{"properties":{"data":{"items":{"properties":{"id":{"description":"The ID of the media_rating.","example":"c1fbb1bf-45b1-4803-986e-123166f7f427","format":"uuid","type":"string"},"type":{"description":"The type of resource: `media_ratings`","example":"media_ratings","type":"string"}}},"type":"array"},"links":{"$ref":"#/definitions/Links"}}}},"400":{"description":"Bad Request - Pagination must be present and have a positive page number and a page size no larger than 100"}},"security":[{"api_key":[]}],"summary":"Get media_ratings for a specific episode","tags":["MediaRating"]},"post":{"consumes":["application/vnd.api+json"],"description":"Associate one or more media_ratings with a specific episode. Requires a request body containing resource identifier objects.","parameters":[{"description":"The ID of the episode.","example":"c1fbb1bf-45b1-4803-986e-123166f7f427","format":"uuid","in":"path","name":"id","required":true,"type":"string"},{"description":"Request body containing resource identifier objects for media_ratings to associate.","in":"body","name":"body","required":true,"schema":{"properties":{"data":{"items":{"properties":{"id":{"description":"The ID of the media_rating to associate.","example":"c1fbb1bf-45b1-4803-986e-123166f7f427","format":"uuid","type":"string"},"type":{"description":"The type of resource. This is always `media_ratings`.","example":"media_ratings","type":"string"}}},"type":"array"}}}}],"responses":{"204":{"description":"No Content - Relationship successfully created"},"400":{"description":"Bad Request - Invalid request body format or missing required data"},"422":{"$ref":"#/responses/unprocessable_entity"}},"security":[{"api_key":[]}],"summary":"Associate media_ratings with a episode","tags":["MediaRating"]}},"/seasons/{id}/relationships/media_ratings":{"delete":{"description":"Remove one or more media_rating associations from a specific season. Requires a request body containing resource identifier objects.","parameters":[{"description":"The ID of the season.","example":"c1fbb1bf-45b1-4803-986e-123166f7f427","format":"uuid","in":"path","name":"id","required":true,"type":"string"},{"description":"Request body containing resource identifier objects for media_ratings to remove.","in":"body","name":"body","required":true,"schema":{"properties":{"data":{"items":{"properties":{"id":{"description":"The ID of the media_rating to remove.","example":"c1fbb1bf-45b1-4803-986e-123166f7f427","format":"uuid","type":"string"},"type":{"description":"The type of resource. This is always `media_ratings`.","example":"media_ratings","type":"string"}}},"type":"array"}}}}],"responses":{"204":{"description":"No Content - Relationship successfully removed"},"400":{"description":"Bad Request - Invalid request body format or missing required data"},"422":{"$ref":"#/responses/unprocessable_entity"}},"security":[{"api_key":[]}],"summary":"Remove media_rating associations from a season","tags":["MediaRating"]},"get":{"description":"Retrieve the media_rating resource identifier objects (IDs and types) associated with a specific season. Returns a paginated list of resource identifiers (IDs and types), not full media_rating resources.","parameters":[{"description":"The ID of the season.","example":"c1fbb1bf-45b1-4803-986e-123166f7f427","format":"uuid","in":"path","name":"id","required":true,"type":"string"},{"description":"Select which page number to receive results for. Pages are numbered starting at 1.\n\n","in":"query","minimum":1,"name":"page[number]","required":"true","type":"integer"},{"description":"Indicate how many records to return per page. The maximum is 100.\n\n","in":"query","maximum":100,"minimum":1,"name":"page[size]","required":"true","type":"integer"}],"produces":["application/vnd.api+json"],"responses":{"200":{"description":"Success","schema":{"properties":{"data":{"items":{"properties":{"id":{"description":"The ID of the media_rating.","example":"c1fbb1bf-45b1-4803-986e-123166f7f427","format":"uuid","type":"string"},"type":{"description":"The type of resource: `media_ratings`","example":"media_ratings","type":"string"}}},"type":"array"},"links":{"$ref":"#/definitions/Links"}}}},"400":{"description":"Bad Request - Pagination must be present and have a positive page number and a page size no larger than 100"}},"security":[{"api_key":[]}],"summary":"Get media_ratings for a specific season","tags":["MediaRating"]},"post":{"consumes":["application/vnd.api+json"],"description":"Associate one or more media_ratings with a specific season. Requires a request body containing resource identifier objects.","parameters":[{"description":"The ID of the season.","example":"c1fbb1bf-45b1-4803-986e-123166f7f427","format":"uuid","in":"path","name":"id","required":true,"type":"string"},{"description":"Request body containing resource identifier objects for media_ratings to associate.","in":"body","name":"body","required":true,"schema":{"properties":{"data":{"items":{"properties":{"id":{"description":"The ID of the media_rating to associate.","example":"c1fbb1bf-45b1-4803-986e-123166f7f427","format":"uuid","type":"string"},"type":{"description":"The type of resource. This is always `media_ratings`.","example":"media_ratings","type":"string"}}},"type":"array"}}}}],"responses":{"204":{"description":"No Content - Relationship successfully created"},"400":{"description":"Bad Request - Invalid request body format or missing required data"},"422":{"$ref":"#/responses/unprocessable_entity"}},"security":[{"api_key":[]}],"summary":"Associate media_ratings with a season","tags":["MediaRating"]}},"/series/{id}/relationships/media_ratings":{"delete":{"description":"Remove one or more media_rating associations from a specific series. Requires a request body containing resource identifier objects.","parameters":[{"description":"The ID of the series.","example":"c1fbb1bf-45b1-4803-986e-123166f7f427","format":"uuid","in":"path","name":"id","required":true,"type":"string"},{"description":"Request body containing resource identifier objects for media_ratings to remove.","in":"body","name":"body","required":true,"schema":{"properties":{"data":{"items":{"properties":{"id":{"description":"The ID of the media_rating to remove.","example":"c1fbb1bf-45b1-4803-986e-123166f7f427","format":"uuid","type":"string"},"type":{"description":"The type of resource. This is always `media_ratings`.","example":"media_ratings","type":"string"}}},"type":"array"}}}}],"responses":{"204":{"description":"No Content - Relationship successfully removed"},"400":{"description":"Bad Request - Invalid request body format or missing required data"},"422":{"$ref":"#/responses/unprocessable_entity"}},"security":[{"api_key":[]}],"summary":"Remove media_rating associations from a series","tags":["MediaRating"]},"get":{"description":"Retrieve the media_rating resource identifier objects (IDs and types) associated with a specific series. Returns a paginated list of resource identifiers (IDs and types), not full media_rating resources.","parameters":[{"description":"The ID of the series.","example":"c1fbb1bf-45b1-4803-986e-123166f7f427","format":"uuid","in":"path","name":"id","required":true,"type":"string"},{"description":"Select which page number to receive results for. Pages are numbered starting at 1.\n\n","in":"query","minimum":1,"name":"page[number]","required":"true","type":"integer"},{"description":"Indicate how many records to return per page. The maximum is 100.\n\n","in":"query","maximum":100,"minimum":1,"name":"page[size]","required":"true","type":"integer"}],"produces":["application/vnd.api+json"],"responses":{"200":{"description":"Success","schema":{"properties":{"data":{"items":{"properties":{"id":{"description":"The ID of the media_rating.","example":"c1fbb1bf-45b1-4803-986e-123166f7f427","format":"uuid","type":"string"},"type":{"description":"The type of resource: `media_ratings`","example":"media_ratings","type":"string"}}},"type":"array"},"links":{"$ref":"#/definitions/Links"}}}},"400":{"description":"Bad Request - Pagination must be present and have a positive page number and a page size no larger than 100"}},"security":[{"api_key":[]}],"summary":"Get media_ratings for a specific series","tags":["MediaRating"]},"post":{"consumes":["application/vnd.api+json"],"description":"Associate one or more media_ratings with a specific series. Requires a request body containing resource identifier objects.","parameters":[{"description":"The ID of the series.","example":"c1fbb1bf-45b1-4803-986e-123166f7f427","format":"uuid","in":"path","name":"id","required":true,"type":"string"},{"description":"Request body containing resource identifier objects for media_ratings to associate.","in":"body","name":"body","required":true,"schema":{"properties":{"data":{"items":{"properties":{"id":{"description":"The ID of the media_rating to associate.","example":"c1fbb1bf-45b1-4803-986e-123166f7f427","format":"uuid","type":"string"},"type":{"description":"The type of resource. This is always `media_ratings`.","example":"media_ratings","type":"string"}}},"type":"array"}}}}],"responses":{"204":{"description":"No Content - Relationship successfully created"},"400":{"description":"Bad Request - Invalid request body format or missing required data"},"422":{"$ref":"#/responses/unprocessable_entity"}},"security":[{"api_key":[]}],"summary":"Associate media_ratings with a series","tags":["MediaRating"]}},"/networks":{"get":{"parameters":[{"collectionFormat":"multi","description":"The list of IDs to filter by. Repeat this parameter for each ID you want to include in the filter.\nThe brackets *MUST* be percent-encoded, per the requirements in\n[RFC 3986 § 3.4](https://tools.ietf.org/html/rfc3986#section-3.4).\n","in":"query","items":{"format":"uuid","type":"string"},"name":"ids[]","required":false,"type":"array","uniqueItems":true},{"description":"Select which page number to receive results for. Pages are numbered starting at 1.\n\n","in":"query","minimum":1,"name":"page[number]","type":"integer"},{"description":"Indicate how many records to return per page. The maximum is 100.\n\n","in":"query","maximum":100,"minimum":1,"name":"page[size]","type":"integer"},{"description":"Limit the result to networks with a name containing this parameter in a case-insensitive way.","in":"query","name":"q","type":"string"},{"description":"Limit the result to networks containing at least one series with an ad deal of this Ad Ops profile.\n","format":"uuid","in":"query","name":"ad_rep_account_id","type":"string"},{"collectionFormat":"csv","description":"Limit the result to networks containing at least one series with an ad deal matching one of the\nvalues in this parameter.\n","in":"query","items":{"enum":["active","inactive"],"type":"string"},"name":"ad_deal_status","type":"array"},{"description":"Limit the result to networks who are child networks of this parent.","format":"uuid","in":"query","name":"parent_id","type":"string"},{"collectionFormat":"csv","default":"name","description":"Specify how to sort the result. Please refer to either the top section or the\n[JSON:API specification](https://jsonapi.org/format/#fetching-sorting) on how sorting works in general.\n","in":"query","items":{"enum":["created_at","name","updated_at"],"type":"string"},"name":"sort","type":"array"}],"produces":["application/vnd.api+json"],"responses":{"200":{"description":"Success","schema":{"properties":{"data":{"items":{"$ref":"#/definitions/Network"},"type":"array"},"links":{"$ref":"#/definitions/Links"}},"type":"object"}},"400":{"description":"Bad Request\n\nParameters requiring a specific format must adhere to that format.\nPagination must have a positive page number and a page size no larger than 100. \n","schema":{"properties":{"errors":{"description":"An error object describing the problem. Please check out the\n[JSON:API Error document reference](https://jsonapi.org/format/#error-objects) for a full\ndescription of the returned object.\n","items":{"properties":{"code":{"description":"An application-specific error code, expressed as a string value","type":"string"},"detail":{"description":"A human-readable explanation specific to this occurrence of the problem. Like title, this field's value can be localized.\n","example":"Required query parameter \"series_id\" is missing","type":"string"},"source":{"description":"An object containing references to the source of the error, optionally including any of the following members.\n","nullable":true,"properties":{"parameter":{"description":"A string indicating which URI query parameter caused the error.","example":"series_id","type":"string"},"pointer":{"description":"A JSON Pointer [RFC6901](https://tools.ietf.org/html/rfc6901) to the associated entity in the request document (e.g. `/data` for a primary data object, or `/data/attributes/title` for a specific attribute).\n","example":"/data/attributes/name","type":"string"}},"type":"object"},"status":{"description":"The HTTP status code applicable to this problem, expressed as a string value: 400","example":"400","type":"string"},"title":{"description":"A short, human-readable summary of the problem that SHOULD NOT change from occurrence to occurrence of the\nproblem, except for purposes of localization.\n","example":"Bad Request","type":"string"}},"type":"object"},"type":"array"}},"type":"object"}},"401":{"$ref":"#/responses/unauthorized"},"403":{"$ref":"#/responses/forbidden"},"406":{"$ref":"#/responses/not_acceptable"},"429":{"$ref":"#/responses/rate_limit_exceeded"}},"security":[{"api_key":[]}],"summary":"Get a list of networks","tags":["Network"],"x-codeSamples":[{"label":"Ruby - Typhoeus","lang":"ruby","source":"response = Typhoeus.get(\n  \"https://art19.com/networks\",\n  accept_encoding: 'gzip',\n  headers: {\n    Accept:        'application/vnd.api+json',\n    Authorization: 'Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"'\n  },\n  params: {\n    # add filters if desired\n    page: { number: 1, size: 25 }\n  },\n  timeout: 10\n)\nif response.success?\n  # HTTP 2xx - JSON:API available to be parsed in response.body\nelsif response.timed_out?\n  # Request timed out\nelsif response.code.zero?\n  # cURL didn't get back an HTTP response, the reason is in response.return_message\nelse\n  # Other HTTP status, check response.code for which\nend\n"},{"label":"JavaScript - Fetch","lang":"javascript","source":"try {\n  const response = await fetch('https://art19.com/networks?page%5Bnumber%5D=1&page%5Bsize%5D=25', {\n    headers: {\n      Accept:        'application/vnd.api+json',\n      Authorization: 'Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"'\n    }\n  });\n\n  if (response.ok) {\n    // Get the response body if HTTP-status is 200-299\n    const json = await response.json();\n  } else {\n    // HTTP request failed, handle error\n  }\n} catch(err) {\n  // A network error occured\n}\n"},{"label":"PHP - cURL","lang":"php","source":"<?php\n// Initialize a cURL resource for a request\n$request = curl_init();\n\ntry {\n  // The API endpoint to request data from\n  $url = array('https://art19.com/networks');\n\n  // Provide extra parameters like filters or pagination to the request\n  $url[] = http_build_query(array(\n    'page' => array('number' => 1, 'size' => 25)\n  ));\n\n  // Configure the cURL options\n  curl_setopt($request, CURLOPT_URL, implode('?', $url));\n  curl_setopt($request, CURLOPT_FOLLOWLOCATION, true);\n  curl_setopt($request, CURLOPT_RETURNTRANSFER, true);\n  curl_setopt($request, CURLOPT_ENCODING, '');\n  curl_setopt($request, CURLOPT_HTTPHEADER, array(\n    'Accept: application/vnd.api+json',\n    'Authorization: Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"'\n  ));\n\n  // Execute the request and grab all status information\n  $output = curl_exec($request);\n  $info   = curl_getinfo($request);\n  $code   = $info['http_code'];\n\n  if ($code >= 200 && $code < 300) {\n    // HTTP 2xx - JSON:API response available to be parsed in $output\n    $json = json_decode($output);\n  } else if ($code >= 400 && $code < 500) {\n    // HTTP 4xx - Client error; JSON:API response evt. available to be parsed in $output\n    if (strlen($output) > 0) {\n      $errors = json_decode($output);\n    }\n  } else {\n    // Other HTTP status, treat according to workflow\n  }\n} finally {\n  // Free up the resource to clear out memory\n  curl_close($request);\n}\n?>\n"},{"label":"cURL","lang":"shell","source":"curl 'https://art19.com/networks?page%5Bnumber%5D=1&page%5Bsize%5D=25' \\\n  -H 'accept: application/vnd.api+json' \\\n  -H 'authorization: Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"' \\\n  --compressed\n"}]}},"/networks/{id}":{"get":{"parameters":[{"description":"The ID of the network resource to load.","example":"6bb474f9-3267-4182-bcfd-a67870f59601","format":"uuid","in":"path","name":"id","required":true,"type":"string"}],"produces":["application/vnd.api+json"],"responses":{"200":{"description":"Success","schema":{"properties":{"data":{"$ref":"#/definitions/Network"},"links":{"$ref":"#/definitions/ResourceLink"}},"type":"object"}},"401":{"$ref":"#/responses/unauthorized"},"403":{"$ref":"#/responses/forbidden"},"404":{"$ref":"#/responses/not_found"},"406":{"$ref":"#/responses/not_acceptable"},"429":{"$ref":"#/responses/rate_limit_exceeded"}},"security":[{"api_key":[]}],"summary":"Get a specific network","tags":["Network"],"x-codeSamples":[{"label":"Ruby - Typhoeus","lang":"ruby","source":"response = Typhoeus.get(\n  \"https://art19.com/networks/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\",\n  accept_encoding: 'gzip',\n  headers: {\n    Accept:        'application/vnd.api+json',\n    Authorization: 'Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"'\n  },\n  timeout: 10\n)\nif response.success?\n  # HTTP 2xx - JSON:API available to be parsed in response.body\nelsif response.timed_out?\n  # Request timed out\nelsif response.code.zero?\n  # cURL didn't get back an HTTP response, the reason is in response.return_message\nelse\n  # Other HTTP status, check response.code for which\nend\n"},{"label":"JavaScript - Fetch","lang":"javascript","source":"try {\n  const response = await fetch('https://art19.com/networks/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5', {\n    headers: {\n      Accept:        'application/vnd.api+json',\n      Authorization: 'Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"'\n    }\n  });\n\n  if (response.ok) {\n    // Get the response body if HTTP-status is 200-299\n    const json = await response.json();\n  } else {\n    // HTTP request failed, handle error\n  }\n} catch(err) {\n  // A network error occured\n}\n"},{"label":"PHP - cURL","lang":"php","source":"<?php\n// Initialize a cURL resource for a request\n$request = curl_init();\n\ntry {\n  // Configure the cURL options\n  curl_setopt($request, CURLOPT_URL, 'https://art19.com/networks/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5');\n  curl_setopt($request, CURLOPT_FOLLOWLOCATION, true);\n  curl_setopt($request, CURLOPT_RETURNTRANSFER, true);\n  curl_setopt($request, CURLOPT_ENCODING, '');\n  curl_setopt($request, CURLOPT_HTTPHEADER, array(\n    'Accept: application/vnd.api+json',\n    'Authorization: Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"'\n  ));\n\n  // Execute the request and grab all status information\n  $output = curl_exec($request);\n  $info   = curl_getinfo($request);\n  $code   = $info['http_code'];\n\n  if ($code >= 200 && $code < 300) {\n    // HTTP 2xx - JSON:API response available to be parsed in $output\n    $json = json_decode($output);\n  } else if ($code >= 400 && $code < 500) {\n    // HTTP 4xx - Client error; JSON:API response evt. available to be parsed in $output\n    if (strlen($output) > 0) {\n      $errors = json_decode($output);\n    }\n  } else {\n    // Other HTTP status, treat according to workflow\n  }\n} finally {\n  // Free up the resource to clear out memory\n  curl_close($request);\n}\n?>\n"},{"label":"cURL","lang":"shell","source":"curl 'https://art19.com/networks/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5' \\\n  -H 'accept: application/vnd.api+json' \\\n  -H 'authorization: Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"' \\\n  --compressed\n"}]},"patch":{"consumes":["application/vnd.api+json"],"description":"### Deprecations\n\n- The attribute `cover_image_id` has been replaced with the relationship `cover_image`\n  and will be removed from the response in a future release.\n\n\nFor an update request to succeed, your credential must have admin permission with the network.\n","parameters":[{"description":"Network to update.","in":"body","required":true,"schema":{"$ref":"#/definitions/NetworkUpdate"}}],"responses":{"200":{"description":"Success","schema":{"properties":{"data":{"$ref":"#/definitions/Network"},"links":{"$ref":"#/definitions/ResourceLink"}},"type":"object"}},"401":{"$ref":"#/responses/unauthorized"},"403":{"$ref":"#/responses/forbidden"},"406":{"$ref":"#/responses/not_acceptable"},"415":{"$ref":"#/responses/unsupported_media_type"},"422":{"$ref":"#/responses/unprocessable_entity"},"429":{"$ref":"#/responses/rate_limit_exceeded"},"507":{"$ref":"#/responses/insufficient_storage"}},"security":[{"api_key":[]}],"summary":"Update a specific network","tags":["Network"]}},"/networks/{id}.jpeg":{"get":{"description":"Redirects to the image file URL (CDN or S3). Convenience endpoint for direct media access.","operationId":"getNetworkImage","parameters":[{"description":"The UUID of the network","format":"uuid","in":"path","name":"id","required":true,"type":"string"},{"default":"regular","description":"The image style/size to retrieve","enum":["regular","thumb","square-400","square-640","square-888","square-3000","itunes"],"in":"query","name":"style","required":false,"type":"string"}],"produces":["image/jpeg"],"responses":{"302":{"description":"Redirect to image file URL (CDN or S3)","headers":{"Location":{"description":"The URL of the image file (CDN or S3)","format":"uri","type":"string"}}},"401":{"$ref":"#/responses/unauthorized"},"403":{"$ref":"#/responses/forbidden"},"404":{"$ref":"#/responses/not_found"},"406":{"$ref":"#/responses/not_acceptable"}},"security":[{"api_key":[]}],"summary":"Get image file","tags":["Network"],"x-codeSamples":[{"label":"Ruby - Typhoeus","lang":"ruby","source":"# Get regular image (default)\nTyphoeus.get(\n  \"https://art19.com/networks/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5.jpeg\",\n  accept_encoding: 'gzip',\n  headers: {\n    Accept:        'image/jpeg',\n    Authorization: 'Token token=\"YOUR_TOKEN\", credential=\"YOUR_CREDENTIAL_ID\"'\n  },\n  followlocation: true,\n  timeout: 10\n)\n\n# Get thumbnail\nTyphoeus.get(\n  \"https://art19.com/networks/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5.jpeg?style=thumb\",\n  accept_encoding: 'gzip',\n  headers: {\n    Accept:        'image/jpeg',\n    Authorization: 'Token token=\"YOUR_TOKEN\", credential=\"YOUR_CREDENTIAL_ID\"'\n  },\n  followlocation: true,\n  timeout: 10\n)\n"},{"label":"JavaScript - Fetch","lang":"javascript","source":"// Get regular image (default)\nconst response1 = await fetch('https://art19.com/networks/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5.jpeg', {\n  headers: {\n    'Accept': 'image/jpeg',\n    'Authorization': 'Token token=\"YOUR_TOKEN\", credential=\"YOUR_CREDENTIAL_ID\"'\n  },\n  redirect: 'follow'\n});\n\n// Get thumbnail\nconst response2 = await fetch('https://art19.com/networks/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5.jpeg?style=thumb', {\n  headers: {\n    'Accept': 'image/jpeg',\n    'Authorization': 'Token token=\"YOUR_TOKEN\", credential=\"YOUR_CREDENTIAL_ID\"'\n  },\n  redirect: 'follow'\n});\n"},{"label":"PHP - cURL","lang":"php","source":"<?php\n// Get regular image (default)\n$request = curl_init();\ncurl_setopt($request, CURLOPT_URL, 'https://art19.com/networks/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5.jpeg');\ncurl_setopt($request, CURLOPT_HTTPHEADER, [\n  'Accept: image/jpeg',\n  'Authorization: Token token=\"YOUR_TOKEN\", credential=\"YOUR_CREDENTIAL_ID\"'\n]);\ncurl_setopt($request, CURLOPT_FOLLOWLOCATION, true);\ncurl_setopt($request, CURLOPT_RETURNTRANSFER, true);\n$output = curl_exec($request);\ncurl_close($request);\n\n// Get thumbnail\n$request = curl_init();\ncurl_setopt($request, CURLOPT_URL, 'https://art19.com/networks/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5.jpeg?style=thumb');\ncurl_setopt($request, CURLOPT_HTTPHEADER, [\n  'Accept: image/jpeg',\n  'Authorization: Token token=\"YOUR_TOKEN\", credential=\"YOUR_CREDENTIAL_ID\"'\n]);\ncurl_setopt($request, CURLOPT_FOLLOWLOCATION, true);\ncurl_setopt($request, CURLOPT_RETURNTRANSFER, true);\n$output = curl_exec($request);\ncurl_close($request);\n?>\n"},{"label":"cURL","lang":"shell","source":"# Get regular image (default)\ncurl -L 'https://art19.com/networks/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5.jpeg' \\\n  -H 'Accept: image/jpeg' \\\n  -H 'Authorization: Token token=\"YOUR_TOKEN\", credential=\"YOUR_CREDENTIAL_ID\"' \\\n  --compressed\n\n# Get thumbnail\ncurl -L 'https://art19.com/networks/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5.jpeg?style=thumb' \\\n  -H 'Accept: image/jpeg' \\\n  -H 'Authorization: Token token=\"YOUR_TOKEN\", credential=\"YOUR_CREDENTIAL_ID\"' \\\n  --compressed\n"}]}},"/people":{"get":{"description":"Each series, season, and episode has a Credits section where you may add people and roles.\nThis is an internal tool to recognize contributors. It is not related to ART19 users or account permissions.\nEach Person added will have no additional access or permissions granted as a result of being included in the Credits section.\n","parameters":[{"collectionFormat":"multi","description":"The list of IDs to filter by. Repeat this parameter for each ID you want to include in the filter.\nThe brackets *MUST* be percent-encoded, per the requirements in\n[RFC 3986 § 3.4](https://tools.ietf.org/html/rfc3986#section-3.4).\n","in":"query","items":{"format":"uuid","type":"string"},"name":"ids[]","required":false,"type":"array","uniqueItems":true},{"description":"Select which page number to receive results for. Pages are numbered starting at 1.\n\n","in":"query","minimum":1,"name":"page[number]","type":"integer"},{"description":"Indicate how many records to return per page. The maximum is 100.\n\n","in":"query","maximum":100,"minimum":1,"name":"page[size]","type":"integer"},{"description":"Limit the result to people with a full name containing this parameter in a case-insensitive way.","in":"query","name":"q","type":"string"},{"collectionFormat":"csv","default":"last_name,first_name","description":"Specify how to sort the result. Please refer to either the top section or the\n[JSON:API specification](https://jsonapi.org/format/#fetching-sorting) on how sorting works in general.\n","in":"query","items":{"enum":["created_at","first_name","last_name","updated_at"],"type":"string"},"name":"sort","type":"array"}],"produces":["application/vnd.api+json"],"responses":{"200":{"description":"Success","schema":{"properties":{"data":{"items":{"$ref":"#/definitions/Person"},"type":"array"},"links":{"$ref":"#/definitions/Links"}},"type":"object"}},"400":{"description":"Bad Request\n\nParameters requiring a specific format must adhere to that format.\nPagination must have a positive page number and a page size no larger than 100. \n","schema":{"properties":{"errors":{"description":"An error object describing the problem. Please check out the\n[JSON:API Error document reference](https://jsonapi.org/format/#error-objects) for a full\ndescription of the returned object.\n","items":{"properties":{"code":{"description":"An application-specific error code, expressed as a string value","type":"string"},"detail":{"description":"A human-readable explanation specific to this occurrence of the problem. Like title, this field's value can be localized.\n","example":"Required query parameter \"series_id\" is missing","type":"string"},"source":{"description":"An object containing references to the source of the error, optionally including any of the following members.\n","nullable":true,"properties":{"parameter":{"description":"A string indicating which URI query parameter caused the error.","example":"series_id","type":"string"},"pointer":{"description":"A JSON Pointer [RFC6901](https://tools.ietf.org/html/rfc6901) to the associated entity in the request document (e.g. `/data` for a primary data object, or `/data/attributes/title` for a specific attribute).\n","example":"/data/attributes/name","type":"string"}},"type":"object"},"status":{"description":"The HTTP status code applicable to this problem, expressed as a string value: 400","example":"400","type":"string"},"title":{"description":"A short, human-readable summary of the problem that SHOULD NOT change from occurrence to occurrence of the\nproblem, except for purposes of localization.\n","example":"Bad Request","type":"string"}},"type":"object"},"type":"array"}},"type":"object"}},"401":{"$ref":"#/responses/unauthorized"},"403":{"$ref":"#/responses/forbidden"},"406":{"$ref":"#/responses/not_acceptable"},"429":{"$ref":"#/responses/rate_limit_exceeded"}},"security":[{"api_key":[]}],"summary":"Get a list of people","tags":["Person"],"x-codeSamples":[{"label":"Ruby - Typhoeus","lang":"ruby","source":"response = Typhoeus.get(\n  \"https://art19.com/people\",\n  accept_encoding: 'gzip',\n  headers: {\n    Accept:        'application/vnd.api+json',\n    Authorization: 'Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"'\n  },\n  params: {\n    # add filters if desired\n    page: { number: 1, size: 25 }\n  },\n  timeout: 10\n)\nif response.success?\n  # HTTP 2xx - JSON:API available to be parsed in response.body\nelsif response.timed_out?\n  # Request timed out\nelsif response.code.zero?\n  # cURL didn't get back an HTTP response, the reason is in response.return_message\nelse\n  # Other HTTP status, check response.code for which\nend\n"},{"label":"JavaScript - Fetch","lang":"javascript","source":"try {\n  const response = await fetch('https://art19.com/people?page%5Bnumber%5D=1&page%5Bsize%5D=25', {\n    headers: {\n      Accept:        'application/vnd.api+json',\n      Authorization: 'Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"'\n    }\n  });\n\n  if (response.ok) {\n    // Get the response body if HTTP-status is 200-299\n    const json = await response.json();\n  } else {\n    // HTTP request failed, handle error\n  }\n} catch(err) {\n  // A network error occured\n}\n"},{"label":"PHP - cURL","lang":"php","source":"<?php\n// Initialize a cURL resource for a request\n$request = curl_init();\n\ntry {\n  // The API endpoint to request data from\n  $url = array('https://art19.com/people');\n\n  // Provide extra parameters like filters or pagination to the request\n  $url[] = http_build_query(array(\n    'page' => array('number' => 1, 'size' => 25)\n  ));\n\n  // Configure the cURL options\n  curl_setopt($request, CURLOPT_URL, implode('?', $url));\n  curl_setopt($request, CURLOPT_FOLLOWLOCATION, true);\n  curl_setopt($request, CURLOPT_RETURNTRANSFER, true);\n  curl_setopt($request, CURLOPT_ENCODING, '');\n  curl_setopt($request, CURLOPT_HTTPHEADER, array(\n    'Accept: application/vnd.api+json',\n    'Authorization: Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"'\n  ));\n\n  // Execute the request and grab all status information\n  $output = curl_exec($request);\n  $info   = curl_getinfo($request);\n  $code   = $info['http_code'];\n\n  if ($code >= 200 && $code < 300) {\n    // HTTP 2xx - JSON:API response available to be parsed in $output\n    $json = json_decode($output);\n  } else if ($code >= 400 && $code < 500) {\n    // HTTP 4xx - Client error; JSON:API response evt. available to be parsed in $output\n    if (strlen($output) > 0) {\n      $errors = json_decode($output);\n    }\n  } else {\n    // Other HTTP status, treat according to workflow\n  }\n} finally {\n  // Free up the resource to clear out memory\n  curl_close($request);\n}\n?>\n"},{"label":"cURL","lang":"shell","source":"curl 'https://art19.com/people?page%5Bnumber%5D=1&page%5Bsize%5D=25' \\\n  -H 'accept: application/vnd.api+json' \\\n  -H 'authorization: Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"' \\\n  --compressed\n"}]},"post":{"consumes":["application/vnd.api+json"],"description":"For a create request to succeed, your credential must have admin permission with a series profile.\n","parameters":[{"description":"Person to create.","in":"body","required":true,"schema":{"$ref":"#/definitions/PersonCreate"}}],"responses":{"201":{"description":"Created","schema":{"properties":{"data":{"$ref":"#/definitions/Person"},"links":{"$ref":"#/definitions/ResourceLink"}},"type":"object"}},"401":{"$ref":"#/responses/unauthorized"},"403":{"$ref":"#/responses/forbidden"},"406":{"$ref":"#/responses/not_acceptable"},"415":{"$ref":"#/responses/unsupported_media_type"},"422":{"$ref":"#/responses/unprocessable_entity"},"429":{"$ref":"#/responses/rate_limit_exceeded"},"507":{"$ref":"#/responses/insufficient_storage"}},"security":[{"api_key":[]}],"summary":"Create a new person","tags":["Person"]}},"/people/{id}":{"get":{"description":"Each series, season, and episode has a Credits section where you may add people and roles.\nThis is an internal tool to recognize contributors. It is not related to ART19 users or account permissions.\nEach Person added will have no additional access or permissions granted as a result of being included in the Credits section.\n","parameters":[{"description":"The ID of the person resource to load.","example":"6bb474f9-3267-4182-bcfd-a67870f59601","format":"uuid","in":"path","name":"id","required":true,"type":"string"}],"produces":["application/vnd.api+json"],"responses":{"200":{"description":"Success","schema":{"properties":{"data":{"$ref":"#/definitions/Person"},"links":{"$ref":"#/definitions/ResourceLink"}},"type":"object"}},"401":{"$ref":"#/responses/unauthorized"},"403":{"$ref":"#/responses/forbidden"},"404":{"$ref":"#/responses/not_found"},"406":{"$ref":"#/responses/not_acceptable"},"429":{"$ref":"#/responses/rate_limit_exceeded"}},"security":[{"api_key":[]}],"summary":"Get a specific person","tags":["Person"],"x-codeSamples":[{"label":"Ruby - Typhoeus","lang":"ruby","source":"response = Typhoeus.get(\n  \"https://art19.com/people/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\",\n  accept_encoding: 'gzip',\n  headers: {\n    Accept:        'application/vnd.api+json',\n    Authorization: 'Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"'\n  },\n  timeout: 10\n)\nif response.success?\n  # HTTP 2xx - JSON:API available to be parsed in response.body\nelsif response.timed_out?\n  # Request timed out\nelsif response.code.zero?\n  # cURL didn't get back an HTTP response, the reason is in response.return_message\nelse\n  # Other HTTP status, check response.code for which\nend\n"},{"label":"JavaScript - Fetch","lang":"javascript","source":"try {\n  const response = await fetch('https://art19.com/people/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5', {\n    headers: {\n      Accept:        'application/vnd.api+json',\n      Authorization: 'Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"'\n    }\n  });\n\n  if (response.ok) {\n    // Get the response body if HTTP-status is 200-299\n    const json = await response.json();\n  } else {\n    // HTTP request failed, handle error\n  }\n} catch(err) {\n  // A network error occured\n}\n"},{"label":"PHP - cURL","lang":"php","source":"<?php\n// Initialize a cURL resource for a request\n$request = curl_init();\n\ntry {\n  // Configure the cURL options\n  curl_setopt($request, CURLOPT_URL, 'https://art19.com/people/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5');\n  curl_setopt($request, CURLOPT_FOLLOWLOCATION, true);\n  curl_setopt($request, CURLOPT_RETURNTRANSFER, true);\n  curl_setopt($request, CURLOPT_ENCODING, '');\n  curl_setopt($request, CURLOPT_HTTPHEADER, array(\n    'Accept: application/vnd.api+json',\n    'Authorization: Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"'\n  ));\n\n  // Execute the request and grab all status information\n  $output = curl_exec($request);\n  $info   = curl_getinfo($request);\n  $code   = $info['http_code'];\n\n  if ($code >= 200 && $code < 300) {\n    // HTTP 2xx - JSON:API response available to be parsed in $output\n    $json = json_decode($output);\n  } else if ($code >= 400 && $code < 500) {\n    // HTTP 4xx - Client error; JSON:API response evt. available to be parsed in $output\n    if (strlen($output) > 0) {\n      $errors = json_decode($output);\n    }\n  } else {\n    // Other HTTP status, treat according to workflow\n  }\n} finally {\n  // Free up the resource to clear out memory\n  curl_close($request);\n}\n?>\n"},{"label":"cURL","lang":"shell","source":"curl 'https://art19.com/people/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5' \\\n  -H 'accept: application/vnd.api+json' \\\n  -H 'authorization: Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"' \\\n  --compressed\n"}]},"patch":{"consumes":["application/vnd.api+json"],"description":"For an update request to succeed, your credential must have admin permission with a series profile\nthat has at least one credit associated with this person.\n","parameters":[{"description":"Person to update.","in":"body","required":true,"schema":{"$ref":"#/definitions/PersonUpdate"}}],"responses":{"200":{"description":"Success","schema":{"properties":{"data":{"$ref":"#/definitions/Person"},"links":{"$ref":"#/definitions/ResourceLink"}},"type":"object"}},"401":{"$ref":"#/responses/unauthorized"},"403":{"$ref":"#/responses/forbidden"},"406":{"$ref":"#/responses/not_acceptable"},"415":{"$ref":"#/responses/unsupported_media_type"},"422":{"$ref":"#/responses/unprocessable_entity"},"429":{"$ref":"#/responses/rate_limit_exceeded"},"507":{"$ref":"#/responses/insufficient_storage"}},"security":[{"api_key":[]}],"summary":"Update a specific person","tags":["Person"]}},"/people/{id}.jpeg":{"get":{"description":"Redirects to the image file URL (CDN or S3). Convenience endpoint for direct media access.","operationId":"getPersonImage","parameters":[{"description":"The UUID of the person","format":"uuid","in":"path","name":"id","required":true,"type":"string"},{"default":"regular","description":"The image style/size to retrieve","enum":["regular","thumb","square-400","square-640","square-888","square-3000","itunes"],"in":"query","name":"style","required":false,"type":"string"}],"produces":["image/jpeg"],"responses":{"302":{"description":"Redirect to image file URL (CDN or S3)","headers":{"Location":{"description":"The URL of the image file (CDN or S3)","format":"uri","type":"string"}}},"401":{"$ref":"#/responses/unauthorized"},"403":{"$ref":"#/responses/forbidden"},"404":{"$ref":"#/responses/not_found"},"406":{"$ref":"#/responses/not_acceptable"}},"security":[{"api_key":[]}],"summary":"Get image file","tags":["Person"],"x-codeSamples":[{"label":"Ruby - Typhoeus","lang":"ruby","source":"# Get regular image (default)\nTyphoeus.get(\n  \"https://art19.com/people/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5.jpeg\",\n  accept_encoding: 'gzip',\n  headers: {\n    Accept:        'image/jpeg',\n    Authorization: 'Token token=\"YOUR_TOKEN\", credential=\"YOUR_CREDENTIAL_ID\"'\n  },\n  followlocation: true,\n  timeout: 10\n)\n\n# Get thumbnail\nTyphoeus.get(\n  \"https://art19.com/people/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5.jpeg?style=thumb\",\n  accept_encoding: 'gzip',\n  headers: {\n    Accept:        'image/jpeg',\n    Authorization: 'Token token=\"YOUR_TOKEN\", credential=\"YOUR_CREDENTIAL_ID\"'\n  },\n  followlocation: true,\n  timeout: 10\n)\n"},{"label":"JavaScript - Fetch","lang":"javascript","source":"// Get regular image (default)\nconst response1 = await fetch('https://art19.com/people/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5.jpeg', {\n  headers: {\n    'Accept': 'image/jpeg',\n    'Authorization': 'Token token=\"YOUR_TOKEN\", credential=\"YOUR_CREDENTIAL_ID\"'\n  },\n  redirect: 'follow'\n});\n\n// Get thumbnail\nconst response2 = await fetch('https://art19.com/people/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5.jpeg?style=thumb', {\n  headers: {\n    'Accept': 'image/jpeg',\n    'Authorization': 'Token token=\"YOUR_TOKEN\", credential=\"YOUR_CREDENTIAL_ID\"'\n  },\n  redirect: 'follow'\n});\n"},{"label":"PHP - cURL","lang":"php","source":"<?php\n// Get regular image (default)\n$request = curl_init();\ncurl_setopt($request, CURLOPT_URL, 'https://art19.com/people/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5.jpeg');\ncurl_setopt($request, CURLOPT_HTTPHEADER, [\n  'Accept: image/jpeg',\n  'Authorization: Token token=\"YOUR_TOKEN\", credential=\"YOUR_CREDENTIAL_ID\"'\n]);\ncurl_setopt($request, CURLOPT_FOLLOWLOCATION, true);\ncurl_setopt($request, CURLOPT_RETURNTRANSFER, true);\n$output = curl_exec($request);\ncurl_close($request);\n\n// Get thumbnail\n$request = curl_init();\ncurl_setopt($request, CURLOPT_URL, 'https://art19.com/people/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5.jpeg?style=thumb');\ncurl_setopt($request, CURLOPT_HTTPHEADER, [\n  'Accept: image/jpeg',\n  'Authorization: Token token=\"YOUR_TOKEN\", credential=\"YOUR_CREDENTIAL_ID\"'\n]);\ncurl_setopt($request, CURLOPT_FOLLOWLOCATION, true);\ncurl_setopt($request, CURLOPT_RETURNTRANSFER, true);\n$output = curl_exec($request);\ncurl_close($request);\n?>\n"},{"label":"cURL","lang":"shell","source":"# Get regular image (default)\ncurl -L 'https://art19.com/people/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5.jpeg' \\\n  -H 'Accept: image/jpeg' \\\n  -H 'Authorization: Token token=\"YOUR_TOKEN\", credential=\"YOUR_CREDENTIAL_ID\"' \\\n  --compressed\n\n# Get thumbnail\ncurl -L 'https://art19.com/people/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5.jpeg?style=thumb' \\\n  -H 'Accept: image/jpeg' \\\n  -H 'Authorization: Token token=\"YOUR_TOKEN\", credential=\"YOUR_CREDENTIAL_ID\"' \\\n  --compressed\n"}]}},"/seasons":{"get":{"description":"When retrieving a list of seasons, the result is automatically filtered depending on the\nprivileges the used credential holds. If there are no specific privileges to a series or network,\nonly active seasons for active series are included.\n","parameters":[{"collectionFormat":"multi","description":"The list of IDs to filter by. Repeat this parameter for each ID you want to include in the filter.\nThe brackets *MUST* be percent-encoded, per the requirements in\n[RFC 3986 § 3.4](https://tools.ietf.org/html/rfc3986#section-3.4).\n","in":"query","items":{"format":"uuid","type":"string"},"name":"ids[]","required":false,"type":"array","uniqueItems":true},{"description":"Select which page number to receive results for. Pages are numbered starting at 1.\n\n","in":"query","minimum":1,"name":"page[number]","type":"integer"},{"description":"Indicate how many records to return per page. The maximum is 100.\n\n","in":"query","maximum":100,"minimum":1,"name":"page[size]","type":"integer"},{"description":"Limit the result to seasons owned by this series.","example":"7ebd702d-07c8-4da9-a7a8-cf18ec414d5c","format":"uuid","in":"query","name":"series_id","type":"string"},{"description":"Limit the result to seasons with a title containing this parameter in a case-insensitive way.","in":"query","name":"q","type":"string"},{"collectionFormat":"csv","default":"sort_title","description":"Specify how to sort the result. Please refer to either the top section or the\n[JSON:API specification](https://jsonapi.org/format/#fetching-sorting) on how sorting works in general.\n","in":"query","items":{"enum":["created_at","sort_title","title","updated_at"],"type":"string"},"name":"sort","type":"array"}],"produces":["application/vnd.api+json"],"responses":{"200":{"description":"Success","schema":{"properties":{"data":{"items":{"$ref":"#/definitions/Season"},"type":"array"},"links":{"$ref":"#/definitions/Links"}},"type":"object"}},"400":{"description":"Bad Request\n\nParameters requiring a specific format must adhere to that format.\nPagination must have a positive page number and a page size no larger than 100. \n","schema":{"properties":{"errors":{"description":"An error object describing the problem. Please check out the\n[JSON:API Error document reference](https://jsonapi.org/format/#error-objects) for a full\ndescription of the returned object.\n","items":{"properties":{"code":{"description":"An application-specific error code, expressed as a string value","type":"string"},"detail":{"description":"A human-readable explanation specific to this occurrence of the problem. Like title, this field's value can be localized.\n","example":"Required query parameter \"series_id\" is missing","type":"string"},"source":{"description":"An object containing references to the source of the error, optionally including any of the following members.\n","nullable":true,"properties":{"parameter":{"description":"A string indicating which URI query parameter caused the error.","example":"series_id","type":"string"},"pointer":{"description":"A JSON Pointer [RFC6901](https://tools.ietf.org/html/rfc6901) to the associated entity in the request document (e.g. `/data` for a primary data object, or `/data/attributes/title` for a specific attribute).\n","example":"/data/attributes/name","type":"string"}},"type":"object"},"status":{"description":"The HTTP status code applicable to this problem, expressed as a string value: 400","example":"400","type":"string"},"title":{"description":"A short, human-readable summary of the problem that SHOULD NOT change from occurrence to occurrence of the\nproblem, except for purposes of localization.\n","example":"Bad Request","type":"string"}},"type":"object"},"type":"array"}},"type":"object"}},"401":{"$ref":"#/responses/unauthorized"},"403":{"$ref":"#/responses/forbidden"},"406":{"$ref":"#/responses/not_acceptable"},"429":{"$ref":"#/responses/rate_limit_exceeded"}},"security":[{"api_key":[]}],"summary":"Get a list of seasons","tags":["Season"],"x-codeSamples":[{"label":"Ruby - Typhoeus","lang":"ruby","source":"response = Typhoeus.get(\n  \"https://art19.com/seasons\",\n  accept_encoding: 'gzip',\n  headers: {\n    Accept:        'application/vnd.api+json',\n    Authorization: 'Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"'\n  },\n  params: {\n    # add filters if desired\n    page: { number: 1, size: 25 }\n  },\n  timeout: 10\n)\nif response.success?\n  # HTTP 2xx - JSON:API available to be parsed in response.body\nelsif response.timed_out?\n  # Request timed out\nelsif response.code.zero?\n  # cURL didn't get back an HTTP response, the reason is in response.return_message\nelse\n  # Other HTTP status, check response.code for which\nend\n"},{"label":"JavaScript - Fetch","lang":"javascript","source":"try {\n  const response = await fetch('https://art19.com/seasons?page%5Bnumber%5D=1&page%5Bsize%5D=25', {\n    headers: {\n      Accept:        'application/vnd.api+json',\n      Authorization: 'Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"'\n    }\n  });\n\n  if (response.ok) {\n    // Get the response body if HTTP-status is 200-299\n    const json = await response.json();\n  } else {\n    // HTTP request failed, handle error\n  }\n} catch(err) {\n  // A network error occured\n}\n"},{"label":"PHP - cURL","lang":"php","source":"<?php\n// Initialize a cURL resource for a request\n$request = curl_init();\n\ntry {\n  // The API endpoint to request data from\n  $url = array('https://art19.com/seasons');\n\n  // Provide extra parameters like filters or pagination to the request\n  $url[] = http_build_query(array(\n    'page' => array('number' => 1, 'size' => 25)\n  ));\n\n  // Configure the cURL options\n  curl_setopt($request, CURLOPT_URL, implode('?', $url));\n  curl_setopt($request, CURLOPT_FOLLOWLOCATION, true);\n  curl_setopt($request, CURLOPT_RETURNTRANSFER, true);\n  curl_setopt($request, CURLOPT_ENCODING, '');\n  curl_setopt($request, CURLOPT_HTTPHEADER, array(\n    'Accept: application/vnd.api+json',\n    'Authorization: Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"'\n  ));\n\n  // Execute the request and grab all status information\n  $output = curl_exec($request);\n  $info   = curl_getinfo($request);\n  $code   = $info['http_code'];\n\n  if ($code >= 200 && $code < 300) {\n    // HTTP 2xx - JSON:API response available to be parsed in $output\n    $json = json_decode($output);\n  } else if ($code >= 400 && $code < 500) {\n    // HTTP 4xx - Client error; JSON:API response evt. available to be parsed in $output\n    if (strlen($output) > 0) {\n      $errors = json_decode($output);\n    }\n  } else {\n    // Other HTTP status, treat according to workflow\n  }\n} finally {\n  // Free up the resource to clear out memory\n  curl_close($request);\n}\n?>\n"},{"label":"cURL","lang":"shell","source":"curl 'https://art19.com/seasons?page%5Bnumber%5D=1&page%5Bsize%5D=25' \\\n  -H 'accept: application/vnd.api+json' \\\n  -H 'authorization: Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"' \\\n  --compressed\n"}]},"post":{"consumes":["application/vnd.api+json"],"description":"### Deprecations\n\n- The attribute `cover_image_id` has been replaced with the relationship `cover_image`\n  and will be removed from the response in a future release.\n\n\nFor a create request to succeed, your credential must have admin permission with the series that will own this season.\n","parameters":[{"description":"Season to create.","in":"body","required":true,"schema":{"$ref":"#/definitions/SeasonCreate"}}],"responses":{"201":{"description":"Created","schema":{"properties":{"data":{"$ref":"#/definitions/Season"},"links":{"$ref":"#/definitions/ResourceLink"}},"type":"object"}},"401":{"$ref":"#/responses/unauthorized"},"403":{"$ref":"#/responses/forbidden"},"406":{"$ref":"#/responses/not_acceptable"},"415":{"$ref":"#/responses/unsupported_media_type"},"422":{"$ref":"#/responses/unprocessable_entity"},"429":{"$ref":"#/responses/rate_limit_exceeded"},"507":{"$ref":"#/responses/insufficient_storage"}},"security":[{"api_key":[]}],"summary":"Create a new season","tags":["Season"]}},"/seasons/{id}":{"delete":{"description":"For a delete request to succeed, your credential must have admin permission with the series that owns this season.\n","responses":{"204":{"description":"No Content\n\nThe resource has been deleted successfully.\n"},"401":{"$ref":"#/responses/unauthorized"},"403":{"$ref":"#/responses/forbidden"},"406":{"$ref":"#/responses/not_acceptable"},"429":{"$ref":"#/responses/rate_limit_exceeded"},"507":{"$ref":"#/responses/insufficient_storage"}},"security":[{"api_key":[]}],"summary":"Delete a specific season","tags":["Season"]},"get":{"parameters":[{"description":"Include related resources in the response. The related resources will be returned in the top-level `included` array.\nMultiple relationships can be included by separating them with commas.\nNested relationships can be specified using dot notation (e.g., `series.network`).\nAvailable relationships: `cover_image`, `series`, `series.cover_image`, `series.network`.\n","example":"series,cover_image","in":"query","name":"include","type":"string"},{"description":"The ID of the season resource to load.","example":"6bb474f9-3267-4182-bcfd-a67870f59601","format":"uuid","in":"path","name":"id","required":true,"type":"string"}],"produces":["application/vnd.api+json"],"responses":{"200":{"description":"Success","schema":{"properties":{"data":{"$ref":"#/definitions/Season"},"included":{"description":"Related resources included in the response when using the include parameter (optional).","items":{"oneOf":[{"$ref":"#/definitions/Series"},{"$ref":"#/definitions/Image"},{"$ref":"#/definitions/Network"}]},"type":"array"},"links":{"$ref":"#/definitions/ResourceLink"}},"type":"object"}},"400":{"description":"Bad Request\n\nParameters requiring a specific format must adhere to that format.\nInvalid include parameter values are not permitted.\n","schema":{"properties":{"errors":{"description":"An error object describing the problem. Please check out the\n[JSON:API Error document reference](https://jsonapi.org/format/#error-objects) for a full\ndescription of the returned object.\n","items":{"properties":{"code":{"description":"An application-specific error code, expressed as a string value","type":"string"},"detail":{"description":"A human-readable explanation specific to this occurrence of the problem. Like title, this field's value can be localized.\n","example":"Required query parameter \"series_id\" is missing","type":"string"},"source":{"description":"An object containing references to the source of the error, optionally including any of the following members.\n","nullable":true,"properties":{"parameter":{"description":"A string indicating which URI query parameter caused the error.","example":"series_id","type":"string"},"pointer":{"description":"A JSON Pointer [RFC6901](https://tools.ietf.org/html/rfc6901) to the associated entity in the request document (e.g. `/data` for a primary data object, or `/data/attributes/title` for a specific attribute).\n","example":"/data/attributes/name","type":"string"}},"type":"object"},"status":{"description":"The HTTP status code applicable to this problem, expressed as a string value: 400","example":"400","type":"string"},"title":{"description":"A short, human-readable summary of the problem that SHOULD NOT change from occurrence to occurrence of the\nproblem, except for purposes of localization.\n","example":"Bad Request","type":"string"}},"type":"object"},"type":"array"}},"type":"object"}},"401":{"$ref":"#/responses/unauthorized"},"403":{"$ref":"#/responses/forbidden"},"404":{"$ref":"#/responses/not_found"},"406":{"$ref":"#/responses/not_acceptable"},"429":{"$ref":"#/responses/rate_limit_exceeded"}},"security":[{"api_key":[]}],"summary":"Get a specific season","tags":["Season"],"x-codeSamples":[{"label":"Ruby - Typhoeus","lang":"ruby","source":"response = Typhoeus.get(\n  \"https://art19.com/seasons/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\",\n  accept_encoding: 'gzip',\n  headers: {\n    Accept:        'application/vnd.api+json',\n    Authorization: 'Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"'\n  },\n  timeout: 10\n)\nif response.success?\n  # HTTP 2xx - JSON:API available to be parsed in response.body\nelsif response.timed_out?\n  # Request timed out\nelsif response.code.zero?\n  # cURL didn't get back an HTTP response, the reason is in response.return_message\nelse\n  # Other HTTP status, check response.code for which\nend\n"},{"label":"JavaScript - Fetch","lang":"javascript","source":"try {\n  const response = await fetch('https://art19.com/seasons/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5', {\n    headers: {\n      Accept:        'application/vnd.api+json',\n      Authorization: 'Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"'\n    }\n  });\n\n  if (response.ok) {\n    // Get the response body if HTTP-status is 200-299\n    const json = await response.json();\n  } else {\n    // HTTP request failed, handle error\n  }\n} catch(err) {\n  // A network error occured\n}\n"},{"label":"PHP - cURL","lang":"php","source":"<?php\n// Initialize a cURL resource for a request\n$request = curl_init();\n\ntry {\n  // Configure the cURL options\n  curl_setopt($request, CURLOPT_URL, 'https://art19.com/seasons/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5');\n  curl_setopt($request, CURLOPT_FOLLOWLOCATION, true);\n  curl_setopt($request, CURLOPT_RETURNTRANSFER, true);\n  curl_setopt($request, CURLOPT_ENCODING, '');\n  curl_setopt($request, CURLOPT_HTTPHEADER, array(\n    'Accept: application/vnd.api+json',\n    'Authorization: Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"'\n  ));\n\n  // Execute the request and grab all status information\n  $output = curl_exec($request);\n  $info   = curl_getinfo($request);\n  $code   = $info['http_code'];\n\n  if ($code >= 200 && $code < 300) {\n    // HTTP 2xx - JSON:API response available to be parsed in $output\n    $json = json_decode($output);\n  } else if ($code >= 400 && $code < 500) {\n    // HTTP 4xx - Client error; JSON:API response evt. available to be parsed in $output\n    if (strlen($output) > 0) {\n      $errors = json_decode($output);\n    }\n  } else {\n    // Other HTTP status, treat according to workflow\n  }\n} finally {\n  // Free up the resource to clear out memory\n  curl_close($request);\n}\n?>\n"},{"label":"cURL","lang":"shell","source":"curl 'https://art19.com/seasons/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5' \\\n  -H 'accept: application/vnd.api+json' \\\n  -H 'authorization: Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"' \\\n  --compressed\n"}]},"patch":{"consumes":["application/vnd.api+json"],"description":"### Deprecations\n\n- The attribute `cover_image_id` has been replaced with the relationship `cover_image`\n  and will be removed from the response in a future release.\n\n\nFor an update request to succeed, your credential must have admin permission with the series that owns this season.\n","parameters":[{"description":"Season to update.","in":"body","required":true,"schema":{"$ref":"#/definitions/SeasonUpdate"}}],"responses":{"200":{"description":"Success","schema":{"properties":{"data":{"$ref":"#/definitions/Season"},"links":{"$ref":"#/definitions/ResourceLink"}},"type":"object"}},"401":{"$ref":"#/responses/unauthorized"},"403":{"$ref":"#/responses/forbidden"},"406":{"$ref":"#/responses/not_acceptable"},"415":{"$ref":"#/responses/unsupported_media_type"},"422":{"$ref":"#/responses/unprocessable_entity"},"429":{"$ref":"#/responses/rate_limit_exceeded"},"507":{"$ref":"#/responses/insufficient_storage"}},"security":[{"api_key":[]}],"summary":"Update a specific season","tags":["Season"]}},"/seasons/{id}.jpeg":{"get":{"description":"Redirects to the image file URL (CDN or S3). Convenience endpoint for direct media access.","operationId":"getSeasonImage","parameters":[{"description":"The UUID of the season","format":"uuid","in":"path","name":"id","required":true,"type":"string"},{"default":"regular","description":"The image style/size to retrieve","enum":["regular","thumb","square-400","square-640","square-888","square-3000","itunes"],"in":"query","name":"style","required":false,"type":"string"}],"produces":["image/jpeg"],"responses":{"302":{"description":"Redirect to image file URL (CDN or S3)","headers":{"Location":{"description":"The URL of the image file (CDN or S3)","format":"uri","type":"string"}}},"401":{"$ref":"#/responses/unauthorized"},"403":{"$ref":"#/responses/forbidden"},"404":{"$ref":"#/responses/not_found"},"406":{"$ref":"#/responses/not_acceptable"}},"security":[{"api_key":[]}],"summary":"Get image file","tags":["Season"],"x-codeSamples":[{"label":"Ruby - Typhoeus","lang":"ruby","source":"# Get regular image (default)\nTyphoeus.get(\n  \"https://art19.com/seasons/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5.jpeg\",\n  accept_encoding: 'gzip',\n  headers: {\n    Accept:        'image/jpeg',\n    Authorization: 'Token token=\"YOUR_TOKEN\", credential=\"YOUR_CREDENTIAL_ID\"'\n  },\n  followlocation: true,\n  timeout: 10\n)\n\n# Get thumbnail\nTyphoeus.get(\n  \"https://art19.com/seasons/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5.jpeg?style=thumb\",\n  accept_encoding: 'gzip',\n  headers: {\n    Accept:        'image/jpeg',\n    Authorization: 'Token token=\"YOUR_TOKEN\", credential=\"YOUR_CREDENTIAL_ID\"'\n  },\n  followlocation: true,\n  timeout: 10\n)\n"},{"label":"JavaScript - Fetch","lang":"javascript","source":"// Get regular image (default)\nconst response1 = await fetch('https://art19.com/seasons/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5.jpeg', {\n  headers: {\n    'Accept': 'image/jpeg',\n    'Authorization': 'Token token=\"YOUR_TOKEN\", credential=\"YOUR_CREDENTIAL_ID\"'\n  },\n  redirect: 'follow'\n});\n\n// Get thumbnail\nconst response2 = await fetch('https://art19.com/seasons/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5.jpeg?style=thumb', {\n  headers: {\n    'Accept': 'image/jpeg',\n    'Authorization': 'Token token=\"YOUR_TOKEN\", credential=\"YOUR_CREDENTIAL_ID\"'\n  },\n  redirect: 'follow'\n});\n"},{"label":"PHP - cURL","lang":"php","source":"<?php\n// Get regular image (default)\n$request = curl_init();\ncurl_setopt($request, CURLOPT_URL, 'https://art19.com/seasons/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5.jpeg');\ncurl_setopt($request, CURLOPT_HTTPHEADER, [\n  'Accept: image/jpeg',\n  'Authorization: Token token=\"YOUR_TOKEN\", credential=\"YOUR_CREDENTIAL_ID\"'\n]);\ncurl_setopt($request, CURLOPT_FOLLOWLOCATION, true);\ncurl_setopt($request, CURLOPT_RETURNTRANSFER, true);\n$output = curl_exec($request);\ncurl_close($request);\n\n// Get thumbnail\n$request = curl_init();\ncurl_setopt($request, CURLOPT_URL, 'https://art19.com/seasons/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5.jpeg?style=thumb');\ncurl_setopt($request, CURLOPT_HTTPHEADER, [\n  'Accept: image/jpeg',\n  'Authorization: Token token=\"YOUR_TOKEN\", credential=\"YOUR_CREDENTIAL_ID\"'\n]);\ncurl_setopt($request, CURLOPT_FOLLOWLOCATION, true);\ncurl_setopt($request, CURLOPT_RETURNTRANSFER, true);\n$output = curl_exec($request);\ncurl_close($request);\n?>\n"},{"label":"cURL","lang":"shell","source":"# Get regular image (default)\ncurl -L 'https://art19.com/seasons/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5.jpeg' \\\n  -H 'Accept: image/jpeg' \\\n  -H 'Authorization: Token token=\"YOUR_TOKEN\", credential=\"YOUR_CREDENTIAL_ID\"' \\\n  --compressed\n\n# Get thumbnail\ncurl -L 'https://art19.com/seasons/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5.jpeg?style=thumb' \\\n  -H 'Accept: image/jpeg' \\\n  -H 'Authorization: Token token=\"YOUR_TOKEN\", credential=\"YOUR_CREDENTIAL_ID\"' \\\n  --compressed\n"}]}},"/series":{"get":{"description":"When retrieving a list of series, the result is automatically filtered depending on the\nprivileges the used credential holds. All credentials will have access to active series\nwith a public page enabled (on ART19). Utilizing a filter to limit the result to series\nassociated with your account is recommended.\n","parameters":[{"collectionFormat":"multi","description":"The list of IDs to filter by. Repeat this parameter for each ID you want to include in the filter.\nThe brackets *MUST* be percent-encoded, per the requirements in\n[RFC 3986 § 3.4](https://tools.ietf.org/html/rfc3986#section-3.4).\n","in":"query","items":{"format":"uuid","type":"string"},"name":"ids[]","required":false,"type":"array","uniqueItems":true},{"description":"Select which page number to receive results for. Pages are numbered starting at 1.\n\n","in":"query","minimum":1,"name":"page[number]","required":"true","type":"integer"},{"description":"Indicate how many records to return per page. The maximum is 100.\n\n","in":"query","maximum":100,"minimum":1,"name":"page[size]","required":"true","type":"integer"},{"description":"Limit the result to series with an ad deal of this Ad Ops profile.\n","example":"35eb02fc-54db-4650-98e0-4695b101b71d","format":"uuid","in":"query","name":"ad_rep_account_id","type":"string"},{"description":"Limit the result to series owned by this network.","example":"5317358a-527e-4365-a343-361854286cc7","format":"uuid","in":"query","name":"network_id","type":"string"},{"description":"Limit the result to all series owned by this network and any child networks.","example":"5317358a-527e-4365-a343-361854286cc7","format":"uuid","in":"query","name":"parent_network_id","type":"string"},{"description":"Limit the result to series with a title or slug containing this parameter in a case-insensitive way.","in":"query","name":"q","type":"string"},{"collectionFormat":"csv","default":"sort_title","description":"Specify how to sort the result. Please refer to either the top section or the\n[JSON:API specification](https://jsonapi.org/format/#fetching-sorting) on how sorting works in general.\n","in":"query","items":{"enum":["created_at","episode_released_at","sort_title","title","updated_at"],"type":"string"},"name":"sort","type":"array"}],"produces":["application/vnd.api+json"],"responses":{"200":{"description":"Success","schema":{"properties":{"data":{"items":{"$ref":"#/definitions/Series"},"type":"array"},"links":{"$ref":"#/definitions/Links"}},"type":"object"}},"400":{"description":"Bad Request\n\nParameters requiring a specific format must adhere to that format.\nPagination must have a positive page number and a page size no larger than 100. \n","schema":{"properties":{"errors":{"description":"An error object describing the problem. Please check out the\n[JSON:API Error document reference](https://jsonapi.org/format/#error-objects) for a full\ndescription of the returned object.\n","items":{"properties":{"code":{"description":"An application-specific error code, expressed as a string value","type":"string"},"detail":{"description":"A human-readable explanation specific to this occurrence of the problem. Like title, this field's value can be localized.\n","example":"Required query parameter \"series_id\" is missing","type":"string"},"source":{"description":"An object containing references to the source of the error, optionally including any of the following members.\n","nullable":true,"properties":{"parameter":{"description":"A string indicating which URI query parameter caused the error.","example":"series_id","type":"string"},"pointer":{"description":"A JSON Pointer [RFC6901](https://tools.ietf.org/html/rfc6901) to the associated entity in the request document (e.g. `/data` for a primary data object, or `/data/attributes/title` for a specific attribute).\n","example":"/data/attributes/name","type":"string"}},"type":"object"},"status":{"description":"The HTTP status code applicable to this problem, expressed as a string value: 400","example":"400","type":"string"},"title":{"description":"A short, human-readable summary of the problem that SHOULD NOT change from occurrence to occurrence of the\nproblem, except for purposes of localization.\n","example":"Bad Request","type":"string"}},"type":"object"},"type":"array"}},"type":"object"}},"401":{"$ref":"#/responses/unauthorized"},"403":{"$ref":"#/responses/forbidden"},"406":{"$ref":"#/responses/not_acceptable"},"429":{"$ref":"#/responses/rate_limit_exceeded"}},"security":[{"api_key":[]}],"summary":"Get a list of series","tags":["Series"],"x-codeSamples":[{"label":"Ruby - Typhoeus","lang":"ruby","source":"response = Typhoeus.get(\n  \"https://art19.com/series\",\n  accept_encoding: 'gzip',\n  headers: {\n    Accept:        'application/vnd.api+json',\n    Authorization: 'Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"'\n  },\n  params: {\n    # add filters if desired\n    page: { number: 1, size: 25 }\n  },\n  timeout: 10\n)\nif response.success?\n  # HTTP 2xx - JSON:API available to be parsed in response.body\nelsif response.timed_out?\n  # Request timed out\nelsif response.code.zero?\n  # cURL didn't get back an HTTP response, the reason is in response.return_message\nelse\n  # Other HTTP status, check response.code for which\nend\n"},{"label":"JavaScript - Fetch","lang":"javascript","source":"try {\n  const response = await fetch('https://art19.com/series?page%5Bnumber%5D=1&page%5Bsize%5D=25', {\n    headers: {\n      Accept:        'application/vnd.api+json',\n      Authorization: 'Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"'\n    }\n  });\n\n  if (response.ok) {\n    // Get the response body if HTTP-status is 200-299\n    const json = await response.json();\n  } else {\n    // HTTP request failed, handle error\n  }\n} catch(err) {\n  // A network error occured\n}\n"},{"label":"PHP - cURL","lang":"php","source":"<?php\n// Initialize a cURL resource for a request\n$request = curl_init();\n\ntry {\n  // The API endpoint to request data from\n  $url = array('https://art19.com/series');\n\n  // Provide extra parameters like filters or pagination to the request\n  $url[] = http_build_query(array(\n    'page' => array('number' => 1, 'size' => 25)\n  ));\n\n  // Configure the cURL options\n  curl_setopt($request, CURLOPT_URL, implode('?', $url));\n  curl_setopt($request, CURLOPT_FOLLOWLOCATION, true);\n  curl_setopt($request, CURLOPT_RETURNTRANSFER, true);\n  curl_setopt($request, CURLOPT_ENCODING, '');\n  curl_setopt($request, CURLOPT_HTTPHEADER, array(\n    'Accept: application/vnd.api+json',\n    'Authorization: Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"'\n  ));\n\n  // Execute the request and grab all status information\n  $output = curl_exec($request);\n  $info   = curl_getinfo($request);\n  $code   = $info['http_code'];\n\n  if ($code >= 200 && $code < 300) {\n    // HTTP 2xx - JSON:API response available to be parsed in $output\n    $json = json_decode($output);\n  } else if ($code >= 400 && $code < 500) {\n    // HTTP 4xx - Client error; JSON:API response evt. available to be parsed in $output\n    if (strlen($output) > 0) {\n      $errors = json_decode($output);\n    }\n  } else {\n    // Other HTTP status, treat according to workflow\n  }\n} finally {\n  // Free up the resource to clear out memory\n  curl_close($request);\n}\n?>\n"},{"label":"cURL","lang":"shell","source":"curl 'https://art19.com/series?page%5Bnumber%5D=1&page%5Bsize%5D=25' \\\n  -H 'accept: application/vnd.api+json' \\\n  -H 'authorization: Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"' \\\n  --compressed\n"}]}},"/series/{id}":{"get":{"parameters":[{"description":"Include related resources in the response. The related resources will be returned in the top-level `included` array.\nMultiple relationships can be included by separating them with commas.\nNested relationships can be specified using dot notation (e.g., `series.network`).\nAvailable relationships: `cover_image`, `network`.\n","example":"cover_image,network","in":"query","name":"include","type":"string"},{"description":"The ID of the series resource to load.","example":"6bb474f9-3267-4182-bcfd-a67870f59601","format":"uuid","in":"path","name":"id","required":true,"type":"string"}],"produces":["application/vnd.api+json"],"responses":{"200":{"description":"Success","schema":{"properties":{"data":{"$ref":"#/definitions/Series"},"included":{"description":"Related resources included in the response when using the include parameter (optional).","items":{"oneOf":[{"$ref":"#/definitions/Image"},{"$ref":"#/definitions/Network"}]},"type":"array"},"links":{"$ref":"#/definitions/ResourceLink"}},"type":"object"}},"400":{"description":"Bad Request\n\nParameters requiring a specific format must adhere to that format.\nInvalid include parameter values are not permitted.\n","schema":{"properties":{"errors":{"description":"An error object describing the problem. Please check out the\n[JSON:API Error document reference](https://jsonapi.org/format/#error-objects) for a full\ndescription of the returned object.\n","items":{"properties":{"code":{"description":"An application-specific error code, expressed as a string value","type":"string"},"detail":{"description":"A human-readable explanation specific to this occurrence of the problem. Like title, this field's value can be localized.\n","example":"Required query parameter \"series_id\" is missing","type":"string"},"source":{"description":"An object containing references to the source of the error, optionally including any of the following members.\n","nullable":true,"properties":{"parameter":{"description":"A string indicating which URI query parameter caused the error.","example":"series_id","type":"string"},"pointer":{"description":"A JSON Pointer [RFC6901](https://tools.ietf.org/html/rfc6901) to the associated entity in the request document (e.g. `/data` for a primary data object, or `/data/attributes/title` for a specific attribute).\n","example":"/data/attributes/name","type":"string"}},"type":"object"},"status":{"description":"The HTTP status code applicable to this problem, expressed as a string value: 400","example":"400","type":"string"},"title":{"description":"A short, human-readable summary of the problem that SHOULD NOT change from occurrence to occurrence of the\nproblem, except for purposes of localization.\n","example":"Bad Request","type":"string"}},"type":"object"},"type":"array"}},"type":"object"}},"401":{"$ref":"#/responses/unauthorized"},"403":{"$ref":"#/responses/forbidden"},"404":{"$ref":"#/responses/not_found"},"406":{"$ref":"#/responses/not_acceptable"},"429":{"$ref":"#/responses/rate_limit_exceeded"}},"security":[{"api_key":[]}],"summary":"Get a specific series","tags":["Series"],"x-codeSamples":[{"label":"Ruby - Typhoeus","lang":"ruby","source":"response = Typhoeus.get(\n  \"https://art19.com/series/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\",\n  accept_encoding: 'gzip',\n  headers: {\n    Accept:        'application/vnd.api+json',\n    Authorization: 'Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"'\n  },\n  timeout: 10\n)\nif response.success?\n  # HTTP 2xx - JSON:API available to be parsed in response.body\nelsif response.timed_out?\n  # Request timed out\nelsif response.code.zero?\n  # cURL didn't get back an HTTP response, the reason is in response.return_message\nelse\n  # Other HTTP status, check response.code for which\nend\n"},{"label":"JavaScript - Fetch","lang":"javascript","source":"try {\n  const response = await fetch('https://art19.com/series/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5', {\n    headers: {\n      Accept:        'application/vnd.api+json',\n      Authorization: 'Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"'\n    }\n  });\n\n  if (response.ok) {\n    // Get the response body if HTTP-status is 200-299\n    const json = await response.json();\n  } else {\n    // HTTP request failed, handle error\n  }\n} catch(err) {\n  // A network error occured\n}\n"},{"label":"PHP - cURL","lang":"php","source":"<?php\n// Initialize a cURL resource for a request\n$request = curl_init();\n\ntry {\n  // Configure the cURL options\n  curl_setopt($request, CURLOPT_URL, 'https://art19.com/series/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5');\n  curl_setopt($request, CURLOPT_FOLLOWLOCATION, true);\n  curl_setopt($request, CURLOPT_RETURNTRANSFER, true);\n  curl_setopt($request, CURLOPT_ENCODING, '');\n  curl_setopt($request, CURLOPT_HTTPHEADER, array(\n    'Accept: application/vnd.api+json',\n    'Authorization: Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"'\n  ));\n\n  // Execute the request and grab all status information\n  $output = curl_exec($request);\n  $info   = curl_getinfo($request);\n  $code   = $info['http_code'];\n\n  if ($code >= 200 && $code < 300) {\n    // HTTP 2xx - JSON:API response available to be parsed in $output\n    $json = json_decode($output);\n  } else if ($code >= 400 && $code < 500) {\n    // HTTP 4xx - Client error; JSON:API response evt. available to be parsed in $output\n    if (strlen($output) > 0) {\n      $errors = json_decode($output);\n    }\n  } else {\n    // Other HTTP status, treat according to workflow\n  }\n} finally {\n  // Free up the resource to clear out memory\n  curl_close($request);\n}\n?>\n"},{"label":"cURL","lang":"shell","source":"curl 'https://art19.com/series/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5' \\\n  -H 'accept: application/vnd.api+json' \\\n  -H 'authorization: Token token=\"UVd4c0lFTnZjSKbElFSm\", credential=\"ab17a8eb-3d5b-455d-84ac-15a98fde7bb5\"' \\\n  --compressed\n"}]},"patch":{"consumes":["application/vnd.api+json"],"description":"### Deprecations\n\n- The attribute `cover_image_id` has been replaced with the relationship `cover_image`\n  and will be removed from the response in a future release.\n\n\nFor an update request to succeed, your credential must have admin permission with the series.\n","parameters":[{"description":"Series to update.","in":"body","required":true,"schema":{"$ref":"#/definitions/SeriesUpdate"}}],"responses":{"200":{"description":"Success","schema":{"properties":{"data":{"$ref":"#/definitions/Series"},"links":{"$ref":"#/definitions/ResourceLink"}},"type":"object"}},"401":{"$ref":"#/responses/unauthorized"},"403":{"$ref":"#/responses/forbidden"},"406":{"$ref":"#/responses/not_acceptable"},"415":{"$ref":"#/responses/unsupported_media_type"},"422":{"$ref":"#/responses/unprocessable_entity"},"429":{"$ref":"#/responses/rate_limit_exceeded"},"507":{"$ref":"#/responses/insufficient_storage"}},"security":[{"api_key":[]}],"summary":"Update a specific series","tags":["Series"]}},"/series/{id}.jpeg":{"get":{"description":"Redirects to the image file URL (CDN or S3). Convenience endpoint for direct media access.","operationId":"getSeriesImage","parameters":[{"description":"The UUID of the series","format":"uuid","in":"path","name":"id","required":true,"type":"string"},{"default":"regular","description":"The image style/size to retrieve","enum":["regular","thumb","square-400","square-640","square-888","square-3000","itunes"],"in":"query","name":"style","required":false,"type":"string"}],"produces":["image/jpeg"],"responses":{"302":{"description":"Redirect to image file URL (CDN or S3)","headers":{"Location":{"description":"The URL of the image file (CDN or S3)","format":"uri","type":"string"}}},"401":{"$ref":"#/responses/unauthorized"},"403":{"$ref":"#/responses/forbidden"},"404":{"$ref":"#/responses/not_found"},"406":{"$ref":"#/responses/not_acceptable"}},"security":[{"api_key":[]}],"summary":"Get image file","tags":["Series"],"x-codeSamples":[{"label":"Ruby - Typhoeus","lang":"ruby","source":"# Get regular image (default)\nTyphoeus.get(\n  \"https://art19.com/series/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5.jpeg\",\n  accept_encoding: 'gzip',\n  headers: {\n    Accept:        'image/jpeg',\n    Authorization: 'Token token=\"YOUR_TOKEN\", credential=\"YOUR_CREDENTIAL_ID\"'\n  },\n  followlocation: true,\n  timeout: 10\n)\n\n# Get thumbnail\nTyphoeus.get(\n  \"https://art19.com/series/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5.jpeg?style=thumb\",\n  accept_encoding: 'gzip',\n  headers: {\n    Accept:        'image/jpeg',\n    Authorization: 'Token token=\"YOUR_TOKEN\", credential=\"YOUR_CREDENTIAL_ID\"'\n  },\n  followlocation: true,\n  timeout: 10\n)\n"},{"label":"JavaScript - Fetch","lang":"javascript","source":"// Get regular image (default)\nconst response1 = await fetch('https://art19.com/series/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5.jpeg', {\n  headers: {\n    'Accept': 'image/jpeg',\n    'Authorization': 'Token token=\"YOUR_TOKEN\", credential=\"YOUR_CREDENTIAL_ID\"'\n  },\n  redirect: 'follow'\n});\n\n// Get thumbnail\nconst response2 = await fetch('https://art19.com/series/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5.jpeg?style=thumb', {\n  headers: {\n    'Accept': 'image/jpeg',\n    'Authorization': 'Token token=\"YOUR_TOKEN\", credential=\"YOUR_CREDENTIAL_ID\"'\n  },\n  redirect: 'follow'\n});\n"},{"label":"PHP - cURL","lang":"php","source":"<?php\n// Get regular image (default)\n$request = curl_init();\ncurl_setopt($request, CURLOPT_URL, 'https://art19.com/series/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5.jpeg');\ncurl_setopt($request, CURLOPT_HTTPHEADER, [\n  'Accept: image/jpeg',\n  'Authorization: Token token=\"YOUR_TOKEN\", credential=\"YOUR_CREDENTIAL_ID\"'\n]);\ncurl_setopt($request, CURLOPT_FOLLOWLOCATION, true);\ncurl_setopt($request, CURLOPT_RETURNTRANSFER, true);\n$output = curl_exec($request);\ncurl_close($request);\n\n// Get thumbnail\n$request = curl_init();\ncurl_setopt($request, CURLOPT_URL, 'https://art19.com/series/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5.jpeg?style=thumb');\ncurl_setopt($request, CURLOPT_HTTPHEADER, [\n  'Accept: image/jpeg',\n  'Authorization: Token token=\"YOUR_TOKEN\", credential=\"YOUR_CREDENTIAL_ID\"'\n]);\ncurl_setopt($request, CURLOPT_FOLLOWLOCATION, true);\ncurl_setopt($request, CURLOPT_RETURNTRANSFER, true);\n$output = curl_exec($request);\ncurl_close($request);\n?>\n"},{"label":"cURL","lang":"shell","source":"# Get regular image (default)\ncurl -L 'https://art19.com/series/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5.jpeg' \\\n  -H 'Accept: image/jpeg' \\\n  -H 'Authorization: Token token=\"YOUR_TOKEN\", credential=\"YOUR_CREDENTIAL_ID\"' \\\n  --compressed\n\n# Get thumbnail\ncurl -L 'https://art19.com/series/ab17a8eb-3d5b-455d-84ac-15a98fde7bb5.jpeg?style=thumb' \\\n  -H 'Accept: image/jpeg' \\\n  -H 'Authorization: Token token=\"YOUR_TOKEN\", credential=\"YOUR_CREDENTIAL_ID\"' \\\n  --compressed\n"}]}}},"produces":["application/vnd.api+json"],"responses":{"conflict":{"description":"Conflict\n\nThe attempt to modify or delete a resource failed and the returned error document will provide\nfurther details to the cause of the problem.\n"},"forbidden":{"description":"Forbidden\n\nThe provided credential is not authorized to access the requested resource or collection.\n[See RFC 7231 § 6.5.3](https://tools.ietf.org/html/rfc7231#section-6.5.3)\n"},"insufficient_storage":{"description":"Insufficient Storage\n\nThe application is currently operating in READ ONLY mode and hence the server cannot store the representation\nneeded to successfully complete the request. This is most likely due to maintenance.\nPlease check [ART19's status page](https://status.art19.com) for further details.\n"},"not_acceptable":{"description":"Not Acceptable\n\nThe client requested a response format which cannot be satisfied. Ensure that you specify the\ncorrect `Accept` header. [See RFC 7231 § 6.5.6](https://tools.ietf.org/html/rfc7231#section-6.5.6).\n"},"not_found":{"description":"Not Found\n\nThe requested resource/collection does not exist. [See RFC 7231 § 6.5.4](https://tools.ietf.org/html/rfc7231#section-6.5.4).\n"},"rate_limit_exceeded":{"description":"Rate Limit Exceeded","headers":{"Retry-After":{"description":"The number of seconds after which the request can be retried.\nSince the rate limit is per minute, this value ranges from 1 to 59.\nConforms to [RFC 7231 § 7.1.3](https://tools.ietf.org/html/rfc7231#section-7.1.3).\n","type":"integer"}}},"unauthorized":{"description":"Unauthorized\n\nA valid credential was not supplied, but one is required.\n[See RFC 7235 § 3.1](https://tools.ietf.org/html/rfc7235#section-3.1).\nA `WWW-Authenticate` header is not currently returned.\n"},"unprocessable_entity":{"description":"Unprocessable Entity\n\nThe attempt to create or change a resource failed and the returned error document will provide\nfurther details to the cause of the problem.\n"},"unsupported_media_type":{"description":"Unsupported Media Type\n\nThe attempt to create or change a resource failed because the media type provided is not JSON:API.\nRefer to the returned error document for further details to the cause of the problem.\n"}},"schemes":["https"],"security":[{"api_key":[]}],"securityDefinitions":{"api_key":{"description":"Authentication is **REQUIRED** for all APIs using an API token, which is placed into an HTTP Authorization header.\n\nThis token is generated by ART19 Support and consists of a shared secret placed in the `token`\nparameter and a credential ID placed in the `credential` parameter.\n\nThe final Authorization header will look like this:\n\n```\nAuthorization: Token token=\"V2h5LCBoZWxsbyB0aGVyZSE=\", credential=\"8f71320c-fdbc-4934-b3b9-f1eda4fb39a9\"\n```\n","in":"header","name":"Authorization","type":"apiKey"}},"swagger":"2.0"}