Skip to content

Instantly share code, notes, and snippets.

@mcat
Created February 26, 2023 20:11
Show Gist options
  • Select an option

  • Save mcat/ccfb247c66d74958e6e36f047db7d8c5 to your computer and use it in GitHub Desktop.

Select an option

Save mcat/ccfb247c66d74958e6e36f047db7d8c5 to your computer and use it in GitHub Desktop.

Revisions

  1. mcat created this gist Feb 26, 2023.
    1,580 changes: 1,580 additions & 0 deletions captivate.yml
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,1580 @@
    openapi: 3.0.0
    info:
    title: Captivate API
    description: The World's Only Growth-Oriented Podcast Host.™
    version: 1.0.0
    servers:
    - url: http://{{url}}
    components:
    securitySchemes:
    bearerAuth:
    type: http
    scheme: bearer
    security:
    - bearerAuth: []
    tags:
    - name: Authentication
    - name: Users
    - name: Shows
    - name: Episodes
    - name: Media
    - name: Analytics
    paths:
    /authenticate/token:
    post:
    tags:
    - Authentication
    summary: Authenticate User
    description: >-
    All requests must be authenticated using the token for the user, you can
    get the token for the user via this request using the users ID and their
    API token.
    requestBody:
    content:
    multipart/form-data:
    schema:
    type: object
    properties:
    username:
    type: string
    description: >-
    This is the user ID in the users API section of their
    dashboard.
    example: '{{USERID}}'
    token:
    type: string
    description: >-
    This is the API token in the users API section of their
    dashboard.
    example: '{{USERTOKEN}}'
    responses:
    '200':
    description: OK
    headers:
    Access-Control-Allow-Methods:
    schema:
    type: string
    example: POST, PUT, OPTIONS, DELETE, GET
    Access-Control-Allow-Origin:
    schema:
    type: string
    example: '*'
    Access-Control-Allow-Headers:
    schema:
    type: string
    example: >-
    Origin, X-Requested-With, Cache-Control, Content-Type, Accept,
    Authorization
    Vary:
    schema:
    type: string
    example: X-HTTP-Method-Override, Accept-Encoding
    Content-Type:
    schema:
    type: string
    example: application/json; charset=utf-8
    Content-Length:
    schema:
    type: integer
    example: '1022'
    ETag:
    schema:
    type: string
    example: W/"3fe-DftzO8QOhevluDXeQNqWegsNjos"
    Date:
    schema:
    type: string
    example: Mon, 07 Oct 2019 13:09:14 GMT
    Connection:
    schema:
    type: string
    example: keep-alive
    content:
    application/json:
    schema:
    type: object
    example:
    user:
    id: '{{USERID}}'
    email: [email protected]
    status: active
    admin: 0
    first_name: Demo
    last_name: User
    default_show: xxxxxx-xxxx-xxxxx
    default_show_order: created
    created: '0000-00-00T00:00:00.000Z'
    profile_picture: >-
    https://media.captivate.fm/profile_picture/xxxxxx-xxxx-xxxxx/example.jpg
    token: >-
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
    /users/{id}:
    get:
    tags:
    - Users
    summary: Get User
    security:
    - bearerAuth: []
    parameters:
    - name: id
    in: path
    schema:
    type: string
    required: true
    description: The ID of the user we want to get.
    example: '{{USERID}}'
    responses:
    '200':
    description: OK
    headers:
    Access-Control-Allow-Methods:
    schema:
    type: string
    example: POST, PUT, PATCH, OPTIONS, DELETE, GET
    Access-Control-Allow-Origin:
    schema:
    type: string
    example: '*'
    Access-Control-Allow-Headers:
    schema:
    type: string
    example: >-
    Origin, X-Requested-With, Cache-Control, Content-Type, Accept,
    Authorization
    Content-Type:
    schema:
    type: string
    example: application/hal+json; charset=utf-8
    ETag:
    schema:
    type: string
    example: W/"4c8-7u2vqNWuZ/s3e4Vjt7KDZGwsgNQ"
    Vary:
    schema:
    type: string
    example: Accept-Encoding
    Content-Encoding:
    schema:
    type: string
    example: gzip
    Date:
    schema:
    type: string
    example: Wed, 08 Dec 2021 08:01:01 GMT
    Connection:
    schema:
    type: string
    example: keep-alive
    Keep-Alive:
    schema:
    type: string
    example: timeout=5
    Transfer-Encoding:
    schema:
    type: string
    example: chunked
    content:
    application/json:
    schema:
    type: object
    example:
    _links:
    self:
    href: /users/{{USERID}}
    user:
    additional_label_1: null
    additional_url_1: https://rebelbasemedia.io
    admin: 1
    biography: ''
    created: '2021-06-28T12:15:32.000Z'
    default_show: '{{SHOWID}}'
    default_show_order: published_date
    email: [email protected]
    fb_group_url: http://facebook.com/mygroup
    fb_id: null
    fb_page_url: http://facebook.com/mypage
    first_name: Ed
    google_id: null
    id: '{{USERID}}'
    insta_username: myinstagram
    last_login: '2021-12-06T12:33:57.000Z'
    last_name: Townend
    last_updated: '2021-12-08T07:57:31.000Z'
    linkedin_url: http://linkedin.com/myprofile
    onboarded: 1
    profile_picture: https://media.captivate.fm/profile_picture/xxx/xxx.png
    pw_id: null
    status: active
    twitter_username: mytwitter
    youtube_url: https://www.youtube.com/c/RebelBaseMedia
    /users/{id}/shows:
    get:
    tags:
    - Users
    summary: Get Users Shows
    description: The shows that this user can access to regardless of what role they are.
    security:
    - bearerAuth: []
    parameters:
    - name: id
    in: path
    schema:
    type: string
    required: true
    description: The ID of the user whos shows you want to view.
    example: '{{USERID}}'
    responses:
    '200':
    description: OK
    headers:
    Access-Control-Allow-Methods:
    schema:
    type: string
    example: POST, PUT, PATCH, OPTIONS, DELETE, GET
    Access-Control-Allow-Origin:
    schema:
    type: string
    example: '*'
    Access-Control-Allow-Headers:
    schema:
    type: string
    example: >-
    Origin, X-Requested-With, Cache-Control, Content-Type, Accept,
    Authorization
    Content-Type:
    schema:
    type: string
    example: application/hal+json; charset=utf-8
    ETag:
    schema:
    type: string
    example: W/"962-gpQSqr3xmGhFovNqNjm0RGSsMM8"
    Vary:
    schema:
    type: string
    example: Accept-Encoding
    Content-Encoding:
    schema:
    type: string
    example: gzip
    Date:
    schema:
    type: string
    example: Wed, 08 Dec 2021 08:27:49 GMT
    Connection:
    schema:
    type: string
    example: keep-alive
    Keep-Alive:
    schema:
    type: string
    example: timeout=5
    Transfer-Encoding:
    schema:
    type: string
    example: chunked
    content:
    application/json:
    schema:
    type: object
    example:
    _links:
    self:
    href: /users/{{USERID}}/shows
    shows:
    - artwork: https://artwork.captivate.fm/xxx/xxx.png
    id: '{{SHOWID}}'
    title: Show title
    description: All about my show
    created: '2021-06-28T12:25:35.000Z'
    import: '0'
    failed_import: 0
    imported_rss_feed: null
    status: active
    private: 0
    time_zone: Europe/Isle_of_Man
    role: owner
    author: Mr. Happy
    import_errors: null
    team:
    - first_name: James
    last_name: Brown
    profile_picture: https://media.captivate.fm/profile_picture/xxx/xxx.png
    role: owner
    - first_name: Peter
    last_name: Pan
    profile_picture: null
    role: custom
    success: true
    /shows/{id}/:
    get:
    tags:
    - Shows
    summary: Get Show
    description: Get the show information by the show ID.
    security:
    - bearerAuth: []
    parameters:
    - name: id
    in: path
    schema:
    type: string
    required: true
    description: The ID of the show you are trying to view.
    example: '{{SHOWID}}'
    responses:
    '200':
    description: OK
    headers:
    Access-Control-Allow-Methods:
    schema:
    type: string
    example: POST, PUT, PATCH, OPTIONS, DELETE, GET
    Access-Control-Allow-Origin:
    schema:
    type: string
    example: '*'
    Access-Control-Allow-Headers:
    schema:
    type: string
    example: >-
    Origin, X-Requested-With, Cache-Control, Content-Type, Accept,
    Authorization
    Content-Type:
    schema:
    type: string
    example: application/hal+json; charset=utf-8
    ETag:
    schema:
    type: string
    example: W/"c53-AiKhZIEoEBvcgRwb3XqrUwqplEs"
    Vary:
    schema:
    type: string
    example: Accept-Encoding
    Content-Encoding:
    schema:
    type: string
    example: gzip
    Date:
    schema:
    type: string
    example: Wed, 08 Dec 2021 08:59:00 GMT
    Connection:
    schema:
    type: string
    example: keep-alive
    Keep-Alive:
    schema:
    type: string
    example: timeout=5
    Transfer-Encoding:
    schema:
    type: string
    example: chunked
    content:
    application/json:
    schema:
    type: object
    example:
    _links:
    self:
    href: /shows/{{SHOWID}}
    success: true
    show:
    id: '{{SHOWID}}'
    created: '2021-07-08T13:46:26.000Z'
    last_feed_generation: '2021-12-07T14:21:53.000Z'
    status: active
    title: My Show
    artwork: https://artwork.captivate.fm/xxx/xxx.png
    link: https://www.myshow.org
    description: About my show
    categories: '["05.03","12.09","02.08"]'
    google_categories: null
    order: DESC
    summary: Summary of my show
    author: Podcast Inc.
    subtitle: Become an expert podcasting
    copyright: Podcast Inc, 2020
    name: Podcast Inc.
    itunes_email: [email protected]
    explicit: clean
    limit: 266
    type: episodic
    keywords: ''
    donation_link: ''
    donation_text: ''
    site_id: null
    file_name: xxx.jpg
    season: episodic
    time_zone: America/Fort_Nelson
    import: '1'
    failed_import: 0
    imported_from: Libsyn
    third_party_analytics: 'null'
    prefixes: '[]'
    spotify_uri: null
    spotify_status: null
    default_time: ''
    imported_rss_feed: http://myshow.libsyn.com/rss
    complete_show: null
    language: en
    pw_site_id: null
    pw_client_id: null
    transparency_mode: 0
    audience_avatar: ''
    captivate_sync_url: null
    amazon_submitted: null
    country_of_origin: null
    gaana_submitted: null
    jiosaavn_submitted: null
    podcast_index_submitted: null
    player_fm_submitted: null
    import_cancel_key: xxx
    private: 0
    deezer_submitted: null
    import_errors: null
    google_block: null
    itunes_block: null
    default_pre_roll_media_id: null
    default_post_roll_media_id: null
    feature_preview: 1
    default_shownotes_template: new-default
    amie_bulk_edit_count: 0
    show_link: my-show
    enabled_site: 1
    custom_domain: null
    sync_enabled: 1
    sync_webhook: http://myshow.org/wp-json/captivate-sync/v1/sync
    network_id: '{{NETWORKID}}'
    /shows/{id}/feed:
    get:
    tags:
    - Shows
    summary: Get Show Feed URL
    description: >-
    You can easily get the RSS feed URL for this particular show running
    this route.
    security:
    - bearerAuth: []
    parameters:
    - name: id
    in: path
    schema:
    type: string
    required: true
    description: The ID of the show you want to get the RSS feed for.
    example: '{{SHOWID}}'
    responses:
    '200':
    description: OK
    headers:
    Access-Control-Allow-Methods:
    schema:
    type: string
    example: POST, PUT, OPTIONS, DELETE, GET
    Access-Control-Allow-Origin:
    schema:
    type: string
    example: '*'
    Access-Control-Allow-Headers:
    schema:
    type: string
    example: >-
    Origin, X-Requested-With, Cache-Control, Content-Type, Accept,
    Authorization
    Content-Type:
    schema:
    type: string
    example: application/hal+json; charset=utf-8
    Content-Length:
    schema:
    type: integer
    example: '160'
    ETag:
    schema:
    type: string
    example: W/"a0-O2UI6f8icdXWX2YITycNXGRjdtQ"
    Vary:
    schema:
    type: string
    example: Accept-Encoding
    Date:
    schema:
    type: string
    example: Tue, 08 Oct 2019 21:25:36 GMT
    Connection:
    schema:
    type: string
    example: keep-alive
    content:
    application/json:
    schema:
    type: object
    example:
    feed: https://feeds.captivate.fm/xxxxxxxxx/
    /insights/{SHOWID}/overview:
    get:
    tags:
    - Analytics
    summary: Get Overview Analytics for Podcast
    parameters:
    - name: start
    in: query
    schema:
    type: string
    description: (optional) Select the startpoint for the period
    example: '{{START_DATE}}'
    - name: end
    in: query
    schema:
    type: string
    description: (optional) Select the endpoint for the period
    example: '{{END_DATE}}'
    - name: includeTopEpisodes
    in: query
    schema:
    type: boolean
    description: >-
    (optional) Get top episodes in terms of downloads over the given
    period
    example: 'true'
    - name: SHOWID
    in: path
    schema:
    type: string
    required: true
    responses:
    '200':
    description: Successful response
    content:
    application/json: {}
    /insights/{SHOWID}/overview/{EPISODEID}:
    get:
    tags:
    - Analytics
    summary: Get Overview Analytics for a specific Episode
    parameters:
    - name: start
    in: query
    schema:
    type: string
    description: (optional) Select the startpoint for the period
    example: '{{START_DATE}}'
    - name: end
    in: query
    schema:
    type: string
    description: (optional) Select the endpoint for the period
    example: '{{END_DATE}}'
    - name: SHOWID
    in: path
    schema:
    type: string
    required: true
    - name: EPISODEID
    in: path
    schema:
    type: string
    required: true
    responses:
    '200':
    description: OK
    headers:
    Access-Control-Allow-Methods:
    schema:
    type: string
    example: POST, PUT, PATCH, OPTIONS, DELETE, GET
    Access-Control-Allow-Origin:
    schema:
    type: string
    example: '*'
    Access-Control-Allow-Headers:
    schema:
    type: string
    example: >-
    Origin, X-Requested-With, Cache-Control, Content-Type, Accept,
    Authorization
    Content-Type:
    schema:
    type: string
    example: application/json; charset=utf-8
    Content-Length:
    schema:
    type: integer
    example: '33'
    ETag:
    schema:
    type: string
    example: W/"21-1/1Ep2IFJUVQ07Qe952Pvcnbkdc"
    cache-control:
    schema:
    type: string
    example: max-age=5
    Vary:
    schema:
    type: string
    example: Accept-Encoding
    Date:
    schema:
    type: string
    example: Tue, 01 Nov 2022 11:41:56 GMT
    Connection:
    schema:
    type: string
    example: keep-alive
    Keep-Alive:
    schema:
    type: string
    example: timeout=5
    content:
    application/json:
    schema:
    type: object
    example:
    hits: 61
    unique_listeners: 59
    /insights/{SHOWID}/averages:
    get:
    tags:
    - Analytics
    summary: Get Average Analytics for Podcast
    parameters:
    - name: intervalDays
    in: query
    schema:
    type: integer
    description: >-
    The length of the interval in days which will be used for the
    average.
    example: '28'
    - name: SHOWID
    in: path
    schema:
    type: string
    required: true
    responses:
    '200':
    description: OK
    headers:
    Access-Control-Allow-Methods:
    schema:
    type: string
    example: POST, PUT, PATCH, OPTIONS, DELETE, GET
    Access-Control-Allow-Origin:
    schema:
    type: string
    example: '*'
    Access-Control-Allow-Headers:
    schema:
    type: string
    example: >-
    Origin, X-Requested-With, Cache-Control, Content-Type, Accept,
    Authorization
    Content-Type:
    schema:
    type: string
    example: application/json; charset=utf-8
    Content-Length:
    schema:
    type: integer
    example: '67'
    ETag:
    schema:
    type: string
    example: W/"43-C4C43U4IEwbKM9NUPxS4Jr0YPpE"
    cache-control:
    schema:
    type: string
    example: max-age=5
    Vary:
    schema:
    type: string
    example: Accept-Encoding
    Date:
    schema:
    type: string
    example: Tue, 01 Nov 2022 11:39:48 GMT
    Connection:
    schema:
    type: string
    example: keep-alive
    Keep-Alive:
    schema:
    type: string
    example: timeout=5
    content:
    application/json:
    schema:
    type: object
    example:
    hits: 34503
    average: 757
    numberOfIntervals: 45.607142857142854
    /insights/{SHOWID}/total:
    get:
    tags:
    - Analytics
    summary: Get All-Time Total for Podcast
    parameters:
    - name: SHOWID
    in: path
    schema:
    type: string
    required: true
    responses:
    '200':
    description: OK
    headers:
    Access-Control-Allow-Methods:
    schema:
    type: string
    example: POST, PUT, PATCH, OPTIONS, DELETE, GET
    Access-Control-Allow-Origin:
    schema:
    type: string
    example: '*'
    Access-Control-Allow-Headers:
    schema:
    type: string
    example: >-
    Origin, X-Requested-With, Cache-Control, Content-Type, Accept,
    Authorization
    Content-Type:
    schema:
    type: string
    example: application/json; charset=utf-8
    Content-Length:
    schema:
    type: integer
    example: '14'
    ETag:
    schema:
    type: string
    example: W/"e-jYMQzJqZ/Yk5NFpNjKt7XGXr8QM"
    cache-control:
    schema:
    type: string
    example: max-age=5
    Vary:
    schema:
    type: string
    example: Accept-Encoding
    Date:
    schema:
    type: string
    example: Tue, 01 Nov 2022 11:51:34 GMT
    Connection:
    schema:
    type: string
    example: keep-alive
    Keep-Alive:
    schema:
    type: string
    example: timeout=5
    content:
    application/json:
    schema:
    type: object
    example:
    hits: 34503
    /insights/{SHOWID}/total/{EPISODEID}:
    get:
    tags:
    - Analytics
    summary: Get All-Time Total for Episode
    parameters:
    - name: SHOWID
    in: path
    schema:
    type: string
    required: true
    - name: EPISODEID
    in: path
    schema:
    type: string
    required: true
    responses:
    '200':
    description: OK
    headers:
    Access-Control-Allow-Methods:
    schema:
    type: string
    example: POST, PUT, PATCH, OPTIONS, DELETE, GET
    Access-Control-Allow-Origin:
    schema:
    type: string
    example: '*'
    Access-Control-Allow-Headers:
    schema:
    type: string
    example: >-
    Origin, X-Requested-With, Cache-Control, Content-Type, Accept,
    Authorization
    Content-Type:
    schema:
    type: string
    example: application/json; charset=utf-8
    Content-Length:
    schema:
    type: integer
    example: '11'
    ETag:
    schema:
    type: string
    example: W/"b-QirWq4YbPwihNE3VaLP6AxAfgW4"
    cache-control:
    schema:
    type: string
    example: max-age=5
    Vary:
    schema:
    type: string
    example: Accept-Encoding
    Date:
    schema:
    type: string
    example: Tue, 01 Nov 2022 11:53:07 GMT
    Connection:
    schema:
    type: string
    example: keep-alive
    Keep-Alive:
    schema:
    type: string
    example: timeout=5
    content:
    application/json:
    schema:
    type: object
    example:
    hits: 73
    /insights/{SHOWID}/monthly:
    get:
    tags:
    - Analytics
    summary: Get Month-by-Month Analytics for Podcast
    parameters:
    - name: SHOWID
    in: path
    schema:
    type: string
    required: true
    responses:
    '200':
    description: OK
    headers:
    Access-Control-Allow-Methods:
    schema:
    type: string
    example: POST, PUT, PATCH, OPTIONS, DELETE, GET
    Access-Control-Allow-Origin:
    schema:
    type: string
    example: '*'
    Access-Control-Allow-Headers:
    schema:
    type: string
    example: >-
    Origin, X-Requested-With, Cache-Control, Content-Type, Accept,
    Authorization
    Content-Type:
    schema:
    type: string
    example: application/json; charset=utf-8
    Content-Length:
    schema:
    type: integer
    example: '443'
    ETag:
    schema:
    type: string
    example: W/"1bb-PFVejSmkVQrberpjMGJKKzT92yA"
    cache-control:
    schema:
    type: string
    example: max-age=5
    Vary:
    schema:
    type: string
    example: Accept-Encoding
    Date:
    schema:
    type: string
    example: Tue, 01 Nov 2022 11:58:58 GMT
    Connection:
    schema:
    type: string
    example: keep-alive
    Keep-Alive:
    schema:
    type: string
    example: timeout=5
    content:
    application/json:
    schema:
    type: object
    example:
    past_12_months:
    - x: November 2021
    'y': 678
    - x: December 2021
    'y': 492
    - x: January 2022
    'y': 727
    - x: February 2022
    'y': 691
    - x: March 2022
    'y': 573
    - x: April 2022
    'y': 945
    - x: May 2022
    'y': 663
    - x: June 2022
    'y': 672
    - x: July 2022
    'y': 1043
    - x: August 2022
    'y': 389
    - x: September 2022
    'y': 583
    - x: October 2022
    'y': 583
    - x: November 2022
    'y': 4
    this_month: 4
    total_downloads_in_past_12_months: 8043
    /insights/{SHOWID}/monthly/{EPISODEID}:
    get:
    tags:
    - Analytics
    summary: Get Month-by-Month Analytics for Episode
    parameters:
    - name: SHOWID
    in: path
    schema:
    type: string
    required: true
    - name: EPISODEID
    in: path
    schema:
    type: string
    required: true
    responses:
    '200':
    description: OK
    headers:
    Access-Control-Allow-Methods:
    schema:
    type: string
    example: POST, PUT, PATCH, OPTIONS, DELETE, GET
    Access-Control-Allow-Origin:
    schema:
    type: string
    example: '*'
    Access-Control-Allow-Headers:
    schema:
    type: string
    example: >-
    Origin, X-Requested-With, Cache-Control, Content-Type, Accept,
    Authorization
    Content-Type:
    schema:
    type: string
    example: application/json; charset=utf-8
    Content-Length:
    schema:
    type: integer
    example: '417'
    ETag:
    schema:
    type: string
    example: W/"1a1-+WJhDkZijzYt7ZxUKGGSqPNHpdk"
    cache-control:
    schema:
    type: string
    example: max-age=5
    Vary:
    schema:
    type: string
    example: Accept-Encoding
    Date:
    schema:
    type: string
    example: Tue, 01 Nov 2022 11:59:41 GMT
    Connection:
    schema:
    type: string
    example: keep-alive
    Keep-Alive:
    schema:
    type: string
    example: timeout=5
    content:
    application/json:
    schema:
    type: object
    example:
    past_12_months:
    - x: November 2021
    'y': 0
    - x: December 2021
    'y': 0
    - x: January 2022
    'y': 0
    - x: February 2022
    'y': 0
    - x: March 2022
    'y': 0
    - x: April 2022
    'y': 0
    - x: May 2022
    'y': 0
    - x: June 2022
    'y': 0
    - x: July 2022
    'y': 0
    - x: August 2022
    'y': 0
    - x: September 2022
    'y': 70
    - x: October 2022
    'y': 3
    - x: November 2022
    'y': 0
    this_month: 0
    total_downloads_in_past_12_months: 73
    /insights/{SHOWID}/range:
    post:
    tags:
    - Analytics
    summary: Get Analytics in Range for Podcast
    requestBody:
    content:
    application/json:
    schema:
    type: object
    example:
    start: '{{START_DATE}}'
    end: '{{END_DATE}}'
    interval: 1d
    timezone: America/New_York
    countryCode: null
    types:
    - byLocation
    - byUserAgentBrowser
    - byUserAgentOs
    - byUserAgentDevice
    - byEpisode
    - byPrivateSubscriber
    parameters:
    - name: SHOWID
    in: path
    schema:
    type: string
    required: true
    responses:
    '200':
    description: Successful response
    content:
    application/json: {}
    /insights/{SHOWID}/range/{EPISODEID}:
    post:
    tags:
    - Analytics
    summary: Get Analytics in Range for Episode
    requestBody:
    content:
    application/json:
    schema:
    type: object
    example:
    start: '{{START_DATE}}'
    end: '{{END_DATE}}'
    interval: 1d
    timezone: America/New_York
    countryCode: null
    types:
    - byLocation
    - byUserAgentBrowser
    - byUserAgentOs
    - byUserAgentDevice
    - byPrivateSubscriber
    parameters:
    - name: SHOWID
    in: path
    schema:
    type: string
    required: true
    - name: EPISODEID
    in: path
    schema:
    type: string
    required: true
    responses:
    '200':
    description: Successful response
    content:
    application/json: {}
    /insights/{SHOWID}/compare:
    post:
    tags:
    - Analytics
    summary: Get Analytics Comparison between Episodes
    requestBody:
    content:
    application/json:
    schema:
    type: object
    example:
    - id: '{{EPISODE_ID}}'
    title: My Episode Title
    published_date: '{{END_DATE}}'
    - id: '{{EPISODE_ID}}'
    title: My Episode Title 2
    published_date: '{{START_DATE}}'
    parameters:
    - name: SHOWID
    in: path
    schema:
    type: string
    required: true
    responses:
    '200':
    description: Successful response
    content:
    application/json: {}
    /insights/{SHOWID}/web-player/{EPISODEID}:
    post:
    tags:
    - Analytics
    summary: Get Web Player Analytics for Podcast
    requestBody:
    content:
    application/json:
    schema:
    type: object
    example:
    dateRange:
    gte: '{{START_DATE}}'
    lte: '{{END_DATE}}'
    duration: '1700'
    timezone: America/New_York
    parameters:
    - name: SHOWID
    in: path
    schema:
    type: string
    required: true
    - name: EPISODEID
    in: path
    schema:
    type: string
    required: true
    responses:
    '200':
    description: OK
    headers:
    Access-Control-Allow-Methods:
    schema:
    type: string
    example: POST, PUT, PATCH, OPTIONS, DELETE, GET
    Access-Control-Allow-Origin:
    schema:
    type: string
    example: '*'
    Access-Control-Allow-Headers:
    schema:
    type: string
    example: >-
    Origin, X-Requested-With, Cache-Control, Content-Type, Accept,
    Authorization
    Vary:
    schema:
    type: string
    example: X-HTTP-Method-Override, Accept-Encoding
    Content-Type:
    schema:
    type: string
    example: application/json; charset=utf-8
    ETag:
    schema:
    type: string
    example: W/"f43-50H5g3tH2qioTxHChqbnfk9FiwE"
    cache-control:
    schema:
    type: string
    example: max-age=5
    Content-Encoding:
    schema:
    type: string
    example: gzip
    Date:
    schema:
    type: string
    example: Tue, 01 Nov 2022 15:59:08 GMT
    Connection:
    schema:
    type: string
    example: keep-alive
    Keep-Alive:
    schema:
    type: string
    example: timeout=5
    Transfer-Encoding:
    schema:
    type: string
    example: chunked
    content:
    application/json:
    schema:
    type: object
    example:
    listenerCount: 3
    totalRepeatedSeconds: 0
    totalListenedSeconds: 4715
    averagePercentageListened: 92.45098039215686
    averageCoverage:
    '0': 70
    '10': 100
    '20': 100
    '30': 100
    '40': 100
    '50': 100
    '60': 100
    '70': 100
    '80': 100
    '90': 100
    '100': 100
    '110': 100
    '120': 100
    '130': 100
    '140': 100
    '150': 100
    '160': 100
    '170': 100
    '180': 100
    '190': 100
    '200': 100
    '210': 100
    '220': 100
    '230': 100
    '240': 100
    '250': 100
    '260': 100
    '270': 100
    '280': 100
    '290': 100
    '300': 100
    '310': 100
    '320': 100
    '330': 100
    '340': 100
    '350': 100
    '360': 100
    '370': 100
    '380': 100
    '390': 100
    '400': 100
    '410': 100
    '420': 100
    '430': 100
    '440': 100
    '450': 100
    '460': 100
    '470': 100
    '480': 100
    '490': 100
    '500': 100
    '510': 100
    '520': 100
    '530': 100
    '540': 100
    '550': 100
    '560': 100
    '570': 100
    '580': 100
    '590': 100
    '600': 100
    '610': 100
    '620': 100
    '630': 100
    '640': 100
    '650': 100
    '660': 100
    '670': 100
    '680': 100
    '690': 100
    '700': 100
    '710': 100
    '720': 100
    '730': 100
    '740': 100
    '750': 100
    '760': 100
    '770': 100
    '780': 100
    '790': 100
    '800': 100
    '810': 100
    '820': 100
    '830': 100
    '840': 100
    '850': 100
    '860': 100
    '870': 100
    '880': 100
    '890': 100
    '900': 100
    '910': 100
    '920': 100
    '930': 100
    '940': 100
    '950': 100
    '960': 100
    '970': 100
    '980': 100
    '990': 100
    '1000': 100
    '1010': 100
    '1020': 100
    '1030': 100
    '1040': 100
    '1050': 100
    '1060': 100
    '1070': 100
    '1080': 100
    '1090': 100
    '1100': 100
    '1110': 100
    '1120': 100
    '1130': 100
    '1140': 100
    '1150': 100
    '1160': 100
    '1170': 100
    '1180': 100
    '1190': 100
    '1200': 100
    '1210': 100
    '1220': 100
    '1230': 100
    '1240': 100
    '1250': 100
    '1260': 100
    '1270': 100
    '1280': 100
    '1290': 100
    '1300': 100
    '1310': 100
    '1320': 100
    '1330': 100
    '1340': 100
    '1350': 100
    '1360': 100
    '1370': 100
    '1380': 100
    '1390': 86.66666666666666
    '1400': 66.66666666666666
    '1410': 66.66666666666666
    '1420': 66.66666666666666
    '1430': 66.66666666666666
    '1440': 66.66666666666666
    '1450': 66.66666666666666
    '1460': 66.66666666666666
    '1470': 66.66666666666666
    '1480': 66.66666666666666
    '1490': 66.66666666666666
    '1500': 66.66666666666666
    '1510': 66.66666666666666
    '1520': 60
    '1530': 33.33333333333333
    '1540': 33.33333333333333
    '1550': 33.33333333333333
    '1560': 33.33333333333333
    '1570': 33.33333333333333
    '1580': 40
    '1590': 66.66666666666666
    '1600': 66.66666666666666
    '1610': 66.66666666666666
    '1620': 66.66666666666666
    '1630': 66.66666666666666
    '1640': 66.66666666666666
    '1650': 66.66666666666666
    '1660': 66.66666666666666
    '1670': 66.66666666666666
    '1680': 66.66666666666666
    '1690': 26.666666666666668
    totalCoverage:
    '0': 21
    '10': 30
    '20': 30
    '30': 30
    '40': 30
    '50': 30
    '60': 30
    '70': 30
    '80': 30
    '90': 30
    '100': 30
    '110': 30
    '120': 30
    '130': 30
    '140': 30
    '150': 30
    '160': 30
    '170': 30
    '180': 30
    '190': 30
    '200': 30
    '210': 30
    '220': 30
    '230': 30
    '240': 30
    '250': 30
    '260': 30
    '270': 30
    '280': 30
    '290': 30
    '300': 30
    '310': 30
    '320': 30
    '330': 30
    '340': 30
    '350': 30
    '360': 30
    '370': 30
    '380': 30
    '390': 30
    '400': 30
    '410': 30
    '420': 30
    '430': 30
    '440': 30
    '450': 30
    '460': 30
    '470': 30
    '480': 30
    '490': 30
    '500': 30
    '510': 30
    '520': 30
    '530': 30
    '540': 30
    '550': 30
    '560': 30
    '570': 30
    '580': 30
    '590': 30
    '600': 30
    '610': 30
    '620': 30
    '630': 30
    '640': 30
    '650': 30
    '660': 30
    '670': 30
    '680': 30
    '690': 30
    '700': 30
    '710': 30
    '720': 30
    '730': 30
    '740': 30
    '750': 30
    '760': 30
    '770': 30
    '780': 30
    '790': 30
    '800': 30
    '810': 30
    '820': 30
    '830': 30
    '840': 30
    '850': 30
    '860': 30
    '870': 30
    '880': 30
    '890': 30
    '900': 30
    '910': 30
    '920': 30
    '930': 30
    '940': 30
    '950': 30
    '960': 30
    '970': 30
    '980': 30
    '990': 30
    '1000': 30
    '1010': 30
    '1020': 30
    '1030': 30
    '1040': 30
    '1050': 30
    '1060': 30
    '1070': 30
    '1080': 30
    '1090': 30
    '1100': 30
    '1110': 30
    '1120': 30
    '1130': 30
    '1140': 30
    '1150': 30
    '1160': 30
    '1170': 30
    '1180': 30
    '1190': 30
    '1200': 30
    '1210': 30
    '1220': 30
    '1230': 30
    '1240': 30
    '1250': 30
    '1260': 30
    '1270': 30
    '1280': 30
    '1290': 30
    '1300': 30
    '1310': 30
    '1320': 30
    '1330': 30
    '1340': 30
    '1350': 30
    '1360': 30
    '1370': 30
    '1380': 30
    '1390': 26
    '1400': 20
    '1410': 20
    '1420': 20
    '1430': 20
    '1440': 20
    '1450': 20
    '1460': 20
    '1470': 20
    '1480': 20
    '1490': 20
    '1500': 20
    '1510': 20
    '1520': 18
    '1530': 10
    '1540': 10
    '1550': 10
    '1560': 10
    '1570': 10
    '1580': 12
    '1590': 20
    '1600': 20
    '1610': 20
    '1620': 20
    '1630': 20
    '1640': 20
    '1650': 20
    '1660': 20
    '1670': 20
    '1680': 20
    '1690': 8