# Spot AI Documentation > Documentation for Spot AI Append .md to any documentation page URL to get its markdown version. ## API Reference - [Introduction](https://developers.spot.ai/reference/introduction.md): Extract camera and intelligence data, automate tasks, and build custom integrations. - [Authentication](https://developers.spot.ai/reference/authentication.md): Create API keys to access your Spot AI data programmatically. - [Response Codes](https://developers.spot.ai/reference/response-codes.md): Understand success and error responses from API requests. - [Get locations](https://developers.spot.ai/reference/getlocations.md): Gets basic information (id and name) of locations the caller has access to. Response data is paginated. The number of locations returned in any single response will never be greater than the `limit`. If there are more locations that can be requested, the response body will contain a non-null `"next"` property. Use this `"next"` value to request the next page of data by submitting a subsequent request with the `cursor` query param set to this value of `"next"`. To fetch all pages of data, continue making requests until `"next"` is `null` in the response body. - [Get locations](https://developers.spot.ai/reference/getlocations-1.md): Gets basic information (id and name) of locations the caller has access to. Response data is paginated. The number of locations returned in any single response will never be greater than the `limit`. If there are more locations that can be requested, the response body will contain a non-null `"next"` property. Use this `"next"` value to request the next page of data by submitting a subsequent request with the `cursor` query param set to this value of `"next"`. To fetch all pages of data, continue making requests until `"next"` is `null` in the response body. - [Get a paginated list of appliances](https://developers.spot.ai/reference/getappliances.md): Returns a paginated list of appliances for an org. Response contains a cursor for pagination. - [Get appliance information](https://developers.spot.ai/reference/getappliance.md): Returns information about a single appliance. - [Get a paginated list of appliances](https://developers.spot.ai/reference/getappliances-1.md): Returns a paginated list of appliances for an org. Response contains a cursor for pagination. - [Get appliance information](https://developers.spot.ai/reference/getappliance-1.md): Returns information about a single appliance. - [Get a paginated list of cameras](https://developers.spot.ai/reference/getcameras.md): Paginated list of cameras for an org. Response contains a cursor for pagination. - [Get camera count](https://developers.spot.ai/reference/getcameracount.md): Returns the number of enabled cameras for an organization - [Get a url to a live stream of the cameras](https://developers.spot.ai/reference/getliveurl.md): Returns a url to a live stream of the cameras - [Get camera information](https://developers.spot.ai/reference/getcamerabyid.md): Returns information about a single camera. - [Get a paginated list of cameras](https://developers.spot.ai/reference/getcameras-1.md): Paginated list of cameras for an org. Response contains a cursor for pagination. - [Get camera count](https://developers.spot.ai/reference/getcameracount-1.md): Returns the number of enabled cameras for an organization - [Get a url to a live stream of the cameras](https://developers.spot.ai/reference/getliveurl-1.md): Returns a url to a live stream of the cameras - [Get camera information](https://developers.spot.ai/reference/getcamerabyid-1.md): Returns information about a single camera. - [Generate an embeddable URL for a live camera feed](https://developers.spot.ai/reference/generateliveembedurl.md): Generates an embeddable URL for a live camera feed that can be used in an iframe. This endpoint requires the `camera_share_create` permission on the specified camera. - [Generate an embeddable URL for a VOD camera feed](https://developers.spot.ai/reference/generatevodembedurl.md): Generates an embeddable URL for a VOD (Video on Demand) camera feed that can be used in an iframe. This endpoint requires the `clip_share_create` permission on the specified camera. - [Generate an embeddable URL for a live camera feed](https://developers.spot.ai/reference/generateliveembedurl-1.md): Generates an embeddable URL for a live camera feed that can be used in an iframe. This endpoint requires the `camera_share_create` permission on the specified camera. - [Generate an embeddable URL for a VOD camera feed](https://developers.spot.ai/reference/generatevodembedurl-1.md): Generates an embeddable URL for a VOD (Video on Demand) camera feed that can be used in an iframe. This endpoint requires the `clip_share_create` permission on the specified camera. - [Play audio through a camera](https://developers.spot.ai/reference/playaudio.md): Plays an audio file through the speakers associated with the specified camera. There are two ways that speakers can be associated with a camera: 1. The camera is associated with a Bullhorn through an Integration. 2. The camera has a built in speaker which has Two-Way audio enabled. If no associated speakers are found, the audio will not be played (status code 400). Supported file formats include (but not limited to): - MP3 - WAV - M4A - OGG - FLAC Processing may take a moment depending on file size and system load. This endpoint requires the `camera.manage_audio` permission on the specified camera. - [Play audio through a camera](https://developers.spot.ai/reference/playaudio-1.md): Plays an audio file through the speakers associated with the specified camera. There are two ways that speakers can be associated with a camera: 1. The camera is associated with a Bullhorn through an Integration. 2. The camera has a built in speaker which has Two-Way audio enabled. If no associated speakers are found, the audio will not be played (status code 400). Supported file formats include (but not limited to): - MP3 - WAV - M4A - OGG - FLAC Processing may take a moment depending on file size and system load. This endpoint requires the `camera.manage_audio` permission on the specified camera. - [Create historical footage job](https://developers.spot.ai/reference/createhistoricalfootage.md): This endpoint allows you to trigger a background job to fetch and store historical footage for a camera. The job will run asynchronously and the response will contain the id and status of the job. The Id or redirectId returned can be used to query the status of the job. - [Get details of a submitted historical footage request](https://developers.spot.ai/reference/gethistoricalfootage.md) - [Create historical footage job](https://developers.spot.ai/reference/createhistoricalfootage-1.md): This endpoint allows you to trigger a background job to fetch and store historical footage for a camera. The job will run asynchronously and the response will contain the id and status of the job. The Id or redirectId returned can be used to query the status of the job. - [Get details of a submitted historical footage request](https://developers.spot.ai/reference/gethistoricalfootage-1.md) - [Get zones](https://developers.spot.ai/reference/getzones.md): Returns a list of zones for a camera - [Get zones](https://developers.spot.ai/reference/getzones-1.md): Returns a list of zones for a camera - [Create shared camera search view](https://developers.spot.ai/reference/createsharedcamerasearch.md): This endpoint creates a new shared camera search view. The view has a publicly accessible link that can be shared with anyone. The link will expire after the expiry time. The expiry time is optional. If not provided, the link will expire after 1 week. - [Get shared camera search view details](https://developers.spot.ai/reference/getsharedcamerasearch.md): This endpoint retrieves the shared camera search URL details. - [Update shared camera search view details](https://developers.spot.ai/reference/updatesharedcamerasearch.md): This endpoint updates an existing shared camera search view. It allows updating the start, end time and the expiry of the shared search. - [Create shared camera search view](https://developers.spot.ai/reference/createsharedcamerasearch-1.md): This endpoint creates a new shared camera search view. The view has a publicly accessible link that can be shared with anyone. The link will expire after the expiry time. The expiry time is optional. If not provided, the link will expire after 1 week. - [Get shared camera search view details](https://developers.spot.ai/reference/getsharedcamerasearch-1.md): This endpoint retrieves the shared camera search URL details. - [Update shared camera search view details](https://developers.spot.ai/reference/updatesharedcamerasearch-1.md): This endpoint updates an existing shared camera search view. It allows updating the start, end time and the expiry of the shared search. - [Count](https://developers.spot.ai/reference/counting.md): Count events and summary for a camera - [Idle](https://developers.spot.ai/reference/idle.md): Idling events and summary for a camera. - [Presence](https://developers.spot.ai/reference/presence.md): Presence events and summary for a camera. - [Count](https://developers.spot.ai/reference/counting-1.md): Count events and summary for a camera - [Idle](https://developers.spot.ai/reference/idle-1.md): Idling events and summary for a camera. - [Presence](https://developers.spot.ai/reference/presence-1.md): Presence events and summary for a camera. - [Get all Licence Plate Interest Lists](https://developers.spot.ai/reference/getinterestlists.md): Get all Licence Plate Interest Lists - [Create a Licence Plate Interest List](https://developers.spot.ai/reference/createinterestlist.md): Create a Licence Plate Interest List - [Get all Licence Plate Interest Lists](https://developers.spot.ai/reference/getinterestlists-1.md): Get all Licence Plate Interest Lists - [Create a Licence Plate Interest List](https://developers.spot.ai/reference/createinterestlist-1.md): Create a Licence Plate Interest List - [LPR Report](https://developers.spot.ai/reference/lprreport.md): Get LPR report for a camera. Camera should be LPR enabled - [LPR Report](https://developers.spot.ai/reference/lprreport-1.md): Get LPR report for a camera. Camera should be LPR enabled - [Overview](https://developers.spot.ai/reference/overview.md): Link business events from external systems to video footage for faster investigations. - [Glossary](https://developers.spot.ai/reference/glossary.md): Key terms and concepts used throughout Spot Connect. - [Automatic Device Creation](https://developers.spot.ai/reference/device-auto-creation.md): Let devices be created on-demand as events arrive, no manual setup required. - [Get all integrations](https://developers.spot.ai/reference/getallintegrations.md): This endpoint returns details of all integrations that the caller can access within an organization. Integrations that the caller does not have access to will not be included in the response. Details include integration number, integration name, and integration type. - [Create a new integration](https://developers.spot.ai/reference/createintegration.md): This endpoint creates a new integration. You may choose a canned integration type or create a fully custom integration. Canned integrations will have a schema template to help you create event types and a specific visualization layer. You will still be able to customize the event type schema however you see fit. - [Get integration information](https://developers.spot.ai/reference/getintegration.md): This endpoint returns full details of a specific integration. The integration ID is required to return integration name and integration type. - [Update integration name](https://developers.spot.ai/reference/updateintegration.md): This endpoint can be used to update an existing integration's name. - [Delete an existing integration](https://developers.spot.ai/reference/deleteintegration.md): This endpoint can be used to delete an integration. All associated data including integration devices, integration event types, and events will also be deleted - [Get all integrations](https://developers.spot.ai/reference/getallintegrations-1.md): This endpoint returns details of all integrations that the caller can access within an organization. Integrations that the caller does not have access to will not be included in the response. Details include integration number, integration name, and integration type. - [Create a new integration](https://developers.spot.ai/reference/createintegration-1.md): This endpoint creates a new integration. You may choose a canned integration type or create a fully custom integration. Canned integrations will have a schema template to help you create event types and a specific visualization layer. You will still be able to customize the event type schema however you see fit. - [Get integration information](https://developers.spot.ai/reference/getintegration-1.md): This endpoint returns full details of a specific integration. The integration ID is required to return integration name and integration type. - [Update integration name](https://developers.spot.ai/reference/updateintegration-1.md): This endpoint can be used to update an existing integration's name. - [Delete an existing integration](https://developers.spot.ai/reference/deleteintegration-1.md): This endpoint can be used to delete an integration. All associated data including integration devices, integration event types, and events will also be deleted - [Get all devices for integration](https://developers.spot.ai/reference/getalldevicesforintegration.md): This endpoint returns a paginated list of all devices in an integration that the caller has access to, along with the cameras associated with each device. Devices that the caller does not have access to will not be included in the response. - [Create integration device](https://developers.spot.ai/reference/createintegrationdevice.md): This endpoint creates a new integration device. You can choose up to four cameras in the same location to tie to the integration device. Whenever there is an event from this integration device, you will automatically see the footage from all attached cameras. - [Get integration device by id](https://developers.spot.ai/reference/getintegrationdevicebyid.md): This endpoint returns details of an integration device, which include device name, tags, integration ID, linked camera IDs, and audit stamps. - [Update integration device properties](https://developers.spot.ai/reference/updateintegrationdeviceproperties.md): This endpoint can be used to update an existing integration device's name and tags. - [Delete an integration device](https://developers.spot.ai/reference/deleteintegrationdevice.md): This endpoint deletes an integration device. All integration events associated with the integration device will also be deleted. Required parameters are integration ID and integration device ID. - [Update integration device camera links](https://developers.spot.ai/reference/updateintegrationdevicecameras.md): This endpoint can be used to update the cameras associated with an integration device. Up to four cameras in the same location may be tied to an integration device. Notes: 1) Older events will reference the new cameras. 2) If the updated cameras are in a different location, it may affect users' access to the integration device. - [Get all devices for integration](https://developers.spot.ai/reference/getalldevicesforintegration-1.md): This endpoint returns a paginated list of all devices in an integration that the caller has access to, along with the cameras associated with each device. Devices that the caller does not have access to will not be included in the response. - [Create integration device](https://developers.spot.ai/reference/createintegrationdevice-1.md): This endpoint creates a new integration device. You can choose up to four cameras in the same location to tie to the integration device. Whenever there is an event from this integration device, you will automatically see the footage from all attached cameras. - [Get integration device by id](https://developers.spot.ai/reference/getintegrationdevicebyid-1.md): This endpoint returns details of an integration device, which include device name, tags, integration ID, linked camera IDs, and audit stamps. - [Update integration device properties](https://developers.spot.ai/reference/updateintegrationdeviceproperties-1.md): This endpoint can be used to update an existing integration device's name and tags. Note: The `external_id` field cannot be updated after device creation, as it serves as an immutable identifier for automatic device resolution during event ingestion. - [Delete an integration device](https://developers.spot.ai/reference/deleteintegrationdevice-1.md): This endpoint deletes an integration device. All integration events associated with the integration device will also be deleted. Required parameters are integration ID and integration device ID. - [Update integration device camera links](https://developers.spot.ai/reference/updateintegrationdevicecameras-1.md): This endpoint can be used to update the cameras associated with an integration device. Up to four cameras in the same location may be tied to an integration device. Notes: 1) Older events will reference the new cameras. 2) If the updated cameras are in a different location, it may affect users' access to the integration device. - [Get all integration events](https://developers.spot.ai/reference/getintegrationevents.md): This endpoint retrieves a list of all integration events for an integration that the caller has access to, and allows filter criteria to support searching for specific events. Events that the caller does not have access to will not be included in the response. - [Ingest Integration Event](https://developers.spot.ai/reference/integrationeventingestionwebhook.md): This endpoint creates a new integration event. Required parameters include timestamp, device ID, and the user-defined schema/metadata. This endpoint should be used for events forwarded through a webhook. For bulk upload of events, use the Import Integration Events endpoint. - [Import Integration Events](https://developers.spot.ai/reference/createintegrationevents.md): This endpoint allows for importing a list of events. Required parameters include timestamp, device ID, and the user-defined schema/metadata. For single events forwarded through a webhook, use the Ingest Integration Event endpoint. - [Update Integration Event](https://developers.spot.ai/reference/updateintegrationevent.md): This endpoint allows for updating the attributes, duration, and buffer of an event. When updating attributes, only updated values should be included. These will overwrite existing values. - [Delete Integration Event](https://developers.spot.ai/reference/deleteintegrationevent.md): This endpoint deletes an existing integration event. - [Get all integration events](https://developers.spot.ai/reference/getintegrationevents-1.md): This endpoint retrieves a list of all integration events for an integration that the caller has access to, and allows filter criteria to support searching for specific events. Events that the caller does not have access to will not be included in the response. - [Ingest Integration Event](https://developers.spot.ai/reference/integrationeventingestionwebhook-1.md): This endpoint creates a new integration event. Required parameters include timestamp and the user-defined schema/metadata (attributes). **Device Resolution:** Device identification follows this precedence order: 1. `integration_device_id` — if provided, used directly (highest precedence) 2. `device_external_id` — if provided, looks up or auto-creates a device with that external ID 3. **Device ID Template** — if configured on the event type, evaluates the template against event attributes to derive an external ID, then looks up or auto-creates the device 4. **Error** — if none of the above resolve a device, the request fails with 400 Bad Request There is no fallback between these options. If you provide an invalid `integration_device_id`, the request fails without trying `device_external_id` or templates. For details on configuring Device ID Templates, see the [Automatic Device Creation](/reference/device-auto-creation) guide. This endpoint should be used for events forwarded through a webhook. For bulk upload of events, use the Import Integration Events endpoint. - [Import Integration Events](https://developers.spot.ai/reference/createintegrationevents-1.md): This endpoint allows for importing a list of events. Required parameters include timestamp, device ID, and the user-defined schema/metadata. For single events forwarded through a webhook, use the Ingest Integration Event endpoint. - [Update Integration Event](https://developers.spot.ai/reference/updateintegrationevent-1.md): This endpoint allows for updating the attributes, duration, and buffer of an event. When updating attributes, only updated values should be included. These will overwrite existing values. - [Delete Integration Event](https://developers.spot.ai/reference/deleteintegrationevent-1.md): This endpoint deletes an existing integration event. - [Get all event types for integration](https://developers.spot.ai/reference/getalleventtypesforintegration.md): This endpoint returns a paginated list of all integration event types associated with an integration that the caller has access to. Event types that the caller does not have access to will not be included in the response. - [Create integration event type](https://developers.spot.ai/reference/createintegrationeventtype.md): This endpoint creates a new integration event type. Users will be able to define their own event schema by specifying key-value pairs in json schema format conforming to Spot's meta-schema. - [Get integration event type by id](https://developers.spot.ai/reference/getintegrationeventtypebyid.md): This endpoint returns details of an integration event type. Details include integration event type name and integration event type schema. - [Update integration event type name](https://developers.spot.ai/reference/updateintegrationeventtype.md): This endpoint can be used to update properties of an integration event type. - [Delete integration event type](https://developers.spot.ai/reference/deleteintegrationeventtype.md): Deletes an integration event type. All events of that integration event type will also be deleted. - [Get all event types for integration](https://developers.spot.ai/reference/getalleventtypesforintegration-1.md): This endpoint returns a paginated list of all integration event types associated with an integration that the caller has access to. Event types that the caller does not have access to will not be included in the response. - [Create integration event type](https://developers.spot.ai/reference/createintegrationeventtype-1.md): This endpoint creates a new integration event type. Users will be able to define their own event schema by specifying key-value pairs in json schema format conforming to Spot's meta-schema. - [Get integration event type by id](https://developers.spot.ai/reference/getintegrationeventtypebyid-1.md): This endpoint returns details of an integration event type. Details include integration event type name and integration event type schema. - [Update integration event type name](https://developers.spot.ai/reference/updateintegrationeventtype-1.md): This endpoint can be used to update properties of an integration event type. - [Delete integration event type](https://developers.spot.ai/reference/deleteintegrationeventtype-1.md): Deletes an integration event type. All events of that integration event type will also be deleted. - [Webhooks](https://developers.spot.ai/reference/webhooks.md): Get notified instantly when events occur instead of polling for updates.