Spot AI
spot.ai · AI
Video intelligence API that turns existing cameras into AI-powered analytics tools. Access live and historical camera feeds, query presence detection, object counting, idle monitoring, and license plate recognition data. Build custom integrations using 100+ endpoints across camera management, intelligence data, audio, and event automation.
Authentication
Sample Requests
Returns all cameras accessible to your account including name, location, and status.
Hover any highlighted part to learn what it does
| Authorization | Bearer YOUR_API_KEY |
curl -X GET "https://api.spot.ai/v1/cameras" \ -H "Authorization: Bearer YOUR_API_KEY"
import requests
headers = {
"Authorization": "Bearer YOUR_API_KEY"
}
response = requests.get(
"https://api.spot.ai/v1/cameras",
headers=headers,
)
print(response.json())const url = 'https://api.spot.ai/v1/cameras';
const response = await fetch(url, {
headers: {
'Authorization': 'Bearer YOUR_API_KEY'
},
});
const data = await response.json();
console.log(data);package main
import (
"fmt"
"io"
"net/http"
)
func main() {
targetURL := "https://api.spot.ai/v1/cameras"
req, _ := http.NewRequest("GET", targetURL, nil)
req.Header.Set("Authorization", "Bearer YOUR_API_KEY")
client := &http.Client{}
resp, _ := client.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}require "net/http"
require "json"
uri = URI("https://api.spot.ai/v1/cameras")
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == "https"
req = Net::HTTP::Get.new(uri)
req["Authorization"] = "Bearer YOUR_API_KEY"
res = http.request(req)
puts JSON.parse(res.body)<?php
$url = "https://api.spot.ai/v1/cameras";
$opts = ["http" => [
"method" => "GET",
"header" => implode("\r\n", [
"Authorization: Bearer YOUR_API_KEY"
]),
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));Returns presence detection analytics for a camera over a specified time range.
Hover any highlighted part to learn what it does
| Authorization | Bearer YOUR_API_KEY |
curl -X GET "https://api.spot.ai/v1/intelligence/presence?end=2026-06-07T00%3A00%3A00Z&start=2026-06-01T00%3A00%3A00Z&camera_id=cam_123" \ -H "Authorization: Bearer YOUR_API_KEY"
import requests
params = {
"end": "2026-06-07T00:00:00Z",
"start": "2026-06-01T00:00:00Z",
"camera_id": "cam_123"
}
headers = {
"Authorization": "Bearer YOUR_API_KEY"
}
response = requests.get(
"https://api.spot.ai/v1/intelligence/presence",
params=params,
headers=headers,
)
print(response.json())const url = new URL('https://api.spot.ai/v1/intelligence/presence');
url.searchParams.set('end', '2026-06-07T00:00:00Z');
url.searchParams.set('start', '2026-06-01T00:00:00Z');
url.searchParams.set('camera_id', 'cam_123');
const response = await fetch(url, {
headers: {
'Authorization': 'Bearer YOUR_API_KEY'
},
});
const data = await response.json();
console.log(data);package main
import (
"fmt"
"io"
"net/http"
"net/url"
)
func main() {
baseURL, _ := url.Parse("https://api.spot.ai/v1/intelligence/presence")
q := baseURL.Query()
q.Set("end", "2026-06-07T00:00:00Z")
q.Set("start", "2026-06-01T00:00:00Z")
q.Set("camera_id", "cam_123")
baseURL.RawQuery = q.Encode()
targetURL := baseURL.String()
req, _ := http.NewRequest("GET", targetURL, nil)
req.Header.Set("Authorization", "Bearer YOUR_API_KEY")
client := &http.Client{}
resp, _ := client.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}require "net/http"
require "json"
uri = URI("https://api.spot.ai/v1/intelligence/presence")
uri.query = URI.encode_www_form({
"end" => "2026-06-07T00:00:00Z",
"start" => "2026-06-01T00:00:00Z",
"camera_id" => "cam_123"
})
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == "https"
req = Net::HTTP::Get.new(uri)
req["Authorization"] = "Bearer YOUR_API_KEY"
res = http.request(req)
puts JSON.parse(res.body)<?php
$url = "https://api.spot.ai/v1/intelligence/presence?" . http_build_query([
"end" => "2026-06-07T00:00:00Z",
"start" => "2026-06-01T00:00:00Z",
"camera_id" => "cam_123"
]);
$opts = ["http" => [
"method" => "GET",
"header" => implode("\r\n", [
"Authorization: Bearer YOUR_API_KEY"
]),
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));Postman Setup Guide
- Create an account at spot.ai and log into your dashboard
- Navigate to Settings → API Keys and generate a new API key
- In Postman, create a new request and set Authorization type to Bearer Token
- Paste your API key as the Bearer Token value
- Try GET https://api.spot.ai/v1/cameras to list your cameras
- Tip: save your key as a Postman variable {{spot_api_key}} to reuse across requests
What can you build with Spot AI?
Spot AI is a AI API. Developers commonly use ai APIs for:
- adding natural language processing to your product
- generating images, text, or code with AI models
- building chatbots and virtual assistants
- running sentiment analysis on customer feedback
- powering recommendation and personalisation engines
API Key authentication. You'll receive a key after signing up. Send it with every request — in a header or query parameter. Keep it out of client-side code and never commit it to version control. Spot AI is a paid API — check the provider's pricing page before building a production integration.
New to APIs? Read our beginner's guide · Learn about API keys · What is REST?