Flock Safety Plate Reads API
The Plate Reads API from Flock Safety — 2 operation(s) for plate reads.
The Plate Reads API from Flock Safety — 2 operation(s) for plate reads.
openapi: 3.0.3
info:
title: Flock Safety API Platform (v3) Alerts Plate Reads 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: Plate Reads
paths:
/reads/lookup/page/{pageId}:
get:
summary: View license plate reads lookup results
description: 'View the results of a license plate read lookup
## Required API scope
[plate-reads:lookup](https://docs.flocksafety.com/developer-hub/docs/client-credentials)
'
tags:
- Plate Reads
parameters:
- in: path
name: pageId
schema:
type: string
required: true
description: The ID of the page to view.
responses:
'200':
description: List of license plate reads
content:
application/json:
schema:
$ref: '#/components/schemas/LookupResult'
'401':
$ref: '#/components/responses/AuthorizationError'
'403':
$ref: '#/components/responses/UnauthorizedError'
'422':
description: The page ID is missing.
$ref: '#/components/responses/ValidationError'
'429':
description: The maximum number of requests you can perform per second has been exceeded.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
Rate Limit Error:
$ref: '#/components/examples/RateLimitError'
/reads/lookup:
post:
summary: Lookup license plate reads
description: 'Look up license plate reads by full license plate characters.
## Required API scope
[plate-reads:lookup](https://docs.flocksafety.com/developer-hub/docs/client-credentials)
'
tags:
- Plate Reads
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/LookupRequest'
responses:
'200':
description: List of license plate reads
content:
application/json:
schema:
$ref: '#/components/schemas/LookupResult'
'400':
$ref: '#/components/responses/BadRequestError'
'401':
$ref: '#/components/responses/AuthorizationError'
'403':
$ref: '#/components/responses/UnauthorizedError'
'422':
description: The given lookup criteria contain one or more errors.
$ref: '#/components/responses/ValidationError'
'429':
description: The maximum number of requests you can perform per second has been exceeded.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
Rate Limit Error:
$ref: '#/components/examples/RateLimitError'
components:
schemas:
LookupRequest:
type: object
description: A request to lookup license plate reads.
required:
- plate
- reason
- startDate
- endDate
properties:
plate:
type: string
description: The license plate to lookup.
example: FNA579
startDate:
type: string
description: The beginning date range for the lookup. The specified date must be in ISO8601 format.
example: '2022-08-06T12:26:00.000Z'
format: date-time
endDate:
type: string
description: The end of the date range for the lookup. The specified date must be in ISO8601 format.
example: '2022-08-09T23:59:59.000Z'
format: date-time
limit:
type: number
minimum: 1
maximum: 50
description: The limit for the maximum number of reads that can be returned on a single page.
minConfidences:
type: array
items:
$ref: '#/components/schemas/ConfidenceFilter'
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
description: Filters results to where only plate from the specified state are returned.
reason:
type: string
description: 'The reason this plate reads lookup is being done. This is in place in order to ensure the system can be audited for misuse for customers.
'
example: 'Tracking vehicle involved with case #103024'
caseNumber:
type: string
description: The relevant case number for this lookup, if applicable.
example: '103024'
sort:
type: array
items:
$ref: '#/components/schemas/SortCriteria'
radius:
$ref: '#/components/schemas/RadiusFilter'
description: Optional raidus filter to apply to the lookup.
area:
$ref: '#/components/schemas/AreaFilter'
description: Optional area filter to apply to the lookup.
not:
required:
- radius
- area
example:
plate: FNA579
reason: 'Tracking vehicle involved with case #103024'
startDate: '2022-08-06T12:26:00Z'
endDate: '2022-08-09T23:59:59Z'
limit: 10
state: arkansas
caseNumber: '103024'
sort:
- field: capturedAt
order: desc
radius:
radius:
latitude: 40.783871
longitude: -73.97541
radius: 5
Network:
type: object
description: The network that the device belongs to.
required:
- id
- name
properties:
id:
type: string
description: The ID for the network
example: 72d97364-3f45-4e16-ae52-631aea3141cc
name:
type: string
description: The name of the network
example: Little Rock AR PD
LicensePlateRead:
type: object
description: A license plate read
required:
- id
- capturedAt
- device
- plate
properties:
id:
type: string
description: The ID that identifies this specific license plate read.
example: 4171ae2b-843f-405b-922d-b1e89921f24f
capturedAt:
type: string
description: The timestamp (in RFC3339 UTC format) indicating when the license plate was captured.
example: '2023-12-31T23:59:59.999999Z'
device:
description: The device that captured the license plate.
$ref: '#/components/schemas/Device'
state:
$ref: '#/components/schemas/StateInfo'
plate:
$ref: '#/components/schemas/PlateInfo'
link:
type: string
description: A link to view the license plate read within our UI.
example: https://share.flocksafety.com/lookup/33fc2d53-5b1e-4f9a-95b8-a3fe47823d26
ErrorResponse:
properties:
error:
type: string
Location:
properties:
name:
type: string
description: commmon name to identify location by
latitude:
type: number
longitude:
type: number
streetAddress:
type: string
city:
type: string
state:
type: string
country:
type: string
additionalMetadata:
$ref: '#/components/schemas/AdditionalMetadata'
description: either latitude and longitude is required, or one of streetAddress/city/state
SortCriteria:
type: object
properties:
field:
type: string
enum:
- capturedAt
description: The field to sort results by.
order:
type: string
enum:
- asc
- desc
description: "The order to sort by:\n * `asc` - Ascending, from the oldest to the newest.\n * `desc` - Descending, from the newest to the oldest.\n"
required:
- field
- order
Device:
type: object
required:
- id
- type
- name
- location
- network
- metadata
- createdAt
- modifiedAt
properties:
id:
type: string
description: The ID of the device.
type:
$ref: '#/components/schemas/DeviceType'
name:
type: string
description: The name of the device.
location:
$ref: '#/components/schemas/Location'
network:
$ref: '#/components/schemas/Network'
metadata:
type: object
description: Metadata about the device.
createdAt:
type: object
description: The timestamp (in RFC3339 UTC format) indicating when the image was captured.
example: '2023-12-31T23:59:59.999999Z'
modifiedAt:
type: object
description: The timestamp (in RFC3339 UTC format) indicating when the image was captured.
example: '2023-12-31T23:59:59.999999Z'
link:
type: string
description: A link to view the device in the Flock UI.
example: https://hotlist.flocksafety.com/dispatch/type/audio?id=00000000-0000-0000-000000000000
RadiusFilter:
type: object
description: Filters the results to where only reads captured within this radius will be returned.
properties:
radius:
type: object
properties:
latitude:
type: number
description: The latitude for the center-point of the radius.
example: 40.783871
longitude:
type: number
description: The longitude for the center-point of the radius.
example: -73.97541
radius:
type: number
minimum: 1
maximum: 2000
example: 5
description: The radius, in miles, of the circle around the centerpoint.
AdditionalMetadata:
type: object
properties:
type:
enum:
- string
- number
- boolean
description: What type the value of the metadata value is
value:
type: object
description: value of the metadata. Must be a string, number, or boolean
description: flat json object, defaults to {} and returned as {} if not provided
LookupResult:
type: object
description: Results
required:
- results
- totalItems
properties:
results:
type: array
description: List of license plate reads
items:
$ref: '#/components/schemas/LicensePlateRead'
nextPageId:
type: string
description: The ID of the next page. This ID is used in the [Get Results](#/paths/~1reads~1lookup/get) endpoint.
previousPageId:
type: string
description: The ID of the previous page. This ID is used in the [Get Results](#/paths/~1reads~1lookup/get) endpoint.
totalItems:
type: number
description: The total number of reads that are available to view.
example: 2
DeviceType:
type: string
description: The device's type.
enum:
- camera
- video
- audio
- external
StateInfo:
type: object
required:
- state
- confidence
properties:
state:
type: string
description: The state that the license plate is from.
example: arkansas
confidence:
type: number
description: A number expressing certainty in that the state was correctly identified. The range is between 0.0 and 1.0
example: 0.75
ConfidenceFilter:
type: object
required:
- attribute
- minConfidence
properties:
attribute:
type: string
enum:
- plate
- state
description: Specifies the attribute to which the confidence filter should be applied.
minConfidence:
type: number
minimum: 0
maximum: 1
example: 0.5
description: 'The minimum confidence threshold, expressed as a decimal between 0.0 and 1.0. This filter applies only to the specified attribute. Results where the confidence score for the specified attribute is below this value will be excluded.
'
AreaFilter:
type: object
description: 'Filters the results to where only reads captured within an area will be returned. The area must be defined as a [GeoJSON Polygon with a single ring](https://mapsam.com/geojson-ring-visual/).
'
properties:
area:
type: object
required:
- type
- coordinates
properties:
type:
type: string
enum:
- Polygon
coordinates:
type: array
minItems: 1
maxItems: 1
items:
type: array
minItems: 4
items:
type: array
minItems: 2
maxItems: 2
items:
type: number
example:
type: Polygon
coordinates:
- - - 102
- 2
- - 103
- 2
- - 103
- 3
- - 102
- 3
- - 102
- 2
PlateInfo:
type: object
required:
- plate
- confidence
properties:
plate:
type: string
description: The license plate.
example: XNA357
confidence:
type: number
description: A number expressing certainty in that the license plate was correctly identified. The range is between 0.0 and 1.0
example: 0.9
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: {}