Features Verticals Cameras Conferences Pricing Contact Log In Get Started

Google Nest Cam Integration Guide

Connect your Google Nest cameras to AgenticEye using the Smart Device Management (SDM) API. Nest cameras are cloud-only — no RTSP access is available.

Google SDM API WebRTC No RTSP

Cloud API Only: Google Nest cameras do not support RTSP, ONVIF, or any local streaming protocol. All video access goes through Google's Smart Device Management (SDM) API, which requires a Google Cloud project with billing enabled. There is a one-time $5 USD registration fee for SDM API access.

Supported Models

Nest Cam Indoor Nest Cam Outdoor Nest Doorbell

All Google Nest cameras and doorbells that support the SDM API are compatible with AgenticEye. Legacy "Works with Nest" cameras may require migration to a Google account first.

Prerequisites

Step-by-Step Integration

1

Create a Google Cloud Project

Go to the Google Cloud Console and create a new project (or use an existing one). Enable billing for the project — this is required for the SDM API.

Google Cloud Console # 1. Go to https://console.cloud.google.com # 2. Create a new project: "AgenticEye Nest Integration" # 3. Enable billing for the project # 4. Note your Project ID — you'll need it later # Enable the Smart Device Management API: # APIs & Services > Library > Search "Smart Device Management" # Click "Enable"
2

Register for Device Access

Visit the Google Device Access Console to register and create a Device Access project. This is separate from your Google Cloud project.

Device Access Setup # 1. Go to https://console.nest.google.com/device-access # 2. Pay the $5 USD registration fee # 3. Create a new Device Access project # 4. Set the OAuth client ID from your Google Cloud project # 5. Note the Device Access Project ID: # Format: enterprises/[project-id] # Example: enterprises/a1b2c3d4-e5f6-7890-abcd-ef1234567890
3

Configure OAuth 2.0 Credentials

Create OAuth 2.0 credentials in your Google Cloud project for authenticating with the SDM API.

Google Cloud Console # In Google Cloud Console: # APIs & Services > Credentials > Create Credentials > OAuth Client ID # Application type: Web application # Name: AgenticEye # Authorized redirect URIs: # https://your-agenticeye-server.com/auth/google/callback # http://localhost:3000/auth/callback (for testing) # Save the Client ID and Client Secret
4

Authorize AgenticEye to Access Your Nest Account

Complete the OAuth flow to grant AgenticEye permission to access your Nest cameras. This links your Google/Nest account to your AgenticEye instance.

OAuth Authorization URL # Construct the authorization URL: https://nestservices.google.com/partnerconnections/[project-id]/auth ?redirect_uri=https://your-server.com/auth/google/callback &access_type=offline &prompt=consent &client_id=[your-oauth-client-id] &response_type=code &scope=https://www.googleapis.com/auth/sdm.service # After authorization, exchange the code for tokens: curl -X POST https://oauth2.googleapis.com/token \ -H "Content-Type: application/x-www-form-urlencoded" \ -d "client_id=[your-client-id]" \ -d "client_secret=[your-client-secret]" \ -d "code=[authorization-code]" \ -d "grant_type=authorization_code" \ -d "redirect_uri=https://your-server.com/auth/google/callback"
5

List Cameras via SDM API

Use the SDM API to discover all Nest cameras linked to your account.

Shell # List all devices (cameras, doorbells, thermostats, etc.) curl -X GET \ "https://smartdevicemanagement.googleapis.com/v1/enterprises/[project-id]/devices" \ -H "Authorization: Bearer [access-token]" \ -H "Content-Type: application/json" # Example response (camera device): { "devices": [ { "name": "enterprises/[project-id]/devices/AVPHw...", "type": "sdm.devices.types.CAMERA", "traits": { "sdm.devices.traits.Info": { "customName": "Front Door" }, "sdm.devices.traits.CameraLiveStream": { "maxVideoResolution": { "width": 1920, "height": 1080 }, "videoCodecs": ["H264"], "audioCodecs": ["AAC"], "supportedProtocols": ["WEB_RTC"] } } } ] }
6

Generate a Camera Live Stream

Request a live stream from a specific camera. The SDM API returns a WebRTC stream that AgenticEye proxies into a format usable by AI agents.

