openapi: 3.0.0
info:
  title: Tap Titans 2 API
  version: 1.0.0
  description: Documentation for REST API.<br>Click <a href="/">here</a> to return on the main page.
servers:
  - url: https:/tt2-public.gamehivegames.com/
paths:
  /raid/subscribe:
    post:
      summary: Returns which raid the application has subscribed to and which it has not (with a reason).
      parameters:
        - in: body
          schema:
            type: object
            required: player_tokens
            properties:
              player_tokens: 
                  type: array
                  items:
                    type: string
                    format: uuid
                  description: An array of player tokens. The players associated have to be Master or Grand Master to subscribe to the raid.
      responses:
        '200':    # status code
          description: A JSON array of user names
          content:
            application/json:
              schema: 
                type: object
                required: 
                  - ok
                  - refused
                properties:
                  ok:
                    type: array
                    items:
                      type: object
                      required:
                        - token
                        - clan_code
                        - clan_name
                        - member_list
                      properties:
                        token:
                          type: string
                          format: uuid
                        clan_code:
                          type: string
                        clan_name:
                          type: string
                        member_list:
                          type: array
                          items:
                            type: object
                            required: 
                              - player_code
                              - name
                            properties:
                              player_code:
                                type: string
                              name:
                                type: string
                  refused:
                    type: array
                    items:
                      type: object
                      required:
                        - token
                        - reason
                      properties:
                        token:
                          type: string
                          format: uuid
                        reason:
                          type: string
  /raid/unsubscribe:
    post:
      summary: Returns which raid the application has unsubscribed from and which it has not (with a reason).
      parameters:
        - in: body
          schema:
            type: object
            required: player_tokens
            properties:
              player_tokens: 
                  type: array
                  items:
                    type: string
                    format: uuid
                  description: An array of player tokens. The players associated have to be Master or Grand Master to unsubscribe from the raid.
      responses:
        '200':    # status code
          description: A JSON array of user names
          content:
            application/json:
              schema: 
                type: object
                required: 
                  - ok
                  - refused
                properties:
                  ok:
                    type: array
                    items:
                      type: object
                      required:
                        - token
                        - clan_code
                      properties:
                        token:
                          type: string
                          format: uuid
                        clan_code:
                          type: string
                  refused:
                    type: array
                    items:
                      type: object
                      required:
                        - token
                        - reason
                      properties:
                        token:
                          type: string
                          format: uuid
                        reason:
                          type: string
  /raid/clan_data:
    post:
      summary: |
        Return properties for players in a clan.
        A single application token can request a given clan data only once per 12 hours.
        The normal rate limit is applied for different clans.
        Require to be log on the /raid namespace.
      parameters:
        - in: body
          schema:
            type: object
            required: 
              - player_token
              - properties
            properties:
              player_token: 
                type: string
                format: uuid
                description: A player token. The player associated have to be Master or Grand Master to subscribe to the raid.
              properties:
                type: array
                items:
                  $ref: '#/components/schemas/clan_data_properties'
                description: Array of properties to request for the players. If you don't need some, you don't need to request them.
      responses:
        '200':    # status code
          description: Clan player's data.
          content:
            application/json:
              schema:
                type: object
                required: 
                  - clan_name
                  - clan_code
                  - players_data
                properties:
                  clan_name:
                    type: string
                  clan_code:
                    type: string
                  players_data:
                    type: array
                    items:
                      type: object
                      properties:
                        player_code:
                          type: string
                        country_code:
                          type: string
                        max_stage:
                          type: integer
                        raid_wildcard_count:
                          type: integer
                        name:
                          type: string
                        total_raid_player_xp:
                          type: string
                          display: integer
                          example: "0"
                        player_raid_level:
                          type: string
                          display: integer
                          example: "0"
                        summon_level:
                          type: integer
                          example: 1
                        total_card_level:
                          type: string
                          display: integer
                          example: "0"
                        role:
                          type: string
                        weekly_ticket_count:
                          type: string
                          display: integer
                          example: "0"
                        titan_cards:
                          type: array
                          items:
                            type: object
                            properties:
                              titan_id:
                                type: string
                              level:
                                type: integer
                              quantity_received:
                                type: integer
                              quantity_spent:
                                type: integer
                        raid_research_tree:
                          description: Keys may be added or removed without previous notice.
                          type: object
                          properties:
                            ArmorDamage:
                              type: number
                            BodyDamage:
                              type: number
                            ChestDamage:
                              type: number
                            HeadDamage:
                              type: number
                            LimbDamage:
                              type: number
                            RaidEnemy1Damage:
                              type: number
                            RaidEnemy2Damage:
                              type: number
                            RaidEnemy3Damage:
                              type: number
                            RaidEnemy4Damage:
                              type: number
                            RaidEnemy5Damage:
                              type: number
                            RaidEnemy6Damage:
                              type: number
                            RaidEnemy7Damage:
                              type: number
                            RaidEnemy8Damage:
                              type: number
                        raid_research_bonuses:
                          description: Keys may be added or removed without previous notice.
                          type: object
                          properties:
                            RaidBaseDamage:
                              type: number
                            AfflictionBaseDamage:
                              type: number
                            BurstBaseDamage:
                              type: number
                            ArmorBaseDamage:
                              type: number
                            BodyBaseDamage:
                              type: number
                            HeadBaseDamage:
                              type: number
                            LimbBaseDamage:
                              type: number
                            TorsoBaseDamage:
                              type: number
                            HeadArmorBaseDamage:
                              type: number
                            LimbArmorBaseDamage:
                              type: number
                            TorsoArmorBaseDamage:
                              type: number
                            HeadBodyBaseDamage:
                              type: number
                            LimbBodyBaseDamage:
                              type: number
                            TorsoBodyBaseDamage:
                              type: number
                            Enemy1BaseDamage:
                              type: number
                            Enemy2BaseDamage:
                              type: number
                            Enemy3BaseDamage:
                              type: number
                            Enemy4BaseDamage:
                              type: number
                            Enemy5BaseDamage:
                              type: number
                            Enemy6BaseDamage:
                              type: number
                            Enemy7BaseDamage:
                              type: number
                            Enemy8BaseDamage:
                              type: number
                            Enemy1AfflictionBaseDamage:
                              type: number
                            Enemy2AfflictionBaseDamage:
                              type: number
                            Enemy3AfflictionBaseDamage:
                              type: number
                            Enemy4AfflictionBaseDamage:
                              type: number
                            Enemy5AfflictionBaseDamage:
                              type: number
                            Enemy6AfflictionBaseDamage:
                              type: number
                            Enemy7AfflictionBaseDamage:
                              type: number
                            Enemy8AfflictionBaseDamage:
                              type: number
                            Enemy1BurstBaseDamage:
                              type: number
                            Enemy2BurstBaseDamage:
                              type: number
                            Enemy3BurstBaseDamage:
                              type: number
                            Enemy4BurstBaseDamage:
                              type: number
                            Enemy5BurstBaseDamage:
                              type: number
                            Enemy6BurstBaseDamage:
                              type: number
                            Enemy7BurstBaseDamage:
                              type: number
                            Enemy8BurstBaseDamage:
                              type: number
                        titan_souls:
                          type: integer
                          example: 0
                        necrobear_research_points:
                          type: integer
                          example: 0
                        raid_research_points:
                          type: integer
                          example: 0
                        loyalty_level:
                          type: string
                          display: integer
                          example: "0"
                        daily_raid_tickets:
                          type: string
                          display: integer
                          example: "0"
                        previous_rank:
                          type: string
                          display: float
                          example: "0.1"
                          description: Percentile of the last event the player was in (0.1, 0.3, 0.8, 1 or ""/None).
                        cards:
                          type: array
                          items:
                            type: object
                            properties:
                              level:
                                type: integer
                              quantity_received:
                                type: integer
                              quantity_spent:
                                type: integer
                              skill_name:
                                type: string
                        equipment_set:
                          type: array
                          items:
                            type: string

  /player/data:
    post:
      summary: |
        Return properties for a player.
        An additional rate limit is applied here. 
        A single application token can request a given player data only once per 2 minutes.
        The normal rate limit is applied for different players.
        Require to be log on the /player namespace.
      parameters:
        - in: body
          schema:
            type: object
            required: 
              - player_token
              - properties
            properties:
              player_token: 
                type: string
                format: uuid
                description: A player token. The player associated have to be Master or Grand Master to subscribe to the raid.
              properties:
                type: array
                items:
                  $ref: '#/components/schemas/player_data_properties'
                description: Array of properties to request for the player. If you don't need some, you don't need to request them.
      responses:
        '200':    # status code
          description: Player's data.
          content:
            application/json:
              schema: 
                type: object
                properties:
                  player_code:
                    type: string
                  country_code:
                    type: string
                  max_stage:
                    type: integer
                  crafting_shards_spent:
                    type: integer
                  raid_wildcard_count:
                    type: integer
                  additive_relic_multiplier:
                    type: integer
                  relics_received:
                    type: string
                    display: integer
                    example: "0"
                  relics_spent:
                    type: string
                    display: integer
                    example: "0"
                  summon_level:
                    type: integer
                    example: 1
                  name:
                    type: string
                  total_tournaments:
                    type: string
                    display: integer
                    example: "0"
                  undisputed_count:
                    type: string
                    display: integer
                    example: "0"
                  titan_points:
                    type: string
                    display: integer
                    example: "0"
                    description: Tournament points.
                  total_raid_player_xp:
                    type: string
                    display: integer
                    example: "0"
                  player_raid_level:
                    type: string
                    display: integer
                    example: "0"
                  total_card_level:
                    type: string
                    display: integer
                    example: "0"
                  equipment_set_count:
                    type: string
                    display: integer
                    example: "0"
                  total_pet_levels:
                    type: string
                    display: integer
                    example: "0"
                  total_skill_points:
                    type: string
                    display: integer
                    example: "0"
                  total_helper_weapons:
                    type: string
                    display: integer
                    example: "0"
                  total_clan_scrolls:
                    type: string
                    display: integer
                    example: "0"
                  challenge_tournaments_participation:
                    type: string
                    display: integer
                    example: "0"
                  challenge_tournaments_undisputed_count:
                    type: string
                    display: integer
                    example: "0"
                  current_world_id:
                    type: string
                    display: integer
                    example: "0"
                  clan_code:
                    type: string
                  clan_name:
                    type: string
                  role:
                    type: string
                  weekly_ticket_count:
                    type: string
                    display: integer
                    example: "0"
                  titan_cards:
                    type: array
                    items:
                      type: object
                      properties:
                        titan_id:
                          type: string
                        level:
                          type: integer
                        quantity_received:
                          type: integer
                        quantity_spent:
                          type: integer
                  raid_research_tree:
                    description: Keys may be added or removed without previous notice.
                    type: object
                    properties:
                      ArmorDamage:
                        type: number
                      BodyDamage:
                        type: number
                      ChestDamage:
                        type: number
                      HeadDamage:
                        type: number
                      LimbDamage:
                        type: number
                      RaidEnemy1Damage:
                        type: number
                      RaidEnemy2Damage:
                        type: number
                      RaidEnemy3Damage:
                        type: number
                      RaidEnemy4Damage:
                        type: number
                      RaidEnemy5Damage:
                        type: number
                      RaidEnemy6Damage:
                        type: number
                      RaidEnemy7Damage:
                        type: number
                      RaidEnemy8Damage:
                         type: number
                  raid_research_bonuses:
                    description: Keys may be added or removed without previous notice.
                    type: object
                    properties:
                      RaidBaseDamage:
                        type: number
                      AfflictionBaseDamage:
                        type: number
                      BurstBaseDamage:
                        type: number
                      ArmorBaseDamage:
                        type: number
                      BodyBaseDamage:
                        type: number
                      HeadBaseDamage:
                        type: number
                      LimbBaseDamage:
                        type: number
                      TorsoBaseDamage:
                        type: number
                      HeadArmorBaseDamage:
                        type: number
                      LimbArmorBaseDamage:
                        type: number
                      TorsoArmorBaseDamage:
                        type: number
                      HeadBodyBaseDamage:
                        type: number
                      LimbBodyBaseDamage:
                        type: number
                      TorsoBodyBaseDamage:
                        type: number
                      Enemy1BaseDamage:
                        type: number
                      Enemy2BaseDamage:
                        type: number
                      Enemy3BaseDamage:
                        type: number
                      Enemy4BaseDamage:
                        type: number
                      Enemy5BaseDamage:
                        type: number
                      Enemy6BaseDamage:
                        type: number
                      Enemy7BaseDamage:
                        type: number
                      Enemy8BaseDamage:
                        type: number
                      Enemy1AfflictionBaseDamage:
                        type: number
                      Enemy2AfflictionBaseDamage:
                        type: number
                      Enemy3AfflictionBaseDamage:
                        type: number
                      Enemy4AfflictionBaseDamage:
                        type: number
                      Enemy5AfflictionBaseDamage:
                        type: number
                      Enemy6AfflictionBaseDamage:
                        type: number
                      Enemy7AfflictionBaseDamage:
                        type: number
                      Enemy8AfflictionBaseDamage:
                        type: number
                      Enemy1BurstBaseDamage:
                        type: number
                      Enemy2BurstBaseDamage:
                        type: number
                      Enemy3BurstBaseDamage:
                        type: number
                      Enemy4BurstBaseDamage:
                        type: number
                      Enemy5BurstBaseDamage:
                        type: number
                      Enemy6BurstBaseDamage:
                        type: number
                      Enemy7BurstBaseDamage:
                        type: number
                      Enemy8BurstBaseDamage:
                        type: number
                  loyalty_level:
                    type: string
                    display: integer
                    example: "0"
                  daily_raid_tickets:
                    type: string
                    display: integer
                    example: "0"
                  previous_rank:
                    type: string
                    display: float
                    example: "0.1"
                    description: Percentile of the last event the player was in (0.1, 0.3, 0.8, 1 or ""/None).
                  artifacts:
                    type: array
                    items:
                      type: object
                      properties:
                        level:
                          type: string
                          display: integer
                          example: "0"
                        artifact_id:
                          type: string
                        is_enchanted:
                          type: boolean
                  seasonal_relics_received:
                    type: string
                    display: integer
                    example: "0"
                  seasonal_relics_spent:
                    type: string
                    display: integer
                    example: "0"
                  seasonal_relic_multiplier:
                    type: integer
                  seasonal_artifacts:
                    type: array
                    items:
                      type: object
                      properties:
                        level:
                          type: string
                          display: integer
                          example: "0"
                        artifact_id:
                          type: string
                        is_enchanted:
                          type: boolean
                  cards:
                    type: array
                    items:
                      type: object
                      properties:
                        level:
                          type: integer
                        quantity_received:
                          type: integer
                        quantity_spent:
                          type: integer
                        skill_name:
                          type: string
                  pets:
                    type: array
                    description: Includes maingame and trancendence pets.
                    items:
                      type: object
                      properties:
                        level:
                          type: integer
                        pet_id:
                          type: string
                  badge_count:
                    type: object
                    properties:
                      "0":
                        type: integer
                        description: Non participant.
                      "1":
                        type: integer
                        description: Reach 3000 currency.
                      "2":
                        type: integer
                        description: 80%.
                      "3":
                        type: integer
                        description: 30%.
                      "4":
                        type: integer
                        description: 10%.
                  hero_weapon:
                    type: array
                    items:
                      type: object
                      properties:
                        Level:
                          type: integer
                        HelperID:
                          type: string
                  clan_scroll:
                    type: array
                    items:
                      type: object
                      properties:
                        Level:
                          type: integer
                        ScrollId:
                          type: string
                  skill_tree:
                    type: array
                    items:
                      type: object
                      properties:
                        level:
                          type: integer
                        skill_id:
                          type: string
                  equipment_set:
                    type: array
                    items:
                      type: string


