Base Operations Threats API
The Threats API from Base Operations — 6 operation(s) for threats.
The Threats API from Base Operations — 6 operation(s) for threats.
openapi: 3.0.0
info:
title: Customer API - Base Operations Analytics Threats API
description: 'Welcome to the Base Operations Customer API! This API allows you to interact with our data and perform detailed analysis. In this documentation, we''ll explain how to use the API, including the available endpoints and the expected request bodies or query parameters.
### Authentication
To use this API, you''ll need to authenticate using an API key. Please reach out to Base Operations to have an API key provisioned for your user. Once you have your API key, you can use it to authorize the Swagger docs.
To authenticate on the Swagger docs, follow these steps:
1. Click on the "Authorize" button on the top right corner of the Swagger docs.
2. In the "Value" field, enter your API key.
3. Click "Authorize" to authenticate.
### Helpful Hints
When using the API, you may see the following query parameters:
- `savedLocationId`: This is an internal identifier for a saved location. You can acquire this identifier by using the `GET /v1/public/saved-locations` endpoint.
- `categoryId`: This is an internal identifier for a threat category. You can acquire this identifier by using the `GET /v1/public/threat-categories` endpoint.<br><br>
That''s it! You''re now authenticated and can start using the API. If you have any questions or issues, please contact Base Operations support.
'
version: '1.0'
contact: {}
servers:
- url: https://api.baseoperationsenterprise.com/
tags:
- name: Threats
paths:
/v1/public/threats:
get:
description: This endpoint gets all threats by location and optionally neighborhood. If `type` is provided (crime, unrest), only threats of that type will be returned. Additionally query parameters will further filter the results
operationId: PublicThreatsController_getThreats_v1
parameters:
- name: locationId
required: true
in: query
schema:
type: number
- name: types
required: false
in: query
schema:
type: array
items:
type: string
enum:
- crime
- unrest
- customer
- uas_sighting
- name: fromDate
required: false
in: query
schema:
type: string
- name: toDate
required: false
in: query
schema:
type: string
- name: sources
required: false
in: query
schema:
type: array
items:
type: number
- name: categories
required: false
in: query
schema:
type: array
items:
type: number
- name: months
required: false
in: query
schema:
type: array
items:
type: number
- name: sortBy
required: false
in: query
schema:
example:
- date.asc
- categoryId.desc
type: array
items:
type: string
- name: isGTM
required: false
in: query
schema:
default: true
type: boolean
- name: hasAuxInfoOnly
required: false
in: query
schema:
type: boolean
- name: organizationId
required: false
in: query
schema:
nullable: true
default: null
type: string
- name: daytimes
required: false
in: query
schema:
type: array
items:
type: string
enum:
- morning
- midmorning
- afternoon
- evening
- night
- name: page
required: false
in: query
schema:
minimum: 1
default: 1
type: number
- name: take
required: false
in: query
schema:
minimum: 1
maximum: 50
default: 10
type: number
responses:
'200':
description: Successfully received model list
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/PageDto'
- properties:
data:
type: array
items:
$ref: '#/components/schemas/ThreatEntity'
security:
- ApiKey: []
summary: Get Threats
tags:
- Threats
/v1/public/threats/summary:
get:
description: This endpoint gets the number of threats per category by location and optionally neighborhood. If `type` is provided (crime, unrest), only threats of that type will be returned. Additionally query parameters will further filter the results
operationId: PublicThreatsController_getThreatSummary_v1
parameters:
- name: locationId
required: true
in: query
schema:
type: number
- name: types
required: false
in: query
schema:
type: array
items:
type: string
enum:
- crime
- unrest
- customer
- uas_sighting
- name: fromDate
required: false
in: query
schema:
type: string
- name: toDate
required: false
in: query
schema:
type: string
- name: sources
required: false
in: query
schema:
type: array
items:
type: number
- name: categories
required: false
in: query
schema:
type: array
items:
type: number
- name: months
required: false
in: query
schema:
type: array
items:
type: number
- name: sortBy
required: false
in: query
schema:
example:
- date.asc
- categoryId.desc
type: array
items:
type: string
- name: isGTM
required: false
in: query
schema:
default: true
type: boolean
- name: hasAuxInfoOnly
required: false
in: query
schema:
type: boolean
- name: organizationId
required: false
in: query
schema:
nullable: true
default: null
type: string
- name: daytimes
required: false
in: query
schema:
type: array
items:
type: string
enum:
- morning
- midmorning
- afternoon
- evening
- night
responses:
'200':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/ChartDto'
- properties:
chartData:
type: array
items:
$ref: '#/components/schemas/ThreatSummaryData'
text/csv:
schema:
type: string
example: 'category,count
Theft,20'
description: ''
'401':
description: Unauthorized. Your API Key may be invalid or expired.
'404':
description: Location not found | Boundary not found | Saved Location not found
'432':
description: Not enough data available
'500':
description: Internal Server Error
security:
- ApiKey: []
summary: Get Threat Summary
tags:
- Threats
/v1/public/threats/radius:
get:
description: This endpoint gets all threats within a radius of a latitude / longitude. If `type` is provided (crime, unrest), only threats of that type will be returned. Additionally query parameters will further filter the results
operationId: PublicThreatsController_getRadiusThreats_v1
parameters:
- name: fromDate
required: false
in: query
schema:
format: date-time
type: string
- name: toDate
required: false
in: query
schema:
format: date-time
type: string
- name: types
required: false
in: query
schema:
type: array
items:
type: string
enum:
- crime
- unrest
- customer
- uas_sighting
- name: sourceIds
required: false
in: query
schema:
type: array
items:
type: number
- name: categoryIds
required: false
in: query
schema:
type: array
items:
type: number
- name: months
required: false
in: query
schema:
type: array
items:
type: number
- name: daytimes
required: false
in: query
schema:
type: array
items:
type: string
enum:
- morning
- midmorning
- afternoon
- evening
- night
- name: latitude
required: true
in: query
schema:
type: number
- name: longitude
required: true
in: query
schema:
type: number
- name: radius
required: true
in: query
schema:
type: number
- name: units
required: true
in: query
description: 'NB: miles, kilometers and meters will be deprecated soon.'
schema:
type: string
enum:
- mi
- km
- m
- miles
- kilometers
- meters
- name: page
required: false
in: query
schema:
minimum: 1
default: 1
type: number
- name: take
required: false
in: query
schema:
minimum: 1
maximum: 50
default: 10
type: number
- name: isGTM
required: false
in: query
schema:
default: true
type: boolean
responses:
'200':
description: Successfully received model list
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/PageDto'
- properties:
data:
type: array
items:
$ref: '#/components/schemas/ThreatEntity'
security:
- ApiKey: []
summary: Get Threats in Radius
tags:
- Threats
/v1/public/threats/radius/summary:
get:
description: This endpoint calculates the number of threats per category within the `latitude`, `longitude`, and `radius` provided.<br><br><br> - The `fromDate` & `toDate` are optional [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) query parameters that will restrict or alter the results of this analysis.<br><br> - The query parameters `type`, `categoryIds`, `months` and `daytimes` are optional but will help you further refine your analysis.
operationId: PublicThreatsController_getRadiusThreatSummary_v1
parameters:
- name: fromDate
required: false
in: query
schema:
format: date-time
type: string
- name: toDate
required: false
in: query
schema:
format: date-time
type: string
- name: types
required: false
in: query
schema:
type: array
items:
type: string
enum:
- crime
- unrest
- customer
- uas_sighting
- name: sourceIds
required: false
in: query
schema:
type: array
items:
type: number
- name: categoryIds
required: false
in: query
schema:
type: array
items:
type: number
- name: months
required: false
in: query
schema:
type: array
items:
type: number
- name: daytimes
required: false
in: query
schema:
type: array
items:
type: string
enum:
- morning
- midmorning
- afternoon
- evening
- night
- name: latitude
required: true
in: query
schema:
type: number
- name: longitude
required: true
in: query
schema:
type: number
- name: radius
required: true
in: query
schema:
type: number
- name: units
required: true
in: query
description: 'NB: miles, kilometers and meters will be deprecated soon.'
schema:
type: string
enum:
- mi
- km
- m
- miles
- kilometers
- meters
- name: isGTM
required: false
in: query
schema:
default: true
type: boolean
responses:
'200':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/ChartDto'
- properties:
chartData:
type: array
items:
$ref: '#/components/schemas/ThreatSummaryData'
text/csv:
schema:
type: string
example: 'categoryId,count
1,20'
description: ''
'401':
description: Unauthorized. Your API Key may be invalid or expired.
'404':
description: Location not found | Boundary not found | Saved Location not found
'432':
description: Not enough data available
'500':
description: Internal Server Error
security:
- ApiKey: []
summary: Threat Summary within Radius
tags:
- Threats
/v1/public/threats/{savedLocationId}/summary:
get:
description: This endpoint calculates the number of threats per category within the granularity provided.<br><br><br> - The `fromDate` & `toDate` are required [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) query parameters that will restrict or alter the results of this analysis.<br><br> - The query parameters `type`, `categoryIds`, `months` and `daytimes` are optional but will help you further refine your analysis.
operationId: PublicThreatsController_getSavedLocationThreatSummary_v1
parameters:
- name: savedLocationId
required: true
in: path
schema:
type: number
- name: granularity
required: true
in: query
schema:
default: city
type: string
enum:
- city
- name: fromDate
required: false
in: query
schema:
format: date-time
type: string
- name: toDate
required: false
in: query
schema:
format: date-time
type: string
- name: types
required: false
in: query
schema:
type: array
items:
type: string
enum:
- crime
- unrest
- customer
- uas_sighting
- name: sourceIds
required: false
in: query
schema:
type: array
items:
type: number
- name: categoryIds
required: false
in: query
schema:
type: array
items:
type: number
- name: months
required: false
in: query
schema:
type: array
items:
type: number
- name: daytimes
required: false
in: query
schema:
type: array
items:
type: string
enum:
- morning
- midmorning
- afternoon
- evening
- night
responses:
'200':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/ChartDto'
- properties:
chartData:
type: array
items:
$ref: '#/components/schemas/ThreatSummaryData'
text/csv:
schema:
type: string
example: 'categoryId,count
1,20'
description: ''
'401':
description: Unauthorized. Your API Key may be invalid or expired.
'404':
description: 'Saved location not found
Location not found | Boundary not found | Saved Location not found'
'422':
description: Location based information is not available for this saved location | District level data is not available for this location
'432':
description: Not enough data available
'500':
description: Internal Server Error
security:
- ApiKey: []
summary: Saved Location Threat Summary at City or District Level
tags:
- Threats
/v1/public/threats/{savedLocationId}/radius/summary:
get:
description: This endpoint calculates the number of threats per category within a radius.<br><br><br> - The `fromDate` & `toDate` are required [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) query parameters that will restrict or alter the results of this analysis.<br><br> - The query parameters `type`, `categoryIds`, `months` and `daytimes` are optional but will help you further refine your analysis.
operationId: PublicThreatsController_getSaveLocationRadiusThreatSummary_v1
parameters:
- name: savedLocationId
required: true
in: path
schema:
type: number
- name: fromDate
required: false
in: query
schema:
format: date-time
type: string
- name: toDate
required: false
in: query
schema:
format: date-time
type: string
- name: types
required: false
in: query
schema:
type: array
items:
type: string
enum:
- crime
- unrest
- customer
- uas_sighting
- name: sourceIds
required: false
in: query
schema:
type: array
items:
type: number
- name: categoryIds
required: false
in: query
schema:
type: array
items:
type: number
- name: months
required: false
in: query
schema:
type: array
items:
type: number
- name: daytimes
required: false
in: query
schema:
type: array
items:
type: string
enum:
- morning
- midmorning
- afternoon
- evening
- night
- name: radius
required: true
in: query
schema:
type: number
- name: units
required: true
in: query
description: 'NB: miles, kilometers and meters will be deprecated soon.'
schema:
default: mi
type: string
enum:
- mi
- km
- m
- miles
- kilometers
- meters
responses:
'200':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/ChartDto'
- properties:
chartData:
type: array
items:
$ref: '#/components/schemas/ThreatSummaryData'
text/csv:
schema:
type: string
example: 'categoryId,count
1,20'
description: ''
'401':
description: Unauthorized. Your API Key may be invalid or expired.
'404':
description: Location not found | Boundary not found | Saved Location not found
'432':
description: Not enough data available
'500':
description: Internal Server Error
security:
- ApiKey: []
summary: Saved Location Threat Summary within Radius
tags:
- Threats
components:
schemas:
PageMetaDto:
type: object
properties:
page:
type: number
take:
type: number
itemCount:
type: number
pageCount:
type: number
hasPreviousPage:
type: boolean
hasNextPage:
type: boolean
required:
- page
- take
- itemCount
- pageCount
- hasPreviousPage
- hasNextPage
PageDto:
type: object
properties:
data:
type: array
items:
type: array
meta:
$ref: '#/components/schemas/PageMetaDto'
required:
- data
- meta
ThreatEntity:
type: object
properties:
id:
type: string
hoodId:
type: number
categoryId:
type: number
sourceCategoryId:
type: number
date:
format: date-time
type: string
count:
type: number
locationId:
type: number
h3IdLvl8:
type: string
h3IdLvl7:
type: string
isGTMV2:
type: boolean
organizationId:
type: string
nullable: true
savedLocationId:
type: number
nullable: true
threatType:
type: string
point:
type: string
sourceHostname:
type: string
granularity:
enum:
- country
- city
- street
type: string
score:
type: number
auxInfo:
$ref: '#/components/schemas/ThreatsAuxInfoMerged'
required:
- id
- categoryId
- sourceCategoryId
- date
- count
ThreatSummaryData:
type: object
properties:
categoryId:
type: number
category:
type: string
count:
type: number
required:
- categoryId
- count
ChartDto:
type: object
properties:
chartData:
type: object
metadata:
type: object
required:
- chartData
ThreatsAuxInfoMerged:
type: object
properties: {}
securitySchemes:
ApiKey:
type: apiKey
in: header
name: X-API-KEY