Wyze Authentication
Wyze secures its APIs with apiKey, http, oauth2, and openIdConnect across 5 declared security schemes, as derived from its OpenAPI definitions. OAuth 2.0 is offered via the authorizationCode, refreshToken, and jwt-bearer flow(s).
Security Schemes
Source
Authentication Profile
generated: '2026-08-02'
method: searched
source: >-
https://support.wyze.com/hc/en-us/articles/16129834216731-Creating-an-API-Key and
https://www.wyze.com/.well-known/openid-configuration, plus live probes of
auth-prod.api.wyze.com and api.wyzecam.com
docs: https://support.wyze.com/hc/en-us/articles/16129834216731-Creating-an-API-Key
notes: >-
Wyze publishes no OpenAPI, so nothing here is derived from a spec - every scheme below
is taken from Wyze's own published documentation or from a live, unauthenticated probe.
Two entirely separate authentication models exist: (1) the device/cloud API, which uses
a personal API Key + Key ID pair exchanged for bearer tokens; and (2) the Shopify-backed
storefront customer account, which is a standards-compliant OIDC/OAuth 2.0 authorization
code + PKCE surface with a published discovery document.
summary:
types: [apiKey, http, oauth2, openIdConnect]
api_key_in: [header]
oauth2_flows: [authorizationCode, refreshToken, jwt-bearer]
mfa: >-
Wyze mandates 2-factor authentication for all customer accounts (per
https://www.wyze.com/pages/security-trust); the login response carries mfa_options,
mfa_details, sms_session_id and email_session_id fields.
schemes:
- name: WyzeApiKeyPair
type: apiKey
in: header
parameter_names: [Keyid, Apikey]
api: wyze:developer-api
endpoint: https://auth-prod.api.wyze.com/api/user/login
description: >-
A personal API Key and API Key ID generated from the Wyze Developer API Console at
https://developer-api-console.wyze.com/#/apikey/view. Both are sent as HTTP headers
(Keyid, Apikey) on the login request along with a JSON body carrying the account
email and a triple-MD5 hashed password. The credential is per-user, not per-app.
constraints:
keys_per_user: 1
key_lifetime: 1 year from creation
rotation: >-
to rotate, delete the existing key in the console and create a new one; Wyze emails
the account when a key is generated
rate_limited: >-
Wyze documents that the login endpoint is rate limited and instructs callers not to
repeatedly call it to obtain tokens; no numeric limit is published
- name: WyzeAccessToken
type: http
scheme: bearer
api: wyze:developer-api
description: >-
The access token returned by the login exchange (prefix observed in Wyze's published
example as "lvtx."). Used against the api.wyzecam.com application endpoints.
token_lifetime: 2 days
- name: WyzeRefreshToken
type: http
scheme: bearer
api: wyze:developer-api
endpoint: https://api.wyzecam.com/app/user/refresh_token
description: >-
The refresh token returned by the login exchange, POSTed to
/app/user/refresh_token with the documented app_ver / app_version / phone_id / sc /
sv constants ("wyze_developer_api") plus a ts timestamp, to mint a new access token
and refresh token pair.
token_lifetime: 30 days
- name: WyzeCustomerAccountOIDC
type: openIdConnect
openIdConnectUrl: https://www.wyze.com/.well-known/openid-configuration
api: wyze:customer-account-mcp
source: well-known/wyze-openid-configuration.json
issuer: https://shopify.com/authentication/58004504738
description: >-
Shopify customer-accounts OIDC, served from Wyze's own hosts. Backs the storefront
login and the customer account MCP server.
endpoints:
authorization: https://account.wyze.com/authentication/oauth/authorize
token: https://account.wyze.com/authentication/oauth/token
end_session: https://account.wyze.com/authentication/logout
jwks: https://account.wyze.com/authentication/.well-known/jwks.json
flows:
- flow: authorizationCode
pkce: [S256]
- flow: refreshToken
- flow: 'urn:ietf:params:oauth:grant-type:jwt-bearer'
token_endpoint_auth_methods: [client_secret_basic]
id_token_signing_alg: [RS256]
response_types: [code]
scopes: scopes/wyze-scopes.yml
- name: WyzeUCPAgentProfile
type: apiKey
in: request
api: wyze:ucp
description: >-
The Universal Commerce Protocol MCP endpoint at /api/ucp/mcp requires the calling
agent to present a resolvable agent profile URI; anonymous JSON-RPC tools/list is
rejected with error -32001 invalid_profile_url / "Missing profile uri". The exact
header/parameter name is not published by Wyze and was not guessed.
observed_status: 422
unauthenticated_surfaces:
- surface: https://www.wyze.com/api/mcp
note: storefront MCP server; tools/list and catalog/cart tools answer with no credentials
- surface: https://www.wyze.com/.well-known/ucp
note: UCP merchant discovery document, public
- surface: https://www.wyze.com/llms.txt
note: agent instructions, public
Work with this as data
Every security artifact here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for security posture
4 MCP tools reach this
find_securityBrowse and filter every security artifact in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
curl "https://apis.io/api/v1/security/wyze-authentication"
curl "https://apis.io/api/v1/security?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.