Obtain detail programmatically with our application programming interface

Obtaining an API Key for Mobile Eye

  • 7SIGNAL utilizes OAuth 2.0, the industry-standard protocol for authorization. Obtain an API key and secret through Mobile Eye by navigating to the Users icon along the left navigation bar, then clicking Manage Users.
  • Then click the API Key icon along the left, and the Add API Key button at the top.
  • Select either Administrator or User and click Save.  Users will not be able to make API calls to Configuration endpoints, once 7SIGNAL makes them available.
  • Copy and paste and save your API key and secret. You will use it in the token exchange request/response process to connect to the API.

Public Links to Online Documentation

Mobile Eye


Sapphire Eye


REST Sapphire Eye Documentation

Sample Code (Python)

This program will authenticate, then get a list of Mobile Eye incidents detected for the last 24 hours.

import requests
import json 

First step in using 7SIGNAL API is to exchange your key and secret for a JWT token.
This is accomplished with an OAuth request
auth_data = {
  "client_id": "62CAF473.your_key_here.XMXQS",
  "client_secret": "fKKPuynq.your_secret_here.FlFjZupS",
    "grant_type": "client_credentials", "scope": 
    "openid https://login.7signal.com/scopes/user.read https://login.7signal.com/scopes/user.admin"

auth_headers = {"Accept": "application/json"}
token_exch_response = requests.post('https://api-v1.7signal.com/oauth2/token', data = auth_data, headers = auth_headers)
token_exch_json_response = token_exch_response.json()

# This token can now be used for subsequent requests. Note the token will expire.
token = token_exch_json_response["access_token"]

Once a token is acquired, it can be used to make calls to the API.
This is done using an Authorization header with a Bearer token.
headers_incidents = {
    "Accept": "application/json", 
    "Authorization": f"Bearer {token}"
incidents_response = requests.get('https://api-v1.7signal.com/incidents/agents', headers = headers_incidents)
incidents_json = incidents_response.json()

# Pretty print the JSON response to the console
incidents_json_formatted = json.dumps(incidents_json, indent = 2)