Eagle Eye Networks Feeds API
Retrieve available live feeds.
Retrieve available live feeds.
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-feeds-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 Feeds API
version: 3.0.0
description: Retrieve available live feeds.
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: Feeds
description: Retrieve available live feeds.
paths:
/feeds:
get:
operationId: listFeeds
description: 'This endpoint allows developers to list and retrieve information about the feeds that are generated by a device.
It is important to note that after using the pageSize parameter, the "totalSize" in the response represents the total number of available feeds, not the number of feeds resulting from the query string.'
tags:
- Feeds
parameters:
- $ref: '#/components/parameters/deviceId1'
- $ref: '#/components/parameters/deviceIdIn'
- $ref: '#/components/parameters/type1'
- $ref: '#/components/parameters/include1'
- $ref: '#/components/parameters/pageToken'
- $ref: '#/components/parameters/pageSize'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/ApiPaginatedFeedResponse'
'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: List feeds
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'
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
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'
PaginatedResponseNoTotalSize:
type: object
description: 'Used to wrap results for a paginated response, containing information on how to retrieve further pages.
'
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.
'
results:
type: array
readOnly: true
description: The result set from a collection API call.
items:
type: object
required:
- nextPageToken
- prevPageToken
- results
ApiFeedMain:
type: object
properties:
id:
type: string
description: Identifier of the feed
example: 10058b7a-main
type:
description: "Multiple feeds can be published per source, but they should all have the same viewpoint. They can differ in:\n * quality: `main` is higher resolution while `preview` is low resolution and low framerate\n * trigger: some generate frames continuously, while others only generate frames when something specific is visible such as a license plate.\n"
type: string
enum:
- main
- preview
- talkdown
deviceId:
type: string
description: The device generating the feed
example: 10058b7a
mediaType:
description: What type of media is being generated
type: string
enum:
- audio
- video
- image
- halfDuplex
- fullDuplex
required:
- id
- type
- deviceId
- mediaType
ApiPaginatedFeedResponse:
allOf:
- $ref: '#/components/schemas/PaginatedResponseWithSize'
- type: object
properties:
results:
type: array
items:
$ref: '#/components/schemas/ApiFeedWithIncludes'
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
PaginatedResponseWithSize:
description: "Used to wrap results for a paginated response, containing information on how to retrieve further pages and the total number of results. \n"
allOf:
- $ref: '#/components/schemas/PaginatedResponseNoTotalSize'
- properties:
totalSize:
type: integer
readOnly: true
description: 'Size of the total result set.
'
required:
- totalSize
ApiFeedWithIncludes:
allOf:
- $ref: '#/components/schemas/ApiFeedMain'
- $ref: '#/components/schemas/ApiFeedIncludes'
- type: object
ApiFeedIncludes:
type: object
properties:
flvUrl:
type:
- string
- 'null'
x-jsoninclude-nonnull-annotation: true
description: Flash video delivered over HTTPS can be used to provide live streams, but also play back recordings.
example: https://media.c13.eagleyenetworks.com/10058b7a/main.flv
rtspUrl:
type: string
x-jsoninclude-nonnull-annotation: true
description: RTSP is a protocol to request media to be sent, and to multiplex that media over one or more connections back to the client.
example: rtsp://media.c13.eagleyenetworks.com/media/streams/main/rtsp
rtspsUrl:
type: string
x-jsoninclude-nonnull-annotation: true
description: Same as RTSP, but communication happens over a TLS socket instead of an unencrypted TCP socket.
example: rtsps://media.c13.eagleyenetworks.com/media/streams/main/rtsp
localRtspUrl:
type:
- string
- 'null'
x-jsoninclude-nonnull-annotation: true
description: Same as RTSP, but this time requested directly to the bridge instead of the cloud.
example: rtsp://10.0.0.1:554/
hlsUrl:
type:
- string
- 'null'
x-jsoninclude-nonnull-annotation: true
description: Http Live Streaming can be used to deliver a live stream over HTTPS.
example: https://media.c13.eagleyenetworks.com/media/streams/main/hls
multipartUrl:
type: string
x-jsoninclude-nonnull-annotation: true
description: Proprietary protocol that uses multipart over HTTPS to deliver raw encoded image, video and audio frames as they become available
webRtcUrl:
type:
- string
- 'null'
x-jsoninclude-nonnull-annotation: true
description: WebRTC can be used to set-up push to talk connections with speakers.
example: https://media.c13.eagleyenetworks.com/media/streams/main/webRtc
audioPushHttpsUrl:
type:
- string
- 'null'
x-jsoninclude-nonnull-annotation: true
description: Audio push url can be used to push the audio to the speaker associated with a camera.
example: https://media.c13.eagleyenetworks.com/media/streams/audio
ArgumentViolation:
properties:
argumentName:
type: string
description: Name of the argument
description:
type: string
description: Description of the violation
ExceptionMetadata:
properties:
path:
description: Path of the request
type: string
method:
description: Method of the request
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>
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
parameters:
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
deviceId1:
in: query
name: deviceId
description: The device generating the feed.
style: form
explode: false
schema:
type: string
example: 10058b7a
deviceIdIn:
in: query
name: deviceId__in
description: The device ID's of the devices for which to return the feeds.
style: form
explode: false
schema:
type: array
items:
type: string
example: 10058b7a
include1:
in: query
name: include
style: form
explode: false
schema:
type: array
items:
type: string
enum:
- flvUrl
- rtspUrl
- rtspsUrl
- localRtspUrl
- hlsUrl
- multipartUrl
- webRtcUrl
- audioPushHttpsUrl
type1:
in: query
name: type
description: The stream type of the device used to generate the feed.
schema:
type: string
enum:
- main
- preview
- talkdown
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
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
- https://developer.eagleeyenetworks.com/reference/deletefile.md
- https://developer.eagleeyenetworks.com/reference/deletejob.md
- https://developer.eagleeyenetworks.com/reference/deletetrashfile.md
- https://developer.eagleeyenetworks.com/reference/downloaddownload.md
- https://developer.eagleeyenetworks.com/reference/downloadfile.md
- https://developer.eagleeyenetworks.com/reference/getdownload.md
- https://developer.eagleeyenetworks.com/reference/getdownloads.md
- https://developer.eagleeyenetworks.com/reference/getfile.md
- https://developer.eagleeyenetworks.com/reference/getfiles.md
- https://developer.eagleeyenetworks.com/reference/getjob.md
- https://developer.eagleeyenetworks.com/reference/getliveimage.md
- https://developer.eagleeyenetworks.com/reference/getmediasession.md
- https://developer.eagleeyenetworks.com/reference/getrecordedimage.md
- https://developer.eagleeyenetworks.com/reference/gettrash.md
- https://developer.eagleeyenetworks.com/reference/gettrashfile.md
- https://developer.eagleeyenetworks.com/reference/listfeeds.md
- https://developer.eagleeyenetworks.com/reference/listjobs.md
- https://developer.eagleeyenetworks.com/reference/listmedia.md
- https://developer.eagleeyenetworks.com/reference/restoretrashfile.md
- https://developer.eagleeyenetworks.com/reference/retryexport.md
- https://developer.eagleeyenetworks.com/reference/updatedownload.md
- https://developer.eagleeyenetworks.com/reference/updatefile.md
merge:
pages: 25
deduped: 479
conflicts_kept_first: 0