components:
  securitySchemes:
    API-Authenticate:
      type: apiKey
      in: header
      name: API-Authenticate
  schemas:
    clan_data_properties:
      type: string
      enum:
        - max_stage
        - player_code
        - country_code
        - raid_wildcard_count
        - name
        - total_raid_player_xp
        - player_raid_level
        - summon_level
        - total_card_level
        - role
        - weekly_ticket_count
        - titan_cards
        - raid_research_tree
        - raid_research_bonuses
        - loyalty_level
        - daily_raid_tickets
        - previous_rank
        - cards
        - equipment_set
    player_data_properties:
      type: string
      enum:
        - max_stage
        - player_code
        - country_code
        - crafting_shards_spent
        - raid_wildcard_count
        - additive_relic_multiplier
        - relics_received
        - relics_spent
        - summon_level
        - name
        - total_tournaments
        - undisputed_count
        - titan_points
        - total_raid_player_xp
        - player_raid_level
        - total_card_level
        - equipment_set_count
        - total_pet_levels
        - total_skill_points
        - total_helper_weapons
        - total_clan_scrolls
        - challenge_tournaments_participation
        - challenge_tournaments_undisputed_count
        - current_world_id
        - clan_code
        - clan_name
        - role
        - weekly_ticket_count
        - titan_cards
        - raid_research_tree
        - raid_research_bonuses
        - loyalty_level
        - daily_raid_tickets
        - previous_rank
        - artifacts
        - seasonal_relics_received
        - seasonal_relics_spent
        - seasonal_relic_multiplier
        - seasonal_artifacts
        - cards
        - pets
        - badge_count
        - hero_weapon
        - clan_scroll
        - skill_tree
        - equipment_set

security:
  - API-Authenticate: []