Eagle Eye Networks Downloads API
Operations about downloads.
Operations about downloads.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/eagle-eye-networks:eagle-eye-networks-downloads-api"
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: MEDIA Downloads API
version: 3.0.0
description: Operations about downloads.
servers:
- url: https://{BaseUrl}/api/v3.0
description: Eagle Eye Networks API Server
variables:
BaseUrl:
default: api.cxxx.eagleeyenetworks.com
description: HTTPS Base url to use for all API calls, retrieved from https://api.eagleeyenetworks.com/api/v3.0/clientSettings
security:
- bearerAuth: []
tags:
- name: Downloads
description: Operations about downloads.
externalDocs:
description: More information about downloads.
url: https://developerv3.eagleeyenetworks.com/docs
paths:
/downloads:
description: List or create downloads.
get:
tags:
- Downloads
description: Returns a list of downloaded items.
operationId: getDownloads
parameters:
- $ref: '#/components/parameters/sort2'
- $ref: '#/components/parameters/mimeType1'
- $ref: '#/components/parameters/mimeType__contains1'
- $ref: '#/components/parameters/createTimestamp__lte2'
- $ref: '#/components/parameters/createTimestamp__gte2'
- $ref: '#/components/parameters/expireTimestamp__lte1'
- $ref: '#/components/parameters/expireTimestamp__gte1'
- $ref: '#/components/parameters/directory'
- $ref: '#/components/parameters/directory__contains'
- $ref: '#/components/parameters/name1'
- $ref: '#/components/parameters/name__contains'
- $ref: '#/components/parameters/notes__contains'
- $ref: '#/components/parameters/size__lte'
- $ref: '#/components/parameters/size__gte'
- $ref: '#/components/parameters/tags'
- $ref: '#/components/parameters/tags__any'
- $ref: '#/components/parameters/tags__contains'
- $ref: '#/components/parameters/include4'
- $ref: '#/components/parameters/pageToken'
- $ref: '#/components/parameters/pageSize'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/ApiPaginatedDownloadResponse'
'400':
$ref: '#/components/responses/validationError'
'401':
$ref: '#/components/responses/unauthorized'
'403':
$ref: '#/components/responses/forbidden'
'404':
$ref: '#/components/responses/resourceNotFound'
'500':
$ref: '#/components/responses/internalServerError'
summary: Get downloads
x-summary-source: derived
/downloads/{id}:
description: Read or update a download by ID.
parameters:
- $ref: '#/components/parameters/id1'
get:
tags:
- Downloads
description: Gets details of a download based on its ID.
operationId: getDownload
parameters:
- $ref: '#/components/parameters/include4'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/ApiDownloadDetailsWithIncludes'
'400':
$ref: '#/components/responses/validationError'
'401':
$ref: '#/components/responses/unauthorized'
'403':
$ref: '#/components/responses/forbidden'
'404':
$ref: '#/components/responses/resourceNotFound'
'500':
$ref: '#/components/responses/internalServerError'
summary: Get download
x-summary-source: derived
patch:
tags:
- Downloads
description: Modifies the details of a download.
operationId: updateDownload
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ApiDownloadDetailsWithIncludes'
responses:
'204':
description: Download metadata updated.
'400':
$ref: '#/components/responses/validationError'
'401':
$ref: '#/components/responses/unauthorized'
'403':
$ref: '#/components/responses/forbidden'
'404':
$ref: '#/components/responses/resourceNotFound'
'409':
$ref: '#/components/responses/conflict'
'500':
$ref: '#/components/responses/internalServerError'
summary: Update download
x-summary-source: derived
/downloads/{id}:download:
description: Download a download by ID.
parameters:
- $ref: '#/components/parameters/id1'
get:
tags:
- Downloads
description: Save a download by ID.
operationId: downloadDownload
responses:
'200':
description: OK
content:
application/octet-stream:
schema:
type: string
format: binary
headers:
Content-Disposition:
schema:
type: string
example: attachment; filename="Video North Door 2022-08-03 23-04-50.mp4"
'400':
$ref: '#/components/responses/validationError'
'401':
$ref: '#/components/responses/unauthorized'
'403':
$ref: '#/components/responses/forbidden'
'404':
$ref: '#/components/responses/resourceNotFound'
'500':
$ref: '#/components/responses/internalServerError'
summary: Download download
x-summary-source: derived
components:
schemas:
ErrorInfoExceptionDetail:
properties:
type:
description: A string enum describing the type of detail object.
type: string
enum:
- errorInfo
reason:
description: 'The reason for the error. This is a constant value that identifies the proximate cause of the
error. Error reasons are unique within a particular domain of errors.
'
type: string
enum:
- unauthenticated
- unexpectedArgument
- missingRequiredArgument
- wrongArgumentValue
- invalidPermission
- wrongEdition
- wrongAccountType
- resourceNotFound
- endpointNotFound
- methodNotSupported
- unexpectedError
- acceptNotSupported
- alreadyExists
- foreignKeyConflict
- childDevicesExist
- contentNotSupported
- deadlineExpired
- tooManyRequests
- deviceUnavailable
- serviceUnavailable
- invalidJSON
- resourceLocked
- notSupportedOnBridge
- outOfRetention
- deviceIdentificationFailed
- credentialValidationFailed
- credentialSetupFailed
- localUrlValidationFailed
- hwRegistrationFailed
- failedAddingCameraAfterValidation
- neverConnected
- reconnectFailed
- unsupportedModel
- purged
- userBlocked
- userTemporarilyBlocked
- quotaExceeded
- alreadyValidated
- reAuthenticationRequired
- badGateway
domain:
description: 'Logical grouping to which the "reason" belongs
'
type: string
metadata:
$ref: '#/components/schemas/ExceptionMetadata'
notes:
type: string
description: User entered annotations.
example: Kids throwing rocks.
readOnly: false
directory:
type: string
description: Name of the parent directory.
example: /Bundles/North Door
readOnly: false
ExceptionDetail:
type: object
oneOf:
- $ref: '#/components/schemas/ErrorInfoExceptionDetail'
- $ref: '#/components/schemas/BadRequestExceptionDetail'
- $ref: '#/components/schemas/ResourceInfoExceptionDetail'
discriminator:
propertyName: type
mapping:
errorInfo: '#/components/schemas/ErrorInfoExceptionDetail'
badRequest: '#/components/schemas/BadRequestExceptionDetail'
resourceInfo: '#/components/schemas/ResourceInfoExceptionDetail'
properties:
type:
description: A string enum describing the type of detail object.
type: string
enum:
- errorInfo
- badRequest
- resourceInfo
required:
- type
timestamp2:
type: string
description: Date and time when the item was created.
format: date-time
example: '2021-04-22T00:00:00.000Z'
readOnly: true
fileDetails:
oneOf:
- $ref: '#/components/schemas/exportFileDetails'
discriminator:
propertyName: type
mapping:
exportFileDetails: '#/components/schemas/exportFileDetails'
id1:
type: string
description: The ID of the download.
format: uuid
example: 123e4567-e89b-12d3-a456-426655440000
readOnly: true
md5:
type: string
description: MD5 hash of the file.
example: d41d8cd98f00b204e9800998ecf8427e
readOnly: true
ApiDownloadDetailsWithIncludes:
type: object
allOf:
- $ref: '#/components/schemas/ApiDownloadsMain'
properties:
accountId:
type: string
description: Account ID specified in as an ESN Type.
pattern: ^[a-fA-F0-9]{8}$
example: '00001106'
createTimestamp:
description: Date and time when the item was created.
readOnly: true
allOf:
- $ref: '#/components/schemas/timestamp2'
updateTimestamp:
description: Date and time when the item was last updated.
readOnly: true
allOf:
- $ref: '#/components/schemas/timestamp2'
size:
allOf:
- $ref: '#/components/schemas/size'
metadata:
type: object
description: Custom metadata associated with the download.
additionalProperties:
type: string
tags:
allOf:
- $ref: '#/components/schemas/tags'
notes:
allOf:
- $ref: '#/components/schemas/notes'
md5:
allOf:
- $ref: '#/components/schemas/md5'
details:
readOnly: true
allOf:
- $ref: '#/components/schemas/fileDetails'
status:
type: string
description: Expiration status of the download. Possible values are "available" or "expired".
example: available
readOnly: true
enum:
- available
- expired
ApiV3Error:
type: object
properties:
code:
description: HTTP code defined in EEN Standard Code Values
type: integer
status:
description: A string enum describing the code
type: string
enum:
- cancelled
- unknown
- invalidArgument
- deadlineExceeded
- notFound
- conflict
- permissionDenied
- resourceExhausted
- failedPrecondition
- aborted
- outOfRange
- unimplemented
- internal
- unavailable
- dataLoss
- unauthenticated
- mediaTypeNotSupported
- acceptNotSupported
- methodNotSupported
- tooManyRequests
- badGateway
message:
description: Developer friendly human readable error message in English
type: string
details:
description: An array of extensible objects that define error information
type: array
items:
$ref: '#/components/schemas/ExceptionDetail'
required:
- code
- status
- message
- details
BadRequestExceptionDetail:
properties:
type:
description: A string enum describing the type of detail object.
type: string
enum:
- badRequest
argumentViolations:
type: array
items:
$ref: '#/components/schemas/ArgumentViolation'
tags:
description: List of tags associated with the file.
type: array
items:
type: string
example:
- family
- vacation
ApiDownloadWithIncludes:
type: object
allOf:
- $ref: '#/components/schemas/ApiDownloadsMain'
properties:
accountId:
type: string
description: Account ID specified in as an ESN Type.
pattern: ^[a-fA-F0-9]{8}$
example: '00001106'
createTimestamp:
description: Date and time when the item was created.
readOnly: true
allOf:
- $ref: '#/components/schemas/timestamp2'
updateTimestamp:
description: Date and time when the item was last updated.
readOnly: true
allOf:
- $ref: '#/components/schemas/timestamp2'
size:
allOf:
- $ref: '#/components/schemas/size'
metadata:
type: object
description: Custom metadata associated with the download.
additionalProperties:
type: string
tags:
allOf:
- $ref: '#/components/schemas/tags'
notes:
allOf:
- $ref: '#/components/schemas/notes'
md5:
allOf:
- $ref: '#/components/schemas/md5'
details:
readOnly: true
allOf:
- $ref: '#/components/schemas/fileDetails'
size:
type: integer
description: Size of the file in Bytes.
example: 4242194
readOnly: true
ResourceInfoExceptionDetail:
properties:
type:
description: A string enum describing the type of detail object.
type: string
enum:
- resourceInfo
resource:
description: Referenced resource type, eg "cameras", "bridges", or "locations".
type: string
ids:
type: array
description: Identities of resources
items:
type: string
exportFileDetails:
description: Extra information about the parameters used to create the exported file
required:
- type
- deviceId
- startTimestamp
- endTimestamp
properties:
type:
type: string
enum:
- exportFileDetails
deviceId:
type: string
description: ID of the source device for the export.
example: 100fabcd
jobId:
type: string
format: uuid
description: ID of the export job that created the file.
example: c22d98cc-3008-4cbc-b06d-79759dd0c62f
videoType:
type: string
description: Type of video generated by the export. Normal video of the main video stream, or a time lapse of the preview stream.
enum:
- video
- timeLapse
startTimestamp:
type: string
format: date-time
description: Start timestamp of the export.
example: '2021-03-19T09:08:07.542Z'
endTimestamp:
type: string
format: date-time
description: End timestamp of the export.
example: '2021-03-19T15:08:07.542Z'
ArgumentViolation:
properties:
argumentName:
type: string
description: Name of the argument
description:
type: string
description: Description of the violation
ApiDownloadsMain:
type: object
properties:
id:
$ref: '#/components/schemas/id1'
directory:
$ref: '#/components/schemas/directory'
mimeType:
$ref: '#/components/schemas/mimeType1'
name:
$ref: '#/components/schemas/name1'
expireTimestamp:
$ref: '#/components/schemas/expireTimestamp'
status:
$ref: '#/components/schemas/status'
required:
- id
name1:
type: string
description: Name of the item.
example: Video North Door 2022-08-03 23-04-50.mp4
readOnly: false
minLength: 1
maxLength: 128
ApiPaginatedDownloadResponse:
allOf:
- $ref: '#/components/schemas/PaginatedResponse'
- type: object
properties:
results:
type: array
items:
$ref: '#/components/schemas/ApiDownloadWithIncludes'
ExceptionMetadata:
properties:
path:
description: Path of the request
type: string
method:
description: Method of the request
type: string
PaginatedResponse:
type: object
description: 'Used to wrap results for a paginated response, containing information on how to retrieve further pages and, if available, the total number of results.
'
properties:
nextPageToken:
type:
- string
- 'null'
readOnly: true
description: 'Token to retrieve the next page. The value of this token is passed into the field pageToken. This value can be null if there is no next page.
'
prevPageToken:
type:
- string
- 'null'
readOnly: true
description: 'Token to retrieve the previous page. The value of this token is passed into the field pageToken. This value can be null of there is no previous page.
'
totalSize:
type:
- integer
- 'null'
minimum: 0
readOnly: true
description: 'The number of resource entries being returned from the result set. This can be omitted if the API endpoint does not have total size information.
'
results:
type: array
readOnly: true
description: The result set from a collection API call.
items:
type: object
required:
- nextPageToken
- prevPageToken
- results
expireTimestamp:
type: string
format: date-time
example: '2021-04-22T00:00:00.000+00:00'
readOnly: true
mimeType1:
type: string
description: The media content type.
example: video/mp4
readOnly: true
parameters:
directory__contains:
in: query
required: false
name: directory__contains
description: Item directory contains filter.
example: /Bundles
schema:
$ref: '#/components/schemas/directory'
notes__contains:
in: query
required: false
name: notes__contains
description: Notes filter.
example: throwing rocks
schema:
$ref: '#/components/schemas/notes'
id1:
in: path
name: id
description: Item ID.
required: true
schema:
$ref: '#/components/schemas/id1'
pageSize:
in: query
name: pageSize
description: 'The number of entries to return per page. The maximum range of valid page sizes is documented with minimum and maximum values, but the range might be further limited dynamically based on the requested information, account, and system status. Values outside of the (dynamic) allowed range will not result in an error, but will be clamped to the nearest limit. Thus, logic to detect the last page should not be based on comparing the requested size with the received size, but on the existence of a `nextPageToken` value.
'
example: 100
required: false
schema:
type: integer
minimum: 1
maximum: 500
default: 100
expireTimestamp__lte1:
in: query
name: expireTimestamp__lte
required: false
description: Maximum timestamp for file expiration date.
schema:
$ref: '#/components/schemas/timestamp2'
mimeType1:
in: query
name: mimeType
description: Exact content type.
example: application/directory
schema:
$ref: '#/components/schemas/mimeType1'
expireTimestamp__gte1:
in: query
name: expireTimestamp__gte
required: false
description: Minimum timestamp for file expiration date.
schema:
$ref: '#/components/schemas/timestamp2'
include4:
in: query
name: include
required: false
description: The fields you want included in the response. If not specified, the response will include a default set of fields specific to this method. For development purposes, you can use the special value * to return all fields; however, you will achieve better performance by selecting only the fields you need.
style: form
explode: false
schema:
type: array
items:
type: string
enum:
- accountId
- createTimestamp
- updateTimestamp
- size
- uploadUrl
- storageId
- metadata
- tags
- notes
- md5
- details
createTimestamp__lte2:
in: query
name: createTimestamp__lte
required: false
description: Maximum timestamp for file creation date.
schema:
$ref: '#/components/schemas/timestamp2'
name1:
in: query
required: false
name: name
description: Exact name of the item.
example: Video North Door 2022-08-03 23-04-50.mp4
schema:
$ref: '#/components/schemas/name1'
tags__contains:
in: query
name: tags__contains
required: false
description: Tags filter.
schema:
$ref: '#/components/schemas/tags'
tags__any:
in: query
name: tags__any
required: false
description: Tags filter with any tag in the list.
schema:
$ref: '#/components/schemas/tags'
name__contains:
in: query
required: false
name: name__contains
description: File name contains filter.
example: Video North Door
schema:
$ref: '#/components/schemas/name1'
sort2:
in: query
name: sort
description: List of fields that should be sorted. Use "-" and the field name to specify descending results. Use "+" and the field name to specify ascending results. By default, results are sorted by create timestamp in descending order.
schema:
type: array
default:
- -createTimestamp
items:
type: string
enum:
- -createTimestamp
- -directory
- -mimeType
- -name
- -size
- -expireTimestamp
- +createTimestamp
- +directory
- +mimeType
- +name
- +size
- +expireTimestamp
style: form
explode: false
tags:
in: query
name: tags
required: false
description: Exact tags filter.
schema:
$ref: '#/components/schemas/tags'
mimeType__contains1:
in: query
name: mimeType__contains
description: Content type contains filter.
example: video
schema:
$ref: '#/components/schemas/mimeType1'
directory:
in: query
required: false
name: directory
description: Name of parent directory.
example: /Bundles/North Door
schema:
$ref: '#/components/schemas/directory'
size__gte:
in: query
name: size__gte
required: false
description: Minimum file size.
schema:
$ref: '#/components/schemas/size'
size__lte:
in: query
name: size__lte
required: false
description: Maximum file size.
schema:
$ref: '#/components/schemas/size'
createTimestamp__gte2:
in: query
name: createTimestamp__gte
description: Minimum timestamp for file creation date.
required: false
schema:
$ref: '#/components/schemas/timestamp2'
pageToken:
in: query
name: pageToken
description: 'Token string value that references a page for pagination. This value is received when retrieving the first page in the `nextPageToken` and `prevPageToken` fields.
When a pageToken is provided, the backend remembers search parameters from the original request, so search parameters that affect the result set or order are optional and will be ignored if provided. Representation parameters like `include` should still be applied.
'
example: b2Zmc2V0PTEwJmxpbWl0PTEw
required: false
schema:
type: string
responses:
forbidden:
description: You have no permission to access the specified resource.
content:
application/json:
schema:
$ref: '#/components/schemas/ApiV3Error'
examples:
invalidPermission:
value:
code: 403
status: permissionDenied
message: The client caller does not have permission for the specified operation
details:
- type: errorInfo
reason: invalidPermission
domain: apiv3
metadata:
path: /api/v3.0/<resource>
wrongEdition:
value:
code: 403
status: permissionDenied
message: This feature is not enabled for the account
details:
- type: errorInfo
reason: wrongEdition
domain: apiv3
metadata:
path: /api/v3.0/locations
wrongAccountType:
value:
code: 403
status: permissionDenied
message: This feature is only available for end users
details:
- type: errorInfo
reason: wrongAccountType
domain: apiv3
metadata:
path: /api/v3.0/locations
resourceNotFound:
description: Referenced resource could not be found.
content:
application/json:
schema:
$ref: '#/components/schemas/ApiV3Error'
examples:
endpointNotFound:
value:
code: 404
status: notFound
message: The API endpoint was not found
details:
- type: errorInfo
reason: endpointNotFound
domain: apiv3
metadata:
path: /api/v3.0/<resource>
resourceNotFound:
value:
code: 404
status: notFound
message: The resource was not found
details:
- type: errorInfo
reason: resourceNotFound
domain: apiv3
metadata:
path: /api/v3.0/<resource>
- type: resourceInfo
resource: <resource>
ids:
- <ids>
conflict:
description: There was a conflict while trying to perform your request. See error details for more information.
content:
application/json:
schema:
$ref: '#/components/schemas/ApiV3Error'
examples:
alreadyExists:
value:
code: 409
status: conflict
message: The resource already exists
details:
- type: errorInfo
reason: alreadyExists
domain: apiv3
metadata:
path: /api/v3.0/<resource>
foreignKeyConflict:
value:
code: 409
status: conflict
message: The resource cannot be deleted as other resources link to it. Please remove the links or delete the other resources first before deleting this resource.
details:
- type: errorInfo
reason: foreignKeyConflict
domain: apiv3
metadata:
path: /api/v3.0/<resource>
childDevicesExist:
value:
code: 409
status: conflict
message: This device can not be deleted before all attached cameras have been deleted. Please delete all cameras and then delete this device.
details:
- type: errorInfo
reason: childDevicesExist
domain: apiv3
metadata:
path: /api/v3.0/<resource>
deviceUnavailable:
value:
code: 409
status: conflict
message: Device is not available.
details:
- type: errorInfo
reason: deviceUnavailable
domain: apiv3
metadata:
path: /api/v3.0/<resource>
internalServerError:
description: Something went wrong in the server. Please try again.
content:
application/json:
schema:
$ref: '#/components/schemas/ApiV3Error'
example:
code: 500
status: internal
message: An internal error has occurred. Please try again later.
details:
- type: errorInfo
reason: unexpectedError
domain: apiv3
metadata:
path: /api/v3.0/<resource>
unauthorized:
description: You are not authenticated. Please authenticate and try again.
content:
application/json:
schema:
$ref: '#/components/schemas/ApiV3Error'
example:
code: 401
status: unauthenticated
message: The client caller does not have a valid authentication credential
details:
- type: errorInfo
reason: unauthenticated
domain: apiv3
metadata:
path: /api/v3.0/<resource>
validationError:
description: The supplied object is invalid. Error detail will contain the validation error.
content:
application/json:
schema:
$ref: '#/components/schemas/ApiV3Error'
examples:
unexpectedArgument:
value:
code: 400
status: invalidArgument
message: 'Unexpected argument: name'
details:
- type: errorInfo
reason: unexpectedArgument
domain: apiv3
metadata:
path: /api/v3.0/<resource>
missingRequiredArgument:
value:
code: 400
status: invalidArgument
message: 'Missing required arguments: name, id'
details:
- type: errorInfo
reason: missingRequiredArgument
domain: apiv3
metadata:
path: /api/v3.0/<resource>
badRequestInvalidJSON:
value:
code: 400
status: invalidArgument
message: Invalid JSON
details:
- type: errorInfo
reason: invalidJSON
domain: apiv3
metadata:
path: /api/v3.0/<resource>
badRequestInvalidArgument:
value:
code: 400
status: invalidArgument
message: 'Invalid Argument: Argument name is too long'
details:
- type: errorInfo
reason: wrongArgumentValue
domain: apiv3
metadata:
path: /api/v3.0/<resource>
- type: badRequest
argumentViolations:
- argumentName: name
description: Name is too long
securitySchemes:
bearerAuth:
type: http
scheme: bearer
bearerFormat: JWT
x-provenance:
method: searched
source: https://developer.eagleeyenetworks.com/reference
harvested: '2026-10-14'
tool: harvest-readme-openapi.py
note: Assembled verbatim from the OpenAPI definition ReadMe embeds in each operation page of the provider's developer portal; paths and components merged by API title, nothing authored.
assembled_from:
- https://developer.eagleeyenetworks.com/reference/addfile.md
- https://developer.eagleeyenetworks.com/reference/createexportjob.md
- https://developer.eagleeyenetworks.com/reference/deletealltrashfiles.md
# --- truncated at 32 KB (33 KB total) ---
# Full source: https://artifacts.apis.io/eagle-eye-networks/openapi/eagle-eye-networks-downloads-api-openapi.yml