Hubhopper Partner Integration API(s) - Production icon

Hubhopper Partner Integration API(s) - Production

This is an interactive document explaining the API(s) that could be used to fetch data from Hubhopper(https://hubhopper

COMMUNITYAPI KEY0 INSTALLS
OpenAPI Specificationv3.0
{
  "swagger": "2.0",
  "schemes": [
    "https"
  ],
  "host": "apis.hubhopper.com",
  "basePath": "/partner",
  "info": {
    "description": "This is an interactive document explaining the API(s) that could be used to fetch data from [Hubhopper](https://hubhopper.com). Use the api key provided to authorize `x-api-key` and test the API(s). The output data models are also available for reference.",
    "title": "Hubhopper Partner Integration API(s) - Production",
    "version": "v5",
    "x-apisguru-categories": [
      "entertainment"
    ],
    "x-origin": [
      {
        "format": "swagger",
        "url": "https://docs.hubhopper.com/api/integrations/partner/swagger.yaml",
        "version": "2.0"
      }
    ],
    "x-providerName": "hubhopper.com",
    "x-logo": {
      "url": "https://api.apis.guru/v2/cache/logo/https_apis.guru_assets_images_no-logo.svg"
    }
  },
  "securityDefinitions": {
    "api_key": {
      "in": "header",
      "name": "x-api-key",
      "type": "apiKey"
    },
    "partner_id": {
      "in": "header",
      "name": "hhPartnerId",
      "type": "apiKey"
    }
  },
  "tags": [
    {
      "description": "API(s) related to Categories.",
      "name": "Category"
    },
    {
      "description": "API(s) related to Podcasts and Episodes.",
      "name": "Podcast"
    },
    {
      "description": "API(s) related to Content Utility on Hubhopper.",
      "name": "Util"
    }
  ],
  "paths": {
    "/categories": {
      "get": {
        "description": "Get the list of all content categories.",
        "parameters": [
          {
            "description": "Provide the size of the page to fetch.",
            "in": "query",
            "name": "pageSize",
            "required": false,
            "type": "string"
          },
          {
            "description": "Provide the page number to fetch.",
            "in": "query",
            "name": "page",
            "required": false,
            "type": "string"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 response",
            "headers": {
              "Access-Control-Allow-Origin": {
                "type": "string"
              }
            },
            "schema": {
              "$ref": "#/definitions/CategoryList"
            }
          },
          "404": {
            "description": "404 response"
          },
          "500": {
            "description": "500 response"
          }
        },
        "security": [
          {
            "api_key": [],
            "partner_id": []
          }
        ],
        "tags": [
          "Category"
        ]
      }
    },
    "/categories/{categoryId}": {
      "get": {
        "description": "Get specific content category.",
        "parameters": [
          {
            "description": "Unique qualifier for a category.",
            "in": "path",
            "name": "categoryId",
            "required": true,
            "type": "string"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 response",
            "headers": {
              "Access-Control-Allow-Origin": {
                "type": "string"
              }
            },
            "schema": {
              "$ref": "#/definitions/SingleCategory"
            }
          },
          "404": {
            "description": "404 response"
          },
          "500": {
            "description": "500 response"
          }
        },
        "security": [
          {
            "api_key": [],
            "partner_id": []
          }
        ],
        "tags": [
          "Category"
        ]
      }
    },
    "/categories/{categoryId}/podcasts": {
      "get": {
        "description": "Get a list of all podcasts under a category.",
        "parameters": [
          {
            "description": "Unique qualifier for a category.",
            "in": "path",
            "name": "categoryId",
            "required": true,
            "type": "string"
          },
          {
            "description": "Provide the page number to fetch.",
            "in": "query",
            "name": "page",
            "required": false,
            "type": "string"
          },
          {
            "description": "Provide the size of the page to fetch.",
            "in": "query",
            "name": "pageSize",
            "required": false,
            "type": "string"
          },
          {
            "description": "Order the items by 'newest' | 'random'",
            "in": "query",
            "name": "order",
            "required": false,
            "type": "string"
          },
          {
            "description": "Takes filters like 'lang' in a url encoded json. \nExample:\n1)Single ->\n     var filterJson = {\"lang\":[\"en\"]};\n     var url = baseUrl+'?'+filters=enocdeURI(JSON.stringify(filterJson));\n2)Multiple ->\n     var filterJson = {\"lang\":[\"en\",\"hi\"]};\n     var url = baseUrl+'?'+filters=enocdeURI(JSON.stringify(filterJson));",
            "in": "query",
            "name": "filters",
            "required": false,
            "type": "string"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 response",
            "headers": {
              "Access-Control-Allow-Origin": {
                "type": "string"
              }
            },
            "schema": {
              "$ref": "#/definitions/PodcastList"
            }
          },
          "404": {
            "description": "404 response"
          },
          "500": {
            "description": "500 response"
          }
        },
        "security": [
          {
            "api_key": [],
            "partner_id": []
          }
        ],
        "tags": [
          "Category"
        ]
      }
    },
    "/podcasts": {
      "get": {
        "description": "Get the list of all podcasts.",
        "parameters": [
          {
            "description": "Provide the page number to fetch.",
            "in": "query",
            "name": "page",
            "required": false,
            "type": "string"
          },
          {
            "description": "Provide the size of the page to fetch.",
            "in": "query",
            "name": "pageSize",
            "required": false,
            "type": "string"
          },
          {
            "description": "Order the items by 'newest' | 'random'",
            "in": "query",
            "name": "order",
            "required": false,
            "type": "string"
          },
          {
            "description": "Takes filters like 'lang' in a url encoded json. \nExample:\n1)Single ->\n     var filterJson = {\"lang\":[\"en\"]};\n     var url = baseUrl+'?'+filters=enocdeURI(JSON.stringify(filterJson));\n2)Multiple ->\n     var filterJson = {\"lang\":[\"en\",\"hi\"]};\n     var url = baseUrl+'?'+filters=enocdeURI(JSON.stringify(filterJson));",
            "in": "query",
            "name": "filters",
            "required": false,
            "type": "string"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 response",
            "headers": {
              "Access-Control-Allow-Origin": {
                "type": "string"
              }
            },
            "schema": {
              "$ref": "#/definitions/PodcastList"
            }
          },
          "404": {
            "description": "404 response"
          },
          "500": {
            "description": "500 response"
          }
        },
        "security": [
          {
            "api_key": [],
            "partner_id": []
          }
        ],
        "tags": [
          "Podcast"
        ]
      }
    },
    "/podcasts/{podcastId}": {
      "get": {
        "description": "Get a single Podcast.",
        "parameters": [
          {
            "description": "Unique qualifier for a podcast.",
            "in": "path",
            "name": "podcastId",
            "required": true,
            "type": "string"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 response",
            "headers": {
              "Access-Control-Allow-Origin": {
                "type": "string"
              }
            },
            "schema": {
              "$ref": "#/definitions/SinglePodcast"
            }
          },
          "404": {
            "description": "404 response",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "500": {
            "description": "500 response"
          }
        },
        "security": [
          {
            "api_key": [],
            "partner_id": []
          }
        ],
        "tags": [
          "Podcast"
        ]
      }
    },
    "/podcasts/{podcastId}/episodes": {
      "get": {
        "description": "Get a list of all episodes under a podcast.",
        "parameters": [
          {
            "description": "Provide the page number to fetch.",
            "in": "query",
            "name": "page",
            "required": false,
            "type": "string"
          },
          {
            "description": "Provide the size of the page to fetch.",
            "in": "query",
            "name": "pageSize",
            "required": false,
            "type": "string"
          },
          {
            "description": "Order the items by 'newest' | 'random'",
            "in": "query",
            "name": "order",
            "required": false,
            "type": "string"
          },
          {
            "description": "Takes filters like 'lang' in a url encoded json. \nExample:\n1)Single ->\n     var filterJson = {\"lang\":[\"en\"]};\n     var url = baseUrl+'?'+filters=enocdeURI(JSON.stringify(filterJson));\n2)Multiple ->\n     var filterJson = {\"lang\":[\"en\",\"hi\"]};\n     var url = baseUrl+'?'+filters=enocdeURI(JSON.stringify(filterJson));",
            "in": "query",
            "name": "filters",
            "required": false,
            "type": "string"
          },
          {
            "description": "Unique qualifier for a podcast.",
            "in": "path",
            "name": "podcastId",
            "required": true,
            "type": "string"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 response",
            "headers": {
              "Access-Control-Allow-Origin": {
                "type": "string"
              }
            },
            "schema": {
              "$ref": "#/definitions/PodcastEpisodeList"
            }
          },
          "404": {
            "description": "404 response"
          },
          "500": {
            "description": "500 response"
          }
        },
        "security": [
          {
            "api_key": [],
            "partner_id": []
          }
        ],
        "tags": [
          "Podcast"
        ]
      }
    },
    "/util/languages": {
      "get": {
        "parameters": [
          {
            "description": "Provide the size of the page to fetch.",
            "in": "query",
            "name": "pageSize",
            "required": false,
            "type": "string"
          },
          {
            "description": "Provide the page number to fetch.",
            "in": "query",
            "name": "page",
            "required": false,
            "type": "string"
          }
        ],
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 response",
            "schema": {
              "$ref": "#/definitions/LanguageList"
            }
          },
          "204": {
            "description": "204 response"
          },
          "401": {
            "description": "401 response"
          },
          "404": {
            "description": "404 response"
          },
          "500": {
            "description": "500 response"
          }
        },
        "security": [
          {
            "api_key": [],
            "partner_id": []
          }
        ],
        "tags": [
          "Util"
        ]
      }
    }
  },
  "definitions": {
    "CategoryList": {
      "properties": {
        "categories": {
          "items": {
            "$ref": "#/definitions/CategoryListCategoriesItem"
          },
          "type": "array"
        },
        "noOfPages": {
          "type": "integer"
        },
        "page": {
          "type": "integer"
        },
        "pageSize": {
          "type": "integer"
        },
        "total": {
          "type": "integer"
        }
      },
      "title": "CategoryListOutputModel",
      "type": "object"
    },
    "CategoryListCategoriesItem": {
      "properties": {
        "id": {
          "type": "integer"
        },
        "name": {
          "type": "string"
        },
        "url": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "Empty": {
      "title": "Empty Schema",
      "type": "object"
    },
    "Error": {
      "properties": {
        "message": {
          "type": "string"
        }
      },
      "title": "Error Schema",
      "type": "object"
    },
    "LanguageItem": {
      "properties": {
        "code": {
          "type": "string"
        },
        "id": {
          "type": "integer"
        },
        "name": {
          "type": "string"
        }
      },
      "title": "LanguageItem",
      "type": "object"
    },
    "LanguageList": {
      "properties": {
        "languages": {
          "items": {
            "$ref": "#/definitions/LanguageItem"
          },
          "type": "array"
        },
        "noOfPages": {
          "type": "integer"
        },
        "page": {
          "type": "integer"
        },
        "pageSize": {
          "type": "integer"
        },
        "total": {
          "type": "integer"
        }
      },
      "title": "LanguageList",
      "type": "object"
    },
    "PodcastEpisodeList": {
      "properties": {
        "episodes": {
          "items": {
            "$ref": "#/definitions/PodcastEpisodeListEpisodesItem"
          },
          "type": "array"
        },
        "noOfPages": {
          "type": "integer"
        },
        "page": {
          "type": "integer"
        },
        "pageSize": {
          "type": "integer"
        },
        "total": {
          "type": "integer"
        }
      },
      "title": "PodcastEpisodeListOutputModel",
      "type": "object"
    },
    "PodcastEpisodeListEpisodesItem": {
      "properties": {
        "author": {
          "type": "string"
        },
        "description": {
          "type": "string"
        },
        "episodeId": {
          "type": "integer"
        },
        "episodeUrl": {
          "type": "string"
        },
        "image": {
          "type": "string"
        },
        "isNew": {
          "type": "boolean"
        },
        "play": {
          "properties": {
            "duration": {
              "type": "string"
            },
            "durationInSec": {
              "type": "integer"
            },
            "size": {
              "type": "string"
            },
            "type": {
              "type": "string"
            },
            "url": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "podcastId": {
          "type": "integer"
        },
        "podcastUrl": {
          "type": "string"
        },
        "publishTime": {
          "type": "string"
        },
        "publishedOn": {
          "type": "integer"
        },
        "title": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "PodcastList": {
      "properties": {
        "noOfPages": {
          "type": "integer"
        },
        "page": {
          "type": "integer"
        },
        "pageSize": {
          "type": "integer"
        },
        "podcasts": {
          "items": {
            "$ref": "#/definitions/PodcastListPodcastsItem"
          },
          "type": "array"
        },
        "total": {
          "type": "integer"
        }
      },
      "title": "PodcastListOutputModel",
      "type": "object"
    },
    "PodcastListPodcastsItem": {
      "properties": {
        "author": {
          "type": "string"
        },
        "category": {
          "properties": {
            "id": {
              "type": "integer"
            },
            "name": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "categoryId": {
          "type": "integer"
        },
        "description": {
          "type": "string"
        },
        "episodes": {
          "type": "integer"
        },
        "featured": {
          "properties": {
            "id": {
              "type": "integer"
            },
            "name": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "featuredId": {
          "type": "integer"
        },
        "image": {
          "type": "string"
        },
        "keywords": {
          "type": "string"
        },
        "latestEpisodeTime": {
          "type": "string"
        },
        "podcastId": {
          "type": "integer"
        },
        "title": {
          "type": "string"
        },
        "url": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "SingleCategory": {
      "description": "Model to fetch a single category.",
      "properties": {
        "category": {
          "$ref": "#/definitions/SingleCategoryCategory"
        }
      },
      "title": "SingleCategoryOutputModel",
      "type": "object"
    },
    "SingleCategoryCategory": {
      "properties": {
        "id": {
          "type": "integer"
        },
        "name": {
          "type": "string"
        },
        "url": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "SinglePodcast": {
      "properties": {
        "podcast": {
          "$ref": "#/definitions/SinglePodcastPodcast"
        }
      },
      "title": "SinglePodcastOutputModel",
      "type": "object"
    },
    "SinglePodcastPodcast": {
      "properties": {
        "author": {
          "type": "string"
        },
        "category": {
          "properties": {
            "id": {
              "type": "integer"
            },
            "name": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "categoryId": {
          "type": "integer"
        },
        "description": {
          "type": "string"
        },
        "episodes": {
          "type": "integer"
        },
        "featured": {
          "properties": {
            "id": {
              "type": "integer"
            },
            "name": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "featuredId": {
          "type": "integer"
        },
        "image": {
          "type": "string"
        },
        "keywords": {
          "type": "string"
        },
        "latest_episode_time": {
          "type": "string"
        },
        "podcastId": {
          "type": "integer"
        },
        "title": {
          "type": "string"
        },
        "url": {
          "type": "string"
        },
        "website": {
          "type": "string"
        }
      },
      "type": "object"
    }
  }
}