openapi: 3.0.1
info:
  version: 1.5.5
  title: WatchGuard Portal Accounts Management API
  description: >-
    The WatchGuard Portal Accounts Management API is a REST API that enables
    you to create and verify WatchGuard Portal accounts.


    **DEPRECATED**: Version 1 of the WatchGuard Portal Accounts Management API
    is deprecated and will no longer accept requests after 17 September 2026.
    Although v1 endpoints continue to accept requests, we strongly recommend
    that you use Version 2 of the WatchGuard Portal Accounts Management API.
  contact:
    name: API Support
    url: https://www.watchguard.com/wgrd-support/contact-support
  termsOfService: 
    https://www.watchguard.com/help/docs/api/Content/en-US/license_agreement.html?cshid=18007
paths:
  /health:
    get:
      description: HealthCheck URL
      responses:
        200:
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Health'
  /v1/accounts/{accountId}:
    get:
      deprecated: true
      tags:
        - Account
      summary: Verifies whether the specified account ID is an existing Partner 
        account.
      description: >-
        Verifies whether the specified account ID is an existing Partner account.


        **DEPRECATED**: Version 1 of the WatchGuard Portal Accounts Management API
        is deprecated and will no longer accept requests after 17 September 2026.
        Although v1 endpoints continue to accept requests, we strongly recommend
        that you use Version 2 of the WatchGuard Portal Accounts Management API.
      operationId: AccountInfo
      parameters:
        - name: accountId
          in: path
          description: "ID of an existing account. Must be atleast 11 or 12 characters
            (letters, numbers, and dashes only) and start with 'ACC-'. Example: ACC-12345678"
          required: true
          schema:
            type: string
      responses:
        200:
          description: Success
          headers:
            Warning:
              $ref: '#/components/headers/DeprecationWarning'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccountInfoResponse'
        400:
          description: Bad Request
          headers:
            Warning:
              $ref: '#/components/headers/DeprecationWarning'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationProblemDetails'
        404:
          description: Not Found
          headers:
            Warning:
              $ref: '#/components/headers/DeprecationWarning'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        401:
          description: Unauthorized
          headers:
            Warning:
              $ref: '#/components/headers/DeprecationWarning'
        403:
          description: Forbidden
          headers:
            Warning:
              $ref: '#/components/headers/DeprecationWarning'
        500:
          description: Server Error
          headers:
            Warning:
              $ref: '#/components/headers/DeprecationWarning'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /v1/accounts:
    post:
      deprecated: true
      tags:
        - Account
      summary: Creates a new tier-1 Partner account and an associated user.
      description: >-
        Creates a new tier-1 Partner account and an associated user.


        **DEPRECATED**: Version 1 of the WatchGuard Portal Accounts Management API
        is deprecated and will no longer accept requests after 17 September 2026.
        Although v1 endpoints continue to accept requests, we strongly recommend
        that you use Version 2 of the WatchGuard Portal Accounts Management API.
      operationId: CreateUserAndAccount
      requestBody:
        description: Specifies details to create a new tier-1 Partner account 
          and associated user.
        content:
          application/json-patch+json:
            schema:
              $ref: '#/components/schemas/CreateAccountAndUserRequest'
          application/json:
            schema:
              $ref: '#/components/schemas/CreateAccountAndUserRequest'
          text/json:
            schema:
              $ref: '#/components/schemas/CreateAccountAndUserRequest'
          application/*+json:
            schema:
              $ref: '#/components/schemas/CreateAccountAndUserRequest'
      responses:
        201:
          description: Success
          headers:
            Warning:
              $ref: '#/components/headers/DeprecationWarning'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateAccountAndUserResponse'
        400:
          description: Bad Request
          headers:
            Warning:
              $ref: '#/components/headers/DeprecationWarning'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationProblemDetails'
        401:
          description: Unauthorized
          headers:
            Warning:
              $ref: '#/components/headers/DeprecationWarning'
        403:
          description: Forbidden
          headers:
            Warning:
              $ref: '#/components/headers/DeprecationWarning'
        409:
          description: Conflict
          headers:
            Warning:
              $ref: '#/components/headers/DeprecationWarning'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        500:
          description: Server Error
          headers:
            Warning:
              $ref: '#/components/headers/DeprecationWarning'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
components:
  headers:
    DeprecationWarning:
      description: |
        Specifies the WatchGuard Portal Accounts Management API deprecation warning.
      schema:
        type: string
        example: >-
          299 - "Version 1 of all the WatchGuard Portal Accounts Management APIs is
          deprecated and will no longer accept requests after 17 September 2026.
          Although v1 endpoints continue to accept requests, we strongly recommend
          that you use Version 2 of the WatchGuard Portal Accounts Management API.".
  schemas:
    Health:
      type: object
      properties:
        healthy:
          type: boolean
          default: false
    AccountInfoResponse:
      type: object
      properties:
        isPartner:
          type: boolean
          description: |
            Specifies whether the account is a Partner account. This can be one of these values:
              - true
              - false
      additionalProperties: false
    ProblemDetails:
      type: object
      properties:
        type:
          type: string
          nullable: true
        title:
          type: string
          nullable: true
        status:
          type: integer
          format: int32
          nullable: true
        detail:
          type: string
          nullable: true
        instance:
          type: string
          nullable: true
      additionalProperties:
        oneOf:
          - type: string
          - type: object
          - type: array
    UserInfo:
      required:
        - email
        - firstName
        - lastName
        - phoneNumber
        - username
      type: object
      properties:
        email:
          type: string
          description: "Email address of the user. Must be between 4 and 80 characters
            (letters, numbers, and dashes only).\r Example: yiqbal@example.com"
        firstName:
          type: string
          description: First name of the user. Must be between 1 and 40 
            characters.
        lastName:
          type: string
          description: Last name of the user. Must be between 1 and 40 
            characters.
        phoneNumber:
          type: string
          description: Phone number of the user. Must be between 6 and 40 
            characters.
        username:
          type: string
          description: |
            Username for the new user account. The username must be between 5 and 65 characters and can only include these characters: 
            - Alphanumeric characters without accent marks
            - Underscore (_)
            - Plus sign (+)
            - Minus sign (-)
            - Dot (.)
        password:
          type: string
          description: New user account password. The password must be at least 
            12 characters long and include a lowercase letter, uppercase letter,
            number, and symbol. Do not use <, >, emojis, or spaces. If a 
            password is not specified in the request body, then WatchGuard sends
            a password reset email to the email address specified in the request
            body for the new user account.
      additionalProperties: false
    Address:
      required:
        - city
        - country
        - postalCode
      type: object
      properties:
        city:
          type: string
          description: Name of the city or town. Maximum of 40 characters.
        country:
          type: string
          description: |
            Name of the country. This can be one of these values: 
            - Afghanistan
            - Albania
            - Algeria
            - American Samoa
            - Andorra
            - Angola
            - Anguilla
            - Antarctica
            - Antigua And Barbuda
            - Antilles
            - Argentina
            - Armenia
            - Aruba
            - Australia
            - Austria
            - Azerbaijan
            - Bahamas
            - Bahrain
            - Bangladesh
            - Barbados
            - Belarus
            - Belgium
            - Belize
            - Benin
            - Bermuda
            - Bhutan
            - Bolivia
            - Bosnia And Herzegovina
            - Botswana
            - Bouvet Island
            - Brazil
            - British Indian Ocean Territory
            - Brunei
            - Bulgaria
            - Burkina Faso
            - Burundi
            - Cambodia
            - Cameroon
            - Canada
            - Cape Verde
            - Cayman Islands
            - Central African Republic
            - Chad
            - Chile
            - China
            - Christmas Island
            - Cocos (Keeling) Islands
            - Colombia
            - Comoros
            - Congo
            - Cook Islands
            - Costa Rica
            - Croatia
            - Cuba
            - Cyprus
            - Czech Republic
            - Democratic Republic of the Congo
            - Denmark
            - Djibouti
            - Dominica
            - Dominican Republic
            - East Timor
            - Ecuador
            - Egypt
            - El Salvador
            - England
            - Equatorial Guinea
            - Eritrea
            - Estonia
            - Ethiopia
            - Falkland Islands (Malvinas)
            - Faroe Islands
            - Fiji
            - Finland
            - France
            - French Guiana
            - French Polynesia
            - French Southern Territories
            - Gabon
            - Gambia
            - Georgia
            - Germany
            - Ghana
            - Gibraltar
            - Greece
            - Greenland
            - Grenada
            - Guadeloupe
            - Guam
            - Guatemala
            - Guernsey, C.I.
            - Guinea
            - Guinea-Bissau
            - Guyana
            - Haiti
            - Heard And Mcdonald Islands
            - Honduras
            - Hong Kong
            - Hungary
            - Iceland
            - India
            - Indonesia
            - Iran
            - Iraq
            - Ireland
            - Isle Of Man
            - Israel
            - Italy
            - Ivory Coast
            - Jamaica
            - Japan
            - Jersey, C.I.
            - Jordan
            - Kazakhstan
            - Kenya
            - Kiribati
            - Kosovo
            - Kuwait
            - Kyrgyzstan
            - Laos
            - Latvia
            - Lebanon
            - Lesotho
            - Liberia
            - Libyan Arab Jamahiriya
            - Liechtenstein
            - Lithuania
            - Luxembourg
            - Macau
            - Macedonia
            - Madagascar
            - Malawi
            - Malaysia
            - Maldives
            - Mali
            - Malta
            - Marshall Islands
            - Martinique
            - Mauritania
            - Mauritius
            - Mexico
            - Micronesia
            - Moldova
            - Monaco
            - Mongolia
            - Montenegro
            - Montserrat
            - Morocco
            - Mozambique
            - Myanmar
            - Namibia
            - Nauru
            - Nepal
            - Netherlands
            - New Caledonia
            - New Zealand
            - Nicaragua
            - Niger
            - Nigeria
            - Niue
            - Norfolk Island
            - Northern Ireland
            - Northern Mariana Islands
            - Norway
            - Oman
            - Pakistan
            - Palau
            - Palestine
            - Panama
            - Papua New Guinea
            - Paraguay
            - Peru
            - Philippines
            - Pitcairn
            - Poland
            - Portugal
            - Puerto Rico
            - Qatar
            - Reunion
            - Romania
            - Russia
            - Rwanda
            - Saint Kitts And Nevis
            - Saint Lucia
            - Samoa
            - San Marino
            - Sao Tome And Principe
            - Saudi Arabia
            - Scotland
            - Senegal
            - Serbia
            - Seychelles
            - Sierra Leone
            - Singapore
            - Slovakia
            - Slovenia
            - Solomon Islands
            - Somalia
            - South Africa
            - South Korea
            - Spain
            - Sri Lanka
            - St. Helena
            - St. Pierre And Miquelon
            - St. Vincent And The Grenadines
            - Sudan
            - Suriname
            - Svalbard And Jan Mayen Islands
            - Swaziland
            - Sweden
            - Switzerland
            - Syria
            - Taiwan
            - Tajikistan
            - Tanzania, United Republic Of
            - Thailand
            - Togo
            - Tokelau
            - Tonga
            - Trinidad And Tobago
            - Tunisia
            - Turkey
            - Turkmenistan
            - Turks And Caicos Islands
            - Tuvalu
            - U.S. Minor Outlying Islands
            - Uganda
            - Ukraine
            - United Arab Emirates
            - United Kingdom
            - United States
            - Uruguay
            - Uzbekistan
            - Vanuatu
            - Vatican City State
            - Venezuela
            - Vietnam
            - Virgin Islands (British)
            - Virgin Islands, U.S.
            - Wales
            - Wallis And Futuna Islands
            - Western Sahara
            - Yemen
            - Zambia
            - Zimbabwe
        postalCode:
          type: string
          description: Zip or postal code. Maximum of 20 characters.
        state:
          type: string
          description: |
            Name of the state or province. These countries require one the states listed:
            1. Australia
              - ACT
              - NSW
              - NTT
              - QLD
              - SA
              - TAS
              - VIC
              - WAU
            2. Brazil
              - ACRE
              - ALBS
              - AMPA
              - AMZN
              - BHIA
              - CARA
              - DFRL
              - ESNT
              - GOIS
              - MARH
              - MGSS
              - MGDS
              - MNSG
              - PARA
              - PRBA
              - PRNA
              - PRNB
              - PIUI
              - RDJN
              - RGDN
              - RGDS
              - RNDA
              - RORM
              - SCRN
              - SPLO
              - SRGP
              - TOCN
            3. Canada
              - AB
              - BC
              - MB
              - NB
              - NL
              - NT
              - NS
              - NU
              - ON
              - PE
              - QC
              - SK
              - YT
            4. Spain
              - ANDL
              - ARGN
              - ASTR
              - BSQU
              - BLRS
              - CNRY
              - CNTB
              - MNCH
              - CLYL
              - CTLN
              - CUTA
              - EXTR
              - GLCA
              - RJLA
              - MDRD
              - MLLA
              - MRCA
              - NVRA
              - VLNC
            5. United States				
              - AK
              - AL
              - AR
              - AZ
              - CA
              - CO
              - CT
              - DC
              - DE
              - FL
              - GA
              - HI
              - IA
              - ID
              - IL
              - IN
              - KS
              - KY
              - LA
              - MA
              - MD
              - ME
              - MI
              - MN
              - MO
              - MS
              - MT
              - NC
              - ND
              - NE
              - NH
              - NJ
              - NM
              - NV
              - NY
              - OH
              - OK
              - OR
              - PA
              - RI
              - SC
              - SD
              - TN
              - TX
              - UT
              - VA
              - VT
              - WA
              - WI
              - WV
              - WY
          nullable: true
        street:
          type: string
          description: Street name.
          nullable: true
      additionalProperties: false
    AccountInfo:
      required:
        - companyName
        - region
      type: object
      properties:
        companyName:
          type: string
          description: Name of the company. Maximum of 150 characters.
        industry:
          type: string
          description: |
            Name of the company's industry. Maximum of 50 characters. The default value is Others. This can be one of these values:
            - Aerospace/Defense
            - Business Services
            - Computer Systems Development
            - Data Processing
            - E-Commerce
            - Education
            - Energy/Utilities/Mining
            - Engineering/Architecture/Construction
            - Entertainment/Publishing
            - Finance
            - Government
            - Healthcare
            - Hotel/Restaurant/Tourism
            - Insurance/Real Estate/Legal
            - ISP
            - Manufacturing
            - Marketing
            - Network Services
            - Non-Profit
            - Other Computer Related
            - Other Non-Computer Related
            - Pharmaceutical
            - Retail
            - Systems Security
            - Telecommunications
            - Transportation
            - Others
          nullable: true
        region:
          type: string
          description: |
            Region of the company. This can be one of these values:
            - APAC
            - AMERICAS
            - EUROPE
        address:
          allOf:
            - $ref: '#/components/schemas/Address'
          description: Address of the account.
          nullable: true
        optedInForEmail:
          type: boolean
          description: |
            Specifies whether the user will receive marketing emails from WatchGuard. This can be one of these values:
              - true
              - false
          nullable: true
      additionalProperties: false
    CreateAccountAndUserRequest:
      type: object
      properties:
        userInfo:
          allOf:
            - $ref: '#/components/schemas/UserInfo'
          nullable: true
        accountInfo:
          allOf:
            - $ref: '#/components/schemas/AccountInfo'
          nullable: true
      additionalProperties: false
    ValidationProblemDetails:
      type: object
      properties:
        errors:
          type: object
          additionalProperties:
            type: array
            items:
              type: string
          nullable: true
          readOnly: true
        type:
          type: string
          nullable: true
        title:
          type: string
          nullable: true
        status:
          type: integer
          format: int32
          nullable: true
        detail:
          type: string
          nullable: true
        instance:
          type: string
          nullable: true
      additionalProperties:
        oneOf:
          - type: string
          - type: object
          - type: array
    CreateAccountAndUserResponse:
      type: object
      properties:
        accountId:
          type: string
          nullable: true
          description: WatchGuard Portal account ID of the created account.
        accountCreated:
          type: boolean
          description: |
            Specifies whether the account is created. This can be one of these values:
              - true
              - false
        regionSet:
          type: boolean
          description: |
            Specifies whether the region is set for the created account. This can be one of these values:
              - true
              - false
        emailSent:
          type: boolean
          description: |
            Specifies whether the success email is sent to the user for the created account. This can be one of these values:
              - true
              - false
      additionalProperties: false
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: WatchGuard-API-Key
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
servers:
  - url: https://api.usa.cloud.watchguard.com/rest/portal/account-mgmt
    description: Prod USA Region
  - url: https://api.deu.cloud.watchguard.com/rest/portal/account-mgmt
    description: Prod DEU region
  - url: https://api.jpn.cloud.watchguard.com/rest/portal/account-mgmt
    description: Prod JPN region
security:
  - ApiKeyAuth: []
    BearerAuth: []
externalDocs:
  description: Additional documentation
  url: https://www.watchguard.com/help/docs/api/Content/en-US/home.html
