Flock Safety Custom Hotlists API
The Custom Hotlists API from Flock Safety — 5 operation(s) for custom hotlists.
The Custom Hotlists API from Flock Safety — 5 operation(s) for custom hotlists.
openapi: 3.0.3
info:
title: Flock Safety API Platform (v3) Alerts Custom Hotlists API
description: Flock Safety v3 API Platform harvested from the public developer hub (docs.flocksafety.com). Combines the Device, Custom Hotlist, LPR Search, Plate Lookup, Hotlist Alerts Subscription, Geolocation, CAD, Inbound Alerts, and Vehicle Detections Ingest APIs. OAuth2 client_credentials (machine) and authorization_code (user) flows against api.flocksafety.com.
version: 3.0.0
contact:
name: Flock Safety Developer Hub
url: https://docs.flocksafety.com/
servers:
- url: https://api.flocksafety.com/api/v3
description: Production
- url: https://dev-api.flocksafety.com/api/v3
description: Development sandbox (at Flock discretion)
tags:
- name: Custom Hotlists
paths:
/hotlists/{hotlistId}:
delete:
description: Delete hotlist
summary: Delete a custom hotlist
tags:
- Custom Hotlists
security:
- oauth2Auth:
- custom-hotlists:write
parameters:
- $ref: '#/components/parameters/HotlistIdParam'
responses:
'204':
description: The hotlist was deleted successfully
'401':
description: Unauthorized, authentication token was invalid or not provided
'403':
description: Forbidden, your client does not have access to this resource
'404':
description: No hotlist was found with the given ID
get:
description: Retrieve a hotlist with the given ID
summary: Retrieve a custom hotlist
tags:
- Custom Hotlists
security:
- oauth2Auth:
- custom-hotlists:read
parameters:
- $ref: '#/components/parameters/HotlistIdParam'
responses:
'200':
description: The hotlist was successfully retrieved.
content:
application/json:
schema:
$ref: '#/components/schemas/Hotlist'
'401':
description: Unauthorized, authentication token was invalid or not provided
'403':
description: Forbidden, your client does not have access to this resource
'404':
description: No hotlist was found with the given ID
put:
description: Update a hotlist
summary: Update a custom hotlist
tags:
- Custom Hotlists
security:
- oauth2Auth:
- custom-hotlists:write
parameters:
- $ref: '#/components/parameters/HotlistIdParam'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateHotlistRequest'
responses:
'204':
description: The hotlist was updated successfully
'401':
description: Unauthorized, authentication token was invalid or not provided
'403':
description: Forbidden, your client does not have access to this resource
'404':
description: No hotlist was found with the given ID
'413':
description: Request entity too large, the number of entries exceeds the organization's limit
/hotlists/{hotlistId}/entries:
get:
description: Retrieve a page of entries for the hotlist with the given ID
summary: Retrieve a page of entries for a hotlist
tags:
- Custom Hotlists
security:
- oauth2Auth:
- custom-hotlists:read
parameters:
- $ref: '#/components/parameters/HotlistIdParam'
- name: limit
in: query
description: The maximum number of hotlist entries to return
required: false
schema:
type: integer
minimum: 1
maximum: 3000
default: 3000
- name: cursor
in: query
description: A cursor for the next page of results
required: false
schema:
type: string
responses:
'200':
description: The hotlist entries were successfully retrieved.
content:
application/json:
schema:
$ref: '#/components/schemas/GetHotlistEntriesResponse'
'401':
description: Unauthorized, authentication token was invalid or not provided
'403':
description: Forbidden, your client does not have access to this resource
'404':
description: No hotlist was found with the given ID
/hotlists:
get:
description: Retrieve custom hotlists for the organization
summary: Retrieve custom hotlists
tags:
- Custom Hotlists
security:
- oauth2Auth:
- custom-hotlists:read
responses:
'200':
description: The hotlists for your organization were successfully retrieved.
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/OrgHotlist'
'401':
description: Unauthorized, authentication token was invalid or not provided
'403':
description: Forbidden, your client does not have access to this resource
post:
description: Create an organization-level hotlist
summary: Create a custom hotlist
tags:
- Custom Hotlists
security:
- oauth2Auth:
- custom-hotlists:write
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CreateHotlistRequest'
responses:
'201':
description: Created
content:
application/json:
schema:
$ref: '#/components/schemas/CreateHotlistResponse'
'401':
description: Unauthorized, authentication token was invalid or not provided
'403':
description: Forbidden, your client does not have access to this resource
'413':
description: Request entity too large, the number of entries exceeds the organization's limit
/hotlists/{hotlistId}/entries/addBatch:
post:
description: Add a batch of entries to the hotlist with the provided hotlistID. All entries will be normalized (O->0) and have whitespace trimmed. Duplicate entries will be ignored.
summary: Add a batch of entries to a hotlist
tags:
- Custom Hotlists
security:
- oauth2Auth:
- custom-hotlists:write
parameters:
- $ref: '#/components/parameters/HotlistIdParam'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CreateHotlistEntriesRequest'
responses:
'200':
description: The batch of hotlist entries was successfully normalized and created.
content:
application/json:
schema:
$ref: '#/components/schemas/CreateEntriesResponse'
'400':
description: Bad request, either the batch contained a duplicate plate or the request body was malformed.
'401':
description: Unauthorized, authentication token was invalid or not provided
'403':
description: Forbidden, your client does not have access to this resource
'404':
description: No hotlist was found with the given ID
/hotlists/{hotlistId}/entries/deleteBatch:
post:
description: Delete a batch of entries from the hotlist with the provided hotlistID. Ignores any ids for which an entry does not exist
summary: Delete a batch of entries from a hotlist
tags:
- Custom Hotlists
security:
- oauth2Auth:
- custom-hotlists:write
parameters:
- $ref: '#/components/parameters/HotlistIdParam'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/DeleteHotlistEntriesRequest'
responses:
'200':
description: The batch of hotlist entries was successfully deleted.
'401':
description: Unauthorized, authentication token was invalid or not provided
'403':
description: Forbidden, your client does not have access to this resource
'404':
description: No hotlist was found with the given ID
components:
schemas:
State:
type: string
enum:
- alabama
- alaska
- arizona
- arkansas
- california
- colorado
- connecticut
- delaware
- washington_dc
- florida
- georgia
- hawaii
- idaho
- illinois
- indiana
- iowa
- kansas
- kentucky
- louisiana
- maine
- maryland
- massachusetts
- michigan
- minnesota
- mississippi
- missouri
- montana
- nebraska
- nevada
- new_hampshire
- new_jersey
- new_mexico
- new_york
- north_carolina
- north_dakota
- ohio
- oklahoma
- oregon
- pennsylvania
- rhode_island
- south_carolina
- south_dakota
- tennessee
- texas
- utah
- vermont
- virginia
- washington
- west_virginia
- wisconsin
- wyoming
- puerto_rico
HotlistEntryNote:
type: object
description: Optional note with message field for the hotlist entry
required:
- message
properties:
message:
type: string
description: Note message text (supports URLs for clickable links in UI)
example: Vehicle observed at 5th and Main. Contact Det. Smith at 555-0123.
CreateHotlistEntriesRequest:
properties:
entries:
items:
$ref: '#/components/schemas/CreateHotlistEntryRequest'
type: array
required:
- entries
type: object
CreateHotlistResponse:
properties:
id:
format: uuid
type: string
required:
- id
type: object
CreateHotlistEntryRequest:
properties:
caseNumber:
type: string
expiry:
description: ISO datetime string. After this date, alerts will not be triggered for this entry.
type: string
format: date-time
plate:
type: string
reason:
type: string
state:
$ref: '#/components/schemas/State'
note:
$ref: '#/components/schemas/HotlistEntryNote'
required:
- caseNumber
- plate
- reason
type: object
DeleteHotlistEntriesRequest:
properties:
ids:
items:
type: string
type: array
required:
- ids
type: object
GetHotlistEntriesResponse:
properties:
entries:
items:
$ref: '#/components/schemas/HotlistEntry'
type: array
totalResults:
type: integer
nextPage:
type: string
nullable: true
required:
- entries
- id
- name
- organizationId
type: object
CreateEntriesResponse:
properties:
entries:
items:
$ref: '#/components/schemas/HotlistEntry'
type: array
required:
- entries
type: object
Hotlist:
properties:
entries:
items:
$ref: '#/components/schemas/HotlistEntry'
type: array
id:
type: string
name:
type: string
required:
- entries
- id
- name
- organizationId
type: object
UpdateHotlistRequest:
properties:
entries:
items:
$ref: '#/components/schemas/CreateHotlistEntryRequest'
type: array
maxItems: 3000
name:
type: string
required:
- entries
- name
type: object
CreateHotlistRequest:
properties:
entries:
items:
$ref: '#/components/schemas/CreateHotlistEntryRequest'
type: array
maxItems: 3000
name:
type: string
required:
- entries
- name
type: object
OrgHotlist:
properties:
id:
type: string
name:
type: string
HotlistEntry:
properties:
id:
type: string
caseNumber:
type: string
expiry:
description: ISO datetime string
type: string
format: date-time
plate:
type: string
reason:
type: string
state:
$ref: '#/components/schemas/State'
note:
$ref: '#/components/schemas/HotlistEntryNote'
required:
- caseNumber
- plate
- reason
type: object
securitySchemes:
bearerAuth:
type: http
scheme: bearer
bearerFormat: JWT
oauth2Auth:
type: oauth2
flows:
clientCredentials:
tokenUrl: https://api.flocksafety.com/oauth/token
scopes:
custom-holists:read: Read access to custom hotlists
custom-holists:write: Write access to custom hotlists
FlockOAuth:
type: oauth2
description: OAuth 2 with the client credentials flow
flows:
clientCredentials:
scopes:
plate-reads:lookup: Access to perform lookups on license plate reads.
tokenUrl: https://api.flocksafety.com/oauth/token
oauth2:
type: oauth2
flows:
clientCredentials:
tokenUrl: https://api.flocksafety.com/oauth/token
scopes: {}