got

Eyes

.ai

Developer API

Build whatever you want

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.

What the API does

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.

Base URL

https://goteyes.ai/api

Authentication

Once your API key is approved, include it in every request as a header:

Authorization: Bearer eyes_abc123...

Quick Start

Get the latest image

# 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..."
}

Fetch an image

# Returns JPEG bytes
curl -H "Authorization: Bearer YOUR_KEY" \
  "https://goteyes.ai/api/image?key=places/H3M/20260216_120000.jpg" \
  -o photo.jpg

Ask the AI

# 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..."
}

JavaScript / TypeScript

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);

Python

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"])

Endpoints

GET /places/{place}/latest
Get the latest image key and timestamp for a place.
GET /image?key={object_key}
Fetch an image by its object key. Returns JPEG bytes.
GET /places/{place}/images?limit=50&signed=0
List recent image keys for a place. Set signed=1 to include presigned download URLs. Default limit is 50 (max 200).
GET /places/{place}/device_status
Get device connectivity status: online/offline, WiFi SSID, signal strength, firmware version.
GET /places/{place}/activity?hours=12
Get all images with change detection data over a time range. Returns total image count and flags significant changes (≥3% diff).
GET /places/{place}/events?hours=12&limit=50
Get detected scene-change events with descriptions, event types (arrival, departure, activity_change, lighting_change), and the current scene state.
GET /gpt/ask?place={place}&question={text}
Ask the AI about a place. Returns a natural language answer based on recent images and activity.
GET /places/{place}/timeline
Get a full timeline of uploads with change detection percentages.
GET /places/{place}/config
Get the current configuration for a place (context, privacy settings, storage level, visibility level).
GET /places
List all registered place codes.
GET /health
Health check. Returns {"ok": true}.
GET /places/{place}/daily-summaries?days=14
Get AI-generated daily summaries covering who was present, key activities, and patterns.
GET /developer/key_status?api_key={key}
Check the approval status of your API key.

Rate Limits

To keep the service fair and affordable:

If you hit a limit, you'll receive a 429 Too Many Requests response. Wait and retry.

OpenAPI Spec

The full interactive API documentation is available at /api/docs (Swagger UI) and the OpenAPI JSON at /api/openapi.json.

Request an API Key

Need a device? Hardware is shipping Q3 2026 via Kickstarter. Plug into USB-C, connect to WiFi, and the API is yours.

Reserve a Device →

© 2026 gotEyes.ai · About · Terms · Privacy