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" - "model" - "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"