GitHub Raw JSON API

ViRb3 / wgcf

8,251 Go

🚤 Cross-platform, unofficial CLI for Cloudflare Warp

wgcf Specification

Located in openapi-spec.yml on branch HEAD

3.x (YAML) YAML 13.9 KB
Raw YAML Specification
components:
  schemas:
    Account:
      type: "object"
      properties:
        account_type:
          type: "string"
        created:
          type: "string"
        id:
          type: "string"
        license:
          type: "string"
        premium_data:
          type: "number"
        quota:
          type: "number"
        referral_count:
          type: "number"
        referral_renewal_countdown:
          type: "number"
        role:
          type: "string"
        updated:
          type: "string"
        warp_plus:
          type: "boolean"
        usage:
          type: "number"
      required:
        - "account_type"
        - "created"
        - "id"
        - "license"
        - "premium_data"
        - "quota"
        - "referral_count"
        - "referral_renewal_countdown"
        - "role"
        - "updated"
        - "warp_plus"

    BoundDevice:
      type: "object"
      properties:
        activated:
          type: "string"
        active:
          type: "boolean"
        created:
          type: "string"
        id:
          type: "string"
        model:
          type: "string"
        name:
          type: "string"
        role:
          type: "string"
        type:
          type: "string"
      required:
        - "activated"
        - "active"
        - "created"
        - "id"
        - "role"
        - "type"

    NetworkAddress:
      type: "object"
      properties:
        v4:
          type: "string"
        v6:
          type: "string"
      required:
        - "v4"
        - "v6"

    Endpoint:
      type: "object"
      properties:
        host:
          type: "string"
        v4:
          type: "string"
        v6:
          type: "string"
      required:
        - "host"
        - "v4"
        - "v6"

    Peer:
      type: "object"
      properties:
        endpoint:
          $ref: "#/components/schemas/Endpoint"
        public_key:
          type: "string"
      required:
        - "endpoint"
        - "public_key"

    Config:
      type: "object"
      properties:
        client_id:
          type: "string"
        interface:
          type: "object"
          properties:
            addresses:
              $ref: "#/components/schemas/NetworkAddress"
          required:
            - "addresses"
        peers:
          type: "array"
          items:
            $ref: "#/components/schemas/Peer"
        services:
          type: "object"
          properties:
            http_proxy:
              type: "string"
          required:
            - "http_proxy"
      required:
        - "client_id"
        - "interface"
        - "peers"
        - "services"

    SourceDevice:
      type: "object"
      properties:
        created:
          type: "string"
        enabled:
          type: "boolean"
        fcm_token:
          type: "string"
        id:
          type: "string"
        install_id:
          type: "string"
        key:
          type: "string"
        locale:
          type: "string"
        model:
          type: "string"
        name:
          type: "string"
        place:
          type: "number"
        tos:
          type: "string"
        type:
          type: "string"
        updated:
          type: "string"
        waitlist_enabled:
          type: "boolean"
        warp_enabled:
          type: "boolean"
      required:
        - "created"
        - "enabled"
        - "fcm_token"
        - "id"
        - "install_id"
        - "key"
        - "locale"
        - "model"
        - "name"
        - "place"
        - "tos"
        - "type"
        - "updated"
        - "waitlist_enabled"
        - "warp_enabled"

    IPv4Network:
      type: "object"
      properties:
        address:
          type: "string"
        netmask:
          type: "string"
      required:
        - "address"
        - "netmask"

    IPv6Network:
      type: "object"
      properties:
        address:
          type: "string"
        prefix:
          type: "number"
      required:
        - "address"
        - "prefix"

    GetAccount_200_Response:
      $ref: "#/components/schemas/Account"

    GetBoundDevices_200_Response:
      $ref: "#/components/schemas/BoundDevice"

    GetClientConfig_200_Response:
      type: "object"
      properties:
        captive_portal:
          type: "array"
          items:
            type: "object"
            properties:
              name:
                type: "string"
              networks:
                type: "array"
                items:
                  type: "object"
                  properties:
                    address:
                      type: "string"
                  required:
                    - "address"
            required:
              - "name"
              - "networks"
        denylist:
          type: "array"
          items:
            type: "object"
            properties:
              android-packages:
                type: "array"
                items:
                  type: "string"
              name:
                type: "string"
              networks:
                type: "object"
                properties:
                  v4:
                    type: "array"
                    items:
                      $ref: "#/components/schemas/IPv4Network"
                  v6:
                    type: "array"
                    items:
                      $ref: "#/components/schemas/IPv6Network"
                required:
                  - "v4"
                  - "v6"
              visible:
                type: "boolean"
            required:
              - "name"
              - "visible"
        premium_data_bytes:
          type: "number"
        referral_reward_bytes:
          type: "number"
      required:
        - "captive_portal"
        - "denylist"
        - "premium_data_bytes"
        - "referral_reward_bytes"

    GetSourceDevice_200_Response:
      allOf:
        - $ref: "#/components/schemas/SourceDevice"
        - type: "object"
          properties:
            account:
              $ref: "#/components/schemas/Account"
            config:
              $ref: "#/components/schemas/Config"
          required:
            - "account"
            - "config"

    Register_200_Response:
      allOf:
        - $ref: "#/components/schemas/SourceDevice"
        - type: "object"
          properties:
            account:
              $ref: "#/components/schemas/Account"
            config:
              $ref: "#/components/schemas/Config"
            token:
              type: "string"
          required:
            - "account"
            - "config"
            - "token"

    Register_Request:
      type: "object"
      properties:
        fcm_token:
          type: "string"
        install_id:
          type: "string"
        key:
          type: "string"
        locale:
          type: "string"
        model:
          type: "string"
        tos:
          type: "string"
        type:
          type: "string"
      required:
        - "fcm_token"
        - "install_id"
        - "key"
        - "locale"
        - "model"
        - "tos"
        - "type"

    ResetAccountLicense_200_Response:
      type: "object"
      properties:
        license:
          type: "string"
      required:
        - "license"

    UpdateAccount_200_Response:
      type: "object"
      properties:
        created:
          type: "string"
        id:
          type: "string"
        premium_data:
          type: "number"
        quota:
          type: "number"
        referral_count:
          type: "number"
        referral_renewal_countdown:
          type: "number"
        role:
          type: "string"
        updated:
          type: "string"
        warp_plus:
          type: "boolean"
      required:
        - "created"
        - "id"
        - "premium_data"
        - "quota"
        - "referral_count"
        - "referral_renewal_countdown"
        - "role"
        - "updated"
        - "warp_plus"

    UpdateAccount_Request:
      type: "object"
      properties:
        license:
          type: "string"
      required:
        - "license"

    UpdateBoundDevice_200_Response:
      $ref: "#/components/schemas/BoundDevice"

    UpdateBoundDevice_Request:
      type: "object"
      properties:
        active:
          type: "boolean"
        name:
          type: "string"

    UpdateSourceDevice_200_Response:
      allOf:
        - $ref: "#/components/schemas/SourceDevice"
        - type: "object"
          properties:
            account:
              $ref: "#/components/schemas/Account"
            config:
              $ref: "#/components/schemas/Config"
          required:
            - "account"
            - "config"

    UpdateSourceDevice_Request:
      type: "object"
      properties:
        key:
          type: "string"
      required:
        - "key"