Shell # Generate a WebRTC live stream curl -X POST \ "https://smartdevicemanagement.googleapis.com/v1/enterprises/[project-id]/devices/[device-id]:executeCommand" \ -H "Authorization: Bearer [access-token]" \ -H "Content-Type: application/json" \ -d '{ "command": "sdm.devices.commands.CameraLiveStream.GenerateWebRtcStream", "params": { "offerSdp": "[WebRTC-SDP-offer-from-AgenticEye]" } }' # Response includes the answer SDP for WebRTC negotiation: { "results": { "answerSdp": "[WebRTC-SDP-answer]", "expiresAt": "2026-03-12T12:00:00Z", "mediaSessionId": "abc123..." } } # Streams expire and must be renewed before the # expiresAt timestamp using ExtendWebRtcStream
7

Configure in AgenticEye

Add your Google Nest configuration to AgenticEye. The platform handles WebRTC negotiation, stream renewal, and proxying automatically.

agenticeye.yaml cameras: - name: "Front Door - Nest Cam" brand: google model: "Nest Cam Indoor" protocol: google_sdm google_sdm: project_id: "a1b2c3d4-e5f6-7890-abcd-ef1234567890" device_id: "AVPHwEuBfnPOnTqzVFT..." client_id: "${GOOGLE_CLIENT_ID}" client_secret: "${GOOGLE_CLIENT_SECRET}" refresh_token: "${GOOGLE_REFRESH_TOKEN}" # WebRTC stream auto-renewal stream_renewal: true renewal_buffer: 60 # Renew 60s before expiry agents: - type: security sensitivity: high - type: occupancy count_mode: true # Or auto-discover all Nest cameras: google_sdm: project_id: "a1b2c3d4-e5f6-7890-abcd-ef1234567890" client_id: "${GOOGLE_CLIENT_ID}" client_secret: "${GOOGLE_CLIENT_SECRET}" refresh_token: "${GOOGLE_REFRESH_TOKEN}" auto_discover: true default_agents: - type: security sensitivity: medium

Protocol Reference

API Endpoints # SDM API Base URL https://smartdevicemanagement.googleapis.com/v1 # List all devices GET /enterprises/[project-id]/devices # Get single device GET /enterprises/[project-id]/devices/[device-id] # Generate WebRTC stream POST /enterprises/[project-id]/devices/[device-id]:executeCommand Command: sdm.devices.commands.CameraLiveStream.GenerateWebRtcStream # Extend active stream POST /enterprises/[project-id]/devices/[device-id]:executeCommand Command: sdm.devices.commands.CameraLiveStream.ExtendWebRtcStream # Stop stream POST /enterprises/[project-id]/devices/[device-id]:executeCommand Command: sdm.devices.commands.CameraLiveStream.StopWebRtcStream # OAuth Token Endpoint POST https://oauth2.googleapis.com/token # Device Access Console https://console.nest.google.com/device-access

Troubleshooting

Google Cloud billing required

The SDM API requires an active Google Cloud project with billing enabled. While the API itself has a free tier, Google requires a billing account to be linked. You will not be charged unless you exceed the free tier quotas (which is unlikely for camera integration). Additionally, the one-time $5 Device Access registration fee must be paid.

SDM API quota limits

The SDM API enforces rate limits: 10 queries per minute per device for live stream commands. AgenticEye manages stream renewal automatically, but if you encounter quota errors (HTTP 429), increase the renewal_buffer value to reduce renewal frequency. For multi-camera setups, stagger stream initialization.

WebRTC stream complexity

Nest cameras use WebRTC for live streaming, which requires ICE negotiation, STUN/TURN servers, and SDP exchange. AgenticEye handles this complexity internally via its WebRTC-to-RTSP proxy module. Ensure your server has UDP ports 10000-20000 open for ICE candidates and can reach Google's STUN servers.

OAuth token expired

Access tokens expire after 1 hour. AgenticEye automatically refreshes tokens using the stored refresh token. If you see authentication errors, verify your refresh_token is still valid. Refresh tokens can become invalid if you revoke access, change your Google password, or if the token is unused for 6 months.

Camera not appearing in device list

Ensure your Nest camera is set up in the Google Home app (not the legacy Nest app). Legacy Nest accounts must be migrated to Google accounts. During the OAuth authorization flow, make sure to select the specific cameras you want to share with AgenticEye — the user must explicitly grant access to each device.

Stream quality or latency issues

WebRTC streams through Google's cloud introduce inherent latency (typically 1-3 seconds). This is a limitation of the cloud-only architecture. For time-critical applications, consider supplementing Nest cameras with RTSP-capable cameras. Ensure your server has sufficient bandwidth — each 1080p stream requires approximately 2-4 Mbps.

Need help with your Google Nest integration?

The SDM API setup can be complex. Our integration team can walk you through the Google Cloud configuration and get your Nest cameras connected to AgenticEye.

Contact Our Integration Team