Developer API
Eyes gives you a camera that sees and understands, and an API that lets you do anything with that. Build a dashboard for your café, a Slack bot that tells your team when the meeting room is free, a smart doorbell, an art installation, an inventory tracker, or something nobody's thought of yet.
Hardware is shipping Q3 2026 via Kickstarter. The API is open. You bring the idea.
Everything below is a REST API, it works with any language, any framework, and any AI coding tool. Point Cursor, Claude Code, or Copilot at this page and start building.
Approval required. API keys must be approved before use. Request a key below and we'll review it, usually within 24 hours. This ensures fair usage and prevents unexpected costs.
Fetch live images, get AI-powered scene descriptions, query activity history, and detect changes, all via simple REST endpoints. Every Eyes device uploads a photo every 90 seconds, and the system tags each one with an AI-generated scene description and change detection score. You get all of that through the API.
https://goteyes.ai/api
Once your API key is approved, include it in every request as a header:
Authorization: Bearer eyes_abc123...
# curl curl -H "Authorization: Bearer YOUR_KEY" \ https://goteyes.ai/api/places/H3M/latest # Response { "place": "H3M", "key": "places/H3M/20260216_120000.jpg", "url": "https://...presigned-url..." }
# Returns JPEG bytes curl -H "Authorization: Bearer YOUR_KEY" \ "https://goteyes.ai/api/image?key=places/H3M/20260216_120000.jpg" \ -o photo.jpg
# Natural language query curl -H "Authorization: Bearer YOUR_KEY" \ "https://goteyes.ai/gpt/ask?place=H3M&question=What%27s+happening?" # Response { "answer": "The scene shows a well-lit living room..." }
const API_KEY = "eyes_abc123..."; const BASE = "https://goteyes.ai/api"; // Get latest image info const res = await fetch(`${BASE}/places/H3M/latest`, { headers: { "Authorization": `Bearer ${API_KEY}` } }); const data = await res.json(); // Ask the AI about the scene const answer = await fetch( `https://goteyes.ai/gpt/ask?place=H3M&question=Is+anyone+there?`, { headers: { "Authorization": `Bearer ${API_KEY}` } } ).then(r => r.json()); console.log(answer.answer);
import requests API_KEY = "eyes_abc123..." BASE = "https://goteyes.ai/api" headers = {"Authorization": f"Bearer {API_KEY}"} # Get latest image latest = requests.get(f"{BASE}/places/H3M/latest", headers=headers).json() # Download the image img = requests.get(f"{BASE}/image", params={"key": latest["key"]}, headers=headers) with open("photo.jpg", "wb") as f: f.write(img.content) # Ask the AI resp = requests.get("https://goteyes.ai/gpt/ask", params={"place": "H3M", "question": "What's happening?"}, headers=headers).json() print(resp["answer"])
signed=1 to include presigned download URLs. Default limit is 50 (max 200).{"ok": true}.To keep the service fair and affordable:
If you hit a limit, you'll receive a 429 Too Many Requests response. Wait and retry.
The full interactive API documentation is available at /api/docs (Swagger UI) and the OpenAPI JSON at /api/openapi.json.
Need a device? Hardware is shipping Q3 2026 via Kickstarter. Plug into USB-C, connect to WiFi, and the API is yours.