info:
  title: "Cloudflare WARP API"
  version: "536"
openapi: "3.0.1"
paths:
  /{apiVersion}/client_config:
    get:
      operationId: "GetClientConfig"
      responses:
        200:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetClientConfig_200_Response"
          description: ""
      summary: "GetClientConfig"
    parameters:
      - in: "path"
        name: "apiVersion"
        required: true
        schema:
          type: "string"
  /{apiVersion}/reg:
    parameters:
      - in: "path"
        name: "apiVersion"
        required: true
        schema:
          type: "string"
    post:
      operationId: "Register"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/Register_Request"
      responses:
        200:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Register_200_Response"
          description: ""
      summary: "Register"
  /{apiVersion}/reg/{sourceDeviceId}:
    get:
      operationId: "GetSourceDevice"
      responses:
        200:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetSourceDevice_200_Response"
          description: ""
      summary: "GetSourceDevice"
    parameters:
      - in: "path"
        name: "apiVersion"
        required: true
        schema:
          type: "string"
      - in: "path"
        name: "sourceDeviceId"
        required: true
        schema:
          type: "string"
    patch:
      operationId: "UpdateSourceDevice"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/UpdateSourceDevice_Request"
      responses:
        200:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/UpdateSourceDevice_200_Response"
          description: ""
      summary: "UpdateSourceDevice"
  /{apiVersion}/reg/{sourceDeviceId}/account:
    get:
      operationId: "GetAccount"
      responses:
        200:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetAccount_200_Response"
          description: ""
      summary: "GetAccount"
    parameters:
      - in: "path"
        name: "sourceDeviceId"
        required: true
        schema:
          type: "string"
      - in: "path"
        name: "apiVersion"
        required: true
        schema:
          type: "string"
    put:
      operationId: "UpdateAccount"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/UpdateAccount_Request"
      responses:
        200:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/UpdateAccount_200_Response"
          description: ""
      summary: "UpdateAccount"
  /{apiVersion}/reg/{sourceDeviceId}/account/devices:
    get:
      operationId: "GetBoundDevices"
      responses:
        200:
          content:
            application/json:
              schema:
                type: "array"
                items:
                  $ref: "#/components/schemas/GetBoundDevices_200_Response"
          description: ""
      summary: "GetBoundDevices"
    parameters:
      - in: "path"
        name: "sourceDeviceId"
        required: true
        schema:
          type: "string"
      - in: "path"
        name: "apiVersion"
        required: true
        schema:
          type: "string"
  /{apiVersion}/reg/{sourceDeviceId}/account/license:
    parameters:
      - in: "path"
        name: "sourceDeviceId"
        required: true
        schema:
          type: "string"
      - in: "path"
        name: "apiVersion"
        required: true
        schema:
          type: "string"
    post:
      operationId: "ResetAccountLicense"
      responses:
        200:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ResetAccountLicense_200_Response"
          description: ""
      summary: "ResetAccountLicense"
  /{apiVersion}/reg/{sourceDeviceId}/account/reg/{boundDeviceId}:
    parameters:
      - in: "path"
        name: "sourceDeviceId"
        required: true
        schema:
          type: "string"
      - in: "path"
        name: "apiVersion"
        required: true
        schema:
          type: "string"
      - in: "path"
        name: "boundDeviceId"
        required: true
        schema:
          type: "string"
    patch:
      operationId: "UpdateBoundDevice"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/UpdateBoundDevice_Request"
      responses:
        200:
          content:
            application/json:
              schema:
                type: "array"
                items:
                  $ref: "#/components/schemas/UpdateBoundDevice_200_Response"
          description: ""
      summary: "UpdateBoundDevice"
    delete:
      operationId: "DeleteBoundDevice"
      responses:
        204:
          description: ""
      summary: "DeleteBoundDevice"